3
A
回答
3
在主窗口中添加這些:
public static MainForm Current;
public string FileLogin
{
get { return fileLoginToolStripMenuItem.Text; }
set { fileLoginToolStripMenuItem.Text = value; }
}
顯然使用您設置或已自動爲登錄/註銷菜單項的菜單條項設置的名稱。然後在主窗體的窗體構造函數中設置Current。
public MainForm()
{
InitializeComponent();
Current = this;
}
然後從其他窗口/表格,您可以撥打電話(設定值):
MainForm.Current.FileLogin = "Logout";
但比這更好的是,你的子窗口上做一個事件,
public event Action UserLoggedIn = delegate { };
並且在MainForm上MainForm訂閱與上述相反的事件...
ChildForm.Current.UserLoggedIn +=() => FileLogin = "Logout";
並讓孩子在用戶登錄時提起事件,UserLoggedIn()
。
2
您可以向您的MDI容器添加可從其任何子項調用的公共方法。
假設,這種方法被稱爲SetLoggedStatus
(在MDI容器)
public void SetLoggedStatus(bool status)
{
ToolStripMenuItem loginMenu = MenuStrip1.Items(0) as ToolStripMenuItem:
loginMenu.DropDownItems[0].Text = (status == true ? "Logout" : "Login");
}
現在我們需要調用從MDI子窗體該公共方法。 每個MDIChild形式具有指向回的MdiParent 我們可以使用該屬性鑄造的一般形式實例正確的MDI父
屬性(登錄後在MDIChild和假設的的MdiParent是一個名爲MyParentForm窗體類)
MyParentForm f = this.MDIParent as MyParentForm;
if(f != null)
f.SetLoggedStatus(true);
1
這是如何從一個MDI子進入主菜單項:
// this button in the child form
private void button1_Click(object sender, EventArgs e) {
ToolStripMenuItem tsm;
// file menu
tsm = (ToolStripMenuItem)this.MdiParent.MainMenuStrip.Items[0];
MessageBox.Show(tsm.DropDownItems[0].Name);
// first menu under File Menu
tsm.DropDownItems[0].BackColor = Color.Red;
// second menu under File Menu
tsm.DropDownItems[1].BackColor = Color.Wheat;
}
您可以更改字體或文本同樣的方式;而不是背景色,您可以使用.text
。
相關問題
- 1. 從Menustrip的點擊子菜單項中提取文本
- 2. 更改窗口菜單的位置
- 3. 如何更改菜單文本
- 4. 從子窗口訪問下拉菜單
- 5. 如何從.cs文件更改WPF菜單項中的文本?
- 6. 更改上下文樣式菜單窗口10
- 7. 如何更改子菜單的位置?
- 8. 如何創建文本菜單和僅文本子菜單?
- 9. QMdiArea:更改子窗口
- 10. 如何添加更多項目到窗口上下文菜單
- 11. 如何從Windows窗體應用程序中的MenuStrip隱藏特定菜單項
- 12. 如何看到真正的menustrip的toolstripmenuitem及其子菜單?
- 13. 如何將子菜單項添加到MenuStrip?
- 14. Android - 如何更改窗口?
- 15. 如何在MenuStrip上點擊菜單時切換按鈕以更改顏色?
- 16. 如何更改菜單欄中子菜單的標籤顏色?
- 17. 如何更改菜單的動作欄子菜單項風格
- 18. 點擊窗口中的子菜單項
- 19. 如何更改MenuStrip的外觀
- 20. C#如何更改menuStrip懸停顏色?
- 21. WPF:更改菜單項的文本上下文菜單
- 22. 如何從子窗體管理Mdiparent中的menuStrip?
- 23. 窗口從文本
- 24. 使用菜單更改文本字體
- 25. 更改AppBar的菜單文本
- 26. 更改菜單項的文本顏色
- 27. NSUndoManager setActionName:不更改菜單文本
- 28. Bitrix24 CRM菜單標籤文本更改
- 29. 如何在父窗口中更改url後在父窗口中運行子窗口java腳本函數?
- 30. 如何改變AppCompatButton菜單項文本
謝謝,我使用第一種方法,我無法進行第二項工作。 – Zar