一、基础控件
1. button (按钮)
功能:执行命令或触发事件
基本用法:
// 创建按钮
button btn = new button();
btn.text = "点击我";
btn.location = new point(50, 50);
btn.click += btn_click; // 绑定点击事件
 
// 添加到窗体
this.controls.add(btn);
 
// 事件处理方法
private void btn_click(object sender, eventargs e)
{
    messagebox.show("按钮被点击了!");
}常用属性:
- text:按钮显示的文本
- enabled:是否启用按钮
- visible:是否可见
- backcolor:背景颜色
- forecolor:文本颜色
2. label (标签)
功能:显示静态文本或图像
基本用法:
label lbl = new label(); lbl.text = "这是一个标签"; lbl.location = new point(50, 100); lbl.autosize = true; // 自动调整大小以适应文本 this.controls.add(lbl);
常用属性:
- text:显示的文本
- autosize:是否自动调整大小
- forecolor:文本颜色
- backcolor:背景颜色
- font:字体设置
3. textbox (文本框)
功能:允许用户输入或编辑文本
基本用法:
textbox txt = new textbox(); txt.location = new point(50, 150); txt.width = 200; txt.text = "默认文本"; this.controls.add(txt); // 获取文本框内容 string inputtext = txt.text;
常用属性:
- text:文本内容
- readonly:是否只读
- multiline:是否多行输入
- passwordchar:密码输入时显示的字符
- maxlength:最大输入长度
4. checkbox (复选框)
功能:允许用户选择多个选项
基本用法:
checkbox chk = new checkbox();
chk.text = "我同意条款";
chk.location = new point(50, 200);
chk.checkedchanged += chk_checkedchanged; // 绑定状态改变事件
 
this.controls.add(chk);
 
// 事件处理方法
private void chk_checkedchanged(object sender, eventargs e)
{
    messagebox.show("复选框状态: " + chk.checked);
}常用属性:
- checked:是否选中
- text:显示的文本
- threestate:是否支持第三种状态(不确定)
5. radiobutton (单选按钮)
功能:允许用户从一组选项中选择一个
基本用法:
radiobutton radio1 = new radiobutton(); radio1.text = "选项1"; radio1.location = new point(50, 250); radiobutton radio2 = new radiobutton(); radio2.text = "选项2"; radio2.location = new point(50, 280); // 将单选按钮放入同一个容器(如panel)中,它们会自动互斥 panel panel = new panel(); panel.location = new point(50, 200); panel.height = 100; panel.controls.add(radio1); panel.controls.add(radio2); this.controls.add(panel);
常用属性:
- checked:是否选中
- text:显示的文本
二、容器控件
1. panel (面板)
功能:作为其他控件的容器
基本用法:
panel panel = new panel(); panel.location = new point(50, 50); panel.size = new size(200, 100); panel.backcolor = color.lightgray; // 添加控件到面板 button btn = new button(); btn.text = "面板中的按钮"; btn.location = new point(10, 10); panel.controls.add(btn); this.controls.add(panel);
常用属性:
- backcolor:背景颜色
- borderstyle:边框样式
- dock:停靠方式
2. groupbox (分组框)
功能:将相关控件分组显示
基本用法:
groupbox grp = new groupbox(); grp.text = "用户信息"; grp.location = new point(50, 50); grp.size = new size(200, 150); // 添加控件到分组框 textbox txtname = new textbox(); txtname.location = new point(10, 20); grp.controls.add(txtname); this.controls.add(grp);
常用属性:
- text:分组标题
- flatstyle:外观样式
3. tabcontrol (选项卡控件)
功能:提供多个选项卡页面
基本用法:
tabcontrol tabctrl = new tabcontrol();
tabctrl.location = new point(50, 50);
tabctrl.size = new size(400, 300);
 
// 添加选项卡页
tabpage tabpage1 = new tabpage("页面1");
tabpage tabpage2 = new tabpage("页面2");
 
// 添加控件到选项卡页
textbox txt1 = new textbox();
txt1.location = new point(10, 10);
tabpage1.controls.add(txt1);
 
textbox txt2 = new textbox();
txt2.location = new point(10, 10);
tabpage2.controls.add(txt2);
 
// 将选项卡页添加到选项卡控件
tabctrl.tabpages.add(tabpage1);
tabctrl.tabpages.add(tabpage2);
 
