Рисование линий с помощью значений из datagridview
У меня есть приложение для windows. [^]
Когда я нажимаю на кнопку вычислить, я делаю некоторые вычисления, используя эти текстовые поля.
с помощью этих вычислений я получаю некоторые значения и записываю их в datagridview [^]
В этот момент мне нужно нарисовать несколько линий, используя те значения, которые в основном являются координатами моих точек..
Некоторые люди сказали мне создать picturebox и создать событие paint.
Поэтому я попробовал это;
Pen myPen = new Pen(Color.Black); private void pictureBoxDraw_Paint(object sender, PaintEventArgs e) { myPen.Width = 2; if (binary > 0) { Point point1 = new Point(10, 20); Point point2 = new Point(10, 40); e.Graphics.DrawLine(myPen, point1, point2); } else { } } private void buttonDraw_Click_1(object sender, EventArgs e) { binary = 1; pictureBoxDraw.Invalidate(); } private void buttoncleardraw_Click(object sender, EventArgs e) { binary = 0; pictureBoxDraw.Invalidate(); }
Когда я изменюсь
Point point1 = new Point(10, 20);к
Point point1 = new Point(Convert.ToInt32(dataGridViewCrestGeo.Rows[0].Cells[0].Value), Convert.ToInt32(dataGridViewCrestGeo.Rows[0].Cells[0].Value));
Я получаю такое сообщение об ошибке [^]
Мне нужно найти способ нарисовать эти линии, когда я нажимаю на кнопку рисования.
Я инженер-строитель, и все эти вещи действительно сложны для меня. Я был бы признателен за любую помощь. Спасибо.
Что я уже пробовал:
Pen myPen = new Pen(Color.Black); private void pictureBoxDraw_Paint(object sender, PaintEventArgs e) { myPen.Width = 2; if (binary > 0) { Point point1 = new Point(Convert.ToInt32(dataGridViewCrestGeo.Rows[0].Cells[0].Value), Convert.ToInt32(dataGridViewCrestGeo.Rows[0].Cells[0].Value)); Point point2 = new Point(10, 40); e.Graphics.DrawLine(myPen, point1, point2); } else { } } private void buttonDraw_Click_1(object sender, EventArgs e) { binary = 1; pictureBoxDraw.Invalidate(); } private void buttoncleardraw_Click(object sender, EventArgs e) { binary = 0; pictureBoxDraw.Invalidate(); }
[no name]
Не знаю, почему это так сложно для вас. Сообщение об ошибке точно сообщает вам, в чем заключается проблема. преобразование.Функция ToInt32 не может преобразовать значения в целые числа, поскольку строки не содержат целочисленных значений.
Meriç Kıranoğlu
ХМ, есть ли способ рисовать без преобразования этих значений в целое число? Например;
стоимость dataGridViewCrestGeo.Строки[0].Ячейки[0].Значение 4.522267. Я могу округлить это значение до 4,52. Могу я его нарисовать?
F-ES Sitecore
попробуйте decimal.Parse(dataGridViewCrestGeo.Rows[0].Ячейки[0].Вместо значение). Вы должны быть осторожны, чтобы у вас не было случайных пробелов, новых строк и т. д., И это значение содержит буквально "4.522267" и ничего больше. Как только это десятичное число, если вам нужно, чтобы оно было int, вы обычно можете привести его
int x = (int)decimalVar;
Это, очевидно, потеряет некоторую точность.
[no name]
4.52 независимо от того, как вы округляете его, это не целое число.