C#Winforms |边框厚度 - c#

是否有任何文档证明正则边框的厚度有多大?

目标:
我创建了一个宽度为800px的userControl。我想用一个新的实例以全分辨率(800px-可见的一切)来引发一个弹出窗口(通常是普通形式)。

我的问题:
将表单设置为Form.Size.Width = 800不会这样做。看起来表单的边框包含在表单的宽度属性中。我需要减去该边界。

我应该是这样的:2px + 800px + 2px

如果您想看一些代码告诉我,但是我认为这里没有必要。

编辑:

C#Winforms |边框厚度 - c#

弹出控件后:

C#Winforms |边框厚度 - c#

弹出代码:

private void buttonPopup_Click(object sender, EventArgs e)
{
    Form MyPopup = new Form();
    customControl MyUserControl = new customControl();

    MyUserControl.Dock = DockStyle.Fill;

    Rectangle rc = MyUserControl.RectangleToScreen(MyUserControl.ClientRectangle);

    //int thickness = SystemInformation.Border3DSize.Width;
    //MyPopup.MaximumSize = new Size(MyUserControl.Size.Width + (thickness*2), 1500);

    MyPopup.Controls.Add(MyUserControl);
    MyPopup.MaximumSize = new Size(rc.Width, rc.Height);
    MyPopup.Show();
}

我的意思是您的代码对我来说看起来很合逻辑。但是结果仍然是一样的。 userControl显示的小一点。我知道我使用过dock = fill而不将我的按钮专业地放置在布局中。但是,除此以外,必须有一个解决方案来设置正确的大小。

参考方案

看来您正在寻找

int thickness = SystemInformation.Border3DSize;

另一种(也是INHO更好的一种)可能性是使用控件的ClientRectangle。例如:

// Client rectangle in screen coordinates
Rectangle rc = MyControl.RectangleToScreen(MyControl.ClientRectangle);

// Let's align context menu (its width) to bottom of the control
MyContextMenuStrip.AutoSize = false;
// Depending on actual dropdown control you may want align either via
//   Width = rc.Width;
// Or 
//   ClientSize = new Size(rc.Width, someHeight);
MyContextMenuStrip.Width = rc.Width;

// Let's show context menu at the bottom of the control
MyContextMenuStrip.Show(new Point(rc.Left, rc.Bottom));

WinForms / C#中的动画效果 - c#

我要粘贴游戏即时贴中的图片。您看到的空单元格矩阵由PictureBox [] []组成。我不会每当我将硬币丢到其中一列中时...我希望它掉下来,但是紫色的东西会隐藏掉落的硬币,而您看到的灰色不会隐藏它。如何产生这种效果?请注意,在每个PictureBox控件中,我已经设置了BG图像,如您所见 参考方案 不要那样做。创建自定义控件。在自定义控件中,覆盖Pain…

如何处理连续触发的事件? - javascript

我试图用以下相同的名称钩住三个事件this.textFontFace.TextChanged += Format_TextChanged; this.textFontSize.TextChanged += Format_TextChanged; this.textFontType.TextChanged += Format_TextChanged; 现在,我…

什么是在Windows窗体中进行验证的最佳方法 - c#

在Windows窗体应用程序中进行验证的最佳方法是什么?最简单的方法是什么?(对于最终用户)最有吸引力的方式是什么?问候,-库山- 参考方案 关于UI验证,我有一组控件验证器,我只是通过分配控件来将它们插入需要的地方。您可以使用ErrorProvider显示错误,您所需要的只是封装的框架来使事情自动化。首先是ValidatorBase类。使它抽象并继承Com…

如果以前没有选择,则防止DataGridView在排序时选择一行 - c#

我有一个datagridview,当用户通过单击列标题对它进行排序时,可能会或可能不会选择行。如果选择的行没有问题,但是如果选择的行有0,则排序会自动选择一行(选择是一致的,但我不知道标准是什么)。如何防止这种行为发生。如果相关,则DGV没有数据绑定,并且启用了全行选择。 参考方案 处理DataGridView的Sorted事件:this.dataGridV…

检查表单是否具有焦点或处于活动状态 - c#

我有一个显示通知窗口的表单。但是我只想在窗体没有焦点或不处于活动状态时显示弹出窗口,如下所示:if (!form.Active) { //Do something } 有办法吗? 参考方案 if (Form.ActiveForm != yourform) { //form not active //do something } else { // form …