none
如何为System::Windows::Forms::ListViewItem添加MouseClick事件 RRS feed

  • 问题

  • 我未成功实现,以下是我的思路,希望大家指正:

    1.自定义public ref class ListViewItemControl: public ListViewItem,public IXX{...};

    IXX是包含鼠标事件的接口,未找到。

    2.自定义public ref class ListViewItemControl: public ListViewItem

    {...

     

    public: event MouseEventHandler^ MouseClick;

    ...

     

    };

    但在实例化后,绑定给MouseClick的事件函数未响应。

     

    大家说说哪里要修改。


    2011年6月19日 12:25

答案

  • 你好,

    所以你是想选择item后,左击和右击响应不同的事件,是嘛?

    如果是的话,我想可以在listbox_MouseDown事件中处理:

    private void listBox1_MouseDown(object sender, MouseEventArgs e)
            {

                if (e.Button == MouseButtons.Left)
                    MessageBox.Show("Left" + listBox1.SelectedItem.ToString());
                if (e.Button == MouseButtons.Right)
                    MessageBox.Show("right" + listBox1.SelectedItem.ToString());

            }

    可以在mousedown事件中判断是鼠标左击还是右击,然后在相应判断后调用相应的函数处理。


    Paul Zhou [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 jchzhu 2011年6月25日 6:03
    2011年6月24日 5:32

全部回复

  • 你好,

    据我所知,ListView控件本身就能实现你目的的事件:

    ListView.ItemSelectionChanged Event

     


    Paul Zhou [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年6月21日 9:24
  • 谢谢回复。

    我之前没有说完整。

     

    ListView.ItemSelectionChangedEvent 可以检测所选的ListViewItem。

    我想实现在每个ListViewItem上鼠标左击,右击响应不同的事件。

    感觉可能只有通过ListView.MouseClick 的坐标判断出所点击的ListViewItem。

    2011年6月23日 14:03
  • 你好,

    所以你是想选择item后,左击和右击响应不同的事件,是嘛?

    如果是的话,我想可以在listbox_MouseDown事件中处理:

    private void listBox1_MouseDown(object sender, MouseEventArgs e)
            {

                if (e.Button == MouseButtons.Left)
                    MessageBox.Show("Left" + listBox1.SelectedItem.ToString());
                if (e.Button == MouseButtons.Right)
                    MessageBox.Show("right" + listBox1.SelectedItem.ToString());

            }

    可以在mousedown事件中判断是鼠标左击还是右击,然后在相应判断后调用相应的函数处理。


    Paul Zhou [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 jchzhu 2011年6月25日 6:03
    2011年6月24日 5:32