我正在用C#編寫代碼。關注第三方應用程序並返回
我有一個程序,可以嵌入我的程序中嵌入的第三方應用程序。 我也有一個RichTextBox,我在其中寫入文本,然後在嵌入式應用程序中實時顯示它。一切正常,但我需要移動鼠標,因爲應用程序將獲得焦點,然後刷新並向我顯示更改。
這是這個過程:
private void button2_Click(object sender, EventArgs e)
{
System.IO.File.WriteAllText(@"ForParsing.txt", textBox1.Text);
pdf.StartInfo.FileName = @"yap.exe";
pdf.StartInfo.Arguments = "ForParsing.dvi";
pdf.Start();
pdf.WaitForInputIdle(-1);
SetParent(pdf.MainWindowHandle, this.splitContainer2.Panel1.Handle);
SetWindowPos(pdf.MainWindowHandle, HWND_TOP,
this.splitContainer2.Panel1.ClientRectangle.Left,
this.splitContainer2.Panel1.ClientRectangle.Top,
this.splitContainer2.Panel1.ClientRectangle.Width,
this.splitContainer2.Panel1.ClientRectangle.Height,
SWP_NOACTIVATE | SWP_SHOWWINDOW);
}
我對TextBox按鍵下方的處理程序。 當按下鍵時,我專注於嵌入在我的程序中的第三方應用程序。
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
System.IO.File.WriteAllText(@"ForParsing.txt", textBox1.Text);
//Focus on third party application
SetForegroundWindow(pdf.MainWindowHandle);
}
到目前爲止這麼好。 現在的問題:我想焦點立即返回到文本框中的courser相同的地方。除了實時刷新嵌入式應用程序之外,我希望能夠繼續在TextBox中寫入任何內容。
簡而言之,我需要第三方應用程序立即刷新(獲得焦點),並且能夠在TextBox中停止當前位置時輸入干擾。
可以嗎?有更好,更簡單的解決方案嗎?會樂於聽取任何建議。
正如我不能回答我的問題,我將在這裏寫:
我已經找到了解決辦法與人的問題
這裏修修補補是我做了什麼:
private void richTextBox1_TextChanged(object sender,EventArgs e) System.IO.File.WriteAllText(@「ForParsing.txt」,textBox1.Text);
//Focus on third party application
SetForegroundWindow(pdf.MainWindowHandle);
//Restore focus
pdf.WaitForInputIdle();
SetForegroundWindow(this.Handle);
this.Focus();
}
感謝大家的幫助