有没有办法让控件始终启用,这样如果你设置Enabled = False
它没有效果?
我试图以这种方式向EnabledChange事件添加一个处理程序:
AddHandler mybutton.EnabledChange, Sub()
mybutton.EnabledChange = True
End Sub
但它在很多情况下会导致stackoverflow异常,例如当您尝试禁用包含该按钮的控件时。那还有另一种方法吗?
答案 0 :(得分:1)
尝试改变这样......这对我有用
Private Sub myButton_EnabledChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles myButton.EnabledChanged
If Not myButton.Enabled Then myButton.Enabled = True
End Sub
答案 1 :(得分:0)
否
不在任何良好的编码习惯范围内
什么是代码问题,会有解决方案吗?
在控件的属性中,enabled = true。您不需要为其编写代码。它在表单设计中。
回应你的评论:
你可以使用matzone选择的补丁。个人而言,我赞成从循环中删除那个特定的控件,我在vb.net中遇到了嵌套和无限循环的问题...我只是喜欢在我的程序中,减少不必要的更改,只是帮助防止错误。这意味着你必须经历并确保代码重新启用控件总是被调用,只要它在循环中被更改..如果你问我我会要求错误..在短期内可能会有更多的工作,但最好先选择控件。我遇到了类似的困境。
请参阅MSDN链接
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.enabled.aspx
答案 2 :(得分:0)
这对我有用
Protected Overridable Sub cmdCancel_EnabledChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdCancel.EnabledChanged
If DirectCast(eventSender, TPDotnet.GUIControls.WinButtonEx).Enabled = False Then
cmdCancel.Enabled = True
End If
End Sub
条件处理正确。