如何找到黄线和绿线之间的距离?

时间:2014-10-05 03:17:46

标签: c# .net winforms

黄线显示menuStrip1控件的下边框。

绿色表示pictureBox1控件的顶部。

我想计算两个控件之间的空间(与黄色和绿色两条线之间的空间相同)。

这就是我在pictureBox1绘制事件中所做的:

private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            int distance;
            float penWidth = 15F;
            Pen myPen = new Pen(Brushes.Green, (int)penWidth);
            Pen myPen1 = new Pen(Brushes.Red, (int)penWidth);
            e.Graphics.DrawRectangle(myPen, 0, 0, pictureBox1.Width - 1, pictureBox1.Height - 1);
            e.Graphics.DrawLine(myPen1, 0, pictureBox1.Height, pictureBox1.Width, pictureBox1.Height);
            e.Graphics.DrawLine(myPen1, 0,0,0,pictureBox1.Height);
            e.Graphics.DrawLine(myPen1, pictureBox1.Width, 0, pictureBox1.Width, pictureBox1.Height);
            distance = menuStrip1.Height - pictureBox1.Height;
        }

这是menuStrip1绘制事件:

private void menuStrip1_Paint(object sender, PaintEventArgs e)
        {
            float penWidth = 15F;
            Pen myPen1 = new Pen(Brushes.Yellow, (int)penWidth);
            e.Graphics.DrawLine(myPen1, 0, menuStrip1.Height, menuStrip1.Width, menuStrip1.Height);
        }

结果是:

Yellow-Green

在pictureBox1绘制事件和menuStrip1绘制事件中,我用红色绿色和黄色绘制了它们所呈现的线条:宽度或高度或左或右或顶部或底部?我画了红线手册也是绿色和黄色,但我怎么知道底线是底部还是右边或左边?

1 个答案:

答案 0 :(得分:-1)

如果你想计算两个对象之间的空间逻辑很简单你必须访问它的y位置对象然后在两个位置之间进行划分picturebox.y - menustrip.y

我刚刚为你编写了简单的代码

        int x = menuStrip1.Location.Y;
        int p = pictureBox1.Location.Y;
        int result = p - x;
        MessageBox.Show(result.ToString());

我刚刚测试了这些代码并且运行良好的好运好友