vb.net在控件之间传递变量
这是我的密码vb.net在控件之间传递变量,vb.net,Vb.net,这是我的密码 Public Sub Personalize_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load For Each fi As FileInfo In New DirectoryInfo(Application.StartupPath + "\web").GetFiles Dim pictooltip As New ToolTip
Public Sub Personalize_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For Each fi As FileInfo In New DirectoryInfo(Application.StartupPath + "\web").GetFiles
Dim pictooltip As New ToolTip
Dim pbx As New Button
AddHandler pbx.Click, AddressOf pbx_click
pbx.Width = 150
pbx.Height = 150
pbx.BackgroundImage = Image.FromFile(fi.FullName)
wallpapers.Controls.Add(pbx)
pbx.Cursor = Cursors.Hand
pictooltip.SetToolTip(pbx, fi.Name)
pbx.BackgroundImageLayout = ImageLayout.Stretch
Next
End Sub
Private Sub pbx_click()
main.BackgroundImage = Image.FromFile(fi.FullName)
End Sub
我不知道如何在pbx_click()中使用“fi”
有什么提示吗???试试这个
Public Class Form1
Dim fi as FileInfo
Public Sub Personalize_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For Each Me.fi In New DirectoryInfo(Application.StartupPath + "\web").GetFiles
Dim pictooltip As New ToolTip
Dim pbx As New Button
AddHandler pbx.Click, AddressOf pbx_click
pbx.Width = 150
pbx.Height = 150
pbx.BackgroundImage = Image.FromFile(fi.FullName)
wallpapers.Controls.Add(pbx)
pbx.Cursor = Cursors.Hand
pictooltip.SetToolTip(pbx, fi.Name)
pbx.BackgroundImageLayout = ImageLayout.Stretch
Next
End Sub
Private Sub pbx_click()
main.BackgroundImage = Image.FromFile(fi.FullName)
End Sub
End Class
将您的活动更改为:
Private Sub pbx_click(sender As Object, e As System.EventArgs)
main.BackgroundImage = Image.FromFile(DirectCast(sender, Button).BackgroundImage)
End Sub
或者,您可以使用Tag属性并存储一些序列化数据。请参见此处:只需将全名()放入按钮的Tag()属性中,并在单击时将其拉出:
Dim pbx As New Button
pbx.Tag = fi.FullName
将其拔出:
Private Sub pbx_click()
main.BackgroundImage = Image.FromFile(DirectCast(sender, control).Tag.ToString())
End Sub
您的Fi在第一个子例程(或sub)中本地声明 在Personalize_Load sub之外声明Fi,然后将数据传递给它
Dim fi as String = ""
Public Sub Personalize_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For Each fii As FileInfo In New DirectoryInfo(Application.StartupPath + "\web").GetFiles
Dim pictooltip As New ToolTip
Dim pbx As New Button
AddHandler pbx.Click, AddressOf pbx_click
pbx.Width = 150
pbx.Height = 150
pbx.BackgroundImage = Image.FromFile(fii.FullName)
fi = fii.FullName
wallpapers.Controls.Add(pbx)
pbx.Cursor = Cursors.Hand
pictooltip.SetToolTip(pbx, fi.Name)
pbx.BackgroundImageLayout = ImageLayout.Stretch
Next
End Sub
Private Sub pbx_click()
main.BackgroundImage = Image.FromFile(fi)
End Sub
然后,您可以使用pbx_click(),只需在任何子系统上调用它,或尝试将其发送给处理程序。不起作用:((对象引用未设置为对象的实例。)未定义“RoutedEventArgs”类型:(@Ahmad Vision-只需将其设为System.EventArgs。不确定您是否在使用WPF。