我在网上找到了一些代码并复制了它们,到目前为止,除了一个问题之外,我已经成功地做完了所有事情,那就是我想要使表单(窗口)完全没有边框。
我正在使用Visual Studio 2013,这个问题仅涉及需要编写的代码,以使表单(窗口)无边框。问题在于,当您将其设置为无边框时,它不再可调整大小,但当它有边框时,它是可调整大小的。
我知道使用一些代码可以覆盖和实现两者。这就是我目前所拥有的(从另一个网站复制而来)。这会取消顶部带有程序名称的栏,使表单可以通过单击和拖动表单进行移动,并且可以调整大小。
唯一的问题是边框还在那里。我该添加什么代码,以便去掉边框?我想保留这个当前代码,因为它已经满足了我需要的几个功能。
顺便说一句,我查看了一些旧的类似主题的问题,但没有找到我需要的正确代码。
对于指导我去另一个线程的mod:我尝试了那里的代码,它并不完全符合我的需求,虽然它是一个相似的问题。当我尝试那个代码时,我无法在表单(窗口)上的任何地方单击以移动它。而且,它只有右下角一个可调整大小的角,这不是我想要的。我需要在四个角和所有边框上都具有调整大小功能,就像普通窗口一样。
我正在使用Visual Studio 2013,这个问题仅涉及需要编写的代码,以使表单(窗口)无边框。问题在于,当您将其设置为无边框时,它不再可调整大小,但当它有边框时,它是可调整大小的。
我知道使用一些代码可以覆盖和实现两者。这就是我目前所拥有的(从另一个网站复制而来)。这会取消顶部带有程序名称的栏,使表单可以通过单击和拖动表单进行移动,并且可以调整大小。
唯一的问题是边框还在那里。我该添加什么代码,以便去掉边框?我想保留这个当前代码,因为它已经满足了我需要的几个功能。
顺便说一句,我查看了一些旧的类似主题的问题,但没有找到我需要的正确代码。
对于指导我去另一个线程的mod:我尝试了那里的代码,它并不完全符合我的需求,虽然它是一个相似的问题。当我尝试那个代码时,我无法在表单(窗口)上的任何地方单击以移动它。而且,它只有右下角一个可调整大小的角,这不是我想要的。我需要在四个角和所有边框上都具有调整大小功能,就像普通窗口一样。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace BoxHider
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//Next line doesn't seem to be working
this.FormBorderStyle = FormBorderStyle.None;
}
const int WM_NCHITTEST = 0x0084;
const int HTCLIENT = 1;
const int HTCAPTION = 2;
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
switch (m.Msg)
{
case WM_NCHITTEST:
if (m.Result == (IntPtr)HTCLIENT)
{
m.Result = (IntPtr)HTCAPTION;
}
break;
}
}
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.Style |= 0x40000;
return cp;
}
}
}
}