将标签作为参数传递给函数

3
我正在创建一个实用程序,执行一些计算后将几条记录插入SQL。我使用后台工作程序防止应用程序进入无响应状态。随着过程的进行,我需要更改一些标签值,为此我使用委托。是否可以将我的标签作为参数传递给具有委托的函数,以便我可以重用其中一些代码?
以下是我用来更改label2值的函数。对于label3,我使用了另一个几乎相同的函数。是否可以创建一个函数,接受标签作为参数,以便我可以传递控件名称和所需消息,并进行更新?
这是我更改label2的代码:
public void changelabel(string msg)
{
    if (label2.InvokeRequired)
        label2.Invoke(new MethodInvoker(delegate
        {
            label2.Text = msg;
        }));
    else
        label2.Text = msg;
}

什么标签?Windows表单?WPF?ASP.Net? - Botz3000
抱歉,我已经重新标记为WinForms。 - Karthik
2
如果您发布您编写的相关代码,那将会非常有帮助。 - CAbbott
@CAbbott发布了代码..谢谢 :-) - Karthik
你尝试过将标签作为函数参数使用吗?它有效吗? - Mr Lister
@MrLister 不,我没有...不确定是否可能。 :-( - Karthik
1个回答

6
您的标签只是表单中的字段,只要您不实际调用方法或设置属性,您可以随意传递它们:
public void ChangeLabel(string msg, Label label) {
    if (label.InvokeRequired)
        label.Invoke(new MethodInvoker(delegate {
            label.Text = msg;
        }));
    else
        label.Text = msg;
}

1
哎呀,不小心修改了你的答案而非我的。很抱歉。那些“编辑”按钮看起来太相似了...;-) 实际上,我会删除我的回答,因为它已经被你的覆盖了(另外加一分)。 - Heinzi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接