DOBON.NET DOBON.NETプログラミング掲示板過去ログ

TabControlのTab文字色の変更

環境/言語:[OS : Windows 2000 Professional / 言語 : Visual Basic .NET / .NET Framework : 1.1]
分類:[.NET]

TabControl内で入力エラーが在った場合、Tabの文字を赤く変更させ、エラーの存在を示すような処理を作りたいのですが、どのような値を設定すればタブの文字色を変更できるのかが判りません。
入力エラーチェックはボタンクリックイベントで発生し、その処理内でタブの文字色を変更したいと考えています。
どなたか御存知の方がおられたら、ご教授ください。
■No8271に返信(ワイズさんの記事)
> TabControl内で入力エラーが在った場合、Tabの文字を赤く変更させ、エラーの存在を示すような処理を作りたいのですが、どのような値を設定すればタブの文字色を変更できるのかが判りません。

これでどうでしょうか?

DOBON.NET .NET Tips - TabControlのタブを自分で描画する
http://dobon.net/vb/dotnet/control/tabownerdraw.html
> DOBON.NET .NET Tips - TabControlのタブを自分で描画する
> http://dobon.net/vb/dotnet/control/tabownerdraw.html

最初に、リンク先のTabControl1_DrawItem関数を呼ぼうと考えたのですが、引数であるDrawItemEventArgsをどのように発生させるかがわからず、描画の変更ができませんでした。
よろしければ、イベントではなく関数としてTabControl1_DrawItemを呼び出す際のDrawItemEventArgsに渡す値の記述方式を教えていただけないでしょうか?
こんにちは、じゃんぬねっと です。

■No8274に返信(ワイズさんの記事)
> 最初に、リンク先のTabControl1_DrawItem関数を呼ぼうと考えたのですが、
> 引数であるDrawItemEventArgsをどのように発生させるかがわからず、
> 描画の変更ができませんでした。
> よろしければ、イベントではなく関数としてTabControl1_DrawItemを呼び出す際の
> DrawItemEventArgsに渡す値の記述方式を教えていただけないでしょうか?

関数ではなく、イベント プロシージャです。
イベントなので、Call など必要ありません。


コピペだけせずにちゃんと良くソースをみましょう。

> AddHandler TabControl1.DrawItem, AddressOf TabControl1_DrawItem

の、意味がわからないのかな?
私の記述した内容が、判り難くて申し訳ございません。

イベントで常にアクティブなタブが赤く表示されるわけではなく、タブ内の入力にエラーが在る場合にのみ、タブ文字を赤く表示したいのです。

サンプルPG>>>>>>>>>>>>>>>>>>>>>>>

private sub Buttom_Click(Byval sender As Object, Byval e As System.EventArgs)

'ボタンを押下した際にタブページ内のコントロールの必須入力チェックを行う

'タブ1の入力チェック
if (TextBox1.text = "" And _
TextBox2.text = "" And _
TextBox3.text = "" _
) then
       '必須入力に項目に値が入っていない場合
'///////////////////////////////////////////////
'タブ1のタブ文字を赤くする

End if

'タブ2の入力チェック
if (TextBox4.text = "" And _
TextBox5.text = "" And _
TextBox6.text = "" _
) then
       '必須入力に項目に値が入っていない場合
'///////////////////////////////////////////////
'タブ2のタブ文字を赤くする

End if

'タブ3の入力チェック
if (TextBox7.text = "" And _
TextBox8.text = "" And _
TextBox9.text = "" _
) then
       '必須入力に項目に値が入っていない場合
'///////////////////////////////////////////////
'タブ3のタブ文字を赤くする

End if

End Sub


上記PGの場合、選択中のタブだけではなく、二つ、又は全てのタブが赤くなる場合があります。

よって、イベントプロシージャ-では、対応不可だと考えているのですが、そのイベントプロシージャーで対応策があるのでしょうか?
■No8282に返信(ワイズさんの記事)
> イベントで常にアクティブなタブが赤く表示されるわけではなく、タブ内の入力にエラーが在る場合にのみ、タブ文字を赤く表示したいのです。
> 上記PGの場合、選択中のタブだけではなく、二つ、又は全てのタブが赤くなる場合があります。
> よって、イベントプロシージャ-では、対応不可だと考えているのですが、そのイベントプロシージャーで対応策があるのでしょうか?
DrawItemEventArgs で何のタブか判別可能だと思いますが・・・

DOBON.NET | プログラミング道 | プログラミング掲示板