private void contextMenuStrip1_Opening(object sender, CancelEventArgs e) { Point pt = NetworksGridView.PointToClient(new Point(contextMenuStrip1.Left, contextMenuStrip1.Top)); DataGridView.HitTestInfo info = NetworksGridView.HitTest(pt.X, pt.Y); if (info != null && info.RowIndex >= 0 && info.RowIndex < NetworksGridView.Rows.Count) { DataGridViewRow row = NetworksGridView.Rows[info.RowIndex]; if (row != null) { row.Selected = true; copyToolStripMenuItem.Visible = true; addToolStripMenuItem.Visible = AddNetworkButton.Visible && AddNetworkButton.Enabled; propertiesToolStripMenuItem.Visible = EditNetworkButton.Visible && EditNetworkButton.Enabled; removeToolStripMenuItem.Visible = RemoveNetworkButton.Visible && RemoveNetworkButton.Enabled; return; } } // else just show add button copyToolStripMenuItem.Visible = false; addToolStripMenuItem.Visible = AddNetworkButton.Visible && AddNetworkButton.Enabled; propertiesToolStripMenuItem.Visible = false; removeToolStripMenuItem.Visible = false; }
private void copyToolStripMenuItem_Click(object sender, EventArgs e) { Point pt = NetworksGridView.PointToClient(new Point(contextMenuStrip1.Left, contextMenuStrip1.Top)); DataGridView.HitTestInfo info = NetworksGridView.HitTest(pt.X, pt.Y); if (info != null && info.RowIndex >= 0 && info.RowIndex < NetworksGridView.Rows.Count) { DataGridViewRow row = NetworksGridView.Rows[info.RowIndex]; if (row != null) { string t = row.Cells[info.ColumnIndex].Value.ToString(); if (String.IsNullOrEmpty(t)) { return; } Clip.SetClipboardText(t); } } }