vb.NET 生成按钮 10

FORM上建立个菜单里面设置2X2,4X4,8X8....等选项而后按好2X2后在FORM1下方自动生成4个按扭正方框内类似扫雷那样(1)(2)(3)(4)类似这样的4按... FORM 上建立个菜单 里面设置 2 X 2 , 4 X 4 , 8 X 8 .... 等选项

而后按好2 X 2 后 在FORM1 下方 自动生成 4个 按扭 正方框内 类似扫雷那样

(1) (2)

(3) (4)

类似这样的 4按扭

4 X 4 就是16按扭 8 X 8就是 64

由于刚学VB不久 在网上和书 也没看到合适的列文 希望VB 前辈能帮助下.. 感激不禁

如何生成按纽的 列文就可
展开
 我来答
科学两千
2010-08-29 · TA获得超过473个赞
知道小有建树答主
回答量:974
采纳率:0%
帮助的人:973万
展开全部
Public Sub GenerateDynamiceButton()
'建立 坐标位置的变数, 方便一会儿安排 自动生产的button 的位置
Dim y As Integer = 15
Dim x As Integer = 0

' 用for loop 来建立 这些button 做 18只button
For ButtonIndex As Integer = 0 To 17

' 建造新的 button
Dim MyButton As New Button
'设定这新的button 的阔度
MyButton.Width = 80
'设定这新的button 的高度
MyButton.Height = 20

'我们暂定每行有4个BUTTON, 当每行有多个4个BUTTON 时重设行距, 令到下一行的和这一行的距离有10 个PIXEL
' 和重设x 坐标` = 0, 令到位置由头开始

If ButtonIndex Mod 4 = 0 Then
'设定 TOP 的 坐标位置令他可以和上一排的有10个PIXEL 的距离
y += MyButton.Height + 10
x = 0
End If

'设定文字 和 位置
' Set the text and set its top and left based on its dimensions and count
MyButton.Text = "My Button" & ButtonIndex
'设定 TOP 的 坐标位置
MyButton.Top = y
'下面的CODE 可以令到这个BUTTON 和另一个BUTTON 有5个PIXEL 的距离
MyButton.Left = 26 + (x * (MyButton.Width + 5))
x += 1
'设定 BUTTON CLICK EVENT
AddHandler MyButton.Click, AddressOf MyButton_Click

'把button 加到 form 中
Me.Controls.Add(MyButton)
Next

End Sub
'处理 button click event
Private Sub MyButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim btn As Button = sender
'pop up 一个自己button 的字的message
MsgBox(btn.Text)
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
liaoiao88
2010-08-29 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:105
采纳率:100%
帮助的人:103万
展开全部
楼上的代码太乱了吧!
用个双重循环就可以轻松搞定了

首先最好是在界面上加一个Panel板块控件,在不需要那么多按钮的时候有利于清除。其名字为Panel1
以下是生成控件的过程和控件单击事件

‘如需生成 8 X 8 的阵列 只需调用drawbtn(8)
Sub drawbtn(ByVal num As Integer)
Me.Width = 440
Me.Height = 500
‘这里调整一下窗口的大小让可以看到所有按钮
Panel1.Width = num * 50
Panel1.Height = num * 50

Panel1.Controls.Clear() ‘清除原有按钮控件,防止一直在堆叠控件都没释放,浪费系统资源
Dim i, j As Integer
For i = 1 To num
For j = 1 To num
Dim b As New Button
b.Width = 50
b.Height = 50
b.Left = (j - 1) * 50
b.Top = (i - 1) * 50
b.Text = (i - 1) * num + j
b.Tag = "list"
Panel1.Controls.Add(b) ‘添加控件到Panel1上
AddHandler b.Click, AddressOf Button_Click ‘添加按钮控件单击事件
Next
Next
End Sub

Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)‘响应按钮单击事件!
MsgBox("单击了第" & CType(sender, Button).Text & "个按钮!")
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
时代农民工
2010-09-06
知道答主
回答量:27
采纳率:0%
帮助的人:24.7万
展开全部
这个问题很有意思,给你个最简单的。
这是一个过程,调用的时候给出行和列就可以了,程序需要一个Panel对象
Private Sub AddButtons(ByVal Row As Integer, ByVal Col As Integer)
Dim Buttons As Button
Dim PWidth As Integer, PHeight As Integer
PWidth = Panel1.Width / Col
PHeight = Panel1.Height / Row
For i As Integer = 0 To Col
For i1 As Integer = 0 To Row
Buttons = New Button
Buttons.Width = PWidth
Buttons.Height = PHeight
Buttons.Top = i * PHeight
Buttons.Left = i1 * PWidth
Panel1.Controls.Add(Buttons)
Next
Next
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式