私はメインフォーム(fMain)と2つの子フォーム(fLoginとfAdmin)を持つwinformsアプリケーションを持っています。 fLoginがメインフォーム上のボタンにボタンのクリックイベントハンドラである。このコードを使用して表示されます。fLoginのコンストラクタで別の子ウィンドウから新しい子ウィンドウを表示しますが、それを親ウィンドウの中央に表示します
// show login form; pass the main form in as an argument
fLogin formLogin = new fLogin(this);
formLogin.StartPosition = FormStartPosition.CenterParent;
formLogin.ShowDialog(this);
を、私はプライベートメンバのレベルの変数にメインフォームを割り当てます。
// fLogin
fMain _mainForm;
// fLogin constructor
public fLogin(fMain mainForm)
{
InitializeComponent();
_mainForm = mainForm;
}
想像のとおり、fLoginは、ユーザー名とパスワード用のテキストボックスと2つのボタンを持つ小さなフォームです。ユーザーが資格情報を入力して[OK]ボタンをクリックすると、fLoginはサーバーとの情報を検証し、情報が良好であればfLoginは消え、fAdminが表示されます。現在、私はこのようなfAdmin表示しています:
// hide formLogin right away
this.Hide()
// show admin form
fAdmin formAdmin = new fAdmin();
formAdmin.StartPosition = FormStartPosition.CenterParent;
formAdmin.Show(_mainForm); // pass main form as owner of admin form
// close formLogin
this.Close();
私はformAdmin.Parent = _mainFormを設定して、魔法のように自分自身を中央にダイアログを取得することはできません。だから私は_mainFormをformAdmin.Show()にformAdminの所有者として渡していますが、それはformAdminを中心にすることに関しては役に立たないようです。 formAdminをメインフォームの中央に表示させる簡単な方法はありますか?
どちらも良いアイデアです。どうもありがとうございました。 – user685869