フォームにラベルとテキストボックスがあります。ラベルのコンテンツは動的であり、その境界がその下のテキストボックスにオーバーフローする可能性があります。フォームの高さとtextBoxの上部を必要に応じて動的に増やして、ラベルの内容がテキストボックスをフォームに「押し込む」ようにします。ラベルを[自動サイズ]に設定し、最大幅を指定することで、フォームbuの右端まで水平方向にのみ拡大し、次に必要なだけ垂直方向(下向き)に拡大できるようにします。
これを試みるための私のコードは次のとおりです。
int bottomOfLabel = label1.Location.X + label1.Size.Height;
int topOfTextBox = textBox1.Location.Y;
int currentHeightOfForm = this.Size.Height;
int currentTopOfTextBox = texBox1.Location.Y;
if (bottomOfLabel >= topOfTextBox)
{
int heightToAdd = bottomOfLabel - topOfTextBox;
this.Size.Height = currentHeightOfForm + heightToAdd;
textbox.Location.Y = currentTopOfTextBox + heightToAdd;
}
...しかし、これらのエラーが発生します:
'System.Windows.Forms.Form.Size'の戻り値は変数ではないため、変更できません
-と:
'System.Windows.Forms.Control.Location'の戻り値は変数ではないため、変更できません
では、どうすればこれを達成できますか?