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

DataGrid の高さを変更するコードを入れるタイミング

環境/言語:[win2000]
分類:[.NET]

いつもお世話になります。

以下のように列の名称、幅を決定してから行の高さを設定するコードを書いたのですが、
行の高さが変更できません。

途中の列の名称、幅を決定する部分を削除すると無事に行の高さを変更できるようになるのですが、
grdDataGrid.PreferredRowHeight = 48
の部分をあちこちに移動してみても上手くいきません。
どうすれば、目的どおりのコードになるのでしょうか?

何卒ご指導いただければ幸いです。


Private Sub frmGridMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dim tblStyle As DataGridTableStyle
dim clmStyle As DataGridColumnStyle

' --- 削除対象はここから ---
tblStyle = New DataGridTableStyle
tblStyle.MappingName = "D_CURRENT"
grdDataGrid.TableStyles.Add(tblStyle)

clmStyle = New DataGridTextBoxColumn
clmStyle.MappingName = "MYDATA1"
clmStyle.HeaderText = "番号1"
clmStyle.Width = 50
tblStyle.GridColumnStyles.Add(clmStyle)

clmStyle = New DataGridTextBoxColumn
clmStyle.MappingName = "MYDATA2"
clmStyle.HeaderText = "番号2"
clmStyle.Width = 100
tblStyle.GridColumnStyles.Add(clmStyle)

clmStyle = New DataGridTextBoxColumn
clmStyle.MappingName = "MYDATA3"
clmStyle.HeaderText = "番号3"
clmStyle.Width = 150
tblStyle.GridColumnStyles.Add(clmStyle)
' --- 削除対象はここまで ---

grdDataGrid.PreferredRowHeight = 48

grdDataGrid.SetDataBinding(dataSetMain, "MYDATA")
End Sub
こんばんわ Ken-Koさん

> Private Sub frmGridMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
> dim tblStyle As DataGridTableStyle
> dim clmStyle As DataGridColumnStyle
>
> ' --- 削除対象はここから ---
> tblStyle = New DataGridTableStyle
tblStyle.PreferredRowHeight = 48 <<<<< ここです
> tblStyle.MappingName = "D_CURRENT"
ここでもいいです
> grdDataGrid.TableStyles.Add(tblStyle)

データグリッドではなく、テーブルスタイルに指定してみてください
もさん

解決しました。ありがとうございます。
TableStyleをしているタイミングで、一緒に指定してしまえ、ということなのですね!

ところで、よろしければ、もう少しおつき合いください。
改めて指定した部分がどうして無効になるのか、疑問に感じております。
僕の書いたコードでは、どうして×だったのでしょうか?
「スタイルで指定していることが "preffred" より優先されている」という解釈で良いのでしょうか?

大変恐縮ですが、この件についてもご回答いただけるとうれしいです。
解決済み!
こんばんわ Ken-Koさん

私もあんまり詳しくないんですが...

とりあえず、試した結果です。

データグリッドにテーブルスタイルを指定した場合、
DataGrid.PreferredRowHeight = 48
は、無視されました。

データグリッドにテーブルスタイルを指定していない場合、
DataGrid.PreferredRowHeight = 48
は、反映されました。

と、いうことでデータグリッドにテーブルスタイルを
指定した場合と、指定していない場合で動作が異なるようです。

根本的な回答になっておりませんが、報告まで...
も さん、ありがとうございました。

> とりあえず、試した結果です。

> と、いうことでデータグリッドにテーブルスタイルを
> 指定した場合と、指定していない場合で動作が異なるようです。

上の件、ありがとうございました。
私にも相変わらずよくわからないのですが(汗)、
ぼちぼちがんばりたいと思います。

今後ともよろしくお願いいたします。
それでは、失礼いたします。
解決済み!

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