从另一个标签页获取值
Get value from another tabpage
我目前在使用 C# 从 windows 表单中的另一个标签页获取值时遇到问题。我在 tabControl 中有 tabPage1 和 tabPage 2。我想将保存在 tabpage1 中的值用于 tabPage 2 中的另一个计算,但我找不到执行此操作的方法。这是我想要进一步理解我的问题的示例。请任何人帮助我解决这个问题,谢谢。
private void button1_Click_1(object sender, EventArgs e)
{
double age = Convert.ToDouble(richTextBox1.Text);
}
private void button2_Click(object sender, EventArgs e)
{ double a=0;
for (int i=1,i<age,i++)
{
a=a+i;
}
}
P.s。 button1在tabPage1,button2在tabPage 2
这是变量作用域的问题。在您的 button2_Click
方法中,您可能收到有关 age
未声明的错误。
有几个选项:
- 再次在您的
button2_Click
方法中获取年龄值。
private void button2_Click(object sender, EventArgs e)
{
double a = 0;
double age = Convert.ToDouble(richTextBox1.Text); // Get value again locally.
for (int i = 1; i < age; i++)
{
a += 1;
}
}
这将意味着 age
在 button2_Click
范围内可用。
- 将其存储在表单的 属性 中,使其可用于该表单中的所有方法。
public partial class Form1 : Form
{
private int Age { get; set; } // Property that stores age in the class.
private void button1_Click_1(object sender, EventArgs e)
{
Age = Convert.ToDouble(richTextBox1.Text); // Store in property not local var
}
private void button2_Click(object sender, EventArgs e)
{
double a = 0;
for (int i = 1; i < Age; i++) // Loop to property value not local var.
{
a += 1;
}
}
}
您选择哪个选项取决于您的使用情况(例如,如果在按下按钮 2 之前必须先按下按钮 1,那么您将希望选择选项 2;但是如果您可以直接按下按钮 2 而无需先按下按钮1 那么选项 1 就可以了)。
请注意,在您的 for
循环中您使用了逗号,而您需要使用分号的地方,我上面的示例更正了这一点。
此外,正如@LarsTech 提到的,您需要理想地使用 int.TryParse
,因为文本框中的值可能不是数字。
我目前在使用 C# 从 windows 表单中的另一个标签页获取值时遇到问题。我在 tabControl 中有 tabPage1 和 tabPage 2。我想将保存在 tabpage1 中的值用于 tabPage 2 中的另一个计算,但我找不到执行此操作的方法。这是我想要进一步理解我的问题的示例。请任何人帮助我解决这个问题,谢谢。
private void button1_Click_1(object sender, EventArgs e)
{
double age = Convert.ToDouble(richTextBox1.Text);
}
private void button2_Click(object sender, EventArgs e)
{ double a=0;
for (int i=1,i<age,i++)
{
a=a+i;
}
}
P.s。 button1在tabPage1,button2在tabPage 2
这是变量作用域的问题。在您的 button2_Click
方法中,您可能收到有关 age
未声明的错误。
有几个选项:
- 再次在您的
button2_Click
方法中获取年龄值。
private void button2_Click(object sender, EventArgs e)
{
double a = 0;
double age = Convert.ToDouble(richTextBox1.Text); // Get value again locally.
for (int i = 1; i < age; i++)
{
a += 1;
}
}
这将意味着 age
在 button2_Click
范围内可用。
- 将其存储在表单的 属性 中,使其可用于该表单中的所有方法。
public partial class Form1 : Form
{
private int Age { get; set; } // Property that stores age in the class.
private void button1_Click_1(object sender, EventArgs e)
{
Age = Convert.ToDouble(richTextBox1.Text); // Store in property not local var
}
private void button2_Click(object sender, EventArgs e)
{
double a = 0;
for (int i = 1; i < Age; i++) // Loop to property value not local var.
{
a += 1;
}
}
}
您选择哪个选项取决于您的使用情况(例如,如果在按下按钮 2 之前必须先按下按钮 1,那么您将希望选择选项 2;但是如果您可以直接按下按钮 2 而无需先按下按钮1 那么选项 1 就可以了)。
请注意,在您的 for
循环中您使用了逗号,而您需要使用分号的地方,我上面的示例更正了这一点。
此外,正如@LarsTech 提到的,您需要理想地使用 int.TryParse
,因为文本框中的值可能不是数字。