C# Winforms,将父对象分配给新的子对象,而不是实例化表单

2024-02-01

我有一个带有两个子窗体的 MDI 容器。我们被教导(MSDN 文档只给出了示例)使用关键字“this”,它假设所讨论的子对象是从 MDI 容器本身创建的。

如果我在 MDI 容器中创建对象,则这是正确的:

Form_Child2 child = new Form_Child2(textBox1.Text);
child.MdiParent = this;
child.Show();

相反,我正在尝试做一些更像这样的事情:

Form_Child2 child = new Form_Child2(textBox1.Text);
child.MdiParent = Form_Parent;
child.Show();

但是,这会引发错误,指出“Form_Parent”是一种类型,不能用作变量。我想我隐约明白它的意思,但还不清楚。我也尝试过研究一下关键字“this”,但仍然卡住了。


如果您想成为一名 C# 程序员,那么了解类型和对象之间的区别非常重要。是的,这里有一个大问题,这里需要一个 Form_Parent 的实例,你不能使用类型名称。

只有曾经oneMDI 父窗口的实例。这是您可以利用的,您可以向父类添加静态属性。让它看起来像这样:

public partial class Form_Parent : Form {

    public static Form_Parent Instance { get; private set; }

    public Form_Parent() {
        InitializeComponent();
        Instance = this;
    }
    // etc..
}

现在很简单:

