【问题标题】:Hide or show textbox based on different tab page selection根据不同的标签页选择隐藏或显示文本框
【发布时间】:2012-03-23 21:36:31
【问题描述】:

首先,我确实发现这很有用,但不完全是我需要的 Windows Forms event "On Select Tab"?

这仅涵盖整个选项卡控件的选择更改事件,而不是每个单独的选项卡页。

我需要做的是根据我选择的标签页隐藏或显示某些文本框。除了单击事件不起作用之外,示例如下。 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;
}

【问题讨论】:

    标签: c# winforms c#-4.0


    【解决方案1】:

    使用 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;
       }
    }
    

    【讨论】:

    • 简单。轻松回答。谢谢
    【解决方案2】:

    你可能会这样:

    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;
    }
    

    【讨论】:

      【解决方案3】:

      使用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;
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-10
        相关资源
        最近更新 更多