带有C#中其他行的十字光标

时间:2011-08-24 10:48:50

标签: c# winforms

如何在屏幕截图上使用这样的帮助行制作十字光标:

enter image description here

我知道如何制作crosshire光标:

 this.Cursor = System.Windows.Forms.Cursors.Cross;

也可以是这样的:

enter image description here

像在CAD软件中一样。

2 个答案:

答案 0 :(得分:4)

这是我使用的代码。 x和y是尺寸。在我的情况下,我可以在光标上有一些文本,这是名称。如果你想要点或短划线,那么你需要用笔来做。

   private Cursor crossCursor(Pen pen, Brush brush, string name, int x, int y) {
            var pic = new Bitmap(x, y);
            Graphics gr = Graphics.FromImage(pic);

            var pathX = new GraphicsPath();
            var pathY = new GraphicsPath();
            pathX.AddLine(0, y / 2, x, y / 2);
            pathY.AddLine(x / 2, 0, x / 2, y);
            gr.DrawPath(pen, pathX);
            gr.DrawPath(pen, pathY);
            gr.DrawString(name, Font, brush, x / 2 + 5, y - 35);

            IntPtr ptr = pic.GetHicon();
            var c = new Cursor(ptr);
            return c;
        }

答案 1 :(得分:0)

只需创建两个标签框 lab_X_Axis lab_Y_Axis 。 在图表mousemove功能代码如下所示..

private void chart1_MouseMove(object sender, MouseEventArgs e)
{
    lab_X_Axis.Location = new Point((e.X), 21);
    lab_Y_Axis.Location = new Point(76, e.Y);
}

private void Form1_Load(object sender, EventArgs e)
{
    lab_X_Axis.AutoSize = false;
    lab_Y_Axis.AutoSize = false;
    lab_X_Axis.Text="";
    lab_Y_Axis.Text="";
    lab_X_Axes.Size = new Size(1, 300);
    lab_Y_Axes.Size = new Size(300, 1);
}