c#通过动态创建的按钮控制动态创建的面板
c# control dynamically created panel by dynamically created button
我添加了一个动态创建另一个按钮的按钮(我们称它为 accountButton)
accountButtons 可以动态添加面板和另一个按钮(exitButton)到面板
我无法通过 accountButton 使动态创建的面板变为可见或不可见
private void account_save_Click(object sender, EventArgs e)
{
for (int i = 0; i < 1; i++)
{
BunifuFlatButton accountButton = addButton(i); // Hesap Butonu
Panel accountPanel = addPanel(i); // Hesap Paneli
BunifuImageButton exitButton = addexitButton(i); // Hesap Exit Butonu
panel_accounts.Controls.Add(accountButton); // MainPanel'e eklenen Hesap butonu
accountButton.Click += new EventHandler(this.accountButtonClick); // MainPanel'e eklenen Hesap butonu islevi
this.Controls.Add(accountPanel); // Main'e eklenen Hesap paneli
accountPanel.Controls.Add(exitButton); // Hesap paneli'ne eklenen Exit butonu
exitButton.Click += new EventHandler(this.exitButtonClick); // Hesap paneli'ne eklenen Exit butonu islevi
}
}
private void accountButtonClick(object sender, EventArgs e)
{
BunifuFlatButton currentaccountButton = (BunifuFlatButton)sender;
Panel currentPanel = (Panel)sender;
currentPanel.Visible = true;
}
这条线将不起作用:
Panel currentPanel = (Panel)sender;
因为发送者是被点击的按钮,而不是面板。就在上面的一行中,您将完全相同的发件人投射为按钮。
如果按钮在面板内,您可以这样做:
Panel currentPanel = (Panel)currentaccountButton.NamingContainer;
我添加了一个动态创建另一个按钮的按钮(我们称它为 accountButton) accountButtons 可以动态添加面板和另一个按钮(exitButton)到面板
我无法通过 accountButton 使动态创建的面板变为可见或不可见
private void account_save_Click(object sender, EventArgs e)
{
for (int i = 0; i < 1; i++)
{
BunifuFlatButton accountButton = addButton(i); // Hesap Butonu
Panel accountPanel = addPanel(i); // Hesap Paneli
BunifuImageButton exitButton = addexitButton(i); // Hesap Exit Butonu
panel_accounts.Controls.Add(accountButton); // MainPanel'e eklenen Hesap butonu
accountButton.Click += new EventHandler(this.accountButtonClick); // MainPanel'e eklenen Hesap butonu islevi
this.Controls.Add(accountPanel); // Main'e eklenen Hesap paneli
accountPanel.Controls.Add(exitButton); // Hesap paneli'ne eklenen Exit butonu
exitButton.Click += new EventHandler(this.exitButtonClick); // Hesap paneli'ne eklenen Exit butonu islevi
}
}
private void accountButtonClick(object sender, EventArgs e)
{
BunifuFlatButton currentaccountButton = (BunifuFlatButton)sender;
Panel currentPanel = (Panel)sender;
currentPanel.Visible = true;
}
这条线将不起作用:
Panel currentPanel = (Panel)sender;
因为发送者是被点击的按钮,而不是面板。就在上面的一行中,您将完全相同的发件人投射为按钮。
如果按钮在面板内,您可以这样做:
Panel currentPanel = (Panel)currentaccountButton.NamingContainer;