【问题标题】:Remove selection highlight in listviewgroup?删除列表视图组中的选择突出显示?
【发布时间】:2013-02-07 05:23:13
【问题描述】:

当您将鼠标悬停在我的列表视图组之一时会发生这种情况:http://localhostr.com/file/930/vtdFrMNdvDwz/Untitled.png

我在 msdn 网站上研究了 System::Windows::Forms::ListViewGroup 并没有找到有关如何禁用组选择/点击事件的结果。

listview和groups是用visual studio 2010 vc++ windows窗体中的设计器制作的,并自动生成这段代码:

System::Windows::Forms::ListViewGroup^  listViewGroup5 = (gcnew System::Windows::Forms::ListViewGroup(L"Player", System::Windows::Forms::HorizontalAlignment::Center));

我目前正在使用以下代码为我的表单覆盖 WndProc,我假设我的解决方案的答案是也为 listview 覆盖 WndProc,如果是这种情况,我将如何将它组合成一段代码...如果没有,解决办法是什么?

protected:
    virtual void WndProc(Message% m) override 
    {
        __super::WndProc(m);
        if (m.Msg == WM_NCHITTEST) 
        {
            switch ((int)m.Result) 
            {
            case HTLEFT: 
            case HTRIGHT: 
            case HTTOP: 
            case HTTOPLEFT: 
            case HTTOPRIGHT:
            case HTBOTTOMLEFT: 
            case HTBOTTOMRIGHT:
                m.Result = (IntPtr)HTCLIENT;
            }
        }
    }

谢谢!

【问题讨论】:

    标签: winforms visual-c++ listview


    【解决方案1】:

    Better ListView ExpressBetter ListView 控件已经实现了这一点。只需调用:

    betterListView.GroupHeaderBehavior = betterListView.GroupHeaderBehavior & ~BetterListViewGroupHeaderBehavior.MouseHighlight;
    

    关闭组标题突出显示。

    还有其他组标题选项:鼠标焦点、键盘焦点和组选择。

    【讨论】:

    • BetterListView 在 C++/CLI 中不起作用,我刚刚遇到很多错误,客户支持确实说这是他们方面的问题!
    • 这是一个 Babel.NET 混淆器引入的问题,我们对此无能为力。我们使用了大约一打 3rd 方工具。请注意,无论如何,Microsoft 都不推荐使用 C++/CLI 进行 UI 开发;他们甚至从 Visual Studio 2012 中删除了 Windows 窗体应用程序模板。您仍然可以通过以任何 CLI 语言(C#、VB.NET、F# ...)编写的类库来使用 Better ListView。
    猜你喜欢
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 2013-12-22
    相关资源
    最近更新 更多