如何突出显示/禁用Tabcontrol标签页

托尼

我有一个应用程序,只能根据用户做出的选择来选择某些选项卡。如何在Windows窗体应用程序上将那些无法选择的选项卡显示为灰色。

战车

为了使它们变灰,我想您必须自己绘制选项卡。

不能很好地支持Enabled属性。您可以看到它甚至没有包含在Intellisense中您可以并且仍然应该设置它,但是它只会绘制背景灰色,也不会绘制选项卡,也不会禁用任何控件或阻止用户选择选项卡。(不确定是否无论如何都是这样的UI设计。您可能希望至少设置一个ToolTip来解释为什么无法访问该页面。或者您可以选择它并递归禁用其上的所有控件。。或者做你想做的;-)

要使它们不可选择,只需将其放入tabControl1_Selecting事件中:

if (!e.TabPage.Enabled)  e.Cancel = true;

要所有者制表的选项卡集DrawMode,例如OwnerDrawFixed将一些绘画代码放入DrawItem事件中,请执行以下操作:

private void tabControl1_DrawItem(object sender, DrawItemEventArgs e)
{
    TabPage tp = tabControl1.TabPages[e.Index];
   using (SolidBrush brush = 
          new SolidBrush(tp.Enabled ? tp.BackColor : SystemColors.ControlLight))
   using (SolidBrush textBrush = 
          new SolidBrush(tp.Enabled ? tp.ForeColor : SystemColors.ControlDark))
    {
       e.Graphics.FillRectangle(brush, e.Bounds);
       e.Graphics.DrawString(tp.Text, e.Font, textBrush, e.Bounds.X + 3, e.Bounds.Y + 4);
    }
}

我决定也按照我认为应该用页面的颜色来绘制活动的Tab。您可以根据需要将第一种笔刷颜色更改tabControl1.BackColor为。我选择的Systemcolors不一定总是最好的,但我希望您能明白。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何启用或禁用突出显示匹配标签

来自分类Dev

突出显示当前标签页?

来自分类Dev

VSCode:如何禁用doxygen标签在注释中突出显示?

来自分类Dev

如何突出显示所选标签?

来自分类Dev

如何在tabcontrol标签页中添加按钮

来自分类Dev

如何禁用自动符号突出显示VSCode?

来自分类Dev

如何禁用MPAndroidChart中的突出显示行?

来自分类Dev

如何完全禁用JTextPane的文本突出显示?

来自分类Dev

如何禁用“突出显示更改”功能?

来自分类Dev

如何修复禁用的文本突出显示?

来自分类Dev

spf13-vim禁用标签突出显示

来自分类Dev

XHTML:如何突出显示匹配标签?

来自分类Dev

禁用<a>的突出显示

来自分类Dev

如何突出显示html标签内的单词而不突出显示vue中的标签

来自分类Dev

如何在Opera 11.01中禁用标签页堆叠

来自分类Dev

如何禁用Visual Studio 2013的昏暗黄色突出显示空白

来自分类Dev

如何在QTableWidget中禁用选择突出显示

来自分类Dev

如何禁用phpstorm中的SQL代码突出显示?

来自分类Dev

如何在Eclipse中启用/禁用事件突出显示?

来自分类Dev

如何在JetBrains RubyMine中禁用括号突出显示?

来自分类Dev

如何在Geany中禁用当前行的自动突出显示?

来自分类Dev

禁用后如何使TTreeView不突出显示所有节点?

来自分类Dev

如何禁用Windows可访问性焦点突出显示?

来自分类Dev

在EditText上书写时如何禁用突出显示?

来自分类Dev

如何禁用phpstorm中的SQL代码突出显示?

来自分类Dev

如何在Eclipse中启用/禁用事件突出显示?

来自分类Dev

如何在VIM中禁用搜索模式语法突出显示

来自分类Dev

如何在datagridview中禁用选择突出显示(蓝色)

来自分类Dev

如何禁用剑道下拉列表中的蓝色突出显示

Related 相关文章

  1. 1

    如何启用或禁用突出显示匹配标签

  2. 2

    突出显示当前标签页?

  3. 3

    VSCode:如何禁用doxygen标签在注释中突出显示?

  4. 4

    如何突出显示所选标签?

  5. 5

    如何在tabcontrol标签页中添加按钮

  6. 6

    如何禁用自动符号突出显示VSCode?

  7. 7

    如何禁用MPAndroidChart中的突出显示行?

  8. 8

    如何完全禁用JTextPane的文本突出显示?

  9. 9

    如何禁用“突出显示更改”功能?

  10. 10

    如何修复禁用的文本突出显示?

  11. 11

    spf13-vim禁用标签突出显示

  12. 12

    XHTML:如何突出显示匹配标签?

  13. 13

    禁用<a>的突出显示

  14. 14

    如何突出显示html标签内的单词而不突出显示vue中的标签

  15. 15

    如何在Opera 11.01中禁用标签页堆叠

  16. 16

    如何禁用Visual Studio 2013的昏暗黄色突出显示空白

  17. 17

    如何在QTableWidget中禁用选择突出显示

  18. 18

    如何禁用phpstorm中的SQL代码突出显示?

  19. 19

    如何在Eclipse中启用/禁用事件突出显示?

  20. 20

    如何在JetBrains RubyMine中禁用括号突出显示?

  21. 21

    如何在Geany中禁用当前行的自动突出显示?

  22. 22

    禁用后如何使TTreeView不突出显示所有节点?

  23. 23

    如何禁用Windows可访问性焦点突出显示?

  24. 24

    在EditText上书写时如何禁用突出显示?

  25. 25

    如何禁用phpstorm中的SQL代码突出显示?

  26. 26

    如何在Eclipse中启用/禁用事件突出显示?

  27. 27

    如何在VIM中禁用搜索模式语法突出显示

  28. 28

    如何在datagridview中禁用选择突出显示(蓝色)

  29. 29

    如何禁用剑道下拉列表中的蓝色突出显示

热门标签

归档