我是Visual Studio(Express)和C#的新手。我制作了一个窗体,它接受一些用户输入,然后在消息框中显示该输入(自动带有一个“确定”按钮,单击时关闭消息框)。Windows窗体启动另一种形式
相反,我想通过第一张表单收集的显示在显示一个消息(标签)的新形式的用户输入,显示输入,并提供两个按钮选择:一是接受和一个去返回并更改输入。
我不知道如何做到这一点,任何建议表示赞赏。
我是Visual Studio(Express)和C#的新手。我制作了一个窗体,它接受一些用户输入,然后在消息框中显示该输入(自动带有一个“确定”按钮,单击时关闭消息框)。Windows窗体启动另一种形式
相反,我想通过第一张表单收集的显示在显示一个消息(标签)的新形式的用户输入,显示输入,并提供两个按钮选择:一是接受和一个去返回并更改输入。
我不知道如何做到这一点,任何建议表示赞赏。
听起来像是你需要确认消息或类似的东西。 MessageBox类提供此功能。
DialogResult btn = MessageBox.Show("your message",
"your title",
MessageBoxButtons.OKCancel,
MessageBoxIcons.Question);
if(btn == DialogResult.Cancel)
// User canceled, return to the string editor
else
// User confirmed, do you work
如果你愿意也有用于MessageBoxButtons.YesNo枚举相应DialogResult.Yes和DialogResult.No
See here for a reference on MessageBoxButtons
See here for a reference on MessageBoxIcons
你需要的是以某种方式将信息从第一种形式传递到第二种形式。这可以通过在子表单上设置属性来完成,可以通过单独的属性(字符串,整数等)或完整的数据结构(对象)来设置。输入表单收集信息,创建子子表单,设置属性,然后显示表单。许多其他方式来做到这一点,但从简单开始,然后建立复杂。
如果您需要将pass some data添加到您的第二个表单中,请在该表单上创建属性/属性或通过构造函数参数提供数据。第二种形式的两个按钮也分配为DialogResult property。将DialogResult.OK
设置为将接受输入的按钮。核实第二种形式返回的值,当你show it as dialog并做适当的行动:
using(SecondForm secondForm = new SecondForm()
{
secondForm.Data = yourData;
if (secondForm.ShowDialog() != DialogResult.OK)
{
// go back and change input
return
}
// accept input
}
所以你Form2
需要有一定的价值,提供无论是创造它,它存在。没有这些信息,绝不应该有Form2的实例。这告诉你它应该在该窗体的构造函数中(而不是该窗体上的属性)。
这意味着,在Form1
你会有这样的事情:
string someData; //populate based off of user input
Form2 childForm = new Form2(someData);
//then hide current form and show child form
在窗体2,你可能已经有一个构造函数,你只需要修改它的东西,如:
public Form2(string someData) //TODO give better parameter name
{
someLabel.Text = someData;
}
下一页我们需要处理回到父表单的子表单。我觉得处理这个问题的最好方法是使用事件。该表单有一个可以附加到的FormClosing
事件;这将允许您的父窗体在子窗体关闭时运行一些代码。
string someData; //根据用户输入填充 Form2 childForm = new Form2(someData);
childForm.FormClosing += (sendingForm, args) =>
{
this.Show();
bool result = childForm.DidUserAccept;
}
这里我用一个属性的子窗体DidUserAccept
上,用户是否接受或拒绝该值。我们需要定义在窗体2:
public bool DidUserAccept {get; private set;}
在按钮单击处理程序接受/取消您可以设置相应的结果,然后关闭窗体(闭幕会引发Closed事件和矮他相关的代码Form1
。
这将是有益的,以显示你的代码,显示你是如何显示的用户条目的形式。 –