我在WinForms中制作了多语言(计算机语言)记事本。我有一个名为“Languages”的toolstripmenuitem菜单条(如文件,编辑,查看等)。当你点击“语言”时,有几个可检查的菜单项。我想这样做:当一个项目被点击时,它会显示检查;当用户再次点击它时,它显示为未选中状态。我如何根据java,c,C++等语言来编译编译器。C#记事本项目帮助
0
A
回答
2
你不想检查,检查多种语言没有意义。你需要一个单选按钮。您可以通过覆盖菜单条的渲染器来获得一个。您还需要处理菜单项的CheckedChanged事件,以便只能选择一个。这个代码将做的伎俩:
public partial class Form1 : Form {
private ToolStripMenuItem[] languages;
private bool mBusy;
public Form1() {
InitializeComponent();
languages = new ToolStripMenuItem[] { javaToolStripMenuItem, cSharpToolStripMenuItem, pythonToolStripMenuItem };
foreach (var language in languages) {
language.CheckOnClick = true;
language.CheckedChanged += LanguageMenuItem_CheckedChanged;
}
menuStrip1.Renderer = new MyRenderer(languages);
}
void LanguageMenuItem_CheckedChanged(object sender, EventArgs e) {
if (mBusy) return;
mBusy = true;
ToolStripMenuItem item = sender as ToolStripMenuItem;
foreach (var language in languages) language.Checked = language == item;
mBusy = false;
}
private class MyRenderer : ToolStripProfessionalRenderer {
private ToolStripMenuItem[] languages;
public MyRenderer(ToolStripMenuItem[] languages) { this.languages = languages; }
protected override void OnRenderItemCheck(ToolStripItemImageRenderEventArgs e) {
ToolStripMenuItem item = e.Item as ToolStripMenuItem;
if (item != null && languages.Contains(item))
RadioButtonRenderer.DrawRadioButton(e.Graphics, e.ImageRectangle.Location,
System.Windows.Forms.VisualStyles.RadioButtonState.CheckedNormal);
else
base.OnRenderItemCheck(e);
}
}
}
+0
非常感谢。现在有人可以发布关于如何访问每种编程语言的编译器的代码。 – 2009-11-14 08:42:04
0
你应该有一个设置文件来存储每个编译器的路径/位置。当用户选择语言时,您应该获得所选语言的匹配编译器的路径/位置。
相关问题
- 1. 帮助基本MVC项目
- 2. HTML帮助应用程序记事本++
- 3. 记事本++帮助行的名称
- 4. C#速记帮助
- 5. GUI项目帮助
- 6. Visual C#初学者空项目帮助?
- 7. C#MDI事件帮助
- 8. 帮助卷曲和C# - 基本(GoPay项目)
- 9. 帮助编译silverlight项目!
- 10. 导轨项目帮助
- 11. corejava需要项目帮助
- 12. 的NSMutableString帮助目标C
- 13. 事件帮助
- 14. 记事本++菜单中缺少项目
- 15. 记事本++的项目文件?
- 16. 记事本++查找/替换正则表达式帮助
- 17. 需要帮助寻找与冒号记事本++
- 18. 记事本++的正则表达式的帮助
- 19. XML记事本2007年打破MS Access 2007帮助
- 20. 需要帮助在VB.NET列表/记事本
- 21. 请帮助我使用Android记事本教程
- 22. 我需要帮助UIView上的UITableView(故事板项目)
- 23. 需要帮助了解事件在C#
- 24. C#WinForms UserControl鼠标事件帮助
- 25. C#Xamarin Android。 ButtonClick事件帮助需要
- 26. 混合C#和HTML帮助器标记
- 27. 我需要帮助...........示例项目
- 28. 帮助推荐Qt开源项目
- 29. windows窗体帮助ERP项目
- 30. QuickBooks项目查询帮助需要
你的问题不是很清楚,你需要菜单或编译器列表的帮助吗? – 2009-11-13 14:33:31
如果可能的话,我希望能够同时使用这两种帮助。就像一个名为Compile的菜单项。 – 2009-11-13 14:35:26