众所周知,WINForm 的 DataGrid 组件的功能强大而且灵活,作为一个数据库程序离开它可不行,但是dataGrid在设计期间采用“套用式样”的方式设计表格的外观并不够灵活,那有没有办法统一管理表格风格呢?答案是有。
    作为数据表格的应用最重要的应该不是风格的颜色搭配,而是字段属性的格式化,要格式化每一列的数据显示值,比如说:dataGrid的记录集如果有个“日期时间”字段的话,就会发现,默认的话其实它只显示了日期部分,而时间被Format掉了,这样的话不能满足应用的需求。很多新手朋友也发过帖子询问如何显示出时间,本人也是属于新手行列,查阅了MSDN后编写了一个管理dataGrid 格式列和风格的类,它可以实现管理‘列宽、字体、标题名、格式类型、是否隐藏、行选、行只读、列只读’的基本功能。
    先大致讲一下格式化列的原理。列的格式由DataGridTextBoxColumn的Format属性进行控制,Format 属性可以支持日期、货币、数值、文本等格式字符,具体信息可以参考MSDN:http://msdn.microsoft.com/library/CHS/cpref/html/frlrfSystemWindowsFormsDataGridTextBoxColumnClassFormatTopic.asp?frame=true。
    这里演示格式化“日期时间”,代码:
DataGridTextBoxColumn gridColumn = DataGridTextBoxColumn();
gridColumn.Format=System.String.Format("yyyy-MM-dd hh:mm:ss",gridColumn.TextBox);
    类的基本流程:
DataGrid 风格管理类测试版源码[转]
    现在我把类的源码贴上面,我不保证代码的一些做法是否合理与正确,仅供参考:   
DataGrid 风格管理类测试版源码[转]using System;
DataGrid 风格管理类测试版源码[转]
using System.ComponentModel;
DataGrid 风格管理类测试版源码[转]
using System.Windows.Forms;
DataGrid 风格管理类测试版源码[转]
using System.Data;
DataGrid 风格管理类测试版源码[转]
using System.Drawing;
DataGrid 风格管理类测试版源码[转]
下面的代码是演示如何使用这个类:
DataGrid 风格管理类测试版源码[转]      OleDbConnection conn = new OleDbConnection( "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Data Source=\"E:\\sf\\DataBasew.mdb\";Mode=Share Deny None;Jet OLEDB:Engine Type=5;Provider=\"Microsoft.Jet.OLEDB.4.0\";Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist security info=False;Extended Properties=;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;User ID=Admin;Jet OLEDB:Global Bulk Transactions=1" );
DataGrid 风格管理类测试版源码[转]            
DataGrid 风格管理类测试版源码[转]      OleDbDataAdapter da 
= new OleDbDataAdapter("SELECT A.设备编号, b.设备名称, b.所属设备组, A.检测时间, A.气体压力, A.换算压力, A.气体湿度, A.气体温度, A.诊断代码 FR" +
DataGrid 风格管理类测试版源码[转]        
"OM (六氟化硫数据 A LEFT OUTER JOIN 测试设备 b ON A.设备编号 = b.编号) ORDER BY b.所属设备组, A.检测时间", conn );
DataGrid 风格管理类测试版源码[转]      DataSet ds 
= new DataSet();
      conn.Close();

希望这个类对你有所帮助。

相关文章:

  • 2022-12-23
  • 2022-01-03
  • 2021-10-01
  • 2021-07-29
  • 2021-04-12
  • 2021-07-12
  • 2022-01-14
  • 2022-01-22
猜你喜欢
  • 2021-10-02
  • 2021-11-17
  • 2021-11-18
  • 2022-03-02
  • 2022-12-23
  • 2021-07-11
相关资源
相似解决方案