【问题标题】:How to call a sub routine of one form from other form?如何从另一种形式调用一种形式的子程序?
【发布时间】:2020-03-24 08:17:23
【问题描述】:

我是vb.net的新手,请问如何从另一个窗体调用主窗体的子例程。

我尝试将主窗体的前缀( main.subroutinename() ),编译时不显示错误,但它也不起作用。

【问题讨论】:

  • 您可能想阅读有关子例程、公共/私有等的作用域的信息。我想这可能是初学者级别的问题。你说你是用 main.subroutine 调用的。子程序属于表单对象,它不属于另一个名为“Main”的子程序。即使子例程属于表单,它也应该是它的公共成员,以便可以从其他表单调用。即使那样,除非您有充分的理由,否则这将是一个坏主意。如果这个问题因“未进行应有的事先研究”而被否决,请不要感到惊讶。您可能想要展示您的代码示例。
  • 它必须是Public Sub,然后你使用Form1.SubName,其中Form1是你的表单的实例。
  • 我要感谢你们的努力,我真的很感激,是的,对不起,我忘了提,子程序被声明为公共子程序,但它仍然不起作用。实际上我只想通过单击另一个表单中的按钮来启用主表单的文本框。但不幸的是,它不起作用。

标签: vb.net subroutine


【解决方案1】:

正如微软所说:

调用语法

您使用独立的调用语句显式调用 Sub 过程。您不能通过在表达式中使用其名称来调用它。您必须为所有非可选参数提供值,并且必须将参数列表括在括号中。如果未提供任何参数,您可以选择省略括号。 Call 关键字的使用是可选的,但不推荐使用。

调用 Sub 过程的语法如下:

[Call] SubName[(argumentlist)]

您可以从定义它的类外部调用 Sub 方法。首先,您必须使用 New 关键字来创建类的实例,或者调用返回类实例的方法。有关详细信息,请参阅新建运算符。然后,您可以使用以下语法调用实例对象的 Sub 方法: 或者您可以在Module 中创建一个Sub 例程,使其可见(FriendPublic 等)然后在包含您的Module 的整个Namespace 中调用它

object.MethodName[(argumentList)]

声明和调用说明

下面的 Sub 过程告诉计算机操作员应用程序将要执行的任务,并且还显示一个时间戳。应用程序无需在每个任务开始时复制此代码,而是从不同位置调用 tellOperator。每个调用都会在 task 参数中传递一个字符串,用于标识正在启动的任务。

Sub tellOperator(ByVal task As String)
    Dim stamp As Date
    stamp = TimeOfDay()
    MsgBox("Starting " & task & " at " & CStr(stamp))
End Sub

以下示例显示了对 tellOperator 的典型调用。

tellOperator("file update")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-06
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-07
    • 1970-01-01
    相关资源
    最近更新 更多