C#DataGridView控件怎么增加行、列?

C#DataGridView控件怎么增加行、列?,第1张

添加列:

DataGridViewColumn column = new DataGridViewColumn()

设置column属性如:column.HeaderText = "列名"

dgv1.columns.add(column)

添加行:

DataGridViewRow row = new DataGridViewRow()

设置row属性

dgv1.rows.add(row)

(一)。自适应窗体的代码:

using System

using System.Windows.Forms

namespace WindowsFormsApplication1

{

public partial class Form1 : Form

{

//1.声明自适应类实例

AutoSizeFormClass asc = new AutoSizeFormClass()

public Form1()

{

InitializeComponent()

//如果加入"皮肤",则不能在Form1_Load中记录控件的大小和位置,因为有些控件如dataGridView的子控件还未完成

//而要在在Form1_SizeChanged中,第一次改变时,记录控件的大小和位置

this.skinEngine1.SkinFile = "EmeraldColor1.ssk"

}

//2. 为窗体添加Load事件,并在其方法Form1_Load中,调用类的初始化方法,记录窗体和其控件的初始位置和大小

private void Form1_Load(object sender, EventArgs e)

{

// asc.controllInitializeSize(this)

}

//3.为窗体添加SizeChanged事件,并在其方法Form1_SizeChanged中,调用类的自适应方法,完成自适应

private void Form1_SizeChanged(object sender, EventArgs e)

{

asc.controlAutoSize(this)

//  this.WindowState = (System.Windows.Forms.FormWindowState)(2)//记录完控件的初始位置和大小后,再最大化

}

}

}

(二)。自适应类的代码

using System.Collections.Generic

using System.Windows.Forms

namespace WindowsFormsApplication1

{

class AutoSizeFormClass

{

//(1).声明结构,只记录窗体和其控件的初始位置和大小。

public struct controlRect

{

public int Left

public int Top

public int Width

public int Height

}

实际 *** 作起来可能没有你想象的那么简单,你需要响应Form Resize之类的事件,然后根据事件,实时逐个调整控件的大小。在WPF中就简单多了。

DataGridView控件在实际应用中非常实用,特别需要表格显示数据时。可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行。假如需要动态为DataGridView控件添加新行,方法有很多种,下面简单介绍如何为DataGridView控件动态添加新行的两种方法:

方法一:

int index=this.dataGridView1.Rows.Add()

this.dataGridView1.Rows[index].Cells[0].Value = '1'

this.dataGridView1.Rows[index].Cells[1].Value = '2'

this.dataGridView1.Rows[index].Cells[2].Value = '监听'

利用dataGridView1.Rows.Add()事件为DataGridView控件增加新的行,该函数返回添加新行的索引号,即新行的行号,然后可以通过该索引号 *** 作该行的各个单元格,如dataGridView1.Rows[index].Cells[0].Value = '1'。这是很常用也是很简单的方法。

方法二:

DataGridViewRow row = new DataGridViewRow()

DataGridViewTextBoxCell textboxcell = new DataGridViewTextBoxCell()

textboxcell.Value = 'aaa'

row.Cells.Add(textboxcell)

DataGridViewComboBoxCell comboxcell = new DataGridViewComboBoxCell()

row.Cells.Add(comboxcell)

dataGridView1.Rows.Add(row)

方法二比方法一要复杂一些,但是在一些特殊场合非常实用,例如,要在新行中的某些单元格添加下拉框、按钮之类的控件时,该方法很有帮助。

我今天也正好用到这个功能,把代码给你,你看看吧。

DataTable

dtcom

=

new

DataTable()

dtcom.Columns.Add("Value",

typeof(string))

dtcom.Columns.Add("Name",

typeof(string))

DataRow

drSex

drSex

=

dtcom.NewRow()

drSex[0]

=

"1"

drSex[1]

=

"a"

dtcom.Rows.Add(drSex)

drSex

=

dtcom.NewRow()

drSex[0]

=

"0"

drSex[1]

=

"b"

dtcom.Rows.Add(drSex)

//--

DataTable

dt

=

new

DataTable()

dt.Columns.Add("XH")

dt.Columns.Add("WLH")

dt.Columns.Add("WLM")

dt.Columns.Add("SL")

dt.Columns.Add("DJ")

dt.Columns.Add("ZZF",

typeof(string))

dt.Columns.Add("BZ")

DataRow

dr

=

dt.NewRow()

dr["XH"]

=

"1"

dr["WLH"]

=

"1234567"

dr["WLM"]

=

"德国汉堡制黄色书柜"

dr["SL"]

=

"12"

dr["DJ"]

=

"25610"

dr["ZZF"]

=

"0"

dr["BZ"]

=

"上墙安装"

DataRow

dr2

=

dt.NewRow()

dr2["XH"]

=

"2"

dr2["WLH"]

=

"1234567"

dr2["WLM"]

=

"德国汉堡制黄色书柜"

dr2["SL"]

=

"12"

dr2["DJ"]

=

"25610"

dr2["ZZF"]

=

"1"

dr2["BZ"]

=

"上墙安装"

DataRow

dr3

=

dt.NewRow()

dr3["XH"]

=

"3"

dr3["WLH"]

=

"1234567"

dr3["WLM"]

=

"德国汉堡制黄色书柜"

dr3["SL"]

=

"12"

dr3["DJ"]

=

"25610"

dr3["ZZF"]

=

"1"

dr3["BZ"]

=

"上墙安装"

dt.Rows.Add(dr)

dt.Rows.Add(dr2)

dt.Rows.Add(dr3)

DataGridViewComboBoxColumn

dcb

=

new

DataGridViewComboBoxColumn()

dcb.DataSource

=

dtcom

dcb.ValueMember

=

"Value"

dcb.DisplayMember

=

"Name"

dcb.DataPropertyName

=

"ZZF"

dcb.HeaderText

=

"ZZF"

this.dataGridView1.Columns.Insert(0,

dcb)

dcb.Name

=

"ZZF"

this.dataGridView1.DataSource

=

dt

//处理列无法点击排序

this.dataGridView1.EnableHeadersVisualStyles

=

false

for

(int

i

=

0

i

<

this.dataGridView1.Columns.Count

i++)

this.dataGridView1.Columns[i].SortMode

=

DataGridViewColumnSortMode.NotSortable

this.dataGridView1.Columns["ZZF"].DisplayIndex

=

5


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11304530.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存