C#中listView列自动适应缩放的完美效果
生活随笔
收集整理的這篇文章主要介紹了
C#中listView列自动适应缩放的完美效果
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在網(wǎng)上搜了很多辦法,包括width=-1、-2,效果都不理想。自己摸索了個辦法:
1:設(shè)計時,先把各列尺寸大體上調(diào)好;
?
2:啟動時記下來各列width所占的比例。
public class colSizes : List<double> { }; public colSizes[] grdSizes = new colSizes[3]; public DateTime dBegin = DateTime.Today;//// loadSizes(grd_ing, ref grdSizes[0]); loadSizes(grd_hege, ref grdSizes[1]); loadSizes(grd_buhege, ref grdSizes[2]);///private void loadSizes(ListView grd, ref colSizes cs){ //記住比例if (cs == null) cs = new colSizes();cs.Clear();double nAll = 0;foreach (ColumnHeader itm in grd.Columns) nAll += itm.Width;foreach (ColumnHeader itm in grd.Columns) cs.Add(itm.Width / nAll);}?
?
3:resize時按比例重新設(shè)置一遍各列的width.
private void setAutoSize(ListView grd, colSizes cs){ //自動適應(yīng)寬度,-1根據(jù)內(nèi)容設(shè)置寬度,-2根據(jù)標(biāo)題設(shè)置寬度if (cs == null) return;for (int i = 0; i < Math.Min(cs.Count, grd.Columns.Count); i++)grd.Columns[i].Width = (int)Math.Round(grd.ClientSize.Width * cs[i], 0);}private void FrmView_Resize(object sender, EventArgs e){setAutoSize(grd_ing, grdSizes[0]);setAutoSize(grd_hege, grdSizes[1]);setAutoSize(grd_buhege, grdSizes[2]);}?
效果相當(dāng)完美,按比例縮放
?
轉(zhuǎn)載于:https://www.cnblogs.com/HaiHong/p/11106206.html
總結(jié)
以上是生活随笔為你收集整理的C#中listView列自动适应缩放的完美效果的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 创建 linuxrc 文件
- 下一篇: step1 . day3 C语言基础