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     }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章