当前位置: 首页 > 编程语言 > C#

Winforms点击“事件未触发”分享

时间:2023-04-10 16:16:20 C#

Winforms点击“事件未触发”我有一个winforms应用。我在这个应用程序中有几个表单(主表单和几个专用表单),在一个表单上,单击事件不会触发我的任何按钮。并不是处理程序中的代码被破坏了。这可以通过单击按钮时从未到达处理程序第一行上的断点来确定。其他事件正在运行(我在此表单上使用CheckedChanged事件并且它们正在运行)。我的团队成员已经审查过了,也找不到问题所在。这是我的代码的简化视图:DesignergeneratedcodepartialclassMyForm{privateSystem.Windows.Forms.ButtonaddButton;privatevoidInitalizeComponent(){this.addButton=newSystem.Windows.Forms.Button();this.addButton.Name="addButton";//在这里绘制语句this.addButton.Click+=newSystem.EventHandler(this.addButton_Click);this.Controls.Add(this.addButton);}}我的代码publicpartialclassMyForm:Form{publicMyForm(){InitializeComponent();}privatevoidaddButton_Click(objectsender,EventArgse){MessageBox.Show("调试器没有到达这一行的断点");编辑:测试的附加信息我的表单中有几个下拉列表。我发现只有在我首先在下拉框中进行选择时才会触发click事件。如果我没有选择,按钮处理程序中的断点将触发。否则它不会。没有为这些下拉列表注册的事件。原因如下:使用数据绑定时,当您在数据绑定控件中输入值时,它首先尝试验证该条目,然后如果该条目有效,数据绑定会将值放入数据源中,但如果发生验证错误,则验证返回false并且您的控件进入无效模式。当窗体的子控件未经验证时,默认情况下您无法从无效控件更改焦点。默认情况下,单击按钮会导致验证失去焦点的控件,因此您不能单击按钮,因为您看到按钮反映到鼠标但没有实际单击。如果您处理TextBox之类的TextBoxValidating事件并设置e.cancel=true,则会发生同样的问题。修复方法如下:您可以使用以下任何选项修复此问题:我在进一步测试后发现了这一点。我的问题不在于按钮事件,而是在从下拉框中进行选择后表单被阻止。我还没有找到为什么选择下拉列表后的表单块(它没有事件,但它确实有数据绑定,所以有一些可能的原因)。感谢您的帮助!这将为您完成ChangepublicSc??heduleMeeting(){InitializeComponent();}以上就是C#学习教程:Winforms点击“事件未触发”的全部内容,如果对大家有用还需要了解更多关于C#学习教程,希望大家多多关注——publicMyForm(){初始化组件();}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: