我正在设计一个C#应用程序,其中有一个显示OS和RAM相关信息的组框。我设计它使用控件-标签放在一个显示RAM相关信息的Groupbox中。
我有一个刷新按钮,当点击应该显示%的RAM目前使用。
为此,我需要groupbox中的标签(以及其他几个标签)来刷新并重新计算值.。
我该怎么做?在RefreshButton_Click事件中,我尝试了以下所有的方法,但都没有效果:
label1.Refresh();
GroupBox1.Refresh();
Form1.Refresh();
Form1.Invalidate(true);
Panel1.Refresh();请在这方面有所帮助,因为我不认为重新加载一个完整的表单将是一个有效的解决方案。
发布于 2012-03-11 19:09:40
刷新只会显示相同的赋值。必须将新的计算值设置为RefreshButton_Click处理程序中的控件:
var myNewValue = CalculateNewValue();
label1.Text = myNewValue;希望能帮上忙!
发布于 2012-03-11 19:20:53
创建一个包含要显示的属性的类,并为所有属性实现INotifyPropertyChanged接口。然后使用数据绑定将对象绑定到窗体上的控件。当对象的属性发生变化时,控件将自动更新。
见使用INotifyPropertyChanged功能或google INotifyPropertyChanged DataBinding WinForms c#。
发布于 2012-03-11 19:09:43
在winforms中,不刷新整个窗体,只需使用更新窗体部分的触发器事件即可。我在下面列出了这样做的方法。基本上,您需要一个计算函数,并且需要通过设置带有该函数输出的文本来更新标签。您需要根据需要添加尽可能多的函数。
最后,您将希望创建一个计算类,因为您希望将您的UI与计算分开。
下面是一个示例:
private void RefreshButton_Click(object sender, EventArgs e)
{
//Assuming label1 is for the Ram
label1.text = getRamString();
}
private string getRamString()
{
float ramValue = //Calculate the RAM
return string.Format("{0}%", ramValue);
}https://stackoverflow.com/questions/9657870
复制相似问题