C# 我的代码中缺少什么。。如何实现同样的目标?
代码: 您好,上面的代码在windowsmobile中首次启动表单时运行良好,它隐藏了windowsmobile中表单的sip按钮, 但是如果我点击菜单栏,sip按钮会再次出现。。我不知道如何完全消除sip按钮。。请帮我解决这个问题 我声明我根本不希望windowsmobile中的表单使用sip按钮。。我正在使用.NETCFC# 我的代码中缺少什么。。如何实现同样的目标?,c#,.net,windows-mobile,compact-framework,C#,.net,Windows Mobile,Compact Framework,代码: 您好,上面的代码在windowsmobile中首次启动表单时运行良好,它隐藏了windowsmobile中表单的sip按钮, 但是如果我点击菜单栏,sip按钮会再次出现。。我不知道如何完全消除sip按钮。。请帮我解决这个问题 我声明我根本不希望windowsmobile中的表单使用sip按钮。。我正在使用.NETCF 谢谢当你说你点击“菜单栏”时,你说的是你写的自定义栏还是所有程序(除了全屏程序)顶部的标准栏(带有开始菜单、时钟等) 如果你说的是普通的开始菜单栏,当你点击它时,你的程序不
谢谢当你说你点击“菜单栏”时,你说的是你写的自定义栏还是所有程序(除了全屏程序)顶部的标准栏(带有开始菜单、时钟等) 如果你说的是普通的开始菜单栏,当你点击它时,你的程序不再是活动的,这就是为什么SIP按钮被重新绘制的原因。如果是这种情况,您可能可以使用
激活的
事件再次尝试隐藏SIP按钮
额外注意:当用户再次在表单中单击时,此代码只会重新隐藏SIP按钮,直到发生这种情况,它才会运行
以下是我描述的一个想法:
[DllImport("AYGShell.dll")]
static extern Int32 SHFullScreen(IntPtr hwndRequester, UInt32 dwState);
public const UInt32 SHFS_SHOWSIPBUTTON = 0x0004;
public const UInt32 SHFS_HIDESIPBUTTON = 0x0008;
public Form1()
{
InitializeComponent();
}
private void OnPaint(object sender, PaintEventArgs e)
{
HideSipButton();
}
private void HideSipButton()
{
UInt32 dwState = SHFS_HIDESIPBUTTON;//: SHFS_SHOWSIPBUTTON;
SHFullScreen(this.Handle, dwState);
}
重写Form.OnActivated方法并调用HideSipButton。 E.x.:
你看到这个了吗?还有这个问题(不确定是否对你有帮助):谢谢,我会试试,但我这里没有使用任何面板。这是默认面板。可能有一些简单的技巧可以隐藏。。所以我正在搜索。当您可以直接附加到事件时,为什么要覆盖它?请参见“备注”部分。“OnActivated方法还允许派生类在不附加委托的情况下处理事件。重写此方法是在派生类中处理事件的首选技术。”-有意思,我不知道。嘿,它很管用。。只是在一开始。。若我点击第一个SIP按钮,那个么若我点击SIP按钮,它将调用绘画事件,然后它将再次被隐藏。。当我点击菜单栏时,表单激活和绘制事件都不会出现。
public Form1()
{
InitializeComponent();
this.Activated += new EventHandler(Form1_Activated);
}
private void Form1_Activated(object sender, EventArgs e)
{
HideSipButton();
}
private void OnPaint(object sender, PaintEventArgs e)
{
HideSipButton();
}
protected override void OnActivated(EventArgs e)
{
HideSipButton();
return base.Equals(e);
}