https://bugzilla.novell.com/show_bug.cgi?id=462638

https://bugzilla.novell.com/show_bug.cgi?id=462638#c2


Allen Kempe <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #2 from Allen Kempe <[email protected]> 2011-03-23 01:07:44 
UTC ---
Here is some code that works: 

You need to add an eventhandler for CellMouseEnter to capture the mouse
location. Also, add an event handler for ContextMenyStrip.Opening. 

       private void AddContextMenu()
        {
            toolStripItem1.Text = "Copy";
            toolStripItem1.Click += new EventHandler(toolStripItem1_Click);
            toolStripItem2.Text = "Hide Column";
            toolStripItem2.Click += new EventHandler(toolStripItem2_Click);
            ContextMenuStrip strip = new ContextMenuStrip();
            strip.Items.AddRange(new ToolStripItem[]{toolStripItem1,
toolStripItem2});
            this.CellMouseEnter += new
DataGridViewCellEventHandler(DataGridViewEx_CellMouseEnter);
            foreach (DataGridViewColumn column in this.Columns)
            {

                column.ContextMenuStrip = strip;
                //column.ContextMenuStrip.Items.Add(toolStripItem1);

            }
            this.ContextMenuStrip = strip;
            this.ContextMenuStrip.Opening +=new
System.ComponentModel.CancelEventHandler(ContextMenuStrip_Opening);
        }

        void toolStripItem2_Click(object sender, EventArgs e)
        {
            this.Columns[mouseLocation.ColumnIndex].Visible = false;
        }

        void ContextMenuStrip_Opening(object sender,
System.ComponentModel.CancelEventArgs e)
        {
            // We don't want a context menu unless the mouse is over an actual
cell. 
            if (mouseLocation.ColumnIndex == -1 || mouseLocation.RowIndex ==
-1)
            {
                e.Cancel = true;
                return;
            }
            // select the cell to highlight it
            this[mouseLocation.ColumnIndex, mouseLocation.RowIndex].Selected =
true;
        }
        // Deal with hovering over a cell.

        void DataGridViewEx_CellMouseEnter(object sender,
DataGridViewCellEventArgs e)
        {
            mouseLocation = e;
        }

         private DataGridViewCellEventArgs mouseLocation;

        // Copy Data to the Clipboard
        private void toolStripItem1_Click(object sender, EventArgs args)
        {
            //this.Rows[mouseLocation.RowIndex]
            //    .Cells[mouseLocation.ColumnIndex].Style.BackColor
            //    = Color.Red;
            Clipboard.SetDataObject(this[mouseLocation.ColumnIndex,
mouseLocation.RowIndex].Value.ToString());
        }

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
_______________________________________________
mono-bugs maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs

Reply via email to