簡體   English   中英

C#中的自定義對話框?

[英]Custom dialog box in C#?

我有一個按鈕,當單擊時,會打開一個對話框,其上有各種控件,如單選按鈕和文本框。 如果確定,則該對話框中的值將傳遞回按鈕,其余代碼將使用這些值進行處理。 如果取消則不做任何事。

我怎樣才能做到這一點? 我正在考慮使用這些控件創建另一個表單,並讓該按鈕調用新表單,但我希望其余控件停止,直到表單像對話框一樣完成。

1.)使用所有必要的UI元素創建您正在討論的表單。 還要為其添加“確定”和“取消”按鈕。

2.)在“確定”和“取消”按鈕的屬性窗格中,將DialogResult值分別設置為“確定”和“取消”。 此外,您還可以將Form的CancelButton屬性設置為您創建的Cancel按鈕的屬性。

3.)向對話框添加與您要返回的值對應的其他屬性。

4.)要顯示對話框,請執行以下操作

using( MyDialog dialog = new MyDialog() )
{
   DialogResult result = dialog.ShowDialog();

   switch (result)
   {
    // put in how you want the various results to be handled
    // if ok, then something like var x = dialog.MyX;
   }

}

你可以這樣做。 創建一個新表單。 從您的主表單,您可以使用以下方法調用自定義表

CustomForm customForm = new CustomForm();
customForm.ShowDialog(); 

確保將相關按鈕添加到自定義窗體並將其DialogResult屬性設置為“確定”,“取消”或其他任何內容。

在處理對話框的代碼中的某處,您還可以顯式設置結果。 例如,您可以將以下代碼放在按鈕單擊事件處理程序中。

OnOKButton_Click(object sender, EventArgs e)
{
    this.DialogResult = DialogResult.OK;
    this.Dispose();
}
  • 向Windows窗體添加按鈕。 我通常將按鈕命名為cmdOK或cmdCancel

在此輸入圖像描述

  • 在對話框窗體中定義“取消”和“確定”按鈕

在此輸入圖像描述

一種方法是在對話框表單中創建一個事件。 根據您要發回的值的數量,您可以在事件委托中擁有參數。 更好的方法是為包含要返回的屬性列表的參數創建一個小類或結構。

如果單擊“確定”,則使用對話框中的值激活事件。 對於取消,不會觸發事件。

在帶有按鈕的表單中,您可以為事件掛鈎。 這會收到您的價值觀,然后您可以隨心所欲地使用它們。

http://msdn.microsoft.com/en-us/library/aa645739(v=vs.71).aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM