<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Mono Winforms 中的菜單和工具欄 > 原文: [http://zetcode.com/gui/csharpwinforms/menustoolbars/](http://zetcode.com/gui/csharpwinforms/menustoolbars/) 在 Mono Winforms 教程的這一部分中,我們將討論菜單和工具欄。 菜單欄是 GUI 應用中最可見的部分之一。 它是位于各個菜單中的一組命令。 在控制臺應用中,您必須記住所有這些神秘命令,在這里,我們將大多數命令分組為邏輯部分。 有公認的標準可以進一步減少學習新應用的時間。 ## 簡單菜單 在第一個示例中,我們創建一個簡單的菜單。 `simplemenu.cs` ```cs using System; using System.Drawing; using System.Windows.Forms; class MForm : Form { public MForm() { Text = "Simple menu"; MenuStrip ms = new MenuStrip(); ms.Parent = this; ToolStripMenuItem file = new ToolStripMenuItem("&File"); ToolStripMenuItem exit = new ToolStripMenuItem("&Exit", null, new EventHandler(OnExit)); exit.ShortcutKeys = Keys.Control | Keys.X; file.DropDownItems.Add(exit); ms.Items.Add(file); MainMenuStrip = ms; Size = new Size(250, 200); CenterToScreen(); } void OnExit(object sender, EventArgs e) { Close(); } } class MApplication { public static void Main() { Application.Run(new MForm()); } } ``` 在我們的示例中,我們有一個菜單欄和一個菜單。 菜單內有一個菜單項。 如果選擇菜單項,則應用關閉。 注意如何關閉應用。 我們可以使用 `Ctrl + X` 快捷方式或按 `Alt` , `F` , `E` 鍵關閉它 。 ```cs MenuStrip ms = new MenuStrip(); ``` `MenuStrip`為我們的表單創建一個菜單系統。 我們將`ToolStripMenuItem`對象添加到 MenuStrip 中,這些對象代表菜單結構中的各個菜單命令。 每個`ToolStripMenuItem`可以是您的應用的命令,也可以是其他子菜單項的父菜單。 ```cs ToolStripMenuItem file = new ToolStripMenuItem("&File"); ``` 在這里,我們創建一個菜單。 ```cs ToolStripMenuItem exit = new ToolStripMenuItem("&Exit", null, new EventHandler(OnExit)); ``` 此行創建退出菜單項。 ```cs exit.ShortcutKeys = Keys.Control | Keys.X; ``` 我們提供了退出菜單項的快捷方式。 ```cs file.DropDownItems.Add(exit); ``` 退出菜單項將添加到菜單對象的下拉項中。 ```cs ms.Items.Add(file); ``` 在這里,我們將菜單對象添加到菜單欄中。 ```cs MainMenuStrip = ms; ``` `MenuStrip`已插入表格。 ![Simple menu](https://img.kancloud.cn/40/90/409048424a06174dd11de81db419db16_250x201.jpg) 圖:簡單菜單 ## 子菜單 每個菜單項也可以有一個子菜單。 這樣,我們可以將類似的命令分組。 例如,我們可以將隱藏/顯示各種工具欄(例如個人欄,地址欄,狀態欄或導航欄)的命令放置在稱為工具欄的子菜單中。 `submenu.cs` ```cs using System; using System.Drawing; using System.Windows.Forms; class MForm : Form { public MForm() { Text = "Submenu"; MenuStrip ms = new MenuStrip(); ms.Parent = this; ToolStripMenuItem file = new ToolStripMenuItem("&File"); ToolStripMenuItem exit = new ToolStripMenuItem("&Exit", null, new EventHandler(OnExit)); ToolStripMenuItem import = new ToolStripMenuItem(); import.Text = "Import"; file.DropDownItems.Add(import); ToolStripMenuItem temp = new ToolStripMenuItem(); temp.Text = "Import newsfeed list..."; import.DropDownItems.Add(temp); temp = new ToolStripMenuItem(); temp.Text = "Import bookmarks..."; import.DropDownItems.Add(temp); temp = new ToolStripMenuItem(); temp.Text = "Import mail..."; import.DropDownItems.Add(temp); file.DropDownItems.Add(exit); ms.Items.Add(file); MainMenuStrip = ms; Size = new Size(380, 200); CenterToScreen(); } void OnExit(object sender, EventArgs e) { Close(); } } class MApplication { public static void Main() { Application.Run(new MForm()); } } ``` 在此示例中,我們創建一個子菜單。 子菜單導入具有三個菜單項。 ```cs ToolStripMenuItem import = new ToolStripMenuItem(); import.Text = "Import"; ``` `ToolStripMenuItem`可以是菜單或菜單項。 在這里它將作為子菜單。 ```cs ToolStripMenuItem temp = new ToolStripMenuItem(); temp.Text = "Import newsfeed list..."; import.DropDownItems.Add(temp); ``` 在這里,我們創建一個菜單項并將其添加到“導入”子菜單。 ![Submenu](https://img.kancloud.cn/35/c3/35c3ea33b9be46722b9c51d16e0870e6_380x201.jpg) 圖:子菜單 ## 復選菜單項 下一個代碼示例演示如何創建復選菜單項。 `checkmenuitem.cs` ```cs using System; using System.Drawing; using System.Windows.Forms; class MForm : Form { private StatusBar sb; private MenuItem viewStatusBar; public MForm() { Text = "Check menu item"; sb = new StatusBar(); sb.Parent = this; sb.Text = "Ready"; MainMenu mainMenu = new MainMenu(); MenuItem file = mainMenu.MenuItems.Add("&File"); file.MenuItems.Add(new MenuItem("E&xit", new EventHandler(OnExit), Shortcut.CtrlX)); MenuItem view = mainMenu.MenuItems.Add("&View"); viewStatusBar = new MenuItem("View StatusBar"); viewStatusBar.Checked = true; viewStatusBar.Click += new EventHandler(ToggleStatusBar); view.MenuItems.Add(viewStatusBar); Menu = mainMenu; Size = new Size(250, 200); CenterToScreen(); } void OnExit(object sender, EventArgs e) { Close(); } void ToggleStatusBar(object sender, EventArgs e) { bool check = viewStatusBar.Checked; if (check) { sb.Visible = false; viewStatusBar.Checked = false; } else { sb.Visible = true; viewStatusBar.Checked = true; } } } class MApplication { public static void Main() { Application.Run(new MForm()); } } ``` 我們有兩個菜單。 文件和查看。 “查看”菜單具有一個菜單項,用于切換狀態欄的可見性。 ```cs MainMenu mainMenu = new MainMenu(); ``` 在此示例中,我們使用`MainMenu`控件。 要創建菜單欄,我們可以使用`MainMenu`或`MenuStrip`控件。 后者具有一些附加功能。 ```cs viewStatusBar.Checked = true; ``` 默認情況下會選中此菜單項,因為狀態欄從應用的開始就可見。 ```cs bool check = viewStatusBar.Checked; if (check) { sb.Visible = false; viewStatusBar.Checked = false; } else { sb.Visible = true; viewStatusBar.Checked = true; } ``` 我們確定菜單項是否被選中。 我們根據`check`值顯示和隱藏狀態欄和復選標記。 ![Check menu item](https://img.kancloud.cn/e1/51/e151f347d320f7e5a9028d085ebc60d2_250x201.jpg) 圖:選中菜單項 ## 圖像,分隔符 我們將進一步增強對`MenuStrip`控件的了解。 我們將創建一個帶有圖像的菜單項,并顯示如何使用分隔符將其分開。 `menustrip.cs` ```cs using System; using System.Drawing; using System.Windows.Forms; class MForm : Form { public MForm() { Text = "MenuStrip"; Size = new Size(250, 200); MenuStrip menuStrip = new MenuStrip(); ToolStripMenuItem titem1 = new ToolStripMenuItem("File"); menuStrip.Items.Add(titem1); ToolStripMenuItem titem2 = new ToolStripMenuItem("Tools"); menuStrip.Items.Add(titem2); ToolStripMenuItem subm1 = new ToolStripMenuItem("New"); subm1.Image = Image.FromFile("new.png"); titem1.DropDownItems.Add(subm1); ToolStripMenuItem subm2 = new ToolStripMenuItem("Open"); subm2.Image = Image.FromFile("open.png"); titem1.DropDownItems.Add(subm2); titem1.DropDownItems.Add(new ToolStripSeparator()); ToolStripMenuItem subm3 = new ToolStripMenuItem("Exit"); subm3.Image = Image.FromFile("exit.png"); titem1.DropDownItems.Add(subm3); subm3.Click += OnExit; Controls.Add(menuStrip); MainMenuStrip = menuStrip; CenterToScreen(); } public static void Main() { Application.Run(new MForm()); } void OnExit(object sender, EventArgs e) { Close(); } } ``` 我們的代碼示例中有兩個菜單。 文件和工具。 在文件中,我們有三個帶有圖像的菜單項。 我們還有一個分隔符。 在此示例中,PNG 圖像必須位于當前工作目錄中。 ```cs ToolStripMenuItem subm1 = new ToolStripMenuItem("New"); subm1.Image = Image.FromFile("new.png"); titem1.DropDownItems.Add(subm1); ``` 在這里,我們創建第一個菜單項。 要將圖像添加到項目,我們將`Image`屬性設置為圖像。 我們使用靜態`FromFile()`方法從指定的文件創建一個`Image`。 ```cs titem1.DropDownItems.Add(new ToolStripSeparator()); ``` 在這里,我們向“文件”菜單添加分隔符。 ![MenuStrip](https://img.kancloud.cn/7a/92/7a9266b85848effa588217824a6a4cf2_250x201.jpg) 圖:圖像 s and separator ## 工具欄 菜單將我們可以在應用中使用的所有命令分組。 使用工具欄可以快速訪問最常用的命令。 `ToolBar`控件用于顯示`ToolBarButton`控件。 我們可以通過創建`ImageList`將圖像分配給按鈕。 然后,我們將圖像列表分配給工具欄的`ImageList`屬性,并為每個`ToolBarButton`將圖像索引值分配給`ImageIndex`屬性。 `toolbar.cs` ```cs using System; using System.Drawing; using System.Windows.Forms; public class MForm : Form { private ImageList toolBarIcons; private ToolBarButton save; private ToolBarButton exit; private ToolBar toolBar; public MForm() { Size = new Size(250, 200); Text = "Simple toolbar"; toolBar = new ToolBar(); toolBar.Parent = this; toolBarIcons = new ImageList(); save = new ToolBarButton(); exit = new ToolBarButton(); save.ImageIndex = 0; save.Tag = "Save"; exit.ImageIndex = 1; exit.Tag = "Exit"; toolBar.ImageList = toolBarIcons; toolBar.ShowToolTips = true; toolBar.Buttons.AddRange(new ToolBarButton[] {save, exit}); toolBar.ButtonClick += new ToolBarButtonClickEventHandler(OnClicked); toolBarIcons.Images.Add(new Icon("new.ico")); toolBarIcons.Images.Add(new Icon("exit.ico")); CenterToScreen(); } static void Main() { Application.Run(new MForm()); } void OnClicked(object sender, ToolBarButtonClickEventArgs e) { if (e.Button.Tag.Equals("Exit")) Close(); } } ``` 在我們的示例中,我們在工具欄上顯示了兩個按鈕。 ```cs toolBar = new ToolBar(); ``` 在這里,我們創建`ToolBar`控件。 ```cs toolBarIcons = new ImageList(); ``` 創建圖像列表。 ```cs save = new ToolBarButton(); exit = new ToolBarButton(); ``` 這是兩個工具欄按鈕。 ```cs save.ImageIndex = 0; ``` 我們確定圖像列表中的哪個圖標將用于保存工具欄按鈕。 ```cs toolBar.Buttons.AddRange(new ToolBarButton[] {save, exit}); ``` `ToolBarButton`控件已添加到工具欄。 ```cs toolBarIcons.Images.Add(new Icon("new.ico")); toolBarIcons.Images.Add(new Icon("exit.ico")); ``` 圖標將添加到圖像列表。 ```cs if (e.Button.Tag.Equals("Exit")) Close(); ``` 如果按鈕的標簽等于`"Exit"`,我們將關閉該應用。 ![ToolBar](https://img.kancloud.cn/8d/ee/8dee1838eece95ec8f2b0cc5d3d9e0fa_250x201.jpg) 圖:工具欄 Winforms 教程的這一部分是關于菜單和工具欄的。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看