質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

10875閲覧

【 TabControl 】選択中のTabページのタイトル部分を太字にしたい

xxx8

総合スコア41

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2019/06/11 02:40

前提・実現したいこと

TabControlで選択されたTabページのタイトル部分のみ
太字にする

発生している問題・エラーメッセージ

以下のコードにて実装をしました。ですが以下の通りの問題が
発生しました。

 ・選択されたTabページ内のタイトル部分以外全てのFontが
太字になってしまいます(パターン1)。
・Tabページ内のタイトル部分は太字になりますが、
全てのTabページ内のFontも太字になってしまいます。(パターン2)

実現したいのはTabページのタイトル部分(帯の部分)のみ
太字にすることで、そのほかのボタンのテキストやラベルの
フォントは変更したくありません。

/*******************************************************/
コード補足

【変数名】 【説明】
iSelectTabIdx : TabControl.SelectedIndexにて取得した選択中のタブページのインデックス
TabControlMain : TabControl
TabPage1 : TabControlのタブページ1
TabPage2 : TabControlのタブページ2
TabPage3 : TabControlのタブページ3
/*******************************************************/

パターン1

VB.NET

1 2'選択Tabごとに分岐 3 Select Case iSelectTabIdx 4 Case 0 5 'ユーザー情報 6 TabPage1.Font = New Font(TabPage1.Font, FontStyle.Bold) 7 TabPage2.Font = New Font(TabPage2.Font, FontStyle.Regular) 8 TabPage3.Font = New Font(TabPage3.Font, FontStyle.Regular) 9 Case 1 10 'ユーザー情報2 11 TabPage1.Font = New Font(TabPage1.Font, FontStyle.Regular) 12 TabPage2.Font = New Font(TabPage2.Font, FontStyle.Bold) 13 TabPage3.Font = New Font(TabPage3.Font, FontStyle.Regular) 14 Case 2 15 'ユーザー情報3 16 TabPage1.Font = New Font(TabPage1.Font, FontStyle.Regular) 17 TabPage2.Font = New Font(TabPage2.Font, FontStyle.Regular) 18 TabPage3.Font = New Font(TabPage3.Font, FontStyle.Bold) 19 End Select

パターン2

VB.NET

1 2'選択Tabごとに分岐 3 Select Case iSelectTabIdx 4 Case 0 5 'ユーザー情報 6 TabControlMain.Font = New Font(Me.Font, FontStyle.Bold) 7 TabControlMain.Font = New Font(Me.Font, FontStyle.Regular) 8 TabControlMain.Font = New Font(Me.Font, FontStyle.Regular) 9 Case 1 10 'ユーザー情報2 11 TabControlMain.Font = New Font(Me.Font, FontStyle.Regular) 12 TabControlMain.Font = New Font(Me.Font, FontStyle.Bold) 13 TabControlMain.Font = New Font(Me.Font, FontStyle.Regular) 14 Case 2 15 'ユーザー情報3 16 TabControlMain.Font = New Font(Me.Font, FontStyle.Regular) 17 TabControlMain.Font = New Font(Me.Font, FontStyle.Regular) 18 TabControlMain.Font = New Font(Me.Font, FontStyle.Bold) 19 End Select

補足情報(FW/ツールのバージョンなど)

VB.NET
Visual Studio2015

なお、InputManやSpreadなどGprapeCityのライセンスを保有しております。
「GprapeCity製品では実現できる」などもございましたらお教えください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

タブコントロールのタブをオーナードローすれば、変更できますよ。

Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'タブコントロールの描画モードをオーナードローに変更 TabControl1.DrawMode = TabDrawMode.OwnerDrawFixed End Sub Private Sub TabControl1_DrawItem(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles TabControl1.DrawItem Dim backBrush As SolidBrush Dim foreBrush As SolidBrush Dim font As Font '背景や文字色、フォントは自由に設定してください If TabControl1.SelectedIndex = e.Index Then backBrush = New SolidBrush(Color.Navy) foreBrush = New SolidBrush(Color.White) font = New Font("Arial Black", 11, FontStyle.Bold) Else backBrush = New SolidBrush(SystemColors.Control) foreBrush = New SolidBrush(Color.Black) font = New Font("Arial Black", 11, FontStyle.Regular) End If Dim format As StringFormat = New StringFormat() Dim rect As RectangleF = New RectangleF(e.Bounds.X, e.Bounds.Y + 6, e.Bounds.Width, e.Bounds.Height) format.Alignment = StringAlignment.Center e.Graphics.FillRectangle(backBrush, e.Bounds) e.Graphics.DrawString(TabControl1.TabPages(e.Index).Text, font, foreBrush, rect, format) End Sub End Class

投稿2019/06/11 03:29

編集2019/06/11 04:31
k.matsuda

総合スコア293

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xxx8

2019/06/11 04:02

早速調べてみましたが、文字色や背景の例がほとんで "太字にする"というFontのないようが見当たりません お手数をおかけしますが参考になるサイトを お知りの場合、お教えいただけないでしょうか。
xxx8

2019/06/11 04:34

ご丁寧にコードまで添えて頂きまして誠にありがとうございます。 実装してみます。
xxx8

2019/06/12 00:11

迅速なご対応誠にありがとうございました。 無事、実装することができ、やりたいことも実現できました。 誠にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問