读书人

datagridview取值类型设立

发布时间: 2013-07-08 14:13:00 作者: rapoo

datagridview取值类型设置
datagridview取值类型怎么设置?
如下语句:
MainForm.DGV1.CurrentCell.Value =
DGV2.Rows(DGV2.CurrentRow.Index).Cells(0).Value.ToString()

DGV2里值为‘0101’,‘01032’等编码,取到DGV1里变成‘101’,‘1032’了。
怎么设置等于原来的字符型值‘0101’,‘01032’?
[解决办法]
你检查下有否在DGV1_CellFormatting等其他事件中格式化了单元格文本。我新建工程测试没问题的。
你可以新建一个工程进行测试

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DGV1.ColumnCount = 4
DGV2.ColumnCount = 4
DGV1.Rows.Add(4)
DGV2.Rows.Add(4)
For i As Integer = 0 To DGV2.ColumnCount - 1
For j As Integer = 0 To DGV2.Rows.Count - 1
DGV2.Rows(j).Cells(i).Value = "0" & CInt(Rnd(1000) * 100)
Next
Next
End Sub

Private Sub DGV2_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGV2.CellMouseClick
DGV1.CurrentCell.Value = DGV2.Rows(DGV2.CurrentRow.Index).Cells(0).Value.ToString()

End Sub

End Class

我的环境是VS2008
[解决办法]
MainForm.DGV1.CurrentCell.Value =
DGV2.Rows(DGV2.CurrentRow.Index).Cells(0).Value.ToString()

这是你的原文,DGV1是从DGV2中取的值,不是SQL。
上面这条语句不会去掉前面的“0”。


DGV1如果是从SQL里取的值,那么SQL的字段格式应该是数字类型的,才会导致你的问题出现。
[解决办法]
datagridview单元格默认都是文本型的,若不使用格式化,是不会去掉前面“0” 的。估计一定是某行代码对单元格进行了格式化。

读书人网 >VB Dotnet

热点推荐