C# 当用户输入特定字符串时,调用事件
我正在用C#构建一个“假”web浏览器。它仍然使用VisualStudio中的IE浏览器模块,但与模块中显示的在线网页不同,我将其设计为仅显示本地HTML文件。到目前为止,我有一个“单击”事件,当单击按钮时,它会在浏览器模块中显示单个本地HTML文件 以下是正在进行的“单击”事件:C# 当用户输入特定字符串时,调用事件,c#,html,C#,Html,我正在用C#构建一个“假”web浏览器。它仍然使用VisualStudio中的IE浏览器模块,但与模块中显示的在线网页不同,我将其设计为仅显示本地HTML文件。到目前为止,我有一个“单击”事件,当单击按钮时,它会在浏览器模块中显示单个本地HTML文件 以下是正在进行的“单击”事件: private void button4_Click(object sender, EventArgs e) { string curDir = Directory.GetCurrentDirectory()
private void button4_Click(object sender, EventArgs e)
{
string curDir = Directory.GetCurrentDirectory();
this.webBrowser1.Url = new Uri(String.Format("file:///{0}/post-op/index.html", curDir));
}
我计划有一个文本框或组合框(更方便的),用户可以在其中输入一个假“网址”(类似www.post-op.com),然后按enter键。然后,程序将读取字符串并找到与输入的字符串对应的本地HTML索引文件(即“file://{0}/post op/index.HTML”)。听起来您可以使用字典存储关键字和属于该关键字的文件名:
var filemapping = new Dictionary<string, string>
{
{ "pre-op", "file:///{0}/pre-op/index.html" },
{ "post-op", "file:///{0}/post-op/index.html" },
...
};
字典方法的另一个好处是,您可以提供基于
文件映射的自动完成数据或下拉列表。关键字谢谢@CodeCaster我更新了描述,希望能提供更多细节。谢谢@CodeCaster这真的很有帮助。几个问题:这一切是否都应该包装在自己的类中,然后在我创建按enter键和/或单击“搜索”按钮的事件时调用。另外,我以前的代码在这种情况下是否无用?似乎NavigateTo没有被识别为一个函数……您是否将它放在自己的类中对功能并不重要。我已经更新了我的答案,看起来更像你的代码。太好了!除了文件的路径之外,其他一切都正常工作,很难找到放置现有代码的位置。现在都修好了。谢谢你的耐心。
var textEntered = textBox1.Text;
string filename;
if (filemapping.TryGetValue(textEntered, out filename))
{
string curDir = Directory.GetCurrentDirectory();
var uri = new Uri(String.Format(filename, curDir));
webBrowser1.Navigate(uri);
}