社区
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窗体传的值
...全文
81
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写文章
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
中
利用委托实现
窗体
间通信
前段时间写了一篇关于在Visual2005
中
窗体
间
互访
的文章,介绍了通过使用My命名空间下Forms对象,可以遵循传统的VB6.0
中
的风格,实现
窗体
间
互访
,简化了
窗体
互访
操作,而同时这也符合众多VB6.0出身的开发人员的习惯。 对于
窗体
之间简单的通信,上述方法已经能很好的满足我们的要求,但在一些架构设计复杂的应用
中
,上面的方法就显得有点捉襟见
C#
线程用法及跨线程访问
我们在做
窗体
应用程序的时候,有时候穾获取当前
窗体
的信息,或者调用其他
窗体
的控件。 这里我介绍两种方法来实现。 当我们需要在
窗体
中
调用其他
窗体
的控件时,我们可以用控件.CheckForIllegaCrossThreadCalls=false; 例如:Button.CheckForIllegalCrossThreadCalls=false; 当然我们也可以让整个
窗体
可以跨线程访问 F
C#
/VB.NET语法的比较
最近因为工作的关系,需要从用了三年的
C#
转用VB.NET啦。
没
有办法,本来嘛,使用语言是
没
有很大的关系的。但刚刚使用的时候,多多少少还是有一些磕磕碰碰的。主要是代码编写的操作便捷方面,总结几点:◎代码编定实现Interface时
C#
中
使用 :Interface,然后按shift+alt+F10回车,呵呵,全部接口需实现的方法属性全部自动生成。当然这个是2005才有的。2003不知有
没
有,反正我是
没
C#
.NET 在一个线程
中
访问另一个线程的控件
.NET 不允许在一个线程
中
直接访问另一个线程创建的控件,会引发异常:线程间操作无效,从不是创建控件XXX的线程访问它。 Windows
窗体
中
的控件被绑定到特定的线程,不具备线程安全性。 如果从另一个线程调用控件的方法,那么必须使用控件的一个 Invoke 方法来将调用封送到适当的线程。 本文以一个线程去改变另一个线程的 Label(lb_Name) 的 Text 属性为例,实
C#
110,546
社区成员
642,581
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章