this.controls.add(tabctrl);三、列表和选择控件
1. listbox (列表框)
功能:显示项目列表,允许用户选择
基本用法:
listbox listbox = new listbox();
listbox.location = new point(50, 50);
listbox.size = new size(200, 100);
 
// 添加项目
listbox.items.add("项目1");
listbox.items.add("项目2");
listbox.items.add("项目3");
 
this.controls.add(listbox);
 
// 获取选中的项目
string selecteditem = listbox.selecteditem?.tostring();常用属性:
- items:项目集合
- selectedindex:选中的索引
- selecteditem:选中的项目
- selectionmode:选择模式(单选/多选)
2. combobox (组合框)
功能:下拉列表,可以选择或输入
基本用法:
combobox combobox = new combobox();
combobox.location = new point(50, 50);
combobox.size = new size(200, 20);
 
// 添加项目
combobox.items.add("选项1");
combobox.items.add("选项2");
combobox.items.add("选项3");
 
this.controls.add(combobox);
 
// 获取选中的项
string selectedtext = combobox.selecteditem?.tostring();常用属性:
- dropdownstyle:下拉样式(简单/下拉/下拉列表)
- selectedindex:选中的索引
- selecteditem:选中的项
3. listview (列表视图)
功能:显示项目列表,支持多种视图模式
基本用法:
listview listview = new listview();
listview.location = new point(50, 50);
listview.size = new size(400, 200);
listview.view = view.details; // 设置视图模式
 
// 添加列
listview.columns.add("id", 50);
listview.columns.add("名称", 150);
listview.columns.add("描述", 200);
 
// 添加项目
listviewitem item1 = new listviewitem("1");
item1.subitems.add("项目1");
item1.subitems.add("这是项目1的描述");
listview.items.add(item1);
 
this.controls.add(listview);常用属性:
- view:视图模式(大图标/小图标/列表/详细信息)
- columns:列集合
- items:项目集合
四、数据输入控件
1. datetimepicker (日期时间选择器)
功能:选择日期和时间
基本用法:
datetimepicker dtp = new datetimepicker(); dtp.location = new point(50, 50); dtp.format = datetimepickerformat.short; // 设置日期格式 this.controls.add(dtp); // 获取选择的日期 datetime selecteddate = dtp.value;
常用属性:
- value:选择的日期时间
- format:日期格式(短/长/自定义)
- mindate:最小可选日期
- maxdate:最大可选日期
2. numericupdown (数字增减控件)
功能:输入或调整数值
基本用法:
numericupdown numupdn = new numericupdown(); numupdn.location = new point(50, 50); numupdn.minimum = 0; // 最小值 numupdn.maximum = 100; // 最大值 numupdn.value = 50; // 初始值 this.controls.add(numupdn); // 获取当前值 int currentvalue = (int)numupdn.value;
常用属性:
- value:当前值
- minimum:最小值
- maximum:最大值
- increment:增减步长
五、对话框和通知控件
1. messagebox (消息框)
功能:显示消息或获取用户确认
基本用法:
// 显示消息
messagebox.show("这是一个消息框");
 
// 显示确认对话框
dialogresult result = messagebox.show("确定要继续吗?", "确认", messageboxbuttons.yesno);
if (result == dialogresult.yes)
{
    // 用户点击了"是"
}常用参数:
- text:显示的消息文本
- caption:标题
- buttons:按钮类型
- icon:图标类型
2. openfiledialog (打开文件对话框)
功能:让用户选择文件
基本用法:
openfiledialog openfiledialog = new openfiledialog();
openfiledialog.filter = "文本文件 (*.txt)|*.txt|所有文件 (*.*)|*.*";
openfiledialog.title = "选择文件";
 
if (openfiledialog.showdialog() == dialogresult.ok)
{
    string selectedfile = openfiledialog.filename;
    messagebox.show("选择的文件: " + selectedfile);
}常用属性:
- filter:文件类型过滤器
- title:对话框标题
- filename:选择的文件名
- initialdirectory:初始目录
3. savefiledialog (保存文件对话框)
功能:让用户选择保存文件的位置
基本用法:
savefiledialog savefiledialog = new savefiledialog();
savefiledialog.filter = "文本文件 (*.txt)|*.txt|所有文件 (*.*)|*.*";
savefiledialog.title = "保存文件";
 
