gpt4 book ai didi

C# MDI - 如何防止滚动条?

转载 作者:行者123 更新时间:2023-12-04 06:09:44 26 4
gpt4 key购买 nike

最好用图像显示,我可以将窗体拖离 MDI 父级的边缘,然后出现滚动条。

更确切地说,子表单被锁定到父表单的区域。

我已经完成了对解决方案的搜索,(其中很多都在 2 年多以前得到了回答,所以我希望它们已经过时了)并且只遇到过在 Move 事件中检查坐标的人......很好,但如果我有20 个表格……或 100 个表格。我无法对所有这些进行编码,这有点傻。当然,我可以在父窗体上设置某个属性。

MDI Scrollbar problem

最佳答案

你可以做这样的事情......

步骤!:您必须制作基本表单(如用户控件)

并将此代码放在该表单中

 namespace Controls
{
public partial class BaseForm : Form
{
public BaseForm()
{
InitializeComponent();
StartPosition = FormStartPosition.WindowsDefaultLocation;
MaximizeBox = false;
Width = 806;
//Width = 850;
//Height = 760;
Height = 730;
//Width = 790;
//Height = 617;
}


protected override void WndProc(ref Message m)
{
const int WM_SYSCOMMAND = 0x0112;
const int SC_MOVE = 0xF010;
//ShowScrollBar(this.Handle, (int)ScrollBarDirection.SB_BOTH, false);
switch (m.Msg)
{
case WM_SYSCOMMAND:
int command = m.WParam.ToInt32() & 0xfff0;
if (command == SC_MOVE)
return;
break;
}
base.WndProc(ref m);
}
}
}

然后在每种形式中你都必须像这样指定......
public partial class childform : BaseForm
{
.......
}

确保您的所有子表单大小都应该是基本表单中指定的大小
  • 最小大小为 0,0
  • max Sixze 也是 0,0
  • startposition - windowsdefaultlocation
  • windowstate - 正常

  • 我希望它会帮助你..

    关于C# MDI - 如何防止滚动条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7915164/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com