C# 如何在c中允许用户手动输入datagridview组合框
我试图在datagridview组合框中输入值。但它不允许。怎么办?确保DataGridView的EditMode属性设置为EditOnKeystrokeOrF2 此外,请验证ReadOnly属性是否设置为False。private void GridStockItemEntry\u EditingControlShowingobject sender,DataGridViewEditingControlShowingEventArgs e { DataGridViewRow行=GridStockItemEntry.CurrentRow; DataGridViewCell单元格=GridStockItemEntry.CurrentCell; 如果e.Control.GetType==TypeOfDataGridViewComboxeditingControl { 如果单元格==行.Cells[ItemName]&&Convert.ToStringrow.Cells[Type]。值==原材料 { DataGridViewComboBoxEditingControl cbo=e。控件作为DataGridViewComboxeditingControl; cbo.DropDownStyle=ComboBoxStyle.DropDown; cbo.Validating+=新的CancelEventHandlercbo\U验证; } } } 无效cbo_验证对象发送方,取消事件参数e { DataGridViewComboBoxEditingControl cbo=作为DataGridViewComboxeditingControl的发送方; DataGridView grid=cbo.EditingControlDataGridView; 对象值=cbo.Text; //如果列表中没有值,则将其添加到列表中 如果cbo.Items.IndexOfvalue==-1 { DataGridViewComboxCell cboCol=DataGridViewComboxCellGrid.CurrentCell; //必须同时添加到当前组合框和模板中,以避免重复条目。。。 cbo.Items.Addvalue; cboCol.Items.Addvalue; grid.CurrentCell.Value=值; } }C# 如何在c中允许用户手动输入datagridview组合框,c#,datagridview,C#,Datagridview,我试图在datagridview组合框中输入值。但它不允许。怎么办?确保DataGridView的EditMode属性设置为EditOnKeystrokeOrF2 此外,请验证ReadOnly属性是否设置为False。private void GridStockItemEntry\u EditingControlShowingobject sender,DataGridViewEditingControlShowingEventArgs e { DataGridViewRow行=GridStoc
也许,这个示例更易于阅读:
private void datagridview_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) {
DataGridView dgv = (DataGridView)sender;
if(dgv.CurrentCell.ColumnIndex==dgv.Columns["ColumnName"].Index) {
ComboBox cbx = (ComboBox)e.Control;
cbx.DropDownStyle = ComboBoxStyle.DropDown;
cbx.AutoCompleteSource = AutoCompleteSource.ListItems;
cbx.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
}
}
它不允许combobox什么不允许combobox?我刚刚尝试了一个具有这些属性的gridview和一个列中的组合框。这个选项在datagridview中不起作用。根据您的回答,它将只允许从组合框中选择值,它将不允许输入文本CBO_,即使我将e.cancel设置为true,也会连续调用验证。有什么具体原因吗?