C# WebBrowser WinForms中的选定文件项
我想用WinForms做一个文件管理器。我制作了一个导航栏,两个按钮,一个用于返回,另一个用于向前导航 当我在WebBrowser表单中并按下BACKSPACE键时,我想返回导航。显然这很好,但是当我想删除重命名文件的字符时,会调用BACKSPACE key事件 如何检查WebBrowser中是否选择了文件,并仅在没有选择的情况下应用返回导航?C# WebBrowser WinForms中的选定文件项,c#,winforms,webbrowser-control,selected,backspace,C#,Winforms,Webbrowser Control,Selected,Backspace,我想用WinForms做一个文件管理器。我制作了一个导航栏,两个按钮,一个用于返回,另一个用于向前导航 当我在WebBrowser表单中并按下BACKSPACE键时,我想返回导航。显然这很好,但是当我想删除重命名文件的字符时,会调用BACKSPACE key事件 如何检查WebBrowser中是否选择了文件,并仅在没有选择的情况下应用返回导航? private void webBrowser1_PreviewKeyDown(object sender, PreviewKeyDownEventA
private void webBrowser1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Back)
{
//Do only if no selected items in WebBrowser
webBrowser1.GoBack();
}
}
我可能会尝试启动一个名为
fileSelected=false的全局bool变量代码>
您使用什么对象来显示文件?换句话说,在列表中选择文件的对象是什么?我假设一个列表框
然后,使用列表框选择文件时,将其设置为true。SelectedIndexChanged
事件。有关处理此事件的详细信息
您的if
语句将如下所示:
if (e.KeyCode == Keys.Back && !fileSelected)
{
//Do only if no selected items in WebBrowser
webBrowser1.GoBack();
}
屏幕截图也可能有帮助。希望这有帮助。好的,试试这个。这是一个有点黑客,但我认为它会做你想让它做的事情(即检测是否选择了任何文件)
这就是它的本质:
一,。立即清除剪贴板
二,。发送复制选择内容的命令(无论选择了一个还是多个文件)
三,。返回选定到StringCollection中的文件列表
四,。测试StringCollection是否为空
就像我说的,有点像黑客,但我不认为有任何其他方法可以确定是否有选择使用任何其他方法。我只是用截图编辑我的文章。我使用WebBrowser控件,在屏幕截图中,我想知道是否选择了“serimag.png”。类似于ListBox中的SelectedIndex。它不适用于我:“System.Windows.Forms.Clipboard”不包含“GetFiledList”的定义
using System.Collections.Specialized;
private void webBrowser1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
Clipboard.Clear();
SendKeys.Send("^C");
StringCollection sc = Clipboard.GetFileDroplist();
Clipboard.Clear();
if(sc.Count == 0) // Meaning no files in the list were copied
{
if (e.KeyCode == Keys.Back)
{
//Do only if no selected items in WebBrowser
webBrowser1.GoBack();
}
}
}