您好我在每个tabPage中都有一个带TabControl,3个标签页和控件(文本框和组合框)的表单。
我有一个事件用于tabPages(controlValueChanged)中控件的所有变换,以及tabControl.SelectedIndexChanged的一个事件。
所以如果表单是Dirty,我想启用我的按钮(btnOK)。
Private Sub controlValueChanged(sender As System.Object, e As System.EventArgs)
If bLoading=False 'bLoading is a boolean that is true after I create and populate the controls
Dirty = True 'Dirty is a boolean property
End If
End Sub
因此,当我在其中一个控件中更改某些内容时,事件将被触发并且btnOK已启用
问题是我第一次更改(访问)tabPage控件是TabPage触发controlValueChanged事件导致我的按钮启用,即使我没有更改控件中的任何内容。
如果我第二次访问TabPage,则不会触发该事件
我知道这是正常的,但我怎么能克服这个问题并让我的Dirty = true只有控件因为某些东西正在改变而被激活而不是当tabPage正在改变时?
答案 0 :(得分:0)
如果创建一个新的布尔变量 - DoNotMakeDirty ,那么你可以在TabControl1_SelectedIndexChanged
子集中设置DoNotMakeDirty = True
,然后在你的{controlValueChanged
中添加一个if语句{1}} sub。