我正在使用数据网格来获取我的应用的视图。
我需要能够根据文本框(txtpallet)的输入选择并显示一行。
数据网格有一个滚动条。我能够突出显示我想要的行,但用户仍然需要向下滚动它。
我希望datagrid自动向下滚动到我选择的行。
我不知道该怎么做。我现在已经挣扎了太长时间,并希望得到一些帮助。
我做了一个小测试应用。请参阅下面的代码。
我在设备应用程序(Windows CE)中使用c#.net 2.0紧凑框架
private void populateGrid()
{
try
{
string sub = "my connection string";
OracleConnection conn = new OracleConnection(sub);
string query;
query = "Select emp_id_no,emp_username from dc_emp order by emp_id_no";
{
conn.Open();
using (OracleDataAdapter a = new OracleDataAdapter(query, conn))
{
DataTable t = new DataTable();
a.Fill(t);
dgSku.TableStyles.Clear();
DataGridTableStyle tableStyle = new DataGridTableStyle();
tableStyle.MappingName = t.TableName;
foreach (DataColumn item in t.Columns)
{
DataGridTextBoxColumn tbcName = new DataGridTextBoxColumn();
tbcName.Width = 80;
tbcName.MappingName = item.ColumnName;
tbcName.HeaderText = item.ColumnName;
tableStyle.GridColumnStyles.Add(tbcName);
}
dgSku.TableStyles.Add(tableStyle);
dgSku.DataSource = t;
DataRow[] datarow = t.Select("emp_username like '" + txtpallet.Text + "' ");
foreach (DataRow dr in datarow)
{
MessageBox.Show("Index is " + dr.Table.Rows.IndexOf(dr));
dgSku.Select(dr.Table.Rows.IndexOf(dr));
}
}
}
conn.Close();
}
catch (OracleException x)
{
MessageBox.Show("" + x);
}
}
以下是两个例子: A)在列表顶部选择一些东西 B)在某处选择一些东西
A)
B)
答案 0 :(得分:2)
我明白了。您需要获取Row索引,我在顶部的代码中执行此操作。然后只需使用:
dgSku.CurrentRowIndex = dr.Table.Rows.IndexOf(dr);
答案 1 :(得分:0)