新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论.NET,C#,ASP,VB技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 Dot NET,C#,ASP,VB 』 → C#ListView拖动透明图标跟随鼠标效果 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 7810 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: C#ListView拖动透明图标跟随鼠标效果 举报  打印  推荐  IE收藏夹 
       本主题类别: Description Logics    
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 Dot NET,C#,ASP,VB 』的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客楼主
    发贴心情 C#ListView拖动透明图标跟随鼠标效果

    using   System;  
      using   System.Drawing;  
      using   System.Collections;  
      using   System.ComponentModel;  
      using   System.Windows.Forms;  
      using   System.Data;  
       
      namespace   ODLV  
      {  
      ///   <summary>  
      ///   Summary   description   for   Form1.  
      ///   </summary>  
      public   class   Form1   :   System.Windows.Forms.Form  
      {  
      private   System.Windows.Forms.ListView   listView1;  
      private   System.Windows.Forms.Splitter   splitter1;  
      private   System.Windows.Forms.ListView   listView2;  
      private   System.Windows.Forms.ColumnHeader   columnHeader1;  
      private   System.Windows.Forms.ColumnHeader   columnHeader2;  
      ///   <summary>  
      ///   Required   designer   variable.  
      ///   </summary>  
      private   System.ComponentModel.Container   components   =   null;  
      bool   lv1_mdown   =   false   ;  
      private   System.Windows.Forms.ColumnHeader   columnHeader3;  
      private   System.Windows.Forms.ColumnHeader   columnHeader5;  
      bool   lv2_mdown   =   false;  
       
      public   Form1()  
      {  
      //  
      //   Required   for   Windows   Form   Designer   support  
      //  
      InitializeComponent();  
       
      //  
      //   TODO:   Add   any   constructor   code   after   InitializeComponent   call  
      //  
      }  
       
      ///   <summary>  
      ///   Clean   up   any   resources   being   used.  
      ///   </summary>  
      protected   override   void   Dispose(   bool   disposing   )  
      {  
      if(   disposing   )  
      {  
      if   (components   !=   null)    
      {  
      components.Dispose();  
      }  
      }  
      base.Dispose(   disposing   );  
      }  
       
      #region   Windows   Form   Designer   generated   code  
      ///   <summary>  
      ///   Required   method   for   Designer   support   -   do   not   modify  
      ///   the   contents   of   this   method   with   the   code   editor.  
      ///   </summary>  
      private   void   InitializeComponent()  
      {  
      this.listView1   =   new   System.Windows.Forms.ListView();  
      this.columnHeader1   =   new   System.Windows.Forms.ColumnHeader();  
      this.columnHeader3   =   new   System.Windows.Forms.ColumnHeader();  
      this.splitter1   =   new   System.Windows.Forms.Splitter();  
      this.listView2   =   new   System.Windows.Forms.ListView();  
      this.columnHeader2   =   new   System.Windows.Forms.ColumnHeader();  
      this.columnHeader5   =   new   System.Windows.Forms.ColumnHeader();  
      this.SuspendLayout();  
      //    
      //   listView1  
      //    
      this.listView1.AllowDrop   =   true;  
      this.listView1.Columns.AddRange(new   System.Windows.Forms.ColumnHeader[]   {  
      this.columnHeader1,  
      this.columnHeader3});  
      this.listView1.Dock   =   System.Windows.Forms.DockStyle.Top;  
      this.listView1.FullRowSelect   =   true;  
      this.listView1.MultiSelect   =   false;  
      this.listView1.Name   =   "listView1";  
      this.listView1.Size   =   new   System.Drawing.Size(232,   176);  
      this.listView1.TabIndex   =   0;  
      this.listView1.View   =   System.Windows.Forms.View.Details;  
      this.listView1.MouseDown   +=   new   System.Windows.Forms.MouseEventHandler(this.listView1_MouseDown);  
      this.listView1.DragDrop   +=   new   System.Windows.Forms.DragEventHandler(this.listView1_DragDrop);  
      this.listView1.DragEnter   +=   new   System.Windows.Forms.DragEventHandler(this.listView1_DragEnter);  
      this.listView1.MouseMove   +=   new   System.Windows.Forms.MouseEventHandler(this.listView1_MouseMove);  
      //    
      //   columnHeader1  
      //    
      this.columnHeader1.Text   =   "COL1";  
      this.columnHeader1.Width   =   100;  
      //    
      //   columnHeader3  
      //    
      this.columnHeader3.Text   =   "COL2";  
      this.columnHeader3.Width   =   100;  
      //    
      //   splitter1
    //    
      this.splitter1.Dock   =   System.Windows.Forms.DockStyle.Top;  
      this.splitter1.Location   =   new   System.Drawing.Point(0,   176);  
      this.splitter1.Name   =   "splitter1";  
      this.splitter1.Size   =   new   System.Drawing.Size(232,   3);  
      this.splitter1.TabIndex   =   1;  
      this.splitter1.TabStop   =   false;  
      //    
      //   listView2  
      //    
      this.listView2.AllowDrop   =   true;  
      this.listView2.Columns.AddRange(new   System.Windows.Forms.ColumnHeader[]   {  
      this.columnHeader2,  
      this.columnHeader5});  
      this.listView2.Cursor   =   System.Windows.Forms.Cursors.Arrow;  
      this.listView2.Dock   =   System.Windows.Forms.DockStyle.Fill;  
      this.listView2.FullRowSelect   =   true;  
      this.listView2.Location   =   new   System.Drawing.Point(0,   179);  
      this.listView2.MultiSelect   =   false;  
      this.listView2.Name   =   "listView2";  
      this.listView2.Size   =   new   System.Drawing.Size(232,   226);  
      this.listView2.TabIndex   =   2;  
      this.listView2.View   =   System.Windows.Forms.View.Details;  
      this.listView2.MouseDown   +=   new   System.Windows.Forms.MouseEventHandler(this.listView2_MouseDown);  
      this.listView2.DragDrop   +=   new   System.Windows.Forms.DragEventHandler(this.listView2_DragDrop);  
      this.listView2.DragEnter   +=   new   System.Windows.Forms.DragEventHandler(this.listView2_DragEnter);  
      this.listView2.MouseMove   +=   new   System.Windows.Forms.MouseEventHandler(this.listView2_MouseMove);  
      //    
      //   columnHeader2  
      //    
      this.columnHeader2.Text   =   "COL1";  
      this.columnHeader2.Width   =   100;  
      //    
      //   columnHeader5  
      //    
      this.columnHeader5.Text   =   "COL2";  
      this.columnHeader5.Width   =   100;  
      //    
      //   Form1  
      //    
      this.AutoScaleBaseSize   =   new   System.Drawing.Size(5,   13);  
      this.ClientSize   =   new   System.Drawing.Size(232,   405);  
      this.Controls.AddRange(new   System.Windows.Forms.Control[]   {  
          this.listView2,  
          this.splitter1,  
          this.listView1});  
      this.Name   =   "Form1";  
      this.Text   =   "Form1";  
      this.Load   +=   new   System.EventHandler(this.Form1_Load);  
      this.ResumeLayout(false);  
       
      }  
      #endregion  
       
      ///   <summary>  
      ///   The   main   entry   point   for   the   application.  
      ///   </summary>  
      [STAThread]  
      static   void   Main()    
      {  
      Application.Run(new   Form1());  
      }  
       
      private   void   Form1_Load(object   sender,   System.EventArgs   e)  
      {  
      ImageList   il   =   new   ImageList();  
      il.Images.Add(new   System.Drawing.Icon("E:\\林APP\\WinFormCollection\\DragDropListView \\TICK.ico"));//D:\\smk\\odlv\\tick.ico  
      listView1.SmallImageList   =   il   ;  
       
      ImageList   i2   =   new   ImageList();  
      i2.Images.Add(new   System.Drawing.Icon("E:\\林APP\\WinFormCollection\\DragDropListView \\KEY04.ICO"));//D:\\smk\\odlv\\key04.ico  
      listView2.SmallImageList   =   i2   ;  
       
       
      string[]   items   =   new   string[2];  
      items[0]   =   "LA"   ;   items[1]   =   "Los   Angeles";  
      listView1.Items.Add(new   ListViewItem(items,0));  
      items[0]   =   "WA"   ;   items[1]   =   "Seattle";  
      listView1.Items.Add(new   ListViewItem(items,0));  
      items[0]   =   "IL"   ;   items[1]   =   "Chicago";  
      listView1.Items.Add(new   ListViewItem(items,0));  
       
      items[0]   =   "FR"   ;   items[1]   =   "Paris";  
      listView2.Items.Add(new   ListViewItem(items,0));  
      items[0]   =   "BR"   ;   items[1]   =   "London";  
      listView2.Items.Add(new   ListViewItem(items,0));  
      items[0]   =   "IN"   ;   items[1]   =   "Mumbai";  
      listView2.Items.Add(new   ListViewItem(items,0));  
       
      }  
       
      private   void   listView1_DragDrop(object   sender,   System.Windows.Forms.DragEventArgs   e)  
      {  
      string   textBox1   =   e.Data.GetData(DataFormats.Text).ToString();  
      string[]   items   =   textBox1.Split(',');  
      listView1.Items.Add(new   ListViewItem(items,0));  
      lv1_mdown   =   false   ;  
      lv2_mdown   =   false   ;  
      }   
    private   void   listView2_DragDrop(object   sender,   System.Windows.Forms.DragEventArgs   e)  
      {  
      string   textBox1   =   e.Data.GetData(DataFormats.Text).ToString();  
      string[]   items   =   textBox1.Split(',');  
      listView2.Items.Add(new   ListViewItem(items,0));  
      lv2_mdown   =   false   ;  
      lv1_mdown   =   false   ;  
      }  
       
      private   void   listView2_DragEnter(object   sender,   System.Windows.Forms.DragEventArgs   e)  
      {  
      if   (e.Data.GetDataPresent(DataFormats.Text))    
      e.Effect   =   DragDropEffects.Copy;  
      else  
      e.Effect   =   DragDropEffects.None;  
      }  
       
      private   void   listView1_DragEnter(object   sender,   System.Windows.Forms.DragEventArgs   e)  
      {  
      if   (e.Data.GetDataPresent(DataFormats.Text))    
      e.Effect   =   DragDropEffects.Copy;  
      else  
      e.Effect   =   DragDropEffects.None;  
      }  
       
      private   void   listView1_MouseMove(object   sender,   System.Windows.Forms.MouseEventArgs   e)  
      {  
      if   (   !   lv1_mdown   )   return   ;  
      if   (   e.Button   ==   MouseButtons.Right   )   return   ;  
       
      string   str   =   GetItemText(listView1)   ;  
      if   (   str   ==   ""   )   return   ;  
       
      listView1.DoDragDrop(str   ,   DragDropEffects.Copy   |   DragDropEffects.Move   )   ;  
      }  
       
      private   void   listView2_MouseMove(object   sender,   System.Windows.Forms.MouseEventArgs   e)  
      {  
      if   (   !   lv2_mdown   )   return   ;  
      if   (   e.Button   ==   MouseButtons.Right   )   return   ;  
       
      string   str   =   GetItemText(listView2)   ;  
      if   (   str   ==   ""   )   return   ;  
       
      listView2.DoDragDrop(str,   DragDropEffects.Copy   |   DragDropEffects.Move   )   ;  
      }  
       
      private   void   listView1_MouseDown(object   sender,   System.Windows.Forms.MouseEventArgs   e)  
      {  
      lv1_mdown   =   true   ;  
      }  
       
      private   void   listView2_MouseDown(object   sender,   System.Windows.Forms.MouseEventArgs   e)  
      {  
      lv2_mdown   =   true   ;  
      }  
       
      public   string   GetItemText(ListView   LVIEW)  
      {  
      int   nTotalSelected   =   LVIEW.SelectedIndices.Count;  
      if   (   nTotalSelected   <=   0   )   return   "";  
      IEnumerator   selCol   =   LVIEW.SelectedItems.GetEnumerator();  
      selCol.MoveNext()   ;  
      ListViewItem   lvi   =   (ListViewItem)selCol.Current;  
      string   mDir   =   "";  
      for   (   int   i=0;   i   <   lvi.SubItems.Count;i++)  
      mDir   +=   lvi.SubItems[i].Text   +",";  
       
      mDir   =   mDir.Substring(0,mDir.Length-1);  
      return   mDir   ;  
      }  
      }  
      }

       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    事业是国家的,荣誉是单位的,成绩是领导的,工资是老婆的,财产是孩子的,错误是自己的。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/7/24 14:44:00
     
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 Dot NET,C#,ASP,VB 』的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客2
    发贴心情 
    [C#]listview拖动事件源码

    private void lvEquip_ItemDrag(object sender, System.Windows.Forms.ItemDragEventArgs e)
      {
       this.DoDragDrop(e.Item,DragDropEffects.Move);
      }
      private void tvDept_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
      {
       e.Effect=DragDropEffects.Move;
      }

      private void tvDept_DragOver(object sender, System.Windows.Forms.DragEventArgs e)
      {
       Point ptScreen=new Point(e.X,e.Y);
       Point pt=tvDept.PointToClient(ptScreen);
       ListViewItem item=tvDept.GetItemAt(pt.X,pt.Y);
       if(item!=null)
       item.Selected=true;
      }

      private void tvDept_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
      {
       Add_EquipMent();
      }

    ----------------------------------------------
    事业是国家的,荣誉是单位的,成绩是领导的,工资是老婆的,财产是孩子的,错误是自己的。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/8/4 15:20:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Dot NET,C#,ASP,VB 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/28 17:41:25

    本主题贴数2,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    125.000ms