博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spread Studio for Winform :实现编辑状态下文本居中
阅读量:7171 次
发布时间:2019-06-29

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

hot3.png

有用户提出,怎样使编辑状态下的单元格文本垂直居中显示。Spread 表格控件单元格有两种状态,编辑状态和普通显示状态。在显示状态下,我们可以通过单元格的格式相关属性来设置单元格样式、对齐方式。该功能我们需要通过自定义单元格方式实现。

实现该功能的核心代码如下:

1:  public override Control GetEditorControl(Control parent, FarPoint.Win.Spread.Appearance appearance, float zoomFactor)  2:         {  3:             TextBox tb = new TextBox();  4:             FarPoint.Win.Spread.FpSpread spread = parent as FarPoint.Win.Spread.FpSpread;  5:             float height = spread.Sheets[0].ActiveRow.Height;  6:             float width = spread.Sheets[0].ActiveColumn.Width;  7:             tb.Width = (int)width;  8:             tb.Location = new Point(0, (int)(height / 2 - tb.Height / 2) + 2);  9:             tb.Text = spread.Sheets[0].ActiveCell.Text; 10:             uc = new MyEditorControl(tb); 11:             uc.Height = (int)height; 12:             uc.Width = (int)width; 13:             return uc; 14:         }

自定义单元格编译器由 TextBox 和 UserControl 组成。我们可以通过调整 TextBox 的位置来实现输入时文本居中。主要是通过获取当前编辑单元格的大小,来设置自定义编辑器的大小,从而确定 TextBox 的位置。

在设置单元格内容之后,我们通过以下代码返回单元格值:

1:  public override object GetEditorValue()  2:         {  3:             return uc.Tb.Text;  4:         }

基于 UserControl 实现的自定义编辑器代码如下:

1: public partial class MyEditorControl : UserControl  2:     {  3:         TextBox tb;  4:           5:         public MyEditorControl(TextBox tb1)  6:         {  7:             this.BackColor = Color.White;  8:             tb = tb1;  9:             tb.BorderStyle = System.Windows.Forms.BorderStyle.None; 10:             this.Controls.Add(tb); 11:         } 12:         public TextBox Tb 13:         { 14:             get { return tb; } 15:             set { tb = value; } 16:         } 17:     }

效果图:

 

源码下载:VS 2010 + Spread Studio .NET 7 + .NET 4.0:

使用控件查看地址:

转载于:https://my.oschina.net/u/852404/blog/146892

你可能感兴趣的文章
Allegro PCB Design GXL (legacy) 设置十字大光标
查看>>
数据结构--图的定义和存储结构
查看>>
[C#参考]委托机制
查看>>
linux常用命令
查看>>
自然杂志上的影评
查看>>
SQL Server 存储过程
查看>>
Appium自动化测试1 - 安装部署
查看>>
广州.NET微软技术俱乐部微信群各位技术大牛的blog
查看>>
《Redis设计与实现》之第九章:数据库
查看>>
10月10日学习内容整理:socketserver模块,ftp作业讲解
查看>>
P1352 没有上司的舞会
查看>>
Bzoj 1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐 深搜,bitset
查看>>
关于《淘宝技术这十年》
查看>>
C#使用log4net记录日志
查看>>
halcon
查看>>
servlet过滤器
查看>>
maven向本地仓库导入jar包(处理官网没有的jar包)
查看>>
BNU OJ 51003 BQG's Confusing Sequence
查看>>
LightOJ 1422 Halloween Costumes
查看>>
GOOGLE卫星地图URL中的Tile位置编码算法
查看>>