有没有人知道如何在没有边框的情况下调整winform的大小.我不想要Windows的默认边框,所以我将属性"FormBorderStyle"更改为"None".这删除了边框,虽然现在无法调整大小.我已经想出如何移动表单,我只需要知道如何调整它.
使用C#.
我试图移动一个Form没有它的标题栏.
我发现了一篇关于它的文章:http://www.codeproject.com/KB/cs/csharpmovewindow.aspx
只要我没有设置FormBorderStyle,它就可以工作None.
有没有办法使它适用于此属性设置为None?
我正在使用此代码来创建带有圆边的表单(FormBorderStyle = none):
[DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")]
private static extern IntPtr CreateRoundRectRgn
(
int nLeftRect, // x-coordinate of upper-left corner
int nTopRect, // y-coordinate of upper-left corner
int nRightRect, // x-coordinate of lower-right corner
int nBottomRect, // y-coordinate of lower-right corner
int nWidthEllipse, // height of ellipse
int nHeightEllipse // width of ellipse
);
public Form1()
{
InitializeComponent();
Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(0, 0, Width, Height, 20, 20));
}
Run Code Online (Sandbox Code Playgroud)
这是在Paint事件上设置自定义边框:
ControlPaint.DrawBorder(e.Graphics, this.ClientRectangle, Color.Black, 5, ButtonBorderStyle.Solid, Color.Black, 5, ButtonBorderStyle.Solid, Color.Black, 5, ButtonBorderStyle.Solid, Color.Black, …Run Code Online (Sandbox Code Playgroud) 我使用此代码使表单没有边框样式:
this.FormBorderStyle = FormBorderStyle.None;
Run Code Online (Sandbox Code Playgroud)
我需要在表单上创建圆角.
有一个简单的方法吗?我该怎么做?
我在表单中添加了一些控件并更改了Anchor属性我希望它如何工作,但是当我在运行时调整表单大小时,控件保持在同一个位置.
例如,我在表单的右下角有两个按钮 - 它们在表单上,没有容器或类似的东西.Anchor = Bottom,Right.FormBorderStyle =大小.但是当我在运行时拖动调整窗体大小时,按钮不会移动.
我错过了什么吗?
c#2005
我为我的mdi孩子制作了一个自定义边框.Mdi子表单属性:
首先,当我将Windowstate的属性设置为Normal时,我的mdi孩子将不会显示,我猜它的大小为0;然后是0.我尝试在Form_Load方法中设置大小,但仍然没有改变.当我将FormBorderStyle更改为FixedSingle时,我可以看到非常小的形式,只需要足够的空间来双击标题栏.然后表格真的最大化了.
我只是不明白,这一切都让人很困惑.并且由于windowstate最大化,我无法使用函数在屏幕上拖动表单,因为它认为它已经最大化了....

我有一个文本字段设置如下:
textField.borderStyle = UITextBorderStyleLine;
textField.layer.borderColor = [[UIColor greenColor] CGColor];
textField.layer.borderWidth= 10.0f;'
Run Code Online (Sandbox Code Playgroud)
但是左侧可能只有一个更大的边框,它是不同的颜色?或者我是否必须使用我想要的颜色和位置来定位drawRect?
我有搜索,结果无法解决我的情况.实际上我有一个面板,我希望面板的边框比Windows更厚.我需要BorderStyle
BorderStyle.FixedSingle
Run Code Online (Sandbox Code Playgroud)
更厚..谢谢之前
是否有任何文件证明正则格式的边框有多厚?
目标:
我创建了一个宽度为800px的userControl。我想用一个新的实例以全分辨率(800px-可见的一切)来引发一个弹出窗口(通常是普通形式)。
我的问题:
将表单设置为Form.Size.Width = 800不可以。看起来表单的边框包含在表单的宽度属性中。我需要减去该边界。
我应该是这样的: 2px + 800px + 2px
如果您想看一些代码告诉我,但是我认为这里没有必要。
编辑:
弹出控件后:
弹出代码:
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();
}
Run Code Online (Sandbox Code Playgroud)
我的意思是您的代码对我来说看起来很合逻辑。但是结果仍然是一样的。该userControl显示一点点小。我知道我已经dock = fill在我的按钮没有被专业放置在布局中的地方使用过。但是,除此以外,必须有一个解决方案来设置正确的大小。
我创建了一个表单并将其FormBorderStyle属性设置为none. 当我按下Windows + UP表单时将最大化。如何防止表单最大化?我试过
private void logIn_Resize(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
}
Run Code Online (Sandbox Code Playgroud)
但这不是我想要的。使用上面的代码,当我按下Windows + Up表单时将最大化,然后恢复到正常状态。但我想从根本上防止它。