0

私の現在のプロジェクトでは、ユーザーは 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);
    }
}
4

3 に答える 3