繁体   English   中英

从另一个标签页获取值

[英]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;
        }
 }

Ps button1 在 tabPage1 和 button2 在 tabPage 2

这是变量作用域的问题。 在您的button2_Click方法中,您可能会收到有关未声明age的错误。

有几个选项:

  1. 再次在button2_Click方法中获取 age 的值。
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;
       }
}

这意味着agebutton2_Click的范围内可用。

  1. 将它存储在表单的一个属性中,使其可用于该表单中的所有方法。
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 ,因为文本框中的值可能不是数字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM