再线等待高手解答!!!

kimi_xia 2008-11-13 01:26:31
c#wiform中我把form加入到一个panel中,但是在panel中的form可以移动,如何设置可以使其不能动,而且使from标题栏以及关闭按钮,最小化按钮,最大化按钮都不显示
...全文
75 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cpio 2008-11-13
  • 打赏
  • 举报
回复

protected override void WndProc(ref Message m)
{
if (m.Msg == 0xA1)
{
return;
}
base.WndProc(ref m);
}
cpio 2008-11-13
  • 打赏
  • 举报
回复

如果可以不要标题栏的话,Form.FormBorderStyle = FormBorderStyle.None

如果要保留标题栏,试着重写WndProc,把点击标题栏的事件过滤掉
patrickpan 2008-11-13
  • 打赏
  • 举报
回复
做好一个用户控件:UserControl1。
这样加载:
panel.Ctrols.Clear();
UserControl1 uc = new UserControl1();
uc.Dock = DockStyle.Fill;
uc.Parent = panel;
patrickpan 2008-11-13
  • 打赏
  • 举报
回复
设置:FromBorderStyle属性为:None可以到达你的要求。
但如果放在panel中,建议不要用窗体。
可以做用户控件,然后放在Panel中。

cnwolfs 2008-11-13
  • 打赏
  • 举报
回复
做成无标题栏的窗体
gongsun 2008-11-13
  • 打赏
  • 举报
回复
换一种思路。
xuexiziji 2008-11-13
  • 打赏
  • 举报
回复
ControlBox false
techsky 2008-11-13
  • 打赏
  • 举报
回复
设置本窗体(Form1)的 “_ 口” 按钮不可见,可用以下代码

this.MaximizeBox=false;
this.MinimizeBox=false;


但是没试过吧form拉进到panel控件中。。。
zx005 2008-11-13
  • 打赏
  • 举报
回复
把你那个窗口的maximizeBox和minimizeBox都设为false;
然后

using System.Runtime.InteropServices
[DllImport("user32.dll")]
internal static extern IntPtr GetSystemMenu(IntPtr hwnd, bool bRevert);

[DllImport("user32.dll")]
internal static extern int GetMenuItemCount(IntPtr hMenu);

[DllImport("user32.dll")]
internal static extern int RemoveMenu(IntPtr hMenu, int uPosition, int uFlags);

/// <summary>
/// 窗体的关闭按钮失效
/// </summary>
protected void CloseButtonEnable()
{
// 默认窗口去除关闭按钮
const int MF_BYPOSITION = 0x00000400;

IntPtr hWindow = this.Handle;
IntPtr hMenu = GetSystemMenu(hWindow, false);
int count = GetMenuItemCount(hMenu);
RemoveMenu(hMenu, count - 1, MF_BYPOSITION);
RemoveMenu(hMenu, count - 2, MF_BYPOSITION);
}

在InitializeComponent();后调用CloseButtonEnable() ;就可以使关闭按钮不显示
  • 打赏
  • 举报
回复
设置form本身的属性就可以啊,把ControlBox禁掉。

110,566

社区成员

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

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

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