Цитата(tereres @ 19.3.2006, 09:46 ) | | Язык C#. Имеется окно с TextBox-ом, Кнопкой (Button). Написана функция, которая по координатам, которые по замыслу должны вводится в TextBox-е и при нажатие на Кнопку(Button), должна в окне рисовать определённый рисунок(какой - не важно... там линни и всё такое...). Вопрос - как соединить координаты введённые в TextBox-e с Кнопкой и Функцией? И как сделать чтобы после ввода координат (координаты - цифры) и нажатии на Кнопку вызывалась Функция? В функции при этом должен заполнится массив из введёных координат... Спасибо... |
Для начала, http://www.firststeps.ru/dotnet/dotnet1.html. После того, как освоили понятия "класс", "метод", "событие", "форма" и "элемент управления" пишем простейший код:- на форме находится TextBox, Button и Panel (на последней отрисовывается наша фигура)
- на событие Click кнопки подписан обработчик button1_Click
- на событие Paint панели подписан обработчик panel1_Paint
- в обработчике события Click берём текст из TextBox и преобразуем в массив структур Point
- в обработчике события Paint проверяем массив на null и если массив заполнен - рисуем линии по координатам
Пример, принимающий из TextBox массив чисел, разделённых точкой с запятой, и рисующий фигуру заданную введёнными координатами:
| Код | using System; using System.Drawing; using System.Windows.Forms;
namespace WindowsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
// массив координат точек, по которым строится фигура Point[] points = null;
// обработчик нажатия кнопки на форме private void button1_Click(object sender, EventArgs e) { // разбиваем текст из TextBox на массив подстрок, разделённых ';' string[] str_numbers = textBox1.Text.Split(';');
// создаём массив координат точек, длина которого = количеству пар координат points = new Point[str_numbers.Length / 2]; // проходим в цикле по строковым координатам, заполняем массив points int i = 0; for(int j = 0; j < points.Length; j++, i+=2) points[j] = new Point(int.Parse(str_numbers[i]), int.Parse(str_numbers[i + 1]));
// обновляем панель panel1.Refresh(); }
// обработчик события Paint панели private void panel1_Paint(object sender, PaintEventArgs e) { // если массив координат задан, рисуем соединённые линии по координатам if(points != null) e.Graphics.DrawLines(Pens.Black, points); } } } |
|