- PR -

DataGridViewの指定した行のフォントを変更したい

1
投稿者投稿内容
ジン
常連さん
会議室デビュー日: 2008/07/22
投稿数: 33
投稿日時: 2008-08-19 16:01
VB2005で開発しています。

DataGridViewで指定した行の文字サイズや太さを変更したいと思っています。
以下のように記述すれば、文字サイズや太さを変更できるということが
わかりました。
Me.DataGridView1.Rows(1).DefaultCellStyle.Font = New Font("MS ゴシック", 9, FontStyle.Bold)

ただこの記述ですと、規定のフォントがMS ゴシックと決まっていないと使用できず
とても不便に感じております。

現在の指定された行のフォントを取得して、
それを元に文字サイズと太さを変更したいのですが、
どのように設定したら良いでしょうか?


もしよろしければ教えて頂けませんか?
よろしくお願い致します。
くまっち
大ベテラン
会議室デビュー日: 2008/01/18
投稿数: 169
お住まい・勤務地: 茨城県のどこか。
投稿日時: 2008-08-19 16:34
引用:

現在の指定された行のフォントを取得してそれを元に文字サイズと太さを変更


そのままコード化してみました。

コード:
Me.DataGridView1.Rows(0).DefaultCellStyle.Font = _
    New Font(Me.DataGridView1.Rows(0).DefaultCellStyle.Font.FontFamily, 9, FontStyle.Bold)


ジン
常連さん
会議室デビュー日: 2008/07/22
投稿数: 33
投稿日時: 2008-08-19 16:55
ご回答ありがとうございます。


ご教示頂いたサンプルコードを、実行してみたところ、
以下の例外が発生してしまいました。
(新しいプロジェクトでDataGridViewとButtonをフォームに貼り付けて、
 Buttonのクリックイベントにサンプルコードを記述しています。)

NullReferenceException はハンドルされませんでした。
オブジェクト参照がオブジェクト インスタンスに設定されていません。

ウォッチで確認するとMe.DataGridView1.Rows(0).DefaultCellStyle.FontがNULLになっています。
これが原因だと思うのですが、
どのようにして解決したら良いのでしょうか?


ぜひよろしくお願い致します。
くまっち
大ベテラン
会議室デビュー日: 2008/01/18
投稿数: 169
お住まい・勤務地: 茨城県のどこか。
投稿日時: 2008-08-19 17:21
現在の指定された行のフォントが元より未指定の為ですね。

RowTemplateプロパティ内のDefaultCellStyleプロパティに
規定のFontを設定しておくことで、Null参照にはならないと思います。

[修正]
プロパティ名が違っていたので修正

[ メッセージ編集済み 編集者: くまっち 編集日時 2008-08-19 17:30 ]
ジン
常連さん
会議室デビュー日: 2008/07/22
投稿数: 33
投稿日時: 2008-08-19 18:10
ありがとうございます。
無事うまくできました。

AllowUserToAddRowsプロパティをTrueに設定しているのですが
この場合はRows(0)にRowTemplateのDefaultCellStyleが反映されないようでした。
Rows(1)以降はうまく設定されています。

Form1_Loadに以下のロジックを記述することで対応しました。
Me.DataGridView1.Rows(0).DefaultCellStyle.Font = _
Me.DataGridView1.RowTemplate.DefaultCellStyle.Font


詳しくご説明頂きありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)