Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Изменение размера UserControl в Panel  (Прочитано 8688 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« : 08-08-2008 14:30 » 

Имеется свой контрол, который просто загружает и отрисовывает картинку. Загрузка картинки происходит в конструкторе и сразу же размер контрола настраивается на размер картинки.

Код:
this.Width = _image.Width;
this.Height = _image.Height;

В дизайнере на форму кидается панелька с автоскроллом и в неё помещается этот самый контрол, но скролл работает только в пределах дефолтного размера контрола.

Как сообщить панельке об изменении размера контрола? Или же само изменение размеров контрола ошибочно?

!!! похожая тема https://forum.shelek.ru/index.php/topic,15478.0.html или нет?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 14-08-2008 14:06 » 

А как помещается? Надеюсь, без автоматического растягивания на всю панельку.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #2 : 14-08-2008 14:55 » new

Нет, в смысле - да, без автоматического растягивания. Контрол заведомо больше панельки, а должен стать ещё больше после загрузки картинки.

Новые данные (занимаюсь этим в свободное от работы время, поэтому медленно) я сделал отображение окружностей на этом вложенном контроле:

Код:
             for (int i = 0; i < 5; i++)
            {
                gr.DrawEllipse(new Pen(_brush),
                    i * this.ClientSize.Width / 10,
                    i * this.ClientSize.Height / 10,
                    this.ClientSize.Width - 2 * this.ClientSize.Width / 10 * i,
                    this.ClientSize.Height - 2 * this.ClientSize.Height / 10 * i);
            }

Так они говорят мне, что ClientSize нифига не поменялся после загрузки картинки. Те его размеры остались ткими же как в дизайнере. Те я так понимаю, что размеры моего контрола не изменяются в принципе.  Жаль Делаю я это так (уже попробовал и клиенскую область устанавливать) может тут косяк?

Код:
        public MapperBackGround()
        {
            this.SetStyle(ControlStyles.AllPaintingInWmPaint  |
                          ControlStyles.OptimizedDoubleBuffer |
                          ControlStyles.ResizeRedraw, true);

            InitializeComponent();

            try
            {
                _image = Image.FromFile("d:\\bkImage.jpg");
                this.Width = _image.Width;
                this.Height = _image.Height;
                this.ClientSize = new Size(_image.Width,_image.Height);
                Debug.WriteLine("New size: w=" + this.Width + "; h=" + this.Height);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Open bkImage error: " + ex.Message);
                _image = null;
            }
        }

зы Сообщение Debug.WriteLine("New size: w=" + this.Width + "; h=" + this.Height); показывает мне правильные размеры равные размеру картинки, которая примерно в три раза больше размеров контрола в дизайнере. Может это не в конструкторе надо делать?
« Последнее редактирование: 14-08-2008 14:59 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines