如何在GridView中为标题名称提供默认间距

斯泰西·凯布勒

我已经用Visual Basic制作了一个Windows应用程序,并为此添加了一个网格视图。网格视图填充来自不同文件夹的文件,并在网格视图中列出。网格视图的标题是:第一个复选框,第二个:-工程图编号,第三个:-工程图,第四个:-草稿路径。因此,无论何时在gird视图中没有文件要填充时,我的复选框都显得很尴尬我的意思是它缩小得太多。我该如何纠正。请查看链接https://imageshack.com/i/eyCvEr0nj以获取快照。我的代码段复选框

    public delegate void CheckBoxClickedHandler(bool state);
    public class DataGridViewCheckBoxHeaderCellEventArgs : EventArgs
    {
        bool _bChecked;
        public DataGridViewCheckBoxHeaderCellEventArgs(bool bChecked)
        {
            _bChecked = bChecked;
        }
        public bool Checked
        {
            get { return _bChecked; }
        }
    }

    class DatagridViewCheckBoxHeaderCell : DataGridViewColumnHeaderCell
    {
        Point checkBoxLocation;
        Size checkBoxSize;
        bool _checked = false;
        Point _cellLocation = new Point();
        System.Windows.Forms.VisualStyles.CheckBoxState _cbState =
            System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal;
        public event CheckBoxClickedHandler OnCheckBoxClicked;

        public DatagridViewCheckBoxHeaderCell()
        {
        }

        protected override void Paint(System.Drawing.Graphics graphics,
            System.Drawing.Rectangle clipBounds,
            System.Drawing.Rectangle cellBounds,
            int rowIndex,
            DataGridViewElementStates dataGridViewElementState,
            object value,
            object formattedValue,
            string errorText,
            DataGridViewCellStyle cellStyle,
            DataGridViewAdvancedBorderStyle advancedBorderStyle,
            DataGridViewPaintParts paintParts)
        {
            base.Paint(graphics, clipBounds, cellBounds, rowIndex,
                dataGridViewElementState, value,
                formattedValue, errorText, cellStyle,
                advancedBorderStyle, paintParts);
            Point p = new Point();
            Size s = CheckBoxRenderer.GetGlyphSize(graphics,
            System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal);
            p.X = cellBounds.Location.X +
                (cellBounds.Width / 2) - (s.Width / 2);
            p.Y = cellBounds.Location.Y +
                (cellBounds.Height / 2) - (s.Height / 2);
            _cellLocation = cellBounds.Location;
            checkBoxLocation = p;
            checkBoxSize = s;
            if (_checked)
                _cbState = System.Windows.Forms.VisualStyles.
                    CheckBoxState.CheckedNormal;
            else
                _cbState = System.Windows.Forms.VisualStyles.
                    CheckBoxState.UncheckedNormal;
            CheckBoxRenderer.DrawCheckBox
            (graphics, checkBoxLocation, _cbState);
        }

        protected override void OnMouseClick(DataGridViewCellMouseEventArgs e)
        {
            Point p = new Point(e.X + _cellLocation.X, e.Y + _cellLocation.Y);
            if (p.X >= checkBoxLocation.X && p.X <=
                checkBoxLocation.X + checkBoxSize.Width
            && p.Y >= checkBoxLocation.Y && p.Y <=
                checkBoxLocation.Y + checkBoxSize.Height)
            {
                _checked = !_checked;
                if (OnCheckBoxClicked != null)
                {
                    OnCheckBoxClicked(_checked);
                    this.DataGridView.InvalidateCell(this);
                }

            }
            base.OnMouseClick(e);
        }
    }

有两种方法:

  1. 设计时间
  2. 运行时(动态列)

  1. 设计时间:转到DataGridView属性->列->从左侧->宽度中选择列 在此处输入图片说明

  2. 运行时:您可以像这样设置列宽。


dataGridView1.Columns[0].Width = 50;

或者

dataGridView1.Columns["chkColumn"].Width = 50;

或者

chkColumn.Width = 50;

chkColumnCheckBox Column的名称在哪里


发现问题

您正在使用AutoSizeColumnMode属性,并将值设置为All Cells此属性将检查单元格中的值,并根据单元格的最大宽度值设置列宽。如果该值为空或为null,则列宽将减小到大约10px。您必须在单元格中设置任何值(即[4空格]),也可以将AutoSizeColumnMode属性更改None

