我遇到與this post相同的問題。它導致我的數據集對象的數值可爲空值。當這個對象的屬性初始值爲null時,我可以退出我的文本框。當我的文本框有一個初始數值並清除文本框時,我無法退出。數據綁定文本框無法退出
我想通過清除文本框來提供空值。我知道這是一個驗證問題,將「CausesValidating」屬性設置爲false時,我可以退出。我的屬性設置功能也永遠不會達到。
任何想法或建議嗎?提前謝謝了!
我遇到與this post相同的問題。它導致我的數據集對象的數值可爲空值。當這個對象的屬性初始值爲null時,我可以退出我的文本框。當我的文本框有一個初始數值並清除文本框時,我無法退出。數據綁定文本框無法退出
我想通過清除文本框來提供空值。我知道這是一個驗證問題,將「CausesValidating」屬性設置爲false時,我可以退出。我的屬性設置功能也永遠不會達到。
任何想法或建議嗎?提前謝謝了!
(對不起,起初我沒有看到你的回覆要求比手動附加格式/分析事件更簡單的方法,所以我的答案可能不夠滿足,但對於其他人有同樣的問題,代碼片段可能很有用)。
您可以使用該文本框的綁定的格式和分析事件將空字符串轉換爲DBNull.Value並返回,以便該控件有效並且可以將其保留。
// Call AllowEmptyValueForTextbox() for each TextBox during initialization.
void AllowEmptyValueForTextBox(TextBox textBox)
{
if (textBox.DataBindings["Text"] != null)
{
textBox.DataBindings["Text"].Format += OnTextBoxBindingFormat;
textBox.DataBindings["Text"].Parse += OnTextBoxBindingParse;
}
}
void OnTextBoxBindingParse(object sender, ConvertEventArgs e)
{
// Convert the value from the textbox to a value in the dataset.
string value = Convert.ToString(e.Value);
if (String.IsNullOrEmpty(value))
{
e.Value = DBNull.Value;
}
}
void OnTextBoxBindingFormat(object sender, ConvertEventArgs e)
{
// Convert the value from the dataset to a value in the textbox.
if (e.Value == DBNull.Value)
{
e.Value = String.Empty;
}
}
而是向用戶顯示一個空的文本框時,數據集中的字段爲空的,你可以使用相同的機制,如「(未設置)」職業退休字符串來填充文本框。在Format方法中,將DBNull.Value轉換爲「(未設置)」,並在Parse方法中將其轉換回來。
參見: http://msdn.microsoft.com/en-us/library/system.windows.forms.binding.parse
的
可能重複的[數據綁定文本框:不能退出](http://stackoverflow.com/questions/217912/data-bound-textbox-cant-exit) – 2011-01-07 16:54:00
人們已經投票決定將其作爲您鏈接的問題的完全重複。你能解釋你的問題是如何不同的,以及爲什麼其他問題的答案*不適用於你的情況? – 2011-01-07 17:02:53