0
我有一個CheckBox作爲窗體上的自定義控件的一部分。我處理其驗證事件以確保最多勾選5個複選框。如果已經勾選了5個,我將取消該事件。這工作出色。從其他控件觸發的驗證事件?
但是,現在,一旦我有5個複選框打勾,每事件被取消(除非取消選中第一個選中的複選框)。這意味着按下按鈕,文本框焦點,組合下拉列表和應用程序退出不起作用。發件人對象仍然是一個CheckBox;只是不確定爲什麼它被觸發。
爲什麼我每次觸發複選框的驗證事件什麼東西? (我以爲只有當你點擊複選框控件時纔會觸發它)。正在使用「驗證」事件的正確方法?
其他奇怪的事情:當我選擇或取消選擇第五個複選框時,即使有事件處理程序,也沒有處理任何事件。如果是第4或第6個複選框,同一複選框將觸發驗證事件。
我的代碼:在父窗體:
private List<MyCustomClass> GetSelectedItems()
{
List<MyCustomClass> result = new List<MyCustomClass>();
foreach (MyCustomClass c in listOfControls)
{
if (c.Selected())
{
result.Add(c);
}
}
return result;
}
private void validate(object sender, CancelEventArgs e)
{
if (GetSelectedItems().Count == 5)
{
e.Cancel = true;
}
}
MyCustomClass的Selected
方法只返回chkBox.Checked。
你是什麼意思的「輸入一個CheckBox」? – Smashery 2010-12-06 02:39:05