Визуальное наследование работает в VS2008?
У меня есть базовая форма. Я размещаю кнопки "ОК" и "Отмена" в правом нижнем углу формы и привязываю их "Вниз" и "Вправо".
Унаследованная форма не учитывает свойства привязки кнопок Ok и Cancel. Вот точные шаги для воспроизведения.
1- Создайте базовую форму с помощью кнопки, расположенной внизу / справа. Закрепите его там, внизу, справа. 3- Создайте новую форму, которая наследуется от базовой формы, созданной на шаге 1. 4- Увеличьте (в конструкторе) высоту или ширину второй формы. 5. Вы увидите, что кнопка точно не двигается, тем самым опровергая ее свойства привязки.
Я делаю что-то не так, или VS2008 просто не соблюдает свойства привязки элементов управления в базовой форме?
Благодарю.
4 ответа
Ммм следовал твоим шагам и работал отлично...
Убедитесь, что унаследованная форма не переопределяет некоторые свойства в конструкторе... Моя "Унаследованная форма" имеет только следующее:
private void InitializeComponent()
{
this.SuspendLayout();
//
// Form2
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.ClientSize = new System.Drawing.Size(296, 154);
this.Name = "Form2";
this.ResumeLayout(false);
}
Заметьте, что происходит что-то очень непослушное. Свойства частного поля базового класса изменяются (свойство Location), что полностью нарушает правила доступности.NET. Это работает до определенного момента, но не хватает газа, как только вы запустите свой проект. Исправить несложно, измените свойство Modifiers вашей кнопки с Private на Protected.
Меня устраивает.
Как вы создаете унаследованную форму? я пойду
- строить
- Добавить новый -> Форма Windows
- Выберите Windows Forms
- Выберите унаследованную форму
- Выберите оригинальную форму
Кнопка движется как положено.
Я задал неправильный вопрос. Не обращайте внимания на. Я повторно отправил вопрос в правильной форме: работает ли визуальное наследование с пользовательскими элементами управления в VS2008?