使用monomac / c#实例化其他窗口
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用monomac / c#实例化其他窗口,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2190字,纯文字阅读大概需要4分钟。
内容图文
![使用monomac / c#实例化其他窗口](/upload/InfoBanner/zyjiaocheng/676/9e60697fa433422bbcf9b94ee76e2758.jpg)
我一直在寻找这个问题的答案,虽然我意识到这可能很琐碎,但是答案却使我难以理解.
我需要显示第二个窗口(如果需要的话,单击菜单项即可启动).我完全知道如何使用winforms来做到这一点,但是我不确定monomac / NSWindow的含义是什么.我需要这样做:
MyWindowClass myWindow = new MyWindowClass();
myWindow.Show();
我可以找到的关于该主题的最佳信息是,以下方法应该起作用:
MyWindowClass myWindow = new MyWindowClass();
myWindow.MakeKeyAndOrderFront(this);
但是,当我尝试这样做时,它告诉我MyWindowClass()需要重载,因此我查看了构造函数,并发现它正在请求IntPtr.不知道更好,我尝试这样:
MyWindowClass myWindow = new MyWindowClass(new IntPtr());
myWindow.MakeKeyAndOrderFront(this);
这段代码将正确运行,但是当我尝试启动窗口时什么也没有发生.
我敢肯定我只是在犯一个愚蠢的错误,但我只是无法在这个问题上找到任何东西.任何帮助将不胜感激.
编辑:供参考,这是构造函数的相关部分:
public MyWindowClass (IntPtr handle) : base (handle)
{
Initialize ();
}
附加信息:我正在尝试通过以下方法从AppDelegate.cs中运行以上代码:
partial void showWindow (MonoMac.Foundation.NSObject sender){
MyWindowClass myWindow = new MyWindowClass(new IntPtr());
myWindow.MakeKeyAndOrderFront(this);
}
甚至还有更多代码:
public partial class ViewPaths : MonoMac.AppKit.NSWindow
{
#region Constructors
public ViewPaths ()
{
Initialize();
}
// Called when created from unmanaged code
public ViewPaths (IntPtr handle) : base (handle)
{
Initialize ();
}
// Called when created directly from a XIB file
[Export ("initWithCoder:")]
public ViewPaths (NSCoder coder) : base (coder)
{
Initialize ();
}
// Shared initialization code
void Initialize ()
{
}
#endregion
}
然后是实际的实例化:
public partial class AppDelegate : NSApplicationDelegate
{
MainWindowController mainWindowController;
ViewPaths display;
public AppDelegate ()
{
}
public override void FinishedLaunching (NSObject notification)
{
mainWindowController = new MainWindowController ();
mainWindowController.Window.MakeKeyAndOrderFront (this);
}
partial void viewPaths (MonoMac.Foundation.NSObject sender){
display = new ViewPaths();
display.MakeKeyAndOrderFront(this);
}
}
}
这将显示一个没有任何UI元素的窗口.
解决方法:
只需添加不带handle参数的默认构造函数即可.确保MyWindowClass子类化NSWindow,并且它应该可以工作.
另外,您可能需要保留对myWindow的引用-以便不会收集垃圾.
内容总结
以上是互联网集市为您收集整理的使用monomac / c#实例化其他窗口全部内容,希望文章能够帮你解决使用monomac / c#实例化其他窗口所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。