c# - 如何识别文本框中的文本是否以编程方式或用户更改
问题描述
我们使用 TextBox 来显示从 I/O 系统接收到的输入。如果用户在文本框中输入了一些数据,该值将被写入 IO 系统。
我们正在使用 OnTextChanged 事件将用户输入的数据写入 IO 系统。
问题是当我们更新从 IO 系统接收到的值到文本框(来自代码)时,我们得到了这个事件。
是否可以知道 TextBox 的值是由用户更改还是使用代码更改?
解决方案
您可以设置一个名为IsUserInput的布尔变量,在 I/O 系统向文本框发送数据后,您需要将 IsUserInput 设置为 false。在KeyDown
TextBox 的情况下,该变量可以设置为true。最后,您可以使用此变量来确定事件中的文本输入器textChanged
。
请参考以下代码。
public Boolean IsUserInput;
private void Button_Click(object sender, RoutedEventArgs e)
{
IsUserInput = false;
myTextBox.Text = "hellohello";
}
private void myTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (IsUserInput)
{
//write data to I/O sytem
}
}
private void myTextBox_KeyDown(object sender, KeyRoutedEventArgs e)
{
IsUserInput = true;
}
推荐阅读
- python-3.x - 在 generate_presigned_post 中的 Boto3 InvalidAccessKeyId
- java - 使用 Apche poi 的 getDateCellValue() 方法读取 excel 日期列值时如何处理空指针异常
- c++ - 仅编译时 CRC32 用户文字
- powershell - Powershell 两个参数之一是必需的
- java - Java Spark-如何以多列作为参数调用UDF
- python - 我可以为 sklearn 的 train_test_split 指定特定的行吗?我需要知道哪些行是测试数据
- java - 基于 DS 组的协作 BOX 文件夹
- python - 关于 Python Script 中 zip 文件路径的问题
- asp.net - App Insights 日志中的 Api SecurityTokenExpiredExceptions
- r - 根据几个条件重塑数据框