roger.wang 发表于 2014-5-16 10:38:00

ComoboCellType 如何在单元格中同时显示文本和图片

问题描述:希望在单元格中同时添加文本和图片混排的方式。
问题解答:Spread提供了单元格自定义功能,可以继承ComoboCellType 并且重载PaintCell 方法来手动添加图片。
关键代码:
   
   ///<summary>
    ///通过继承 ComboCellType 实现
    ///</summary>      
public class ImageCombo : FarPoint.Win.Spread.CellType.ComboBoxCellType
    {
public override void PaintCell(Graphics g, Rectangle r, FarPoint.Win.Spread.Appearance appearance, object value, bool isSelected, bool isLocked, float zoomFactor)
      {
            if (value != null)
            {
                int ind =0;
            for (int i = 0; i <base.Items.Length; i++)
            {
            if (base.Items == value.ToString())
            {
                ind = i;
                break;
            }
         }
            Image img = base.ImageList.Images;
            g.DrawImage(img, newRectangle(newPoint(r.X, r.Y), newSize(20, 20)));
            g.DrawString(value.ToString(), appearance.Font, newSolidBrush(Color.Black), newPointF(r.X + 20, r.Y-10 + 10));
            ControlPaint.DrawComboButton(g, newRectangle(r.Right - 17, r.Y, 17, r.Height), ButtonState.Normal);               
            }
            else
            {
                base.PaintCell(g, r, appearance, value, isSelected, isLocked, zoomFactor);
            }
      }      
    }
?
效果截图:


源码下载
页: [1]
查看完整版本: ComoboCellType 如何在单元格中同时显示文本和图片