C# winform 彈出輸入框


以前用Qt和C++Builder的時候,里面都有一個InputDialog輸入框。但是到C# winform里面沒有這個。那么要實現這個效果怎么辦,當然也是比較容易的。

先看下效果:

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

在書入框內輸入132456,然后按下:確定或者回車鍵,效果如下:

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

 

現在就上核心代碼。

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

2、添加控件,並修改布局如下效果

修改TextBox控件name為txtString,

修改button1控件name為btnOK,Text為確定,

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

然后在按下F7,在代FrmInputDialog類里面添加代碼:

public delegate void TextEventHandler(string strText);

public TextEventHandler TextHandler;

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

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;
}

4、添加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;
        }
    }
}

5、然后在項目中添加新建項: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下載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM