隐藏winform中的最小化最大化关闭按钮,并且显示窗体图标

maczhufengming 2009-12-23 03:33:00
winform窗体中,我想把最大化最小化关闭按钮都隐藏,但是标题栏中的窗体图标要显示。
我设置了ControlBox属性为false,最大最小和关闭按钮都没有了,但是窗体图标也没有了。
不知道有没有解决办法.
这个是ControlBox为True的图片

这个是ControlBox为False的图片
...全文
5047 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
惊喜不断 2012-02-10
  • 打赏
  • 举报
回复
Liner_Greer 2011-07-19
  • 打赏
  • 举报
回复
这个貌似只能disable按钮,不能隐藏按钮。


[Quote=引用 7 楼 wxm3630478 的回复:]
有个你找了个方法 ,让关闭按钮变灰色


C# code

[ DllImport ( "USER32.DLL" ) ]
public static extern int GetSystemMenu(int hwnd, int bRevert);
[ DllImport ( "USER32.DLL" ) ]
public static extern int ……
[/Quote]
ouxianzhi520 2011-01-25
  • 打赏
  • 举报
回复
11楼的方法不错。自己作个图标和标题出来就行了
agdfhgfdshfgh 2011-01-05
  • 打赏
  • 举报
回复
protected override void WndProc(ref Message m)
{
const int WM_SYSCOMMAND = 0x0112;
const int SC_CLOSE = 0xF060;
if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE) {
//捕捉关闭窗体消息 // User clicked close button
this.WindowState = FormWindowState.Minimized;
return;
}
base.WndProc(ref m);
}
qjf309 2010-04-27
  • 打赏
  • 举报
回复
ControlBox = False;
小D 2009-12-23
  • 打赏
  • 举报
回复
我要是你,我就自己做一个窗体,不用系统带的,然后放个小Button,,,,换个图片,哈哈
fuma200700149 2009-12-23
  • 打赏
  • 举报
回复
学习
幸运的意外 2009-12-23
  • 打赏
  • 举报
回复
楼主可以考虑一下API函数来消除三个按钮.
lx2222 2009-12-23
  • 打赏
  • 举报
回复
不用重新放panel那样就不完美了 你可以看看在标题栏上放按钮的方法
稍微用了点api
googlegis 2009-12-23
  • 打赏
  • 举报
回复
http://hi.csdn.net/attachment/200912/23/45040_1261561139n77n.jpg 不好意思,给你图片看看,应该还可以吧。
码代码的蜗牛 2009-12-23
  • 打赏
  • 举报
回复
没看清楚,发错了
码代码的蜗牛 2009-12-23
  • 打赏
  • 举报
回复
Form frm = new Form();
frm.ControlBox = false;
frm.MaximizeBox = false;
frm.MinimizeBox = false;
frm.Text = "窗体";
frm.Show();
haifeng39 2009-12-23
  • 打赏
  • 举报
回复
支持11楼
googlegis 2009-12-23
  • 打赏
  • 举报
回复
11楼正解,自己做界面,好像不能贴图。

FormBorderStyle = none;

panel 做为标题栏,自己加载一个backgroundimage,用个picturebox加载图片 做图标。
lx2222 2009-12-23
  • 打赏
  • 举报
回复
设置ControlBox属性为false
然后在标题上加label添加个图标模拟窗口图标
maczhufengming 2009-12-23
  • 打赏
  • 举报
回复
谁有思路给提一个也行
maczhufengming 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wxm3630478 的回复:]
有个你找了个方法 ,让关闭按钮变灰色

C# code
[ DllImport ("USER32.DLL" ) ]publicstaticexternint GetSystemMenu(int hwnd,int bRevert);
[ DllImport ("USER32.DLL" ) ]publicstaticexternint RemoveMenu(int hMenu,int nPosition,int wFlags);///<summary>/// 返回值,非零表示成功,零表示失败。///</summary>///<param name="iHWND">窗口的句柄</param>///<returns>是否成功</returns>publicint RemoveXButton(int iHWND)
{int iSysMenu;constint MF_BYCOMMAND=0x400;//0x400-关闭 iSysMenu= GetSystemMenu(this.Handle.ToInt32(),0);return RemoveMenu(iSysMenu,6, MF_BYCOMMAND);
}privatevoid Form1_Load(object sender, EventArgs e)
{//通过函数返回值就可以判断目的是否达到,在构造函数里面可以这样判断:int iReturn= RemoveXButton(this.Handle.ToInt32());if (iReturn==0)//返回值非零表示成功,零表示失败。 {
MessageBox.Show("Error!");
}else
{
MessageBox.Show("Success!");
}
}
[/Quote]


我这前也用的这个,但是客户说不行。无语了
maczhufengming 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wxm3630478 的回复:]
米看到隐藏 关闭按钮....

好像米有提供直接处理的方法.....LZ可以换一个思路,让关闭按钮失效吗..
[/Quote]

我也想让关闭按钮实效,但是客户不答应.真没办法了
wxm3630478 2009-12-23
  • 打赏
  • 举报
回复
有个你找了个方法 ,让关闭按钮变灰色


[ DllImport ( "USER32.DLL" ) ]
public static extern int GetSystemMenu(int hwnd, int bRevert);
[ DllImport ( "USER32.DLL" ) ]
public static extern int RemoveMenu(int hMenu, int nPosition, int wFlags);

/// <summary>
/// 返回值,非零表示成功,零表示失败。
/// </summary>
/// <param name="iHWND">窗口的句柄</param>
/// <returns>是否成功</returns>
public int RemoveXButton(int iHWND)
{
int iSysMenu;
const int MF_BYCOMMAND = 0x400; //0x400-关闭
iSysMenu = GetSystemMenu(this.Handle.ToInt32(), 0);
return RemoveMenu(iSysMenu, 6, MF_BYCOMMAND);
}

private void Form1_Load(object sender, EventArgs e)
{

//通过函数返回值就可以判断目的是否达到,在构造函数里面可以这样判断:
int iReturn = RemoveXButton(this.Handle.ToInt32());
if (iReturn == 0) //返回值非零表示成功,零表示失败。
{
MessageBox.Show("Error!");
}
else
{
MessageBox.Show("Success!");
}
}
yongningzh 2009-12-23
  • 打赏
  • 举报
回复
3樓的方法我也常用
加载更多回复(5)

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