Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Параллельное считывание с формы


Автор: Kapillar 28.3.2009, 16:53
Суть в следующем:есть форма.есть меню.при нажатии на File->New должна выпрыгивать новая форма,где будуь задаваться параметры для нового проекта.как обычно вобщем.Суть в следующем.В параметрах указываются два значения: ширина и высота прямоугольника.после того как они ввелись должна нажиматься кнопка ввода точек.Сысл таков: пользователь в параметрах ввел значения прямоугольника и нажал на кнопку ручного ввода точек,затем эта форма должна как бы перейти на второй план и должна открыться первая форма на которой уже отображен прямоугольник с введенными параметрами.Дальше пользователь накликает в этом прямоугольнике мышкой и координаты сохранятся после чего уже кликает ОК на форме с параметрами и она исчезнет.Дальше уже юзер работает с проектом.

Вобщем когда юзер вводит параметры прямоугольника и жмет кнопку на главной форме почему то не рисуется прямоугольник....

код следующий:
считывание в окне параметров:
Код

...
{
rectw=Convert.ToInt32(recW.Text);
recth=Convert.ToInt32(recW.Text);
SetP=true;
}
...


сама прорисовка в главной форме в методе Paint:
Код

...
if (NewProject.SetP)
{
Graphics g=e.Graphics;
Rectangle MainRect=new Rectangle(20,30,NewProject.rectw,NewProject.rectw);
g.Rectangle(Pens.Black,MainRect);

}

...

Автор: Kapillar 28.3.2009, 18:02
Проще говоря для начала: в одной форме открывается другая.Во второй вводятся параметры.Как сделать так чтобы не закрывая вторую в первой отобразились параметры введенные во второй?

Автор: Certain 28.3.2009, 18:49
Цитата(Kapillar @ 28.3.2009,  18:02)
Вобщем когда юзер вводит параметры прямоугольника и жмет кнопку на главной форме почему то не рисуется прямоугольник....

в событии нажатии кнопки на 2-й форме нужно вызывать функцию Invalidate() 1-й формы

Автор: Kapillar 28.3.2009, 19:10
ты имеешь в виду в событии нажатии кнопки формы Form2 написать Form1.ActiveForm.Invalidate() ? я тоже думал так но или я неправильно пишу или что то другое ибо так не работат....хотя на первый взгляд логика правильная. 

Автор: Certain 28.3.2009, 20:12
Цитата(Kapillar @ 28.3.2009,  19:10)
ты имеешь в виду в событии нажатии кнопки формы Form2 написать Form1.ActiveForm.Invalidate() ? я тоже думал так но или я неправильно пишу или что то другое ибо так не работат....хотя на первый взгляд логика правильная.

Form1.Invalidate() хватит... 

Автор: Kapillar 28.3.2009, 20:28
спасибо!не один час над этой глупостью попарился....

Автор: Certain 28.3.2009, 20:30
всегда пожалуйста, тему закрывай

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)