继承了Control,我用vs2008的vb写了个控件用于显示一些图形,控件的Y尺寸发生改变时,图形总是跟着上面跑,怎么样可以让图形跟着下面跑?

解决方案 »

  1.   

    Private Sub UserControl_Resize()
        Image1.Top = UserControl - Image1.ScaleHeight
    End Sub
      

  2.   

    Private Sub UserControl_Resize()
        Image1.Top = UserControl.ScaleHeight - Image1.ScaleHeight
    End Sub
      

  3.   

    用anchor属性
    我没太理解跟着上面/下面跑是什么意思
    反正如果你希望控件距离其容器的top距离保持一致就anchor设置成上面,反之就是下面
      

  4.   

    是的,.net中是可以用Anchor属性的(还有Dock属性),我们都原来被困在调整大小的地狱中,这两个属性将帮助你解决那些棘手的调整大小的情况
    Anchor属性用于定义控件的定位点位置,即当窗体的大小改变的时候,该控件与窗体的绝对位置保持不变
      

  5.   

    先谢谢大家!
    dbcontorls应该理解了我的意思,但是我没有用到后台绘图,所有绘图都在OnPint里完成。
    看来还是得用后台绘图才行,虽然现在我还不是很熟练。
    还希望有更好的解决办法,恳请赐教!
    关于不明白我意思的,不是说相对控件父级的改变,是控件内容的改变。其实我就是想在改变控件大小的时候,只要重绘控件的右边和上边的部份区域,那样控件就不会闪
      

  6.   

    其实我没有用过VB6,想再问一下dbcontorls:
    那个 image1 是一个后台的图像吗?
      

  7.   

    就是先在内存做一个map,把绘图都绘到这个map,然后一次显示到控件视图,vb2008的命令是这样的Graphics.FromImage(bmp)