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中就简单多了。

C# code public void LoadDataGridViewData(DataGridView view, DataTable table) { view.Rows.Add(20)int index = 0foreach (DataRow row in table.Rows) { DataGridViewRow viewRow = view.Rows[index]for (int j = 0j <view.Columns.Countj++) { if (!String.IsNullOrEmpty(view.Columns[j].DataPropertyName) &&row.Table.Columns.Contains(view.Columns[j].DataPropertyName)) viewRow.Cells[j].Value = row[view.Columns[j].DataPropertyName]} index++} } LoadDataGridViewData(dataGridView1, dt)------解决方案--------------------------------------------------------view.Rows.Add(20)改成view.Rows.Add(40),外面再套一个for循环,像你写的那样就行了------解决方案--------------------------------------------------------C# code DataTable dt = new DataTable()for(int i=0i<20i++){ dt.Merge(item)} dataGridView1.DataSource = dt------解决方案--------------------------------------------------------DataTable dt = item.Clone()dataGridView1.DataSource = dtfor (int i = 0i <20i++){/*更新item*/dt.Merge(item.Clone())}我自己的电脑不在我手上,别人的电脑没有环境我也不好测试,希望这样可以对你有帮助(这里的item是可以不断更新的,当然这只是简略的写一下)------解决方案--------------------------------------------------------每40条数据放在dataset的一个表里C# code for(int i=0i<20i++) { dataGridView1.DataSource = dataset1.Tables[i]}------解决方案--------------------------------------------------------探讨引用:数据源是datatable的话C# codepublic void LoadDataGridViewData(DataGridView view, DataTable table){view.Rows.Add(20)int index = 0foreach (DataRo……我的意思是循环20次 每次添加40行------解决方案--------------------------------------------------------说的 很对呀 但是我这里 数据 获取 不是同步的先获取40条,显示到DataGridView,然后在获取40条,再动态补增到DataGridView,依次 循环每次只要把所有的数据加载就OK 了

如果你是想一条一条的添加数据并且显示到datagridview里:方法如下:

1:写个方法show()里面绑定你的datagridview;

2:在页面加载load()方法里调用这个show()方法;

3:在你的添加按钮里,获取你页面的textbox的值,然后添加到数据库,如果添加成功调用show()方法,添加失败给出提示。

如果你是想通过textbox的值,查询数据库的值,然后再显示到datagridview的话:

1:写个方法show()里面绑定你的datagridview;

2:在页面加载load()方法里调用这个show()方法;

3:在按钮点击事件里,获取texebox的值,然后根据这个条件查询数据库,并用一个集合接受,然后再重新绑定datagridview;


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存