如何在设计器中切换WinForms TabControl中的选项卡?

n8ghc7c1  于 2023-01-09  发布在  其他
关注(0)|答案(2)|浏览(200)

我继承的代码包含一个Windows窗体,该窗体包含一个具有5个选项卡的TabControl。我无法在设计器中切换选项卡。当我在设计视图中打开窗体时,第一个选项卡被选中,并且显示第一个TabPage的内容。当我尝试切换选项卡时,顶部的正确选项卡被选中,但仅显示第一个TabPage。我可以向控件添加选项卡,但它们不会显示为空的TabPage。如何在设计器视图中切换选项卡,以便修改第二个或第三个TabPage的内容?

vdgimpew

vdgimpew1#

手弯曲的程序员没有预见到这一点:)在编辑器ActiveTab中添加属性

public class ExTabControl : TabControl
    {
        private const int TCM_ADJUSTRECT = 0x1328;
        private bool showBtn = false;
        private Message mes;

        public int? ActiveTab
        {
            get
            {
                if (this.TabPages.Count == 0 || this.SelectedTab == null)
                    return null;

                return this.TabPages.IndexOf(this.SelectedTab);
            }
            set
            {
                if (this.TabPages.Count > 0 )
                {
                    var _value = Math.Max(value ?? 0, 0);
                    var v = Math.Min(_value, this.TabPages.Count - 1);
                    this.SelectedTab = this.TabPages[v];
                }                
            }
        }

        [DefaultValue(false)]
        public bool ShowBtn
        {
            get => showBtn;
            set
            {
                showBtn = value;
                WndProc(ref mes);
            }

        }
        protected override void WndProc(ref Message m)
        {
            mes = m;
            if (m.Msg == TCM_ADJUSTRECT && !showBtn)
            {
                m.Result = (IntPtr)1;
                return;
            }
            base.WndProc(ref m);
        }
    }
mwg9r5ms

mwg9r5ms2#

点击WindowsForm中的TabControl。转到“属性”〉“标签页”。在左侧,你会看到列出的标签,它们旁边会有2个箭头,使用箭头,将你想要查看/编辑的标签移到顶部,然后点击“确定”。这应该可以暂时解决你的问题。

相关问题