请问,如何在form2中访问已经打开的form1中的控件
在form1中Form2 form2 = new Form2();
form2.show(this);
请问:
如何在form2中访问form1的panel1中的button2
听说用委托比较好,是怎么委托的?
谢谢!!! --------------------编程问答-------------------- 你将Form1中的button2,作为构造函数中的参数传递过去就行了。
--------------------编程问答-------------------- form2 中有 相关函数噻
在form1中
Form2 form2 = new Form2(button2);
form2.show(this);
在Form2中
public Button btn;
public void Form2(Button button)
{
btn = button;
}
string text = btn.Text; //获取到的是Form1中button2的Text值。
form2.函数(参数); 参数即是this.。。。。 --------------------编程问答-------------------- 1楼的方法可是可以,不过我想如果需要访问的控件比较多,Form2的构造函数不是很麻烦吗?
用委托是咋整的呢 --------------------编程问答-------------------- 在 form1中
Form2 form2=new Form2();
form2.show(this);
在 form2中
Form1 myForm=(Form1)this.Owner;
Myform.Button2
这里可以访问其他所有 Form1中的控件
你试试 --------------------编程问答--------------------
委托用不着的。
或是设置Owner属性(和重载构造相似)
在form1中
Form2 form2 = new Form2();
form2.Owner = this;
form2.ShowDialog();
在Form2中
public void Form2()
{
}
string msg = this.Owner.Controls["button2"].Text; //获取Form1中的button2控件的Text值。
ps:获取Form1中的其他控件类似,只要知道Form1中控件的ID就行了,然后就可以获取相应的属性值了。
假如Form1中有一个TextBox1,想获取其输入的值,如下
string val = this.Owner.Controls["TextBox1"].Text;
--------------------编程问答-------------------- foreach (Control c in (this.Owner.Controls["panel11"]).Controls)
{
if (c is CheckBox)
{
(c as CheckBox).Checked = false;
}
}
我这么写,为什么不行呢?说未将对象引用设置到对象的是咧 --------------------编程问答-------------------- 谢谢楼上的回答,我还想知道用委托咋弄的?谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1 --------------------编程问答-------------------- 看下面的推荐贴 委托麻烦一点,但更灵活
http://topic.csdn.net/u/20110407/19/c1068d69-7331-4d02-bc0b-f5ba7a5f8dd8.html --------------------编程问答-------------------- form1:
Form2 form2 = new Form2();
form2.Owner = this;
form2.ShowDialog();
form2:
form1 f1=this.owner as form1;
再将form1中的button的modi...属性设置成public
引用就是 f1.button,那个属性不会拼了o(╯□╰)o --------------------编程问答-------------------- this.Owner.Controls["panel11"])找不到panel1吧 --------------------编程问答-------------------- 直接把from的对象传过来,在设置一下form1 要访问的控件的可访问性级别 给public 在from2中就可以随意了 --------------------编程问答--------------------
提示:4楼的方法需要把form1窗体中控件的Modifiers属性设置为Internal才可以 --------------------编程问答-------------------- 这个根本可以不用委托,,LZ最好别乱用委托,,如果不是很了解委托很容易被委托给陷进去的。。 --------------------编程问答--------------------
不知道楼主没说清,还是其他细节忘了。
这种方法根本就访问不到form1中的button2,不知道楼主试了,没有,
如果楼主执意要坚持的话,不妨自己写一个列子,分享全部代码? --------------------编程问答-------------------- 已经不用回答喽。。。上面都回答过了。。
补充:.NET技术 , C#