C# winform 怎么在另一个Form类中操作主Form类中的控件呢? 我在主窗口中按一个按钮打开另外一个对话框界面,我在编写这个对话框类程序的时候想要操作主对话框的一些控件,但是并不知道该怎么引用啊?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 声明主窗口实例网搜“”winform窗体调用“ 搜索 “winform 跨窗体传值” 比如B中要访问A中的组件第一,将A的实例传入B中(别说这个你不会),然后设置A中的组件的modifers为public,这样就可以通过A的实例访问了 a.xxxxx第二,用属性控制上面两个最简单的方法 public partial class Form1 : Form { public Form1() { InitializeComponent(); } public string passText { get { return textBox1.SelectedText.Text; } } private void button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Owner = this; f2.Show(); } private void Form1_Load(object sender, EventArgs e) { } private void textBox1_TextChanged(object sender, EventArgs e) { if(this.OwnedForms.Length != 0) (this.OwnedForms[0] as Form2).selectText = textBox1.Text;/*OwnedForms是一个数组 ,表示当前对象拥有的子窗体数组,同样要把通过下标得到的元素转换为Form2类型。*/ } }}namespace WindowsApplication1{ public partial class Form2 : Form { public string selectText { set { textBox1.Text = value; //设置一个属性,让form1操作 } } public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { textBox1.Text = ((Form1)this.Owner).passText; } }} A-BB中创造A实例是不行的实现的话:1.通过B的构造函数:在B中重写构造函数,然后再A中调用B窗体时候,将要修改的控件 引用过去2.通过委托,可以将B中的 消息 传回给A还有很多方法,给你一个别人的总结,写的非常好:http://blog.csdn.net/zhzuo/article/details/22027#comments sql在模糊查询的存储过程的时间类型怎么处理 用互斥体实现一个程序的单开 dgv中为何不显示数据 百分求一个Socket异步(tcp)多线程传输字节的例子 api问题 为什么提示红线 C# 同时有sql2000和2005的时候,jdbc怎么才能连上2000而不是2005 求助各位大神,实训作业,给点代码 C#访问驱动程序中,关于设备枚举的问题,请高手指教? 再2000server上安装.net需要更新什么? 用TextBox,Button等自定义ComboBox C# Winform中,如何在选定要删除的后,点击“删除”按钮,弹出确认对话框,点击确认,删除完成
第一,将A的实例传入B中(别说这个你不会),然后设置A中的组件的modifers为public,这样就可以通过A的实例访问了 a.xxxxx第二,用属性控制
上面两个最简单的方法
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} public string passText
{
get {
return textBox1.SelectedText.Text;
}
} private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Owner = this;
f2.Show();
} private void Form1_Load(object sender, EventArgs e)
{ } private void textBox1_TextChanged(object sender, EventArgs e)
{
if(this.OwnedForms.Length != 0)
(this.OwnedForms[0] as Form2).selectText = textBox1.Text;/*OwnedForms是一个数组 ,表示当前对象拥有的子窗体数组,同样要把通过下标得到的元素转换为Form2类型。*/
}
}
}namespace WindowsApplication1
{
public partial class Form2 : Form
{
public string selectText
{
set
{
textBox1.Text = value; //设置一个属性,让form1操作
}
} public Form2()
{
InitializeComponent();
} private void Form2_Load(object sender, EventArgs e)
{
textBox1.Text = ((Form1)this.Owner).passText;
}
}
}
B中创造A实例是不行的
实现的话:
1.通过B的构造函数:在B中重写构造函数,然后再A中调用B窗体时候,将要修改的控件 引用过去
2.通过委托,可以将B中的 消息 传回给A还有很多方法,给你一个别人的总结,写的非常好:http://blog.csdn.net/zhzuo/article/details/22027#comments