C# WebBrowser WinForms中的选定文件项

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

我想用WinForms做一个文件管理器。我制作了一个导航栏,两个按钮,一个用于返回,另一个用于向前导航

当我在WebBrowser表单中并按下BACKSPACE键时,我想返回导航。显然这很好,但是当我想删除重命名文件的字符时,会调用BACKSPACE key事件

如何检查WebBrowser中是否选择了文件,并仅在没有选择的情况下应用返回导航?

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