ProcessBar counter C#
本文关键字:counter ProcessBar | 更新日期: 2023-09-27 18:21:27
我有一个关于C#上ProcessBar的问题,如果在列表框中传递项目时使用的方法成功,我将如何将值1添加到标签?
我有一个类似的方法
private static Form1 f1 = Application.OpenForms["Form1"] as Form1;
public static void GroupList1(processBar bar)
{
f1.listBox1.Items.Add("User1");
bar.Value = 100;
}
public static void GroupList2(processBar bar2)
{
f1.listBox1.Items.Add("User2");
bar.Value = 100;
} // Etc, etc - up to GroupList6
我也想有一个标签,告诉我有多少用户的成功添加(使用栏),我正在考虑添加这样的方法:
if (bar.Value = 100)
{
f1.label1.Text = "" + 1;
}
在我的GroupList1/2方法内部,但标签总是显示为值1。
这个方法在我的代码的主要形式中加载了一个单独的标签:
for(int i = 0; int i < listBox1.Items.Count; i++)
{
label2.Text = i.ToString();
}
所以,如果用户成功加载到我的列表框中,我希望标签1增加1,我该怎么做?
显然,这实际上不是我在程序中使用的代码,如果所选索引发生变化,就会使用一个方法(这就是为什么我想增加1,以确保用户成功解析该方法),但问题仍然如所述,谢谢。
我不太明白你想要实现什么,但如果你只着眼于增加这样的标签的价值,那么你可以通过轻松做到这一点
if (bar.Value = 100)
{
f1.label1.Text = ""+(int.Parse(f1.label1.Text)+1);
}
或者如果由于某种原因标签的文本不是整数,甚至是初始化字符串的更好方法
if (bar.Value == 100)
{
int value;
if(!int.TryParse(f1.label1.Text,out value))
{
f1.label1.Text = "1";
}
else
{
f1.label1.Text = ""+(value+1);
}
}
但最好的方法是在一个单独的变量中跟踪值,只更新标签的内容。
将实际计数存储在标签的Text
属性中不是一个好主意,而是创建一个变量:
private static int count;
现在,把你的代码改成这样:
if (bar.Value = 100)
{
// Add 1
count += 1;
// Update the UI
f1.label1.Text = count.ToString();
}