Windows窗体上DataGridView行内的VB.NET控件
我在Windows窗体上DataGridView行的单元格中有一个组合框。我需要做到以下几点:Windows窗体上DataGridView行内的VB.NET控件,vb.net,winforms,Vb.net,Winforms,我在Windows窗体上DataGridView行的单元格中有一个组合框。我需要做到以下几点: 单击组合框 选择一个值 重新计算总数&显示在正在放置的标签内 在DataGridView之外 目前,正在发生以下情况: 单击组合框 再次单击以打开CB的下拉列表 选择一个值 在单元格外单击以强制重新计算 外部标签 首先,我希望避免必须单击组合两次(一次设置焦点,另一次选择值)。其次,我希望在选择一个值后进行实时重新计算 有人有一两个技巧来解决这些问题吗 我在DGV上尝试了大多数事件,但运气不太好。在D
我在DGV上尝试了大多数事件,但运气不太好。在DataGridView的CellClick事件中添加一个处理程序,看起来有点像:
private void vehicleTypeGridView_CellClick(object sender, DataGridViewCellEventArgs e)
{
if ( e.RowIndex == - 1 ) return; //Header Cell clicked -> ignore it.
vehicleTypeGridView.BeginEdit ( true );
var control = vehicleTypeGridView.EditingControl as DataGridViewComboBoxEditingControl;
if ( control != null ) control.DroppedDown = true;
}
将处理程序添加到DataGridView的CellClick事件中,该事件看起来有点像:
private void vehicleTypeGridView_CellClick(object sender, DataGridViewCellEventArgs e)
{
if ( e.RowIndex == - 1 ) return; //Header Cell clicked -> ignore it.
vehicleTypeGridView.BeginEdit ( true );
var control = vehicleTypeGridView.EditingControl as DataGridViewComboBoxEditingControl;
if ( control != null ) control.DroppedDown = true;
}
首先,设置datagridview编辑模式:
datagridview.EditMode = Windows.Forms.DataGridViewEditMode.EditOnEnter
接下来,将组合框的sendkey设置为F4:
Private Sub datagridview_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs)
Handles datagridview.EditingControlShowing
Dim CB As Object = TryCast(e.Control, System.Windows.Forms.ComboBox)
If CB IsNot Nothing Then
My.Computer.Keyboard.SendKeys("{F4}")
End If
End Sub
首先,设置datagridview编辑模式:
datagridview.EditMode = Windows.Forms.DataGridViewEditMode.EditOnEnter
接下来,将组合框的sendkey设置为F4:
Private Sub datagridview_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs)
Handles datagridview.EditingControlShowing
Dim CB As Object = TryCast(e.Control, System.Windows.Forms.ComboBox)
If CB IsNot Nothing Then
My.Computer.Keyboard.SendKeys("{F4}")
End If
End Sub
你应该在提问前真正搜索:你应该在提问前真正搜索: