C#创建动态checkbox按钮 获取文件夹下的文件,取需要加载的文件,并获取名字,要求有几个名字就创建几个CheckBox按钮。 点击其中的一个按钮就加载该名字对应的文件数据。 这里就是不知道怎么动态创建CheckBox按钮? 请高手指点,在线等。checkbox C# 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private void Form1_Load(object sender, EventArgs e) { CheckBox chk = new CheckBox(); chk.Text = "写对应的文件名"; chk.Location = new Point(10, 10); //你根据实际值计算 chk.CheckedChanged += chk_CheckedChanged; this.Controls.Add(chk); } void chk_CheckedChanged(object sender, EventArgs e) { string filename = (sender as CheckBox).Text; //获取文件名 //加载文件代码 } 动态添加控件CheckBox ckb = new CheckBox();ckb.Name = "ckbName"; //控件名 要多个可以写循环,然后名字后面可以+ickb.Size = new Size(121, 20); //控件大小ckb.Location = new Point(10, 10); //控件位置…… CheckBox chk = new CheckBox();chk.AutoSize = true;chk.Location = new System.Drawing.Point(334, 129);//位置 chk.Size = new System.Drawing.Size(78, 16);//大小 chk.Text = "checkBox1";//内容 Controls.Add(chk); [quote=引用 1 楼 gxingmin 的回复:]C# code?1234567891011121314151617 private void Form1_Load(object sender, EventArgs e) { CheckBox chk = new CheckBox(); chk.Text = "写对应的文件名"; chk.L…… 可以先获取文件的个数,写个循环创建控件,在把文件的名字赋值给控件的Name属性,这样点击哪个控件就知道获取那个文件的数据 只得到了一个checkbox 也不是我想要的文件名称生成的checkbox! 如果用获取的文件名称来生成checkbox 该怎么写? int x = 0,y = 0;文件夹 = new 文件夹(路径);foreach(文件 in 文件夹下的文件){ CheckBox chk = new CheckBox(); chk.Text = 文件.Name; chk.Location = new Point(x, y); y += 10; 父容器[可以是Form,panel,groupbox...].Controls.Add(chk);} 动态的创建checkbox,地址不好控制,就是说,point是多少不直观。原来我遇到这个问题的时候,因为我知道最多会有大概10个左右,而现在只需要4个,所以我拖到界面上10个,然后4个visible为true,其他为false.等用到的时候,再设置为true. /// <summary> /// 初始化放映厅座位 /// </summary> /// <param name="seatRow">行数</param> /// <param name="seatLine">列数</param> /// <param name="tb"></param> private void InitSeats(int seatRow,int seatLine,TabPage tb) { Label label; Seat seat; for (int i = 0; i < seatRow; i++) { for (int j = 0; j < seatLine; j++) { label = new Label(); //设置背景颜色 label.BackColor = Color.Yellow; //设置字体 label.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); //设置尺寸 label.AutoSize = false; label.Size = new System.Drawing.Size(50, 25); //设置座位号 label.Text = (j + 1).ToString() + "-" + (i + 1).ToString(); label.TextAlign = ContentAlignment.MiddleCenter; //设置位置 label.Location = new Point(60 + (i * 90), 60 + (j * 60)); //所有的标签都绑定到同一事件 label.Click += new System.EventHandler(lblSeat_Click); tb.Controls.Add(label); labels.Add(label.Text, label); //实例化一个座位 seat = new Seat((j + 1).ToString() + "-" + (i + 1).ToString(), Color.Yellow); //保存的座位集合 cinema.Seats.Add(seat.SeatNum, seat); } } }这是我写的 创建lable 的代码给你参考下 定期发布邮件线程使用讨论?? Winform 自动打开QQ客户端。自动填写号码 密码登录 PropertyGrid问题 新人求教,WINFORM和WPF的问题 关于WebService? 问一个XML和Listview的问题 程序界面的背景图片 winGorm程序如何修改光标 【400分,超难问题】如何用c#表示下列像表的东东!!! datagird与序号???? C# 并口(LPT) 获取开关量 怎么获取?在线等 c# 如何修改IIS站点的行为?
{ CheckBox chk = new CheckBox();
chk.Text = "写对应的文件名";
chk.Location = new Point(10, 10); //你根据实际值计算
chk.CheckedChanged += chk_CheckedChanged;
this.Controls.Add(chk);
} void chk_CheckedChanged(object sender, EventArgs e)
{
string filename = (sender as CheckBox).Text; //获取文件名
//加载文件代码
}
CheckBox ckb = new CheckBox();
ckb.Name = "ckbName"; //控件名 要多个可以写循环,然后名字后面可以+i
ckb.Size = new Size(121, 20); //控件大小
ckb.Location = new Point(10, 10); //控件位置
……
chk.AutoSize = true;
chk.Location = new System.Drawing.Point(334, 129);//位置
chk.Size = new System.Drawing.Size(78, 16);//大小
chk.Text = "checkBox1";//内容
Controls.Add(chk);
C# code?1234567891011121314151617 private void Form1_Load(object sender, EventArgs e) { CheckBox chk = new CheckBox(); chk.Text = "写对应的文件名"; chk.L……
文件夹 = new 文件夹(路径);
foreach(文件 in 文件夹下的文件)
{
CheckBox chk = new CheckBox();
chk.Text = 文件.Name;
chk.Location = new Point(x, y);
y += 10;
父容器[可以是Form,panel,groupbox...].Controls.Add(chk);
}
等用到的时候,再设置为true.
/// <summary>
/// 初始化放映厅座位
/// </summary>
/// <param name="seatRow">行数</param>
/// <param name="seatLine">列数</param>
/// <param name="tb"></param>
private void InitSeats(int seatRow,int seatLine,TabPage tb)
{
Label label;
Seat seat;
for (int i = 0; i < seatRow; i++)
{
for (int j = 0; j < seatLine; j++)
{
label = new Label();
//设置背景颜色
label.BackColor = Color.Yellow;
//设置字体
label.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
//设置尺寸
label.AutoSize = false;
label.Size = new System.Drawing.Size(50, 25);
//设置座位号
label.Text = (j + 1).ToString() + "-" + (i + 1).ToString();
label.TextAlign = ContentAlignment.MiddleCenter;
//设置位置
label.Location = new Point(60 + (i * 90), 60 + (j * 60));
//所有的标签都绑定到同一事件
label.Click += new System.EventHandler(lblSeat_Click);
tb.Controls.Add(label);
labels.Add(label.Text, label);
//实例化一个座位
seat = new Seat((j + 1).ToString() + "-" + (i + 1).ToString(), Color.Yellow);
//保存的座位集合
cinema.Seats.Add(seat.SeatNum, seat);
}
}
}这是我写的 创建lable 的代码给你参考下