C# winform 怎么在另一个Form类中操作主Form类中的控件呢?

shelllink110 2012-04-25 11:07:38
我在主窗口中按一个按钮打开另外一个对话框界面,我在编写这个对话框类程序的时候想要操作主对话框的一些控件,但是并不知道该怎么引用啊?

谢谢!
...全文
710 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolf_410 2012-04-26
  • 打赏
  • 举报
回复
用委托。。
_贺兰 2012-04-26
  • 打赏
  • 举报
回复
A-B
B中创造A实例是不行的
实现的话:
1.通过B的构造函数:在B中重写构造函数,然后再A中调用B窗体时候,将要修改的控件 引用过去
2.通过委托,可以将B中的 消息 传回给A

还有很多方法,给你一个别人的总结,写的非常好:http://blog.csdn.net/zhzuo/article/details/22027#comments
E次奥 2012-04-25
  • 打赏
  • 举报
回复
实例化对象啊,一个窗体就是一个对象。

  • 打赏
  • 举报
回复
难一点的,你可以传委托到控制窗体
sadfhjke1 2012-04-25
  • 打赏
  • 举报
回复
通过 B的构造函数传
shelllink110 2012-04-25
  • 打赏
  • 举报
回复
我也知道要传实例,但是我就是不知道怎么把主对话框的实例传给其它对话框[Quote=引用 3 楼 的回复:]

比如B中要访问A中的组件
第一,将A的实例传入B中(别说这个你不会),然后设置A中的组件的modifers为public,这样就可以通过A的实例访问了 a.xxxxx

第二,用属性控制
上面两个最简单的方法
[/Quote]
深海之蓝 2012-04-25
  • 打赏
  • 举报
回复
搜索form间通信
orochiheart 2012-04-25
  • 打赏
  • 举报
回复

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;
}
}
}


bdmh 2012-04-25
  • 打赏
  • 举报
回复
比如B中要访问A中的组件
第一,将A的实例传入B中(别说这个你不会),然后设置A中的组件的modifers为public,这样就可以通过A的实例访问了 a.xxxxx

第二,用属性控制
上面两个最简单的方法
orochiheart 2012-04-25
  • 打赏
  • 举报
回复
搜索 “winform 跨窗体传值”
  • 打赏
  • 举报
回复
声明主窗口实例

网搜“”winform窗体调用“
魚躍龍門 2012-04-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

比如B中要访问A中的组件
第一,将A的实例传入B中(别说这个你不会),然后设置A中的组件的modifers为public,这样就可以通过A的实例访问了 a.xxxxx

第二,用属性控制
上面两个最简单的方法
[/Quote]

+1
@信心 2012-04-25
  • 打赏
  • 举报
回复
按三楼行事无妨!

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