轻松实现控件间托拽操作

原创 2002年08月28日 08:58:00

    在Vb.net里实现ListBox之间的托拽,首先要使接受托拽数据的控件的AllowDrop属性设为真。再要处理的就是托拽效果,AllowedEffect是设置托拽的源控件的动作效果,而Effect是设置目标控件的动作。这些东东可以在DragEventArgs Members中查到!

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim i As Int32
        For i = 0 To 9
            ListBox1.Items.Add("Item " & i)
        Next
        ListBox2.AllowDrop = True
    End Sub

    Private Sub ListBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseDown
        Dim itemIndex As Integer
        itemIndex = ListBox1.IndexFromPoint(e.X, e.Y)
        If itemIndex >= 0 Then
            ListBox1.DoDragDrop(ListBox1.Items(itemIndex), DragDropEffects.Copy)
        End If
    End Sub

    Private Sub ListBox2_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox2.DragEnter
        If (e.Data.GetDataPresent(DataFormats.Text)) Then
            e.Effect = DragDropEffects.Copy
        Else
            e.Effect = DragDropEffects.None
        End If
    End Sub

    Private Sub ListBox2_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox2.DragDrop
        Dim sItem As String
        sItem = e.Data.GetData(DataFormats.Text).ToString
        ListBox2.Items.Add(sItem)
        ListBox1.Items.RemoveAt(ListBox1.FindString(sItem))
    End Sub

前端拖拽插件gridster.js

gridster.js是一款基于jquery的前端拖拽插件,由于最近项目改进,我发现这个插件很适合,所以研究了起来。以下是学习这个插件的收获。 英文官方文档 http://gridster.net/#...
  • qq_15704535
  • qq_15704535
  • 2015年01月12日 21:24
  • 2352

实现新闻阅读器,标签可以拖拽的效果

原文作者:vipra 本文转自:http://blog.csdn.net/vipzjyno1/article/details/25005851 原文如下: 距离上次发布(androi...
  • yuelinqiu
  • yuelinqiu
  • 2015年09月29日 17:26
  • 183

可以托拽的图片显示控件,JViewport 用法演示

有人发贴问,一个 JPanel 里的图片太大了,超出了 JPanel 的大小范围,“我想拖动鼠标按住JPanel,拖动JPanel,把那些显示不了的线段“拖回来”。” 这是 JVie...
  • u013244517
  • u013244517
  • 2014年12月09日 22:05
  • 308

线程间操作无效: 从不是创建控件的线程访问它的三种解决方法

今天遇到这个问题,百度了下,把解决的方法总结出来。 我们在ui线程创建的子线程操作ui控件时,系统提示错误详细信息为: 线程间操作无效: 从不是创建控件“XXX”的线程访问它。   就我知道的有三...
  • jumtre
  • jumtre
  • 2015年04月07日 22:59
  • 19553

【自定义控件】让你的控件也具有拖拽(drag-and-drop)功能 详细版

转自:  现在有很多软件都支持拖拽功能,就是用鼠标拖着文件放到软件窗口中某个位置,软件就可以做出相应的反应。比如,Windows自带的播放软件Windows Media Player,你可以拖着...
  • vsooda
  • vsooda
  • 2013年05月08日 20:41
  • 2890

线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~

线程间操作无效: 从不是创建控件“”的线程访问它。 听说2003里边不会,我不知道是不是这样的,反正一直都在用05~ 05里会出这个问题的,貌似是为了安全~ 哦,现在知道的解决方法有两个~ ...
  • dongzhe8
  • dongzhe8
  • 2015年05月17日 18:34
  • 14781

线程间操作无效: 从不是创建控件“label1”的线程访问它。C#定时器

线程间操作无效: 从不是创建控件“label1”的线程访问它。 我在使用线程操作winfrom控件对象的时候报错,后来才发现问题所在:多线程中直接调用界面控件的方法是错误的做法,Invoke 和...
  • kllxyu
  • kllxyu
  • 2013年06月18日 17:35
  • 5232

C#中线程间操作无效: 从不是创建控件 txtBOX 的线程访问它。

delegate void 委托名(方法名); void 方法名() { if(txtBox.invokeRequered) { 委托名 d=new 委托名(); txtBox.invok...
  • finish_dream
  • finish_dream
  • 2015年07月14日 01:41
  • 1519

C#中线程间操作无效: 从不是创建控件 txtBOX 的线程访问它

delegate void 委托名(方法名); void 方法名() { if(txtBox.invokeRequered) { 委托名 d=new 委托名();...
  • u011555996
  • u011555996
  • 2016年11月13日 15:41
  • 660

WEB前端开发学习----11. JQuery 实现简单的拖拽效果

拖拽效果在网页中很常见。实现
  • carlosli
  • carlosli
  • 2014年08月24日 02:45
  • 2293
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:轻松实现控件间托拽操作
举报原因:
原因补充:

(最多只允许输入30个字)