- 締切済み
DataGrid(DataSet?)で列幅調整
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
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ape5
- ベストアンサー率57% (85/148)
もう少し必要なようでした。 下のようにしてみてください。 ------------------------------------------------------------- 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
- ape5
- ベストアンサー率57% (85/148)
以下のようにやるとできるようです。 コツとしては、先に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
お礼
ありがとうございます。 ご紹介していただきました方法を試して見ましたが、変化はありませんでした。 参考になるWEBサイト、書籍がありましたら教えてください。