.net 指示列表视图中的选定项

.net 指示列表视图中的选定项,.net,winforms,.net,Winforms,我在.NET Winforms中有一个ListView控件,其中包含目录中的文件名。当第一次显示控件时,我填充listview,然后以编程方式选择列表中的第一项,因此: if (lvwFiles.Items.Count > 0) { ListViewItem firstItem = lvwFiles.Items[0]; firstItem.Selected = true; } 这很好,除了列表中的第一个项目应该以视觉方式突出显示(反

我在.NET Winforms中有一个ListView控件,其中包含目录中的文件名。当第一次显示控件时,我填充listview,然后以编程方式选择列表中的第一项,因此:

    if (lvwFiles.Items.Count > 0)
    {
        ListViewItem firstItem = lvwFiles.Items[0];
        firstItem.Selected = true;
    }
这很好,除了列表中的第一个项目应该以视觉方式突出显示(反向突出显示?)以向用户指示它是所选的项目,如果用户单击其中一个项目就会发生这种情况


这似乎是一个愚蠢的问题,但我环顾了Stackoverflow和Elsehare,没有看到明显的答案。有没有一种简单的方法可以通过设置属性或类似的东西来实现这一点?

不确定这是否有效,因为我还没有运行程序,但您不能选择所需的行(从lvwFile.Items)并将所选值设置为true。例如:

temp.Items(rowIndex).Selected

不确定这是否有效,因为我尚未运行程序,但您无法选择所需的行(从lvwFile.Items)并将所选值设置为true。例如:

temp.Items(rowIndex).Selected

注册selectedIndexChanged事件。在这里,您可以对所选项目执行所需的任何视觉高亮显示

    void listView1_SelectedIndexChanged( object sender, EventArgs e )
    {
        foreach ( ListViewItem lvi in listView1.SelectedItems )
        {
            lvi.BackColor = Color.Black;
            lvi.ForeColor = Color.Chocolate;
        }
        // TODO: Reset the other items to normal.
    }

注册selectedIndexChanged事件。在这里,您可以对所选项目执行所需的任何视觉高亮显示

    void listView1_SelectedIndexChanged( object sender, EventArgs e )
    {
        foreach ( ListViewItem lvi in listView1.SelectedItems )
        {
            lvi.BackColor = Color.Black;
            lvi.ForeColor = Color.Chocolate;
        }
        // TODO: Reset the other items to normal.
    }

你所做的应该很好


经过一点测试后,listview的tabstop属性似乎必须设置为true,listview的选项卡索引必须为0。

您所做的应该可以正常工作


经过一点测试后,listview的tabstop属性似乎必须设置为true,listview的选项卡索引必须为0。

在设计器中将
HideSelection属性更改为false(或通过代码)。这样做将允许所选项目显示,即使控件没有焦点。

在设计器中将
HideSelection
属性更改为false(或通过代码)。这样做将允许所选项目显示,即使控件没有焦点。

这正是我正在做的(如果您在行尾添加“=true”)。它确实选择了项目,但它没有向用户表明选择了行,这是我的问题。我使用了devExpress,您所要做的就是更改临时项目(rowIndex)。editValue=true。这就是我正在做的事情(如果您在行尾添加“=true”)。它确实选择了项目,但没有向用户指示行已被选中,这是我的问题。我使用了devExpress,您所要做的就是更改临时项目(rowIndex)。editValue=true。为什么不使用内置系统高亮显示?这是我最初做的。这是可行的,但绝对是一个次优的黑客。为什么不使用内置的系统高亮显示?这是我最初做的。这是可行的,但绝对是一个次优的攻击。这只是在窗体显示时强制控件具有焦点。如果用户关闭控件,则选择将再次消失。正确,因为他说的是在设置控件时选择它(即:首先显示控件),这只是在显示窗体时强制控件具有焦点。如果用户关闭控件,则选择将再次消失。正确,因为他说的是在设置控件(即:首次显示控件)时将其选中;非常感谢。我知道这件事很简单/愚蠢;非常感谢。我知道这件事很简单/愚蠢。