dポイントプレゼントキャンペーン実施中!

お世話になります。さっそくですが、質問です。

現在、VB.NET 2008で開発を行ってます。

質問の目的は、
実行プログラムにおいて、
画面に配置したコンボボックスをクリックした際、
以下の値を選択肢として表示させることです。

(【性別】の選択肢)
・男性
・女性

Form_Load()時に、コンボボックスに上記の値を固定でセットしています。
-------------------------------------------------
Public Function getDataField1() As DataSet

'変数宣言
Dim ds As DataSet
Dim dt As New DataTable
Dim dr As DataRow

dt.Columns.Add("DataTextField", GetType(String))
dt.Columns.Add("DataValueField", GetType(String))

'空白セット
dr = dt.NewRow()
dr("DataTextField") = "      "
dr("DataValueField") = ",,,,"
dt.Rows.Add(dr)

dr = dt.NewRow()
dr("DataTextField") = "1"
dr("DataValueField") = "男性"
dt.Rows.Add(dr)

dr = dt.NewRow()
dr("DataTextField") = "2"
dr("DataValueField") = "女性"
dt.Rows.Add(dr)

ds = New DataSet
ds.Tables.Add(dt)

Return ds

End Function



Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim ds As DataSet

'性別の取得
ds = getDataField1()

For i As Integer = 0 To 2
cmb_性別.Items.Add()
ds.Tables(0).Rows(i).Item("DataValueField").ToString()
Next i
End Sub
-------------------------------------------------
上記内容の場合、コンボボックスをクリックしても
選択肢としては"空白"しか表示されません。

セットした値をコンボボックスの選択肢として表示させる方法を
ご存知の方がいらっしゃいましたら、ご教授願えますでしょうか?

A 回答 (1件)

コンボボックスには表示するデータの為のプロパティがありまして、DataSourceというものがあります。


そして、画面に表示する値と内部的に使用する値を指定するプロパティもありまして、それぞれDisplayMemberとValueMemberです。

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ds As DataSet

'性別の取得
ds = getDataFields()

Me.ComboBox1.DataSource = ds.Tables(0)
Me.ComboBox1.DisplayMember = ds.Tables(0).Columns("DataValueField").ToString()
Me.ComboBox1.ValueMember = ds.Tables(0).Columns("DataTextField").ToString()


End Sub

Private Function getDataFields() As DataSet
'変数宣言
Dim ds As DataSet
Dim dt As New DataTable
Dim dr As DataRow

dt.Columns.Add("DataTextField", GetType(String))
dt.Columns.Add("DataValueField", GetType(String))

'空白セット
dr = dt.NewRow()
dr("DataTextField") = "0"
dr("DataValueField") = "...."
dt.Rows.Add(dr)

dr = dt.NewRow()
dr("DataTextField") = "1"
dr("DataValueField") = "男性"
dt.Rows.Add(dr)

dr = dt.NewRow()
dr("DataTextField") = "2"
dr("DataValueField") = "女性"
dt.Rows.Add(dr)

ds = New DataSet
ds.Tables.Add(dt)

Return ds

End Function
    • good
    • 0
この回答へのお礼

問題は解決しました。
ありがとうございました。

お礼日時:2009/10/22 09:47

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