我在控件显示方面遇到问题,因为我希望它们显示出来。我是一名初学程序员,在表单方面非常如此,所以任何帮助都会受到赞赏。
public void CreateCard(Card card)
{
CardGUI topCard = new CardGUI(card);
topCard.Location = new Point(50, 50);
aPanel.Controls.Add(topCard);
DrawPlacement(topCard);
}
public void DrawPlacement(CardGUI cardGui)
{
cardGui.Location = new Point(a, b);
a += 18; // Space the cards
// Put the cards on a new line after half have been laid out.
counter++;
if (counter == 26)
{
a = 140;
b = 130;
}
this.Update();
aPanel.Controls.Add(cardGui);
cardGui.BringToFront();
}
我的问题是,我希望添加到CreateCard
面板中的控件以及DrawPlacement
中添加的控件都显示出来。但CreateCard
中的控件未按预期显示。如果我将注释发送到DrawPlacement
,我确实会显示,所以我认为它与Location
属性有关?
我尝试了各种各样的东西但到目前为止没有任何工作。
答案 0 :(得分:1)
您在CardGUI
中添加的DrawPlacement
类型的对象与CreateCard
中添加的对象相同,因此添加它不会做任何事情。
如果你想在同一个位置使用相同对象的2倍,你应该创建另一个CardGUI
,它看起来与DrawPlacement
中的第一个完全相同,而不是操纵原始对象。
public void CreateCard(Card card)
{
CardGUI topCard = new CardGUI(card);
topCard.Location = new Point(50, 50);
aPanel.Controls.Add(topCard);
DrawPlacement(card);
}
public void DrawPlacement(Card card)
{
CardGUI cardGui = new CardGUI(card);
cardGui.Location = new Point(a, b);
a += 18; // Space the cards
// Put the cards on a new line after half have been laid out.
counter++;
if (counter == 26)
{
a = 140;
b = 130;
}
this.Update();
aPanel.Controls.Add(cardGui);
cardGui.BringToFront();
}