[英]Change C# Datagridview row selection base on textbox input value
我正在尝试根据在带有Suggestappend的文本框中输入的值来更改datagridview行选择。 我的自动完成字符串集合是在我的数据网格列引用中获取的。
自动完成字符串集合的代码
AutoCompleteStringCollection referenceCollection = new AutoCompleteStringCollection();
int indexOfYourColumn = 1;
IList list = dgvScriptures.Rows;
referenceCollection.Clear();
for (int i = 0; i < list.Count; i++)
{
DataGridViewRow row = (DataGridViewRow)list[i];
data = row.Cells[indexOfYourColumn].Value.ToString();
referenceCollection.Add(data.ToString());
}
在文本框中键入时,附加值但未更改 datagridview 选择
private void txtSearchReference_TextChanged(object sender, EventArgs e)
{
try
{
txtSearchReference.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
txtSearchReference.AutoCompleteSource = AutoCompleteSource.CustomSource;
txtSearchReference.AutoCompleteCustomSource = referenceCollection;
if (txtSearchReference.Text != string.Empty)
{
int rowIndex = -1;
DataGridViewRow row = dgvScriptures.Rows
.Cast<DataGridViewRow>()
.Where(r => r.Cells[1].Value.ToString().Contains(txtSearchReference.Text))
.FirstOrDefault();
rowIndex = row.Index;
dgvScriptures.Rows[rowIndex].Selected = true;
}
}
catch (Exception autocomplete)
{
MessageBox.Show(autocomplete.ToString());
}
}
我会说你需要改变
dgvScriptures.Rows[rowIndex].Selected = true;
至
dgvScriptures.CurrentCell = dgvScriptures[1,rowIndex];
1 是您搜索/构建自动完成列表的列
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.