首页 > 其他分享 >WinForm的Listbox控件实现拖拽数据功能

WinForm的Listbox控件实现拖拽数据功能

时间:2023-04-01 17:26:59浏览次数:47  
标签:控件 listBox1 object MouseDown DragDrop Listbox 拖拽 WinForm

WinForm的Listbox控件实现拖拽数据功能

screenshots

相关函数:

MouseDown

DragDrop

DragEnter

思路:

当左侧的空间鼠标按下(MouseDown)以后,触发DragDrop操作,然后移动到右侧控件中,将会触发右侧控件的DragEnter事件。

右侧同理

MouseDown:触发拖动操作

DragDrop:从当前容器中拖拽动作完成时的操作(发起拖拽动作的容器)

DragEnter:当从别的容器中得到新的对象时的操作(接收到拖拽动作的容器)

代码如下:

        private void listBox1_MouseDown(object sender, MouseEventArgs e)
        {
            if(listBox1.SelectedItem==null)
                return;
            listBox1.DoDragDrop(listBox1.SelectedItem, DragDropEffects.Move);
        }

        private void listBox1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(typeof(string)))
            {
                e.Effect = DragDropEffects.Move;
            }
            else
                e.Effect = DragDropEffects.None;
        }

        private void listBox1_DragDrop(object sender, DragEventArgs e)
        {
            object o = listBox2.SelectedItem;
            if (o!=null)
            {
                listBox1.Items.Add(o);
                listBox2.Items.Remove(o);
            }
          
        }

标签:控件,listBox1,object,MouseDown,DragDrop,Listbox,拖拽,WinForm
From: https://www.cnblogs.com/LtWf/p/17278932.html

相关文章

  • C# 直接在子线程中对窗体上的控件操作是会出现异常
    https://www.bbsmax.com/A/MAzA8klpd9/ Form1里privatedelegatevoidDispMSGDelegate(intindex,stringMSG);publicvoidDispMsg(intiIndex,stringstrMsg){if(this.richTextBox1.InvokeRequired==false)......
  • Qt学习笔记9——P30-33. 自定义控件封装,鼠标事件,定时器
    P30.自定义控件封装P31.Qt中的鼠标事件P32.定时器1P33.定时器2P30.自定义控件封装(创建了新项目) 添加新的界面和类:右键项目的文件夹(顶层的文件)->Qt——Qt设计师界面类->“选择界面模板”选"Widget"->在"Classname"中取个类名(此案例中改成了SmallWidget)->别的没......
  • Qt学习笔记8——P26-28. ui中的一些控件(QTreeWidget, QTableWidget, 其他)
    P26.QTreeWidget树控件P27.QTableWidget控件P28.其他常用控件介绍P26.QTreeWidget树控件(创建了新项目) (ui界面)ItemWidgets(Item-Based)->TreeWidget把"TreeWidget"拖进界面后,如果想把此TreeWidget居中,选中最大的窗口(Widget),然后选工具栏中的"水平居中"或"垂直居......
  • Visual Studio创建.net 6的WinForm一直提示"正在加载设计器"
    用VS创建.net6的WinForm,一直停留在"正在加载设计器"的界面*其实不止.net6,也能解决其它非.netframework的WinForm状况 原因1.删除了本地的安装缓存(VS安装时会把安装文件先下载到本地)2.关闭了或没打开NuGet 解决方法1.VS菜单->工具->选项->NuGet包管理器->程......
  • net framwork winform
    winform是窗体项目该winform项目使用的数据库是mysql,vs版本是2022创建一个netframework项目 随便选一个框架版本  将form窗体中加入 一个DataGridView、四个button(新增、更新、删除、查询)按钮、一个textbox。这些控件在 视图---工具栏     把窗体中的......
  • 使用UI Automation实现自动化测试 --微软提供的控件Pattern
    微软提供的控件PatternSystem.Windows.Automation命名空间System.Windows.Automation.BasePattern为控件模式类提供基实现System.Windows.Automation.DockPattern表示在某个停靠容器内公开其停靠属性的控件System.Windows.Automation.ExpandCollapsePatte......
  • Android中在控件上显示倒计时
    Android中在控件上显示倒计时Android中在控件上显示倒计时publicclassCountdownTimerActivityextendsActivity{privateTimeCounttime;privateButtonchecking;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){//TODOAuto-generatedmethodst......
  • winform串口控件serialPort1的使用
    serialPort1控件使用的关键点主要有三:1、配置串口号2、配置数据接收事件3、打开串口关键代码如下:1privatevoidForm1_Load(objectsender,EventArgse)2{3......
  • WPF TreeView控件根据数据内容跳转到指定节点
    1、问题描述一般,当我们需要展开TreeView控件的某一节点时,可以在TreeView控件的TreeViewItem所绑定的数据结构上增加一个bool属性,然后与TreeViewItem的IsExpand属性相绑定,......
  • js树形控件—zTree使用
    https://blog.csdn.net/qq_35934094/article/details/80852989https://www.cnblogs.com/leechenxiang/p/5952959.htmlhttps://www.jianshu.com/p/99d24aab74a5详见官网:h......