Уроки Windows Forms C++/C#
Рисование линий в PictureBox MVS C++/C#В этом уроке вы приступите к изучению базовых приёмов рисования в "PictureBox". И в данном уроке будет рассмотрено то, как нарисовать линию заданной длины, цвета и в заданном месте поля "PictureBox". Для этого нам понадобятся: 4 "textBox", 1 "button", и конечно же "PictureBox". Примерный вид программы:
То, как изменить цвет фона элемента (“PictureBox”) рассматривается в этом уроке. В “textBox”ы мы будем записывать начальное и конечное значение координат поля рисования: две координаты – одна точка, ещё две координаты – ещё одна точка, которая соединяется с предыдущей, образуя отрезок, заданного в коде программы цвета. Значение каждой координаты, получаемое из текстового поля, мы будем конвертировать в "int"-Convert::ToInt32(textBox1->Text); А для хранения значения создаётся массив, его нужно объявить в верху программы: int m_p[4];
Ну а теперь, пожалуй, приступим к коду самой программы, который вы можете видеть ниже. В нём, как видите, вызвано событие "PictureBox1_Paint", о том, как вызвать событие элемента рассматривается в “этом уроке”. В событии "button1_Click" есть строка - pictureBox1->Refresh(); с помощью неё каждый раз, когда пользователь будет вводить новые координаты, изображение в "PictureBox" будет заново прорисовываться.
C++
#pragma endregion private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { this->Text = "Рисуем Линию"; button1->Text = "Рисовать"; } private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { m_p[1] = Convert::ToInt32(textBox1->Text); m_p[2] = Convert::ToInt32(textBox2->Text); m_p[3] = Convert::ToInt32(textBox3->Text); m_p[4] = Convert::ToInt32(textBox4->Text); pictureBox1->Refresh(); } private: System::Void pictureBox1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) { // Рисуем линию e->Graphics->DrawLine(System::Drawing::Pens::Green, m_p[1], m_p[2], m_p[3], m_p[4]); } }; }
C#
namespace Risovanie_1_ { public partial class Form1 : Form { int[] m_p = new int[5]; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.Text = "Рисуем Линию"; button1.Text = "Рисовать"; } private void button1_Click(object sender, EventArgs e) { m_p[1] = Convert.ToInt32(textBox1.Text); m_p[2] = Convert.ToInt32(textBox2.Text); m_p[3] = Convert.ToInt32(textBox3.Text); m_p[4] = Convert.ToInt32(textBox4.Text); pictureBox1.Refresh(); } private void pictureBox1_Paint(object sender, PaintEventArgs e) { // Рисуем линию e.Graphics.DrawLine(System.Drawing.Pens.Green, m_p[1], m_p[2], m_p[3], m_p[4]); } } }
Результат: Следующий урок >>