【问题标题】:Use a method from another class ? without opening new form?使用另一个类的方法?不打开新表格?
【发布时间】:2012-12-10 02:21:35
【问题描述】:

大家好,我的问题是我不能使用公共类class1 = new class(); 而只是做class1.method1();,因为如果我创建该类的新实例,它将打开一个新表单,并且该类也有一个构造函数。我只需要类中的一种方法即可。

【问题讨论】:

  • 并非所有的类都是表单。
  • 那么你是如何以及在哪里调用这个类的?请分享您的代码。
  • 请贴出类的代码,也有可能你的类继承自表单类。

标签: c# oop inheritance methods


【解决方案1】:

要使用类的实例方法,您需要该类的实例;没有例外*。如果它的构造函数打开了一个表单,就让它不打开。

【讨论】:

  • * 反射也许能够破解它。不要那样做。
【解决方案2】:

您可能需要重新考虑您的设计模式,好像您所说的 class1 是一个表单,然后阻止 UI 以这种方式显示并不是一个特别合适的设计模式。使用您当前的实施更新您的问题,以便人们可以更好地为您提供建议!

如果您在 class1 构造函数中手动实例化和显示表单,您可以考虑这样的实现:

public Class1(bool showForm)
{
    if (showForm)
    {
        //Show UI
    }
}

如果必须,您可以像这样隐藏 UI:

protected override void SetVisibleCore(bool value)
{
    base.SetVisibleCore(false);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    • 2015-03-08
    • 1970-01-01
    相关资源
    最近更新 更多