双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

窗体卡了,有好的解决办法吗?

hhc123 hhc123 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

void OpenPort()
{

try
{
mdm.Open();
mdm.Ring += new EventHandler<AEventArgs>(mdm_Ring);

}
catch(Exception ee)
{
MessageBox.Show(ee.Message);
}
}
void mdm_Ring(object sender, AEventArgs e)
{
string phone = e.phoneNumber;
if (IsExitWindow()) //是否存在这个窗体
{

/*Thread th = new Thread(delegate()
{
Application.Run(new Form3());

});
th.Start();
代码1 用上这段代码的话数据传入Form3窗体不会卡,一个程序太多Application.Run(new Form3())的话
显得不好管理.
*/
new Form3().Show(); //代码2:用上这句,数据同样可以传入Form3但是窗体会卡住.
//有没有办法用代码2,又不让Form3卡啊.

//MessageBox.Show("电话号码为:"+phone);
Thread.Sleep(500);
if (ShowTel != null)
{
ShowTel(phone);
}







}
else
{
Thread.Sleep(500);
if (ShowTel != null)
{
ShowTel(phone);
}

}


}


public Form3()
{
InitializeComponent();
//Application.DoEvents();
MainFrm.ShowTel += new MainFrm.MyEventHandler(MainFrm_ShowTel);
}

void MainFrm_ShowTel(string Num)
{
SetListBox1(Num);
}
private delegate void SetListBoxCallback1(string str);
public void SetListBox1(string str)
{
//比较调用SetListBox方法的线程和创建listBox1的线程是否同一个线程
//如果不是,则listBox1的InvokeRequired为true
if (listBox1.InvokeRequired)
{
SetListBoxCallback1 d = new SetListBoxCallback1(SetListBox1);

listBox1.Invoke(d, str);
}
else
{
//结果为false,直接执行
listBox1.Items.Add(str);
listBox1.SelectedIndex = listBox1.Items.Count - 1;
listBox1.ClearSelected();
}
}
...全文

相关推荐

winform泛型类窗体继承解决办法C#小Demo

该项目演示了如何在C# WinForm应用中通过泛型基类BaseForm<T>实现窗体的泛型化继承。子窗体如Int32Form继承该基类,并针对不同数据类型(如Int32、String)复用界面逻辑,

光与影的嬉戏

C# 关于窗体继承后,控件事件触发两次的问题解决办法

有时多个窗体功能相同,控件繁多,重新布局费时费力,因此可以利用窗体继承来实现相似功能的窗体。但是在继承窗体后,我们会发现触发继承窗体上的控件时,被继承窗体的相应的控件也会被触发一次。这是因为继承窗体总是会执行被继承窗体的虚方法。 比如form2继承自form1,form1中有一个button,那么相应的form2中也会有一个button,如果我们仅是触发form2中button的click事件的话,form1的button的click也会被触发。 看下面这个例子 private void button1_C

海的-心

QQ窗体_QQ窗体源代码_qq905卡屏代码_

在压缩包中的"QQ窗体"文件很可能是包含整个项目的源代码,包含了类、窗体、资源等所有组成部分。

心若悬河

模仿卡巴基斯渐变窗体

【描述】:描述中的“模仿卡巴基斯渐变窗体”简明扼要地表达了开发者试图在自己的项目中复制或实现与卡巴基斯渐变效果相似的窗体界面。

jingang123gz

窗体假死现象的解决办法

本文将深入探讨窗体假死的原因,并提供相应的解决策略。### 窗体假死的原因1. **长时间计算**:在主线程上执行耗时的操作,如大数据量的循环、复杂的算法计算,会使得主线程无法及时响应UI事件。2.

CTYips
评论 5
收藏 已收藏
分享
返回顶部
hhc123
C# 111,129 成员 642,540 内容