我有一個窗體與多個TextBox
控件,我想檢查是否有任何值自打開窗體後進行了更改。檢測多個文本框共同映射到DataTable的初始數據的更改
我展示DataTable
的單個記錄使用一些TextBox
控制和由於有多個字段,所以也有我的form.I多個TextBox
控制正在使用數據綁定。並且我想要突出顯示TextBox
控件,如果它們的值與加載時行的原始值不同。
這是我試過的。我使用了一個DataTable
,並填充了數據,表示爲數據庫中存儲過程的單行和5列。在TextBox
中的Validated
事件中,代碼比較DataTable
中合適的列與編輯文本之間的值。如果它將TextBox.Backcolor
變成黃色。這裏是我的代碼:
private void txtName_Validated(object sender, EventArgs e)
{
DataTable dt = Person.DETECT_CHANGES(txtName.Text, txtNickName.Text); //could be many columns here
foreach (DataRow row in dt.Rows)
{
if ((txtName.Text).Trim() != row["fullName"].ToString())
{
txtName.BackColor = Color.Yellow;
break;further
}
else
{
txtName.BackColor = Color.White;
}
}
它工作正常。但是因爲我有很多TextBoxe
,所以我想要一個方法來比較TextBox
的每個DataTable
的列,而不是每個控件都重複一個一個的代碼。例如,如果文本txtName
(TextBox
)與DataTable
中名爲fullName
的第一列相比較,並且文本框txtNickName
通過名爲nickname
.....等等的第二列進行比較並給出結果(將任何改變的TextBox.BackColor
變爲黃色) 。
爲什麼你有一個'foreach'循環,同時要檢查'TextBox'值已經改變?這是一個單一的值,應該與單個值進行比較。 –
那就對了..但我這樣做是因爲我計劃比較許多文本框與許多列..因爲我想在我的問題 –
只是爲了確保您的要求** 1)**您使用一些文本框顯示DataTable的單個記錄? ** 2)**您正在使用數據綁定。 ** 3)**如果文本框的值與加載時行的原始值不同,則需要突出顯示文本框。 –