找回密码
 立即注册

QQ登录

只需一步,快速开始

wangmj

论坛元老

14

主题

44

帖子

1万

积分

论坛元老

积分
10158

活字格认证

wangmj
论坛元老   /  发表于:2013-1-29 14:58  /   查看:6579  /  回复:5
非常感谢 dof  对以上问题的 回复 。
我用您提供的代码试了一下, 非编辑状态可以出现 CHECKBOX 按钮了。
但现在有一个小问题想和您再确认一下,就是 窗体初始化后(第一次运行的时候),
SPREAD中显示得并不是想要的样式。
鼠标单击一次后(编辑状态),自定义控件才正常显示,然后离开单击的这个CELL时(非编辑状态),
您提供的代码重写的CHECKBOX样式才出现。
然后再点击 就是这两种编辑状态和非编辑状态样式的正常转换了。
那不知初始化时的样式是否可以设置,该如何设置阿?
麻烦了! 这个问题不解决,我的这个技术调研就要挂了。

5 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-29 15:07:00
沙发
回复 1楼wangmj的帖子

附件是我的测试工程,运行之后,初始状态下就可以在一个单元格中显示两个CheckBox,这是你要的效果吗。
如果你的程序不是这样,可以发给我协助你进行调试

7822_CellType.zip (10.22 KB, 下载次数: 462)
回复 使用道具 举报
wangmj
论坛元老   /  发表于:2013-1-29 15:30:00
板凳
是这个效果,没问题了。
就是不知道能否在显示的两个combox右面分别加上文字。
谢谢 dof !
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-29 15:50:00
地板
回复 3楼wangmj的帖子

可以显示文字,颜色代码如下:
  1.     public class CCheckBoxCellType : FarPoint.Win.Spread.CellType.GeneralCellType
  2.     {        
  3.         public override void PaintCell(Graphics g, Rectangle r, FarPoint.Win.Spread.Appearance appearance, object value, bool isSelected, bool isLocked, float zoomFactor)
  4.         {
  5.             g.FillRectangle(new SolidBrush(Color.White), r);
  6.             Rectangle r1 = new Rectangle(r.X, r.Y, 20, r.Height);
  7.             Rectangle r2 = new Rectangle(r.X + r.Width / 2, r.Y, r.Width / 2, r.Height);
  8.             ControlPaint.DrawCheckBox(g, r1, ButtonState.Checked);
  9.             g.DrawString("测试", appearance.Font, new SolidBrush(Color.Black), new PointF(r1.X + r1.Width, r1.Y));
  10.             ControlPaint.DrawCheckBox(g, r2, ButtonState.Normal);
  11.             //base.PaintCell(g, r, appearance, value, isSelected, isLocked, zoomFactor);
  12.         }
  13.     }
复制代码
回复 使用道具 举报
wangmj
论坛元老   /  发表于:2013-1-29 16:30:00
5#
谢谢 dof !
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-30 09:26:00
6#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部