【C# Windows Forms】タブヘッダの表示されないTabControl | demicadeのブログ

demicadeのブログ

iPhoneアプリ開発素人のメモ的なブログです。

demicadeです。

御無沙汰しております。

 

Windows FormsのTabControlのお話です。

1画面内に複数のデザインが必要になるケースがありまして、デザインに悩みました。

 

パネルだと、違うデザインを見たいときにはパネルを動かす必要があるし、TabControlだと、ヘッダみたいな、付箋みたいな選択する部分が邪魔だし。

 

で、TabControlのヘッダを消せないかと調べたら消せました。

拡張コントロールにして、下記の部分を書くだけです。

 

https://stackoverflow.com/questions/6953487/hide-tab-header-on-c-sharp-tabcontrol

using System;
using System.Windows.Forms;

public class TablessControl : 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);
  }
}

ついでに、この辺のTabPageの制御を入れれば、パネルで作るより断然いい感じがします。

https://dobon.net/vb/dotnet/control/tabpagehide.html

 

自分が悩むようなことは、先に誰かが悩んで解決してくれているんだな。って、いつも思います。