日期:2014-05-18  浏览次数:20884 次

tabpage里的datagridview问题求助高手!
运行点进DataGridView滚动条就跳到最上面,datagridview
是放在tabpage里的。如果放在panel或者form里就不会。弄了两天了也没搞定!
自动滚动条一定要放在tabpage里。
代码如下:

private void Form1_Load(object sender, EventArgs e)
{
  dataGridView1.Columns[0].width = 50;
  int i;
  dataGridView1.Location = new Point(80, 44);
   
  for(i = 0; i < 100; i++)
  {
  dataGridView1.Rows.Clear();
  dataGridView1.Rows.Add(100);
  dataGridView1.Height = dataGridView.Rows[0].Height * 100;

  }
  int addr_base = 0;

  for(i = 0; i < 100; i++)

  {
  int addr = addr_base + i;
   
  dataGridView1.Rows[i].Cells[0].Value = "D" + addr.Tostring().PadLeft(4, '0');
  }






}

------解决方案--------------------
可以在datagridview不是活动控件时,记录一下滚动条的位置,再次为活动时再进行设置。
------解决方案--------------------
你的意思是说 在tabpag改变的时候,在获得焦点后,第一次的位置没有了 ,又回到最上部了吗?
------解决方案--------------------
我刚在项目里试了下,不存在你说的问题。

我切换过来后,tabpage里的datagridview滚动条位置还是切换前的位置
------解决方案--------------------
我刚才在项目里试了下,同样是放在tabpage里的datagridview滚动条的位置在切换后,再切换过来位置不变。

你重新托一下datagridview再试一下,看看是否设置什么属性了。

问题不存在。
------解决方案--------------------
探讨

不是切换的时候位置变,是第一次进入datagridview滚动条会动

------解决方案--------------------
探讨
是啊, 就是在当前选项卡下,我点击datagridview,位置就没了。滚动条到最顶部了。
这个现象只会发生在tabpage里,在panel里用就不会,奇怪的很。