[Mono-bugs] [Bug 82532][Wis] New - Drag & Drop using ListView throws exception
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Wed Aug 22 13:29:45 EDT 2007
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by dplotzke at gtcocalcomp.com.
http://bugzilla.ximian.com/show_bug.cgi?id=82532
--- shadow/82532 2007-08-22 13:29:44.000000000 -0400
+++ shadow/82532.tmp.20616 2007-08-22 13:29:44.000000000 -0400
@@ -0,0 +1,230 @@
+Bug#: 82532
+Product: Mono: Class Libraries
+Version: 1.2
+OS:
+OS Details: Windows XP SP2
+Status: NEW
+Resolution:
+Severity:
+Priority: Wishlist
+Component: Windows.Forms
+AssignedTo: toshok at ximian.com
+ReportedBy: dplotzke at gtcocalcomp.com
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL:
+Cc:
+Summary: Drag & Drop using ListView throws exception
+
+Please fill in this template when reporting a bug, unless you know what
+you are doing.
+Description of Problem:
+unhandled System.Exception occurs when trying to use drag & drop with a
+ListView control when running Mono unser Windows XP.
+
+Steps to reproduce the problem:
+1. Create a windows form application with Visual Studio 2003 in C# using
+a ListView control that supports drag & drop.
+2. Run the application using mono
+3. Drag & drop some files onto the listview control.
+
+Actual Results:
+Throws the following exception:
+
+C:\Development\Prototypes\TestMono\TestMono\bin\Debug>mono --debug
+testmono.exe
+
+Unhandled Exception: System.Exception: Yeah baby, gimme a ride to
+WM_DROPFILES l
+and
+ at System.Windows.Forms.Win32DnD+ComIDropTarget.Drop (IntPtr this,
+IntPtr pDat
+aObj, UInt32 grfkeyState, IntPtr pt_x, IntPtr pt_y, IntPtr pdwEffect)
+[0x00000]
+in C:\cygwin\tmp\scratch\mono-1.2.4
+\mcs\class\Managed.Windows.Forms\System.Windo
+ws.Forms\Win32DnD.cs:792
+ at (wrapper native-to-managed) ComIDropTarget:Drop
+(intptr,intptr,uint,intptr,
+intptr,intptr)
+ at <0x00000> <unknown method>
+ at (wrapper managed-to-native)
+System.Windows.Forms.XplatUIWin32:Win32Dispatch
+Message (System.Windows.Forms.MSG&)
+ at System.Windows.Forms.XplatUIWin32.DispatchMessage
+(System.Windows.Forms.MSG
+& msg) [0x00000] in C:\cygwin\tmp\scratch\mono-1.2.4
+\mcs\class\Managed.Windows.F
+orms\System.Windows.Forms\XplatUIWin32.cs:1757
+ at System.Windows.Forms.XplatUI.DispatchMessage
+(System.Windows.Forms.MSG& msg
+) [0x00000] in C:\cygwin\tmp\scratch\mono-1.2.4
+\mcs\class\Managed.Windows.Forms\
+System.Windows.Forms\XplatUI.cs:437
+ at System.Windows.Forms.Application.RunLoop (Boolean Modal,
+System.Windows.For
+ms.ApplicationContext context) [0x002db] in C:\cygwin\tmp\scratch\mono-
+1.2.4\mcs
+\class\Managed.Windows.Forms\System.Windows.Forms\Application.cs:645
+ at System.Windows.Forms.Application.Run (System.Windows.Forms.Form
+mainForm) [
+0x00000] in C:\cygwin\tmp\scratch\mono-1.2.4
+\mcs\class\Managed.Windows.Forms\Sys
+tem.Windows.Forms\Application.cs:499
+ at TestMono.Form1.Main () [0x00000]
+
+
+Expected Results:
+Application doesn't crash.
+
+How often does this happen?
+Every time.
+
+
+Additional Information:
+
+C# Source Code Follows:
+
+using System;
+using System.Drawing;
+using System.Collections;
+using System.ComponentModel;
+using System.Windows.Forms;
+using System.Data;
+
+namespace TestMono
+{
+ /// <summary>
+ /// Summary description for Form1.
+ /// </summary>
+ public class Form1 : System.Windows.Forms.Form
+ {
+ private System.Windows.Forms.ListView listView1;
+ private System.Windows.Forms.Label label1;
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.Container components = null;
+
+ 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.label1 = new System.Windows.Forms.Label();
+ this.SuspendLayout();
+ //
+ // listView1
+ //
+ this.listView1.AllowDrop = true;
+ this.listView1.Location = new System.Drawing.Point
+(32, 48);
+ this.listView1.Name = "listView1";
+ this.listView1.Size = new System.Drawing.Size
+(664, 288);
+ this.listView1.TabIndex = 0;
+ this.listView1.DragDrop += new
+System.Windows.Forms.DragEventHandler(this.listView1_DragDrop);
+ this.listView1.DragEnter += new
+System.Windows.Forms.DragEventHandler(this.listView1_DragEnter);
+ //
+ // label1
+ //
+ this.label1.Location = new System.Drawing.Point
+(32, 16);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(664,
+24);
+ this.label1.TabIndex = 1;
+ this.label1.Text = "Drag & drop an image into the
+listbox below. This action results in a WM_DROPFIL" +
+ "ES exception when running under mono.";
+ //
+ // Form1
+ //
+ this.AutoScaleBaseSize = new System.Drawing.Size
+(5, 13);
+ this.ClientSize = new System.Drawing.Size(728,
+374);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.listView1);
+ this.Name = "Form1";
+ this.Text = "Form1";
+ this.ResumeLayout(false);
+
+ }
+ #endregion
+
+ /// <summary>
+ /// The main entry point for the application.
+ /// </summary>
+ [STAThread]
+ static void Main()
+ {
+ Application.Run(new Form1());
+ }
+
+ private void listView1_DragDrop(object sender,
+System.Windows.Forms.DragEventArgs e)
+ {
+ try
+ {
+ Object o = e.Data.GetData
+(DataFormats.FileDrop);
+
+ if (o != null)
+ {
+ // Get the list of
+files/directories to import
+ string[] fileList = (string[])o;
+ }
+ }
+ catch(Exception exception)
+ {
+ MessageBox.Show("Exception occurred in
+OnDragDrop: " + exception.Message);
+ }
+ }
+
+ private void listView1_DragEnter(object sender,
+System.Windows.Forms.DragEventArgs e)
+ {
+ if (e.Data.GetDataPresent(DataFormats.FileDrop))
+ {
+ e.Effect = DragDropEffects.Copy;
+ }
+ }
+ }
+}
More information about the mono-bugs
mailing list