布伦鸽 2024-05-06 15:46 采纳率: 0%
浏览 27
已结题

WinForm DataGridView 滑动条显示异常

表格是在另一线程中使用invoke与delegate更新,既有对表格操作也有对数据源操作(使用了DGV.DataBindings.Add方法绑定了DataSource)。
当表格行数大于控件高度时,右下角会出现一个灰色方块,滑动条未显示。
表格是处于选项卡控件下,此时切换其他选项卡再切换回来,属于表格垂直滑动条的位置会显示刚刚切换的另一个选项卡的内容。

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-06 15:46
    关注

    引自免费微信小程序:皆我百晓生

    在Windows Forms中,有时会出现DataGridView滑动条显示异常的情况,这可能是由于UI线程同步问题、数据绑定或其他一些因素导致的。为了解决这个问题,您可以尝试以下几个步骤:

    1. 确保在正确的时间和正确的线程上执行UI更新。对于Windows Forms,所有与UI交互的操作都应在主线程上进行。因此,确保您的数据显示和数据源更改都在主线程中完成。可以使用InvokeRequired属性和Invoke方法来处理这个问题。例如,在另一线程中更新数据源后,通过调用Invoke将更新委托到主线程:
    if (dataGridView.InvokeRequired)
    {
        dataGridView.Invoke(new Action(() =>
        {
            // 更新数据源和DataGridView的操作
        }));
    }
    else
    {
        // 如果已经在主线程中,可以直接执行
        // 更新数据源和DataGridView的操作
    }
    
    1. 重新计算网格大小。有时候,滑动条可能不会自动调整其位置。在这种情况下,您可以在数据源更新完成后强制计算网格大小:
    dataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
    dataGridView.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells);
    dataGridView.PerformLayout();
    
    1. 检查选项卡控件的布局。确保选项卡控件没有影响DataGridView的布局或剪裁。您可以尝试调整选项卡控件的大小和位置,以及设置它们的边距,看看是否能解决滑动条的问题。

    2. 清除并重新绑定数据源。如果您已经使用了DataBindings.Add方法,尝试先移除绑定,然后再次添加,看是否能解决滑动条不显示的问题:

    foreach (Binding binding in dataGridView.DataBindings)
    {
        dataGridView.DataBindings.Remove(binding);
    }
    
    // 重新绑定数据源
    dataGridView.DataSource = yourDataSource;
    
    1. 检查表格的滚动条属性。确保表格的滚动条行为正常,并且没有被意外地禁用。默认情况下,DataGridView应该有水平和垂直滚动条:
    dataGridView.ScrollBars = ScrollBars.Both;
    dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
    dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
    
    1. 最后,确保没有其他控件重叠或遮挡了滑动条。检查表格周围是否有其他元素可能影响到它。

    按照上述步骤操作后,您的DataGridView的滑动条应该能够正常显示。如果问题仍然存在,请提供更详细的错误信息或现象描述,以便我能提供更具针对性的帮助。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月6日
  • 创建了问题 5月6日

悬赏问题

  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
  • ¥20 ensp怎么配置让PC1和PC2通讯上
  • ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
  • ¥15 dnat基础问题,本机发出,别人返回的包,不能命中
  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画