2013-12-12 4 views
0

Я изо всех сил стараюсь сделать мой макет лучше в приложении для форм Windows.Winforms control layout issue

Это то, что я в основном должен делать. У меня есть label и picturebox.

Текст установленного на этикетке времени выполнения программы и длины текста будет меняться время от времени.

мне нужно разместить свой PictureBox сразу после текста концов (2-3 пространства между)

я пытался добиться этого путем установки Anchor и Dock свойств. но не получил, как мне нужно. Элементы управления все еще перекрываются.

Что мне нужно сделать, чтобы исправить это?

+1

Поместите их в панель управления потоком. –

+0

Я наследую ярлык от другой формы –

+0

Что вы имеете в виду, что наследуете ярлык из другой формы? – Savaratkar

ответ

0

Вы можете поместить изображение на этикетке события изменения текста:

private void label1_TextChanged(object sender, EventArgs e) 
    { 
      int labelLocationX = lbl.Location.X; 
      int imageLocationX = labelLocationX + lbl.Size.Width + 10; 
      img.Location = new Point(imageLocationX, lbl.Location.Y); 
    } 
+0

10 для некоторого места после этикетки .... – Savaratkar

+0

Я искал способ сделать это, установив свойство, а не обрабатывая его позади кода. –

0

Вы можете использовать FlowLayoutPanel

Это также было упомянуто в этой ссылке FlowLayoutPanel

0

Чтобы получить эту работу вам необходимо (как уже упоминалось выше) a FlowLayoutPanel. Но дополнительно вам нужны еще некоторые свойства, необходимые для выполнения этой работы:

  • Сначала добавьте FlowLayoutPanel в вашу форму или пользовательский контроль.
  • Установите Dock на Fill панели управления потоком.
  • Добавить Label в панель макета потока.
  • Добавить PictureBox в панель макета потока.
  • Установите Width и Height на изображение в поле с нужными значениями.
  • Установите MinimumSize.Heigth этикетки на высоту изображения.
  • Установите TextAlign этикетки на MiddleLeft
  • Установите Padding.Right этикетки до 10 (или любое пространство, которое вам нравится).

Теперь, если вы измените текст этикетки, поле с картинкой всегда будет выровнено с размером метки.

0

Как говорили другие, создайте панель для хранения обоих предметов. Задайте только свойства в окне «Док-станция для заполнения» и «Док-станция». Добавьте сначала панель изображений на панель, затем после этого ярлык. Тем не менее, стыковка делает недействительными любые назначения полей. Можно было вставить туманную панель высотой 10 между меткой и изображением.