关于自动改变窗体大小的问题 我有一个窗体Form,在这个Form上有一个ListBox,且ListBox充满整个Form,想让这个窗体Form随着ListBox中资料的多少而自动变化大小(高度及宽度),如何实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Add数据或者remove数据时改变listBox和form的Size. 修改form的clientsize属性可以改变form的大小 //获得ListBox中项的高度 int Height = this.listBox1.ItemHeight; //获得窗体减去Listbox的高度 int fromHeight = this.Height - this.listBox1.Height; //获的ListBox项数乘以单项高度的值 Height = Height * this.listBox1.Items.Count; //加上滚动偏差5 this.Height = Height + fromHeight + 5; //这里为获得ListBox中最长的字符串,自己获得这里从简 string maxstring= this.listBox1.Items[this.listBox1.Items.Count-1].ToString(); //将最长字符绘制 Graphics g = this.CreateGraphics(); g.PageUnit = GraphicsUnit.Millimeter; Size f = TextRenderer.MeasureText (g, maxstring, this.listBox1.Font, new Size(0, 0),TextFormatFlags.NoPadding); //获得绘制的长度 int wids = (int)f.Width; //在计算的基础上加滚动条长度15 this.Width = wids + 15; 这是本人针对你的问题写的一个测试程序,不知道是不是要这个效果,不一定正确,有点误差.. 万一你的listbox的高度是2000,你的分辨率是1000,你要怎么显示, 好尖~!建议你还是显示滚动条不要调整窗体大小了,正如6楼说的,如果你的窗体大小设置超过最大值会报错的。如果非要修改大小的话可以修改窗体的size属性, 修改的大小值为你的listbox的item总数×每个item的高度加上标题的高度。 宽度直接等于listbox的宽度就可以了 寻求一位师傅能带领 如何动态创建匿名对象或类对象中的属性? 希望反射技术用的好地高手来帮一下忙。 一个上传图片的例子琢磨了半天没能弄出来,灰常郁闷呀 也问一问类和对象的问题 C+C#>C++ ? 如何实现一个三层体系结构的应用系统 C#中数据库类的设计 很奇怪的一个问题,请高手指点一下? 问:数据输入格式如何保留? 200分求救!高手进来! 用正则表达式提取字符的问题 高分!关于sdk在其它电脑上运行的问题
int Height = this.listBox1.ItemHeight;
//获得窗体减去Listbox的高度
int fromHeight = this.Height - this.listBox1.Height;
//获的ListBox项数乘以单项高度的值
Height = Height * this.listBox1.Items.Count;
//加上滚动偏差5
this.Height = Height + fromHeight + 5;
//这里为获得ListBox中最长的字符串,自己获得这里从简
string maxstring=
this.listBox1.Items[this.listBox1.Items.Count-1].ToString();
//将最长字符绘制
Graphics g = this.CreateGraphics();
g.PageUnit = GraphicsUnit.Millimeter;
Size f = TextRenderer.MeasureText
(g, maxstring, this.listBox1.Font, new Size(0, 0),TextFormatFlags.NoPadding);
//获得绘制的长度
int wids = (int)f.Width;
//在计算的基础上加滚动条长度15
this.Width = wids + 15; 这是本人针对你的问题写的一个测试程序,不知道是不是要这个效果,不一定正确,有点误差..
建议你还是显示滚动条不要调整窗体大小了,正如6楼说的,如果你的窗体大小设置超过最大值会报错的。
如果非要修改大小的话可以修改窗体的size属性, 修改的大小值为你的listbox的item总数×每个item的高度加上标题的高度。 宽度直接等于listbox的宽度就可以了