网站首页 > 文章中心 > 其它

vb.net动态生成图片

作者:小编 更新时间:2023-09-29 19:10:38 浏览量:382人看过

如何在 vb.net 为动态生成的控件添加事件并传递数据

'把图片的声明放在外面,类里面过程外面,而且要用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"

vb.net动态生成图片-图1

myPicture.Cursor = Cursors.Hand

AddHandler myPicture.Click, AddressOf mypic_Click '添加事件

AddHandler returnid, AddressOf idReturned '绑定事件和过程

End Sub

'再来个事件,放在声明的地方,就是类里面、过程外面

Private Event returnid(ByVal id As String) '这个事件可以传递值哦~

vb.net动态生成图片-图2

'普通的单击事件

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变量做点什么吧

如果要改事件的签名(参数一类的)的话,得重写控件.你可以这样自己弄一个事件.

VB.NET 动态创建picturebox后如何用其image属性

这样了:

CType(Me.Controls("PictureBox11"), PictureBox).Image = My.Resources.image1

Find 返回数组,元素类型为Object.

Item() 可以把控件名作关键字,但也返回Object.这个方法是默认的,可以省略.

CType 转换引用类型.

vb.net 如何让动态生成的90个Label 排列成 3列 30行?

需要一点,数学知识:画个图,容易理解:

如图分析:

第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属性为?:

vb.net 动态生成的控件,事件也动态加,怎么做呢?

你需要的应该是反射,类似如下,我测试通过的:

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

vb.net动态添加控件,并且绑定了一些事件,这些事件只能对最新生成的控件做修改,之前生成的无法修改

比如说这样添加的计时器:

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动态生成图片相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章