从C#中的Form返回一个值,可以通过以下几种方法实现:
在Form类中,可以使用DialogResult属性来存储返回值。例如,在Form1中,可以设置DialogResult属性为一个值,然后在主窗体中捕获该值。
// 在Form1中设置DialogResult属性
private void button1_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
}
// 在主窗体中捕获Form1的DialogResult属性
private void button2_Click(object sender, EventArgs e)
{
Form1 form1 = new Form1();
DialogResult result = form1.ShowDialog();
if (result == DialogResult.OK)
{
// 处理返回值
}
}
可以在Form类中定义一个自定义事件,当需要返回值时触发该事件。主窗体可以订阅该事件,并在事件处理程序中获取返回值。
// 在Form1中定义自定义事件
public event EventHandler<EventArgs<string>> ValueReturned;
private void button1_Click(object sender, EventArgs e)
{
if (ValueReturned != null)
{
ValueReturned(this, new EventArgs<string>("返回值"));
}
}
// 在主窗体中订阅自定义事件
private void button2_Click(object sender, EventArgs e)
{
Form1 form1 = new Form1();
form1.ValueReturned += (s, args) =>
{
string returnValue = args.Value;
// 处理返回值
};
form1.ShowDialog();
}
可以使用委托来实现从Form返回值。定义一个委托类型,并在Form类中定义一个该委托类型的属性。主窗体可以将一个方法赋值给该属性,当Form需要返回值时,调用该方法。
// 定义委托类型
public delegate void ValueReturnedHandler(string value);
// 在Form1中定义委托属性
public ValueReturnedHandler ValueReturned;
private void button1_Click(object sender, EventArgs e)
{
if (ValueReturned != null)
{
ValueReturned("返回值");
}
}
// 在主窗体中赋值委托属性
private void button2_Click(object sender, EventArgs e)
{
Form1 form1 = new Form1();
form1.ValueReturned = (value) =>
{
// 处理返回值
};
form1.ShowDialog();
}
以上是从C#中的Form返回一个值的三种方法。
领取专属 10元无门槛券
手把手带您无忧上云