Скрыть или показать текстовое поле на основе выбора другой вкладки - PullRequest
3 голосов
/ 24 марта 2012

Прежде всего, я нашел это, которое было полезно, но не совсем то, что мне было нужно Событие Windows Forms «На вкладке выбора»?

Это охватывает только событие изменения выбора для всеговкладка управления, а не каждая отдельная вкладка страницы.

Что мне нужно сделать, это скрыть или показать определенные текстовые поля, в зависимости от того, какую вкладку я выбрал.Пример ниже, кроме события click, не работает.ExpenseReport и ExpenseReview - две мои вкладки.Любая помощь будет оценена!

private void tpExpenseReport_Click(object sender, EventArgs e)
{
    txtTripNo.Visible = true;
    txtTripNo2.Visible = false;
}

private void tpExpenseReview_Click(object sender, EventArgs e)
{
    txtTripNo.Visible = false;
    txtTripNo2.Visible = true;
}

Ответы [ 3 ]

5 голосов
/ 24 марта 2012

Используйте событие TabControl SelectedIndexChanged .

Предполагается, что есть только две вкладки.(Если их больше, я бы использовал оператор switch вместо if..else)

tabControl1.SelectedIndex_Changed(object sender, EventArgs e)
{
   if(tabControl1.SelectedIndex == 0)
   {
      txtTripNo.Visible = true; 
      txtTripNo2.Visible = false; 
   }
   else
   {
      txtTripNo.Visible = false; 
      txtTripNo2.Visible = true;
   }
}
1 голос
/ 24 марта 2012

Вы можете пойти так:

private void tabControl_SelectedIndexChanged(...)
{
    int index = tabControl.SelectedIndex;
    if (index == 0) HideTextBoxes(false);
    else HideTextBoxes(true);
}

private void HideTextBoxes(bool someSelector)
{
    txtTripNo.Visible = someSelector;
    txtTripNo2.Visible = !someSelector;
}
0 голосов
/ 24 марта 2012

Может быть лучше использовать событие Selected.Он передает фактическую вкладку, выбранную в параметре TabControlEventArgs:

private void tabControl1_Selected(object sender, TabControlEventArgs e) {
  if (e.TabPage == tpExpenseReport) {
    txtTripNo.Visible = true;
    txtTripNo2.Visible = false;
  } else if (e.TabPage == tpExpenseReview) {
    txtTripNo.Visible = false;
    txtTripNo2.Visible = true;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...