C# winform 弹出输入框
程序员文章站
2022-05-25 14:38:37
以前用Qt和C++Builder的时候,里面都有一个InputDialog输入框。但是到C# winform里面没有这个。那么要实现这个效果怎么办,当然也是比较容易的。 先看下效果: 点击显示输入框按钮,弹出输入框 在书入框内输入132456,然后按下:确定或者回车键,效果如下: 以上就是输入框的整 ......
以前用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就是从输入框拿到的内容。就这么简单。