我想在面板上拖动控件,拖动时我想移动控件并将其位置放到面板上.我已经尝试过mouseUp,mouseDown,MouseMove控件事件.但这不是我要找的东西.我想在面板上触发DragDrop事件并移动控件.我可以这样做吗?如果你能给我一个想法,它会很棒.以下是我的代码的一部分.请指正.非常感谢.
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 DragnDrop
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Control mycontrol;
int x, y;
//Form1 f = new Form1();
private void Form1_Load(object sender, EventArgs e)
{
foreach (Control c in this.panel1.Controls)
{
c.MouseMove += new MouseEventHandler(lblDragger_MouseMove);
c.MouseUp += new MouseEventHandler(lblDragger_MouseUp);
c.MouseDown += new MouseEventHandler(pictureBox1_MouseDown);
c.MouseDoubleClick += new MouseEventHandler(pictureBox1_MouseDown);
}
panel2.AllowDrop = true;
foreach (Control c in this.panel2.Controls) …Run Code Online (Sandbox Code Playgroud) 我可以用mouseClick绘制一个矩形吗?到目前为止,我的代码无效.你能帮助我吗?
private void panel1_MouseClick(object sender, MouseEventArgs e)
{
Graphics g = this.CreateGraphics();
Pen pen = new Pen(Color.Black, 2);
g.DrawRectangle(pen, 100,100, 100, 200);
}
Run Code Online (Sandbox Code Playgroud) 我正在实现一个需要在面板中拖放图像框的应用程序.图像框是从程序中动态添加的,因此我在面板中将autoscroll属性设置为true.但是当我拖出底部的框时面板尺寸减小.我在面板中放置了autosize属性false.面板停靠在另一个面板上.我想在运行时设置面板的大小.我怎样才能实现这一点.
public form1(int[,] dummy, int columnSize, int rowSize)
{
this.dummy= dummy;
numOfColumns = columnSize;
numOfRows = rowSize;
getData();
addIds = addIdArray;
data = mylist;
InitializeComponent();
//panel1.MinimumSize = new Size(columnSize * 40, rowSize * 40);
//panel1.Height = rowSize * 40;
//panel1.Width = columnSize * 40;
//panel4.Height = rowSize * 40;
//panel4.Width = columnSize * 40;
int x, y;
Structures.EmptyRectSpace space = new Structures.EmptyRectSpace();
for (int i = 0; i < data.Count; i++)// set picture boxes
{
space = (Structures.EmptyRectSpace)data[i];
x = …Run Code Online (Sandbox Code Playgroud) 我正在实现一个想要在面板中绘制线条的应用程序.但是面板必须自动滚动,因为它的大小可以在运行时扩展.我使用的面板绘制方法如下所示.当我运行程序时它绘制线条,但当我向下滚动面板时,线条会崩溃.我怎么能避免这种情况?
private void panel1_Paint(object sender, PaintEventArgs e)
{
this.DoubleBuffered = true;
Pen P = new Pen(Color.Red);
for (int i = 0; i < 10; i++) {
e.Graphics.DrawLine(P, (new Point(i * 40, 0)), (new Point(i * 40, 60 * 40)));
}
for (int i = 0; i < 60; i++)
{
e.Graphics.DrawLine(P, (new Point(0, i *40)), (new Point(10 * 40, i * 40)));
}
}
Run Code Online (Sandbox Code Playgroud) 我可以删除我绘制的旧矩形并绘制一个新的矩形吗?
private void panel1_MouseClick(object sender, MouseEventArgs e)
{
Graphics g = this.panel1.CreateGraphics();
Pen pen = new Pen(Color.Black, 2);
g.DrawRectangle(pen, 100,100, 100, 200);
g.dispose();
}
Run Code Online (Sandbox Code Playgroud)