返回信息流我是新手,刚接触C#想请问下我在FORM框架下知道行列数,想按行列数生成个checkbox的矩阵列表,然后根据checkbox的值对一个对应的2维数组赋值,请大侠贴个代码或大概讲下。。之前没接触过C#..谢谢!
这是一条镜像帖。来源:北邮人论坛 / dot-net / #2511同步于 2010/11/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖
新手求助!我想在应用程序中动态生成多个checkbox控件,谢谢
cheaterjxy
2010/11/16镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
之前版上有个做扫雷的同学~ 单纯布局的话应该满足LZ要求
http://forum.byr.edu.cn/article/dotNET/1279
WPF的话还可以用数据绑定完成LZ后面的需求~ 恩
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 的大作中提到: 】
: 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#的语法好奇怪= =