0 / 0 / 1
Регистрация: 27.09.2015
Сообщений: 121
|
|
1 | |
Как получить доступ к списку List из другой формы?29.02.2016, 02:40. Показов 4094. Ответов 14
Метки нет (Все метки)
0
|
29.02.2016, 02:40 | |
Ответы с готовыми решениями:
14
Как получить доступ к контролу из другой формы Как получить доступ из одной формы к другой? Как получить доступ к элементам управления другой формы Как получить доступ к объекту класса из другой формы? |
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
29.02.2016, 02:47 | 2 |
Ответы на данный вопрос тут, он за день по несколько раз задается...
0
|
0 / 0 / 1
Регистрация: 27.09.2015
Сообщений: 121
|
|
29.02.2016, 02:50 [ТС] | 3 |
EvilFromHell, т.е. нужно вызвать метод Invoke?
0
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
29.02.2016, 02:52 | 4 |
Green01, причем тут это? Invoke-это для доступа к контролам формы из другого потока. А GUI весь находится в одном потоке(обычно, если не извращаться). Там по ссылке написано про передачу данных между классами разными способами, в частности, про события, которые являются наиболее правильным способом это делать.
1
|
0 / 0 / 1
Регистрация: 27.09.2015
Сообщений: 121
|
|
29.02.2016, 03:06 [ТС] | 5 |
EvilFromHell, спасибо за ссылку и ответ) но все же непонятно как именно к листу обратиться форма обязательно должна быть дочерней?
Добавлено через 8 минут я просто к контролам еще понимаю как обратиться, но List ведь вроде не контрол
0
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
29.02.2016, 03:29 | 6 |
Green01, какая разница, объект какого класса передавать? Суть от этого ничуть не меняется.
Нет. Опять же, форма, или любой другой класс-не имеет особо значения.
0
|
0 / 0 / 1
Регистрация: 27.09.2015
Сообщений: 121
|
|||||||||||
29.02.2016, 06:30 [ТС] | 7 | ||||||||||
К сожалению, без примера с List не могу разобраться! может кто-нибудь еще поможет?
Добавлено через 49 минут А вообще проблема такая: Мне нужно передать строку из базы данных в форму редактирования в соответствующие текстбоксы и комбобокс. Данные передаются по клику на строку datagridview. Источником комбобокса является List
Добавлено через 2 минуты а это код, которым передаю строку в форму редактирования:
Как привязать List к главной форме? Добавлено через 56 минут
0
|
0 / 0 / 1
Регистрация: 27.09.2015
Сообщений: 121
|
|
01.03.2016, 10:01 [ТС] | 8 |
подскажите пожалуйста какое-нибудь решение
0
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
||||||
01.03.2016, 10:19 | 9 | |||||
Green01, в FAQ, на которое я кидал ссылку, приведен пример как раз про базу.
По коду-мне не слишком понятно, в чем же проблема. Что мешает у ResortUpdateForm просто сделать публичный метод, который будет искать что-то в листе исходя из нужных параметров и возвращать значение? Ведь у вас ResortUpdateForm все одно открывается через ShowDialog, а соответственно, инициатором передачи ей быть и не надо. Достаточно вызывать после ShowDialog этот самый метод, о котором я писал выше. Даже и событий не надо. Лист у вас, как я вижу, создан локально, поэтому к нему вы обращаться сможете только через свойство DataSource у комбобокса. Не проще ли объявить его полем? Да, и вот так делать:
0
|
0 / 0 / 1
Регистрация: 27.09.2015
Сообщений: 121
|
|
01.03.2016, 10:36 [ТС] | 10 |
EvilFromHell,
а почему это дурной тон? вроде много подобных примеров встречается
0
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
01.03.2016, 10:42 | 11 |
Сообщение было отмечено Green01 как решение
Решение
Green01, сделайте лучше во второй форме конструктор, принимающий параметры, или соответствующий метод, который будет расставлять значения по текстбоксам. А делать контролы публичными и что-то на них дергать откуда-то извне-это нарушает инкапсуляцию и создает путаницу. Вы потом сами не разберетесь, что происходит на второй форме, если контролы на ней будут дергаться еще из 10ти мест извне. Надо, чтобы вся работа с контролами какой-то формы происходила внутри самой же формы. А извне были доступны только соответствующие методы, которые уже все выставляют. И желательно, чтобы они были названы так, чтобы без комментариев было ясно, что они делают.
1
|
0 / 0 / 1
Регистрация: 27.09.2015
Сообщений: 121
|
|
01.03.2016, 10:50 [ТС] | 12 |
EvilFromHell, спасибо за ответ! да нужно пробовать делать, как Вы говорите, хотя это еще слишком для меня сложно) на счет ссылки, там ведь получают данные из формы и из класса, про базу вроде ничего нет?
и еще вопрос: даже с дочерними формами так нельзя делать?
0
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
||||||
01.03.2016, 11:18 | 13 | |||||
Green01, вообще по правилам хорошего тона любой класс(в том числе форма) должен инкапсулировать в себе какой-то функционал, и его не должно быть можно ввести в недопустимое состояние извне. Класс должно быть можно перенести в другой проект без особых заморочек, и там с ним работать. А так, как у вас, можно, допустим, написать:
Добавлено через 15 минут Green01, про базу действительно нет, невнимательно смотрел, но от DataTable до базы совсем недалеко А суть задачи очень близкая.
1
|
0 / 0 / 1
Регистрация: 27.09.2015
Сообщений: 121
|
|
01.03.2016, 11:44 [ТС] | 14 |
но только туда еще ADO.NET каким-то образом надо накрутить
а вообще вот про все эти методы и конструкторы, о которых Вы выше написали можно почитать где-нибудь, чтобы на примерах объясняли? MSDN пока тяжело воспринимать
0
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
01.03.2016, 11:58 | 15 |
Green01, ну про основы ООП инфы море по первой же ссылке в гугле. Где наиболее понятно-с ходу не скажу. На счет ADO.NET-это все лишь набор классов для работы с базой из dllки System.Data.dll. Класс DataTable(и DataSet), кстати говоря, тоже оттуда, и одно из его основных предназначений-как раз таки работа с базой.
0
|
01.03.2016, 11:58 | |
01.03.2016, 11:58 | |
Помогаю со студенческими работами здесь
15
Получить доступ к ComboBox другой формы Как из дочерней формы получить доступ к элементу управления родительской формы Как из второй формы получить доступ ко всем формам первой формы? Как получить доступ к элементам формы из другого обычного класса (не из второй формы) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |