WinAPI 魔法和 MONO 运行时

发布于 2024-09-02 04:58:29 字数 341 浏览 3 评论 0原文

我试图获得与 .NET 应用程序相同的结果(请参阅链接 隐藏 TabControl 按钮以管理堆叠的面板控件了解详细信息),但使用 MONO 运行时而不是 MS .NET 运行时。

实际上,当使用 MONO 运行时执行自定义控件时,底层消息不会发送到控件,从而导致显示选项卡页...

是否有一种与链接解决方案一样优雅的便携式解决方案?如果不可能,有哪些可能的解决方法(除了在运行时删除/添加选项卡之外)?

I'm trying to get the same result of a .NET application (see the link Hide TabControl buttons to manage stacked Panel controls for details), but using the MONO runtime instead of the MS .NET runtime.

Pratically, when the custom control is executed using the MONO runtime, the underlying message is not sent to the control, causing the tab pages to be shown...

Is there a portable solution which is elegant as the linked one? If it is not possible, what are possible workarounds (apart from removing/adding tabs at runtime)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

海风掠过北极光 2024-09-09 04:58:29

我设计UI从来不依赖于这样的“魔力”。

我的首选方法是,

  1. 将页面设计为 UserControl 而不是 TabPage,并设置 UserControl.Dock = System.Windows.Forms.DockStyle.Fill;
  2. 使用面板而不是 TabControl。
  3. 将所有UserControl添加到面板中并仅设置其中一个Visible = true;一次。

那么这个解决方案是跨平台的,因为您没有调用 Win32 API。

I never design UI depends on such "magic".

My preferred approach is,

  1. Design your pages as UserControl instead of TabPage, and set UserControl.Dock = System.Windows.Forms.DockStyle.Fill;
  2. Use Panel instead of TabControl.
  3. Add all UserControl to the panel and set only one of them Visible = true; at a time.

Then this solution is cross platform as no Win32 API is called by you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文