Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 14.11.2017, 18:49   #1
Fronzi
Пользователь
 
Регистрация: 11.03.2017
Сообщений: 15
Репутация: 10
По умолчанию Вывести данные из TextBox - C#

Нужно при записи в текстбоксы получить координаты и преобразовать их в Point. Вроде все правильно делаю, код компилируется, но при запуске выдает ошибку (на скрине). Как сделать так, чтобы вводимые координаты были точками треугольника? Должно работать, как на втором скрине.
Код:

public partial class Form1 : Form
    {
        int x1, y1, x2, y2, x3, y3;
        private Figure fig1;
        private Figure fig2;
        bool b = false;
        private Graphics gr;
        public Form1()
        {
            InitializeComponent();
            gr = pictureBox1.CreateGraphics();
            //string[] s1 = textBox1.Text.Split(' ');
           // int x1 = int.Parse(s1[0]);
           // string[] s2 = textBox2.Text.Split(' ');    //150,200 300,100 500,200
           // int x2 = int.Parse(s2[0]);
            /* x1 = Convert.ToInt32(textBox1.Text); //тут какой-то косяк
             y1 = Convert.ToInt32(textBox2.Text);
             x2 = Convert.ToInt32(textBox3.Text);
             y2 = Convert.ToInt32(textBox4.Text);
             x3 = Convert.ToInt32(textBox5.Text);
             y3 = Convert.ToInt32(textBox6.Text);
            x4 = Convert.ToInt32(textBox7.Text);
             y4 = Convert.ToInt32(textBox8.Text);
             x5 = Convert.ToInt32(textBox9.Text);
             y5 = Convert.ToInt32(textBox10.Text);
             x6 = Convert.ToInt32(textBox11.Text);
             y6 = Convert.ToInt32(textBox12.Text);
           
             Point[] PR1 = { new Point(x1, y1), new Point(x2, y2), new Point(x3, y3) }; */ //как надо чтобы работало
            //Point[] PR2 = { new Point(x4, y4), new Point(x5, y5), new Point(x6, y6) };  
            Point[] PR1 = { new Point(150, 200), new Point(300, 100), new Point(500, 200) };//как оно работает
 
            Point[] PR2 = { new Point(150, 400), new Point(300, 140), new Point(500, 400) };
            fig1 = new Figure() { FillColor = Color.Red };
            fig1.Path.AddPolygon(PR1);
            fig2 = new Figure() { FillColor = Color.Blue };
            fig2.Path.AddPolygon(PR2);
            
            
        }
       
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            
            using (var brush = new SolidBrush(Color.Wheat)) //рисование
            {
                
                    brush.Color = fig1.FillColor;
                    
                    gr.FillPath(brush, fig1.Path);
 
                    brush.Color = fig2.FillColor;
                    gr.FillPath(brush, fig2.Path);
                
            }
 
 
 
        }
        private void pictureBox1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void label14_Click(object sender, EventArgs e)
        {
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            using (var brush = new SolidBrush(Color.Yellow)) //закрашивание пересечения
            {
 
                var r = fig1.Region;
                r.Intersect(fig2.Region);
                gr.FillRegion(brush, r);
            }
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
           
        }
    }
}
class Figure
    {
        public GraphicsPath Path = new GraphicsPath();
        public Color FillColor;
 
        public PointF Center
        {
            get
            {
                var rect = Path.GetBounds();
                return new PointF(rect.X + rect.Width/2, rect.Y + rect.Height/2);
            }
        }
 
        public Region Region
        {
            get { return new Region(Path); }
        }
    }

Изображения
Тип файла: jpg ошибка.jpg (114.3 Кб, 1 просмотров)
Тип файла: jpg как должно.jpg (79.5 Кб, 1 просмотров)
Fronzi на форуме   Ответить с цитированием
Старый 14.11.2017, 21:57   #2
pu4koff
Профессионал
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,350
Репутация: 3515
По умолчанию

У вас конвертация строки в число идёт в конструкторе формы, а когда он выполняется, то в текстбоксах пустота и ни в какое число она превратиться не может. Суйте это в обработчик нажатия на кнопку и будет вам счастье.
__________________
http://coub.com/view/2hhtg
pu4koff вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не удаётся вывести CRC16 в textBox suraba Помощь студентам 5 24.01.2017 18:58
WinForms: Не выводит данные в textbox Jeckor C# (си шарп) 1 16.10.2015 06:24
вывести дату в textbox Алла94 Microsoft Office Excel 4 08.10.2014 15:57
Внести данные из Textbox Form2 в TextBox Form1 uralshans Microsoft Office Excel 1 07.01.2013 17:15
Из базы вывести в textbox.. Jonaitis Общие вопросы .NET 6 20.03.2010 14:57




01:05.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru