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 に答える