新手学习C#常见技能_MDI窗体

大家好,我是华山自控编程朱老师

前几天一个学员在学习C#与MDI窗体交互时。一直提示CS0246:未能持到类型或命名空间名"Form2(是缺少 using指令或程序集引用7)显示可能的修补程序(Alt+ Entere或ct+,

截图如下:

不知道什么原因。

其实很多初学者在学习vs实例化类时,都会遇到类似的问题,不知道是缺少动态库system.dll等问题,还是vs创建项目的问题。下面我们就对这个问题进行详细分析。

问题分析:

该同学的目的 其实是想做mdi窗体,由窗体1调用窗体2,将窗体1设置为mdi父窗体。

在实例化窗体2时发现没有这个类。

这个错误其实提示很清晰了。对于老司机来说,可能一下就知道问题点在哪里。但是对于新手来说,看到这个语法错误,还是会一筹莫展。不知道如何去定位问题。

接下来 我就教该同学如何去定位和解决问题:

首先:在创建窗体应用程序是,项目默认是只有一个窗体的,即窗体1:form1。窗体form2是需要开发人员手动添加的,所以我们需要进行二步:

第二步:添加form2窗体:步骤如下:在工程右键添加项,选择windows窗体,如下图所示:

最后,添加window窗体以后,自动会命名为form2。该同学再次查看程序,发现错误已经解决了,如下图:

下面,该同学继续编写mdi窗体的其他功能:设置父窗体。报错如下:

很明显,通过屏幕,我们知道是form1的midparment属性没有设置成true。该同学纠正该错误后,继续运行。这次终于成功了:

通过以上调试方法。该同学学会了C#和mdi交互的基本技能。

另外在衍生下mdi窗体相关知识点:

  1. Form.IsMdiContainer 属性

命名空间:

System.Windows.Forms

程序集:

System.Windows.Forms.dll

获取或设置一个值,该值指示窗体是否为多文档界面 (MDI) 子窗体的容器。

注解

此属性将窗体的显示和行为更改为 MDI 父窗体。 当此属性设置为 true时,窗体将显示带有凸起边框的沉没工作区。 分配给父窗体的所有 MDI 子窗体都显示在其工作区中。

关闭 MDI 父窗体时, Closing 所有 MDI 子窗体的事件都会在引发 MDI 父窗体 Closing 的事件之前引发。 此外, Closed 所有 MDI 子窗体的事件都会在引发 MDI 父窗体的事件之前 Closed 引发。

  1. Form.IsMdiChild 属性

命名空间:

System.Windows.Forms

程序集:

System.Windows.Forms.dll

获取一个值,该值指示窗体是否为多文档界面 (MDI) 子窗体。

属性值

Boolean

如果该窗体是 MDI 子窗体,则为 true;否则,为 false。

总结如下:

  1. 调试必备技能,按F1按键,查看帮助文档:https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.forms.form.mdiparent?view=windowsdesktop-7.0#system-windows-forms-form-mdiparent。
  2. 错误提示关键词 进行百度。

最近很多小伙伴找我学习,然后我根据二十年自动化控制经验精心录制了全套C#,机器视觉,运动控制卡原创教程,需要的同学,一键三连就可以领取,以下是领取入口:

点击领取上位机编程全套入门教程+工具https://s.pdb2.com/pages/20230307/CnORDNt9HimMjNS.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华山自控编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值