Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заставить перерисоваться детей 
:(
    Опции темы
cupper
Дата 22.6.2011, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 525
Регистрация: 29.11.2006

Репутация: нет
Всего: 1



Есть базовая абстрактная форма. На ней находит RichBox, с выставленны свойствами Anchor
Код

this.rbxMessage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                        | System.Windows.Forms.AnchorStyles.Right)));

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

this.ClientSize = new System.Drawing.Size(686, base.Size.Height);

размер формы изменяется, но вот RichBox не растягивается при этом. Не знаю как решить эту проблему. Напрашивается что я должен как то вызвать событие о том что изменился размер окна и нужно перерисовать всех его детей, но какой событие вызвать и какие параметры ему передать я не могу найти.
PM MAIL   Вверх
-Mikle-
Дата 22.6.2011, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



А зачем this.ClientSize? this.Size не помогает?


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
cupper
Дата 22.6.2011, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 525
Регистрация: 29.11.2006

Репутация: нет
Всего: 1



Цитата(-Mikle- @ 22.6.2011,  16:02)
А зачем this.ClientSize? this.Size не помогает?

никакой разницы нет. И так и так пробовал. и через this и через base. Invalidate тоже вызывал.
PM MAIL   Вверх
cupper
Дата 23.6.2011, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 525
Регистрация: 29.11.2006

Репутация: нет
Всего: 1



Возможно так просто нельзя делать. Тогда как можно реализовать следующее:
Есть базовая форма, на ней richbox с выставленными anchor (лева, право, топ). Далее я наследуюсь от этой формы, но каждый наследник должен иметь свой. Перерасчитывать координаты и размеры всех элементы базовой формы в ручную, совсем не хочется. 
PM MAIL   Вверх
-Mikle-
Дата 24.6.2011, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



Что-то не пойму в чем проблема или что нужно. Вот сделал базовую форму, наследовался от нее. Ничего вручную не делал. Анчоры установленные в базовой форме работают сами по себе как и ожидалось. Зачем нужно что-то вручную менять?

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  WindowsFormsApplication3.zip 22,21 Kb


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
cupper
Дата 27.6.2011, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 525
Регистрация: 29.11.2006

Репутация: нет
Всего: 1



Цитата(-Mikle- @ 24.6.2011,  13:03)
Что-то не пойму в чем проблема или что нужно. Вот сделал базовую форму, наследовался от нее. Ничего вручную не делал. Анчоры установленные в базовой форме работают сами по себе как и ожидалось. Зачем нужно что-то вручную менять?

Вы меня не поняли. 
У меня есть базовая форма, 200 на 200, на ней какой то элемент с выставленными свойствами
Код

this.rbxMessage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                        | System.Windows.Forms.AnchorStyles.Right)));
this.rbxMessage.Location = new System.Drawing.Point(12, 13);
...
this.ClientSize = new System.Drawing.Size(655, 505);


далее мне нужно создать две другие формы, с немного разным содержанием. Я наследуюсь от этой, с так как количество элементов в каждом ребенке будет разное, то и размеры форм соответственно будут разные, и мне приходится изменять размер базовой формы. Я вот когда я изменяю размер наследника на другой
Код

this.Size = new System.Drawing.Size(835, 580);

у меня rbxMessage остается прежних размеров и не растягивается.
PM MAIL   Вверх
cupper
Дата 27.6.2011, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 525
Регистрация: 29.11.2006

Репутация: нет
Всего: 1



PS. короче я переопределил у базовой формы OnResize и в ручную пересчитываю размеры и координаты всех элементов, и теперь работает независимо от того кто меняет размер формы, человек или код.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.