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

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

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

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

Если использовать
C#
1
Form2.button1.Click();
то выдает ошибку "для нестатического поля метода или свойства требуется ссылка на объект"
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.09.2012, 15:46
Ответы с готовыми решениями:

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

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

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

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

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  [ТС]
Выдает ошибку

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

Добавлено через 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  [ТС]
Все еще нужна помощь...
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
15.09.2012, 17:09
Sendello, Вам нужно сохранить ссылку на форму 1
(то-есть передать ее в конструктор формы 2)
А потом уже делайте что хотите.
//простой вариант
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
15.09.2012, 17:17
А так не вариант?
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  [ТС]
Цитата Сообщение от Noob.net Посмотреть сообщение
Sendello, Вам нужно сохранить ссылку на форму 1
(то-есть передать ее в конструктор формы 2)
А потом уже делайте что хотите.
//простой вариант
А можно пример?
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
17.09.2012, 10:36
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.09.2012, 10:36
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru