有什么方法可以在我们输入文本时过滤GridViewMultiComboBoxColumn数据,我使用数据源作为数据源的任何解决方案有关过滤GridViewMultiComboBoxColumn上的数据
我尝试使用GridViewMultiComboBoxColumn的自己的属性,如:FilterDescriptor,FilteringMode,AutoCompleteMode
GridViewMultiComboBoxColumn col = new GridViewMultiComboBoxColumn();
FilterDescriptor filterComboBox = new FilterDescriptor();
col.FilteringMode = GridViewFilteringMode.DisplayMember;
col.DropDownStyle = RadDropDownStyle.DropDown;
col.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
如果我理解得很好,你只想显示列表项。我希望我的解决方案低于您的需求。有任何问题请告诉我。
// DataGridView EditControlShowing event
private void dgv_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
DataGridView dgv = sender as DataGridView;
// Combobox column
DataGridViewComboBoxEditingControl comboBox = e.Control as DataGridViewComboBoxEditingControl;
if (comboBox != null)
{
comboBox.DropDownStyle = ComboBoxStyle.DropDown;
comboBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
comboBox.AutoCompleteSource = AutoCompleteSource.ListItems;
comboBox.KeyPress += ComboBox_KeyPress; // This function is below
}
}
private void ComboBox_KeyPress(object sender, KeyPressEventArgs e)
{
// Choose only list item
if (e.KeyChar < 32 || e.KeyChar > 126)
{
return;
}
string t = ((ComboBox)sender).Text;
string typedT = t.Substring(0, ((ComboBox)sender).SelectionStart);
string newT = typedT + e.KeyChar;
int i = ((ComboBox)sender).FindString(newT);
if (i == -1)
{
e.Handled = true;
}
}