从 gridview 到文本框的事件与 vb.net 中文本框中的结果不匹配
Events from gridview to textbox do not match the result in textbox in vb.net
文本框日期 (txt.DTE) 是否应该为空,而不是包含我双击单元格网格视图的前一个日期的日期。有解决办法还是我的代码有问题?
注意:我使用 visual studio 2010
Private Sub DataGridView1_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
x = DataGridView1.Rows.IndexOf(DataGridView1.CurrentRow)
txtCODE.Text = DataGridView1.Rows(x).Cells(0).Value.ToString()
Dim dte = DataGridView1.Rows(x).Cells(1).Value.ToString()
If dte <> Nothing Then
txtDTE.Text = CDate(dte)
End If
txtQTY.Text = DataGridView1.Rows(x).Cells(2).Value.ToString()
txtPRICE.Text = DataGridView1.Rows(x).Cells(3).Value.ToString()
End Sub
在 if
子句中添加 else
代码,以在日期列为空时清除 txtDTE
的值。
Private Sub DataGridView1_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
x = DataGridView1.Rows.IndexOf(DataGridView1.CurrentRow)
txtCODE.Text = DataGridView1.Rows(x).Cells(0).Value.ToString()
Dim dte = DataGridView1.Rows(x).Cells(1).Value.ToString()
If dte <> Nothing Then
txtDTE.Text = CDate(dte)
else
' CLEAR txtDTE if dt = nothing
txtDTE.clear()
End If
txtQTY.Text = DataGridView1.Rows(x).Cells(2).Value.ToString()
txtPRICE.Text = DataGridView1.Rows(x).Cells(3).Value.ToString()
End Sub
另一个建议:
您可以使用 e.RowIndex
而不是 DataGridView1.Rows.IndexOf(DataGridView1.CurrentRow)
,这也是 returns 当前行索引。
示例:
x = e.RowIndex()
而不是
x = DataGridView1.Rows.IndexOf(DataGridView1.CurrentRow)
文本框日期 (txt.DTE) 是否应该为空,而不是包含我双击单元格网格视图的前一个日期的日期。有解决办法还是我的代码有问题?
注意:我使用 visual studio 2010
Private Sub DataGridView1_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
x = DataGridView1.Rows.IndexOf(DataGridView1.CurrentRow)
txtCODE.Text = DataGridView1.Rows(x).Cells(0).Value.ToString()
Dim dte = DataGridView1.Rows(x).Cells(1).Value.ToString()
If dte <> Nothing Then
txtDTE.Text = CDate(dte)
End If
txtQTY.Text = DataGridView1.Rows(x).Cells(2).Value.ToString()
txtPRICE.Text = DataGridView1.Rows(x).Cells(3).Value.ToString()
End Sub
在 if
子句中添加 else
代码,以在日期列为空时清除 txtDTE
的值。
Private Sub DataGridView1_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
x = DataGridView1.Rows.IndexOf(DataGridView1.CurrentRow)
txtCODE.Text = DataGridView1.Rows(x).Cells(0).Value.ToString()
Dim dte = DataGridView1.Rows(x).Cells(1).Value.ToString()
If dte <> Nothing Then
txtDTE.Text = CDate(dte)
else
' CLEAR txtDTE if dt = nothing
txtDTE.clear()
End If
txtQTY.Text = DataGridView1.Rows(x).Cells(2).Value.ToString()
txtPRICE.Text = DataGridView1.Rows(x).Cells(3).Value.ToString()
End Sub
另一个建议:
您可以使用 e.RowIndex
而不是 DataGridView1.Rows.IndexOf(DataGridView1.CurrentRow)
,这也是 returns 当前行索引。
示例:
x = e.RowIndex()
而不是
x = DataGridView1.Rows.IndexOf(DataGridView1.CurrentRow)