C# 面板作为 MDI 容器

2023-12-03

在 C# 中,我想创建一个具有 MDI 容器属性的面板,即。 isMdiContainer = true。

我尝试过这样的事情

form.MDIParent = this.panel1;

但这不起作用。有什么建议么?


可以创建一个 MDI 面板并在该面板中显示表单,类似下面的代码就可以完成这项工作

Mdi面板定义:

public class MdiClientPanel : Panel
{
    private Form mdiForm;
    private MdiClient ctlClient = new MdiClient();

    public MdiClientPanel()
    {
        base.Controls.Add(this.ctlClient);
    }

    public Form MdiForm
    {
        get
        {
            if (this.mdiForm == null)
            {
                this.mdiForm = new Form();
                /// set the hidden ctlClient field which is used to determine if the form is an MDI form
                System.Reflection.FieldInfo field = typeof(Form).GetField("ctlClient", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
                field.SetValue(this.mdiForm, this.ctlClient);
            }
            return this.mdiForm;
        }
    }
}

Usage:

/// mdiChildForm is the form that should be showed in the panel
/// mdiClientPanel is an instance of the MdiClientPanel
myMdiChildForm.MdiParent = mdiClientPanel1.MdiForm;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 面板作为 MDI 容器 的相关文章

  • 如何使用带有进度条的 HttpClient 下载文件?

    我创建了一个名为SiteDownload并添加了一些下载图像的链接 using System Collections Generic using System Linq using System Net using System Threa
  • fork 和 exec 之间的区别

    两者有什么区别fork and exec 指某东西的用途fork and exec它体现了 UNIX 的精神 它提供了一种非常简单的方法来启动新进程 The fork调用基本上复制了当前进程 在almost任何方式 并非所有内容都会被复制
  • 如何在 C# 中启动文件

    编辑 我觉得自己像个白痴 我有一种感觉 像下面的答案会起作用 但没有看到任何与下面的答案类似的谷歌结果 所以当我看到这段复杂的代码时 我想它一定是这样的 我搜索并找到了这个Windows 列出并启动与扩展关联的应用程序 https stac
  • stl 集的 C# 等效项是什么?

    我想使用 C 将一些值存储在平衡二叉搜索树中 我查看了泛型命名空间中的集合 但没有找到与 stl 集合等效的集合 我可以使用什么通用集合 我不想存储键 值对 只是值 你可以使用HashSet http msdn microsoft com
  • Visual Studio 2013 Intellisense 不会将枚举类型放在方法参数的位置

    例如 我有以下代码 namespace VS2013 EnumTypes class Program enum SomeEnum One Two static void SomeMethod SomeEnum someEnum some c
  • File.ReadAllLines 或流读取器

    我们可以使用以下方式读取文件StreamReader http msdn microsoft com en us library vstudio system io streamreader或通过使用File ReadAllLines ht
  • 如何使用 DesignData 帮助开发 Metro 应用程序?

    我一直在 Windows Phone 应用程序中愉快地使用 DesignData 我希望使用它来帮助在 VS2012 Blend for VS 中的 Metro 风格应用程序中可视化设计 我已经尝试过希望显而易见的方法
  • WCF 客户端返回空数组 - XML 响应似乎正常

    我正在尝试为我们的 Intranet 上托管的 Web 服务创建一个简单的 WCF 客户端 C 使用 Fiddler 和 SoapUI 我可以看到请求和响应似乎正常 但是当我运行代码时返回一个空数组 我会尝试只粘贴相关的行 但会是很多东西
  • 二元运算符重载、隐式类型转换

    class my bool private bool value public my bool bool value value value explicit operator bool return value friend my boo
  • 具有多重继承的不明确基数

    我正在尝试在一个大库中编写一些类的子类 我收到 基础不明确 错误 这是该问题的一个可编译示例 include
  • 使用 unrar 库 - 将文件提取到文件流缓冲区中

    我需要的是能够将 rar 文件中的文件提取到流中 我正在创建一个测试用例来了解如何使用解压源文件 http www rarlab com rar unrarsrc 3 9 9 tar gz 我已经搜索和修补了一段时间 但我不知道如何使用该库
  • 我的 Opencv 应用程序处理速度非常慢

