关于如何创建一个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天
谢谢
...全文
722 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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,722

社区成员

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

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