シューティングゲームを作成しましたが、最後に問題が発生しました。プレイヤーが負けたので、彼にメッセージを表示したいと思います。MessageBox を試してみましたが、画面の中央に表示されました。アプリの中央に「負けました」と書かれたボックスが欲しいだけです。フォーム全体に PictureBoxes があり、TextBox を表示すると、表示されません (その一部のみ)。
何か案は?
シューティングゲームを作成しましたが、最後に問題が発生しました。プレイヤーが負けたので、彼にメッセージを表示したいと思います。MessageBox を試してみましたが、画面の中央に表示されました。アプリの中央に「負けました」と書かれたボックスが欲しいだけです。フォーム全体に PictureBoxes があり、TextBox を表示すると、表示されません (その一部のみ)。
何か案は?
MessageForm
ラベルとボタンを使用してカスタム フォームを作成できます(従来のスクリーンショットと win7 のスクリーンショット)。
設定は次のとおりです (デザイナーで設定できます)。
FormBorderStyle = FormBorderStyle.FixedDialog;
ShowIcon = false;
MinimizeBox = false;
MaximizeBox = false;
StartPosition = FormStartPosition.CenterParent; // important!
btnOK.DialogResult = DialogResult.OK;
lblMessage.Autosize = false;
lblMessage.TextAlign = ContentAlignment.MiddleCenter;
lblMessage.BackColor = SystemColors.ControlLightLight;
lblMessage.Dock = DockStyle.Top;
フォーム クラス:
public partial class MessageForm : Form
{
public MessageForm(string message)
{
InitializeComponent();
lblMessage.Text = message;
}
public static DialogResult Show(string message, string title = "")
{
var form = new MessageForm(message);
form.Text = title;
return form.ShowDialog();
}
}
使用法:
MessageForm.Show("You Lost");
コメントで言ったように、使用できます
textboxName.BringToFront();
コントロールを前面に移動するには、メッセージ ボックスを中央に表示するには、
MessageBox.Show(this, "message");
メッセージボックスはデフォルトで親を中心に表示されると私は信じているので、うまくいくはずです
編集ちょうどそれを調べました(メッセージボックスのセンタリング)が、フックすることで1つをセンタリングできるようですが、それは少しやり過ぎのようです