1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 52
1

Нажатие кнопки из формы один в форме 2

11.09.2012, 15:46. Показов 8425. Ответов 7
Метки нет (Все метки)

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

Если использовать
C#
1
Form2.button1.Click();
то выдает ошибку "для нестатического поля метода или свойства требуется ссылка на объект"
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.09.2012, 15:46
Ответы с готовыми решениями:

Нажатие кнопки приводит к изменению цвета формы и заголовка кнопки
Помогите пожалуйста так сделать : "Нажатие кнопки приводит к изменению цвета формы на синий, а...

Нажатие кнопки на форме
Делаю так: private void textBox1_KeyUp(object sender, KeyEventArgs e) { ...

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

Нажатие кнопки на форме из VBA
Извините за глупый вопрос, а как можно из VBA нажать на кнопку на форме? Какой код на это действие?

7
9 / 7 / 4
Регистрация: 22.05.2012
Сообщений: 54
11.09.2012, 15:57 2
на первой форме

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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace twoForms
{
    public partial class Form1 : Form
    {
        Form2 frm2;
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            frm2 = new Form2();
            frm2.Show();
        }
 
       public void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show("я из 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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace twoForms
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        public Form1 frm1 = new Form1();
        private void button1_Click(object sender, EventArgs e)
        {
           frm1.button2_Click(this,null);
        }
    }
}
2
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 52
11.09.2012, 17:48  [ТС] 3
Выдает ошибку

""WindowsFormsApplication11.Form1.button1_Clic k недоступен из-за его уровня защиты"

Добавлено через 42 минуты
Разобрался спасибо!! Надо было поставить "Public"

Добавлено через 42 минуты
Не корректно работает. Если в кнопке будет
C#
1
2
i = textBox1.Text;
            MessageBox.Show(i);
то сообщение будет пустое....
0
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 52
14.09.2012, 11:44  [ТС] 4
Все еще нужна помощь...
0
Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
15.09.2012, 17:09 5
Sendello, Вам нужно сохранить ссылку на форму 1
(то-есть передать ее в конструктор формы 2)
А потом уже делайте что хотите.
//простой вариант
0
Эксперт .NET
4430 / 2090 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
15.09.2012, 17:17 6
А так не вариант?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System.Windows.Forms;
 
namespace WinForms_Something
{
    public class Helper
    {
        public static void ShowMessage(string text)
        {
            ShowMessage(null, text);
        }
 
        public static void ShowMessage(IWin32Window owner, string text)
        {
            MessageBox.Show(owner, text);
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Windows.Forms;
 
namespace WinForms_Something
{
    public partial class Form1 : Form
    {
        private Form2 f;
        public Form1()
        {
            InitializeComponent();
            f = new Form2();
            f.Show();
        }
 
        private void Button_Click(object sender, EventArgs e)
        {
            Helper.ShowMessage(this, "Я из первой формы");
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Windows.Forms;
 
namespace WinForms_Something
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
 
        private void Button_Click(object sender, EventArgs e)
        {
            Helper.ShowMessage(this, "Я из второй формы");
        }
    }
}
Добавлено через 1 минуту
Ну, или создай, какой-то открытый метод, и вызывай его, а не обработчик нажатия по кнопке.
0
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 52
17.09.2012, 00:17  [ТС] 7
Цитата Сообщение от Noob.net Посмотреть сообщение
Sendello, Вам нужно сохранить ссылку на форму 1
(то-есть передать ее в конструктор формы 2)
А потом уже делайте что хотите.
//простой вариант
А можно пример?
0
Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
17.09.2012, 10:36 8
C#
1
2
i = textBox1.Text;
            MessageBox.Show(i);
сообщение пусто,если textBox1.Text пуст.

Добавлено через 7 минут
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
using System;
using System.Text;
using System.Windows.Forms;
 
namespace FormRef
{
    public partial class Form2 : Form
    {
        private Form1 MainForm;
        public Form2(Form1 f)
        {
            MainForm = f;
            InitializeComponent();
            MainForm.Text = "Hi";
        }
 
        private void Form2_FormClosed(object sender, FormClosedEventArgs e)
        {
            MainForm.Text = "Form1";
        }
    }
}
/////////////////////////
///использовать так
using System;
using System.Text;
using System.Windows.Forms;
 
namespace FormRef
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2(this);
            f2.Show();
        }
    }
}
Можно сделать еще через Own,но я не разобрался с ним,если кто даст с ним пример,буду благодарен.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.09.2012, 10:36
Помогаю со студенческими работами здесь

Программное нажатие кнопки на чужой форме
Всем привет! Борюсь с такой задачей: Как можно програмно нажать кнопку на чужой форме? хэндел...

Обработать нажатие кнопки Minimize на форме
Как обработать нажатие по кнопке Minimize? Попробовал так, но не работает: private void...

Поймать нажатие кнопки на дочерней форме
Суть вопроса: На родительской форме открываю новую форму и там выбираю нужное мне значение. Как...

Связать нажатие и отжатие клавиши клавиатуры и кнопки на форме
Приветствую! Простейшая с виду задача. Нужно сделать так, чтобы при нажатии на клавишу М,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru