1
我已經創建了一個自定義CollectionEditor
,但我想在用戶單擊「確定」按鈕時驗證我的收藏。我嘗試了以下方法:如何驗證自定義集合編輯器中的集合?
protected override CollectionForm CreateCollectionForm()
{
_form = base.CreateCollectionForm();
_form.FormClosing += _form_FormClosing;
return _form;
}
因此,當用戶單擊確定時,它會觸發_form_Closing事件。
private void _form_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = !Validate();
}
而且Validate
回報false
(講形式不關閉)所有集合的現有成員都是從UI
刪除:但是當我這樣做這工作。當然,收集的物品不應該從UI
消失?
還有什麼我需要打電話嗎?
不幸的是,CollectionForm不是爲這種欺騙而設計的。實際上,當你按下ok時,它會清空右側的列表框,不管怎樣(也可以用列表框中的內容來設置你的對象)。您可以嘗試根據您的上下文來啓用/禁用OK按鈕(這是_form.AcceptButton),但這需要您對更改作出反應,而不是等待用戶按下OK按鈕。 –
Ouch。這很混亂。這將需要集合中有效的項目的默認值,在這種情況下,它們永遠不會有效。哦,這給了我一些繼續。 – mxcolin
我不認爲有一種方法可以捕獲被點擊的確定按鈕。 – mxcolin