添加列:
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;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)