Panel
クラス外でサイズを設定できないカスタムクラスを作成しようとしています。私が試したのはこれでした:
public class FixedPanel : Panel
{
public override Size Size { get; private set; }
}
しかし、私はそれを言ってエラーが発生しますFixedPanel.Size.set: cannot override inherited member 'System.Windows.Forms.Control.Size.set' because it is not marked virtual, abstract, or override
ユーザーがコントロールのサイズを設定できないようにする方法はありますか?
編集: 2 つのプロパティを別々に設定する必要をなくす、よりクリーンなソリューションを思いつきましたが、それが本当に適切な方法であるかどうかもわかりません。これが私がすることです:
private Size fixedSize;
private void SetFixedSize(Size size=null)
{
if (size)
this.fixedSize = size;
if (this.Size != this.fixedSize)
this.Size = this.fixedSize;
}
public FixedPanel()
{
this.SizeChanged += SetFixedSize;
}