У меня возникла эта проблема при создании нового пользовательского элемента управления UserControl. В деталях я создаю производный UserControl с DataGridView, у которого для свойства Anchor установлено значение [Left, Top, Right, Bottom], чтобы DataGridView мог изменять размер всякий раз, когда изменяются размеры контейнера UserControl. Но когда приложение запускается, результат точно не ожидается. Правый и нижний края DataGridView всегда выходят за пределы границы UserControl. Чтобы понять эту проблему, я отладил и обнаружил, что всякий раз, когда создается UserControl, его размер по умолчанию всегда равен [100, 100], несмотря на то, что мы установили его на [800, 600] или что-то еще. Я думаю, что это причина проблемы. Когда мы проектируем UserControl, мы используем больший размер, но во время выполнения его размер по умолчанию равен [100, 100], поэтому автоматический расчет свойства Anchor становится неожиданным.
Может ли кто-нибудь дать мне подсказку о том, как решить эту проблему? У меня есть одно грязное решение, но иногда оно дает сбои. Мое решение заключается в том, что в обработчике событий OnLoad UserControl я устанавливаю правый и нижний край дочерних элементов управления. Это решение отлично работает для большинства моих пользовательских элементов управления UserControl, но иногда меня неправильно понимают. Иногда проблема все еще возникает. Это сбивает меня с толку.
Может ли кто-нибудь дать четкое объяснение и полное решение этого вопроса?
заранее спасибо