23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
1

Передача значения переменной из метода одного класса в метод другого класса

15.11.2014, 14:48. Показов 4614. Ответов 4
Метки нет (Все метки)

Добрый вечер!

Есть основная форма Form1 в которой есть метод private void button1_Click(object sender, EventArgs e) обрабатывающий нажатие кнопки "Ок".
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
private void button1_Click(object sender, EventArgs e)
        {
            string myLogin = textBox1.Text;
            string myPassword = textBox2.Text;
 
            string fundUsersQuery = @"SELECT users.login, users.password, users.type FROM users WHERE login='" + myLogin + "' AND password='" + myPassword + "'";
            MySqlCommand myCommand = new MySqlCommand(fundUsersQuery, myConnection);
            try
            {
                myConnection.Open();
            }
            catch
            {
                MessageBox.Show("Подключение отсутствует!", "Ошибка!!!");
            }
 
            MySqlDataReader rd = myCommand.ExecuteReader();
 
            string check_Login = "null";
            string check_Password = "null";
            string check_Type = "null";
            while (rd.Read())
            {
                check_Login = rd.GetString(0);
                check_Password = rd.GetString(1);
                check_Type = rd.GetString(2);
            }
            myConnection.Close();
            if (check_Login == myLogin && check_Password == myPassword)
            {
                this.Hide();
                Form2 fr2 = new Form2();
                fr2.ShowDialog(this);
            }
            else
            {
                MessageBox.Show("Не верный логин или пароль!", "Ошибка!!!");
            }
        }
Есть вторая форма Form2 и метод private void myDataLoad() загружающий список в listView в зависимости от значения переменной check_Type из метода первой формы.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void myDataLoad()
        {
            if (check_Type == "1")
            {
                for (int i = 0; i < 10; i++)
                {
                    listView1.Items.Add(new ListViewItem("Пункт меню номер 1_" + i));
                }
            }
            else if (check_Type == "0")
            {
                Form2 fr2 = new Form2();
                for (int i = 0; i < 10; i++)
                {
                    listView1.Items.Add(new ListViewItem("Пункт меню номер 2_" + i));
                }
            }
        }
Вот как мне передать значение переменной из метода первой формы в метод второй формы?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2014, 14:48
Ответы с готовыми решениями:

Каким образом можно из метода одного класса, вывести в метод другого класса текст всплывающего сообщения
Доброе время суток! Есть метод отрисовки всплывающего сообщения public void SetBalloonTip()...

Как вызвать из одного класса (для метода типа void) метод типа boolean другого класса?
ребят, только учусь и конечно, вопросов возникает много. ситуация вот в чем. есть массив. я должна...

Передача метода класса в качестве параметра для метода другого класса
Здравствуйте, Передо мной стоит такая задача. Необходимо разработать механизм, который бы мог...

Как правильно описать метод внутри другого метода одного и того же класса?
Извияюсь за возможно глупый вопрос, но ООП тема для меня новая.Вот так выглядел метод класса в...

4
229 / 207 / 92
Регистрация: 26.10.2012
Сообщений: 617
15.11.2014, 15:03 2
Можно в классе Form2 завести ссылку на необходимые данные (например, на саму Form1) и задавать их сразу после создания Form2.
C#
1
2
3
4
5
6
7
8
class Form2
{
     public Form1 form1Reference;//...
}
 
Form2 fr2 = new Form2();
fr2.form1Reference = this;
fr2.ShowDialog(this);
0
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
15.11.2014, 16:15  [ТС] 3
jetyb, можно пожалуйста более наглядный пример
0
Эксперт .NET
5340 / 4132 / 1187
Регистрация: 12.10.2013
Сообщений: 11,982
Записей в блоге: 2
15.11.2014, 16:30 4
SuLLeN, два самых верных и удобных способа: события и static class. Посмотрите FAQ по WinForm, там есть ответы на ваш вопрос.
1
229 / 207 / 92
Регистрация: 26.10.2012
Сообщений: 617
15.11.2014, 16:32 5
Лучший ответ Сообщение было отмечено SuLLeN как решение

Решение

Вот. В классе Form2 переменная _scheck_type хранит информацию
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
45
46
47
48
private void button1_Click(object sender, EventArgs e)
        {
            //....
            string check_Type = "null";
            while (rd.Read())
            {
                check_Login = rd.GetString(0);
                check_Password = rd.GetString(1);
                check_Type = rd.GetString(2);
            }
            myConnection.Close();
            if (check_Login == myLogin && check_Password == myPassword)
            {
                this.Hide();
                Form2 fr2 = new Form2(check_Type); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                fr2.ShowDialog(this);
            }
        }
public class Form2 : Form
{
   string _check_Type;//!!!!!!!!!!!!!!!!!!!!!!!!!!
   
public Form2(string checkType) //!!!!!!!!!!
{
       InicializeComponent();
        _check_Type = checkType;//!!!!!!!!!!!!!!!!!!!!
        ///....
}
private void myDataLoad()
        {
            if (_check_Type == "1") //!!!!!!!!!!!!!!!!!!
            {
                for (int i = 0; i < 10; i++)
                {
                    listView1.Items.Add(new ListViewItem("Пункт меню номер 1_" + i));
                }
            }
            else if (_check_Type == "0")//!!!!!!!!!!!!!!!
            {
                Form2 fr2 = new Form2();
                for (int i = 0; i < 10; i++)
                {
                    listView1.Items.Add(new ListViewItem("Пункт меню номер 2_" + i));
                }
            }
        }
 
}
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2014, 16:32

Что-то я не понимаю.Вызов метода одного класса из другого класса
Есть два класса первый содержит атрибуты объекта описывающие кнопку: имя, позиция, размер и тд... А...

Вызов метода одного класса внутри другого класса
PHP передача метода, с класса, в другой класс Столкнулся с проблемой не могу передать метод или...

Как получить доступ к переменной находящейся в одном методе из другого метода в пределах одного класса
Привет всем! Очередной вопрос новичка, допустим, у меня есть метод 1, в котором назначена...

Передача конструктору одного класса объект другого класса
Здравствуйте, кодеры. Столкнулся с проблемой. У меня есть 2 класса Camera и Game и...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.