Winform 用户控件响应函数会执行多次

Winform 用户控件响应函数会执行多次,第1张

orderinput.bt_Order_Step1.Click+=new EventHandler(bt_Order_Step1_Click)改成

orderinput.bt_Order_Step1.Click-=new EventHandler(bt_Order_Step1_Click)

orderinput.bt_Order_Step1.Click+=new EventHandler(bt_Order_Step1_Click)

home.bt_Order.Click+=new EventHandler(bt_Order_Click)改成

home.bt_Order.Click-=new EventHandler(bt_Order_Click)

home.bt_Order.Click+=new EventHandler(bt_Order_Click)

原因是你每次执行click都会给button追加一个click事件,但因为click事件可以追加多个,所以不会覆盖之前追加的,因此就每执行一次就多一次。

解决方法就是在每次添加事件关联前先去掉事件关联(第一次也不会出错,没有事件关联也可以删除事件关联,不出错)

另外一种更好的方式是,把这些关联都写到Form_Load里去,只执行一次,就不会有这个问题了。

这是winform程序里的,试试: private void Form1_Load(object sender, EventArgs e){OperatingSystem os = Environment.OSVersion switch (os.Platform){case PlatformID.Win32Windows:switch (os.Version.Minor){case 0:label1.Text = "Windows 95 " break case 10:if (os.Version.Revision.ToString() == "2222A ")label1.Text = "Windows 98 第二版 " elselabel1.Text = "Windows 98 " break case 90:label1.Text = "Windows Me " break }break case PlatformID.Win32NT:switch (os.Version.Major){case 3:label1.Text = "Windows NT 3.51 " break case 4:label1.Text = "Windows NT 4.0 " break case 5:switch (os.Version.Minor){case 0:label1.Text = "Windows 200 " break case 1:label1.Text = "Windows XP " break case 2:label1.Text = "Windows 2003 " break }break case 6:switch (os.Version.Minor){case 0:label1.Text = "Windows Vista " break case 1:label1.Text = "Windows 7 " break }break }break }}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/9454986.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存