我想做一个类似Rose这么一个东西。
但是,功能很简单。就是我从左面的区域Drag一个图形到右边的区域。
简单说比如一个类图的图标(一个矩形),在右面的区域可以移动它的位置,改变它的大小。
然后可以给它添加属性什么的。
请问有没有什么好的建议?
多谢大家!
但是,功能很简单。就是我从左面的区域Drag一个图形到右边的区域。
简单说比如一个类图的图标(一个矩形),在右面的区域可以移动它的位置,改变它的大小。
然后可以给它添加属性什么的。
请问有没有什么好的建议?
多谢大家!
调试欢乐多
看人家的开源项目。
http://sourceforge.net/project/screenshots.php?group_id=124709
判断鼠标左键是否被按下,判断鼠标位置是否在某个区域,
如果满足上述2个条件,则改变窗体的位置。下面是代码示例:
//首先定义辅助变量,它保存了窗体和鼠标相对于屏幕的位置
private int form1Left;
private int form1Top;
private int mouseLeft;
private int mouseTop;
//用户可以拖动窗体的区域
private Rectangle recTitle = new Rectangle( 0, 0, 100, 100 );
//下面分别是事件处理方法
//MouseMove事件中改变窗体的位置
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left && recTitle.Contains(e.X,e.Y))
{
this.Left = form1Left + (this.Left + e.X) - mouseLeft;
this.Top = form1Top +(this.Top+e.Y)-mouseTop;
}
}
//MouseDown事件中保存初始的窗体和鼠标位置
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left && recTitle.Contains(e.X,e.Y))
{
form1Left = this.Left;
form1Top = this.Top;
mouseLeft = this.Left+e.X;
mouseTop = this.Top+e.Y;
}
} private void Form1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left && recTitle.Contains(e.X,e.Y))
{
this.Left = form1Left + (this.Left + e.X) - mouseLeft;
this.Top = form1Top + (this.Top + e.Y) - mouseTop;
}
}转 自 :xrwang(无涯)