Консультация № 85651
06.05.2007, 02:43
0.00 руб.
0 2 2
Здравствуйте.
Будьте добры, подскажите. Как можно на С# передавать переменную из одной формы в другую?
А именно, имеется форма Glav на ней пользователь вводит координату х, у (они записываются в соответствующие переменные – х, у). Требуется передать эти координаты в форму по-имени Form2 для дальнейшего их использования.

Обсуждение

Неизвестный
06.05.2007, 03:22
общий
это ответ
Здравствуйте, Vckaif!
Есть несколько способов: если вы пишете веб-приложение, то самый простой способ - использование QueryString, то есть передать параметры вместе с URL в виде http://localhost/webapp/index.aspx?x=a&y=b, а потом вытащить эти параметры с помощью:
string x = Request.QueryString("x");
string y = Request.QueryString("y");
Также, если по каким-то причинам Вы не можете или не хотите использовать вышеописанный способ, можно положить значения этих переменных в объект Session:
Session("X")=x;
Session("Y")=y;
А потом в Вашей форме Form2 присваиваете значения Session("X") и Session("Y") соответствующим переменным.

Это два самых распространенных метода передачи значений переменных между разными формами.
Неизвестный
07.05.2007, 13:02
общий
это ответ
Здравствуйте, Vckaif! Если вы пишете Windows.Forms приложение,то самым простым способом передачи параметров является вызов диалога. Т.е. форму ввода параметров надо вызывать в диалоговом режиме, а после получения определенного DialogResult считать параметры. Например у вас есть форма Form1, в которой задаются параметры и определяются в виде паблик свойств, в ней кнопочка OK на нажатие которой свойству DialogResult присваиваем DialogResult.OK

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

using(Form1 form = new Form1())
{
if(form.ShowDialog() == DialogResult.OK)
{
//считываем параметры
this.Param1 = form.Param1;
this.Param2 = form.Param2;
}

}
Форма ответа