Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 初始化全局变量.Net_Vb.net_Winforms_Global Variables - Fatal编程技术网

Vb.net 初始化全局变量.Net

Vb.net 初始化全局变量.Net,vb.net,winforms,global-variables,Vb.net,Winforms,Global Variables,我试图通过在事件中“初始化”模块内的模块/变量来找到一些帮助 我需要加载它,以便下面的WinForm使用它(显然) 让我解释一下 我正在使用WinSCP库,作者本人在WinSCP方面获得了大量帮助。 但是为了解决当前的问题,我需要初始化一个全局变量。 所以变量就在那里,按顺序排列,但“Form2”拒绝使用它,因为它显然需要从Form1中的事件启动/初始化。 模块称为公共模块模块1 Public Module Module1 Public mySession As Session End Mo

我试图通过在事件中“初始化”模块内的模块/变量来找到一些帮助

我需要加载它,以便下面的WinForm使用它(显然) 让我解释一下

我正在使用WinSCP库,作者本人在WinSCP方面获得了大量帮助。 但是为了解决当前的问题,我需要初始化一个全局变量。 所以变量就在那里,按顺序排列,但“Form2”拒绝使用它,因为它显然需要从Form1中的事件启动/初始化。 模块称为公共模块模块1

Public Module Module1

Public mySession As Session

End Module
我需要在本次活动中启动/启动它

Private Sub Loginbutton_Click(sender As Object, e As EventArgs) Handles Loginbutton.Click
WinSCP作者无法提供帮助,因为它仅在WinSCP之外,而且只是.Net/VB问题。我在Stackoverflow上得到了很多很好的帮助,所以我知道这里会有人来帮助我

这可能是我忽略和忘记的一些简单的事情。 此时我的头很痛,所以任何帮助、代码示例和其他形式的帮助都非常感谢,因为我的头在VisualStudio的所有东西中都受到了轻微的伤害

你可以这样做

Public Module Module1

Public mySession As New Session

End Module

或者在按钮单击事件上创建实例

Private Sub Loginbutton_Click(sender As Object, e As EventArgs) Handles Loginbutton.Click
 mySession = New Session()
End Sub 

如果不能使用此选项,则需要阅读库的文档,因为有时需要一个参数来初始化对象,或者甚至不能创建它的实例,因为只能创建调用将在其中创建的其他函数的实例(这种情况是出于安全原因)

你说“Form2”拒绝使用它是什么意思?如图所示,
mySession
只是声明为notinstanced。FWIW,它可能不需要是
公共的
朋友
就足够了。“实例”!就是这个词,谢谢。嗯,一旦加载form2,它就需要使用来自库WinSCP的信息。你可以在这里查看帖子;检查最后3条评论。它在调试过程中给我错误。“对于mySession.ListDirectory(“/Database”).Files中的每个i As RemoteFileInfo”-“对象引用未设置为对象的实例。”几乎所有NullReference异常都有相同的原因。请参阅以获取此方面的帮助。答案中特别提到了这一点。@PiperMp3:从您的说法来看,这听起来像是在您的登录按钮中。单击处理程序,您需要类似于
mySession=newsession(args)
的内容。我无法告诉您参数需要是什么,这取决于会话类的构造函数所期望的。是的,它真的很简单。关于那个“新”操作符,我尝试了很多其他版本。新的这个,新的那个,但是我尝试的方式是“newsession=mySession”和“New mySession=Session”,这显然是错误的。啊,我知道Stackoverflow是一种方式!我知道那个“新”东西,但我不知道如何为VisualStudio表述它。因此,我使用代码“mySession=new Session()”得到了一个新的反应,而不是NullReference异常,我得到的是“Session not Open”,这可能与WinSCP更相关?是的,在创建实例时可能需要传递一些参数,如:Session=new Session(“我的用户名”、“密码”)您可以传递不同的参数,但这取决于库是如何开发的。您可以查看库的更多信息。在VisualStudio中,带有智能类型的第一个会话=新会话(在这个按下键CTRL+空格键之后,您将看到如何创建实例的这个函数的文档。哦,太棒了,非常感谢MrAlEX。StAcExpRoad中的信任。
Private Sub Loginbutton_Click(sender As Object, e As EventArgs) Handles Loginbutton.Click
 mySession = New Session()
End Sub