北の窓から(芦田っち)

PC関連と私的雑感のブログ。
2015年7月10日、カッコ内に名前を加えました。昔の友だちに気付いてほしくて・・・

[VB.NET] MonthCalendar の色、フォントを変えたい・・・

2017-12-08 11:29:31 | VB.NET
カレンダーを表示して日付を選択するケースは少なくありません。

MonthCalendar を使うことも多いと思います。
ただ、残念なのは、初期状態では色やフォントが固定であること。

  

色やフォントを変えて操作性をアップしましょう。
(フォントサイズを変えると、ヵレンダー自体のサイズも変わります)

  
   (画像に乱れがありますが、色やフォントの変化を分かっていただけると思います)

  静止画はこんな感じ・・・
  

各ボタンをクリックした時のコードは次のとおり・・・

  Windows Form は "frm_Main" です。
  このフォーム上に "MonthCalendar_P4" を置いています。

  コードは frm_Main ではなく、別のクラスにあります。

---------------------------------------------------------------------------------------------------------
' --- カレンダー: 色をセット
Public Sub prc_Set_Color_MonthCalendar()
  ' --- カレンダー(MonthCalendar): XP Visual スタイルを無効にしておく(カレンダーの色を指定するため)
  With frm_Main.MonthCalendar_P4
    .TitleBackColor = Color.DeepSkyBlue
    .TrailingForeColor = Color.Red
    .TitleForeColor = Color.Yellow
    .BackColor = Color.LemonChiffon
  End With
End Sub

' --- カレンダー: 色をリセット
Public Sub prc_Reset_Color_MonthCalendar()
  With frm_Main.MonthCalendar_P4
    .TitleBackColor = Color.White
    .TrailingForeColor = Color.Red
    .TitleForeColor = Color.Black
    .BackColor = Color.White
  End With
End Sub

' --- カレンダー: フォントをセット
Public Sub prc_Set_Font_MonthCalendar()
  Dim fontDlg As New FontDialog
  If (fontDlg.ShowDialog = DialogResult.OK) Then
    With fontDlg
      frm_Main.MonthCalendar_P4.Font = New Font(.Font.Name, .Font.Size, .Font.Style)
    End With
  End If
End Sub

' --- カレンダー: フォントをリセット
Public Sub prc_Reset_Font_MonthCalendar()
  frm_Main.MonthCalendar_P4.Font = New Font("Meiryo UI", 10, FontStyle.Regular)
End Sub
---------------------------------------------------------------------------------------------------------

なお、上記を動作させるためには次が必要です。
プロジェクトで[XP Visual スタイルを有効にする]のチェックを外しておいてください
  


【追記】 2024-07-05

この記事にコメントが届きました。
Visual Studio 2022 を使っているが、[XP Visual スタイルを有効にする]が表示されない(なので、それを選べない)とのことです。

この記事は 2017年12月に公開したものです(今から 7年前)。この頃は、ターゲットフレームワークは .NET Framework x.x で、.NET Core は選べなかったと思います。今は .NET 8.0 まで出ています(選択できるようになっています)。

で、[XP Visual スタイルを有効にする]が表示されないのは、ターゲットフレームワークが(おそらく).NET x になっているのだと思います。
.NET Framework x.x(4.8.1 が最新)に変えてください。

【追記】2024-07-16
「.NET Core 1.0」は 2016年にリリースされているようです。なので、この記事を公開した時点では .NET Core が出ていたことになります。
2020年には「.NET 5」になり Core の字が取れたとのことです。
https://ja.wikipedia.org/wiki/.NET

---------------------------------------------------------
ブログ記事についてのお問い合わせは「質疑応答 掲示板」で・・・

  # ご質問にはできる限りお答えしています。
    ただし、お名前(本名)を書いていただいた場合に限らせていただきます。


ここをクリックして、北窓舎のサイトにもお立ち寄りください・・・
コメント (3)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« インフレ目標は達成できずと... | トップ | 便利ソフト:ALiS のご紹介 »
最新の画像もっと見る

3 コメント

コメント日が  古い順  |   新しい順
ターゲットフレームワークを見直してください (北窓舎のオヤヂ)
2024-07-05 19:44:44
神田さん
コメント投稿、ありがとうございます。
でも、投稿された記事は「2024年5月の KB5037771 が原因か?(.xslm が開けない)」ではなく、「[VB.NET] MonthCalendar の色、フォントを変えたい・・・」だと思います。できれば、次の記事に対してコメントして頂けると幸いです。
https://blog.goo.ne.jp/ashm314/e/bfac1c972960c4f13e21ec4abf12511c#comment-list

さて、本題ですが、VisualStudio Proffesional2022をお使いとのことですが、作られたプログラムが動作する実行環境/ターゲットフレームワークは何でしょうか?
「XP Visual スタイルを有効にする」が表示されたいとのことなので、もしかしてターゲットフレームワークが .NET Framework 4.x などではなく、.NET n なのではないでしょうか?
ターゲットフレームワークを .NET Framework にしてお試しいただけませんか?

また、ブログ記事のコメントで質疑応答すると(私には)面倒なので、できれば メールでやり取りできるとウレシイです。私のアドレスは ash.m314@gmail.com です。
返信する
アリガトゴザイマスッ (神田)
2024-07-08 14:34:55
ご連絡おそくなりすみません。
迅速な回答ありがとうございます。

結論から申し上げますと無事変更出来ました!

ただ、
躓いた部分がありまして共有させて頂きます。
ターゲットフレームワークを変更しようとした際に
公式より.NET Framework 4.8をインストールしたにも関わらず項目上には.NET8.0しか表示されなくて
あれ。なんでだ。。。って時間をかけてしまっていたのですが、
そもそもプロジェクトテンプレートが間違っており、
本来Windowsフォームアプリケーション(.NET Framework)で作成すれば選択出来たのですが、
ずっとWindowsフォームアプリで作成していたので.NET8.0しか選択出来なかったというオチ。

改めて助かりました。ありがとうございます!
返信する
無事、解決、おめでとうございます! (北窓舎のオヤヂ)
2024-07-08 15:26:04
>神田 さんへ
>アリガトゴザイマスッ... への返信

神田さん、無事解決できたとのこと、おめでとうございます。お手伝いできてよかったです。
これからも頑張ってください。
返信する

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

VB.NET」カテゴリの最新記事