У меня есть встроенный элемент управления с несколькими элементами управления вводом, несколькими текстовыми полями, полем со списком и списком. Одно текстовое поле, поле со списком, список и пара командных кнопок привязаны так, чтобы они изменяли размеры формы. Поле со списком привязано слева, сверху и справа, поле со списком закреплено со всех четырех сторон, а кнопки закреплены снизу и справа. Все они изменяют размер и сохраняют свою позицию правильно. Проблема в том, что я пытаюсь закрепить текстовое поле, как в поле со списком. Он бежит с правой стороны формы во время выполнения, когда закреплен справа. Тем не менее, у меня нет этой проблемы ни с одним из существующих элементов управления в форме, которые привязаны справа, все они остаются в положении, как они должны.
Я попытался добавить дополнительное текстовое поле и поле со списком и закрепить их справа, но они тоже выходят за правый край формы. Почему существующие элементы управления, за исключением одного, работают так, как они должны, но один элемент управления и новые становятся слишком широкими?
Для справки, я манипулировал сгенерированным дизайнером кодом, чтобы изменить порядок операторов так, чтобы привязка происходила после установки позиции и ширины, но это не помогло. Вот код для неправильного текстового поля:
//
// txtComments
//
this.txtComments.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtComments.Location = new System.Drawing.Point(430, 6);
this.txtComments.Name = "txtComments";
this.txtComments.Size = new System.Drawing.Size(166, 20);
this.txtComments.TabIndex = 25;
И код для правильного поведения комбобокса:
//
// cbMacroList
//
this.cbMacroList.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.cbMacroList.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbMacroList.FormattingEnabled = true;
this.cbMacroList.Location = new System.Drawing.Point(128, 78);
this.cbMacroList.Name = "cbMacroList";
this.cbMacroList.Size = new System.Drawing.Size(468, 21);
this.cbMacroList.TabIndex = 30;
this.cbMacroList.SelectedIndexChanged += new System.EventHandler(this.cbMacroList_SelectedIndexChanged);
И последнее замечание: все эти элементы управления вышли из формы, когда я решил, что мне нужно будет повторно использовать функциональность, предоставляемую формой, в другой форме. Я выбрал все элементы управления, вырезал их и затем вставил в новый UserControl. До перехода на UserControl все они работали нормально. Это начало проявляться после миграции.