2011-05-16 44 views
0

我已经创建了具有多个用户控件的自助服务终端系统,并且需要使用位于冷饮用户控件中的按钮来连接用餐控件。用户控制连接

当我使用下面的代码时,它将两个用户控件一起显示,并在colddrinks下显示hotdrinks。我需要先隐藏colddrinks并显示下一个hotdrinks。 我认为需要在这里使用孩子和父母的连接,但不知道如何去做。请帮帮我。

OrderTakingMenu ordertakingmenu; 
HotDrinks hotDrinks; 

public UserControl currentPanel; 

public ColdDrink(OrderTakingMenu ordertakingmenuIn) 
{ 
    InitializeComponent(); 
    this.Location = new System.Drawing.Point(5, 100); 
    ordertakingmenu = ordertakingmenuIn; 
} 

private void btnHotDrinks_Click(object sender, EventArgs e) 
{ 
    removePreviousPanel(); 
    currentPanel = new HotDrinks(ordertakingmenu); 
    this.Controls.Add(currentPanel); 
} 

private void removePreviousPanel() 
{ 
    this.Controls.Remove(currentPanel); 
} 

回答

0

我会使用Visible属性。首先在窗体上添加两个用户控件,并让它们相互重叠(都在相同的位置,相同的大小)。

public ColdDrink(OrderTakingMenu ordertakingmenuIn) 
{ 
    InitializeComponent(); 
    this.Location = new System.Drawing.Point(5, 100); 
    ordertakingmenu = ordertakingmenuIn; 
    coldDrinksPanel.Visible = true; 
    hotDrinksPanel.Visible = false; 
} 

private void btnHotDrinks_Click(object sender, EventArgs e) 
{ 
    hotDrinksPanel.Visible = true; 
    coldDrinksPanel.Visible = false; 
} 
+0

我试过这个回复,它不工作,它运行时显示错误“Object reference not set to a instance of a object”。感谢您的帮助,请给我您的想法。 – Leo 2011-05-16 21:58:06

+0

添加添加到设计器的两个用户控件。这将创建它们。确保在调用InitializeComponent()之前不访问它们。 – David 2011-05-16 22:22:23