关于如何创建一个BUTTON控件数组

langjifengyu 2005-08-13 06:33:52
由于以前用的是VB,转。NET时间不长,好多东西不太懂
最近接到一个班级管理系统的东西
其中有一个Group里放99个BUTTON
其中每一个BUTTON代表一个同学的名字
当惦记这个BUTTON时,显示该同学的相关资料和信息
在VB中可以定义一个控件数组,然后有
privata sub command1_click(..index)
for i=1 to 99
if index=i then
'从数据库调用相关信息的程序,全部都一样
end if
end sub
这个样子就可以让程序简短
而在,NET里我找不到与此相同的控件数组和这样的写法
我拿VB升级了一下,升级后的不是纯,NET代码,很复杂
我想在想问的是如何让这99个BUTTON象VB一样可以共用一段代码

有没有这个功能,给我提供正确代码,分数你可以随便要
若不能发表意见也有分
谢谢大家急用,一共15天时间,还有8天
谢谢
...全文
739 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sindia 2006-03-29
  • 打赏
  • 举报
回复
如果是timer控件数组,既无name又无tag这些可以插边用一下的属性,如何判断是哪个timer调用了我的tick事件
Tony_lau111082 2005-08-14
  • 打赏
  • 举报
回复
用ArrayList保存你的BUTTON
super_zhaowenke 2005-08-14
  • 打赏
  • 举报
回复
VB.NET不能建控件数组
caojinrong 2005-08-14
  • 打赏
  • 举报
回复
不就是少了个index吗?可以用Name 代替

'**********这一段随便放到哪里***************
for i as short =0 to 99
dim btn as new Button
btn.Name=i
btn.location=new point(0,i*20)
me.controls.add(btn)
AddHandler btn.Click,AddressOf Btn_Click
next
‘******************************************

Private Sub Btn_Click(Sender as Object,e as System.EventArgs)
dim btn as Button = Sender
msgbox(btn.Name)
End Sub
cuike519 2005-08-13
  • 打赏
  • 举报
回复
请参考下面的连接,我在文章中使用C#实现的,很简单,你可以轻松转换成VB
http://dev.csdn.net/develop/article/21/21327.shtm
不务正 2005-08-13
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=96197
qqchenjacky 2005-08-13
  • 打赏
  • 举报
回复
帮顶
mmla 2005-08-13
  • 打赏
  • 举报
回复
学习
zCheng 2005-08-13
  • 打赏
  • 举报
回复
.Net 组件里有一个 ButtonArray 可以实现,你可以用它自带的VB6升级工具升级原来的代码。具体来说,添加 ButtonArray 到你的窗体后,你必须设置99个按钮在 ButtonArray 上的 Index 属性……

或者你在设计器上选择所有的按钮,在右边的属性窗口中选择事件(闪电标识符),然后在 Click 事件中选中你的共享方法(Command1_Click)。设置所有按钮的 Tag 值分别为 1,2,3……,然后
Private Sub Command1_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim btn As Button = DirectCast(sender, Button)
For i = 1 To 99
If btn.Tag = i Then
// 你的代码
End If
Next
End Sub

或者在窗体的 Load 事件中用 AddHandler 向每个按钮添加 Click 事件的公共处理方法。
AntingZ 2005-08-13
  • 打赏
  • 举报
回复
VB.NET里面没有BUTTON控件数组了,你可以这样:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim PanelButtons As New Panel
PanelButtons.Dock = DockStyle.Fill

For i As Integer = 0 To 99
Dim btn As New Button
btn.Text = "Student" & (i + 1).ToString()
btn.Tag = "ID_" & i.ToString
btn.Location = New Point((i Mod 10) * btn.Width, (i \ 10) * btn.Height)
AddHandler btn.Click, AddressOf btn_click
PanelButtons.Controls.Add(btn)
Next

Me.Controls.Add(PanelButtons)
End Sub

Private Sub btn_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim btn As Button
btn = CType(sender, Button)
MsgBox(String.Format("You click Button # {0}", btn.Tag))
End Sub

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