Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 表格的宽度不能小于140像素。为什么?_C#_Winforms_Width - Fatal编程技术网

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

C# 表格的宽度不能小于140像素。为什么?,c#,winforms,width,C#,Winforms,Width,我在Visual Studio 2012中创建了默认的Windows窗体应用程序项目。当我运行程序时,我看到表格的宽度不能小于140像素。为什么?如何克服这种奇怪的限制?用户将无法使用窗口顶部的最小化、最大化和关闭按钮。我不相信你能用这种巨大的形式改变这种行为。这是一个可用性的东西 如果删除边框,例如,通过将其设置为None,可以通过执行以下操作以编程方式将其设置为所需的任意值: form.Width = [...]; 可以使用边框类型进一步调整窗体的大小:无、FixedToolWindow和

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

用户将无法使用窗口顶部的最小化、最大化和关闭按钮。我不相信你能用这种巨大的形式改变这种行为。这是一个可用性的东西

如果删除边框,例如,通过将其设置为
None
,可以通过执行以下操作以编程方式将其设置为所需的任意值:

form.Width = [...];

可以使用边框类型进一步调整窗体的大小:无、FixedToolWindow和SizableToolWindow。工具窗口也不允许你低于一定的数值,但是没有一个工具窗口允许你在2px以上做任何事情。您可以将其设置为低于该值的某个值,而不会出现异常,但它不会执行任何操作。

我从不使用formborders。。我总是喜欢用FormBorderstyle。没有

要调整大小,必须添加一些代码

放置一个图片盒,在其中添加一个夹点img,并将其放置在角落中

public Form1()
    {
        InitializeComponent();
        pictureBox1.MouseDown += new MouseEventHandler(Form1_MouseDown);
        pictureBox1.MouseMove += new MouseEventHandler(Form1_MouseMove);
        pictureBox1.MouseUp += new MouseEventHandler(Form1_MouseUp);
    }

    void Form1_MouseUp(object sender, MouseEventArgs e)
    {
        isHolding = false;
    }

    void Form1_MouseMove(object sender, MouseEventArgs e)
    {
        if (isHolding)
        {
            int diffX = this.Width - pictureBox1.Left;
            int diffY = this.Height - pictureBox1.Top;
            pictureBox1.Left += e.X - curX;
            pictureBox1.Top += e.Y - curY;
            this.Width = pictureBox1.Left + diffX;
            this.Height = pictureBox1.Top + diffY;                
        }
    }

    void Form1_MouseDown(object sender, MouseEventArgs e)
    {
        isHolding = true;
        curX = e.X;
        curY = e.Y;
    }

    int curX = 0, curY = 0;
    bool isHolding = false;

我正在寻找解决方案,最小尺寸(0,0)没有任何效果。我发现,将MinimumSize设置为(1,1)实际上解决了这个问题,在显示我的表单之后,它的大小正确地小于140px

(ListView)上的列单击事件\u 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();
var topAnchor=\u csvLv.PointToScreen(新点(
_csvLv
.栏目
第()类
.其中(c=>c.DisplayIndexc.宽度),
0));
左=topAnchor.X;
Top=topAnchor.Y;
最小尺寸=新尺寸(1,1);
ClientSize=新大小(_csvLv.Columns[e.Column].Width,100);
ShowDialog();
试试这个。 自动调整编号 仅限AutosizeMode
FormBorderStyle SizableToolWindow检查表单设计器属性上MinimumSize属性的值window@Steve最小尺寸=0;0;在我的程序中,窗口的最小化、最大化和关闭按钮并不总是需要的,因此,由于窗体的宽度很小而看不到也没关系。但我还需要用户能够更改将鼠标光标悬停到边缘的表单的大小。但如果FormBorderStyle设置为None,这是不可能的…一个相当大的工具窗口将允许您降低到大约20像素。够了吗?是的,对不起。这很难。让我知道它是否有帮助?“但没有人会让你做任何超过2px的事情”。。。不是真的。我有一个没有边框的应用程序,但它不允许小于139x39的大小,至少在我设置Form.MinimumSize=新大小(1,1)之前是这样的,因为这是一个比所选解决方案更好的解决方案。MinimumSize有效。这个解决方案(MinimumSize=新尺寸(1,1))是最简单和可靠的。在与这个问题斗争了很多时间后,我终于可以用这个答案解决它。