Monodevelop:从C#/Visual Studio移植:双击“消失”
在过去的两个月里,我在Visual Studio中用C#编写了应用程序。现在我必须通过Monodevelop将该应用程序移植到Linux。嗯,我已经解决了大多数移植错误,但有一个我无法解决。所有来自Visual Studio的双击和鼠标双击事件都停止了工作-我甚至创建了一个小的单表单应用程序,我只使用表单和一个事件(双击)移植到Mono-它也不工作-这意味着Monodevelop无法从Visual Studio移植双击事件?我已经检查了WND_Proc函数,Linux没有抛出任何相应的双击事件(窗口中为515,标题栏上为300左右…)。我已经放弃了,准备写更多的代码来解决我代码中所有双击的问题,但也许有人有答案Monodevelop:从C#/Visual Studio移植:双击“消失”,c#,visual-studio,monodevelop,double-click,C#,Visual Studio,Monodevelop,Double Click,在过去的两个月里,我在Visual Studio中用C#编写了应用程序。现在我必须通过Monodevelop将该应用程序移植到Linux。嗯,我已经解决了大多数移植错误,但有一个我无法解决。所有来自Visual Studio的双击和鼠标双击事件都停止了工作-我甚至创建了一个小的单表单应用程序,我只使用表单和一个事件(双击)移植到Mono-它也不工作-这意味着Monodevelop无法从Visual Studio移植双击事件?我已经检查了WND_Proc函数,Linux没有抛出任何相应的双击事件(
我使用的是Ubuntu linux(如果必要的话,我可能会检查内核版本)、MONO:2.8.3、Visual Studio 2008和.NET 3.5中的project。GTK#对待双击事件的方式不同于Windows窗体。您必须编写代码来翻译事件。如果你这样做,你不妨花时间反对双击作为习惯用法。在实现鼠标单击时,Windows和Gtk之间有两个主要区别,你应该记住:
// The following line is may not be needed but is here to show how to do it
eventbox1.GdkWindow.Events = eventbox1.GdkWindow.Events | Gdk.EventMask.ButtonPressMask;
protected void OnEventbox1ButtonPressEvent (object o, ButtonPressEventArgs args)
{
if( ((Gdk.EventButton)args.Event).Type == Gdk.EventType.TwoButtonPress)
System.Media.SystemSounds.Beep.Play (); // Play a sound only if this is a double-click event
}
收到的事件顺序(双击时)为:
希望有帮助 出于好奇,这个世界不是正在远离双击吗?好吧,我可以这么做。我已经注意到“失去焦点”功能无法正常工作(“聚焦”属性不会立即更改,我必须在10毫秒计时器后检查)。我只是希望Monodevelop能够在编译期间将这些事件转换/模拟为linux代码。