现在有一个StringGrid它的2列和3列上面有动态生成的ComboBox,现在问题是这个StringGrid的行数不是固定的,有可能选中一个树型控件节点的时候它只有2列(或更多),有可能选中树型控件结点的时候它只有4列之类的,但是当列数减少的时候动态生成的ComboBox还在原来的地方停留,并没有消失,现在问题就是如何让ComboBox跟着StringGrid的行增加而增加,减少而减少

解决方案 »

  1.   

    提供一个思路吧。
    就是在鼠标点击一个单元格时动态在这个位置显示一个Combox。离开这个Cells之后,隐藏Combox。Combox只需要有一个就够了。
    Delphi的DBGrid就是这么干的
      

  2.   

    关键是现在行是动态增减的,然后每一行的2、3列上面才有TComboBox,动态加行的时候,TComboBox的生成很正常,减少行的时候,原来生成的两个TComboBox就不会消失,还在原来有一行的那里留着,现在就是要它们消失!
      

  3.   

    同意楼上的建议,这样的话就完全不用动态创建了.如果确实有这种需要,你可以在动态生成ComboBox的时候给它们指定一个与StringGrid的Cell相关联的Name,你刷新StringGrid的时候枚举父容器上的所有ClassName='TComboBox'的控件,分析每个ComboBox的Name来确定隐藏与否
      

  4.   

    看来我的回复延时太厉害了,呵呵
    你设置它们的Visible或是Free掉不可以吗?必要的话重画一下
      

  5.   

    有没有这个方面For D6的控件,最好有源代码的,我用控件算了
      

  6.   

    我给每个TComboBox设置了一个Tag,这个Tag对应每一行,然后释放的时候就会报错超界,而且每次单击树型节点的时候它都会重复创建TComboBox,实在是#@!$#@#$#@%