Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
2 / 2 / 2
Регистрация: 10.06.2012
Сообщений: 12

Класс связанный с компонентами формы

03.07.2012, 10:43. Показов 814. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача: У меня есть 7 CheckBox, 7 ComboBox, 7 TextBox на форме, и надо, чтобы при изменении состоянии любого из этих элементов менялись соответствующие поля класса (например ClassRecipes условно назовем его). И наоборот, когда считываем с таблицы в БД в содержимое ClassRecipes? компоненты на форме заполнялись и меняли своё состояние. Такое возможно реализовать и без класса с громоздкой кучей повторяющихся строк кода и огромнейшим набором условий. Но...неудобно же...Кто подскажет, даст верное направление?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.07.2012, 10:43
Ответы с готовыми решениями:

Управление компонентами формы из Main()
Всем доброго времени суток! Объясните плз как можно в static void Main() управлять элементами формы и добавлять их. Прочитал вот тут:...

Визуальное сопровождение при переходу между компонентами формы
Имеется 2 listbox'а. У обоих реализован переход между лист боксами стрелками влево-вправо(с клавиатуры). private void...

Передача параметров из дочерней формы в класс, унасле́дованный от главной формы
Добрый день, форумчане. Сильно не пинайте. Ситуация такая: из главной формы вызываю дочернюю на дочерней форме есть куча ComboBox...

3
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
03.07.2012, 11:07
Dergard, все однотипные контролы можно подписать на одно сыбытие (Ответы на 7 самых частых вопросов по WinForms), и в нем присваивать значения своему классу
1
2 / 2 / 2
Регистрация: 10.06.2012
Сообщений: 12
03.07.2012, 11:42  [ТС]
Еще варианты существуют?
0
9 / 9 / 4
Регистрация: 14.02.2012
Сообщений: 49
03.07.2012, 17:06
Ну на счет событий все верно вообще ...
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
//в классе
public delegate void DataTableChangedEventHandler(DataTable dt);
public event DataTableChangedEventHandler DataTableChanged;//событие того, что заполнился DataTable
 
//метод заполнения DataTable
private void Sample()
{
       ........... 
       DataTable dt = ........;            
       ...........
       if(DataTableChanged!=null) //вызов обработчика события если таковой имеется
          DataTableChanged(dt);
}
 
//вне класса
............
ClassRecipes my_class = new ClassRecipes();
my_class.DataTableChanged += new DataTableChangedEventHandle(My_method);
............
public void My_method(DataTable dt)
{
       textBox1.Text = dt.Rows[0][0].ToString();
       .......................................................
}
на счет того что, изменилось значение в текстбоксе изменить соответствующие значение в DataTable, ну можно к примеру в классе создать метод, который анализируя элемент управления вызвавыший обработку события определяет какое поле изменять, к примеру в таге хранить структуру или класс, содержащий информацию над какой ячейкой данный контрол всевластен

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
class CellProperty
{
      int column;
      int row;
 
      public int ColumnNumber
      {
          get{ return column; }
          set{ column = value; }
      }
 
      public int RowNumber
      {
          get{ return row; }
          set{ row = value; }
      }
 
      public CellProperty(int column_number, int row_number)
      {
            column = column_number;
            row = row_number;
      }
}
 
//при заполнении значений контролов
..................
textBox1.Tag = new CellProperty(1,2);
..................
//в событии изменения контрола,вызываем специальный метод из класса
..................
ChangeDataTableCellValue((CellProperty)((Control)sender).Tag).Row, ((CellProperty)((Control)sender).Tag).Column, value);
..................
//в классе
public void ChangeDataTableCellValue(int row, int column, object value)
{
      dt.Rows[row][column] = value;//с этой всей конструкцией надо еще строить проверку типа
}
не самое хорошее решение, но работать будет, да и лучшего пока что придумать не смог
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.07.2012, 17:06
Помогаю со студенческими работами здесь

Создать класс связанный с энергетикой
Помогите создать класс связанный с энергетикой, в классе должно быть несколько полей разных типов,также класс должен иметь несколько...

формы с компонентами
привет всем, я только начинаю учить дельфи, я написал первую прогу скомпилировал и сохранил, но вот когда открываю его снова в дельфи окно...

Копия формы со всеми компонентами
Здравствуйте! Подскажите пожалуйста: У меня есть созданная форма1 с разными компонентами на ней(кнопки, image и т.д.). Как мне...

Не открывается окно формы с компонентами
при очередном открытии созданного проекта (файл .dpr) открывается только окно кода , а форма с компонентами на ней не открывается,...

Компиляция формы с компонентами Fast Report
Установил компоненты FastReport версии 4 через файлы bpk положил компоненты fastReport на форму они подключили библиотеки frxclass и т.д....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru