C# winform 彈出輸入框

之前用Qt和C++Builder的時候,裏面都有一個InputDialog輸入框。可是到C# winform裏面沒有這個。那麼要實現這個效果怎麼辦,固然也是比較容易的。佈局

先看下效果:ui

點擊顯示輸入框按鈕,彈出輸入框spa

在書入框內輸入132456,而後按下:肯定或者回車鍵,效果以下:.net

以上就是輸入框的整個效果。code

 

如今就上核心代碼。orm

一、首先添加新建項:C#窗體blog

二、添加控件,並修改佈局以下效果事件

修改TextBox控件name爲txtString,get

修改button1控件name爲btnOK,Text爲肯定,input

修改取消button2控件name爲btnCancel,Text爲取消。

而後在按下F7,在代FrmInputDialog類裏面添加代碼:

public delegate void TextEventHandler(string strText);

public TextEventHandler TextHandler;

三、雙擊按鈕分別添加按鈕事件,代碼以下:

private void btnOk_Click(object sender, EventArgs e)
{
    if (null != TextHandler)
    {
        TextHandler.Invoke(txtString.Text);
        DialogResult = DialogResult.OK;
    }
}

private void btnCancel_Click(object sender, EventArgs e)
{
    DialogResult = DialogResult.Cancel;
}

四、添加TextBox的Key_Press事件,代碼以下:

private void txtString_KeyPress(object sender, KeyPressEventArgs e)
{
    if (Keys.Enter == (Keys)e.KeyChar)
    {
        if (null != TextHandler)
        {
            TextHandler.Invoke(txtString.Text);
            DialogResult = DialogResult.OK;
        }
    }
}

五、而後在項目中添加新建項:C#類

命名爲:InputDialog

而後修改InputDialog.cs中代碼:

public static class InputDialog
{
    public static DialogResult Show(out string strText)
    {
        string strTemp = string.Empty;

        FrmInputDialog inputDialog = new FrmInputDialog();
        inputDialog.TextHandler = (str) => { strTemp = str; };

        DialogResult result = inputDialog.ShowDialog();
        strText = strTemp;

        return result;
    }
}

以上就是自定義輸入框的核心代碼。

用法示例:

在按鈕事件下添加代碼:

string strText = string.Empty;
InputDialog.Show(out strText);

strText就是從輸入框拿到的內容。就這麼簡單。

 demo下載

相關文章
相關標籤/搜索