亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

隱藏TabControl按鈕以管理堆疊的面板控件

隱藏TabControl按鈕以管理堆疊的面板控件

C#
慕森王 2019-10-11 14:25:24
我需要處理多個面板,其中包含各種數據掩碼。每個面板應使用TreeView控件可見。這時,我通過使選定的面板可見并將其置于頂部來手動處理面板的可見性。實際上,這并不是很舒服,尤其是在UI設計器中,因為當我添加一個全新的面板時,我必須調整每個面板的大小,然后設計它。一個好的解決方案是使用TabControl,并且每個面板都包含在TabPage中。但是我找不到任何隱藏TabControl按鈕的方法,因為我已經有了一個TreeView來選擇項目。另一種解決方案是全統的“ StackPanelControl”,其中面板是使用堆棧排列的,但是我在任何地方都找不到它。什么是處理此類UI的最佳解決方案?
查看完整描述

2 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

您需要一點點Win32 API魔術。選項卡控件發送TCM_ADJUSTRECT消息以允許應用程序調整選項卡大小。將新類添加到您的項目中,然后粘貼以下代碼。編譯。將新控件從工具箱的頂部拖放到窗體上。


您將在設計時獲得選項卡,因此可以輕松地在頁面之間切換。這些選項卡在運行時被隱藏,可以使用SelectedIndex或SelectedTab屬性在“視圖”之間切換。


using System;

using System.Windows.Forms;


class StackPanel : TabControl {

  protected override void WndProc(ref Message m) {

    // Hide tabs by trapping the TCM_ADJUSTRECT message

    if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1;

    else base.WndProc(ref m);

  }

}


查看完整回答
反對 回復 2019-10-11
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

一個好的解決方案是使用TabControl,并且每個面板都包含在TabPage中。但是我找不到任何隱藏TabControl按鈕的方法,因為我已經有了一個TreeView來選擇項目。


對于上述內容,您需要設置TabControl的以下屬性。


tabControl.Multiline = true;

tabControl.Appearance = TabAppearance.Buttons;

tabControl.ItemSize = new System.Drawing.Size(0, 1);

tabControl.SizeMode = TabSizeMode.Fixed;

tabControl.TabStop = false;


查看完整回答
反對 回復 2019-10-11
  • 2 回答
  • 0 關注
  • 337 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號