C# 如何按值成员搜索存储库?
如何通过搜索值成员将文本设置为repositoryLookupedit? 我想要的是在C# 如何按值成员搜索存储库?,c#,winforms,devexpress,C#,Winforms,Devexpress,如何通过搜索值成员将文本设置为repositoryLookupedit? 我想要的是在grade列中,当我键入值成员时,它会显示显示成员例如当我键入1时,它将等级列设置为D 这是我的密码 private void Form1_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("Grade", typeof(string));
grade
列中,当我键入值成员时,它会显示显示成员<代码>例如当我键入1
时,它将等级列设置为D
这是我的密码
private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Grade", typeof(string));
dt.Columns.Add("Value", typeof(int));
dt.Rows.Add("A", 4);
dt.Rows.Add("B", 3);
dt.Rows.Add("C", 2);
dt.Rows.Add("D", 1);
repositoryItemLookUpEdit1.DataSource = dt;
repositoryItemLookUpEdit1.DisplayMember = dt.Columns["Grade"].ToString();
repositoryItemLookUpEdit1.ValueMember = dt.Columns["Value"].ToString();
repositoryItemLookUpEdit1.NullText = "";
repositoryItemLookUpEdit1.PopupFormMinSize = new Size(100, 50);
DataTable dt2 = new DataTable();
dt2.Columns.Add("colA", typeof(String));
dt2.Columns.Add("colB", typeof(String));
dt2.Columns.Add("colC", typeof(String));
for(int i =0; i < 15; i++)
{
dt2.Rows.Add(i.ToString() + "a", i.ToString() + "b", i.ToString()+"c");
}
gridControl1.DataSource = dt2;
gridView1.BeginUpdate();
DataColumn col2 = dt2.Columns.Add("Grade", typeof(int));
GridColumn column2 = gridView1.Columns.AddVisible(col2.ColumnName);
column2.Caption = col2.Caption;
column2.Name = col2.ColumnName;
gridView1.EndUpdate();
gridView1.Columns["Grade"].ColumnEdit = repositoryItemLookUpEdit1;
}
首先,将存储库的searchmode设置为弹出窗口
repositoryItemLookUpEdit1.SearchMode = DevExpress.XtraEditors.Controls.SearchMode.OnlyInPopup;
然后向gridview和repositoryitemlookupedit按键事件添加代码
private void gridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.NumPad1 || e.KeyCode == Keys.D || e.KeyValue == 49)
{
gridView1.SetFocusedRowCellValue("Grade", 1);
}
if (e.KeyCode == Keys.NumPad2 || e.KeyCode == Keys.C || e.KeyValue == 50)
{
gridView1.SetFocusedRowCellValue("Grade", 2);
}
if (e.KeyCode == Keys.NumPad3 || e.KeyCode == Keys.B || e.KeyValue == 51)
{
gridView1.SetFocusedRowCellValue("Grade", 3);
}
if (e.KeyCode == Keys.NumPad4 || e.KeyCode == Keys.A || e.KeyValue == 52)
{
gridView1.SetFocusedRowCellValue("Grade", 4);
}
}
private void repositoryItemLookUpEdit1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.NumPad1 || e.KeyCode == Keys.D || e.KeyValue == 49)
{
gridView1.SetFocusedRowCellValue("Grade", 1);
}
if (e.KeyCode == Keys.NumPad2 || e.KeyCode == Keys.C || e.KeyValue == 50)
{
gridView1.SetFocusedRowCellValue("Grade", 2);
}
if (e.KeyCode == Keys.NumPad3 || e.KeyCode == Keys.B || e.KeyValue == 51)
{
gridView1.SetFocusedRowCellValue("Grade", 3);
}
if (e.KeyCode == Keys.NumPad4 || e.KeyCode == Keys.A || e.KeyValue == 52)
{
gridView1.SetFocusedRowCellValue("Grade", 4);
}
}
您可以尝试SearchLookUpEdit而不是简单的LookUpEdit。SearchLookUpEdit提供了多种搜索选项。develxpress的支持令人惊叹——我建议直接询问他们。不管怎样,只是找到了一种方法
private void gridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.NumPad1 || e.KeyCode == Keys.D || e.KeyValue == 49)
{
gridView1.SetFocusedRowCellValue("Grade", 1);
}
if (e.KeyCode == Keys.NumPad2 || e.KeyCode == Keys.C || e.KeyValue == 50)
{
gridView1.SetFocusedRowCellValue("Grade", 2);
}
if (e.KeyCode == Keys.NumPad3 || e.KeyCode == Keys.B || e.KeyValue == 51)
{
gridView1.SetFocusedRowCellValue("Grade", 3);
}
if (e.KeyCode == Keys.NumPad4 || e.KeyCode == Keys.A || e.KeyValue == 52)
{
gridView1.SetFocusedRowCellValue("Grade", 4);
}
}
private void repositoryItemLookUpEdit1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.NumPad1 || e.KeyCode == Keys.D || e.KeyValue == 49)
{
gridView1.SetFocusedRowCellValue("Grade", 1);
}
if (e.KeyCode == Keys.NumPad2 || e.KeyCode == Keys.C || e.KeyValue == 50)
{
gridView1.SetFocusedRowCellValue("Grade", 2);
}
if (e.KeyCode == Keys.NumPad3 || e.KeyCode == Keys.B || e.KeyValue == 51)
{
gridView1.SetFocusedRowCellValue("Grade", 3);
}
if (e.KeyCode == Keys.NumPad4 || e.KeyCode == Keys.A || e.KeyValue == 52)
{
gridView1.SetFocusedRowCellValue("Grade", 4);
}
}