首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新包含MDIchild表单

重新包含MDIchild表单
EN

Stack Overflow用户
提问于 2017-02-19 21:41:22
回答 1查看 58关注 0票数 0

我正在将windows窗体应用程序从VB转换为C#。

简而言之,我在formLocation()类中有一个方法,传入一个表单(在双击时触发),该表单可以重置为MainForm的MDIChild。由于某些原因,此VB代码无法转换为C#。这迫使我创建一个新的MainForm实例,这并不理想,因为子窗体必须放入当前的MainForm实例中。这是VB代码:基本上我只需要C#的等价物:

代码语言:javascript
复制
Public Sub contain(ByVal form As Form)
    With form
        .MdiParent = MainForm
    End With
End Sub
EN

回答 1

Stack Overflow用户

发布于 2017-02-20 00:04:07

VB创建了一个默认的forms实例,该实例通过与form类相同的名称进行访问,这在历史上造成了很多混淆-所有这些都是为了节省几行代码。

在'MainForm‘类中,插入以下内容:

代码语言:javascript
复制
private static MainForm _DefaultInstance;
public static MainForm DefaultInstance
{
    get
    {
        if (_DefaultInstance == null)
            _DefaultInstance = new MainForm();

        return _DefaultInstance;
    }
}

现在,将您的代码更改为:

代码语言:javascript
复制
form.MdiParent = MainForm.DefaultInstance;

这是重现VB为你做的事情的最接近的方法,但是你最终应该用一种更标准的方法来实例化你的窗体。

将VB转换为C#时,您会遇到许多其他情况,VB对程序员隐藏细节的良好意图阻碍了对编程概念(如实例与类型)的基本理解。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42327931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档