MonthCalendar
次のように、別のダイアログにを表示する必要があります。
問題は、このカレンダーの表示がアプリケーションが実行されているシステムに依存することです。その結果、次のようなバリエーションが生じます (同じアプリケーションから、別の PC で):
私が理解しているように、これは、アプリケーションがたまたま実行されている視覚的なスタイルまたはテーマに依存します。問題は、カレンダーを配置する必要があるフォームの適切なサイズを計算するにはどうすればよいか、または別の方法で、テーマが異なる複数のシステムでこれをエレガントに見せるにはどうすればよいかということです。
container
特定のテーマ (最初の写真) に適した (ハードコードされた) サイズが与えられたフォーム () にカレンダーを配置する現在のコードには満足していません。
private static Form SetUpCalendar()
{
var calendar = new MonthCalendar
{
MaxSelectionCount = maxSelectionCount,
BackColor = SystemColors.Info,
CalendarDimensions = new Size(1, 1),
// (..etc...)
};
var container = new Form
{
FormBorderStyle = FormBorderStyle.FixedDialog,
Size = new Size(calendar.Width + 74, calendar.Height + 47)
};
container.Controls.AddRange(new Control[] {calendar});
return container;
}
フォームのサイズをカレンダーに合わせて自動的に調整する方法を見つけることができませんでした。これを改善する方法についてのヒントをいただければ幸いです。