1.起因
一开始是直接用 TextBox接收用户的输入内容,但是有时候不想在窗体上加控件,所以就想到了另一种办法,弹出一个输入框,输入并获取内容,之后输入框又消失不见,不占位置。
2.用法
先要在项目中引入框架 Microsoft.VisualStudio
再引入命名空间 using Microsoft.VisualBasic;
之后便可以使用了 Interaction.InputBox()
代码如下:
using Microsoft.VisualBasic;
using System;
using System.Threading;
using System.Windows.Forms;
namespace WindowsFormsApp13 {
public partial class Form1 : Form {
//当前线程的上下文
static SynchronizationContext synt; //线程切换,异步执行要用到
public Form1() {
synt = SynchronizationContext.Current; //不能在申明时初始化
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
//最后两个参数一般为-1
String s = Interaction.InputBox("提示文字", "标题","输入框默认内容",-1,-1);
this.result.Text = s;
}
}
}
一般可以对获取的内容做一个判断,再操作
if (!String.IsNullOrEmpty(s)) {
this.result.Text = s;
}
//其它问题:
有时候界面的代码还在,但是界面在运行时却看不到了(发生概率很小,我真的遇见过)
这个时候,不要急于点编译运行,可以关闭项目,再重新打开项目。
或者在 InitializeComponent()中查看窗体有没有this.controls.Add(控件),没有这些语句就加上。
实在不行,保存代码。新建项目,把代码粘贴过去。