如何:从对话框中检索数据
更新:2007 年 11 月
使用对话框,您的程序可以与用户进行交互,并检索用户在对话框中输入的数据以在应用程序中使用。有若干内置的对话框可以在应用程序中使用。有关更多信息,请参见在应用程序中使用内置对话框。您还可以创建您自己的对话框。
在用户单击应用程序主窗体上的按钮时显示一个对话框来收集信息,这是 Windows 窗体开发中的一项常见任务。有关此任务的示例,请参见 Visual C# 速成版 IDE。向窗体中添加一个 ListBox 控件时,可以在“属性”窗口中单击“Items”属性以显示一个对话框。借助此对话框,您可以在文本框的各行中快速键入文本。单击“OK”(确定)时,应用程序就会将每行文本添加到 ListBox 控件中。如果您希望用户在应用程序的列表框中添加自己的项,则可以创建您自己的字符串编辑器对话框。
创建应用程序的主窗体
在“文件”菜单上,单击“新建项目”。
将出现“新建项目”对话框。
单击“Windows 窗体应用程序”,然后单击“OK”(确定)。
一个名为 Form1 的窗体将添加到项目中。
将一个“ListBox”控件从“工具箱”中拖到此窗体上,然后在“属性”窗口中更改以下属性:
属性
值
Modifiers
Public
将一个“Button”控件添加到此窗体中,然后在“属性”窗口中更改以下属性:
属性
值
Name
addItems
Text
Add(添加)
创建对话框
在“项目”菜单上,单击“添加 Windows 窗体”,保留默认名称 Form2,然后单击“Add”(添加)。
将一个 Label 控件从“工具箱”中拖到此窗体上,然后将“Text”属性更改为“输入字符串(每行一个)”。
向此窗体添加一个 TextBox 控件,然后在“属性”窗口中更改以下属性。
属性
值
Multiline
True
Scrollbars
Both
Size
255, 160
向此窗体添加一个 Button 控件,然后在“属性”窗口中更改以下属性:
属性
值
Name
okButton
Text
OK(确定)
从对话框中检索数据
在 Windows 窗体之间传递数据的方式有多种。在此示例中,您会将 Form1 传递给 Form2 的构造函数。
从对话框中检索数据
双击“OK”(确定)按钮以创建默认的 Click 事件处理程序。
在向此过程添加代码之前,应当为主窗体创建一个变量,并为 Form2 类创建一个新的构造函数。
在默认的构造函数下面添加以下代码。此代码将创建一个重载的构造函数,该构造函数需要 Form1 作为参数。
Form1 mainForm; public Form2(Form1 mainForm) { this.mainForm = mainForm; InitializeComponent(); }
在 okButton 的 Click 事件处理程序中,添加以下代码。此代码将清除列表框中所有的现有文本,将 Form2 上的文本框的每行文本赋给一个数组,然后将该数组的每一项添加到 Form1 上的列表框中。
if (this.textBox1.Text != string.Empty) { mainForm.listBox1.Items.Clear(); string[] stringsEntered = textBox1.Lines; for (int count = 0; count < stringsEntered.Length; count++) { mainForm.listBox1.Items.Add(stringsEntered[count]); } } this.Close();
在“解决方案资源管理器”中右击 Form1,然后单击“视图设计器”。
双击“Add”(添加)按钮以添加默认的 Click 事件处理程序,然后添加以下代码以创建 Form2 的一个实例并显示该窗体:
Form2 subForm = new Form2(this); subForm.Show();
按 F5 运行代码。
在此窗体打开时,单击“Add”(添加)。
在对话框打开时,键入下面的颜色列表,并在键入每个单词后按 Enter。
蓝色
绿色
黄色
红色
单击“OK”(确定)。
验证在此对话框中键入的数据是否会在 Form1 的列表框中显示。
关闭应用程序。