相关疑难解决方法(0)

启动时单个表单隐藏

我有一个带有一个表单的应用程序,在Load方法中我需要隐藏表单.

表单将在需要时显示自己(按照outlook 2003样式弹出框的思路),但我可以'弄清楚如何在没有杂乱的情况下隐藏表单.

有什么建议?

c# vb.net winforms

72
推荐指数
7
解决办法
11万
查看次数

在启动时隐藏表单:为什么不这样.隐藏()隐藏我的表单?

我想在启动时隐藏我的应用程序的主窗口,所以我把它放在构造函数中:

this.Hide();
Run Code Online (Sandbox Code Playgroud)

这并不掩盖我的形式.看起来我只能通过按钮来隐藏表单.我在这里做错了吗?

c# forms

13
推荐指数
3
解决办法
3万
查看次数

PostMessage到隐藏表单第一次不起作用

我有一个出现在系统托盘中的C#WinForms应用程序.应用程序在加载时隐藏主窗体:

private void MainForm_Load(object sender, System.EventArgs e)
{
    Hide();
}
Run Code Online (Sandbox Code Playgroud)

对于相同的主窗体,我覆盖了WndProc以捕获自定义窗口消息(该消息通过RegisterWindowMessageWin32 API调用注册到Windows ).

protected override void WndProc(ref Message m)
{
    if (m.Msg == WM_MYCUSTOM_MESSAGE)
    {
        // Handle custom message
    }
}
Run Code Online (Sandbox Code Playgroud)

从外部C++应用程序,我正在使用PostMessage广播相同的自定义窗口消息.

UINT msg = RegisterWindowMessage(L"WM_MYCUSTOM_MESSAGE");
PostMessage(HWND_BROADCAST, msg, NULL, NULL);
Run Code Online (Sandbox Code Playgroud)

当我在首次启动C#应用程序后执行上面的代码时,它不会进入WndProc.显示主窗体后(通过双击系统托盘图标,实质上是一个Show()),捕获广播消息可以工作并在隐藏窗体后继续工作Hide().

任何人都可以解释为什么它Hide()MainForm_Load事件处理程序中的第一个之后不起作用?我是否过早隐藏表格?

EDIT1:好像它与加载时隐藏无关.即使没有最初的隐藏,我的主要形式WndProc只会在隐藏并重新显示之后开始接受广播帖子...

c# c++ windows-messages

5
推荐指数
1
解决办法
3442
查看次数

标签 统计

c# ×3

c++ ×1

forms ×1

vb.net ×1

windows-messages ×1

winforms ×1