winfrom动态创建CheckBox

zenjj777 2010-02-06 11:44:18
如图

我想在winfrom动态的创建CheckBox(选择和全选之类的就不用每个控件都去写代码),那位前辈能提供相关的代码呢?谢谢!
...全文
231 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianliang1 2010-02-06
  • 打赏
  • 举报
回复
过客!
wuyq11 2010-02-06
  • 打赏
  • 举报
回复
checkboxlist
for (int i = 0; i < 4; i++)
{
CheckBox chk= new CheckBox();
chk.Top = 10;
chk.Text = i.ToString();
chk.Left = i * 30;
chk.AutoSize = true;
chk.CheckedChanged += new EventHandler(chk_CheckedChanged);
Controls.Add(chk);
}
void chk_CheckedChanged(object sender, EventArgs e)
{
CheckBox chk=sender as CheckBox ;

}
feile922 2010-02-06
  • 打赏
  • 举报
回复
用wpf吧
lzsh0622 2010-02-06
  • 打赏
  • 举报
回复

private void button4_Click(object sender, EventArgs e)
{
for (int i = 0; i < 33; i++)
{
CheckBox chk = new CheckBox();
if (i == 31) chk.Text = "全选";
else if (i == 32) chk.Text = "不选";
else chk.Text = (i + 1).ToString().PadLeft(2, '0');
chk.Location = new Point(i % 12 * 50, i / 12 * 30);
chk.Width = 50;
chk.Name = "checkBox" + i;
chk.CheckedChanged += new EventHandler(checkBox_CheckedChanged);
this.Controls.Add(chk);
}
}

private void checkBox_CheckedChanged(object sender, EventArgs e)
{
switch ((sender as CheckBox).Text)
{
case "全选": // 可以实现全选和不选的功能 不选那一个CheckBox可以去掉
{
for (int i = 0; i < 31; i++)
{
(this.Controls["checkBox" + i] as CheckBox).Checked = (sender as CheckBox).Checked;
}
break;
}
default: break; // 其它情况在本行处理
}
}

itliyi 2010-02-06
  • 打赏
  • 举报
回复
ls有答案了。。。
足球中国 2010-02-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 snowdust 的回复:]
使用CheckedListBox比较好,
C# codethis.checkedListBox1.ColumnWidth=40;this.checkedListBox1.MultiColumn=true;for (int i=0; i<100; i++)
{this.checkedListBox1.Items.Add(i.ToString().PadLeft(2));
}
如果一定要使用CheckBox,这样:
C# codefor (int i=0; i<30; i++)
{
CheckBox cb=new CheckBox();
cb.Text= i.ToString().PadLeft(2);
cb.Name="myCheckBox"+ i.ToString().PadLeft(2);
cb.Left= ...;//这里调整位置 cb.Top= ...;this.Controls.Add(cb);
}
[/Quote]窗体加一个panel
Snowdust 2010-02-06
  • 打赏
  • 举报
回复
使用CheckedListBox比较好,
this.checkedListBox1.ColumnWidth = 40;
this.checkedListBox1.MultiColumn = true;
for (int i = 0; i < 100; i++)
{
this.checkedListBox1.Items.Add(i.ToString().PadLeft(2));
}

如果一定要使用CheckBox,这样:
for (int i = 0; i < 30; i++)
{
CheckBox cb = new CheckBox();
cb.Text = i.ToString().PadLeft(2);
cb.Name = "myCheckBox" + i.ToString().PadLeft(2);
cb.Left = ...; //这里调整位置
cb.Top = ...;
this.Controls.Add(cb);
}
路人乙e 2010-02-06
  • 打赏
  • 举报
回复
窗体加一个panel
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 5; i++)
{
CheckBox box = new CheckBox();
box.Location = new Point(i * 40, 10);
box.Width = 30;
box.Text = i.ToString();
panel1.Controls.Add(box);
}
CheckBox chk = new CheckBox();
chk.Location = new Point(20, 60);
chk.Width = 50;
chk.Text = "全选";
chk.CheckedChanged += new EventHandler(chk_CheckedChanged);
this.Controls.Add(chk);
}

void chk_CheckedChanged(object sender, EventArgs e)
{
foreach (Control ctrl in panel1.Controls)
{
if (ctrl is CheckBox) ((CheckBox)ctrl).Checked = ((CheckBox)sender).Checked;
}
}
lzsh0622 2010-02-06
  • 打赏
  • 举报
回复
动态创建CheckBox

