表格的宽度不能小于140像素.为什么?

Ana*_*nyi 4 c# width winforms

我在Visual Studio 2012中创建了默认的Windows窗体应用程序项目.当我运行程序时,然后看到窗体的宽度不能小于140像素.为什么?以及如何克服这种奇怪的限制?

小智 7

我正在寻找一个解决方案,而MinimumSize(0,0)没有任何效果.想通了,设置为(1,1)的MinimumSize实际上修复了问题,在显示我的表单后,它的大小正确小于140px.

应该触发弹出对话框的(ListView)_csvLv 上的列单击事件:

        var topAnchor = _csvLv.PointToScreen(new Point(
            _csvLv
                .Columns
                .OfType<ColumnHeader>()
                .Where(c => c.DisplayIndex < e.Column)
                .Sum(c => c.Width),
            0));

        Left = topAnchor.X;
        Top = topAnchor.Y;

        MinimumSize = new Size(1,1);
        ClientSize = new Size(_csvLv.Columns[e.Column].Width, 100);

        ShowDialog();
Run Code Online (Sandbox Code Playgroud)


Mar*_*ieu 2

用户将无法使用窗口顶部的最小化、最大化和关闭按钮。我不相信您可以使用 Sizing FormBorderStyle 更改该行为。这是一个可用性问题。

如果您删除边框,None例如通过将其设置为,您可以通过执行以下操作以编程方式将其设置为您想要的任何内容:

form.Width = [...];
Run Code Online (Sandbox Code Playgroud)

您可以使用边框类型调整其他表单的大小:None、FixedToolWindow 和 SizingToolWindow。ToolWindows 也不会让您低于一定数量,但 None 不会让您执行任何高于 2px 的操作。您可以将其设置为低于该值的某个值,而不会出现异常,但它不会执行任何操作。