【问题标题】:vb.net DataGridView update label while typingvb.net DataGridView 在键入时更新标签
【发布时间】:2012-08-12 20:12:40
【问题描述】:
我有一个要过滤的数据网格视图。
在 datagridview 上方,我有第二个单行空过滤器 datagridview,列数相同。
当用户在其中一个单元格中键入时,我想根据过滤器 datagridview 的填充单元格过滤主 datagridview。
在应用过滤器之前,我想在当前单元格文本仍在编辑时更新标签。
如何在编辑结束前获取用户修改的文本?
【问题讨论】:
标签:
vb.net
datagridview
keypress
editing
【解决方案1】:
已解决 - 使用 c.EditedFormattedValue.ToString
Private Sub dgvFilter_EditingControlShowing(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) _
Handles dgvFilter.EditingControlShowing
Dim tb As TextBox = TryCast(e.Control, TextBox)
If (tb IsNot Nothing) Then
RemoveHandler tb.KeyUp, AddressOf tb_KeyUp
AddHandler tb.KeyUp, AddressOf tb_KeyUp
'RemoveHandler tb.KeyDown, AddressOf tb_KeyDown
'AddHandler tb.KeyDown, AddressOf tb_KeyDown
End If
End Sub
Private Sub tb_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
Dim c As DataGridViewCell = dgvFilter.CurrentCell
Dim s As String = c.EditedFormattedValue.ToString
Dim totalFilter As String
lblKeyCode.Text = e.KeyCode
'If e.KeyCode <> Keys.Down Then
cellName = dgvFilter.Columns(dgvFilter.CurrentCell.ColumnIndex).Name
cellFilter = "[" & cellName & "] LIKE '" & s & "%'"
'get the filter (other columns plus current column)
totalFilter = FilterString(dgvFilter, cellFilter)
Me.txtFilter.Text = totalFilter
'apply the filter
Me.lookupDataTable.DefaultView.RowFilter = totalFilter
'Else
'dgv.Focus()
'End If
End Sub