如图片
感谢大家,提供的思路,已经搞出来了
在想办法处理 用户控件的宽度自适应了。
这个问题很好解决,Winform里有个控件是FlowLayoutPanel,可以自动排列里面的控件,然后你把卡片做成自定义控件UserControl,在构造函数里把数据传进去,然后每次用的时候就new一个新的UserControl,添加到FlowLayoutPanel,这个问题我帮一个妹子解决过,你有哪里不懂的可以私信问我
自定义控件+数据绑定
或 gdi+ 直接绘制
既然是winform 建议试一下TableLayoutPanel表格布局控件+(学生信息)可以自定义学生信息的控件(使用自定义控件或者dev的FlyouPanel)扩展一下思路想一下
webBrowser1.BeginInvoke是创建了新的线程,平凡调用会出现卡顿,建议替换成以下代码来进行控件内HTML页面的刷新
webBrowser1.Document.ExecCommand("Refresh",false,null);
直接用panel来实现,然后空白信息或者隐藏,有信息就填充信息+显示出来,没有就清空信息+隐藏panel。这样不会卡,也不会闪屏
显示可以用panel实现,程序容易卡不是因为信息更新快,是你的线程开的有问题。主界面卡顿或者卡死是你的程序主线程一直占用,导致的。用个委托+自更新也可以。
写了一个简单的示例,不知道是不是你想要的效果,运行如图:
自适应宽度的 其实可以参考css media screen类似的处理办法,当软件窗体初始化和窗体大小变化时动根据当前的容器宽度范围给卡片分配指定的宽度,多分几个区间范围就可以了