zoukankan      html  css  js  c++  java
  • DataGridView列自适应宽度

    来源:http://www.cnblogs.com/wolf-sun/p/3480104.html

    在做winform项目中,数据控件DataGridView的使用多多少少是会用到的,如果不设置它的属性,默认情况下是不会自适应宽度的,你想查看某项的数据,就不得不将标题栏拖来拖去,挺烦的。

    结果

    没设置自适应列宽的

    使用自适应列宽的

    185         /// <summary>
    186         /// 使DataGridView的列自适应宽度
    187         /// </summary>
    188         /// <param name="dgViewFiles"></param>
    189         private void AutoSizeColumn(DataGridView dgViewFiles)
    190         {
    191             int width = 0;
    192             //使列自使用宽度
    193             //对于DataGridView的每一个列都调整
    194             for (int i = 0; i < dgViewFiles.Columns.Count; i++)
    195             {
    196                 //将每一列都调整为自动适应模式
    197                 dgViewFiles.AutoResizeColumn(i, DataGridViewAutoSizeColumnMode.AllCells);
    198                 //记录整个DataGridView的宽度
    199                 width += dgViewFiles.Columns[i].Width;
    200             }
    201             //判断调整后的宽度与原来设定的宽度的关系,如果是调整后的宽度大于原来设定的宽度,
    202             //则将DataGridView的列自动调整模式设置为显示的列即可,
    203             //如果是小于原来设定的宽度,将模式改为填充。
    204             if (width > dgViewFiles.Size.Width)
    205             {
    206                 dgViewFiles.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
    207             }
    208             else
    209             {
    210                 dgViewFiles.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
    211             }
    212             //冻结某列 从左开始 0,1,2
    213             dgViewFiles.Columns[1].Frozen = true;
    214         }

    调用:

     //调整列宽
     AutoSizeColumn(dgViewFiles);

    代码中有用到通过反射属性来获取特殊名称来绑定DataGridView

    http://www.cnblogs.com/wolf-sun/p/3854262.html

     /// <summary>
    161         /// 窗体加载
    162         /// </summary>
    163         /// <param name="sender"></param>
    164         /// <param name="e"></param>
    165         private void MainForm_Load(object sender, EventArgs e)
    166         {
    167             //通过反射的方式添加列
    168             Type type = typeof(FileMessage);
    169             PropertyInfo[] propertyInfos = type.GetProperties();
    170             foreach (PropertyInfo propertyInfo in propertyInfos)
    171             {
    172                 object[] objs = propertyInfo.GetCustomAttributes(typeof(DescriptionAttribute), true);
    173                 if (objs.Length > 0)
    174                 {
    175                     DescriptionAttribute attr = objs[0] as DescriptionAttribute;
    176                     string result = attr.Description;
    177                     this.dgViewFiles.Columns.Add(result, result);
    178                 }
    179             }
    180             //调整列宽
    181             AutoSizeColumn(dgViewFiles);
    182 
    183 
    184         }
    View Code
     /// <summary>
    11     /// 文件信息
    12     /// </summary>
    13     public class FileMessage
    14     {
    15         /// <summary>
    16         /// 序号
    17         /// </summary>
    18         [Description("序号")]
    19         public int intCount { get; set; }
    20         /// <summary>
    21         /// 文件路径
    22         /// </summary>
    23         [Description("文件路径")]
    24         public string strFilePath { set; get; }
    25         /// <summary>
    26         /// 文件名
    27         /// </summary>
    28         [Description("文件名")]
    29         public string strFileName { set; get; }
    30         /// <summary>
    31         /// 文件类型
    32         /// </summary>
    33         [Description("文件类型")]
    34         public string strFileType { set; get; }
    35     }
    View Code
  • 相关阅读:
    Atitit.ati  str  字符串增强api
    Atitit.加密算法 des  aes 各个语言不同的原理与解决方案java php c#
    Atitit.加密算法 des  aes 各个语言不同的原理与解决方案java php c#
    Atitit.html解析器的选型 jsoup nsoup ,java c# .net 版本
    Atitit.html解析器的选型 jsoup nsoup ,java c# .net 版本
    Atitit.软件开发的最终的设计 dsl化,ast化(建立ast, 解析执行ast)
    Atitit.软件开发的最终的设计 dsl化,ast化(建立ast, 解析执行ast)
    swfupload 上传控件的配置
    SWFUpload下载地址
    js 转化类似这样的时间( /Date(1389060261000)/)问题
  • 原文地址:https://www.cnblogs.com/51net/p/4350867.html
Copyright © 2011-2022 走看看