/// <summary> /// 动态添加串口号到菜单栏 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Form_Main_Load(object sender, EventArgs e) { foreach (string com in System.IO.Ports.SerialPort.GetPortNames())//枚举所有可用的串口 { AddContextMenu(com, Menu_ComChoose.DropDownItems, new EventHandler(MenuClicked)); } } /// <summary> /// 添加目前存在的串口号到Menu_ComChoose菜单的子菜单栏 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Menu_Refresh_Click(object sender, EventArgs e) { for (int i = 1; i < Menu_ComChoose.DropDownItems.Count; i++) { Menu_ComChoose.DropDownItems.RemoveAt(i); } foreach (string com in System.IO.Ports.SerialPort.GetPortNames())//枚举所有可用的串口 { AddContextMenu(com, Menu_ComChoose.DropDownItems, new EventHandler(MenuClicked)); } Menu_ComChoose.ShowDropDown();//展开子菜单 } /// <summary> /// 添加子菜单 /// </summary> /// <param name="text">要显示的文字,如果为 - 则显示为分割线</param> /// <param name="cms">要添加到的子菜单集合</param> /// <param name="callback">点击时触发的事件</param> /// <returns>生成的子菜单,如果为分隔条则返回null</returns> ToolStripMenuItem AddContextMenu(string text, ToolStripItemCollection cms, EventHandler callback) { if (text == "-") { ToolStripSeparator tsp = new ToolStripSeparator(); cms.Add(tsp); return null; } else if (!string.IsNullOrEmpty(text)) { ToolStripMenuItem tsmi = new ToolStripMenuItem(text); //tsmi.Tag = text + "TAG"; if (callback != null) tsmi.Click += callback; cms.Add(tsmi); return tsmi; } return null; } /// <summary> ///动态子菜单的响应事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void MenuClicked(object sender, EventArgs e) { Dev_IP_param.comPort = (sender as ToolStripMenuItem).Text; //Console.WriteLine("Dev_IP_param.comPort="+Dev_IP_param.comPort); }
![]() |
Austin Liu 刘恒辉
Project Manager and Software Designer E-Mail:lzhdim@163.com Blog:https://lzhdim.cnblogs.com 欢迎收藏和转载此博客中的博文,但是请注明出处,给笔者一个与大家交流的空间。谢谢大家。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix