Ваш код правильно сформирован и компилируется без ошибок.
В качестве примечания вы можете удалить верхний уровень const
в объявлении функции :
void Do_Some_String_Operation(const char* pString);
Этот верхний уровень const
является функцией детали реализации и не должны попадать в его интерфейс. Вы можете добавить это const
в определение функции .
посмотрите на порядок, в котором они добавляются к форме в yourForm.designer.cs
при рассмотрении кода, сгенерированного разработчиком Form1.designer.cs, он будет выглядеть примерно так:
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(658, 160);
this.Controls.Add(this.flowLayoutPanel7);
this.Controls.Add(this.flowLayoutPanel6);
this.Controls.Add(this.flowLayoutPanel5);
this.Controls.Add(this.flowLayoutPanel4);
this.Controls.Add(this.flowLayoutPanel3);
this.Controls.Add(this.flowLayoutPanel2);
this.Controls.Add(this.flowLayoutPanel1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
отметьте, как это было создано, Вы добавили панель 1 сначала затем 2 и т.д., но поскольку код пробегает его, добавят 7 первых затем 6.
этот код будет в InitializeComponent () функцией, сгенерированной разработчиком.
Почему Вам нужны они для выполнения в определенном порядке?
Я не полагался бы на разработчика для хранения порядка, который Вы хотите.. я отсортировал бы средства управления мой сам:
var flowpanelinOrder = from n in this.Controls.Cast<Control>()
where n is FlowLayoutPanel
orderby int.Parse(n.Tag.ToString())
select n;
/* non linq
List<Control> flowpanelinOrder = new List<Control>();
foreach (Control c in this.Controls)
{
if (c is FlowLayoutPanel) flowpanelinOrder.Add(c);
}
flowpanelinOrder.Sort();
* */
foreach (FlowLayoutPanel aDaysControl in flowpanelinOrder)
{
MessageBox.Show(aDaysControl.Tag.ToString());
}
Это - действительно проблема?
Пока UI работает правильно (с точки зрения порядка вкладки, например), я рекомендовал бы не сделать предположения о порядке, в котором они перечисляются.
Править: Спасибо за объяснение Вашего требования более подробно. Я думаю, что все еще рекомендовал бы против использования порядка, что они хранятся в наборе Средств управления. Всегда лучше полагать, что эти детали реализации 'непрозрачны'. Вам связали тег с каждым управлением, таким образом, можно использовать это для идентификации корректного управления. Для ускорения обработки Вы могли создать массив с 7 элементами, который ссылается на средства управления ординалом:
FlowLayoutPanel[] panels = new FlowLayoutPanel[7];
foreach(FlowLayoutPanel panel in this.Controls)
{
panels[(int)panel.Tag] = panel;
}
// Now, you can reference the panels directly by subscript:
panels[2].BackColor = Color.Aquamarine;
Хотя я поместил некоторую регистрацию типа для создания этого кода более устойчивым!