Form_Child2 child = new Form_Child2(textBox1.Text);
child.MdiParent = Form_Parent.Instance;
child.Show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# Winforms,将父对象分配给新的子对象,而不是实例化表单 的相关文章

  • 访问私人成员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 通过将类的私有成员转换为 void 指针 然后转换为结构来访问类的私有成员是否合适 我认为我无权修改包含我需要访问的数据成员的类 如果不道德 我
  • ASP.NET Core Serilog 未将属性推送到其自定义列

    我有这个设置appsettings json对于我的 Serilog 安装 Serilog MinimumLevel Information Enrich LogUserName Override Microsoft Critical Wr
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • Newtonsoft JSON PreserveReferences处理自定义等于用法

    我目前在使用 Newtonsoft Json 时遇到一些问题 我想要的很简单 将要序列化的对象与所有属性和子属性进行比较以确保相等 我现在尝试创建自己的 EqualityComparer 但它仅与父对象的属性进行比较 另外 我尝试编写自己的
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • 获取没有非标准端口的原始 url (C#)

    第一个问题 环境 MVC C AppHarbor Problem 我正在调用 openid 提供商 并根据域生成绝对回调 url 在我的本地机器上 如果我点击的话 效果很好http localhost 12345 login Request
  • C#:如何防止主窗体过早显示

    在我的 main 方法中 我像往常一样启动主窗体 Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • Json.NET - 反序列化接口属性引发错误“类型是接口或抽象类,无法实例化”

    我有一个类 其属性是接口 public class Foo public int Number get set public ISomething Thing get set 尝试反序列化Foo使用 Json NET 的类给我一条错误消息
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • Qt表格小部件,删除行的按钮

    我有一个 QTableWidget 对于所有行 我将一列的 setCellWidget 设置为按钮 我想将此按钮连接到删除该行的函数 我尝试了这段代码 它不起作用 因为如果我只是单击按钮 我不会将当前行设置为按钮的行 ui gt table
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • C - 直接从键盘缓冲区读取

    这是C语言中的一个问题 如何直接读取键盘缓冲区中的数据 我想直接访问数据并将其存储在变量中 变量应该是什么数据类型 我需要它用于我们研究所目前正在开发的操作系统 它被称为 ICS OS 我不太清楚具体细节 它在 x86 32 位机器上运行
  • Process.Start 阻塞

    我正在调用 Process Start 但它会阻止当前线程 pInfo new ProcessStartInfo C Windows notepad exe Start process mProcess new Process mProce
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • ASP.NET MVC 6 (ASP.NET 5) 中的 Application_PreSendRequestHeaders 和 Application_BeginRequest

    如何在 ASP NET 5 MVC6 中使用这些方法 在 MVC5 中 我在 Global asax 中使用了它 现在呢 也许是入门班 protected void Application PreSendRequestHeaders obj
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框

随机推荐

  • 使用 Swift 3 停止预定定时器,即使定时器为零,定时器也会继续触发

    我们调用startTimer函数来启动一个定时器 当我们想要停止它时 我们调用 stopTimerTest 函数 但在调用 stopTimer 函数后 timerTestAction 继续触发 为了检查计时器条件 我们使用 print 并在
  • 通过引用设置接口参数

    我很难理解如何设置作为指针传递的接口值 我正在尝试完成以下任务 import fmt var Stuff map string interface func main var num int Stuff key 9001 get key n
  • 在asp.net mvc中一次更新多条记录

    我正在尝试使用制作一个网站asp net mvc 4 EF6我想一次更新多行 但由于某种原因 它不起作用 我收到这样的错误 System NullReferenceException 未将对象引用设置为对象的实例 这是我的代码 控制器 Ht
  • 展平 JavaScript 对象以作为查询字符串传递

    我有一个 javascript 对象 需要将其展平为字符串 以便可以作为查询字符串传递 我该怎么做 IE cost 12345 insertBy testUser 会成为cost 12345 insertBy testUser 我不能使用
  • 在 Scala / Spark 中将文件从一个文件夹移动到 HDFS 上的另一个文件夹

    我有两个路径 一个用于文件 一个用于文件夹 我想将文件移动到 HDFS 上的该文件夹中 我怎样才能在 Scala 中做到这一点 我也在用 Spark 如果相同的代码也适用于 Windows 路径 就像在 HDFS 上读取 写入文件一样 但不
  • 对 WTForms form.errors 字典进行排序

    forms errors 字典似乎是按字段名称排序的 而不是按 它们在表格本身中声明的顺序 E g class ProductForm Form code TextField Code validators Required descrip
  • 构建错误 -Ionic Cordova 在 Android 上失败 [重复]

    这个问题在这里已经有答案了 运行命令 ionic cordova build android stacktrace 时出现以下错误 generateDebugResources mergeDebugResources processDebu
  • 为什么 std::queue 不支持 clear() 函数?

    我有一个要求 对于一个函数 我将输入作为数字流 我的意思是 该函数在每次调用中都会继续使用单个数字进行调用 我在用std queue用于存储数字流 仅当满足某些条件时 我才需要处理一组收集的数字 如果不满足条件 我需要将所有元素放入队列中
  • 如何通过 Alchemy gcc 编译 ffmpeg?

    所以我创建了ffmpeg配置文件 使其成为纯C 平台无关 但只是理论上 所以我的配置很简单 0 6 1 0 6 3测试过 configure disable doc disable ffplay disable ffprobe disabl
  • CSS 网格布局最大内容在 Firefox 中无法按预期工作

    我使用 CSS 网格布局来创建页面的基本布局 并且我最初是在 Chrome 中工作的 我现在也在 Firefox 中对此进行了测试 并注意到一些我不理解的行为 并且似乎不符合我所理解的规范 我创建了一个显示该行为的简化示例 问题是搜索标题
  • Android 和 CommaTokenizer

    我需要一个 Tokenizer 用于 AutoCompleteTextview 它可以执行以下操作 当两个单词以空白字符分隔时 必须按原样进行识别 当用换行符分隔时 两个单词也必须被识别 按下 Enter 键 1 正在工作 但我怎样才能完成
  • laravel - 无法在控制器构造函数中获取会话

    在新的 Laravel 中 我无法在构造函数中获取会话 为什么 public function construct dd Session all this is empty array 然后下面 public function index
  • HTTP:200 OK 状态代码后回复期间出错

    作为 HTTP 1 1 服务器 我使用 200 OK 状态代码回复 GET 请求 然后开始将数据发送到客户端 在此发送过程中 发生错误 我无法完成 我无法发送新的状态代码 因为最终状态代码已发送 我应该如何让客户端知道发生了错误并且我无法继
  • 如何在 Python 3.x 中禁用 chrome webdriver 上的调试器?

    有人知道如何在 Python 3 6 中禁用 chrome webdriver 中的调试器 日志记录吗 我正在尝试遵循代码 但它不起作用 chrome options webdriver ChromeOptions chrome optio
  • 如何根据测试用例结果运行SoapUI中的指定步骤

    我在soapui中有一个项目 有更多的测试用例 运行每个测试用例后 我需要运行两个 http 请求之一 具体取决于步骤的结果 因此 如果测试用例中的一个或多个步骤失败 我需要运行 httprequest1 如果所有步骤都通过 我需要运行 h
  • 在andengine中使用Texture Packer加载动画

    我使用纹理打包器 我有 pvr ccz文件有10帧 我需要创建一个AnimatedSprite使用此动画 但 TexturePacker 扩展仅返回TextureRegion files 我怎样才能创造TiledTextureRegion从
  • CakePHP,从模型查询

    如何在 CakePHP 中执行 SQL 查询 我想做一些像这样的代码 employees this gt Employee gt find all 但介绍一下我自己的SQL语句 将执行 SQL 语句的函数插入模型中 public funct
  • VBA查找函数获取错误424需要对象[重复]

    这个问题在这里已经有答案了 我有代码获取错误 424 需要对象 lr Range O O Cells Rows Count 1 End xlUp Row For y 0 To UBound myVariable a myVariable y
  • 如何在 Netbeans 中向 Undecorated JFrame 添加阴影

    我想向 Undecorated jFrame 添加阴影 我不知道该怎么做 有人知道吗 这有点 作弊 这不会在窗口后面产生阴影 而是在内容后面产生阴影 这种方法不仅使窗口不被装饰 而且变得透明 替换的 内容窗格 被部分填充 允许阴影效果 出现
  • C# Winforms,将父对象分配给新的子对象,而不是实例化表单

    我有一个带有两个子窗体的 MDI 容器 我们被教导 MSDN 文档只给出了示例 使用关键字 this 它假设所讨论的子对象是从 MDI 容器本身创建的 如果我在 MDI 容器中创建对象 则这是正确的 Form Child2 child ne