datagrid怎么将焦点跑到指定的元素上

这个冬天有点冷灬 2014-01-02 08:09:30

如上图,我想做一个简单的查找,已经可以找到指定的行和列,怎么让焦点跑到指定的元素上啊,
用SelectedIndex已经可以跑到指定的行了。。。
...全文
154 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 5 楼 wind_cloud2011 的回复:

 //第3行第2列对应的单元取得焦点
            DataGridRow dr = (DataGridRow)dataGrid1.ItemContainerGenerator.ContainerFromIndex(3);第                 DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(dr);                 DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(2); //取第2列每行单元格                                 cell.Focus(); 
谢谢啊,根据你的方法,已经成功了!!
wind_cloud2011 2014-01-02
  • 打赏
  • 举报
回复
//第3行第2列对应的单元取得焦点 DataGridRow dr = (DataGridRow)dataGrid1.ItemContainerGenerator.ContainerFromIndex(3); DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(dr); DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(2); cell.Focus();
wind_cloud2011 2014-01-02
  • 打赏
  • 举报
回复

 //第3行第2列对应的单元取得焦点
            DataGridRow dr = (DataGridRow)dataGrid1.ItemContainerGenerator.ContainerFromIndex(3);第                 DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(dr);                 DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(2); //取第2列每行单元格                                 cell.Focus(); 
wind_cloud2011 2014-01-02
  • 打赏
  • 举报
回复
  int i = 0;
        private void button2_Click(object sender, RoutedEventArgs e)
        {
            //i取具体的值行
           DataGridRow dr = (DataGridRow)dataGrid1.ItemContainerGenerator.ContainerFromIndex(i);第
                DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(dr);
                DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(0); //取第0列每行单元格                
                cell.Focus();
                   }

   public static T GetVisualChild<T>(Visual parent) where T : Visual
        {
            T child = default(T);
            int numVisuals = VisualTreeHelper.GetChildrenCount(parent);
            for (int i = 0; i < numVisuals; i++)
            {
                Visual v = (Visual)VisualTreeHelper.GetChild(parent, i);
                child = v as T;
                if (child == null)
                {
                    child = GetVisualChild<T>(v);
                }
                if (child != null)
                {
                    break;
                }
            }
            return child;
        }
  • 打赏
  • 举报
回复
引用 2 楼 wind_cloud2011 的回复:
.IsSelected = true;
额,找了很久都不知道怎么设置这个属性,麻烦您能不能稍微写的清楚点。
wind_cloud2011 2014-01-02
  • 打赏
  • 举报
回复
.IsSelected = true;
  • 打赏
  • 举报
回复
用的是wpf

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