【问题标题】:Datagrid automatically scoll down to select row C#Datagrid 自动向下滚动以选择行 C#
【发布时间】:2014-03-19 07:40:35
【问题描述】:

我正在使用数据网格来查看我的应用程序。

我需要能够根据文本框(txtpallet)的输入来选择并显示一行。

数据网格有一个滚动条。我可以突出显示我想要的行,但用户仍然需要向下滚动到它。

我希望数据网格自动向下滚动到我选择的行。

我不知道该怎么做。我现在挣扎太久了,希望得到一些帮助。

我制作了一个小型测试应用。请看下面的代码。

我在设备应用程序 (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)在底部某处选择一些东西

一)

B)

【问题讨论】:

    标签: c# datagrid compact-framework windows-ce c#-2.0


    【解决方案1】:

    我明白了。您需要获取行索引,我在顶部的代码中执行此操作。然后简单地使用:

    dgSku.CurrentRowIndex = dr.Table.Rows.IndexOf(dr);

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 感谢您的快速响应。这是一个datagridview。我正在使用数据网格。
      猜你喜欢
      • 2015-01-08
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      • 1970-01-01
      • 2013-04-08
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      相关资源
      最近更新 更多