このスレッドの Vimal Raj による回答の情報は、大きな助けになりました:
How to use Multiple forms in one Csharp panel in one Windows Form panel?
Visual Studio デザイナーのものを無視して、スクリーンセーバー テスター プログラム全体を次に示します。
public partial class FormTest : Form
{
private readonly Form _formTinyView;
// Constructor
public FormTest()
{
InitializeComponent();
// Create a tiny preview form and place it inside the Panel control
_formTinyView = new Form();
_formTinyView.FormBorderStyle = FormBorderStyle.None;
_formTinyView.TopLevel = false;
_formTinyView.Size = panelTinyView.Size;
panelTinyView.Controls.Add(_formTinyView);
_formTinyView.Visible = true;
}
// Display settings dialog
private void Settings_Click(object sender, EventArgs e)
{
LaunchScreensaver("/c");
}
// Preview in tiny window
private void TinyView_Click(object sender, EventArgs e)
{
LaunchScreensaver("/p " + _formTinyView.Handle);
}
// Standard preview
private void Preview_Click(object sender, EventArgs e)
{
LaunchScreensaver("/s");
}
// Launch screensaver as a new process
private static void LaunchScreensaver(string argumentString)
{
Process.Start(@"..\..\OutBackScreensaver\bin\Merlinia.OutBackScreensaver.exe",
argumentString);
}
}