非常に特殊な背景と境界線が必要なため、カスタムLabelコントロールを作成しています(標準のLabelコントロールを継承し、背景とテキストを再描画するだけです)。コントロールのコンストラクタでは、AutoSizeプロパティをfalseに設定して、新しいラベルの標準デフォルトサイズを設定できます。私は(コードで)実行時に新しいカスタムラベルを作成する場合は、このコントロールを使用して自分のアプリケーションでラベルコントロールは、デザイン時と実行時で動作が異なる
Public Sub New()
'Set the default size of the control to 75x24
Me.Height = 24
Me.Width = 75
'Turn off the autosize property.
Me.AutoSize = False
'Turn on double-buffering.
Me.DoubleBuffered = True
End Sub
は、AutoSizeプロパティはFalseのままで、それが正常に動作します。
デザイン時にフォームに新しいカスタムラベルを追加しようとすると、AutoSizeプロパティがTrueに設定されているため、プロパティウィンドウで手動でFalseに設定する必要があります。それは大きな問題ではありませんが、なぜ行動が違うのか分かりません。
何がこの動作の違いを引き起こしていますか?
コンストラクタで、高さと幅を設定する前にAutoSizeをfalseに設定します。 – NascarEd
@NascarEd、ありがとうございました。私はそれを両方の方法で試しましたが、それは違いを生じさせないようです。 – Stewbob
もう一つの注意点として、カスタムコントロールを作成した後は、フォームにドロップしてデザイナーが生成するコードを調べることをお勧めします。デザイナーは通常、あなたが期待しないことをします。 – NascarEd