添加列:
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中就简单多了。
我也遇到同样问题,在帮你顶一把 我的想法是:做一个自定义控件(继承dataGrid) 然后把,这个合计作成一个和表头一样属性的row 可以按客户的选择,显示/不显示 不随着排序而改变位置(一直处再dataGrid的最下方)如果你的DataGridView里的数据是绑定的,那就不能添加合计,因为绑定的表是不能添加行的,得使用 绑定控件.AddNew 方法。OK,如果你的表不是绑定的,那么就按以下代码修改:
DV.Rows.Add() ‘’’添加一个新行
Dim money As Double = 0‘’‘定义一个存放合计的数
Dim i As Integer ’‘’定义一个整数
For i = 0 To DV.RowCount - 1 ‘’从第0行到最后一行依次计算求和
money = money + DV.Rows(i).Cells(“金额”).Value‘’将名为金额的列中的行一行一行加起来
Next
DV.Rows(DV.RowCount - 2).Cells(“金额”).Value = money’‘给最后一行赋上合计数
注意,如果DV没有新增的行,就是没有前面带个*号的行,那上面就是-1,而不是-2
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)