C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■102573 / 10階層)  タブコントロールのタブの文字色"だけ"を変えたい
□投稿者/ 魔界の仮面弁士 (3714回)-(2023/11/19(Sun) 02:58:23)
No102568 (カルミーア さん) に返信
> お待たせしました。実行結果は残念ながらうまくいきませんでした。
No102510 / No102517 のコードのことですよね。


> (2) 実行しても文字列は空白のままです。色以前に表示がされておりません
(確認1)
DrawMode プロパティは、(OwnerDrawFixed モードではなく) Normal のままになっているでしょうか。


> (3)ブレイクをWndProcやOnPaintに設置したが。止まってくれていない(何が間違っているか謎)
> ※示して頂いたソースコードはコピペしましたが、すべての行は理解していません
(確認2)
Class CustomTabControl の WndProc や OnPaint ではなく、誤って
Class Form1 の WndProc や OnPaint にブレークポイントを貼っていないでしょうか。

(確認3)
Form 上に貼ってあるコントロールの型 (≠コントロールの名前)が、
KOZ さんの CustomTabControl ではなく、TabControl のままになっていないでしょうか。


> 開発環境を調べてみたのですが、OSはWINDOWS 7 Ultimate SP1
> であることが分かりました。
今回、そこは関係ないですね。
OS が XP でも Vista でも 7 でも、OnPaint は発生するはず。


もう一度、手順を確認させてください。
動作確認のため、既存プロジェクトではなく、新規プロジェクトで動作を確認します。

(1) 新規プロジェクトを作成した後、新しく CustomTabControl.vb というファイルを追加し、
 そこに No102517 のコードをそのまま貼り付ける。

(2) そのままビルドすると、ツールボックスに CustomTabControl が追加されるので
 それを Form1 に貼り付ける。コントロール名は既定の CustomTabControl1 のままで OK。

(3) 複数のタブそれぞれの Text に空白文字を入れてタブ幅を決めてから、
 それぞれのタブの Tag に文字列をセットする。

(4) アクティブなタブのみ、文字色が赤になれば成功。


> backBrush = Brushes.Blue '←これをデフォルト同じ白に変更する(White)
デフォルト色が白とは限りません。
スタイルは実行環境によって異なっており、単色なこともあれば、グラデーションがかかることもありえます。
https://atmarkit.itmedia.co.jp/fdotnet/dotnettips/234winxpstyle/winxpstyle.html

> backBrush = Brushes.White '←これをデフォルト同じグレーのグラデーションに変更する(???)
OS が用意した既定のスタイルで描画するための物が、先に紹介されていた TabRenderer ですね。
ただ、大仰になりすぎるので今回は採用しにくいかと。
https://dobon.net/vb/dotnet/graphics/drawvisualcontrol.html

既定のグラデーションに拘らないのであれば、 LinearGradientBrush や PathGradientBrush を使うことはできます。
https://dobon.net/vb/dotnet/graphics/lineargradientbrush.html

> この?の部分さえわかれば変更箇所は1行で済むと思うのですがどうでしょうか。
少なくとも 1 行では無理でしょう。たとえば LinearGradientBrush を使う場合、
標準の Brushes.何某 と違って「自分で新たに作成したリソース」なので、
利用後には Using なり Dispose なりで処分する義務が生じます。

背景はそのままで文字だけを差し替えるというのであれば、
コントロールを作成する側としては、 No102517 の方が、実装としては単純かと思います。
その分、コントロールを利用する側の手間が少し増えますけれどね(Text に空白をセットするなど)。
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[9]: タブコントロールのタブの文字色"だけ"を変.. /カルミーア →Re[11]: タブコントロールのタブの文字色"だけ"を変.. /カルミーア
→Re[11]: タブコントロールのタブの文字色"だけ"を変.. /カルミーア
 
上記関連ツリー

タブコントロールのタブの文字色"だけ"を変えたい / カルミーア (23/11/10(Fri) 12:16) #102507
Re[1]: タブコントロールのタブの文字色"だけ"を変.. / KOZ (23/11/10(Fri) 12:39) #102508
  └ Re[2]: タブコントロールのタブの文字色"だけ"を変.. / KOZ (23/11/10(Fri) 13:40) #102510
    └ Re[3]: タブコントロールのタブの文字色"だけ"を変.. / カルミーア (23/11/10(Fri) 16:16) #102514
      └ Re[4]: タブコントロールのタブの文字色"だけ"を変.. / KOZ (23/11/10(Fri) 17:52) #102517
        └ Re[5]: タブコントロールのタブの文字色"だけ"を変.. / カルミーア (23/11/11(Sat) 11:41) #102519
          └ Re[6]: タブコントロールのタブの文字色"だけ"を変.. / KOZ (23/11/11(Sat) 12:17) #102520
            └ Re[7]: タブコントロールのタブの文字色"だけ"を変.. / カルミーア (23/11/15(Wed) 00:18) #102538
              ├ Re[8]: タブコントロールのタブの文字色"だけ"を変.. / 魔界の仮面弁士 (23/11/15(Wed) 00:42) #102539
              │└ Re[9]: タブコントロールのタブの文字色"だけ"を変.. / カルミーア (23/11/16(Thu) 01:52) #102547
              └ Re[8]: タブコントロールのタブの文字色"だけ"を変.. / KOZ (23/11/15(Wed) 09:54) #102540
                ├ Re[9]: タブコントロールのタブの文字色"だけ"を変.. / カルミーア (23/11/16(Thu) 02:01) #102548
                └ Re[9]: タブコントロールのタブの文字色"だけ"を変.. / カルミーア (23/11/19(Sun) 01:13) #102568
                  └ タブコントロールのタブの文字色"だけ"を変えたい / 魔界の仮面弁士 (23/11/19(Sun) 02:58) #102573 ←Now
                    ├ Re[11]: タブコントロールのタブの文字色"だけ"を変.. / カルミーア (23/11/20(Mon) 01:20) #102580
                    └ Re[11]: タブコントロールのタブの文字色"だけ"を変.. / カルミーア (23/11/24(Fri) 01:36) #102597
                      ├ Re[12]: タブコントロールのタブの文字色"だけ"を変.. / 魔界の仮面弁士 (23/11/24(Fri) 15:17) #102603
                      └ Re[12]: タブコントロールのタブの文字色"だけ"を変.. / KOZ (23/11/24(Fri) 18:26) #102604
                        └ Re[13]: タブコントロールのタブの文字色"だけ"を変.. / 魔界の仮面弁士 (23/11/24(Fri) 21:41) #102606
                          └ Re[14]: タブコントロールのタブの文字色"だけ"を変.. / KOZ (23/11/24(Fri) 23:38) #102607
                            ├ Re[15]: タブコントロールのタブの文字色"だけ"を変.. / KOZ (23/11/25(Sat) 01:16) #102609
                            └ Re[15]: タブコントロールのタブの文字色"だけ"を変.. / カルミーア (23/11/25(Sat) 21:48) #102613
                              └ Re[16]: タブコントロールのタブの文字色"だけ"を変.. / 魔界の仮面弁士 (23/11/26(Sun) 11:39) #102619
                                └ Re[17]: タブコントロールのタブの文字色"だけ"を変.. / カルミーア (23/11/27(Mon) 22:16) #102624 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信