• DataGirdView最后一列显示不全的问题


          在使用DataGridView中,一般都是把最后一列设置成全填充,如下:

    dgvStudent.Columns["Remark"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    如果这样使用的话,那么你把窗体最大化的时候,你就可以看到最后一列,把界面其余空白的地方全部填充了,如下图:
    image
    不管你的窗体有多在,最后一列,一定会把它填充完。但是这样设置有一个问题,比如我们把窗体缩小一点,这时候,窗体会出现一个滚动条,如下图:
    image

         从图片中,我们可以看到,滚动条已经到了最右边,可是我们只能看到最后一列的一点影子,最后一列的内容看不到。如果我们最后一列不设置成Fill的,它就不会出现这个问题,如下图:

         image

        我们可以看到最后一行,这样又有一个问题,那就是,如果设置成Fill,那么滚动条到末尾了,最后一列不出来,如果不设置Fill,最后一列可以出来,但是如果最大化,那么窗体空白的地方会一直是空白,最后一列不会去填充他。

        这两种方法都会有问题,最后找到一种解决的办法,需要加一段代码,首先设置最后一列为固定长度,不设置成Fill,然后在DataGridView的ReSize事件中,加上下面的代码即可:

    private void dgvStudent_Resize(object sender, EventArgs e)
    {
        if (this.Width > 540)
        {
            dgvStudent.Columns["Remark"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
        }
        else
        {
            dgvStudent.Columns["Remark"].Width = 100;
            dgvStudent.Columns["Remark"].AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
        }
    }

    上面代码中540这个数字,就是所有DataGridView列的长度的总和。用上面的方法,这样就可以解决问题了。

  • 相关阅读:
    PAT 00-自测1. 打印沙漏(20)
    js Ajax
    c语言算法实现
    解决python for vs在vs中无法使用中文
    python排序算法实现:
    2014-4-27 心情
    Sdut 2416 Fruit Ninja II(山东省第三届ACM省赛 J 题)(解析几何)
    Poj 1061 青蛙的约会(扩展欧几里得)
    hrbust 1328 相等的最小公倍数(数论)
    hdu 1286 找新朋友 (欧拉函数)
  • 原文地址:https://www.cnblogs.com/xiaoxiangfeizi/p/2612058.html
Copyright © 2020-2023  润新知