DataGridView里ComboBox的问题...

answer_java 2008-08-25 09:58:22
我在DataGridView里加入一个ComboBox.
如果才能指定每一行
ComboBox里已被选中的INDEX..
有没有SELCETEDINDEX这个属性的?
...全文
85 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
困困 2008-08-25
  • 打赏
  • 举报
回复
我用的方法:Datagridview.DataSource绑定。
比如:
1.在Datagridview1中增加一列: 名为“Combo1”,类型为“DataGridViewComboBoxColumn”,Combo1.DataPropertyName = "TYPE1" 。

2.画面初始化(MyBase.Load)事件中对Combo1的下拉列表进行绑定。事例代码如下:


''' <summary>
''' 画面初期化
''' </summary>
''' <param name="eventSender"></param>
''' <param name="eventArgs"></param>
''' <remarks></remarks>
Private Sub frmMain_Load(ByVal eventSender As System.Object, _
ByVal eventArgs As System.EventArgs) Handles MyBase.Load
Try
'メールの端末を作成
Me.SetMailCombo()

Catch ex As Exception
MessageBox.Show(ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

''' <summary>
''' メールの端末を作成
''' </summary>
''' <remarks></remarks>
Private Sub SetMailCombo()

Dim dt As DataTable = Nothing
Try
'データテーブルを作成
dt = New DataTable("Test")
dt.Columns.AddRange(New DataColumn() { _
New DataColumn("VALUE", GetType(String)), _
New DataColumn("TEXT", GetType(String))})
dt.Rows.Add("0", "0:パソコン")
dt.Rows.Add("1", "1:携帯")
dt.Rows.Add("2", "2:削除")
'実際の値が"VALUE"列、表示するテキストが"TEXT"列とする
AddComboBoxColumn(Me.Datagridview1, "TYPE1", dt.Copy, "VALUE", "TEXT")

Catch ex As Exception
Throw ex
Finally
If dt IsNot Nothing Then
dt.Dispose()
dt = Nothing
End If
End Try
End Sub

''' <summary>
''' データグリッドビュー中のコンボ作成
''' </summary>
''' <param name="dgv"></param>
''' <param name="dTable"></param>
''' <param name="value"></param>
''' <param name="display"></param>
''' <remarks></remarks>
Public Shared Sub AddComboBoxColumn(ByVal dgv As DataGridView, ByVal strColumnName As String, ByVal dTable As DataTable, ByVal value As String, ByVal display As String)
Dim dGridTExtColumnName As DataGridViewComboBoxColumn

dGridTExtColumnName = CType(dgv.Columns(strColumnName), DataGridViewComboBoxColumn)

dGridTExtColumnName.DisplayStyle = DataGridViewComboBoxDisplayStyle.DropDownButton

dGridTExtColumnName.DataSource = dTable

dGridTExtColumnName.ValueMember = value

dGridTExtColumnName.DisplayMember = display

End Sub



3.最后对Datagridview1绑定数据。大致代码如下:


strSQL = "SELECT TYPE1 FROM Table1 "
strSQL &= "WHERE CODE='" & Me.imnCode.Text & "'"

'执行SQL得到dataset结果集
nRet = CDBAccess.MakeDataSetTable(strSQL, dsRet)

'绑定数据
Me.dgvMail.DataSource = dsRet.Tables(0).DefaultView



希望这些能对你有帮助。
answer_java 2008-08-25
  • 打赏
  • 举报
回复
没有人知道吗?
困困 2008-08-25
  • 打赏
  • 举报
回复
对了,主要的问题忘了说了,
想要取得选择数据的方法:


Dim strValue As String
strValue =CType(Me.Datagridview1.Rows(0).Cells(0), DataGridViewComboBoxCell).Value


注意:上面的cells(0)指的是ComboBox在Datagridview1中的第一列~

16,718

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