Совместное использование кнопки с несколькими страницами в элементе управления вкладками в Windows формах - PullRequest
0 голосов
/ 28 января 2020

Есть ли способ поделиться кнопкой с несколькими страницами в приложении C# Windows Forms; чтобы кнопка была доступна на двух или более страницах?

Я пробовал:

this.Page1.Controls.Add(this.Button1);
this.Page2.Controls.Add(this.Button1);

Но она не работает для меня, и кнопка Button1 по-прежнему доступна только в Page1.

1 Ответ

1 голос
/ 28 января 2020

Нет, вы не можете поделиться им, каждый элемент управления принадлежит одному родителю и не может быть разделен между несколькими родителями. Вы можете использовать любую из следующих опций:

  • Используйте одну кнопку, но при изменении выбора вкладки переместите ее на другую вкладку:

    private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
    {
        // Will be removed from previous tab and added to new selected tab
        tabControl1.SelectedTab.Controls.Add(button1);
    }
    
  • Используйте разные кнопки на каждой вкладке, но используйте один и тот же обработчик событий

    button1.Click += button_Click;
    button2.Click += button_Click;
    ...
    private void button_Click(object sender, EventArgs e)
    {
        //var clicked = (Button)sender;
        //Do somthing
    }
    
  • Поместите его поверх элемента управления вкладками, а не внутри страниц (обратите внимание на контур документа):

    enter image description here

...