我创建了一个射击游戏,但我遇到了一个问题。当玩家输掉比赛时,我想向他展示一条信息。我试过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");
应该可以工作,因为我相信默认情况下消息框以父级为中心
编辑刚刚查了一下(消息框居中),但似乎你可以通过挂钩来居中,但这似乎有点矫枉过正