|
自己レスです。
結局、以下のソースでFlowLayoutPanel内のコントロールの並び替えが実現できました。
ご指南ありがとうございましたm(_ _)m
//FlowLayoutPanel内のコントロールの並び替え(テキストボックスのみ)
private void FlowLayoutPanelSort()
{
try
{
DataTable dt = new DataTable();
dt.Columns.Add("StrText", typeof(string));
dt.Columns.Add("StrCtrlName", typeof(string));
dt.Columns.Add("Ctrl", typeof(TextBox));
//flp_01に設定されているテキストボックスをdtに格納
foreach (Control Ctrl in flp_01.Controls)
{
if (Ctrl is TextBox)
{
DataRow row = dt.NewRow();
row["StrText"] = ((TextBox)Ctrl).Text;
row["StrCtrlName"] = ((TextBox)Ctrl).Name;
row["Ctrl"] = (TextBox)Ctrl;
dt.Rows.Add(row);
}
}
// ソートされたデータビューの作成
DataView dv = new DataView(dt);
dv.Sort = "StrText";
//並び順の設定
int IDx = 0;
foreach (DataRowView drv in dv)
{
flp_01.Controls.SetChildIndex(((TextBox)drv["Ctrl"]), IDx);
IDx++;
}
dt.Dispose();
dv.Dispose();
}
catch (Exception ex)
{
//エラー時のメッセージ
}
}
|