将值从Winform传递给Class
本文关键字:Class Winform | 更新日期: 2023-09-27 18:29:58
我想将一个Value从Form中的Textbox发送到另一个类。我想在文本框中键入一个数字,然后再把这个数字传回来。但我只得到数字0作为输出。点击按钮,提交输入并传递(理论上)。
我的代码如下:
public int ReturnValue;
public void button1_Click(object sender, EventArgs e)
{
ReturnValue = int.Parse(textBox1.Text);
}
这是来自另一个类的代码段,它在case中构造。
case "&Create Class Instance":
MultiplyInstance m = new MultiplyInstance();
m.Show();
int multiplier = m.ReturnValue;
变量乘数的值应该是我在文本框中键入的值。但是我打印的时候总是0。我做错了什么?
使用ShowDialog
而不是Show()
,您得到的是一个整数的默认值,因为您的表单处理在显示表单时仍在继续。
case "&Create Class Instance":
using(MultiplyInstance m = new MultiplyInstance())
{
m.ShowDialog();
int multiplier = m.ReturnValue;
}
ShowDialog
使表单成为模态表单,因此它将在表单打开时阻止执行(这也意味着在该表单打开时无法访问其他表单)
用m.ShowDialog()替换m.Show()。
case "&Create Class Instance":
MultiplyInstance m = new MultiplyInstance();
m.ShowDialog();
int multiplier = m.ReturnValue;
显示()一个窗体将打开该窗体并立即执行代码中的下一行int乘数=m.returnValue在这一点上为stiil 0。
同时将按钮点击事件更改为
private void button1_Click(object sender, EventArgs e)
{
ReturnValue = int.Parse(textBox1.Text);
Close();
}
因为你必须关闭表格才能回到你的课堂。
您还应该将button1_click设置为私有,因为它只能由表单执行。