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

Обработка события формы в другом классе

26.08.2018, 22:32. Показов 3272. Ответов 3

Author24 — интернет-сервис помощи студентам
я в C# совсем зелен, подскажите пожалуйста, как можно обработать событие формы в методе другого класса?
C#
1
2
3
4
5
6
7
8
9
10
11
12
// открытие нового файла из главного меню
        private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // проверка, если нажата отмена
            if (openFileDialog1.ShowDialog() == DialogResult.Cancel)
                return;
            else
            {
                //открытие файла - можно ли перенести в метод другого класса и здесь сослаться на него?
                string filePath = openFileDialog1.FileName;
                string fileContent = System.IO.File.ReadAllText(filePath);
                string fileName = System.IO.Path.GetFileNameWithoutExtension(filePath);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.08.2018, 22:32
Ответы с готовыми решениями:

Обработка нажатия клавиши в другом классе
Здравствуйте, подскажите, как можно отправить значение нажатой клавиши в метод другого класса?

Обработка события при нажатии на кнопку в классе
Как обьявить в классе , какое действие будет при нажатии на кнопку вкладка my_Class_1.cs ...

Обработка события Timer.Tick не в классе форме
Есть массив классов, в каждом экземпляре класса есть таймер и булева переменная. Класс не находится...

Генерация элементов формы в другом классе
Некоторые элементы формы генерируются в другом классе. Они динамические, удобнее так :). Класс -...

3
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
26.08.2018, 23:28 2
IvanKip, Не совсем понятно чего вы хотите, наверное так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 public static class MyClass
    {
 
        public static string filePath { get; set; }
 
        public static void OpenFile()
        {
           OpenFileDialog ofd = new OpenFileDialog();
            if (ofd.ShowDialog() == DialogResult.Cancel)
                return;
            else
            {
                
                filePath = ofd.FileName;
                string fileContent = System.IO.File.ReadAllText(filePath);
                string fileName = System.IO.Path.GetFileNameWithoutExtension(filePath);
            }
 
        }
        }
//В другом классе
MyClass.OpenFile();
MessageBox.Show(MyClass.filePath)
0
5 / 5 / 0
Регистрация: 10.05.2018
Сообщений: 49
27.08.2018, 00:10  [ТС] 3
Спасибо за ответ, но, как мне кажется, это не совсем то.. в моем случае
C#
1
private void openToolStripMenuItem_Click(object sender, EventArgs e)
это событие формы, а вашем случае OpenFile() - просто метод класса.
Т.е. у меня в MainForm происходит событие нажатие на "открыть файл" - openToolStripMenuItem_Click, а обрабатывать его я хотел бы в отдельном методе, а не городить все в MainForm.cs
0
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
27.08.2018, 10:16 4
IvanKip, Просто повесьте хандлер после InitializeComponent();
C#
1
openToolStripMenuItem.Click += new EventHandler(MyClass.OpenFile);
0
27.08.2018, 10:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.08.2018, 10:16
Помогаю со студенческими работами здесь

Использование элемента формы в другом классе.
Подскажите, пожалуйста. Создаю Win-приложение (язык C#). Имеется стандартный класс Form1. Также...

Почему если делегат события определен в другом классе, то не получается создать генерацию события?
В проекте №1 объявлен делегат для события: delegate void StateEventHandler(State state); А в...

Выполнение события в другом классе
Имеется два класса: Основной и GUI. В GUI я создал саму форму. Можно ли как-нибудь выполнить...

Создание элемента формы в другом классе
Привет всем, есть такой метод public void Elem() { ListBox lstBox = new...


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

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

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