form 窗体 最大化问题

apple_box 2009-06-16 12:01:19
做个程序 要求是 开启就是最大的化的。。固定不可变。
固然我就把 WindowState 设置成 Maximized ====启动 最大化实现。
为了窗体固定不可变, 属性 MaximizeBox 设置成false

本以为 这样就不会改变大小了 。可是 当双击 窗体上边框的时候 还是缩小了。后来发现 有可能是Size的原因。
就手动改了下 设置成窗体大小。1024 768 OK。。。基本实现 ,可是我的任务栏被覆盖了。。。。。
如果 桌面分辨率 不是1024*768 的时候。就不可以了。。。

问下有没有好的方法?来实现 固定不可变呢?

...全文
117 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
yingzhilian2008 2009-06-16
  • 打赏
  • 举报
回复
this.Size = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
feiyun0112 2009-06-16
  • 打赏
  • 举报
回复
protected override void WndProc(ref Message m)
{

const int WM_NCLBUTTONDBLCLK = 0xA3;
switch (m.Msg)
{
case WM_NCLBUTTONDBLCLK://禁止双击最大化


return;


break;

default:

base.WndProc(ref m);
break;
}
}


*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

http://feiyun0112.cnblogs.com/
tcxx2008 2009-06-16
  • 打赏
  • 举报
回复
this.maxsize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);

this.minsize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);


这2条放在构造函数里面,或form_load里面应该就ok.
tcxx2008 2009-06-16
  • 打赏
  • 举报
回复
this.Size = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);


这条语句是用来窗体不覆盖任务栏的,而且多任何显示器,任何分辨率都适用,我刚用了
zgke 2009-06-16
  • 打赏
  • 举报
回复
错了

private void Form2_Load(object sender, EventArgs e)
{
this.Location = new Point(0, 0);

this.Size = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
this.TopMost = true;
}
zgke 2009-06-16
  • 打赏
  • 举报
回复
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x0112) //系统消息
{
switch (m.WParam.ToInt32())
{
case (int)61490:
return;
}
}
base.WndProc(ref m);
}

private void Form2_Load(object sender, EventArgs e)
{
this.Location = new Point(0, 0);

this.Size = new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);

}

这样看看.
满衣兄 2009-06-16
  • 打赏
  • 举报
回复
vs2005里的属性:
maxinumsize
mininumsize

Size------>这个是你窗体的大小.把maxinumsize和mininumsize设置成和size一样的值即可/

满衣兄 2009-06-16
  • 打赏
  • 举报
回复
你只要把maxsize和minsize设置成一样的就行了.
jest850615 2009-06-16
  • 打赏
  • 举报
回复
7楼的意思呢,就是接管窗口的鼠标双击消息,收到这个消息的时候什么都不干,直接return。
apple_box 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 feiyun0112 的回复:]
晕,你把代码放到form里看看不就知道啦
[/Quote]

人才!!! 要的就是这效果。。。。。。
说实话 真没看懂 代码。。。。给分了。。
zzlfe 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 apple_box 的回复:]
引用 7 楼 feiyun0112 的回复:
protected override void WndProc(ref Message m)
{

const int WM_NCLBUTTONDBLCLK = 0xA3;
switch (m.Msg)
{
case WM_NCLBUTTONDBLCLK://禁止双击最大化


return;


break;

default:



。。。
。没看懂。。。
[/Quote]
碰到窗口的双击消息直接返回,其他不处理
feiyun0112 2009-06-16
  • 打赏
  • 举报
回复
晕,你把代码放到form里看看不就知道啦
apple_box 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 feiyun0112 的回复:]
protected override void WndProc(ref Message m)
{

const int WM_NCLBUTTONDBLCLK = 0xA3;
switch (m.Msg)
{
case WM_NCLBUTTONDBLCLK://禁止双击最大化


return;


break;

default:


[/Quote]
。。。
。没看懂。。。
apple_box 2009-06-16
  • 打赏
  • 举报
回复
看了下。。。基本上都是 怎么改size, Max and Min.

但是我要的是固定的窗体。虽然大小和桌面一样了。。 但是鼠标拖拉 上边框 是能拖动的。
正常的最大化 是不可以拖动的。


所以我认为: 应该不用理睬 MAX 和 MIN 的值。
直接把windowstatus 设置成 Maximized.只有这样才是我想要的最大化的效果。
唯一的毛病 就是 双击上边框 窗体会变一次
问题简单化就是要求:在最大化的前提下双击上边框失效就可以了。

7楼的回答 可能就是解决双击问题。。。可是我没看懂。。。SORRY。
zzlfe 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yfqvip 的回复:]
你只要把maxsize和minsize设置成一样的就行了.
[/Quote]
或者formBorderStyle=fixedSingle
mabaolin 2009-06-16
  • 打赏
  • 举报
回复
把form的controlbox设为none
memoCKH 2009-06-16
  • 打赏
  • 举报
回复
写一下窗体的onsizechange事件试一下看吧。
Profiteerchen 2009-06-16
  • 打赏
  • 举报
回复
你应该设置Form的BoderStyle

111,101

社区成员

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

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

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