private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 33; i++)
{
CheckBox chk = new CheckBox();
if (i == 31) chk.Text = "全选";
else if (i == 32) chk.Text = "不选";
else chk.Text = (i+1).ToString().PadLeft(2, '0');
chk.Location = new Point(i % 12 * 50, i / 12 * 30);
chk.Width = 50;
chk.Name = "checkBox" + i;
this.Controls.Add(chk);
}
}

jaydawson 2010-02-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yangglemu 的回复:]
全选:
C# codeprivatevoid button1_Click(object sender, EventArgs e)
{foreach (Control cinthis.Controls)
{if (cis CheckBox)
{
(cas CheckBox).Checked=true;//全不选只要为false }
}
}
[/Quote]

楼上的写法,会把全选反选都算进去了。
LZ可以试试CheckedListBox控件试试,
或者:将所有需要选择的CheckBox放在某个Panel里,再使用楼上的方法。

zenjj777 2010-02-06
  • 打赏
  • 举报
回复
动态创建CheckBox呢?
  • 打赏
  • 举报
回复
全选:
private void button1_Click(object sender, EventArgs e)
{
foreach (Control c in this.Controls)
{
if (c is CheckBox)
{
(c as CheckBox).Checked = true;//全不选只要为false
}
}
}
wzuomin 2010-02-06
  • 打赏
  • 举报
回复
学习
anguslaigz 2010-02-06
  • 打赏
  • 举报
回复
UP
再次声明 千万不要把XiaoQi.dll 跟 XiaoQi.XML 给分开 添加的时候 一定要引用 不要直接复制DLL 不然没有方法注释 最强大分分页控件 华丽的分页控件 实用的分页控件 有最新最实用的方法 联系小柒 下面是 AspNetHelp 类 方法概述 ///Show()弹出对话框 ///重载Show()弹出对话框 并且跳转界面 ///ShowJavascript()执行javascript脚本 ///FileDelete()给出文件虚拟路径删除文件 ///FileSize()获取上传文件大小 ///FileUpload()文件上传 路径upload/ 自动重命名 ///FileDownload()文件下载 调用方法如 FileDownload(Response,Server,文件虚拟路径) ///FileTxtWrite()写入TXT文本 给出要创建Txt 文本的地址 ///FileTxtReader()读取TXT文本 Txt 文本的地址 返回一个数组 每一行为数组里的一个元素 ///StringEncrypt() DES字符串加密中文不可以加密 ///StringDecrypt()DES解密字符串 ///StringMD5Encrypt()MD5加密 ///StringPYChar()单个汉字返回该汉字首字母 ///StringRandom()生成指定位数的随机数 ///StringEdit()给出指定字符串长度多少位后用点显示... ///StringReplaceSpace()替换文本中的空格和换行 ///StringColor()改变字的颜色 ///StringNull()当对象是空的时候 转为空字符串 ///StringConvert()汉字转拼音 ///StringNumber()数字转换中文 ///StringRep()url参数为中文时候转换加密 ///StringRes()url参数为中文时候转换解密 ///ShowWindowForm()弹出新窗口页面 ///ShowFormModalDialog()弹出模式窗口页面 ///SqlGetMaxID()给出表名列名 int类型 查询出最大列值+1 适用于主键 ///SqlGetSingle()执行一条计算查询结果语句,返回查询结果(object)。 ///SqlExecute()执行SQL语句,返回影响的记录数 ///SqlRunStr()执行SQL语句,不返回影响的记录数 ///SqlRunReturn()执行SQL语句,并返回第一行第一列结果 ///SqlGetReader()获得SqlDataReader对象 使用完须关闭DataReader,关闭数据库连接 ///SqlGetTable()执行查询语句,返回DataTable ///SqlDataSet()执行查询语句,返回DataSet ///SqlIsCunZai()执行Sql 语句查询是否有数据 如果没有返回假 ///SqlRunProc()执行存储过程 ///DataBindDropDownListDefault()DropDownList控件绑定 带默认选择项 如"请选择" ///DataBindDropDownList()DropDownList控件绑定 不带默认选择项 ///DataBindRadioButtonList()RadioButtonList控件绑定 默认第一个选中 ///DataBindCheckBoxList()CheckBoxList控件绑定 ///ElseIpAddr()调用此方法 返回当前登录的省市IP地址 ///ElseDataTimeIng()返回本地电脑的当前日期的年月日时分秒 动态的显示 JS实现 ///ElsePageLoad()页面加载数据加载完成呈现页面 ///ElseCkeck()返回页面验证码图片 使用方法:单独创建一个页面 在首次加载事件里写 AspNetHelp.ElseCkeck(Page); 在使用验证码的页面直接写 img src="这个页面的路径" 注意验证码保存在 Session["CheckCode"]中 这里是区分大小写的 ///ElseColorRGB()由于QQ截图的取色会出现RGB的颜色 这里能转换成16进制 分页控件详情请看内置文档
没法下载,到这里折腾一把试试。 本文由abc2253130贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 C#(WINFORM)学习 一、 C#基础 基础 类型和变量 类型和变量 类型 C# 支持两种类型:“值类型”和“引用类型”。值类型包括简单类型(如 char、int 和 float 等)、枚举类型和结构类型。引用类型包括类 (Class)类 型、接口类型、委托类型和数组类型。 变量的类型声明 变量的类型声明 每个变量必须预先声明其类型。如 int a; int b = 100; float j = 4.5; string s1; 用 object 可以表示所有的类型。 预定义类型 下表列出了预定义类型,并说明如何使用。 类型 object 说明 所有其他类型的最终 基类型 字符串类型; 字符串是 Unicode 字符序列 8 位有符号整型 16 位有符号整型 32 位有符号整型 64 位有符号整型 示例 object o = null; 范围 string sbyte short int long string s = "hello"; sbyte val = 12; short val = 12; int val = 12; long val1 = 12; -128 到 127 -32,768 到 32,767 -2,147,483,648 2,147,483,647 -9,223,372,036,854,775,808 到 第1页 C#(WINFORM)学习 long val2 = 34L; 到 9,223,372,036,854,775,807 byte ushort 8 位无符号整型 16 位无符号整型 byte val1 = 12; ushort val1 = 12; uint val1 = 12; uint 32 位无符号整型 uint val2 = 34U; ulong val1 = 12; ulong val2 = 34U; ulong 64 位无符号整型 ulong val3 = 56L; ulong val4 = 78UL; float 单精度浮点型 float val = 1.23F;7 位 double val1 = 1.23; double 双精度浮点型 double val2 = ±5.0 × 10?324 ±1.7 × 10 308 0 到 255 0 到 65,535 0 到 4,294,967,295 0 到 18,446,744,073,709,551,615 ±1.5 × 10?45 ±3.4 × 10 38 到 到 4.56D;15-16 布尔型;bool 值或为 真或为假 字符类型;char 值是 一个 Unicode 字符 精确的小数类型, 具有 28 个有效数字 bool val1 = true; bool val2 = false; char val = 'h'; decimal val = bool char decimal DateTime ±1.0 × 10?28 ±7.9 × 10 28 到 1.23M;28-29 变量转换 简单转换: float f = 100.1234f; 可以用括号转换: short s = (short)f 也可以利用 Convert 方法来转换: string s1; s1=Convert.ToString(a); MessageBox.Show(s1); 常用 Convert 方法有: 第2页 C#(WINFORM)学习 C# Convert.ToBoolean Convert.ToByte Convert.ToChar Convert.ToDateTime Convert.ToDecimal Convert.ToDouble Convert.ToInt16 Convert.ToInt32 Convert.ToInt64 Convert.ToSByte Convert.ToSingle Convert.ToString Convert.ToUInt16 Convert.ToUInt32 Convert.ToUInt64 备注 Math 类 常用科学计算方法: C# Math.Abs Math.Sqrt Math.Ro
语言规范 C# Language Specification 1.2(C#语言规范1.2).doc C# Language Specification 2.0(C#语言规范2.0).doc 源码教程 ASP.NET编程技术与交互式网页设计 asp.net亲密接触_带源码 C#学习 01_类.htm.txt 02_构造函数的执行序列.htm.txt 03_抽象类和接口.htm.txt 04_结构类型.htm.txt 05_类成员的定义.htm.txt 06_类成员的其他议题.htm.txt 07_接口的执行.htm.txt 08_集合.htm.txt 09_运算符重载.htm.txt 10_阴影和深度复制.htm.txt 11_事件基础.htm.txt 12_事件进阶.htm.txt 13_读写Txt文件.htm.txt 14_StatusBar控件.htm.txt 15_自定义控件.htm.txt 16_使用打开保存文件对话框.htm.txt 17_图形绘制基础.htm.txt 18_图形绘制进阶-线条、字体.htm.txt 19_图形绘制进阶-图像(双倍缓冲).htm.txt 20_Windows应用程序安装部署概念.htm.txt 21_使用文件基础.htm.txt 22_使用文件高级.htm.txt 23_串行化和并行化.htm.txt 技术资料 ACCESS数据库操作类.txt ASP.NET常用代码.txt asp.net常用函数表.txt Asp.net的身份验证.txt ASP导出Excel数据的四种方法.txt C#调用存储过程.txt CheckBox控件.txt datagrid排序_选择_分页.txt DataSet对象.txt DotNET WinForm FAQ 16个.txt excel打印.txt EXCEL导出.txt EXCEL中合并单元格.txt mail.txt NET在RichTextBox控件加入图片(类似QQ).txt send.txt SQL储存过程等的解密.txt VisualC#打造“浏览器”.txt vs2005常用快捷键.txt webcontrol和pagelet.txt win2003中配置msdtc.txt word导出.txt 保证应用程序只有一个实例运行.txt 编辑字段中的word文件.txt 编码标准.txt 播放声音.txt 捕捉DataGrid的双击事件(C#版本).txt 不显示窗口后台运行程序.txt 储存过程.txt 处理“进程性能计数器被禁用”的错误.txt 串口操作.txt 打开word文件.txt 打造“浏览器”.txt 带图标和自定义颜色的ListBox.txt 得到当前数据库中所有用户表信息.txt 读取、设置系统时间日期.txt 读写注册表.txt 对过程进行加密.txt 二进制数据保存.txt 二进制数据字段的更新.txt 分页及动态创建列的控件 .txt 改变Windows服务的启动顺序.txt 各进制之间的转换.txt 给图片添加版权信息.txt 关于拖放操作.txt 关于在WinForm里用HttpWebRequest获得某个页面,并填写页面的textbox及点击button的方法.txt 画带阴影效果的文字.txt 环境信息.txt 获得光标在多行textbox中的行与列的函数.txt 计算控件中文字所占的宽度.txt 加半透明图片水印.txt 将控件放到datagrid中以及修改列宽.txt 截取系统消息.txt 解决VS.NET使用中属性框不显示的问题.txt 里的InputBox.txt 模拟鼠标和键盘操作.txt 取CPU的序列号.txt 如何:在VisualC#.NET中建立一个平滑的进度条.txt 如何得到网卡号.txt 如何调用WindowsAPI的要点.txt 如何控制输入法.txt 如何利用GDI作图解决异或问题.txt 如何取硬件标志.txt 如何让应用程序只有一个实例运行.txt 如何如何插入照片到Excel.txt 如何识别键盘左右的shift,Ctrl或Alt键.txt 如何水晶按钮的程序生成.txt 如何为DataGrid添加下拉列表框.txt 如何用C#在Excel中生成图表?.txt 如何用程序实现键盘和鼠标的模拟?.txt 如何与资源管理器互动剪切、拷贝、粘贴文件.txt 深入理解C#编程中的组件-事件-委托.txt 生成透明的GIF图片 .txt 生成压缩图片时的2种方法.txt 使用C#返回系统特殊路径.txt 使用VisualC#.NET检查Windows版本.txt 使用Win32和其他库.txt 使用自己画的光标.txt 数据绑定.txt 水晶报表使用winform.txt 水印.txt 特殊文件夹路径.txt 同一解决方案中一个项目的xml注释在另一个项目中不能智能提示显示这些注释的解决方法.txt 图像读取.txt 无标题窗口的拖放.txt 下面的5行代码完成了从局域网中找出所有的机器.txt 显示DataGrid序号的一个适用的方法.txt 用C#快速往Excel写数据.txt 用C#来捕获屏幕.txt 用C#做ScreenSaver.txt 用imgscan.ocx来扫描图像.txt 用word填充表格.txt 用户登录组合控件.txt 在.NET中得到计算机硬件信息的一些功能.txt 在MapX中响应滚轮放大缩小地图.txt 在两个ASP.NET页面之间传递值.txt 在如何利用SharpZipLib进行文件的压缩和解压缩.txt 怎样打开关闭CDROM.txt 怎样检测网络中的电脑是否有安装SQL2000.txt 怎样写一个存储过程类来实现如何对存储过程的调用?.txt 直接拉入图片文件到程序窗口中打开.txt 指定Web服务器运行的不是ASP.NET1.1版.txt 字符串加密.txt 字幕显示屏幕保护.txt 自己动手用c#写控件.txt C#试题 简答题.txt 填空题.txt 问答题1.txt 问答题2.txt 选择题.txt 综合题.txt 辅助软件 aspx/asp代码生成器

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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