好吧,那里有很多例子,但它们不是我正在寻找的。检查文本在VB.NET文本框中是否有变化
我的VB.NET应用程序加载并读取XML文件以填充文本框。然后,用户可以更改文本并保存。但是如果用户去做其他事情,比如在下拉框中更改选择内容,我希望它弹出一个对话框,警告他们文本没有保存,并让他们选择放弃更改,保存更改等。 。
关于如何最好地实现这一点的任何想法?我是否创建隐藏的文本框并对其进行比较?我觉得我正在设计一些非常容易完成的工作。
在此先感谢。
[更新] - 由于文本数量很少,因此我将使用两个文本框,然后比较结果,但这里是MsgBox的问题。无论如何,它总是认为我点击是。想法还是应该去一个新的Q?
这里是我的测试代码:
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
If txtDetails.Text <> txtDetailsCOPY.Text Then
MsgBox("You changed text." & vbCrLf & "To save it, click YES" & vbCrLf & "To discard the changes, click NO.", MsgBoxStyle.YesNo, "Text Changed!")
If MsgBoxResult.Yes Then
MsgBox("You clicked YES")
ElseIf MsgBoxResult.No Then
MsgBox("You clicked NO")
End If
ElseIf txtDetails.Text = txtDetailsCOPY.Text Then
'MsgBox("Nothing changed!")
Exit sub
End If
End Sub
我认为保存不必发生,直到用户试图离开对话框,更正? –
一种方法是听'TextChanged'事件。如果这是自文本框的内容被设置以来发生的,那么当前内容可能与原始内容不同。 –
@RobertHarvey - 那是对的。我试图在所有情况下“防止”用户丢失输入信息的问题。 – CJSoldier