C# 在我使用AxAcroPDFLib显示Form2后,将焦点/选择设置为Form1时出现问题

C# 在我使用AxAcroPDFLib显示Form2后,将焦点/选择设置为Form1时出现问题,c#,winforms,select,focus,form-control,C#,Winforms,Select,Focus,Form Control,根据标题,在显示Form2之后,我在选择Form1中的控件并将其设置为焦点时遇到问题。你知道为什么下面的代码不起作用吗 public partial class MainForm : Form { public Form2 frm2; ... public void ReadThroughContents(int index) { ... if (frm2.IsDisposed || frm2 == null) { f

根据标题,在显示Form2之后,我在选择Form1中的控件并将其设置为焦点时遇到问题。你知道为什么下面的代码不起作用吗

public partial class MainForm : Form
{
     public Form2 frm2;

     ...

     public void ReadThroughContents(int index)
     {
        ...

        if (frm2.IsDisposed || frm2 == null) { frm2 = new Form2(); }
        if (!frm2.Visible) { frm2.Show(); }

        this.listbox1.Focus();
        this.listbox1.Select();

        ...
     }
编辑:为了清楚起见,焦点仍然是Form2。然而,我可以通过点击表单手动选择并关注表单1,但我需要自动完成

编辑:在表格2中,我使用的是
AxAcroPDFLib
库。PDF文件在显示时以Form2格式加载。我相信这就是阻止Form1获得关注的原因。我尝试过不加载PDF文件,我可以自动聚焦

干杯

为了说明这一点,重点仍然是Form2

这是因为
Form.Show
窃取焦点

在将焦点设置为特定控件之前,可以尝试将焦点恢复到Form1。您可以使用来执行此操作:

//...
this.Activate();
this.listbox1.Focus();
//...

如果您想始终显示Form2而不窃取焦点,请查看此问题:

通过上面的@defaultlocale找到了解决方案

从复制的代码


如果我不使用AxAcroPDFLib,这将起作用。。。我相信我的问题要复杂得多。谢谢你的帮助。@TonyMontana我没有使用Acrobat SDK的经验。搜索把我带到这里,看看汉斯·帕桑的评论
private void returnFocus(object sender, EventArgs e)
    {
        lstboxItems.Focus();
    }
this.lstboxItems.LostFocus += new System.EventHandler(this.returnFocus);