微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Windows窗体中的标准Windows菜单栏

我注意到,添加一个MenuStrip (从工具箱)到我的表单devise不会产生像许多本机Windows应用程序中看到的菜单栏。 相反,我得到一个像Visual Studio自己的菜单栏。 似乎没有一个MenuStrip的样式设置可以模仿更常见的原生菜单栏。@H_404_1@

有没有办法添加一个菜单栏到我的Windows窗体应用程序,看起来像记事本,任务pipe理器和其他人看到相同? (最好与devise师,但我不介意以编程方式添加它)。@H_404_1@

插图的屏幕截图:@H_404_1@

@H_404_1@@H_404_1@

我应该将敏感数据传递给.NET中的Process.Start调用吗?@H_404_1@

sql Server Compact Edition数据库部署策略@H_404_1@

一种可靠的方法来识别显示设备?@H_404_1@

testing鼠标指针在哪个屏幕上@H_404_1@

处理Windows USB事件@H_404_1@

使用.NETdebugging“Application.exe已停止工作”@H_404_1@

selectListView的特定列并将其打印在C#.net的新消息框中@H_404_1@

PrincipalContext.ValidateCredentials在XP上始终使用Machine ContextType返回False@H_404_1@

Windows编程与Unix编程有何不同@H_404_1@

如何search列表的距离低于F到P的项目,而不search整个列表?@H_404_1@

这很容易。@H_404_1@

转到您的工具箱,右键单击任何地方,然后选择“选择项目”。 当对话框加载并出现时,向下滚动直到看到MainMenu。 添加到工具箱,你已经有了一个本地的菜单栏!@H_404_1@

快乐的编码!@H_404_1@

你可以通过设置你的表单的Menu属性来做到这一点,就像这样:@H_404_1@

private void Form1_Load(object sender,EventArgs e) { this.Menu = new MainMenu(); MenuItem item = new MenuItem("File"); this.Menu.MenuItems.Add(item); item.MenuItems.Add("Save",new EventHandler(Save_Click)); item.MenuItems.Add("Open",new EventHandler(Open_Click)); item = new MenuItem("Edit"); this.Menu.MenuItems.Add(item); item.MenuItems.Add("copy",new EventHandler(copy_Click)); item.MenuItems.Add("Paste",new EventHandler(Paste_Click)); // etc ... } private void Save_Click(object sender,EventArgs e) { // save }@H_404_1@

这些菜单看起来像“正常的”系统菜单。@H_404_1@

不过,我找不到任何设计器支持。 在我的防守中,我并没有真正努力。@H_404_1@

而不是使用MainMenu组件,您可以为MenuStrip组件创建您自己的渲染器。 这里的优点是能够将图像添加到MenuStripItem对象。 这是自定义渲染器的pastebin:@H_404_1@

NativeRenderer@H_404_1@

在渲染器的构造函数中可以应用不同的主题。 尝试一下,看看原生主题。 要使用此渲染器,只需将实例设置为“ MenuStrip渲染器”属性即可:@H_404_1@

menuStrip.Renderer = new NativeRenderer([theme]);@H_404_1@

我通常将MenuStrip的RenderMode设置为System ,它提供了一个简约的单色菜单(没有渐变或任何颓废的东西)。@H_404_1@

如果这还不够,那么你可能需要跳过一些低级别的箍来得到你想要的。@H_404_1@

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