c# winform刷新(重新加载控件)。很奇怪的问题。

boci 2009-04-08 09:11:33
我的页面上很多,textbox及combobox等,比如我输入内容后提交,然后刷新窗口。
但我用this.refresh(); this.InitializeComponent(); this.form_Load(true,true); 等方法就是不行啊,文本框中的内容还是不变。
我在网上查了半天也没结果。
我的窗口中有很多panel,会不会有影响啊。
...全文
6408 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cstester 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 songbb123 的回复:]
我觉得还是在外面写个配置文件,
重新刷新的时候加载不就可以了。
[/Quote]

你不感觉 读配置文件. 没有遍历省性能么.至少还需要引入一个类,多一个对象.
写代码不要从来都不考虑性能..性能是首位.
天府荣城 2009-04-09
  • 打赏
  • 举报
回复
我觉得还是在外面写个配置文件,
重新刷新的时候加载不就可以了。
josephSC 2009-04-09
  • 打赏
  • 举报
回复
没什么好主意,只想到每个控件clear或Dispose
cstester 2009-04-08
  • 打赏
  • 举报
回复
winform 直接刷新方法 就是 this.refresh();
这个实现不了的话 只能用上面我给的那段代码片段,
cstester 2009-04-08
  • 打赏
  • 举报
回复

private void FlushControls(Control con)
{
foreach(Control c in this.Controls)
{
String type = c.GetType;
switch(type)
{
case "Textbox":
c.Clear();
break;
case "combobox":
c.Items.Clear();
break;
case "panel":
this.FlushControls(c);
break;
}
}


}




循环,迭代.手写代码,参数类型不对的话改改就可以了..

cstester 2009-04-08
  • 打赏
  • 举报
回复
那就得用我说的那个 跟7楼差不多少的循环,
然后反射 判断..是Textbox类型,或者combobox就clear();
uncleson88 2009-04-08
  • 打赏
  • 举报
回复
这个方法不知可不可行:先利用循环将 Form 中所有Control Dispose掉,再调用InitializeComponent();


foreach(Control c in this.Controls)
{
c.Dispose(); //如果有Panel等窗口的话,恐怕还得将子控件一一 Dispose掉...
}

InitializeComponent();

boci 2009-04-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cstester 的回复:]
写个初始化方法..
循环便利元素,可以用反射得到类型,然后判断类型.清空.但是相对要耗性能些.

最好的方法就是写个像下面的
private void Initial()
{
this.textbox1.Clear();
this.textbox1.Clear();
this.textbox1.Clear();
......
//注意如果combobox不是绑定后台数据库的话可以像上面那行代码写.绑定的话
this.combobox.Items.Clear()…
[/Quote]

这样是可以实现。但太麻烦了。我的控件很多,而且有很多启动时就赋值了,很难利用循环再次赋值,只能一个一个写。
难道winform没法直接刷新?
cstester 2009-04-08
  • 打赏
  • 举报
回复
再有一点.面板 如果没有背景图片,对窗体是豪无影响的...
除非你的面板上背景图片老大了.超过1M 甚至更大,加载的时候会卡.
但是跟数据控件不发生关系..美观问题..
cstester 2009-04-08
  • 打赏
  • 举报
回复
写个初始化方法..
循环便利元素,可以用反射得到类型,然后判断类型.清空.但是相对要耗性能些.

最好的方法就是写个像下面的
private void Initial()
{
this.textbox1.Clear();
this.textbox1.Clear();
this.textbox1.Clear();
......
//注意如果combobox不是绑定后台数据库的话可以像上面那行代码写.绑定的话
this.combobox.Items.Clear();
//如果绑了,就像下面这么写
this.combobox.SelectedIndex=0;
}

每提交一次 刷新一次. 不知道是否是楼主的要求.
boci 2009-04-08
  • 打赏
  • 举报
回复
我就是想提交后可以再继续填写第二个。
重新赋值是可以,但我的控件很多,又不是一个类型的,有些事先已赋值了,有时还有从别的窗口加载的,重新赋值很麻烦啊。
如果可以恢复到程序刚刚启动时,就可以了。
lybelmont 2009-04-08
  • 打赏
  • 举报
回复
还是不太清楚你的具体情况

你是在另一个线程里加载吗?
cja03 2009-04-08
  • 打赏
  • 举报
回复
重新赋值就行了。
只是。。。。你不是输入内容了吗?
内容概要:本文档是关于“基于小信号扫频辨识的光伏并网逆变器正负序交互稳定性分析”的博士论文复现资源,配套提供Matlab代码与Simulink仿真实现。内容聚焦于弱电网条件下光伏并网逆变器的稳定性问题,深入研究其正负序阻抗建模方法、小信号扫频辨识技术及正负序交互失稳机理。通过构建高精度的系统仿真模型,采用扫频法提取逆变器在不同控制环路(如锁相环、电流环)影响下的序阻抗特性,并结合奈奎斯特稳定性判据评估其与电网阻抗之间的交互作用,系统性地揭示了宽频带振荡的产生机制。该资源完整还原了论文中的关键理论推导与仿真验证流程,适用于从事新能源并网、电力电子系统建模与稳定性分析的研究人员进行学习、复现与二次开发。; 适合人群:具备电力系统、电力电子与自动控制理论基础,熟练掌握Matlab/Simulink仿真工具,从事新能源发电并网、逆变器控制策略或电力系统稳定性研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 复现并验证博士论文中提出的光伏逆变器正负序阻抗建模与小信号扫频分析方法;② 深入理解弱电网环境下由正负序耦合引发的交互失稳现象及其物理机理;③ 掌握基于阻抗法的并网系统稳定性分析流程,为虚拟同步机、构网型控制等先进控制策略的稳定性研究提供技术参考与仿真支撑。; 阅读建议:建议学习者结合提供的代码与仿真模型,首先深入理解序阻抗建模与扫频辨识的基本原理,然后逐步调试仿真程序,重点关注锁相环动态、电流控制器参数对序阻抗曲线的影响,最终掌握从模型搭建、扫频测试到稳定性判据应用的全流程分析能力。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