当前位置:编程学习 > C#/ASP.NET >>

C# winform 如何拖动控件到窗体

如图,就类似于VS把控件拖动主窗体那个效果。我也要做,求代码!

追问:不会用委托也,可否也。。?
答案:你可以做一个用户控件,只显示控件图标和名字( 这个控件做起来应该很简单的)控件箱,拖到相关图标到winfrom时new一个控件就行了,

具体:

用户控件做好后,写好点击按下、移动、抬起事件来做该控件的移动,当移动后抬起时就记录下该控件所在的Locaction,然后再这个点上创建一个与之图标相对应的控件,

用户控件大体思路:

按下事件和移动事件用来处理控件的移动就行了。用户控件实现create接口(自定义的接口)

抬起事件调用Create接口;

create接口实现创建并返回不同的控件;

大体代码:

class MyContr :userControl : ICreate

{

      //写好按下事件,移动事件

     //抬起事件

      private Control con;

      public MyContr(Control c) {

          con = c;

     }

      private void UserControl1_MouseUp(object sender, MouseEventArgs e)
        {

               this.con.Location = this.Location;//把自己现在所在的位置给控件

              //写好委托,当鼠标抬起后,需要委托的方法

               //winfrom通过委托调用create方法

        }

     public Control create()

     {

                 return con;//返回控件

    }

}

最后winfrom之需要调用create方法得到该控件就行了,至于什么时候调用可以使用委托。

这里只是大致思路希望对你有用,这个我也没写过,如果有说得不足的地方,或是错误的地方,请包涵。

你可以新建个项目,用户控件,或者控件类。然后生成以后会有个DLL文件,这个dll文件就可以加载到工具箱上面去。然后也可以拖到窗体上去了

上一个:C#网络编程:TCP和UDP》?
下一个:c# 常用算法 有注释最好。

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,