我的意见是在单元格中分配4个空格,这将自动增加复选框列的宽度。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在QuillJS(react-js)中更改默认标题名称?

来自分类Dev

如何在compton配置文件中对标题名称应用严格的模式匹配?

来自分类Dev

如何在 Nattable 中添加带有列标题名称的红星?

来自分类Dev

如何在循环中更改ggplot的标题名称?

来自分类Dev

如何在 C# 中按范围而不是按标题名称引用数据表的列

来自分类Dev

如何在顶部导航栏上显示标题名称而不是 xamarin 表单外壳中的汉堡图标

来自分类Dev

如何通过标题名称删除列

来自分类Dev

在csv中添加标题名称

来自分类Dev

如何在React中为嵌套形状提供默认道具?

来自分类Dev

如何在WTForms中为StringField提供默认值

来自分类Dev

熊猫:通过提供标题名称来读取列

来自分类Dev

使用在Pandas中为行名添加标题名称将DataFrame写入CSV

来自分类Dev

使用在Pandas中为行名添加标题名称将DataFrame写入CSV

来自分类Dev

C#中的标题名称到进程名称

来自分类Dev

如何使用Python中的panda包显示特定列的标题名称

来自分类Dev

如何将所有列标题名称插入到qsqltablemodel表的列表中?

来自分类Dev

在 Gnuplot 中,当我按标题名称绘图时如何绘制两列的总和

来自分类Dev

如何删除输出文件中标题名称中的空格

来自分类Dev

如何在GridView中添加标题

来自分类Dev

如何在GridView中添加标题

来自分类Dev

在Devexpress中的主从网格中修改列标题名称

来自分类Dev

Java Swing:如何在JPanel中删除JButton的默认间距

来自分类Dev

如何通过编程方式获取活动标题名称

来自分类Dev

如何更改指南创建的GUI图形窗口标题名称?

来自分类Dev

如何通过编程方式获取活动标题名称

来自分类Dev

如何从新闻网站获取标题名称?

来自分类Dev

如何通过保留标题名称来转置表格

来自分类Dev

在MVC 4中获取表标题名称的最佳方法

来自分类Dev

Flutter HTTP请求中的无效标题名称

Related 相关文章

  1. 1

    如何在QuillJS(react-js)中更改默认标题名称?

  2. 2

    如何在compton配置文件中对标题名称应用严格的模式匹配?

  3. 3

    如何在 Nattable 中添加带有列标题名称的红星?

  4. 4

    如何在循环中更改ggplot的标题名称?

  5. 5

    如何在 C# 中按范围而不是按标题名称引用数据表的列

  6. 6

    如何在顶部导航栏上显示标题名称而不是 xamarin 表单外壳中的汉堡图标

  7. 7

    如何通过标题名称删除列

  8. 8

    在csv中添加标题名称

  9. 9

    如何在React中为嵌套形状提供默认道具?

  10. 10

    如何在WTForms中为StringField提供默认值

  11. 11

    熊猫:通过提供标题名称来读取列

  12. 12

    使用在Pandas中为行名添加标题名称将DataFrame写入CSV

  13. 13

    使用在Pandas中为行名添加标题名称将DataFrame写入CSV

  14. 14

    C#中的标题名称到进程名称

  15. 15

    如何使用Python中的panda包显示特定列的标题名称

  16. 16

    如何将所有列标题名称插入到qsqltablemodel表的列表中?

  17. 17

    在 Gnuplot 中,当我按标题名称绘图时如何绘制两列的总和

  18. 18

    如何删除输出文件中标题名称中的空格

  19. 19

    如何在GridView中添加标题

  20. 20

    如何在GridView中添加标题

  21. 21

    在Devexpress中的主从网格中修改列标题名称

  22. 22

    Java Swing:如何在JPanel中删除JButton的默认间距

  23. 23

    如何通过编程方式获取活动标题名称

  24. 24

    如何更改指南创建的GUI图形窗口标题名称?

  25. 25

    如何通过编程方式获取活动标题名称

  26. 26

    如何从新闻网站获取标题名称?

  27. 27

    如何通过保留标题名称来转置表格

  28. 28

    在MVC 4中获取表标题名称的最佳方法

  29. 29

    Flutter HTTP请求中的无效标题名称

热门标签

归档