【发布时间】:2014-09-21 07:24:12
【问题描述】:
我在移动面板上的标签时遇到问题。当我移动这个标签,到达顶部和左侧(0.0)时,标签尊重顶部和左侧。花费一半的屏幕,标签超出面板如图所示。
我的代码:
public partial class frmStandard : Form
{
Point startposition;
}
public void MouseDown(object sender, MouseEventArgs e)
{
startposition = e.Location;
}
public void MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
((Label)sender).Left = Math.Max(0, e.X + ((Label)sender).Left - startposition.X);
((Label)sender).Top = Math.Max(0, e.Y + ((Label)sender).Top - startposition.Y);
}
}
我需要标签不超过面板尺寸。代码中应该添加什么?
【问题讨论】:
-
这可能是 Z 顺序问题,标签消失在该工具栏下方。一个简单的解决方法是不将工具栏放在面板上。 MouseMove 代码也需要工作,一旦 Max() 完成工作,鼠标位置就会与标签位置不同步。避免使用 PointToScreen 出现问题。示例代码is here.