我在windows窗体程序上工作,我想使主窗体始终最大化,我已经尝试将WindowState设置为最大化,FormBorderStyle设置为固定对话框/固定单次,它可以工作,但最大化按钮仍然存在,所以我尝试将MaximizeBox设置为假,但然后表单是全屏的,它完全覆盖了任务栏,这就是问题所在,我不希望它超过任务栏。如果有人知道这个问题的解决方案或替代方案,请随时帮助我。
发布于 2018-08-19 03:07:14
保留FormBorderStyle = Sizable
。设置MaximizeBox = false
和MinimizeBox = false
。作为代码幕后使用
public partial class frmFixedMaximized : Form
{
private bool _changing;
public frmFixedMaximized()
{
InitializeComponent();
WindowState = FormWindowState.Maximized;
}
private void frmFixedMaximized_Shown(object sender, EventArgs e)
{
// Make resizing impossible.
MinimumSize = Size;
MaximumSize = Size;
}
private void frmFixedMaximized_LocationChanged(object sender, EventArgs e)
{
if (!_changing) {
_changing = true;
try {
// Restore maximized state.
WindowState = FormWindowState.Minimized;
WindowState = FormWindowState.Maximized;
} finally {
_changing = false;
}
}
}
}
使用此代码的原因是,用户仍然可以通过按住标题栏来拖动窗口。_changing
变量可防止LocationChanged
事件处理程序在无限循环中触发自身。
https://stackoverflow.com/questions/51911356
复制相似问题