    我正在构建一个 OpenCV 应用程序 它从相机捕获视频 并在删除背景后将其覆盖在另一个视频上 我无法达到合理的速度 因为它以大约 1 fps 的速度播放输出 而我的背景去除以 3 fps 的速度工作 有没有办法以正常速度显示背景视频并以
  • 将纬度/经度转换为 X/Y,以便在美国地图图像上进行阿尔伯斯投影

    我正在尝试使用 C 或 Javascript 将纬度 经度转换为 X Y 坐标 以将带有 CSS 的 div 左 上 定位到美国地图的背景图像上 美国的标准地图投影是阿尔伯斯投影 如下所示 但 StackOverflow 仅提供参考基本墨卡
  • 使用可变参数模板函数计算多个值的平均值

    我正在尝试编写一个函数来确定任意数量参数的平均值 所有参数都具有相同的类型 出于学习目的 我尝试使用可变参数模板函数来做到这一点 这是我到目前为止所拥有的 template
  • 如何将此 Boost ASIO 示例应用到我的应用程序中

    我已经阅读了很多 ASIO 示例 但我仍然对如何在我的应用程序中使用它们感到困惑 基本上 我的服务器端需要接受超过100个连接 客户端 这部分是通过使用线程池 通常每个CPU核心2 4个线程 来完成的 为简单起见 我们假设只有一个连接 为了
  • 将 .NET 类库(主要定义 CRUD 操作)公开为服务

    公开现有内容的最佳 有效和最快的方法是什么 类 图书馆 主要定义 CRUD 操作 作为service 周转基金服务 or WCF数据服务 以便它可以与银光 or Ajax 在那儿tools 代码生成器 RAD 工具 哪些可以支持这个 预先感
  • 使用 System.Json 迭代 JSON

    我正在探索 NET 4 5 的功能System Json库 但没有太多文档 而且由于流行的 JSON NET 库 搜索起来相当棘手 我基本上想知道 我如何循环一些 JSON 例如 People Simon Age 25 Steve Age
  • 定义一个断言,即使定义了 NDEBUG,该断言也有效

    我想定义一个assert与标准相同的宏assert 3 http man7 org linux man pages man3 assert 3 html调用 但它不会被预处理器删除NDEBUG被定义为 这样的呼唤 让我们称之为assert2
  • 在运行时将项目添加到 ToolStrip

    您好 我有一个带有 收藏夹 菜单的 ToolStripMenu 我想在运行时在 WinForms 应用程序中添加子项目 我有一个 datagridview 右键单击它会显示一个包含 添加到收藏夹 选项的上下文菜单 当该事件被触发时 我想使用
  • 我应该为每个 Web 请求使用静态缓存的 ResourceManager 还是一个新实例?有关系吗?

    创建新的 NET 对性能 或其他 有何影响 如果有 ResourceManager根据每个请求new ResourceManger myResourceType FullName myResourceType Assembly 与在 Des

随机推荐

  • SmartGwt DateItem useTextField=true - 如何使文本输入字段不可编辑

    因为我不知道如何解决我提出的问题here我暂时在想一个临时的解决办法 我有一个smartgwtDateItem widget DateItem date new DateItem Adate date setWidth 120 date s
  • React.js 中所有者和父组件有什么区别

    React 0 13 带来基于父级的上下文而不是基于所有者的上下文 所以 我不太明白所有者组件和父组件之间的区别 示例将不胜感激 var A React createClass render return b b
  • 重新渲染 rich:dataTable 的特定行

    早上好 是否可以仅重新渲染 rich dataTable 的 1 特定行 我有一个 rich dataTable 当我执行某些操作时 我确信只有 1 行发生了更改 我只需要重新渲染这一行 而不是整个表 是否可以 如何 XHTML
  • 使用海龟模块 exitonclick()

    我的代码应该在第一部分之后关闭turtle screen 然后启动另一个屏幕并执行第二部分 但在那里它没有按预期工作 import turtle ws turtle Screen tod 1 turtle Turtle tod 1 colo
  • UIScrollview获取触摸事件

