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;
}
4

1 回答 1

6

您的标签只是表单的字段,只要您实际上不调用方法或在它们上设置属性,就可以随意传递它们:

public void ChangeLabel(string msg, Label label) {
    if (label.InvokeRequired)
        label.Invoke(new MethodInvoker(delegate {
            label.Text = msg;
        }));
    else
        label.Text = msg;
}
于 2012-06-01T13:52:37.300 回答