簡體   English   中英

C#輸入對話框的功能

[英]C# input dialog as a function

在C#中,我想創建一個具有以下行為的函數(方法):

  1. 調用時,創建並顯示一個表單。
  2. 等待用戶輸入或選擇表單上的值。
  3. 返回選擇的值。

有沒有簡潔,易讀的方式來實現此功能?

創建您要顯示的表單

public partial class SomeForm : Form
{
    public SomeForm()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        DialogResult = DialogResult.OK;
        Close();
    }

    public string SomeValue { get { return textBox1.Text; } }
}

...

private string GetSomeInput()
{
    SomeForm f = new SomeForm();
    if (f.ShowDialog() == DialogResult.OK)
        return f.SomeValue;
    return null;
}

只需調用Microsoft.VisualBasic.InputBox()

如果您正在尋找對話框功能,則WPF和WinForms都支持此功能。 您只需在顯示的窗口/窗體上調用ShowDialog()即可。 這是一個阻塞的調用,因此在關閉顯示的對話框之前,您不會將處理返回到調用窗口。

要從此調用返回值,只需在“窗體/窗口”上設置屬性,然后在ShowDialog()之后檢查這些屬性。

該函數應該返回您要查找的輸入的類型,並且應該執行以下操作:

protected [InputType] ShowInputDialog()
{
    [InputWindowType] w = new [InputWindowType]();
    w.ShowDialog();
    return w.Input;  //Where input is a property that exposes what the user provided as input
}

創建一個表格。 添加要檢索的值的一些屬性。 從主窗體調用名為ShowDialog的新窗體,當它返回時,從屬性中檢索值。

實例化您的表單,如下所示:

Form myForm = new Form();
var result = myForm.ShowDialog();

我沒有winforms設計師,但是返回值是一個Enum,表示單擊了確定或取消等等。

一旦知道,就可以讀出所選的值。

string selectedValue = myForm.SelectedValueProperty;

暫無
暫無

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

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