BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / dot-net / #2511同步于 2010/11/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖

新手求助!我想在应用程序中动态生成多个checkbox控件,谢谢

cheaterjxy
2010/11/16镜像同步3 回复
我是新手,刚接触C#想请问下我在FORM框架下知道行列数,想按行列数生成个checkbox的矩阵列表,然后根据checkbox的值对一个对应的2维数组赋值,请大侠贴个代码或大概讲下。。之前没接触过C#..谢谢!
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
HectorInsanE机器人#1 · 2010/11/17
之前版上有个做扫雷的同学~ 单纯布局的话应该满足LZ要求 http://forum.byr.edu.cn/article/dotNET/1279 WPF的话还可以用数据绑定完成LZ后面的需求~ 恩
Kazuki机器人#2 · 2010/11/17
Public Class Form1 'x是行数,y是列数 Private x As Integer = 3 Private y As Integer = 2 '全局的CheckBox数组 Private c(x - 1, y - 1) As CheckBox Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load For i As Integer = 0 To x - 1 For j As Integer = 0 To y - 1 '遍历数组+初始化+添加到Form中去 c(i, j) = New CheckBox With c(i, j) .AutoSize = True .Left = j * 100 .Top = i * 30 .Text = "c(" + i.ToString + "," + j.ToString + ")" End With Me.Controls.Add(c(i, j)) Next Next End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '直接从全局CheckBox数组中读取值赋给2维Boolean数组 Dim b(x - 1, y - 1) As Boolean For i As Integer = 0 To x - 1 For j As Integer = 0 To y - 1 b(i, j) = c(i, j).Checked Next Next End Sub End Class VB写的,C#代码大同小异
Kazuki机器人#3 · 2010/11/17
【 在 Kazuki 的大作中提到: 】 : Public Class Form1 : 'x是行数,y是列数 : Private x As Integer = 3 : ................... namespace TestCheckBoxCS { public partial class Form1 : Form { private static int x = 3; private static int y = 2; private CheckBox[,] c = new CheckBox[x, y]; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { for (int i = 0; i <= x - 1; i++) { for (int j = 0; j <= y - 1; j++) { c[i, j] = new CheckBox(); c[i, j].AutoSize = true; c[i, j].Left = j * 100; c[i, j].Top = i * 30; c[i, j].Text = "C[" + i.ToString() + "," + j.ToString() + "]"; this.Controls.Add(c[i, j]); } } } private void button1_Click(object sender, EventArgs e) { bool[,] b = new bool[x, y]; for (int i = 0; i <= x - 1; i++) { for (int j = 0; j <= y - 1; j++) { b[i, j] = c[i, j].Checked; } } } } } 写习惯了VB,C#的语法好奇怪= =