C#学习(一)winform程序中使用表格

最近开始接触c#的相关知识,在学习的过程中,希望把自己在学习途中遇到的各种问题分享出来,,也相当于对自己的一个总结吧!欢迎大家给出批评建议,下面是关于C# WinForm程序的一些问题。这些问题都是基于DX12.2控件。

WinForm程序中 表格GridControl

(1)在WinForm程序中,要使用表格控件,需要找到控件GridControl,在Run Designer中,我们可以设置表格的属性和列的属性,Views为表格的属性,Columns为列的属性

在列的属性中FieldName为数据库字段,此字段必须和数据库一致

Caption为列显示的列名

ColumnEdit可以对该列的类型进行转换,如果需要将该列转换为下拉框形式,那么就选择ComboboxEdit

(2)在左边导航Appearance中可以设置表格的样式

(3)GridControl的数据源

在我使用该控件的过程中,我不太喜欢给该控件绑定一个数据源,我觉得在解决方案中会添加一些文件,所以我习惯用代码的形式来为其指定数据源

假设GridControl有四列,分别为StuNo,StuName,StuSex,StuAge

在页面后台程序中需要这样写

string sql = "select StuNo,StuName,StuSex,StuAge from StudentInfos";

DataTable dt = Utils.ExecuteDataTable(sql);(注:Utils为工具类,里面写的为一些查询方法)

GridControl.DataSource = dt;

(4)如果以上DataTable需要手动为其绑定值,即没有固定的sql来获取数据库的数据

DataTable table = new DataTable();
table.Columns.Add("check", System.Type.GetType("System.Boolean")); (该列为表格的复选框列,需要在列属性中设置为CheckEdit,并将类型设置为Boolean)
table.Columns.Add("StuNo");
table.Columns.Add("StuName");

table.Columns.Add("StuSex");
table.Columns.Add("StuAge");

DataRow dr = table.NewRow();
dr[1] = "010";
dr[2] = "张三";

dr[3] = "男"

dr[4] = "23";
table.Rows.Add(dr);

gridControl1.DataSource = table;
gridView1.BestFitColumns();   //使表格列自适应整个表格,内容少则表格显示得短,如果列的内容很多,在品目上显示不完,那么就自动产生横向滚动条

gridView1为gridControl中的表格,gridControl和girdView是一体的,gridControl相当于gridView的外壳

(5)获取表格数据显示的列的总数

int rowCount = gridView1.DataRowCount;

//获取表格的宽度

int width = this.gridControl1.Width;

//为列设置宽度

gridView1.Columns["StuNo"].Width = width - 190;

 

(6)获取选中的复选框行(即在表格中勾选复选框)

DataTable dt = (DataTable)gridControl1.DataSource;

 //获取选中的学生编号
 string str = "";
for (int i = 0; i < dt.Rows.Count; i++)
{
       if (dt.Rows[i]["check"] != DBNull.Value)
        {
               if (Convert.ToBoolean(dt.Rows[i]["check"]) == true)
                {
                        str += dt.Rows[i]["StuNo"]+",";
                    }
          }
 }

 

(7)全选

DataTable dt = (DataTable)gridControl1.DataSource;
if (dt == null)
{
       return;
 }
if (dt.Rows.Count > 0)
{
       for (int i = 0; i < dt.Rows.Count; i++)
        {
               dt.Rows[i]["check"] = true;
         }
}

 

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值