请教:顶层非激活窗体不能实现!

benbenRH 2010-01-26 08:34:30

我的工具窗体ToolsForm,里面写了这个代码:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= (int)0x08000000L; //把窗体设置成WS_EX_NOACTIVATE样式
return cp;
}
}

如果我在program里面,Application.Run(new ToolsForm());这样的话,可以实现

但是如果我在主窗体 MainForm里面创建ToolsForm实例的话,实现不了顶层非激活的效果,
这时,当我点击MainForm窗口,在点击ToolsForm窗口时,ToolsForm被激活了,
但是,如果我单机其它非本程序的窗口,在单击ToolsForm,ToolsForm是没有被激活的!

请问怎样实现,当我单机MainForm,再单击ToolsForm时,ToolsForm不被激活啊?谢谢!
...全文
167 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
星际 2010-12-11
  • 打赏
  • 举报
回复
我也遇到了这个问题,头痛
laptop8000 2010-01-28
  • 打赏
  • 举报
回复
up
benbenRH 2010-01-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cnzdgs 的回复:]
实在不行就另创建一个线程来显示ToolsForm。
[/Quote]

但是我的ToolsForm是工具窗口来的,它要操作MainForm里面的控件,跨线程不是及其麻烦?
dyx1235 2010-01-27
  • 打赏
  • 举报
回复
关注
cnzdgs 2010-01-27
  • 打赏
  • 举报
回复
实在不行就另创建一个线程来显示ToolsForm。
happyboyxq1985 2010-01-27
  • 打赏
  • 举报
回复
up
sito_hongta 2010-01-27
  • 打赏
  • 举报
回复
關注
KnowKjava 2010-01-27
  • 打赏
  • 举报
回复
CreateParams
leafold 2010-01-27
  • 打赏
  • 举报
回复
mark
cnzdgs 2010-01-27
  • 打赏
  • 举报
回复
加上:
protected override bool ShowWithoutActivation
{
get
{
return true;
}
}
benbenRH 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cnzdgs 的回复:]
加上:
C# codeprotectedoverridebool ShowWithoutActivation
{get
{returntrue;
}
}
[/Quote]

还是不行

111,120

社区成员

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

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

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