使用C#中的方法关闭特定的窗体表单

4

你好,我的项目中有一些表单,我想要一个关闭其中一个表单的方法。

这个方法是:

public static void close_form (Form frm)
{
    frm.Close();
}

我是这样使用它的:

public partial class myForm : Form
{
   close_form(myForm);
}

但是当我想运行应用程序时,出现错误:myForm 是“类型”,但却像“变量”一样使用了。

我做错了什么?有没有其他方式可以关闭窗体而不使用this.close()


你为什么避免直接调用 Close 方法? - Cody Gray
1个回答

8

您正在传递表单类型,即myForm,您需要传递类型的对象,您可以传递this

public partial class myForm : Form
{
   close_form(this);
}

这里的myForm是一种新类型,继承自Form类型,并不是您当前表单的实例。关键字this表示类的当前实例,您可以将其传递给close_form。您可以在这里了解更多信息。
如果函数只有一个语句来关闭表单,则没有必要通过调用函数来关闭表单,除非您正在学习或者您有某些原因通过函数来关闭表单,例如记录一些信息(如关闭表单名称和时间)。您只需要调用this.Close而不是调用close_form并将当前表单传递给它。

当然,这为什么比this.Close()更好并不明显。 - Cody Gray
你是对的,显然没有理由这样关闭表单,而不是使用 this.Close。但在我看来,close_form 是一个静态方法,可以从其他类/表单中调用,并且可以执行一些常见的过程,比如日志记录。 - Adil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接