我创造了一个射击游戏,但我遇到了问题。当玩家输了,我想向他展示一条消息。我尝试过MessageBox,但是它出现在屏幕的中央。我只想要一个在应用程序中心显示“你输了”的盒子。我在整个表单上都有PictureBoxes,当我显示TextBox时,它无法看到(只有部分)。
有什么想法吗?
答案 0 :(得分:2)
您可以使用标签和按钮创建自定义表单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");
答案 1 :(得分:1)
正如我在评论中所说,你可以使用
textboxName.BringToFront();
如果你想让消息框出现在中间,将控件带到前面,
MessageBox.Show(this, "message");
应该正常工作,因为我认为默认情况下消息框显示在父级中心
编辑只是查了一下(MessageBox居中),但似乎你可以通过挂钩来居中,但这看起来有点矫枉过正