私の問題に対する有効な解決策が見つからないまま、いくつかのスタック オーバーフローに関する質問を読みました。フォームのサイズが変更されるたびにコントロールのサイズを変更するにはどうすればよいですか? 形が大きくなったり小さくなったりしたら、大きくしたり小さくしたりしたいです。
Visual Basic では、これは form.Zoom プロパティを使用して非常に簡単に実行できました (もちろん、コントロールのサイズ変更は実際には必要ありませんでしたが、必要なものは解決されました)。残念ながら、これは C# の winforms では利用できません。
ここに私が運なしで試したいくつかの他のことがあります:
private void formMain_Resize(object sender, EventArgs e)
{/*
double scale;
this.scaleWidth = (float)this.Width / (float)this.origWidth;
this.scaleHeight = (float)this.Height / (float)this.origHeight;
if (this.scaleHeight > this.scaleWidth)
{
scale = this.scaleHeight;
}
else
{
scale = this.scaleWidth;
}
foreach (Control control in this.Controls)
{
control.Height = (int)(control.Height * this.scaleHeight);
control.Width = (int)(control.Width * this.scaleWidth);
this.Refresh();
// control.Font = new Font("Verdana", control.Font.SizeInPoints * heightRatio * widthRatio);
}
///////This scaling didnt work for me either
//this.Scale(new SizeF(this.scaleWidth, this.scaleHeight));
//this.Refresh();
*/
}
別のスタック オーバーフローの質問で実際に動作するコードのサンプルを見落としていた場合は、それを見たいと思いますが、私が見つけたものは、動作していない上記のものと似ていました。
おそらく私はそれを悪用していたので、誰かがサンプルコードを投稿して、この質問を続けている私たちのために問題を解決する方法を示すことができます.
また、自動的に許可されると考えて、アンカー/ドッキング ツールのいくつかを使用しようとしましたが、そうではありませんでした。