社区
C#
帖子详情
大家有没发现C#中窗体互访问题
wujun254
2005-07-21 06:37:27
不知大家有没发现这样一个问题:
将A窗体中textbox1设为公共,点击 button1启动B窗体,点击B窗体的button2,将B窗体中的 textbox2的值传给A窗体中的textbox1.我发现两种情况
1.点击B窗体的button2时并重新启动A窗体,A中的textbox1才能显示B窗体传的值
2.点击B窗体的button2时不重新启动A窗体,A中的textbox1不能显示B窗体传的值
...全文
92
5
打赏
收藏
大家有没发现C#中窗体互访问题
不知大家有没发现这样一个问题: 将A窗体中textbox1设为公共,点击 button1启动B窗体,点击B窗体的button2,将B窗体中的 textbox2的值传给A窗体中的textbox1.我发现两种情况 1.点击B窗体的button2时并重新启动A窗体,A中的textbox1才能显示B窗体传的值 2.点击B窗体的button2时不重新启动A窗体,A中的textbox1不能显示B窗体传的值
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wujun254
2005-07-21
打赏
举报
回复
我是从DELPHI转到C#,所以很多方法仍然沿用DELPHI.我的代码是:
//FormA:
private void buttonA_Click(System.Args e){
FormB frm=new FormB();
frm.show();
}
//FromB:
private void buttonA_Click(System.Args e){
FormA frm=new FormA();
frm.textBoxA.text=this.textBoxB.text;//FormA.textBox1 IS public
frm.show();
}
这样可以实现,但不用frm.show()时;就看不到B传给A的数据了.在DELPHI窗体互访较简单了.
感谢whs20001129(Perfect) , zCheng(钟诚 )
zCheng
2005-07-21
打赏
举报
回复
试试下面的代码示例:
//FormA
private void buttonA_Click(System.Args e){
FormB fxb=new FormB();
DialogResult y=fxb.ShowDialog();
if(y==DialogResult.OK){ // 注意:DialogResult.OK 必须和 FormB 中的 button2
// 的 DialogResult 属性一样。
textbox1.Text=fxb.textbox2.Text;
fxb.Dispose();
}
}
//FormB
//把 button2 的 DialogResult 属性设置为 OK.
private void button2_Click(System.Args e){
this.Close(); // 不要调用 this.Dispose(); 否则 FormA 无法接受到 textbox2 的内容。
// 因为 Dispose() 后 FormB 实例会被销毁。也可以调用 this.Hide();
}
.Net 中的任何窗体都是一个实例,所以如果从 FormB 创建窗体 FormA 的话, 新创建的 FormA 不是“重启”而是一个新的 FormA 实例,虽然可以得到 textbox2 的内容但是丢失原来的非初始数据。所以只能通过在 FormA 启动 FormB 时,检测 FormB 的按钮按下返回的 DialogResult 来判断哪个按钮北按下,然后在从启动的 FormB 中获取数据,再销毁 FormB。
whs20001129
2005-07-21
打赏
举报
回复
你是不是这样做的formA forma = new formA();forma.buttona.text = this.buttonb.text;forma.Show();这个时候就能看到值了。因为你新实例化一个UI并对新的UI附值当然能看到了。不Show()的化以前的formA和现在的formA不是一个实例当然不行了。
storm97
2005-07-21
打赏
举报
回复
你怎么传的?
代码肯定有问题
Camus_Li
2005-07-21
打赏
举报
回复
你的调用方式有问题。
C#
如何实现
窗体
间数据
互访
?
C#
如何实现
窗体
间数据
互访
?例:建一个
C#
的应该程序,做二个
窗体
,每个
窗体
上加一个按扭,当点第一个
窗体
(主)时,把第二个
窗体
标题改为222222并显示出来(连续点击多次而不New多少出来),然后单击第二个
窗体
(222222)上的按扭,将第一个
窗体
(主)的标题修改为111111111即可。 我用 VB.net 里的方法将其转为
C#
private static Form1 m_Form = new F
.NET
中
窗体
间相
互访
问的几种方式
.NET
中
窗体
间相
互访
问的几种方式阅读提示:在我们的程序
中
,
窗体
之间经常要相
互访
问彼此的成员,调用彼此的方法,或者激发彼此的事件。下面就我的经验,简单谈谈在.NET
中
窗体
间相
互访
问的几种方式。 在我们的程序
中
,
窗体
之间经常要相
互访
问彼此的成员,调用彼此的方法,或者激发彼此的事件。下面就我的经验,简单谈谈在.NET
中
窗体
间相
互访
问的几种方式。以下给出了
C#
.NET和VB.NET的示例代码。用
Winform
窗体
间相
互访
问的几种实现方法
窗体
组合经常会使用到,但是要避免循环引用的
问题
。
窗体
对象相互引用的可以使用单例模式,用
窗体
类静态方法获取实例对象再去调用具体内容。在
窗体
间相互引用时,使用单例可以解决循环引用
问题
。
窗体
间的数据传递可以使用委托和事件 委托与事件的区别:个人乱扯 委托是类;事件是一种委托类型,提供发布和订阅机制。 委托由定义者注册和注销和执行;事件由定义者触发,提供调用者注册和注销 委托使用Func<> 和 Action<> 可以满足丰富的委托类型,注册委托的函数需要满足委托函数签名,可实现同步,异
在 .NET
中
利用委托实现
窗体
间通信
前段时间写了一篇关于在Visual2005
中
窗体
间
互访
的文章,介绍了通过使用My命名空间下Forms对象,可以遵循传统的VB6.0
中
的风格,实现
窗体
间
互访
,简化了
窗体
互访
操作,而同时这也符合众多VB6.0出身的开发人员的习惯。 对于
窗体
之间简单的通信,上述方法已经能很好的满足我们的要求,但在一些架构设计复杂的应用
中
,上面的方法就显得有点捉襟见
C#
/VB.NET语法的比较
最近因为工作的关系,需要从用了三年的
C#
转用VB.NET啦。
没
有办法,本来嘛,使用语言是
没
有很大的关系的。但刚刚使用的时候,多多少少还是有一些磕磕碰碰的。主要是代码编写的操作便捷方面,总结几点:◎代码编定实现Interface时
C#
中
使用 :Interface,然后按shift+alt+F10回车,呵呵,全部接口需实现的方法属性全部自动生成。当然这个是2005才有的。2003不知有
没
有,反正我是
没
C#
111,096
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章