看到一个示例,发现其datagridview控件显示信息的格式比较好看,显示的4列正好部满该控件(后面还有好几个列通过滚动条滚动显示)。但是在我的练习控件中怎么也实现不了这个效果,通过设置 this.dataGridView1.ColumnCount = 4; 提示“不能在数据绑定的 DataGridView 控件上设置 ColumnCount 属性 ”错误。我的数据源如下: SqlStr = "select cardid as 编号,name as 姓名,post as 职务,company as 公司名称,mobile as 手机 from users";
using (OleDbDataAdapter da = new OleDbDataAdapter(SqlStr, Olecon))
{
DataTable dt = new DataTable();
da.Fill(dt);
DataView dv = new DataView(dt);
this.dataGridView1.DataSource = dt.DefaultView;......找了很久也没有解决的办法,于是迫不得己采取下面这个笨办法: int wh = this.dataGridView1.RowHeadersWidth;
int w0 = this.dataGridView1.Columns[0].Width;
this.dataGridView1.Columns[1].Width = 60;
int w1 = this.dataGridView1.Columns[1].Width;
this.dataGridView1.Columns[2].Width = 120;
int w2 = this.dataGridView1.Columns[2].Width;
this.dataGridView1.Columns[3].MinimumWidth = 130;
this.dataGridView1.Columns[3].Width = this.dataGridView1.Width-wh-w0-w1-w2;唉,实在很无奈,不知道可有高手给出一个简洁的解决办法啊。本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/china1976/archive/2009/10/23/4721210.aspx
using (OleDbDataAdapter da = new OleDbDataAdapter(SqlStr, Olecon))
{
DataTable dt = new DataTable();
da.Fill(dt);
DataView dv = new DataView(dt);
this.dataGridView1.DataSource = dt.DefaultView;......找了很久也没有解决的办法,于是迫不得己采取下面这个笨办法: int wh = this.dataGridView1.RowHeadersWidth;
int w0 = this.dataGridView1.Columns[0].Width;
this.dataGridView1.Columns[1].Width = 60;
int w1 = this.dataGridView1.Columns[1].Width;
this.dataGridView1.Columns[2].Width = 120;
int w2 = this.dataGridView1.Columns[2].Width;
this.dataGridView1.Columns[3].MinimumWidth = 130;
this.dataGridView1.Columns[3].Width = this.dataGridView1.Width-wh-w0-w1-w2;唉,实在很无奈,不知道可有高手给出一个简洁的解决办法啊。本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/china1976/archive/2009/10/23/4721210.aspx
{
dataGridView1.Columns[2].Frozen = true; //锁定前3列,后面的列滚动显示
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace WindowsFormsApplication78
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent(); DataGridView DGV = new DataGridView();
DGV.Parent =this;
DataGridViewTextBoxColumn Column=new DataGridViewTextBoxColumn ();
Column.HeaderText ="1";
Column.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells ;
DGV.Columns.Add(Column); Column = new DataGridViewTextBoxColumn();
Column.HeaderText = "2";
Column.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
DGV.Columns.Add(Column); Column = new DataGridViewTextBoxColumn();
Column.HeaderText = "3";
Column.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
DGV.Columns.Add(Column); Column = new DataGridViewTextBoxColumn();
Column.HeaderText = "4";
DGV.Columns.Add(Column); Column = new DataGridViewTextBoxColumn();
Column.HeaderText = "5";
DGV.Columns.Add(Column); Column = new DataGridViewTextBoxColumn();
Column.HeaderText = "6";
DGV.Columns.Add(Column); DGV.Rows.Add(3);
}
}
}
DGV.Parent =this;
DataGridViewTextBoxColumn Column=new DataGridViewTextBoxColumn ();
Column.HeaderText ="1";
Column.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells ;
Column.Frozen = true;
DGV.Columns.Add(Column); Column = new DataGridViewTextBoxColumn();
Column.HeaderText = "2";
Column.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
Column.Frozen = true;
DGV.Columns.Add(Column); Column = new DataGridViewTextBoxColumn();
Column.HeaderText = "3";
Column.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
Column.Frozen = true;
DGV.Columns.Add(Column); Column = new DataGridViewTextBoxColumn();
Column.HeaderText = "4";
Column.Frozen = true;
DGV.Columns.Add(Column); Column = new DataGridViewTextBoxColumn();
Column.HeaderText = "5";
DGV.Columns.Add(Column); Column = new DataGridViewTextBoxColumn();
Column.HeaderText = "6";
DGV.Columns.Add(Column);
至于正好部满该控件,DataGridView有个AutoSizeColumnsMode属性设置为Fill[注意:它的值是个枚举,vs会自动提示的】