Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当用户输入特定字符串时,调用事件_C#_Html - Fatal编程技术网

C# 当用户输入特定字符串时,调用事件

C# 当用户输入特定字符串时,调用事件,c#,html,C#,Html,我正在用C#构建一个“假”web浏览器。它仍然使用VisualStudio中的IE浏览器模块,但与模块中显示的在线网页不同,我将其设计为仅显示本地HTML文件。到目前为止,我有一个“单击”事件,当单击按钮时,它会在浏览器模块中显示单个本地HTML文件 以下是正在进行的“单击”事件: private void button4_Click(object sender, EventArgs e) { string curDir = Directory.GetCurrentDirectory()

我正在用C#构建一个“假”web浏览器。它仍然使用VisualStudio中的IE浏览器模块,但与模块中显示的在线网页不同,我将其设计为仅显示本地HTML文件。到目前为止,我有一个“单击”事件,当单击按钮时,它会在浏览器模块中显示单个本地HTML文件

以下是正在进行的“单击”事件:

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);
}