DataGridTextBoxColumnTrim:DataGrid不能完全显示时显示,部分显示“...”
来源:互联网 发布:pca分析软件 编辑:程序博客网 时间:2024/06/07 07:31
DataGrid控件中的单元格中的内容如果比单元格还大的话,就会自动剪切后面过多的部分。
下面的代码提供一个解决方案,当单元格不够长的时候,显示部分+“...”。
效果:
代码如下:
- using System;
- using System.Drawing;
- using System.Collections;
- using System.ComponentModel;
- using System.Windows.Forms;
- using System.Data;
- namespace LJCM
- {
- /* YTY 2008/11/26添加
- * 当不能完全显示时,显示部分+"..."
- * */
- /// <summary>
- /// DataGridTextBoxTrim 当不能完全显示时,以“...”代替
- /// </summary>
- public class DataGridTextBoxColumnTirm:DataGridTextBoxColumn
- {
- public DataGridTextBoxColumnTirm()
- {
- //
- // TODO: 在此处添加构造函数逻辑
- //
- }
- protected override void Paint(Graphics g, Rectangle bounds, CurrencyManager source, int rowNum)
- {
- string text = GetColumnValueAtRow(source,rowNum).ToString();
- if(g.MeasureString(text,this.DataGridTableStyle.DataGrid.Font,bounds.Width).Height
- >bounds.Height)
- {
- Brush backBrush = new SolidBrush(base.DataGridTableStyle.BackColor);
- Brush foreBrush = new SolidBrush(base.DataGridTableStyle.ForeColor);
- Rectangle rect = bounds;
- StringFormat format = new StringFormat();
- format.FormatFlags = StringFormatFlags.LineLimit;
- format.Trimming = StringTrimming.EllipsisCharacter;
- g.DrawString(text,this.DataGridTableStyle.DataGrid.Font, foreBrush, rect, format);
- format.Dispose();
- }
- else
- {
- base.Paint(g,bounds,source,rowNum);
- }
- /*end*/
- }
- protected override void Paint(Graphics g, Rectangle bounds, CurrencyManager source, int rowNum, bool alignToRight)
- {
- string text = GetColumnValueAtRow(source,rowNum).ToString();
- if(g.MeasureString(text,this.DataGridTableStyle.DataGrid.Font,bounds.Width).Height
- >bounds.Height)
- {
- //Brush backBrush = new SolidBrush(base.DataGridTableStyle.BackColor);
- Brush foreBrush = new SolidBrush(base.DataGridTableStyle.ForeColor);
- Rectangle rect = bounds;
- StringFormat format = new StringFormat();
- if(alignToRight)
- {
- format.FormatFlags = StringFormatFlags.LineLimit;
- format.Trimming = StringTrimming.EllipsisPath;
- }
- else
- {
- format.FormatFlags = StringFormatFlags.LineLimit;
- format.Trimming = StringTrimming.EllipsisCharacter;
- }
- g.DrawString(text,this.DataGridTableStyle.DataGrid.Font, foreBrush, rect, format);
- format.Dispose();
- }
- else
- {
- base.Paint(g,bounds,source,rowNum,alignToRight);
- }
- /* end*/
- }
- protected override void Paint(Graphics g, Rectangle bounds, CurrencyManager source, int rowNum, Brush backBrush, Brush foreBrush, bool alignToRight)
- {
- string text = GetColumnValueAtRow(source,rowNum).ToString();
- g.FillRectangle(backBrush,bounds);
- if(g.MeasureString(text,this.DataGridTableStyle.DataGrid.Font,bounds.Width).Height
- >bounds.Height)
- {
- //Brush backBrush = new SolidBrush(base.DataGridTableStyle.BackColor);
- //Brush foreBrush = new SolidBrush(base.DataGridTableStyle.ForeColor);
- Rectangle rect = bounds;
- StringFormat format = new StringFormat();
- if(alignToRight)
- {
- format.FormatFlags = StringFormatFlags.LineLimit;
- format.Trimming = StringTrimming.EllipsisPath;
- }
- else
- {
- format.FormatFlags = StringFormatFlags.LineLimit;
- format.Trimming = StringTrimming.EllipsisCharacter;
- }
- g.DrawString(text,this.DataGridTableStyle.DataGrid.Font, foreBrush, rect, format);
- format.Dispose();
- }
- else
- {
- base.Paint (g, bounds, source, rowNum, backBrush, foreBrush, alignToRight);
- }
- }
- }
- }
- DataGridTextBoxColumnTrim:DataGrid不能完全显示时显示,部分显示“...”
- easyui datagrid 的时间不能正确显示
- ScrollView嵌套ListView时,ListView不能完全显示解决方法
- ListView嵌套GridView,Gridview不能完全显示
- 部分显示
- Mathtype部分数学符号不能显示,只能显示方框时的解决办法
- 一屏显示多个ViewPager的子item(中间显示完全,左右显示部分)
- 规格化DataGrid显示
- DataGrid分页显示
- DataGrid分组显示颜色
- datagrid 显示+编辑
- 控制Datagrid显示样式
- 分页显示DataGrid
- DataGrid显示双层表头
- datagrid 显示行数
- CheckBox 过滤 DataGrid 显示
- DataGrid 自定义分页显示
- flex dataGrid提交显示
- Windows Server 2008 防火墙配置。
- ComboBox为何不显示下拉框?
- 去掉非聚焦 stringGrid 的最后选中的 cell 颜色
- 61条面向对象设计的经验原则,不错~
- Windows Server 2008 新功能
- DataGridTextBoxColumnTrim:DataGrid不能完全显示时显示,部分显示“...”
- spring拦截器的一个简单例子
- Win32汇编教程五:菜单和加速键的使用
- httpModules
- C语言之typedef的问题
- 关于在Windows server 2008下安装应用程序的解决方案
- class和struct做类型定义时的区别
- 新手哦
- 汇编工具下载