博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WNFORM实现窗体的DataGrid控件刷新
阅读量:6832 次
发布时间:2019-06-26

本文共 3021 字,大约阅读时间需要 10 分钟。

public class ClassDataGridRefresh

{
public ClassDataGridRefresh()
{
}

#region DataGrid刷新

/// <summary>

/// DataGrid刷新
/// </summary>
/// <param name="DG">DataGrid控件</param>
/// <param name="DV">DataView数据源</param>
/// <param name="m_strWidth">各列列宽,使用分号“;”分隔</param>
/// <param name="m_strHidden">隐藏列,使用分号“;”分隔</param>
public static void RefreshDataGrid(System.Windows.Forms.DataGrid DG, System.Data.DataView DV, string m_strWidth, string m_strHidden)
{
try
{
RefreshDataGrid(DG, DV, m_strWidth, m_strHidden, true);
}
catch(Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message.ToString(),"DataGrid刷新错误");
}
}

/// <summary>

/// DataGrid刷新
/// </summary>
/// <param name="DG">DataGrid控件</param>
/// <param name="DV">DataView数据源</param>
/// <param name="m_strWidth">各列列宽,使用分号“;”分隔</param>
/// <param name="m_strHidden">隐藏列,使用分号“;”分隔</param>
/// <param name="m_blnIsReDraw">是否每次都重新刷新列头</param>
public static void RefreshDataGrid(System.Windows.Forms.DataGrid DG, System.Data.DataView DV, string m_strWidth, string m_strHidden, bool m_blnIsReDraw)
{
try
{
int i;
int numCols;
System.Windows.Forms.DataGridTableStyle ts = new System.Windows.Forms.DataGridTableStyle(); //就是它决定了datagrid是什么样的
System.Windows.Forms.DataGridTextBoxColumn aColumnTextColumn; //要重写的东东
System.Windows.Forms.DataGridBoolColumn aColumnBoolColumn; //要重写的东东

string[] ColumnWidths = m_strWidth.Split(';');

string[] strHiddens = m_strHidden.Split(';');

numCols = DV.Table.Columns.Count;

if (m_blnIsReDraw == true)

{
foreach(string strHiddenTemp in strHiddens)
{
if (strHiddenTemp.Length > 0)
{
DV.Table.Columns[strHiddenTemp].ColumnMapping = System.Data.MappingType.Hidden;
}
}

DG.Font = new System.Drawing.Font("宋体",10,System.Drawing.FontStyle.Regular);

}

DG.DataSource = DV;

if (m_blnIsReDraw == true)

{
ts.MappingName = DV.Table.TableName;

for(i=0;i<numCols;i++) // 重绘所有的列

{
switch (DV.Table.Columns[i].DataType.Name)
{
case "Boolean": //bool Column
aColumnBoolColumn =new System.Windows.Forms.DataGridBoolColumn();
//要更改列头名,请改下句的HeaderText值
aColumnBoolColumn.HeaderText = DV.Table.Columns[i].ColumnName;
aColumnBoolColumn.MappingName = DV.Table.Columns[i].ColumnName;

if (ColumnWidths.Length > i)

{
aColumnBoolColumn.Width = (int) (Convert.ToDouble(ColumnWidths[i]) * 50);
}

ts.GridColumnStyles.Add(aColumnBoolColumn); //增加一种自定义的column风格

break;

default: //Default (Text) Column

aColumnTextColumn =new System.Windows.Forms.DataGridTextBoxColumn();
//要更改列头名,请改下句的HeaderText值
aColumnTextColumn.HeaderText = DV.Table.Columns[i].ColumnName;
aColumnTextColumn.MappingName = DV.Table.Columns[i].ColumnName;

if (ColumnWidths.Length > i)

{
aColumnTextColumn.Width = (int) (Convert.ToDouble(ColumnWidths[i]) * 50);
}

ts.GridColumnStyles.Add(aColumnTextColumn); //增加一种自定义的column风格

break;

}
}
DG.TableStyles.Clear();
DG.TableStyles.Add(ts);
}
}
catch(Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message.ToString(),"DataGrid刷新错误");
}
}
#endregion
}

本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/archive/2009/09/09/1563035.html,如需转载请自行联系原作者

你可能感兴趣的文章
java关键字--this
查看>>
codewars065 - Backwards Read Primes
查看>>
为什么调用 FragmentPagerAdapter.notifyDataSetChanged...
查看>>
class文件加密,class文件数据库加载
查看>>
Kubernetes 集群安装
查看>>
apache server
查看>>
forward与sendRedirect
查看>>
spring管理serlvet
查看>>
SDL_AudioSpec结构体分析
查看>>
Maven工程发布tomcat无lib包问题
查看>>
使用Scrapy来爬取自己的CSDN文章 (2)
查看>>
同时查看集群中多台机器日志的简单的shell脚本
查看>>
GemFire核心功能介绍
查看>>
ZUUL源码分析 <一
查看>>
Spring 启动记录(11)
查看>>
SphereView for tag cloud
查看>>
Autoconf和Automake,自动生成Makefile
查看>>
开源 免费 java CMS - FreeCMS1.2-功能说明-系统配置
查看>>
利用Javascript通过WMI取得Windows系统信息
查看>>
上传OpenCart代码到服务器的FTP工具FileZilla使用教程
查看>>