从 FORM 获取 textbox.Text 到 CLASS

Get textbox.Text from FORM to CLASS

我已经尝试将 textbox.text 设置为 class 但它不起作用我做错了什么请帮忙!

在我的 form.cs 中它看起来像这样:

    public string score1;
    public void getPlayerOneScore1Input()
    {
        score1 = playerOneScore1TextBox.Text;
    }


    public void playerOneAddScoreButton_Click(object sender, EventArgs e)
    {
        score1Calculator theCalculator = new score1Calculator(score1);


    }

在我的 CLASS 中它看起来像这样:

    class score1Calculator
    {
    public score1Calculator(string score1)
        {
            this.score1= score1;

        }

    public int playerOneDart1Value;
    public void calculateDart1()
    {
        if (score1== "t1" || score1== "T1" || score1== "3")
        {
            playerOneDart1Value = 3;

        }
  else
        {
            MessageBox.Show("Dart 1! This is not a valid input!");
            return;


        }
        }


       }

错误我得到: 'WindowsFormApplication1.score1Calculator' 不包含 'player' 的定义,并且找不到接受类型 'WindowsFormApplication1.score1Calculator' 的第一个参数的扩展方法 'player'(您是否缺少 using 指令或程序集引用?)

您不调用 getPlayerOneScore1Input() 以便分配 score1,在 Form1 中尝试:

 public void playerOneAddScoreButton_Click(object sender, EventArgs e)
    {
        getPlayerOneScore1Input();
        score1Calculator theCalculator = new dart1Calculator(score1);
    }

没必要搞得太复杂。 Textbox.Text 值只是一个字符串。你可以直接用这个引用调用构造函数。

就这么写

score1Calculator theCalculator = new dart1Calculator(playerOneScore1TextBox.Text);

无需在模块级别存储值。

单击按钮时,您没有调用函数 getPlayerOneScore1Input(),它实际上将值赋给 score1

public void playerOneAddScoreButton_Click(object sender, EventArgs e)
{
    getPlayerOneScore1Input();
    score1Calculator theCalculator = new dart1Calculator(score1);
}

而不是将值赋给 class 表单中的 score1 并将其赋值给您的 class 成员字段。你可以试试这个。

public void playerOneAddScoreButton_Click(object sender, EventArgs e)
{
    if (!String.IsNullOrEmpty(playerOneScore1TextBox.Text))
    {
         score1Calculator theCalculator = new dart1Calculator(playerOneScore1TextBox.Text);
    }
}