Z-порядок конструктора VS2010

Я пытаюсь изменить z-порядок для какой-то закрепленной панели в дизайнер VS2010. Однако каждый раз, когда я сохраняю конструктор, закрываю его и снова открываю, z-порядок возвращается к тому, каким он был до того, как я его изменил.

Я пробовал использовать схему документа и контекстное меню SendToBack. но оба ведут себя одинаково. Я также заметил, что в другом решении, где он работает, файл .designer.cs не работает. На самом деле t изменится (я предполагал, что порядок добавления элементов управления будет определять z-порядок).

Есть ли другой способ сделать это? Я действительно не хочу делать это во время выполнения ...

EDIT

this.mainPanel.BackColor = System.Drawing.SystemColors.Control;
this.mainPanel.Controls.Add(this.pnlRangeSelector);
this.mainPanel.Controls.Add(this.headerAndFooterRowCounts);

pnlRangeSelector имеет Dock.Top headerAndFooterRowCounts имеет Dock.Right

при рендеринге, однако headerAndFooterRowCounts занимает всю правую часть своей родительской панели, в то время как pnlRangeSelector занимает левую часть.

Это наводит на мысль, что pnlRangeSelector находится сзади неправильно, как будто он должно быть.

enter image description here

ОБНОВЛЕНИЕ

int i = 0;
String output = String.Empty;
foreach (var c in this.mainPanel.Controls)
{
    if (c == pnlRangeSelector) { output += "RangeSelector at : " + i.ToString() + "\r\n"; }
    else if (c == this.headerAndFooterRowCounts) { output += "HeaderAndFooter at : " + i.ToString() + "\r\n"; }
    i++;
}
MessageBox.Show(output);

Похоже, порядок всегда RangeSelector = 0, HeaderAndFooter = 1. Даже если я вызываю следующее непосредственно перед этим:

this.mainPanel.Controls.SetChildIndex(this.pnlRangeSelector, 1);
this.mainPanel.Controls.SetChildIndex(this.headerAndFooterRowCounts, 0);
6
задан Ian 26 May 2011 в 12:54
поделиться