if (savefiledialog.showdialog() == dialogresult.ok)
{
    string savepath = savefiledialog.filename;
    messagebox.show("将保存到: " + savepath);
}六、高级控件
1. datagridview (数据网格视图)
功能:显示和编辑表格数据
基本用法:
datagridview datagridview = new datagridview();
datagridview.location = new point(50, 50);
datagridview.size = new size(600, 300);
datagridview.autogeneratecolumns = true; // 自动生成列
 
// 绑定数据源
datatable table = new datatable();
table.columns.add("id", typeof(int));
table.columns.add("name", typeof(string));
table.columns.add("age", typeof(int));
 
table.rows.add(1, "张三", 25);
table.rows.add(2, "李四", 30);
 
datagridview.datasource = table;
 
this.controls.add(datagridview);常用属性:
- datasource:数据源
- autogeneratecolumns:是否自动生成列
- editmode:编辑模式
2. timer (定时器)
功能:执行定时任务
基本用法:
timer timer = new timer();
timer.interval = 1000; // 间隔1秒
timer.tick += timer_tick; // 绑定定时事件
 
timer.start(); // 启动定时器
 
// 定时事件处理方法
private void timer_tick(object sender, eventargs e)
{
    messagebox.show("定时器触发");
}常用属性:
- interval:间隔时间(毫秒)
- enabled:是否启用
3. webbrowser (网页浏览器控件)
功能:在应用程序中嵌入网页浏览器
基本用法:
webbrowser webbrowser = new webbrowser();
webbrowser.location = new point(50, 50);
webbrowser.size = new size(800, 600);
 
// 导航到url
webbrowser.navigate("https://www.example.com");
 
this.controls.add(webbrowser);常用属性:
- url:当前url
- documenttext:html文档内容
- document:文档对象模型
七、控件布局技巧
1. 使用dock属性
panel panel = new panel(); panel.dock = dockstyle.top; // 停靠在顶部 panel.height = 50; panel.backcolor = color.lightgray; this.controls.add(panel);
2. 使用anchor属性
button btn = new button(); btn.text = "按钮"; btn.location = new point(50, 50); btn.anchor = anchorstyles.bottom | anchorstyles.right; // 锚定在右下角 this.controls.add(btn);
3. 使用tablelayoutpanel
tablelayoutpanel tablelayoutpanel = new tablelayoutpanel(); tablelayoutpanel.dock = dockstyle.fill; tablelayoutpanel.rowcount = 2; tablelayoutpanel.columncount = 2; // 添加控件到表格布局 button btn1 = new button(); btn1.text = "按钮1"; tablelayoutpanel.controls.add(btn1, 0, 0); button btn2 = new button(); btn2.text = "按钮2"; tablelayoutpanel.controls.add(btn2, 1, 0); this.controls.add(tablelayoutpanel);
八、控件事件处理
1. 常用事件
- click:点击事件
- textchanged:文本改变事件
- selectedindexchanged:选中项改变事件
- valuechanged:值改变事件
- load:加载事件
2. 事件绑定
button btn = new button();
btn.text = "点击我";
btn.click += (sender, e) => 
{
    messagebox.show("按钮被点击了");
};
 
this.controls.add(btn);九、控件样式和外观
1. 设置字体
label lbl = new label();
lbl.text = "自定义字体";
lbl.font = new font("微软雅黑", 12, fontstyle.bold);2. 设置颜色
button btn = new button(); btn.text = "彩色按钮"; btn.backcolor = color.lightblue; btn.forecolor = color.darkblue;
3. 设置边框
panel panel = new panel(); panel.borderstyle = borderstyle.fixedsingle; // 实线边框
- 使用有意义的控件名称:便于代码维护
- 合理使用布局控件:如tablelayoutpanel、flowlayoutpanel
- 事件处理分离:将事件处理逻辑放在单独的方法中
- 数据绑定:尽量使用数据绑定而不是手动操作控件
- 异常处理:对用户输入进行验证和异常处理
以上就是winforms中主要控件的详细使用教程的详细内容,更多关于winforms控件使用的资料请关注代码网其它相关文章!
 
             我要评论
我要评论 
                                             
                                            
发表评论