时间:2021/7/7 访问:2701
建议先观看最新视频教程:DataGridView控件的创建和使用 http://www.visualget.com/article/214
要给窗体中添加控件,可以在工具箱里把需要创建的控件拖拽到窗体中,也可以通过代码的方式动态创建,由于EXE开发使用的是C#语言,支持直接调用微软winform桌面开发中的控件,有些不常用的winform控件虽然在工具箱里没有显示,但通过代码方式也是可以使用的。下面以DataGridView表格控件为例,介绍如何通过代码的方式创建控件。
首先新建一个空白模板的项目,通过拖拽控件方式创建两个按钮和一个Panel控件
在主窗体类中定义一个DataGridView类型的变量并实例化
DataGridView dataGridView1 = new DataGridView();
dataGridView1变量就是我们刚创建好的控件对象,双击主窗体标题位置自动创建窗体载入方法,完成后如下图
然后在窗体Load方法中定义dataGridView1的各项属性,创建列和行。不熟悉DataGridView用法的可以百度搜索"C# winform DataGridView",我这里就不一样解析了,直接上代码。
void 主窗口_Load(object sender, EventArgs e) { dataGridView1.AllowUserToAddRows = false; dataGridView1.Name = "dataGridView1"; dataGridView1.Dock = DockStyle.Fill; panel1.Controls.Add(dataGridView1); dataGridView1.Columns.Add("col1", "普通文本列"); dataGridView1.Columns.Add(new DataGridViewCheckBoxColumn() { Name="col2", HeaderText="复选框列" }); DataGridViewComboBoxColumn colCombobox = new DataGridViewComboBoxColumn(); colCombobox.Name = "col3"; colCombobox.HeaderText = "下拉框列"; colCombobox.Items.Add("下拉选项一"); colCombobox.Items.Add("下拉选项二"); colCombobox.Items.Add("下拉选项三"); dataGridView1.Columns.Add(colCombobox); dataGridView1.Columns.Add(new DataGridViewLinkColumn() { Name="col4", HeaderText="删除" }); dataGridView1.Rows.Add(new object[] { "第1行内容", "True", "下拉选项二", "删除"}); dataGridView1.Rows.Add(new object[] { "第2行内容", true, "下拉选项三", "删除"}); dataGridView1.Rows.Add(new object[] { "第3行内容", true, "下拉选项一", "删除"}); dataGridView1.CellContentClick += new DataGridViewCellEventHandler(dataGridView1_CellContentClick); }
注意Load中最后一行我们定义了表格单元格内容被单击时执行dataGridView1_CellContentClick方法,在该方法中我们可以定义单元格中的控件被点击时执行哪些代码,比如最后一列中的删除按钮的点击事件。
void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { if(e.ColumnIndex == 3) { dataGridView1.Rows.RemoveAt(e.RowIndex); } }
最后双击增加行和删除行,完成相应的功能代码。
完整代码如下
using System; using System.ComponentModel; using System.Windows.Forms; namespace VGEXEDesigner { public partial class 主窗口 : Form { DataGridView dataGridView1 = new DataGridView(); void 主窗口_Load(object sender, EventArgs e) { dataGridView1.AllowUserToAddRows = false; dataGridView1.Dock = DockStyle.Fill; panel1.Controls.Add(dataGridView1); dataGridView1.Columns.Add("col1", "普通文本列"); dataGridView1.Columns.Add(new DataGridViewCheckBoxColumn() { Name="col2", HeaderText="复选框列" }); DataGridViewComboBoxColumn colCombobox = new DataGridViewComboBoxColumn(); colCombobox.Name = "col3"; colCombobox.HeaderText = "下拉框列"; colCombobox.Items.Add("下拉选项一"); colCombobox.Items.Add("下拉选项二"); colCombobox.Items.Add("下拉选项三"); dataGridView1.Columns.Add(colCombobox); dataGridView1.Columns.Add(new DataGridViewLinkColumn() { Name="col4", HeaderText="删除" }); dataGridView1.Rows.Add(new object[] { "第1行内容", "True", "下拉选项二", "删除"}); dataGridView1.Rows.Add(new object[] { "第2行内容", true, "下拉选项三", "删除"}); dataGridView1.Rows.Add(new object[] { "第3行内容", true, "下拉选项一", "删除"}); dataGridView1.CellContentClick += new DataGridViewCellEventHandler(dataGridView1_CellContentClick); } void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { if(e.ColumnIndex == 3) { dataGridView1.Rows.RemoveAt(e.RowIndex); } } void BtnDelRow_Click(object sender, EventArgs e) { if (dataGridView1.SelectedCells.Count > 0) { dataGridView1.Rows.RemoveAt(dataGridView1.SelectedCells[0].RowIndex); } } void BtnAddRow_Click(object sender, EventArgs e) { dataGridView1.Rows.Add(new object[] { string.Format("第{0}行内容",dataGridView1.Rows.Count + 1), "True", "下拉选项二", "删除"}); } } }
下面是完整项目源码,需要的可以下载