アイコンを 1x1 または透過アイコンに設定することはできますが、ユーザーがまだクリックできるので、その解決策は好きではありません。
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 アイテムへの参照を取得する何らかの方法があればよいでしょう。
返信ありがとうございます。