    如何检测我的触摸点UIScrollView 触摸委托方法不起作用 设置点击手势识别器 UITapGestureRecognizer singleTap UITapGestureRecognizer alloc initWithTarget
  • 为什么向量持有一个类类型在push_back()时会再次调用复制构造函数?

    我有以下代码 include
  • Java-切换字符串中的字母大小写

    我有我的代码可以将大小写从上切换到下 反之亦然 我也有它可以从上到下 从下到上切换的位置 我的问题是 有没有办法让它也包含逗号或句点等字符 例如 如果我输入字符串 Hello there 我会得到 你好 那里 你好 那里 和 你好 我怎样才
  • Unity Hololens2 构建错误

    我尝试构建 Hololens 2 应用程序 但遇到无法解决的错误 当我尝试使用 Unity 播放按钮测试应用程序时 它按预期工作 我还尝试了 MRTK 示例场景 它也只能通过播放按钮起作用 但当我尝试构建它时却不起作用 构建错误 Libra
  • 熊猫在索引列上合并? [复制]

    这个问题在这里已经有答案了 In 88 c Out 88 Address Name CustomerID 10 Address for Mike Mike 11 Address for Marcia Marcia In 89 c index
  • 为 javafx textField 添加最多 2 位小数的侦听器

    我想将 javaFX 文本字段设置为小数点后两位 我找到了答案 但它是针对数值的 例如 force the field to be numeric only textField textProperty addListener new Ch
  • 如何更改 UIImagePickerController 中的取消按钮标题?

    目前我正在开发一个多语言应用程序 我想更改Cancel Use and Retake的按钮标题UIImagePickerController 我怎样才能做到这一点 我的问题是通过使用自定义覆盖类解决的 self picker UIImage
  • 如何用日期标记 x 轴?

    我似乎无法弄清楚如何在 Matlab 中绘制不按数字顺序排列的日期 我需要的日期是从 1 月 22 日到 2 月 1 日 但是当我将其放入 Matlab 中时 它从 1 日开始按数字顺序排列 所以我想知道如何获取它 以便它按照我的列表顺序排
  • Google Cast SDK3 Android 示例应用程序在低于 5.0 的设备上崩溃

    我已经尝试过 Google Cast Android 示例应用程序 但对于低于 5 0 的设备会崩溃 有人知道为什么吗 下面是我的崩溃日志 0830 12 38 57 242 E AndroidRuntime 16269 引起 java l
  • 如何从极坐标中的日期时间列中提取日期

    我正在尝试从熊猫转移到极地 但遇到了以下问题 import polars as pl df pl DataFrame integer 1 2 3 date 2010 01 31T23 00 00 00 00 2010 02 01T00 00
  • 批量更改文件扩展名

    简单的问题 IMDU 命令执行 imdu b file imd file raw 并将 file imd 转换为 file raw 我有很多 imd 所以我需要一批 我努力了 for x in imd do imdu b x nx raw
  • jQuery:包含用于搜索多个字符串的选择器

    假设我有 li Mary li li John Mary Dave li li John Dave Mary li li John li 如果我需要找到所有包含 John 和 Mary 的 元素 我将如何构建 jQuery 搜索单个字符串似
  • 在 R 中将 raw 转换为 long?

    我需要读取一个编码长整型的二进制文件 我只举其中一个多头作为例子 don t know a simpler way to create the raw vector z lt writeBin c 8L 208L 59L 233L 106L
  • PHP签入签出系统

    我有 PHP 的基本知识 我正在尝试通过向数据库添加签入时间和签出时间来创建签入和签出系统 报到 session start SESSION inchecken true tijd date H i s query INSERT INTO
  • 使用 R/Selenium 仅查找 Disqus 中最热门的帖子

    首先 我对这篇文章的长度表示歉意 因为我想提供足够的细节来说明我正在尝试做的事情 我正在尝试完善我用 R 编写的抓取应用程序以获取 Disqus 评论 到目前为止 我可以使用各种 RSelenium 功能获取特定页面上的所有评论 我现在想做
  • C# 面板作为 MDI 容器

    在 C 中 我想创建一个具有 MDI 容器属性的面板 即 isMdiContainer true 我尝试过这样的事情 form MDIParent this panel1 但这不起作用 有什么建议么 可以创建一个 MDI 面板并在该面板中显