0

我的代码是——

    protected void BrowseButtonClick(object sender, EventArgs e)
    { 
        Thread newThread = new Thread(new ThreadStart(ThreadMethod));
        newThread.SetApartmentState(ApartmentState.STA);
        newThread.Start();
    }


    void ThreadMethod()
    {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.ShowDialog();
            BrowseTextBox.Text = string.Format("{0}/{1}", Path.GetDirectoryName(dlg.FileName), dlg.FileName);
    }

请帮忙......

4

2 回答 2

0

目前还不是很清楚你真正需要什么。我假设您在从另一个线程更新 UI 控件时遇到问题。

void ThreadMethod()
{
    OpenFileDialog dlg = new OpenFileDialog();
    dlg.ShowDialog();
    MethodInvoker invoker = delegate 
    {
        BrowseTextBox.Text = .... 
    };

    if(InvokeRequired)
    {
        Invoke(invoker);
    }
    else
    {
        invoker();
    }
}

更新

对于 WPF 应用程序,您应该更改上面的代码。这是示例:

Action invoker = delegate 
    {
        BrowseTextBox.Text = .... 
    };
Dispatcher.Invoke(invoker);
于 2013-03-20T12:11:27.120 回答
-1

BrowseTextBox.Text = dlg.FileName

于 2013-03-20T12:04:16.837 回答