本周做了一个线程中打开多个窗体的东西,父窗体打开子窗体,父窗体获取子窗体的控件值,此处我在打开窗体时,分别在不同的线程中打开的,不做多考虑,上手就做,到后来程序崩掉了,原因是什么了,找不到对应的控件,这是为什么了,因为创建子窗体的过程和创建父窗体的过程并不在同一线程中,程序无法获知你要找的控件 ...
由于Windows 窗体控件本质上不是线程安全的。因此如果有两个或多个线程适度操作某一控件的状态 set value ,则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的bug,包括争用和死锁的情况。于是在调试器中运行应用程序时,如果 创建某控件的线程之外的其他线程试图调用该控件,则调试器会引发一个InvalidOperationException 本文用一个很简单的示例来讲解这 ...
2012-09-08 21:12 0 3018 推荐指数:
本周做了一个线程中打开多个窗体的东西,父窗体打开子窗体,父窗体获取子窗体的控件值,此处我在打开窗体时,分别在不同的线程中打开的,不做多考虑,上手就做,到后来程序崩掉了,原因是什么了,找不到对应的控件,这是为什么了,因为创建子窗体的过程和创建父窗体的过程并不在同一线程中,程序无法获知你要找的控件 ...
我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。首先来看传统方法: 运行这段代码,我们会看到系统抛出一个异常: 这是因为.net ...
c#中如何跨线程调用windows窗体控件? 我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。首先来看传统方法: 运行这段代码,我们会看到系统抛出一个异常: 这是 ...
c#中如何跨线程调用windows窗体控件? 我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。首先来看传统方法: public ...
2)窗体A和窗体B之间的调用 ,比较简单例如:Form1和Form2分别为两个winform窗体,若想在窗体1中调用窗体2的控件,直接这样就行,如下: Form2.Button;(当然这个button一定是窗体2中所拥有的,设置为public就行) 2)一个类中调用窗体中的控件,这种比较复杂 ...
1.创建窗体对象 属性要设置为public。 2.不创建窗体对象 调用: ...
场景 在同一个Winform窗体中,点击一个Button按钮时, 获取同窗体的其他控件的属性。 首先需要对要获取的控件赋予Name属性,然后就可以通过Name进行获取。 实现 在Button的点击事件中: ...
第一步:如何在线程中打开窗体 SendEmailProgress progress=new SendEmailProgress(); //添加窗体关闭事件 progress.Closing += (s, ev ...