参考了别人的代码,进行一些改进
//在运行的窗口中,鼠标调整控件的位置,大小
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private int sX;
private int sY;
bool SizeAdj = false;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
//鼠标按下的时候,保存初始坐标
sX = e.X;
sY = e.Y;
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
//如果是按在右下角,并且不是移动
if ((e.X > pictureBox1.Width - 5 && e.Y > pictureBox1.Height - 5) || SizeAdj == true)
{
//设置光标为右下角拉伸
pictureBox1.Cursor = Cursors.SizeNWSE;
if (e.Button == MouseButtons.Left)
{
//处理新的控件大小
SizeAdj = true;
var w = sX + (e.X - sX);
var h = sY + (e.Y - sY);
//设置最小大小
if (w < 10) w = 10;
if (h < 10) h = 10;
pictureBox1.Width = w;
pictureBox1.Height = h;
}
}
else
{
//设置为移动位置光标
pictureBox1.Cursor = Cursors.SizeAll;
if (e.Button == MouseButtons.Left)
{
//处理新的窗口位置
var l= pictureBox1.Left + (e.X - sX);
var t= pictureBox1.Top + (e.Y - sY);
//不能移动出窗口左上角
if (l < 0) l = 0;
if (t < 0) t = 0;
pictureBox1.Left = l;
pictureBox1.Top = t;
}
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
//标记为移动控件
SizeAdj = false;
}
private void pictureBox1_DoubleClick(object sender, System.EventArgs e)
{
MessageBox.Show("双击了鼠标左键!");
}
}
}
这个代码示例演示了如何在Windows Forms应用程序中,通过鼠标操作改变pictureBox控件的位置和大小。当鼠标按下并在右下角时,可以进行大小调整;在其他区域按下则可以移动控件。同时,实现了双击鼠标左键显示消息框的功能。
1887

被折叠的 条评论
为什么被折叠?



