'把图片的声明放在外面,类里面过程外面,而且要用As,不然等会儿没法用
Dim myPicture As New System.Windows.Forms.PictureBox()
'动态生成的控件,加一行
Private Sub UserControl1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
myPicture.TabStop =False
myPicture.Name ="p"
myPicture.Cursor = Cursors.Hand
AddHandler myPicture.Click, AddressOf mypic_Click '添加事件
AddHandler returnid, AddressOf idReturned '绑定事件和过程
End Sub
'再来个事件,放在声明的地方,就是类里面、过程外面
Private Event returnid(ByVal id As String) '这个事件可以传递值哦~
'普通的单击事件
Private Sub mypic_Click()
RaiseEvent returnid(myPicture.Name)
'会传值的事件过程
Private Sub idReturned(ByVal id As String)
Dim bookInfo As New BookInfo
bookInfo.Show()
Me.Parent.Enabled = False
'用id变量做点什么吧
如果要改事件的签名(参数一类的)的话,得重写控件.你可以这样自己弄一个事件.
这样了:
CType(Me.Controls("PictureBox11"), PictureBox).Image = My.Resources.image1
Find 返回数组,元素类型为Object.
Item() 可以把控件名作关键字,但也返回Object.这个方法是默认的,可以省略.
CType 转换引用类型.
需要一点,数学知识:画个图,容易理解:
如图分析:
第1行第1列控件Label1(0)的Left和Top;
Label1(0).Left?=?L
Label1(0).Top?=?T
Label1(0).Width?=?宽
Label1(0).Height?=?高
并设控件之间的行距,列举分别为:V,H
那么:
......
所以:
下标为?i?的控件的?Left、Top属性为?:
你需要的应该是反射,类似如下,我测试通过的:
Imports?System.Reflection
Public?Class?Form1
Public?Sub?MMMToolStripMenuItem_Click(sender?As?Object,?e?As?EventArgs)?Handles?MMMToolStripMenuItem.Click
MsgBox("menu?click")
End?Sub
'在按钮事件处理里面通过反射名称调用相应菜单事件
Public?Sub?CallEventMethod(sender?As?Object,?e?As?EventArgs)
'拼接菜单事件名称
Dim?MethodName?As?String?=?b.Name?"ToolStripMenuItem_Click"
Dim?t?As?Type?=?Me.GetType
Dim?m?As?MethodInfo?=?t.GetMethod(MethodName)
'反射方法
m.Invoke(Me,?New?Object()?{Nothing,?Nothing})
'动态生成了按钮
Private?Sub?Form1_Load(sender?As?Object,?e?As?EventArgs)?Handles?MyBase.Load
Dim?btn?As?New?Button
btn.Location?=?New?Point(100,?100)
btn.Name?=?"MMM"?'关键
btn.Text?=?"MMM"
'注册事件
AddHandler?btn.Click,?AddressOf?Me.CallEventMethod
Me.Controls.Add(btn)?
End?Class
比如说这样添加的计时器:
Dim Timer1 As New Timer
你要在合适的地方开始,比如窗体Load事件中,这样:
Timer1.Interval = 1000 '单位毫秒,1000毫秒=1秒
Timer1.Enabled = True '启用计时器
然后在代码窗口上方下拉列表里选择Timer1的Tick事件,自动添加代码:
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
这是计时器触发的事件,每秒触发一次,今天这一节面输入循环判断是否有日程即可.提示:你可以用Now对象获取当前的日期和时间.
以上就是土嘎嘎小编为大家整理的vb.net动态生成图片相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!