Hello,
I have a problem with MouseEventHandler... I don't know why it doesn't work, why I cannot move the Panel?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Test
{
public partial class Form1 : Form
{
private int objectType;
private Graphics g;
private int clickOffsetX, clickOffsetY;
private bool isDragging = false;
public Form1()
{
InitializeComponent();
g = pnlMain.CreateGraphics();
}
private void Form1_Load(object sender, System.EventArgs e)
{
}
private void btnTable_Click(object sender, EventArgs e)
{
objectType = 1;
}
private void pnlMain_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
switch (objectType)
{
case 1:
// g.DrawRectangle(new Pen(Color.Black, 1), e.X-1, e.Y-1, 101, 101);
//g.FillRectangle(new SolidBrush(Color.White), e.X, e.Y, 100, 100);
//objectType = 0;
break;
case 2:
Panel p1 = new Panel();
p1.Size = new System.Drawing.Size(100,150);
p1.BackColor = Color.White;
p1.Location = new Point(e.X, e.Y);
p1.BorderStyle = BorderStyle.FixedSingle;
p1.AllowDrop = true;
p1.MouseDown += new MouseEventHandler(MouseDown);
p1.MouseDown += new MouseEventHandler(MouseMove);
p1.MouseDown += new MouseEventHandler(MouseUp);
pnlMain.Controls.Add(p1);
objectType = 0;
break;
}
}
private void pnlMain_Paint(object sender, PaintEventArgs e)
{
//System.Windows.Forms.MessageBox.Show("");
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
objectType = 2;
}
private void Form1_Load_1(object sender, EventArgs e)
{
}
private void MouseDown(object sender, MouseEventArgs e)
{
isDragging = true;
clickOffsetX = e.X;
clickOffsetY = e.Y;
Console.WriteLine("MouseDown");
}
private void MouseUp(object sender, MouseEventArgs e)
{
isDragging = false;
Console.WriteLine("MouseUp");
}
private void MouseMove(object sender, MouseEventArgs e)
{
if (isDragging == true){
Panel p1 = new Panel();
p1 = (Panel)sender;
p1.BringToFront();
p1.Left = e.X + p1.Left - clickOffsetX;
p1.Top = e.Y + p1.Top - clickOffsetY;
p1.BackColor = Color.Blue;
txtCursor.Text = (e.X + p1.Left - clickOffsetX).ToString() + " " + (e.Y + p1.Top - clickOffsetY).ToString();
Console.WriteLine("MouseMove");
}
this.OnMouseMove(e);
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
objectType = 3;
}
}
}