160;介绍
本文介绍了在C#。NET上下文菜单的基础知识,而且还到一些关于如何可以动态生成的文本在上下文菜单中的细节深入研究。你不会需要所有这一切,但我认为它的价值,即使你不。如果你想一个quot;谷歌Forquot,在你的程序的上下文菜单,这篇文章会给你一些提示。背景
当我设计一个方案,我总是代码重要的是,后端代码。这是好的,但在某些时候,我意识到我需要做出更好的界面(甚至创建一个摆在首位的接口)。而且,一旦我添加的设施,如按钮,菜单,偏好对话框等,我不知道我怎么没有他们的生活。有一个漂亮的界面,使测试程序更愉快 - 我什至不说用户可能会觉得如何。了这么久,我忽略了用户界面和公正的算法设计和逻辑集中,但我来实现用户界面使方案好得多。我想这是真的,我没有在命令行上浏览网页 - 我使用的是Safari(WebKit的),这是相当好看。我用的是Vista,其中有各种半透明和阴影。所以 - 我喜欢漂亮的界面,所以我应该把一些精力,做出漂亮的界面
我的程序有书签系统,某些菜单项,一个状态栏,和输入框(按键时),可即时更新。定义文本框。该方案是有趣的发挥有点。今天我加入的方式为用户右键单击一个字的定义框,这个词在上下文菜单中查找。这不是一个很难的事情,但它的东西,会更容易在一个关键的情况,如果你已经在做一个测试项目。此功能的一些要求:的选择必须出现在选定的文本上下文menu.The引号内,必须进行消毒,然后在上下文菜单中显示(清除无用的字符)。使用代码
因此,这里就是我did.Create一个新的表单元素,在设计师 - 一个上下文菜单条。在右边的"工具箱",而在表单的设计,和双击的ContextMenu。这将会把一个上下文菜单的代表在任何静态上下文,在上下文菜单中的菜单项(它会出现在左上角)tray.Type。在第一个屏幕,静态文本将quot; Copyquot的ContextMenu,以下三个事件添加事件处理程序:开业,开放,ItemClicked。要做到这一点的最好办法是选择在设计师的托盘底部的ContextMenu,然后去"属性"窗格中,然后单击闪电。在这里,你可以看到可以使事件。向下滚动到ItemClicked,开放,并开设了活动,并在旁边的ID空间,双击。
在上面的图片,我点击的ContextMenu项目在quot; trayquot,然后在"属性"(在右边),我选择了闪电,和旁边的空间字开幕双击。
确保挂钩的形式控制,你想让它出现在上下文菜单中!点击你想要的上下文菜单的形式,然后按一下就可以了。然后,在"属性"窗格中,选择您的新的ContextMenu它说的ContextMenuStrip。
权
您可能需要修改之前,你把它在上下文菜单中的显示选定的文本。如果需要,创建一个漂亮的成员函数与正则表达式或只是一些普通的输入检查代码..
所以,在这里你生成动态文本 - 在这个例子中,"查找{string}的quot; ,或在不同的程序,这可能是"谷歌。{字符串} quot;
最后,我们要真正做一些事情,当用户点击的ContextMenu!我们将使用的ItemClicked事件处理程序。如果它不存在,双击下ItemClicked属性的条目。这是EventHandler的你可以使用的一个例子。有许多方法来实现这些东西。这里有一种方法:{C}void contextMenuStrip1_Opened(object sender, EventArgs e)
{
// get the text from the textbox. then, set the second item in the context menu
// to the string "Lookup {string}". You could also use the text "Google For".
string text = textBox1.SelectedText;
// you will want to write a method to "clean up" the text variable here,
// but you can figure out that easily on your own.
contextMenuStrip1.Items[1].Text = "Lookup " + text;
// save our lookup string for use later.
contextMenuStrip1.Tag = text;
}
这将创建的第一个屏幕的效果。 "谷歌Forquot;范围内的项目,你的心脏的内容!一个用户的喜好的Web浏览器会弹出,如果你使用的Process.Start()。