Передача ценностей и событий - PullRequest
0 голосов
/ 14 января 2012

Я использую C #У меня есть 02 формы, форма O1 содержит 03 кнопки и форма 2 содержит TabControl с 3 вкладками Как сделать вкладку 1 является активной вкладкой, когда я нажимаю на первую кнопку в форме 1, а вторая вкладка активируется, когда я нажимаю на вторую кнопкуи то же самое для последней кнопки. Любая помощь. Я не имею ни малейшего представления. Можно ли сделать это, передав параметры?

Ответы [ 5 ]

0 голосов
/ 14 января 2012

В Form1 добавьте обработчики для каждого события нажатия кнопки:

foreach (Form f in Application.OpenForms)
        {
            if (f == Form2)
            {
                f.SelectTab(0)
            }
        }

В Form2 добавить метод:

public void SelectTab(int tabIdx)
{
    this.TabControl1.SelectedIndex = tabIdx;
}
0 голосов
/ 14 января 2012

Создание общедоступной переменной в общедоступном статическом классе. Когда вы нажимаете кнопку в Form1, просто измените значение этой переменной, чтобы указать, что была нажата определенная кнопка (например, вы можете установить значение общедоступной переменной).0 при нажатии кнопки 1, 1 при нажатии кнопки 2 ... и т. д.).Теперь в Form2, прочитайте значение этой переменной и активируйте подходящую Tab в соответствии с этим значением.

0 голосов
/ 14 января 2012

Добавить метод в Form2.Нечто подобное .. void SetActiveTabIndex(Int32 index) {TabControl1.ActiveTab = ...}

0 голосов
/ 14 января 2012

Установите для свойства "Modifiers" вашего tabcontrol в Форме 2 значение "Public". Затем в Форме 1 используйте следующий код:

Form2 frm = new Form2 ();

//you will need to call frm.Show() somewhere to display form2

private void Button1_Click(object sender, EventArgs e)
{
    Form2.tabControl1.SelectedIndex = 0;
}

private void Button2_Click(object sender, EventArgs e)
{
    Form2.tabControl2.SelectedIndex = 1;
}
0 голосов
/ 14 января 2012

Вам нужно получить экземпляр формы, а затем получить доступ к элементам управления в этой форме - вам нужно создать элементы управления как Public для доступа в другой форме.

Редактировать: не всегда хорошая идея выставлять элементы управления в форме. Таким образом, вместо того, чтобы сделать элементы управления общедоступными, вы можете просто создать свойство в этом классе и установить выбранный индекс из этого свойства. Например:

public class Form2
{
    public int TabSelectedIndex 
    { 
       set { tabControl.TabIndex = value; }
    }
}

public class Form1
{
    private Form2 _form2 = new Form2();

    private void Button1_Click(object sender, EventArgs e)
    {
        _form2.TabSelectedIndex = 1;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...