Курсор перекрестия с дополнительными строками в C # - PullRequest
2 голосов
/ 24 августа 2011

как сделать курсор с перекрестием с помощью таких строк на скриншотах:

enter image description here

Я знаю, как сделать перекрестный курсор:

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

также может быть примерно таким:

enter image description here

как в программном обеспечении САПР.

Ответы [ 2 ]

4 голосов
/ 24 августа 2011

Это код, который я использую. х и у размеры. В моем случае у меня может быть текст на курсоре, и это имя. Если вам нужны точки или тире, вам нужно сделать это пером.

   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;
        }
0 голосов
/ 18 июня 2014

Просто создайте два поля меток как lab_X_Axis и lab_Y_Axis .В диаграмме код функции перемещения мыши, как показано ниже ..

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...