|
Модераторы: Partizan, gambit |
|
mrbrooks |
|
|||
трололомен Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 17 Всего: 306 |
Думаю нет.
Другое дело не понятно зачем нужна ссылка на родительский класс в конструкторе дочернего (при условии что конструктор дочерней формы перегружен). Чем вызван такой изврат? |
|||
|
||||
IAmHell |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 19.10.2009 Репутация: нет Всего: нет |
Всё затевалось для того чтобы из Form2 можно было обращаться к контролам и функциям, расположенным на Form1 и наоборот. Прочитав топик, я сделал вывод что такой вариант наиболее корректный с точки зрения ООП. Если есть другие варианты добиться такой функциональности, с удовольствием ознакомлюсь
|
|||
|
||||
mrbrooks |
|
|||
трололомен Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 17 Всего: 306 |
это да. правда из недостатков такого подхода стоит отметить не возможность использования конструктора по умолчанию. если это не критично - то все гуд. Инкапсуляция, как говорится наше все. Я к примеру использую собственные события в дочерних формах, которые обрабатываю в главной. |
|||
|
||||
LifeOfWorld |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 12.7.2009 Репутация: нет Всего: нет |
Вопрос по WPF. Перенаправили сюда =)
Допустим есть 2 xaml файла (file1.xaml, file2.xaml) В file1.xaml объявляется элемент ComboBox: <ComboBox x:Name="cb" Grid.Column="1" VerticalAlignment="Center" Width="50" Height="25" FontSize="15"/> В file2.xaml.cs должен использоватся код вроде этого: ... cb.Items.Add(i + 1); // Filling ComboBox ... Но file2.xaml не знает что такое "cb" Вопрос: Как правильно обратиться к cb в file2.xaml.cs? Решения вроде обратиться из любого места file2.xaml.cs не подходят. Form frmMain = Application.OpenForms["frmMain"]; Button btn1 = (Button)frmMain.Controls["button1"]; [http://forum.codenet.ru/showthread.php?t=37091] |
|||
|
||||
Partizan |
|
|||
Let's do some .NET Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 8 Всего: 67 |
LifeOfWorld, что-то мне подсказывает, что для решения Вашей задачи, Вы избрали неверный подход...
что Вы хотите получить от такого взаимодействия? -------------------- СУВ, Partizan. |
|||
|
||||
maxfox |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 29.7.2009 Репутация: нет Всего: нет |
Товарищи! Помогите, пожалуйста, по указанной теме!
Есть две формы: основная и дочерняя. Основная - это та, что создаётся по умолчанию:
- на форме есть вьюпорт. При вызове метода ReDrawWin - вьюпорт перересовывается. Так же на форме есть кнопка. При нажатии на ней открывается вторая форма:
-На второй форме расположены некие объекты управления(ввод данных) Мне необходимо, чтобы действии на второй форме - при работе с объектами управления, обновлялся вьюпорт основной формы. То есть, по сути, нужно вызвать метод ReDrawWin. Как это сделать? Я пытаюсь, как это описывали выше, передать ссылку главной формы, во вторую форму, через конструктор второй формы:
- однако компилятор видит ошибку в записи: Form1^ MainForm - и пишет error C2061: синтаксическая ошибка: идентификатор "Form1". Не могу понять, в чём дело. Ведь Form1 - это имя класса, а не переменная, т.е. вроде должно быть всё нормально..... Подскажите плиз - как правильно сделать!! |
||||||
|
|||||||
maxfox |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 29.7.2009 Репутация: нет Всего: нет |
Вроде бы я нашёл решение. воспользовавшись классом Delegate
- при помощи него я создал ссылку на нужный метод в основной форме, и передал эту ссылку во вторую форму. Теперь я могу использовать эту ссылку, где угодно во второй форме. |
|||
|
||||
GX777 |
|
||||
Шустрый Профиль Группа: Участник Сообщений: 70 Регистрация: 29.3.2008 Репутация: нет Всего: нет |
прочитал данную тему... Итак у меня есть 2 формы: MainForm и Form1.
у MainForm есть баттон1 и текстбокс 1. У Form1 есть только кнопка. мне нужно из формы Form1 изменить текстбокс1 у MainForm при нажатии на кнопку. Пишу на Form1:
обработчик события на кнопку в главной форме (MainForm):
но после всех манипуляций я могу изменять только текст шапки у MainForm. textbox1.text я по прежнему не могу менять. Что я делаю не так? |
||||
|
|||||
A5uKa |
|
||||
TЋ♥s F1rȜ iƧ BurȠiƞg Профиль Группа: Awaiting Authorisation Сообщений: 1928 Регистрация: 30.8.2008 Репутация: 3 Всего: 16 |
А что вы вообще пытались сделать ? там в начале топика есть примеры , а тут была особая задумка я полагаю ?.. |
||||
|
|||||
GX777 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 70 Регистрация: 29.3.2008 Репутация: нет Всего: нет |
мне вообще всего лишь нужно из form1 изменить текст в текстбоксе на Mainform. Здесь гдето читал что так(написано выше) можно это сделать но у меня не работает.Никак не могу толком понять как правильно обращаться к обьекту другой формы
|
|||
|
||||
A5uKa |
|
|||
TЋ♥s F1rȜ iƧ BurȠiƞg Профиль Группа: Awaiting Authorisation Сообщений: 1928 Регистрация: 30.8.2008 Репутация: 3 Всего: 16 |
По нажатию кнопки делаешь Mainform.textBox1.Text="ля-ля-ля"; Другое дело что такое Mainform. Обычно когда создаётся проект MainForm у тебя уже есть ... ведь так ? у меня в данный момент нету под рукой студии, но помойму она создаётся как-то так Application.Run(MainForm()); можно конечно вытаскивать её и отсюда через Application.Forms или что-то такое, но лучше обозвать MyForm = new MainForm(); Application.Run(MyForm); соответственно у MyForm правильная видимость и доступность должна быть. Ну может ещё как я не знаю, я пишу консольные приложения. |
|||
|
||||
GX777 |
|
||||
Шустрый Профиль Группа: Участник Сообщений: 70 Регистрация: 29.3.2008 Репутация: нет Всего: нет |
с консолью и у меня проблем не было.
не катит у текстбокса модификатор private, я конечно могу поставить на public... а MainForm эьто просто я так обозвал первыую форму,а Form1 вторую. в общем у меня вот такая фигня: Присоединённый файл ( Кол-во скачиваний: 3 ) Yebotnya.rar 31,89 Kb |
||||
|
|||||
GX777 |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 70 Регистрация: 29.3.2008 Репутация: нет Всего: нет |
плин,забыл поменять имя файла(((прошу не банить я случайно
Присоединённый файл ( Кол-во скачиваний: 1 ) Yebotnya.rar 31,89 Kb |
|||
|
||||
surfrider |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 9.8.2010 Репутация: нет Всего: нет |
Как сделать сабж на C++/CLI?
Нашел похожую тему http://forum.vingrad.ru/topic-199937.html , но его вариант меня совсем не устраивает. В общем, есть главная форма Form1 и дочерняя форма, пусть Form2. В классе главной (form1.h) есть такие строки:
Задача, как и везде: обратиться к определенным переменным или объектам главной формы(form1) из дочерней формы (form2). Я пытался решить, как тут описывали: передача указателя на родительскую форму в дочернюю (Form2 ^childWindow = gcnew Form2(this)). Но проблема: в дочерней форме в таком случае не определен класс Form1 и как его определить, я не знаю. Ведь если в файле form2.h написать #include "Form1.h", то вылезет миллион ошибок. Какие есть варианты, кроме того, чтобы создавать отдельный класс, реализующий это? |
|||
|
||||
KelTron |
|
||||||
Опытный Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 11 Всего: 38 |
Как вариант, но думаю запарит вручную выдирать обработчики из хедера и переность в цпп.
Form1.h
Form2.h
Form2.cpp
-------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
||||||
|
|||||||
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |