欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# winform 弹出输入框

程序员文章站 2023-04-07 09:43:01
以前用Qt和C++Builder的时候,里面都有一个InputDialog输入框。但是到C# winform里面没有这个。那么要实现这个效果怎么办,当然也是比较容易的。 先看下效果: 点击显示输入框按钮,弹出输入框 在书入框内输入132456,然后按下:确定或者回车键,效果如下: 以上就是输入框的整 ......

以前用qt和c++builder的时候,里面都有一个inputdialog输入框。但是到c# winform里面没有这个。那么要实现这个效果怎么办,当然也是比较容易的。

先看下效果:

C# winform 弹出输入框

点击显示输入框按钮,弹出输入框

C# winform 弹出输入框

在书入框内输入132456,然后按下:确定或者回车键,效果如下:

C# winform 弹出输入框

以上就是输入框的整个效果。

 

现在就上核心代码。

1、首先添加新建项:c#窗体

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

C# winform 弹出输入框

修改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就是从输入框拿到的内容。就这么简单。