打开的窗体值传递问题?

long7411 2009-05-15 09:53:26
有两个打开的窗体FormMain,childForm,当单击FormMain窗体上的按扭时,childForm窗体上的Listbox1自动添加一行文字。
这个怎么实现?谢谢!
...全文
121 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
long7411 2009-05-18
  • 打赏
  • 举报
回复
可以了,谢谢colincat2004
lcdcau 2009-05-18
  • 打赏
  • 举报
回复
不知道这种方法行不行
private void button1_Click(object sender, EventArgs e)
{
string str = "你要添加的文字";
((ListBox)Application.OpenForms["childForm"].Controls["listBox1"]).Items.Add(str);
}
才子佳人丶 2009-05-18
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 colincat2004 的回复:]
简单一点的做法:
将子窗体上的文本框设置为public,这样主窗体就可以通过下面的方式来访问子窗体的资源了
主窗体的某一个按钮的单击事件中的代码:
ChildForm form = (ChileForm)ChildForm.ActiveForm;
form.txtName = "tom";
[/Quote]

就这个了,简单

这样你就可以在主窗体中通过ChildForm的实例form对ChildForm 窗体中的控件进行操作了
colincat2004 2009-05-18
  • 打赏
  • 举报
回复
简单一点的做法:
将子窗体上的文本框设置为public,这样主窗体就可以通过下面的方式来访问子窗体的资源了
主窗体的某一个按钮的单击事件中的代码:
ChildForm form = (ChileForm)ChildForm.ActiveForm;
form.txtName = "tom";
long7411 2009-05-18
  • 打赏
  • 举报
回复
C#实现这个这么难吗?VB实现这个倒是很简单的
yuanhuiqiao 2009-05-18
  • 打赏
  • 举报
回复
推荐在Child里写个Event(比如为 AddMenberEvent)和Listbox关联,然后在Main的初始化中加载这个事件,并和Main的ButtonClick绑定,这样应该就可以了
long7411 2009-05-18
  • 打赏
  • 举报
回复
我还是不明白,各位能写详细点吗?给个例子好吗?
xihuanxiatian 2009-05-15
  • 打赏
  • 举报
回复
我是来学习的 顶起
long7411 2009-05-15
  • 打赏
  • 举报
回复
具体点好吗?DoVerb(); 怎么定义?
zhubo_1117 2009-05-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hbxtlhx 的回复:]
1:声明一个接口类型,比如:
interface IOperator
{
DoVerb();
}

使childForm继承这个接口并实现接口的方法DoVerb,可以在这里实现你的对ListBox的操作。
点FormMain按扭的时候如下调用:

IOPerator ip=childForm as IOperator;
if (ip!=null)
{
ip.DoVerb();
}

2:直接在childform中添加一个Public的方法,在FormMain的按钮事件里调用ChildForm实例的这个方法。
[/Quote]
这种方法比较好!
我也有其他的方法:
你的frmMail和childMain肯定是存在没肿关系的,比如你可以在frmMain中创建一个全局childMain变量,然后调用一个操作listbox的方法,
也可以使用事件和委托来操作,在子窗体注册一个事件,然后当点击frmMain按钮的时候点燃该事件,就可以了!
yangjiang113 2009-05-15
  • 打赏
  • 举报
回复
可以通过委托事件实现

还可以通过Form1_FormClosing事件去实现

北京的雾霾天 2009-05-15
  • 打赏
  • 举报
回复
1:声明一个接口类型,比如:
interface IOperator
{
DoVerb();
}

使childForm继承这个接口并实现接口的方法DoVerb,可以在这里实现你的对ListBox的操作。
点FormMain按扭的时候如下调用:

IOPerator ip=childForm as IOperator;
if (ip!=null)
{
ip.DoVerb();
}

2:直接在childform中添加一个Public的方法,在FormMain的按钮事件里调用ChildForm实例的这个方法。

yangjiang113 2009-05-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 long7411 的回复:]
具体点好吗?DoVerb(); 怎么定义?
[/Quote]

接口里面的方法DoVerb()就这样定义
你还想怎么去定义?
当你继承了接口的时候会提示你自动的去实现DoVerb()方法
到你去实现DoVerb的时候你方法里面想写什么就写什么

110,561

社区成员

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

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

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