|
Only 2?
You must be a Regex Guru!
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
RegEx is inappropriate. You can use LinqToXML if your needs are simple and you don't want to use HTMLAgilityPack.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
Im trying to figure out Delegates as I have read this is the best way to pass Values from one form to another.
I have tried to do this but am getting an error.
So to test I am trying to do the following.
Form1 has a button which opens Form2 which contains a DatePicker. The user selects a date and clicks OK. I then want the date passed back to a textbox on Form1.
This is my code.
FORM1 - CODE (The getEffDate in this code is where im getting the error.)
private void TestingButton_Click(object sender, EventArgs e)
{
Form_EffectiveDate effDate = new Form_EffectiveDate();
if (effDate.ShowDialog() == DialogResult.OK)
{
EffDateTextBox.Text = Form_EffectiveDate.getEffDate;
}
}
FORM 2 - Code
namespace Manager_Changes
{
public partial class Form_EffectiveDate : Form
{
public delegate void GetEffDate(object sender);
public GetEffDate getEffDate;
public Form_EffectiveDate()
{
InitializeComponent();
}
private void DateOKButton_Click(object sender, EventArgs e)
{
getEffDate(effDateTimePicker.Value.ToString());
DialogResult = System.Windows.Forms.DialogResult.OK;
this.Close();
}
}
}
Chris Wright
|
|
|
|
|
|
Perfect! I will get researching again. I appreciate the information, thanks @DalekDave.
As I am new to C# its hard to tell if someone is right when they say "the best way" as that might just be personal preference.
Thanks again, have a great day.
Chris Wright
|
|
|
|
|
I'm not DalekDave - I'm OriginalGriff.
DalekDave is someone I'm winding up a little by automatically sending him an email every time I post something!
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Apologies, this is my first time using Code Project. Its not structured like a normal forum haha
Chris Wright
|
|
|
|
|
No problem!
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
|
No, the Child raises the event to say "data available", the Parent handles the event and fetches it using the Child instance and property.
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I usually do it this way:
private void TestingButton_Click(object sender, EventArgs e)
{
using (Form_EffectiveDate form = new Form_EffectiveDate())
{
if (form.ShowDialog(this) == DialogResult.OK)
{
EffDateTextBox.Text = form.EffectiveDate;
}
}
}
In Form_EffectiveDate , set the OKButton property of the form to DateOKButton (this negates the need to write an event-handler for the button). Then:
public partial class Form_EffectiveDate : Form
{
public DateTime EffectiveDate
{
get { return effDateTimePicker.Value; }
}
public Form_EffectiveDate()
{
InitializeComponent();
}
}
enum HumanBool { Yes, No, Maybe, Perhaps, Probably, ProbablyNot, MostLikely, MostUnlikely, HellYes, HellNo, Wtf }
|
|
|
|
|
Thank you, I could give this a go too, it all helps with my learning.
Can I ask what you mean by "In Form_EffectiveDate, set the OKButton property of the form to DateOKButton (this negates the need to write an event-handler for the button )"?
I clicked the form and looked through the properties but couldn't see anything relating to OKButton.
Chris Wright
|
|
|
|
|
In the designer view of the form (not the code-file), click on the top of the form. In the properties windows, the form itself will now be selected. Amongst all properties of the form, you have one which is called AcceptButton (my mistake, I gave you a wrong name); set this one to the name of the OK button (you can select it). When that is done, you no longer need to write an event-handler (a method) for the button's click event; the framework will wire up everything and on click of the button the form will be hidden and return DialogResult.OK .
enum HumanBool { Yes, No, Maybe, Perhaps, Probably, ProbablyNot, MostLikely, MostUnlikely, HellYes, HellNo, Wtf }
|
|
|
|
|
Wow, this is nice to know. Thank you so much, I am loving learning C#
Chris Wright
|
|
|
|
|
Phil.o did make a small mistake: highlight your button, and set the "DialogResult" property to "OK" for it to close the form and return DialogResult.OK.
The Form.AcceptButton property just tells the form that an ENTER keypress is the equivelant of clicking the button. (Form.CancelButton does the same thing, but with the ESC key.)
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Thanks OriginalGriff.
Learning is much easier and fun when people like you guys, help people like me out. I was ripping my hair out yesterday trying to figure out how to a value from one form to another.
Is the code that Phil.o supplied classed as an event?
You mentioned above that - Delegates aren't "the best way" to pass variables back, Events are (which use delegates, but hides the complexities from you).
Chris Wright
|
|
|
|
|
No - that's just using ShowDialog to display Form2, which causes the Form1 code to "freeze", waiting for the new form to close before executing any more code (this is technically called a "Modal Form" but you don't need to worry about it).
There is also Form.Show which returns immediately, and that type needs Events to "Know" when data is available for Form1 to process. Follow the link I gave you, and you'll find a download of a source project that shows it all working with Show.
If you are going to use Events - and it's a good idea, .NET is built on the buggers - then also have a look here: A Simple Code Snippet to Add an Event[^] - it makes it a lot easier to create them in your own forms and other classes.
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
You're absolutely right. Thanks for pointing it out.
enum HumanBool { Yes, No, Maybe, Perhaps, Probably, ProbablyNot, MostLikely, MostUnlikely, HellYes, HellNo, Wtf }
|
|
|
|
|
If you want to pass data from Form2 to Form1. Add static string or DateTime field in Form1 then in Form2 get the value of that datepicker and assign it Form1.staticvariable.
|
|
|
|
|
I want to write a PowerPoint addin that adds a button to the screen during the actual presentation time (rather than editing time) and then draws output on top of the presentation over top the presentation. The point is to pick a random person from a registered audience and display their name.
1. Is this kind of thing possible?
2. I know there are interop pages available online. Does anyone have any quick pointers as to what part of these documents I should look at for presentation event handlers (such as a slide change) and stuff like that? Perhaps how to draw a GDI+ object to a slide? (and remove that drawing upon a button click)?
|
|
|
|
|
|
No... actually this is the correct forum. I am interested in C# addons. Not whatever that is about. There is already a tutorial on basic .NET addons but it doesn't quite cover the areas I am interested in learning about:
PowerPoint timer (addin)[^]
|
|
|
|
|
I'm trying to create a query with And and Or predicates.
My question is how to form it so that I have all the ANDS, PLUS the ORs:
If this was SQL, I would do
SELECT *
FROM ValidityRules
WHERE InstrumentId = 1 AND
BaySerialNumber = 'ABC123' AND
AssayType = 'MyType' AND
(ValdityCode = 'Code1' OR
ValdityCode = 'Code2' OR
ValdityCode = 'Code3')
Note that the codes are in parens.
Here's what I have so far:
var predicate = PredicateBuilder.New<ValidityRulesEntity>();
predicate = predicate.And(x => x.InstrumentId == entity.InstrumentId);
predicate = predicate.And(x => x.BaySerialNumber == entity.BaySerialNumber);
predicate = predicate.And(x => x.AssayType == entity.AssayType);
foreach (var validityCode in entity.ValidityCodes)
{
predicate = predicate.Or(x => x.ValidityCodes.Equals(validityCode));
}
What's the right way to do this?
If it's not broken, fix it until it is.
Everything makes sense in someone's mind.
Ya can't fix stupid.
|
|
|
|
|
Hi,
This article C# 7.0 in a Nutshell - PredicateBuilder[^] seems to explain it well. Look for
"The answer is to build the parenthesised expression first, and then consume it in the outer expression ".
|
|
|
|
|
That did it.
Thanks for the book ref
If it's not broken, fix it until it is.
Everything makes sense in someone's mind.
Ya can't fix stupid.
|
|
|
|