ここから本文です

■VB.NET DataGridViewのセルの型を変更したい■

sin********さん

2012/7/309:46:16

■VB.NET DataGridViewのセルの型を変更したい■

DataGridViewについて質問があります。

DataGridView1.DataSource = prDs.Tables(0)

Table(0)には、
からむ1
からむ2
からむ3
があるとします。

からむ2の列の型はBooleanで、チェックボックスとなっています。

このチェックボックスがTrueの場合は、"済"を、
そうでない場合は、""を入れたい、

要はDatagridViewのからむ2の列のセルの型をstring型に変更したいのですが
型を変える方法をご教授下さい。

また、別の何かいい方法がある場合にも、
ぜひご教授下さい。

宜しくお願いします。

補足元々、Datasetに入っている定義内容の中のカラム2のみを抽出して型を変えることはできるのでしょうか?

閲覧数:
1,092
回答数:
1

違反報告

ベストアンサーに選ばれた回答

コモゾさん

2012/7/310:54:42

DataGridViewでDataGridViewTextBoxColumn型のカラムを追加して
"からむ2"を割り当ててやれば表示がチェックボックスではなくなります。
このままだと表示は"True" "False"になりますので、
CellFormatイベントで、"True"のときは"済" "False"の時は""になるように設定します。

サンプル
----------------------------------------------------------
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'テストデータの生成
Dim dt As New DataTable()
dt.Columns.Add("からむ1")
dt.Columns.Add("からむ2", GetType(Boolean))
dt.Columns.Add("からむ3")

dt.Rows.Add("test1", True, "test2")
dt.Rows.Add("test3", True, "test4")
dt.Rows.Add("test5", False, "test6")
dt.Rows.Add("test7", True, "test8")
dt.Rows.Add("test9", True, "test10")
dt.Rows.Add("test11", False, "test12")

'DataGridView カラム設定
Dim col1 As New DataGridViewTextBoxColumn()
col1.Name = "col1"
col1.HeaderText = "ヘッダーテキスト1"
col1.DataPropertyName = "からむ1"
DataGridView1.Columns.Add(col1)

Dim col2 As New DataGridViewTextBoxColumn()
col2.Name = "col2"
col2.HeaderText = "ヘッダーテキスト2"
col2.DataPropertyName = "からむ2"
DataGridView1.Columns.Add(col2)

Dim col3 As New DataGridViewTextBoxColumn()
col3.Name = "col3"
col3.HeaderText = "ヘッダーテキスト3"
col3.DataPropertyName = "からむ3"
DataGridView1.Columns.Add(col3)


DataGridView1.DataSource = dt

End Sub

Private Sub DataGridView1_CellFormatting(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
If e.ColumnIndex = DataGridView1.Columns("col2").Index Then
If e.Value Is Nothing Then
Return
End If

If CBool(e.Value) Then
e.Value = "済"
Else
e.Value = ""
End If
End If
End Sub
End Class
----------------------------------------------------------

'DataGridView カラム設定
の部分は手で書いてありますが、デザイナのほうで設定したほうが楽です。

質問した人からのコメント

2012/7/3 13:08:19

降参 回答ありがとうございます。DataGridViewカラム設定は、元々しているのですが、
DataGridViewTextBoxColumn用として、再定義しないといけないのでしょうか?

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる