私の現在のプロジェクトでは、ユーザーは TableLayoutPanel にドッキングされるコントロールを作成できます。コントロール名は StringCollection に保存され、プログラムを開始するたびにコントロールが再作成されます。ユーザーがコントロールの順序を変更できる機能を実装したいと思います。可動部分は機能しています。問題は、次回プログラムが開始されたときに、コントロールが StringCollection から作成されるため、古い順序で再作成されることです。これは、コントロールの順序を変更し、将来のためにそれを維持することを意味し、StringCollection の並べ替えを変更する必要があります。それを行う方法はありますか?はいの場合、どうすればいいですか?
現在、コンテキストメニューからこのコードでコントロールを上に移動します:
if (this.Parent == null)
return;
var index = this.Parent.Controls.GetChildIndex(this);
if (index <= this.Parent.Controls.Count)
this.Parent.Controls.SetChildIndex(this, index - 1);
そして明らかに。代わりに +1 で下に移動します。読み込みイベントでは、foreach を使用して StringCollection を調べ、コントロールを作成します。
foreach (string line in Properties.Settings.Default.MessageStringCollection)
{
if (!String.IsNullOrEmpty(line))
{
createNewMessageButton(line);
}
}