首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置datagridviewcomboboxcell值

设置datagridviewcomboboxcell值
EN

Stack Overflow用户
提问于 2012-11-05 15:12:36
回答 2查看 2.3K关注 0票数 0

我有以下代码来绑定组合框单元格,它可以正常工作:

代码语言:javascript
复制
Const colIndex As Integer = 1
        Dim dgvcombo As DataGridViewComboBoxCell
        dgvcombo = gvMain.Rows(_rowindex).Cells("SerialNumber")
        dtGrpBrand = getDataTable("select * from (select SSPERPSerialMaster.ProductID,SSPERPSerialMaster.SizeID,SSPERPSerialMaster.GaugeID, SSPERPSerialMaster.SerialID,SSPERPSerialMaster.SerialNumber,ISNULL(SSPERPSerialEntryOpening.Qty,0)+ISNULL(a.Stock,0) as [Closing Qty] " & _
                        "from SSPERPProductMaster " & _
                        "left join SSPERPSerialMaster on SSPERPSerialMaster.ProductID=SSPERPProductMaster.ProductID " & _
                        "left join SSPERPSerialEntryOpening on SSPERPSerialEntryOpening.SerialID=SSPERPSerialMaster.SerialID and SSPERPSerialMaster.ProductID=SSPERPSerialEntryOpening.ProductID " & _
                        "left join (select SerialId,SUM(ISNULL(case when AL='A' then Qty else - Qty end, 0)) as [Stock] from SSPERPStock group by SerialId) a on a.SerialId=SSPERPSerialMaster.SerialID) a " & _
                        "where a.[Closing Qty]<>0 and a.ProductID=" & gvMain.Rows(_rowindex).Cells("ProductId").Value.ToString() & " and a.SizeID=" & gvMain.Rows(_rowindex).Cells("SizeId").Value.ToString() & " and a.GaugeID=" & gvMain.Rows(_rowindex).Cells("GaugeId").Value.ToString(), CompanyCon)
        dtGrpBrand.Rows.Add()
        dtGrpBrand.Rows(dtGrpBrand.Rows.Count - 1)("SerialNumber") = "-- Select --"
        dtGrpBrand.Rows(dtGrpBrand.Rows.Count - 1)("SerialId") = 0
        dgvcombo.AutoComplete = True
        CType(gvMain.Rows(_rowindex).Cells(colIndex), DataGridViewComboBoxCell).DataSource = dtGrpBrand
        CType(gvMain.Rows(_rowindex).Cells(colIndex), DataGridViewComboBoxCell).DisplayMember = "SerialNumber"
        CType(gvMain.Rows(_rowindex).Cells(colIndex), DataGridViewComboBoxCell).ValueMember = "SerialId"
        CType(gvMain.Rows(_rowindex).Cells(colIndex), DataGridViewComboBoxCell).Value = 0

当我有数据的插入模式时,这些代码在我的应用程序中工作得很好,但是当用户从列表中选择记录时,我需要动态绑定"SerialNumber“的单元格,同时我也通过这些代码正确地绑定datagridviewcimboboxcell,它正确地绑定了我的组合框单元格,但当我给出以下代码来设置值时,它不工作并给我错误:

代码语言:javascript
复制
gvMain.Rows(gvMain.Rows.Count - 1).Cells("SerialNumber").Value = dtrow("SerialId")

我还尝试了下面这行代码来获取选定的值,但没有解决方案:

代码语言:javascript
复制
CType(gvMain.Rows(gvMain.Rows.Count - 1).Cells("SerialNumber"), DataGridViewComboBoxCell).Value = dtrow("SerialId")

其中,gvmain是datagridview,dtrow是datarow

EN

回答 2

Stack Overflow用户

发布于 2012-11-05 16:51:59

dtrow("SerialId")返回一个对象。显然,您对值很感兴趣,因此可以尝试使用dtrow("SerialId").ToString

代码语言:javascript
复制
gvMain.Rows(gvMain.Rows.Count - 1).Cells("SerialNumber").Value = dtrow("SerialId").ToString
票数 0
EN

Stack Overflow用户

发布于 2012-11-05 20:43:50

DataGridViewComboboxCell具有DataSource属性。尝试使用以下命令设置值:

代码语言:javascript
复制
   Dim lst As New List(Of String)()
   lst.Add(dtrow("SerialId").ToString)
   DirectCast(DataGridView1.Rows(gvMain.Rows.Count - 1).Cells("SerialNumber"), DataGridViewComboBoxCell).DataSource = lst

它应该可以解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13227565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档