我有一个小小的问题和这个问题有关:How to create navigation inside program Form - noob再次提醒。
我试图在c#程序中创建一个导航,就像网站上的动态下拉菜单。我使用的是不同的C#表单,比如每一个都是不同的网页内容。
是否可以在窗体之间与导航共享菜单?(最简单的网页相似性:包含(‘menu.php’)-把所有的东西放在一个文件中,我在每个网页中嵌入)
否则,需要将菜单条复制到每个新表单(然后是menustrip更改,然后呢?)再复制一次?:)
发布于 2018-02-13 13:13:24
您可以通过将选项卡与Srip连接起来,如下所示:
//make tabs invisible (so you wont see them changing)
private void HideAllTabsOnTabControl(TabControl theTabControl)
{
theTabControl.Appearance = TabAppearance.FlatButtons;
theTabControl.ItemSize = new Size(0, 1);
theTabControl.SizeMode = TabSizeMode.Fixed;
}
//hide all tabs
private void hide_all_tabs() {
Tab_content.TabPages.Remove(tabPage1);
Tab_content.TabPages.Remove(tabPage2);
Tab_content.TabPages.Remove(tabPage3);
Tab_content.TabPages.Remove(tabPage4);
}
private void materiałyQCToolStripMenuItem_Click(object sender, EventArgs e)
{
hide_all_tabs(); //hide everything
Tab_content.TabPages.Add(tabPage1); //schow just first tab
}
private void analizatoryQCToolStripMenuItem_Click(object sender, EventArgs e)
{
hide_all_tabs();
Tab_content.TabPages.Add(tabPage2);
}
private void QCzDzisiajToolStripMenuItem_Click(object sender, EventArgs e)
{
hide_all_tabs();
Tab_content.TabPages.Add(tabPage3);
}
private void standlabToolStripMenuItem_Click(object sender, EventArgs e)
{
hide_all_tabs();
Tab_content.TabPages.Add(tabPage4);
}发布于 2022-04-03 16:08:19
例如,如果您希望在ContextMenu和主窗体MenuStrip之间共享项

没有项目的MenuStrip

ContextMenu项目

带有从ContextMenu复制的项目的ContextMenu
在主要形式上,您可以:
ToolStripMenuItem toolStripMoved;
ToolStripItem[] itemsArrayMoved;
private void Edit_DropDownOpening(object sender, EventArgs e)
{
var doc = DockPanel.GetDocuments().FirstOrDefault(t => t.Visible) as DockDocument;
if (doc != null)
{
toolStripMoved = doc.ContextMenuStrip.Items["Edit"] as ToolStripMenuItem;
if (toolStripMoved != null)
{
var menu = (sender as ToolStripMenuItem);
itemsArrayMoved = Helper.GetAllChildren(toolStripMoved);
foreach (ToolStripItem item in itemsArrayMoved)
{
if (item.Name.Equals("Edit") == false)
menu.DropDownItems.Add(item);
}
}
}
}
private void Edit_DropDownClosed(object sender, EventArgs e)
{
if (toolStripMoved != null)
{
foreach (ToolStripItem item in itemsArrayMoved)
{
if (item.Name.Equals("Edit") == false)
toolStripMoved.DropDownItems.Add(item);
}
}
}
static private ToolStripItem[] GetAllChildren(ToolStripItem item)
{
List<ToolStripItem> Items = new List<ToolStripItem>() { item };
if (item is ToolStripMenuItem)
foreach (ToolStripItem i in ((ToolStripMenuItem)item).DropDownItems)
Items.AddRange(GetAllChildren(i));
else if (item is ToolStripSplitButton)
foreach (ToolStripItem i in ((ToolStripSplitButton)item).DropDownItems)
Items.AddRange(GetAllChildren(i));
else if (item is ToolStripDropDownButton)
foreach (ToolStripItem i in ((ToolStripDropDownButton)item).DropDownItems)
Items.AddRange(GetAllChildren(i));
return Items.ToArray();
}https://stackoverflow.com/questions/20575390
复制相似问题