如何实现像QQ窗体那样的显示在最前方

yangyugw 2004-09-16 05:57:40
我用过以下方法啊但都没有成功
this.TopLevel=true;

this.TopMost=true;

请问如何处理呢
...全文
159 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuhill 2004-09-17
  • 打赏
  • 举报
回复
帮顶
BlankFoxCat 2004-09-17
  • 打赏
  • 举报
回复
学习中!
长江 2004-09-17
  • 打赏
  • 举报
回复
如秋枫所说,设TopMost并非上上之策,
可使用API函数:

SetWindowPos()如下声明:

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _

ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, _

ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long


---- hWnd变元是窗口的句柄;x,y是窗口的左上角的坐标;cx、cy是窗口宽度和高度;hWndInsertAfter变元是窗口清单中hWnd窗口前面的窗口句柄,有四个可选值:
序号 可 选 值 作 用
1 HWND_BOTTOM 把窗口放在窗口清单的底部
2 HWND_TOP 把窗口放在窗口清单的字符顺序的顶部
3 HWND_TOPMOST 把窗口放在窗口清单的顶部
4 HWND_NOTOPMOST 把窗口放在窗口清单的顶部,最上层窗口之下
---- WFlags变元为整型值,有八个可选值:
序号 可 选 值 作用
1 SWP_DRAWFRAME 在窗口周围画一个方框
2 SWP_HIDEWINDOW 隐藏窗口
3 SWP_NOACTIVATE 不激活窗口
4 SWP_NOMOVE 保持窗口当前位置
5 SWP_NOREDRAW 窗口不自动重画
6 SWP_NOSIZE 保持窗口当前尺寸
7 SWP_NOZORDER 保持窗口在窗口清单中的当前位置
8 SWP_SHOWWINDOW 显示窗口

Private Const SWP_NOMOVE = 2

Private Const SWP_NOSIZE = 1

Private Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE

Private Const HWND_TOPMOST = -1

Private Const HWND_NOTOPMOST = -2



Private Sub Command1_Click()

'把窗体放在最前面:

res% = SetWindowPos(Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)

End Sub



zhendeqiufeng 2004-09-17
  • 打赏
  • 举报
回复
如果有两个窗口都设frm.TopMost=true;
那么两个都有可能在最上面,后来者居上。
可以尝试使用api函数:SETWINDOWPOS()
dazhu2 2004-09-17
  • 打赏
  • 举报
回复
this.tomost=true;
ycxdy 2004-09-17
  • 打赏
  • 举报
回复
靠 就这个会 来晚了
yangyugw 2004-09-17
  • 打赏
  • 举报
回复
自己的问题,在调试状态下不行,运行编译后的程序可以

抱歉耽误大家时间了
xinbin1122 2004-09-16
  • 打赏
  • 举报
回复
frm.TopMost=true;//
就是这样,没有别的办法了
hnhl 2004-09-16
  • 打赏
  • 举报
回复
Form1 frm=new Form1();
frm.Show();
frm.TopMost=true;//设置此属性即可
qpl007 2004-09-16
  • 打赏
  • 举报
回复
this.TopMost=true 不行吗?
sgc8228 2004-09-16
  • 打赏
  • 举报
回复
form的属性里面就可以设置最上面
yangyugw 2004-09-16
  • 打赏
  • 举报
回复
你是第一个回答的,上面的怎么个处理完了

this.Activate
放那里啊
loveic 2004-09-16
  • 打赏
  • 举报
回复
大不了再加个 this.Activate(); ...
给分不..
loveic 2004-09-16
  • 打赏
  • 举报
回复
- -! 上面的不是已经处理完了嘛...
yangyugw 2004-09-16
  • 打赏
  • 举报
回复
没人回答么
问题不难!
delphi在窗体上设置下就可以(fsStayOnTop)
C#怎么可能没有啊

110,536

社区成员

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

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

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