显示表格而不会在一段时间后停止工作

时间:2015-07-29 07:59:09

标签: c# .net winforms

我创建了自己的屏幕键盘,具有特殊功能。 我使用override方法ShowWithoutActivationCreateParams来阻止我的表单获得焦点(根据this stackoverflow question)。

    protected override bool ShowWithoutActivation
    {
        get { return true; }
    }
    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams param = base.CreateParams;
            param.ExStyle |= 0x08000000;
            return param;
        }
    }

但是经过一些Hide()Show()我的表格再次成为焦点。 要修复它,我需要重新启动应用程序,但它当然是糟糕的解决方案。 是否可以不重启? 隐藏后显示表单而没有给予关注但没有帮助。我的应用程序可以再次集中。

我注意到在大多数情况下它会随机发生,但总是在其中一个中:如果我在右键单击托盘中的NotifyIcon后显示我的应用程序并从ContextMenuStrip中选择项目。 OnClick我只是调用show function。

1 个答案:

答案 0 :(得分:-1)

您需要点击窗口吗?如果没有,试试这个:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true" <!-- this because the textview is the topmost view on the screen so I tried to use this -->
    android:text="my text"
    android:textSize="10pt"
    android:id="@+id/text1" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/text1"
    android:orientation="vertical"
    android:id="@+id/linear_layout">
    <!-- some other views -->
</LinearLayout>