none
在form窗体上绘制的图元怎样变换成控件 RRS feed

  • 问题

  • 我先前写了一个类是用于form窗体上控件的平移与缩放,现在我在窗体上用GDI+绘制了图形,我也想让他平移和缩放,但是我想用我写的那个类,不知道怎么实现,是把我画的这个图形区域转换成控件还是怎么做,请高手们帮帮忙

    下面是我先前引用那个类的写法
        public Form1()
            {
                InitializeComponent();
              PickBox pb= new PickBox();
                foreach (Control item in this.Controls)
                {
                    pb.WireControl(item);
                }   
            }   
    不做任何的操作,form窗体上的控件就可以移动了,现在这种情况怎么处理了呀

    2009年9月27日 6:16

答案

  • 这个也需要模拟来实现!
    你可以使用form的MouseMove事件,如果坐标在你的图元的范围内,就显示ToolTip!
    其他实现也类似,都需要利用form的事件来模拟!
    GDI图始终就是“图”,不是控件,所以只能用模拟的方法来实现了!
    周雪峰
    2009年9月28日 11:00
    版主

全部回复

  • 我的先前的类的入口是:public void WireControl(Control ctl){......}
    我这个难道没办法处理了吗?

    2009年9月27日 7:40
  • 你好!
         我认为没有办法把GDI+画的图用原来移动控件的方法处理,你需要自己写代码用GDI+来模拟缩放和移动!
         主要就是把旧图形擦除(用背景色在原来的地方画图就“擦除了),然后在新的位置画平移或缩放后的图形就可以了!
         这个和移动和缩放控件的方式不同,所以无法利用原来的代码了!
    周雪峰
    2009年9月27日 9:59
    版主
  • 谢谢! 我想我只能重新写一个类来处理了。哦对了我还有一个问题麻烦你:假如我在form上用GDI+画了图元,我怎样动态的给每个图元显示ToolTip提示,因为我可能要根据菜单还在form上添加图元,而且每个添加的图元上都要有tootlip,鼠标点击图元时,tooltip才消失。或者另一种效果也可以鼠标移上不同的图元显示不同的tooltip提示,鼠标单击提示消失,这个怎么实现呀?

    2009年9月28日 9:03
  • 这个也需要模拟来实现!
    你可以使用form的MouseMove事件,如果坐标在你的图元的范围内,就显示ToolTip!
    其他实现也类似,都需要利用form的事件来模拟!
    GDI图始终就是“图”,不是控件,所以只能用模拟的方法来实现了!
    周雪峰
    2009年9月28日 11:00
    版主