【发布时间】:2017-11-24 22:59:42
【问题描述】:
我需要用名字制作一个记分牌。
在第一个表单中,您通过用户控件添加播放器。
Button1_click 将 UserControl1 添加到面板中。 UserControl1 只是有一个文本框、标签和一个按钮,当插入文本并按下按钮(在 UserControl1 内)时,文本被传输到标签中,并且按钮和文本框被释放。
现在,当用户完成添加足够多的玩家后,他按下第二个按钮,这将打开带有一个面板的第二个表单。
现在这个面板需要第二个用户控件,因为只有一个标签。 (这必须是一个用户控件,因为稍后我会添加分数) 所以现在,程序必须读取,用户在 Form1 中添加的所有名称都将它们添加到 userControl2 标签中,并将该 userControl 添加到 Form2 的面板中
我希望这是有道理的。
这是我到目前为止所做的:
Form1 代码
public List<PlayerAdder> PlayerList { get; set; } = new List<PlayerAdder>();
private void B_AddPlayer_Click(object sender, EventArgs e)
{
count++;
PlayerAdder PA = new PlayerAdder();
PlayerList.Add(PA);
for (int J = 0; J < count; J++)
{
GBX_Title.Text = "Mängijate Arv: " + count;
flowLayoutPanel1.Controls.Add(PA);
}
}
如您所见,我制作了一个列表,其中应存储名称。
我还有一个 CodeFile,其中包含:
public class MyData
{
public List<Players> Players { get; set; }
}
public class Players
{
public string PlayerName { get; set; }
}
应该将名称发送到列表的第一个 UserControl:
public string PlayerName
{
get { return NameInput.Text; }
set { NameInput.Text = value; }
}
Form2 会有这样的代码:
private void PlayerNames()
{
for (int i = 0; i < gameInfo.Players.Count; i++)
{
ScoreboardMenuControl SMC = new ScoreboardMenuControl();
flowlayoutpanel.Controls.Add(SMC);
}
}
和最后一个 ScoreboardMenuControl 我还没有想出任何东西.. 这需要消化很多,但希望你能理解。 这是我想做什么的视觉效果
From1 -> UserControl1 -> 数据
Form1 -> Form2 -> 面板 -> UserControl2 -> 数据
【问题讨论】:
标签: c# winforms user-controls