powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# куда вписать класс
9 сообщений из 9, страница 1 из 1
c# куда вписать класс
    #38216142
gfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть Form1 и Form2.
В первой форме есть класс, методы которого нужно так же использовать и во второй форме. Для этого мне нужно полностью копировать класс из кода первой формы.
Можно ли куда-то скопировать этот класс (1 раз написать), чтобы он был доступен из всех форм?
...
Рейтинг: 0 / 0
c# куда вписать класс
    #38216150
beg-in-er
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gfan,
статик метод , не слышали?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
class Form1:Form
{
 public static void T1(){}
}
class Form2:Form
{
 public void T2()
{
  Form1.T1();
}
}
...
Рейтинг: 0 / 0
c# куда вписать класс
    #38216165
gfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну может слышал, может не слышал. Какая разница?
Спасибо за помощь.
...
Рейтинг: 0 / 0
c# куда вписать класс
    #38216206
gfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если Form2, наследуется от Form1, то на Form2 переносятся все кнопки с первой формы. И еще, почему-то, при нажатии на форму2 (для открытия окна редактирования "designer", чтобы менять расположение кнопок и т.д.) выполняется код первой формы, хотя программу я не запускал. Мне это не нужно.
Как мне получить доступ к полю или методу из Form1 без этого бреда? Ведь 2 класса находятся в одном namespace...
...
Рейтинг: 0 / 0
c# куда вписать класс
    #38216267
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gfanМожно ли куда-то скопировать этот класс (1 раз написать), чтобы он был доступен из всех форм?
Объяви его отдельно от Form1. Лучше в отдельном файле.

beg-in-er
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
class Form1:Form
{
 public static void T1(){}
}
class Form2:Form
{
 public void T2()
{
  Form1.T1();
}
}


Так лучше не делать т.к. это создает ненужную связь между формами. Лучше вынести функцию в отдельный helper класс:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
// Util.cs
static class Util
{
 public static void T1(){} 
}

// Form2.cs
class Form2:Form
{
 public void T2()
{
  Util.T1();
}
}



gfanЕсли Form2, наследуется от Form1, то на Form2 переносятся все кнопки с первой формы. И еще, почему-то, при нажатии на форму2 (для открытия окна редактирования "designer", чтобы менять расположение кнопок и т.д.) выполняется код первой формы, хотя программу я не запускал. Мне это не нужно.
Не делай так. Дизайнер VS это не поддерживает да и смысла в наследовании форм с содержимым нет.

gfanКак мне получить доступ к полю или методу из Form1 без этого бреда?
Например передать одной форме ссылку на другую.

gfanВедь 2 класса находятся в одном namespace...
В контексте данного вопроса это не имеет никакого значения.
...
Рейтинг: 0 / 0
c# куда вписать класс
    #38216368
gfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо, создал отдельно новый класс, запихнул туда класс, который я использую в разных местах - работает нормально.
...
Рейтинг: 0 / 0
c# куда вписать класс
    #38216379
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gfanсоздал отдельно новый класс, запихнул туда класс
Надеюсь под "новым классом" ты имел в виду новый файл. Потому что объявление класса внутри класса имеет смысл только если внутренний класс является деталью реализации внешнего (то есть нужен только ему).
...
Рейтинг: 0 / 0
c# куда вписать класс
    #38216398
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazilegfanЕсли Form2, наследуется от Form1, то на Form2 переносятся все кнопки с первой формы. И еще, почему-то, при нажатии на форму2 (для открытия окна редактирования "designer", чтобы менять расположение кнопок и т.д.) выполняется код первой формы, хотя программу я не запускал. Мне это не нужно.
Не делай так."Делай так"... "Не делай так"... На самом деле это зависит от...

Хотя удивляться, что выполняется код родительского объекта - нонсенс...
Выполняется, как минимум, конструктор "по умолчанию", обработчики событий и методы get и set свойств родительского класса (формы).
bazileДизайнер VS это не поддерживаетНу, Вы же этого не пробовали - зачем человека обманываете?! :)
На самом деле, наследование дизайна и функционала форм прекрасно наследуется - точно так же как и с другими объектными типами. И среда VS с этим прекрасно справляется.
bazileда и смысла в наследовании форм с содержимым нет.Ну-ну... :)
Хардкодинг для приведения в "единый стиль" каждой отдельной (из множества разнофункциональных) форм, типа, содержит в себе высший сакральный стиль...
...
Рейтинг: 0 / 0
c# куда вписать класс
    #38216438
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvНу, Вы же этого не пробовали - зачем человека обманываете?! :)
На самом деле, наследование дизайна и функционала форм прекрасно наследуется - точно так же как и с другими объектными типами. И среда VS с этим прекрасно справляется.
Ошибся. Думал что это не поддерживается. Отсюда такая категоричность в суждениях :)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# куда вписать класс
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]