0

所以基本上我的问题是我有两种形式,一种是用于填充玩家名称(4players),如果用户没有填写一个或所有文本框,随机名称将使用streamreader生成,所以这部分一切都很好,但我的问题是我将所有内容保存到我的变量中,但是当尝试以其他形式使用相同的变量时,它不会让我为空

    public class Player  //my classs and my player variable
        {
            
         
            string namee; 
            public string Namee { get => name; set => name = value; }
        }

表格 1 代码

 private void bPlay_Click(object sender, EventArgs e)
        {
           Player p1 = new Player();
           if (tbPlayer1.Text.Equals("")) //And that's the same code for all the players 
            {
                rnName = rname.Next(1, 101);
                rnLastName = rlastname.Next(1, 101);
                p1.Namee += nameList[rnName] + lastnameList[rnLastName];
            }
            else
            {
                p1.Namee = tbPlayer1.Text;
                
            }
from2.Show();
    }

现在在我的表格2开始

public Gameplay()
    {
        InitializeComponent();
       
        tbGameplayMessage.Text += " Some text " + p1.Namee;
    }

它只在我的第二种形式的文本框中显示一些文本

谢谢大家的帮助!!:D

4

1 回答 1

0

解决方案 A(构造函数):

定义一个字符串来存储传递的值p1.namee和一个带有string parameterfor的构造函数Gameplay class

public partial class Gameplay : Form
{
    public Gameplay(string na)
    {
        InitializeComponent();
        namee = na;
    }

    string namee;

    // show the text
    private void btnShow_Click(object sender, EventArgs e)
    {
        labeltoShow.Text = namee;
    }
}

然后修改bPlay_Click如下。

private void bPlay_Click(object sender, EventArgs e)
{
    Player p1 = new Player();
    p1.Namee = tbPlayer1.Text; // for test

    Gameplay form2 = new Gameplay(p1.Namee);
    form2.Show();
}

解决方案 B(物业)

Namee在类中定义一个属性Gameplay

public partial class Gameplay : Form
{
    public Gameplay()
    {
        InitializeComponent();
    }

    public string Namee { get; set; }

    // show the text
    private void btnShow_Click(object sender, EventArgs e)
    {
        labeltoShow.Text = Namee;
    }
}

然后在调用bPlay_Click之前设置此属性。Show()

private void bPlay_Click(object sender, EventArgs e)
{
    Player p1 = new Player();
    p1.Namee = tbPlayer1.Text;

    Gameplay form2 = new Gameplay();
    form2.Namee = p1.Namee;
    form2.Show();
}
于 2020-07-23T05:32:15.807 回答