Визуальное наследование работает в VS2008? - PullRequest
1 голос
/ 14 января 2009

У меня есть базовая форма. Я размещаю кнопки «ОК» и «Отмена» в правом нижнем углу формы и привязываю их «Внизу и справа».

Унаследованная форма не учитывает свойства привязки кнопок «ОК» и «Отмена». Вот точные шаги для воспроизведения.

1- Создайте базовую форму с помощью кнопки, расположенной внизу / справа. Закрепите его там, внизу, справа. 3- Создайте новую форму, которая наследуется от базовой формы, созданной на шаге 1. 4- Увеличьте (в конструкторе) высоту или ширину второй формы. 5- Вы увидите, что кнопка точно не двигается, тем самым опозорив свои свойства привязки.

Я что-то не так делаю или VS2008 просто не соблюдает свойства привязки элементов управления в базовой форме?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 14 января 2009

Ммм следовал твоим шагам и отлично работал ...

Убедитесь, что унаследованная форма не переопределяет некоторые свойства в конструкторе ... Шахта "Наследственная форма" имеет только это:

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);

}
2 голосов
/ 14 января 2009

Заметьте, что происходит что-то очень непослушное. Свойства частного поля базового класса изменяются (свойство Location), что полностью нарушает правила доступности .NET. Это работает до определенного момента, но не хватает газа, как только вы запустите свой проект. Исправить несложно, измените свойство Modifiers вашей кнопки с Private на Protected.

1 голос
/ 14 января 2009

У меня работает.

Как вы создаете унаследованную форму? Я иду

  1. Сложение
  2. Добавить новый -> Форма Windows
  3. Выбор форм Windows
  4. Выберите унаследованную форму
  5. Выберите исходную форму

Кнопка перемещается как положено.

...