Spread Studio for Winform :实现编辑状态下文本居中

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

发布于 2013/06/27 00:00

SpreadJS

有用户提出,怎样使编辑状态下的单元格文本垂直居中显示。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:     }

效果图:

Demo1

 

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

SpreadJS | 下载试用

纯前端表格控件SpreadJS,兼容 450 种以上的 Excel 公式,具备“高性能、跨平台、与 Excel 高度兼容”的产品特性,备受华为、苏宁易购、天弘基金等行业龙头企业的青睐,并被中国软件行业协会认定为“中国优秀软件产品”。SpreadJS 可为用户提供类 Excel 的功能,满足表格文档协同编辑、 数据填报、 类 Excel 报表设计等业务场景需求,极大的降低企业研发成本和项目交付风险。

如下资源列表,可以为您评估产品提供帮助:

相关产品
推荐相关案例
推荐相关资源
关注微信
葡萄城社区二维码

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态