VB.net 2003を使用して、Windows CE用のスマートデバイスアプリケーションを開発しています。
データの一覧を表示するためにDataGridを使用しています。
PDA端末のため指などで選択がやりやすいように、
行の高さを大きくしなければいけないのですが、
スマートデバイスアプリケーション用のDataGridには、
「PreferredRowHeight」プロパティがありません。
何か行の高さを変更する方法はあるのでしょうか?
よろしくお願いいたします。
とりあえずフォントを変更すれば、全てが
フォントのサイズに修正されそうな感じ。
ご回答ありがとうございます。
フォントを変更すれば、確かに高さは変わるのですが、
フォントが大きくなることで横幅も増えてしまい、
表示領域が狭まってしまうのです・・・。
ほかに方法はないものでしょうか?
よろしくお願いいたします。
方法がないみたいですので、
解決として締めることにします。
また何かあれば、よろしくお願いします。
ありがとうございました。
解決済みにチェックがついているようですが
.NET2005でしか試してません
海外サイトで、C#ですが同様の事例がありました
Programmatically setting DataGrid row height
http://community.opennetcf.com/forums/p/307/407.aspx
VB.NETに直すとこんな感じです
'***********************************************************************************
'* データグリッドのすべてのROWの高さを設定
'* 引数
'* dg データグリッド
'* cy 指定の高さ
'***********************************************************************************
Public Sub SetGridDefaultRowHignt(ByVal dg As DataGrid, ByVal cy As Integer)
Dim fi As FieldInfo = Nothing
Dim obj() As Object = Nothing
fi = dg.GetType().GetField("m_cyRow", _
BindingFlags.NonPublic Or _
BindingFlags.Static Or _
BindingFlags.Instance)
fi.SetValue(dg, cy)
dg.GetType().GetMethod("_DataRebind", _
BindingFlags.NonPublic Or _
BindingFlags.Static Or _
BindingFlags.Instance).Invoke(dg, obj)
dg.Invalidate()
End Sub
'***********************************************************************************
'* データグリッドの指定ROWの高さを設定
'* 引数
'* dg データグリッド
'* nRow 高さを変更するROW
'* cy 指定の高さ
'***********************************************************************************
Public Sub SetGridRowHignt(ByVal dg As DataGrid, ByVal nRow As Integer, ByVal cy As Integer)
Dim aryRows As ArrayList
aryRows = New ArrayList
Dim objRow As Object
objRow = New Object
aryRows = CType(dg.GetType().GetField("m_rlrow", _
BindingFlags.NonPublic Or _
BindingFlags.Static Or _
BindingFlags.Instance).GetValue(dg), ArrayList)
objRow = aryRows(nRow)
objRow.GetType().GetField("m_cy", _
BindingFlags.NonPublic Or _
BindingFlags.Static Or _
BindingFlags.Instance).SetValue(objRow, cy)
dg.Invalidate()
End Sub
とかでどうでしょう?
追記です
使用時には、
Imports System.Reflection
を追加してください
ツイート | ![]() |