プロが教えるわが家の防犯対策術!

VB.NET 2002使用

フォーム上にDataGridコントロールを貼付け
Form_Load()内に以下のように記述し、SQLを使用してデータを表示させるようにしていますが、
列幅がデフォルト?になっているようで変更ができません。
どのようなコードを記述すれば変更ができるのでしょうか。

MSDNやWEBサンプル(dobon.net)を参考にしてダメでした。
DataGridプロパティのDataGridTableStyleのコレクション内を色々さわってみてもダメ。

DataGridの設定・使用方をよく分かっていないのが問題なんだと思うのですが、「こういう記述をすればいい」というのがお分かりの方がいらっしゃいましたら教えてください。

<記述したコード(一部)>
Public dst As New DataSet()

Private Sub Form1_Load(省略) Handles MyBase.Load
sql = "select 列1,列2 from テーブル"
Dim myConnection ...
Dim myCommand As New OleDb.OleDbDataAdapter(ssql, myConnection)

dst.Clear()
myCommand.Fill(dst) 'データセットにデータ取込み
DataGrid1.DataSource = dst.Tables(0) 'DataGridにデータ取込み
myCommand = Nothing
myConnection.Close() 'データベース閉じる
myConnection = Nothing

Dim ts As New DataGridTableStyle()
ts.MappingName = "DataTable1" 'サンプルからそのまま流用
Dim cs1 DataGridTextBoxColumn
cs1 = New DataGridTextBoxColumn()
cs1.MappingName="Column1"
cs1.width = 200
ts.GridColumnStyles.Add(cs1)

Dim cs2 DataGridTextBoxColumn
cs2.MappingName="Column1"
cs2 = New DataGridTextBoxColumn()
cs2.width = 300
ts.GridColumnStyles.Add(cs2)

DataGrid1.TableStyles.Add(ts)
End sub

A 回答 (2件)

以下のようにやるとできるようです。


コツとしては、先にDataGridにデータを取り込んでおいてそのあとに操作をするといいようです。
-----------------------------------------------------------
DataGrid1.DataSource = dst.Tables(0) 'DataGridにデータ取込み

Dim sampleTableStyle As DataGridTableStyle
sampleTableStyle = DataGrid1.TableStyles(0)
sampleTableStyle.GridColumnStyles(0).Width = 20
sampleTableStyle.GridColumnStyles(1).Width = 10
sampleTableStyle.GridColumnStyles(2).Width = 100
    • good
    • 0
この回答へのお礼

ありがとうございます。
ご紹介していただきました方法を試して見ましたが、変化はありませんでした。

参考になるWEBサイト、書籍がありましたら教えてください。

お礼日時:2007/05/14 13:14

もう少し必要なようでした。


下のようにしてみてください。

-------------------------------------------------------------
DataGrid1.DataSource = dst.Tables(0) 'DataGridにデータ取込み

Dim myDGTableStyle As DataGridTableStyle = New DataGridTableStyle()
myDGTableStyle.MappingName = dst.Tables(0).TableName
DataGrid1.TableStyles.Add(myDGTableStyle)

Dim sampleTableStyle As DataGridTableStyle
sampleTableStyle = DataGrid1.TableStyles(0)
sampleTableStyle.GridColumnStyles(0).Width = 20
sampleTableStyle.GridColumnStyles(1).Width = 10
sampleTableStyle.GridColumnStyles(2).Width = 100
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!