System.InvalidOperationException设置文本框文本

时间:2014-05-14 11:18:46

标签: c# multithreading forms user-interface invalidoperationexception

我正在使用一个运行此代码的线程:

try
{
    Form1 f = getForm<Form1>();
    f.changePrice(price);
}
catch (Exception e)
{
    Console.WriteLine("error: " + e);
}

以下是changePrice方法:

public void changePrice(Int32 price)
{
   txtPrice.Text = ""+price;
}

我想在文本框中添加文字&#34; txtPrice&#34;。

2 个答案:

答案 0 :(得分:1)

将其转换为stringText属性的类型为string

public void changePrice(Int32 price)
{
   txtPrice.Text = price.ToString();

}

答案 1 :(得分:1)

您应该在运行时更改文本框文本。

public void changePrice(Int32 price)
    {
        if (InvokeRequired)
        {
            this.Invoke(new Action<Int32>(changePrice), new object[] { price });
            return;
        }

        txtPrice.Text = ""+ price;          
    }

这样就可以了。