如何在不使用第三方控件的情况下,美化一个项目中的所有DataGridView控件? 美化DataGridView自定义控件 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以写个类,对DGV进行二次封装 我按照这种方法试了一下:http://www.cnblogs.com/sufei/archive/2010/05/12/1734028.html但是DGV没有发生变化,在OnCreateControl里下断点也不会中断,不知道是什么原因。 所有用到datagridview的FORM都需要修改是肯定的,唯一能做的就是如何使代码最少,答案就是将设置这些属性的代码写成一个静态方法,然后在需要的地方写一行调用语句. 从DataGridView继承一个类,然后查找替换将所有的控件替换成对它的使用。 可以试试在datagridview外层form的controladded事件里判断控件是否是datagridview 如果是,就改变它的属性..不过这种其实也就是对form的继承....和继承datagridview大同小异.... 写个公用的方法去设置你要的属性,然后把每个实例GDV传进去就ok了 由于datagridview有两个事件需要重载,所以最后还是自定义了一个dgv。 设置DataGrudVuew中字体的样式//绑定显示数据private void Frm_Main_Load(object sender, EventArgs e) { dgv_Message.DataSource = new List<Student>() {//绑定到数据集合 new Student(){Name="小明",Age=30}, new Student(){Name="老张",Age=40}, new Student(){Name="文明",Age=33}, new Student(){Name="大海",Age=31}}; dgv_Message.Columns[0].Width = 200;//设置列宽 dgv_Message.Columns[1].Width = 170;//设置列宽 dgv_Message.DefaultCellStyle.Font = //设置网格中字体样式 new Font("隶书",15); }//使用代码编辑器修改此方法的内容。 private void InitializeComponent() { this.dgv_Message = new System.Windows.Forms.DataGridView(); ((System.ComponentModel.ISupportInitialize)(this.dgv_Message)).BeginInit(); this.SuspendLayout(); // // dgv_Message // this.dgv_Message.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgv_Message.Dock = System.Windows.Forms.DockStyle.Fill; this.dgv_Message.Location = new System.Drawing.Point(0, 0); this.dgv_Message.Name = "dgv_Message"; this.dgv_Message.RowTemplate.Height = 23; this.dgv_Message.Size = new System.Drawing.Size(438, 148); this.dgv_Message.TabIndex = 0; // // Frm_Main // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(438, 148); this.Controls.Add(this.dgv_Message); this.Name = "Frm_Main"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "设置DataGridView控件中字体的样式"; this.Load += new System.EventHandler(this.Frm_Main_Load); ((System.ComponentModel.ISupportInitialize)(this.dgv_Message)).EndInit(); this.ResumeLayout(false); } 你的画面又没有自己的基类?有基类的话在基类的formload里面去找本页面存在的dgv,然后改没有基类的话写个方法,把这个方法注册进所有的form的load事件 读取文件直接压缩 .net中如何在网页上弹出路径选择框 Winfrom中如何在控件上不显示焦点? GridView1.TemplateControl中的控件怎么查找 如何取一方法的所在的命名空间名称和类名呢? datagrid怎么在DeleteCommand事件里面的到要删除行的某列的值,在线等啊 客户端远程操作数据库的可行性问题 如何调用.bat的处理文件, 要带参数. 一个继承关系的问题求助 C#如何读取身份证阅读器——100分的题 dev grid的问题。 gridview如何显示多张关联表的信息
我按照这种方法试了一下:http://www.cnblogs.com/sufei/archive/2010/05/12/1734028.html
但是DGV没有发生变化,在OnCreateControl里下断点也不会中断,不知道是什么原因。
//绑定显示数据
private void Frm_Main_Load(object sender, EventArgs e)
{
dgv_Message.DataSource = new List<Student>() {//绑定到数据集合
new Student(){Name="小明",Age=30},
new Student(){Name="老张",Age=40},
new Student(){Name="文明",Age=33},
new Student(){Name="大海",Age=31}};
dgv_Message.Columns[0].Width = 200;//设置列宽
dgv_Message.Columns[1].Width = 170;//设置列宽
dgv_Message.DefaultCellStyle.Font = //设置网格中字体样式
new Font("隶书",15);
}
//使用代码编辑器修改此方法的内容。
private void InitializeComponent()
{
this.dgv_Message = new System.Windows.Forms.DataGridView();
((System.ComponentModel.ISupportInitialize)(this.dgv_Message)).BeginInit();
this.SuspendLayout();
//
// dgv_Message
//
this.dgv_Message.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgv_Message.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgv_Message.Location = new System.Drawing.Point(0, 0);
this.dgv_Message.Name = "dgv_Message";
this.dgv_Message.RowTemplate.Height = 23;
this.dgv_Message.Size = new System.Drawing.Size(438, 148);
this.dgv_Message.TabIndex = 0;
//
// Frm_Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(438, 148);
this.Controls.Add(this.dgv_Message);
this.Name = "Frm_Main";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "设置DataGridView控件中字体的样式";
this.Load += new System.EventHandler(this.Frm_Main_Load);
((System.ComponentModel.ISupportInitialize)(this.dgv_Message)).EndInit();
this.ResumeLayout(false); }
有基类的话在基类的formload里面去找本页面存在的dgv,然后改没有基类的话写个方法,把这个方法注册进所有的form的load事件