【问题标题】:Deny Switching to Tabpage in a tabcontrol拒绝在选项卡控件中切换到选项卡页
【发布时间】:2017-11-28 06:11:54
【问题描述】:

我有一个带有标签控件的表单 (C#),它有大约五个标签页。

每个选项卡都有几个文本框。

1) 如果用户在说选项卡 A 并编辑某些字段,我需要验证输入的文本 如果发现无效,那么我不应该允许任何选项卡切换?那可能吗?

2) 另一种情况可能是......用户编辑一些值并单击另一个选项卡,这样做我需要检查为选项卡 A 输入的值是否正确?我可以这样做吗?

我是 C# 的新手...所以这些问题听起来很基本,任何帮助将不胜感激。

我也想知道这些事件是什么 一个标签页

离开、验证还是验证?

【问题讨论】:

    标签: c# tabcontrol


    【解决方案1】:

    我遇到了类似的问题,但幸运的是我遇到了这个 MSDN 页面。只需设置一个选项卡选择事件并添加您的逻辑以在此处取消/继续。

    http://msdn.microsoft.com/en-us/library/system.windows.forms.tabcontrol.selecting.aspx

    【讨论】:

      【解决方案2】:

      您可以使用TabControlSelecting 事件。它的类型是:TabControlCancelEventHandler,它有一个TabControlCancelEventArgs 类型的参数,属性为Cancel

          private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
          {
              if (e.TabPageIndex > 0  /* && some condition still not reached */)
              {
                  e.Cancel = true;
              }
      
             //Avoiding a tabchange from Index Zero if some condition is not accomplished yet
             //e.TabPageIndex: is the new TabIndex
             //e.Cancel == true: makes the TabControl stay in the previous tab index
          } 
      

      【讨论】:

        【解决方案3】:

        您可以禁用标签页。不是最好/最简单的方法,但正在工作。 操作方法如下:http://social.msdn.microsoft.com/forums/en-US/winforms/thread/985b41c3-a1de-4744-8875-63262d4c2718/

        【讨论】:

          【解决方案4】:

          您可以连接到 TabControl 上的 TabIndexChanged,并使用一个变量来说明是否允许更改它们,如果不允许更改,则只需更改回原始选项卡。

          【讨论】:

            【解决方案5】:

            在表单设计器中,您可以添加所需的任何选项卡并限制用户。

            if(your_condition)
                this.tab1.Controls.Add(this.tabPage2);
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-01-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-09-29
              • 2010-10-09
              • 1970-01-01
              相关资源
              最近更新 更多