如何在TStringGrid控件中的某行某列实现复选框.

解决方案 »

  1.   

    没有源码.思路是这样,1,计一个Panel,把你显示在StringGrid的Cell中的其他控件放在即个panel里,将panel设为无边,panel.color := stringgrid.color
    2,将panel.visible := false
    3,如果你需要当mouse一移到cell就显示你的那些控件,那么在mousemove中利用mousetocell和cellrect这两个方法,panel.left := cellrect.left ;panel.top := cellrect.top ;panel.width :=...(略);panel.height := ...(略);
    panel.visible := (acol = mycol)
    4,如果你只需要鼠标按下时显示,那更简单,直接在ommousedown中写panel.visible := (stringgrid.row = myrow)就行了另外,在设计时还要注意当焦点从你的控件离开的时候,设 panel.visible := false
      

  2.   

    StringGrid1DrawCell事件中
      CheckBox1.SetBounds(CellRect(10,Row).Left + Left + 2,
             CellRect(10,Row).Top+Top+2,
             CellRect(10,Row).Right - CellRect(10,Row).Left,
             CellRect(10,Row).Bottom - CellRect(10,Row).Top);
      

  3.   

    预先(创建)有StringGrid1和CheckBox1,
    然后上面代码 便会在StringGrid1当前行的第10列中显示CheckBox1