找回密码
 立即注册

QQ登录

只需一步,快速开始

ahljxwy

银牌会员

27

主题

67

帖子

3969

积分

银牌会员

积分
3969

活字格认证

ahljxwy
银牌会员   /  发表于:2012-4-5 14:42  /   查看:7231  /  回复:5
我将某一列的单元格类型设置为按钮类型,我想知道如果设置单元格里按钮的宽度,我不想让这个按钮占满整个单元格,还有就是如果获取到这个按钮的单元事件?谢谢!

5 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-4-5 17:00:00
沙发

回复 1# ahljxwy 的帖子

ahljxwy  你好,
1.可以通过自定义单元格类型,重载 PaintCell 方法去实现更改按钮尺寸:
  1. Public Class myButton
  2. Inherits FarPoint.Win.Spread.CellType.ButtonCellType
  3. Public Overrides Sub PaintCell(ByVal g As System.Drawing.Graphics, ByVal r As System.Drawing.Rectangle, ByVal appearance As FarPoint.Win.Spread.Appearance, ByVal value As Object, ByVal isSelected As Boolean, ByVal isLocked As Boolean, ByVal zoomFactor As Single)
  4. Dim myr As New Rectangle(r.X + 10, r.Y + 5, 15, 8)
  5. Dim rectf As New RectangleF(r.X, r.Y, r.Width, r.Height)
  6. Dim b As Brush
  7. b = New SolidBrush(Color.White)
  8. g.FillRectangle(b, rectf)
  9. FarPoint.Win.FpButton.DoPaint(g, myr, MyBase.ButtonColor, MyBase.TextColor, appearance.Font, FarPoint.Win.HorizontalAlignment.Left, FarPoint.Win.VerticalAlignment.Top, False, False, MyBase.Text, "", FarPoint.Win.ButtonTextAlign.TextRightPictLeft, False, MyBase.ShadowSize, MyBase.DarkColor, MyBase.LightColor, MyBase.Picture, MyBase.PictureDown, False)
  10. End Sub
  11. End Class
复制代码

2.可以通过 CellClick 事件,在事件中添加逻辑判断该单元格类型是否为 ButtonCellType 来完成。
回复 使用道具 举报
ahljxwy
银牌会员   /  发表于:2012-4-6 12:30:00
板凳
饿的个神啊!要这么多代码才能完成?能不能简便点?有没有C#的代码啊?多谢!!!!!!!!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-4-9 14:25:00
地板

回复 3# ahljxwy 的帖子

ahljxwy 你好,C# 代码如下:

  1.     class MyButtonCellType : FarPoint.Win.Spread.CellType.ButtonCellType
  2.     {
  3.         public override void PaintCell(System.Drawing.Graphics g, System.Drawing.Rectangle r, FarPoint.Win.Spread.Appearance appearance, object value, bool isSelected, bool isLocked, float zoomFactor)
  4.         {
  5.             Rectangle myr = new Rectangle(r.X + 10, r.Y + 5, 15, 8);
  6.             RectangleF rectf = new RectangleF(r.X, r.Y, r.Width, r.Height);
  7.             Brush b = default(Brush);
  8.             b = new SolidBrush(Color.White);
  9.             g.FillRectangle(b, rectf);
  10.             FarPoint.Win.FpButton.DoPaint(g, myr, base.ButtonColor, base.TextColor, appearance.Font, FarPoint.Win.HorizontalAlignment.Left, FarPoint.Win.VerticalAlignment.Top, false, false, base.Text,
  11.             "", FarPoint.Win.ButtonTextAlign.TextRightPictLeft, FarPoint.Win.TextOrientation.TextHorizontal,false,1, base.DarkColor, base.LightColor, base.Picture, base.PictureDown, false,false);
  12.         }
  13.     }
复制代码
回复 使用道具 举报
说好只亲脸
新手上路   /  发表于:2013-1-15 19:01:00
5#
ahljxwy  你好,
1.可以通过自定义单元格类型,重载 PaintCell 方法去实现更改按钮尺寸:
[code]
Public Class myButton
Inherits FarPoint.Win.Spread.CellType.ButtonCellType

Public Overrides Sub PaintCell(ByVal g As System.Drawing.Graphi
iceman 发表于 2012-4-5 17:00:00


这是VB吗?为什么复制过去没用,能给个示例吗
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-16 15:03:00
6#
回复 5楼说好只亲脸的帖子

这是C#代码,给你推荐一个代码转换工具吧,可能会对你有用的:
http://www.developerfusion.com/tools/convert/csharp-to-vb/
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部