我可以将图标设置为1x1或透明图标,但我不喜欢该解决方案,因为用户仍然可以点击该图标。如何在mdiChild最大化时隐藏UltraToolbar中的mdiChild图标?
我可以做这样的事情,如果它是mdiParents mainMenuStrip:
private void mainMenuStrip_ItemEventHandler(Object sender, ToolStripItemEventArgs e)
{
if (e.Item.Text == "")
{
e.Item.Visible = false;//This will hide any toolstrip items that do not have text... ex. the SystemMenu.
}
}
但UltraToolbarsManager.Toolbars没有这个事件。
将mdiChild的ShowIcon设置为false仅当mdiChild窗体未最大化时才有效。
我也尝试过载将MDIChild SizeChanged事件,并通过工具循环,看看我能找到一个隐藏,但没有工作,要么:
private void MdiChild_SizeChanged(object sender, EventArgs e)
{
Form theForm = sender as Form;
switch (theForm.WindowState)
{
case FormWindowState.Maximized:
theForm.Icon = Icon.FromHandle(Properties.Resources.blank.GetHicon());
foreach (UltraToolbar ut in UltraToolbarsManager1.Toolbars)
{
if (ut.IsMainMenuBar)
{
foreach (ToolBase tb in ut.Tools)
{
//This collection does not contain the one I want to hide.
// maybe?
if (tb is MdiMergePlaceholderTool)
{
tb.SharedProps.Visible = false;
}
}
}
}
break;
}
}
的UltraToolbarsManager和UltraToolbar不会出现有我可以处理,试图删除被合并到一个工具栏事情的任何事件......
这是确切的问题,我也有..但它不回答: http://www.infragistics.com/community/forums/t/33396.aspx
我觉得这是一个更新的链接到其他的什么职位建议,但改变100点的形式继承这样是不是一种选择对我来说: http://help.infragistics.com/Help/NetAdvantage/WinForms/2013.1/CLR4.0/html/Win_Creation_Filter.html
几个可能性: - 隐藏在OnItemAdded事件的项目。 - 从UltraToolbar删除图标..也许在一个OnMerge事件中。 - 如果无法隐藏/移除图标,则取消上下文菜单的事件。 - 获取对Icon项目的引用的一些方法会很好。
在此先感谢您的答复。
谢谢!创建过滤器代码完美工作。它仍然会缩进其他菜单项,就像图标在那里一样,但我可以处理它。 – Soenhay