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 }
/// <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 }
作者:阿笨
【官方QQ一群:跟着阿笨一起玩NET(已满)】:422315558
【官方QQ二群:跟着阿笨一起玩C#(已满)】:574187616
【官方QQ三群:跟着阿笨一起玩ASP.NET(已满)】:967920586
【官方QQ四群:Asp.Net Core跨平台技术开发(可加入)】:829227829
【官方QQ五群:.NET Core跨平台开发技术(可加入)】:647639415
【网易云课堂】:https://study.163.com/provider/2544628/index.htm?share=2&shareId=2544628
【腾讯课堂】:https://abennet.ke.qq.com
【51CTO学院】:https://edu.51cto.com/sd/66c64
【微信公众号】:微信搜索:跟着阿笨一起玩NET