如何找到我的按钮放在哪个面板?

时间:2014-04-22 15:05:43

标签: c# winforms event-handling

我有一些问题位于不同的小组中。我在每个面板中放置button“添加”。此按钮应该向面板添加其他文本框。但我不知道在button_click写些什么。选择哪个面板?

private void button_Click(object sender, EventArgs e)
{

}

2 个答案:

答案 0 :(得分:2)

使用Control.Parent属性。

private void button_Click(object sender, EventArgs e)
{
    Button button = sender as Button;
    if (button == null)
        return; //Some error/exception

    Panel parentPanel = button.Parent as Panel;
    if (parentPanel == null)
    {
        //Parent container is not panel
    }
    //Otherwise get the panel properties. 
}

答案 1 :(得分:0)

我将假设所有"添加"按钮订阅了同一事件。

sender的值将是特定的"添加"刚刚点击的按钮。然后,您可以将按钮Parent投射到Panel

var button = (Button)sender;
var parentPanel = (Panel)button.Parent;

只要

,这两行就足够了
  • 您不会意外地将除按钮之外的其他控件附加到此事件
  • 所有"添加"按钮包含在Panel