Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux上Mono中的C#窗口失去焦点_Linux_Mono - Fatal编程技术网

Linux上Mono中的C#窗口失去焦点

Linux上Mono中的C#窗口失去焦点,linux,mono,Linux,Mono,我在visualstudio中使用C#构建了一个简单的游戏,它基于一个旧的基本轰炸机游戏,该游戏有一个主窗口,以及提供地图图像和一组设置的附加子窗口。这个程序在Windows中运行良好。但是,当我使用“mono”命令在我的Linux虚拟机上运行该程序时,该程序只有在没有打开任何子窗口的情况下才能正常运行。如果打开并随后关闭任何子窗口,则主窗口永远不会恢复焦点。所有菜单选项或按钮均不起作用。它们都是灰色的。唯一的办法就是终止这个过程。我正在运行Lubuntu 15.10,根据Synaptic软件包

我在visualstudio中使用C#构建了一个简单的游戏,它基于一个旧的基本轰炸机游戏,该游戏有一个主窗口,以及提供地图图像和一组设置的附加子窗口。这个程序在Windows中运行良好。但是,当我使用“mono”命令在我的Linux虚拟机上运行该程序时,该程序只有在没有打开任何子窗口的情况下才能正常运行。如果打开并随后关闭任何子窗口,则主窗口永远不会恢复焦点。所有菜单选项或按钮均不起作用。它们都是灰色的。唯一的办法就是终止这个过程。我正在运行Lubuntu 15.10,根据Synaptic软件包管理器的详细信息,各种mono支持库的版本是3.2.8。我更好奇的是,我是否需要等待更多的“系统窗口”支持添加到mono运行时。提前感谢您的回复

附加注释-2016年3月8日

这是对导致该行为的代码请求的响应

由于我的程序相当长,我使用Microsoft Visual Studio 2015快速构建了一个简单的C#程序,该程序有一个父窗口和一个通过按下按钮调用的子窗口。这个示例程序展示了在Windows和Linux上我的bomber程序中看到的相同行为

在Windows中,当显示并关闭子窗口时,焦点返回到父窗口,我可以使用提供的菜单选项关闭父窗口和程序。但是,当我将这个程序移植到我的Linux系统(在虚拟机中运行的Lubuntu 15.10)时,一旦子窗口打开然后关闭,父窗口就永远不会恢复焦点

这是父级的C#代码(称为Form1)

下面是支持的子类代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ParentChild
{
    public partial class Child : Form
    {
        public Child()
        {
            InitializeComponent();
        }

        private void btnChild_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }
    }
}

我希望这能澄清问题。

欢迎来到Stack Overflow!您的问题很难回答,因为它不包含任何代码。您需要发布您的代码,以便人们可以查看并指出问题所在。您最好创建一个。另请参见。尝试在ShowDialog之后添加this.BringToFront();这是Focus();古斯曼,谢谢你的建议。我试着添加这两个语句。然而,当在我的Lubuntu系统中启动此程序时,父窗口上的控件仍然呈灰色,并且窗口似乎仍然没有焦点。我会和孩子多试几样东西。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ParentChild
{
    public partial class Child : Form
    {
        public Child()
        {
            InitializeComponent();
        }

        private void btnChild_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }
    }
}