|
Dose anyone know how to contact form1 from form2 without opening a new form? this is my code.
Form1 form1 = new Form1();<br />
if (e.KeyData == Keys.Escape)<br />
{<br />
this.Visible = false;<br />
form1.timeToolStripMenuItem.Checked = false;<br />
}
|
|
|
|
|
You don't really give a good example of what you are trying to accomplish, but I'll try answering anyway...
I assume that is code from an already opened Form2. Create a public property on Form1. Then set that property from form2. Or pass a value into the constructor. Or use an event. Or a delegate passed via the constructor.
|
|
|
|
|
|
Can you please give me a example?
|
|
|
|
|
First you have to explain better what you're trying to achieve, because we don't know what is it you want to accomplish.
Don't forget to rate answer, that helped you. It will allow other people find their answers faster.
|
|
|
|
|
Well imagine that just opened form2 form form1 and form1 needs to change its check box to be checked because you just opened form2. So then it will check form1's check box because you just opened form2. I hope this was a good example
|
|
|
|
|
Make public your control timeToolStripMenuItem on Form1 and access it from Form2 e.g:
Form2.timeToolStripMenuItem.Checked=false;
I Love T-SQL
"Don't torture yourself,let the life to do it for you."
If my post helps you kindly save my time by voting my post.
www.aktualiteti.com
|
|
|
|
|
|
That's not a good approach (I mean "best practices" state that all fields should be static).
You have two approaches:
1. Create public property in form1 that exposes your checkbox as readonly:
public CheckBox CheckboxPublicName
{
get
{
return this.timeToolStripMenuItem;
}
}
And in form2 you can do form1.CheckboxPublicName.Checked = true;
2. This one is (I think) better. You expose property, that provides access to "checked status" of the checkbox
public bool SomeName
{
get
{
return this.timeToolStripMenuItem.Checked;
}
set
{
this.timeToolStripMenuItem.Checked = value;
}
}
And you only have to set this property to true/false.
Don't forget to rate answer, that helped you. It will allow other people find their answers faster.
|
|
|
|
|
ok but you forget, this needs to be done in
<br />
if (e.KeyData == Keys.Escape)<br />
{<br />
<br />
}
|
|
|
|
|
What is "e"? What event handler is your code from?
Don't forget to rate answer, that helped you. It will allow other people find their answers faster.
|
|
|
|
|
It helps make the keydown possible
|
|
|
|
|
Can you paste entire method here?
Don't forget to rate answer, that helped you. It will allow other people find their answers faster.
|
|
|
|
|
private void Time_KeyDown(object sender, KeyEventArgs e)<br />
{<br />
if (e.KeyData == Keys.Escape)<br />
{<br />
this.Visible = false;<br />
Form1.timeToolStripMenuItem.Checked = false;<br />
}<br />
}
|
|
|
|
|
So, what is the problem with implementing solution I gave you before? You're saying I'm forgetting about part, where you check if escape was pressed. What does it have to do? You have your if inside of which you set checkbox checked status. Replace this with a call to the property I adviced to create and everything should be working.
Don't forget to rate answer, that helped you. It will allow other people find their answers faster.
|
|
|
|
|
Well I get this error
<br />
Error 1 Expected class, delegate, enum, interface, or struct C:\Users\Kyle\documents\visual studio 2010\Projects\Gadgets\Gadgets\Form1.cs 19 12 Gadgets<br />
|
|
|
|
|
In which line you're getting this error?
Don't forget to rate answer, that helped you. It will allow other people find their answers faster.
|
|
|
|
|
|
What is the code in this line?
Don't forget to rate answer, that helped you. It will allow other people find their answers faster.
|
|
|
|
|
Form1.timeToolStripMenuItem.Checked = false;
|
|
|
|
|
OK
If you added CheckboxPublicName property from my previous post, you have to replace this line with Form1.CheckboxPublicName.Checked = false.
If you added SomeName property from my previous post, you have to replace this line with Form1.SomeName = false.
And also: I assume that Form1 you're using is instance of the form you want to change, not the type of the form. If it is, you have to get instance of the Form1 you want to modify.
Don't forget to rate answer, that helped you. It will allow other people find their answers faster.
|
|
|
|
|
I get this error on form1 on the bool
<br />
Error 1 Expected class, delegate, enum, interface, or struct C:\Users\Kyle\documents\visual studio 2010\Projects\Gadgets\Gadgets\Form1.cs 19 12 Gadgets<br />
|
|
|
|
|
Form1 is a class name. You need the instance name of form one which likely does not exists since Form1 is the autogenerated form.
|
|
|
|
|
Can you write this up in code form please so it makes more sense
|
|
|
|
|
WHAT THE FUCK!
Do you really expect anyone to know what code is on line 130?
Do you really think "130" is a magic number that tells us "oh, you just forgot to garble the bargle"?
WHAT THE FUCK!
|
|
|
|