Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/111: Рейтинг темы: голосов - 111, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 30.10.2008
Сообщений: 3

Передача переменной Form2 в Form1

30.10.2008, 12:22. Показов 20660. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача: Имеются две формы Form1 и Form2. Form2 вызывается из Form1, после выбора пользователя в Form2 форма должна передать переменную index в Form1 и закрыться...
Я объявил в Form1 публичную переменную id и меняю её через Form2, но после закрытия Form2 переменная обнуляется... Вот код:

Form1:
C#
1
2
3
4
5
6
7
8
9
10
11
12
public partial class Form1 : Form
    {
       public int id=0;
       //...
       private void Form1_Activated(object sender, EventArgs e)
        {
           if(id!=0)
             {
                 label1.text=id.ToString();
              }
        }
     }
Form2:
C#
1
2
3
4
5
6
7
8
9
10
11
public partial class Form2 : Form
    {
      //...
     int index=1
      //...
       private void Button1_Click(object sender, EventArgs e)
        {
           Form1 frm=new Form1();
           frm.id=index;
           this.Close();
        }
Подскажите что я делаю не правильно???
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.10.2008, 12:22
Ответы с готовыми решениями:

Передача значения из Form1 в Form2
C# только изучаю, поэтому вопрос простой. Есть 2 формы: public partial class Form1 : Form { public Form1() ...

Передача данных из Form1 в Form2
прочитал FAQ но так и не понял. Нужно из Form1.textBox1 передать данные в Form2.textBox2.

Передача значения из DataGridView form1 в form2 textBox
Подскажите пожалуйста: есть форма, которая содержит datagriedview нужно передать значение из столбца N в form2 textbox Подскажите как...

8
Администратор
 Аватар для mik-a-el
87835 / 53156 / 249
Регистрация: 10.04.2006
Сообщений: 13,764
30.10.2008, 12:28
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

Цитата Сообщение от d_krikov Посмотреть сообщение
Form1 frm=new Form1();
Вот эта форма не имеет никакого отношения к исходной Form1.
Смотри здесь:
Как из одной формы передать данные в другую?
Управление одной формой из другой.
1
0 / 0 / 0
Регистрация: 30.10.2008
Сообщений: 3
30.10.2008, 13:44  [ТС]
Спасибочки, а не то я совсем мозги вывихнул. Два дня бился..
0
0 / 0 / 1
Регистрация: 18.01.2011
Сообщений: 13
13.04.2011, 18:15
Простите за глупый вопрос, я учу c# только второй день и возможно не так себе представляю как это делается. у меня есть несколько форм в основной форме сделал переменную "i" которой присваиваются значения 1,2 или 3. В второй форме от значения этой переменной будет зависеть внешний вид и функциональность (будут прятаться некоторые окна и кнопки). но вот проблема я немогу понять каким образом я могу перенести значение "i" из Form1 в Form2?
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
14.04.2011, 08:50
zeone, Ответы на 7 самых частых вопросов по WinForms
0
0 / 0 / 1
Регистрация: 18.01.2011
Сообщений: 13
14.04.2011, 10:29
Я читал только немного не понял как работать с переменной 8( можете сделать простой пример именно с переменной?
0
3 / 3 / 2
Регистрация: 12.03.2011
Сообщений: 11
14.04.2011, 10:40
В 1ой форме, где нужно вызвать 2ю:
C#
1
2
3
Form2 frm = new Form2();
frm.Owner = this;
frm.ShowDialog();
Во второй форме:
C#
1
2
Form1 frm = (Form1)this.Owner;
frm.id = index;
2
0 / 0 / 1
Регистрация: 18.01.2011
Сообщений: 13
14.04.2011, 14:11
Можете прокомментировать действия
что в данном случае является переменной? Если это пример который позволяем использовать все данные из формы 1 то почему пишет при попытке вызова переменной " "TwoFroms.Form1.i" недоступен из-за его уровня защиты"
А когда решил сделать в точности примеру получил следущее
""TwoFroms.Form1" не содержит определения для "id" и не был найден метод расширения "id", принимающий тип "TwoFroms.Form1" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку)"
Скажите где накосячил?
Вот пример того как пытаюсь отправить собственно ничего нового ненайдете:
Form1
C#
1
2
3
4
5
6
7
private void admin_int_Click(object sender, EventArgs e)
        {
            Form2 frm = new Form2();
            frm.Owner = this;
            Form1.ActiveForm.Hide();
            frm.Show();
        }
Form2
C#
1
2
3
4
5
6
        public void  test()
        {
            Form1 frm = (Form1)this.Owner;
            frm.id = index;
                
        }
Если нужно могу весь код показать

Добавлено через 2 часа 8 минут
Смотрите я хочу сделать примерно такое:
Form 1
Тут при авторизации я оприделенному пользователю присваиваю значение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 public void login_Click_1(object sender, EventArgs e)
        {
            i = 0;
            if (logi == "zeone")
            {
                if (pass == "5126016")
                {
                    i = 1;
                    
                    label4.Text = i.ToString();// тут использовал чтоб проверить значение переменной
                }
                else
                {
                    MessageBox.Show("Логин или пароль неверный");
                    //MessageBox.Show(i.ToString );
 
                }
            }
                if (logi == "boss")
                {
                    if (pass == "1111")
                    {
                        i = 2;
                        label4.Text = i.ToString();
                    }
                    else
                    {
                        MessageBox.Show("Логин или пароль неверный");
                    }
                }
                if (logi == "user")
                {
                    if (pass == "0000")
                    {
                        i = 3;
                        label4.Text = i.ToString();
                    }
                    else
                    {
                        MessageBox.Show("Логин или пароль неверный");
                    }
                }
            
        }
А во второй хочу сделать примерно следующее:
Form2
C#
1
2
3
4
5
6
7
8
        private void okno(object sender, EventArgs e)
          {
          if (i==1)
          {
          add_usr.Enabled = false;
          add_usr.Hide ();
                        }
// Ну и так далее
з.ы. Подскажите как правильно описать авторизацию, чтоб при любом левом запросе оно писало ошибку а не просто молчало?
з.з.ы. Учетки в юудущем я занесу просто в БД это так для глазо замыливания в универе что типа чтото делаю 8)
0
3 / 3 / 2
Регистрация: 12.03.2011
Сообщений: 11
14.04.2011, 22:41
TwoFroms.Form1.i
- если недоступен, значит в Form1 переменная i не объявлена публичной, поставь public int i = 0;

Я так понимаю у тебя есть форма 1, в нее идет ввод логина и пароля, далее эти данные обрабатываются и если все найс, тогда открывается вторая форма?

На форуме не особо удобно писать, могу в асе помочь, чем смогу 7105998
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.04.2011, 22:41
Помогаю со студенческими работами здесь

Как сделать доступ к переменной из Form2 в Form1?
Например: В Form1 есть 2 кнопки ( Input и Change ); 1.Создаём Form2; При нажатии на Input открывается Form2 в которой есть один...

Как вывести значения переменной из Form2 в listBox на Form1?
Подскажите как вывести значение переменной типа string из Form2 в listBox который находится на Form1

Через Form1 открывают Form2 там открывается Form3 которая меняет данные в Form1. Но они не меняются
В первой форме Main по нажатию кнопки вызываю другую форму private void Button_AddVetrina(object sender, EventArgs e) { ...

Из Form2 в Form1
В form1, после нажатия на кнопку открывается form2. Там можно выбрать и просмотреть картинки. Так вот в чем вопрос, мне нужно что бы после...

Из form1 в form2
Запарился уже искать то что нужно! В общем при нажатии на форм 1 считываются координаты и в текстовом формате заносятся в буфер обмена, и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru