0

C#ウィンドウコントロールのパネルにコントロールを追加することを制限するにはどうすればよいですか? デザイン時にユーザーがパネルにコントロールを追加することを制限する必要があります。

4

2 に答える 2

1

パネルに追加できるコントロールのタイプまたはコントロールの数を制限したい場合は、パネルの独自のサブクラスを作成し、Controls.Add メソッドのオーバーロードでコントロールのタイプまたはコントロールの数を確認できます。

編集: Controls.Add メソッドのオーバーロードは思ったほど簡単ではありませんでしたが、Panel クラスを拡張する新しいクラスを作成し、OnControlAdded メソッドをオーバーライドして、追加されたコントロールの種類を確認できます。このようなものが動作するはずです:

class MyPanel : Panel
{

    public MyPanel()
    { }

    protected override void OnControlAdded(ControlEventArgs e)
    {
        base.OnControlAdded(e);

        if (!(e.Control is Label))
        {
            MessageBox.Show("control " + e.Control.Name + " is not a label but a " + e.Control.GetType().ToString());
            Controls.Remove(e.Control);
        }

    }

}
于 2008-10-30T11:59:06.597 に答える
-1

AllowDrop を false に設定します。

于 2008-10-30T11:40:30.033 に答える