Winfrom窗体大小如何自适应屏幕工具栏的有无?

wood87654321 2009-03-24 11:31:13
见到很多窗口程序(例如浏览器、Windows画图程序等)都能自适应屏幕工具栏的有无变化,即当显示windows工具栏时该程序窗口高度为:屏幕高度-工具栏高度;当隐藏windows工具栏时该程序窗口高度自动伸展为屏幕高度,反之亦然。

自己设计的窗体该怎样实现这种功能呢?
...全文
369 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wood87654321 2009-04-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 qq2766 的回复:]
Form.TopMost=true;
[/Quote]

这是置窗口最前,跟我的问题有什么关系?
我要的是拖动扩大或缩小Windows工具栏时,自己的程序窗口能跟着缩放
NealXX 2009-04-16
  • 打赏
  • 举报
回复
Form.TopMost=true;
wood87654321 2009-04-16
  • 打赏
  • 举报
回复
C#区有人能解答这个问题吗?
outou 2009-03-24
  • 打赏
  • 举报
回复
试试这个方法

Dim resizeEA As EventArgs = Nothing

Protected Overrides Sub OnResize(ByVal e As EventArgs)
If resizeEA Is Nothing Then
resizeEA = e
AddHandler Application.Idle, AddressOf OnIdle
End If
End Sub

Private Sub OnIdle(ByVal s As Object, ByVal e As EventArgs)
If Not (resizeEA Is Nothing) Then
MyBase.OnResize(resizeEA)
resizeEA = Nothing
RemoveHandler Application.Idle, AddressOf OnIdle
End If
End Sub

wood87654321 2009-03-24
  • 打赏
  • 举报
回复
不行的,windowState=Maximized,即使在显示windows工具栏时,窗口尺寸也将充满整个屏幕,而不是“屏幕高度-工具栏高度”,这时窗体最底下的部分会躲在工具栏后面
困困 2009-03-24
  • 打赏
  • 举报
回复
设置windowState=Maximized就行了
wood87654321 2009-03-24
  • 打赏
  • 举报
回复
可能我没表达清楚,问题的关键不在于怎么弄成那个尺寸,而在于程序运行后,窗体如何根据windows工具栏的隐藏和显示自动适应变化。

例如你眼前打开的浏览器,现在它充满了屏幕工作区,在屏幕最下面就是windows工具栏。现在你用鼠标按住工具栏上边沿然后向下拉,使之在屏幕最下方缩为一条线,这时会发现你的浏览器窗口会自动跟着向下扩展到除了那条线之外的整个屏幕。

无论4楼还是3楼的方法,那代码总得放在自己程序的某个事件中,可是上述的鼠标向下拉工具栏时,焦点并不在自己的程序上,又怎么触发程序窗体的某个事件呢?
gamewater 2009-03-24
  • 打赏
  • 举报
回复
非常简单
Me.MaximumSize = My.Computer.Screen.WorkingArea.Size

WorkingArea是屏幕的可用区域

111,125

社区成员

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

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

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