private void SetClipboard(NumberedDataGridView ndgv)
        {
            string cbData = string.Empty;
            int    rowIdx = -1;

            for (int i = 0; i < ndgv.SelectedCells.Count; i++)
            {
                DataGridViewCell cl = ndgv.SelectedCells[i];
                cbData += ((cl.RowIndex != rowIdx) ? "\n" : "\t") + cl.Value.ToString();
                rowIdx  = cl.RowIndex;
            }
            Clipboard.SetData(System.Windows.Forms.DataFormats.UnicodeText, cbData.TrimStart('\n'));
        }
        private void dataQuery_onResultStart(object sender, ResultStartedEventArgs e)
        {
            NumberedDataGridView ndgv = new NumberedDataGridView();

            ndgv.Name = e.SchemaTable.TableName;
            ndgv.Dock = DockStyle.Fill;
            ndgv.AllowUserToAddRows       = false;
            ndgv.AllowUserToDeleteRows    = false;
            ndgv.AllowUserToOrderColumns  = true;
            ndgv.AllowUserToResizeColumns = true;
            ndgv.AllowUserToResizeRows    = false;
            ndgv.ContextMenuStrip         = this.mnuDg;
            ndgv.DataError  += new DataGridViewDataErrorEventHandler(ndgv_DataError);
            ndgv.MouseEnter += new EventHandler(ndgv_MouseEnter);
            ndgv.MouseDown  += new MouseEventHandler(ndgv_MouseDown);
            for (int c = 0; c < e.SchemaTable.Columns.Count; c++)
            {
                ndgv.Columns.Add(e.SchemaTable.Columns[c].ColumnName, e.SchemaTable.Columns[c].ColumnName);
            }
            ndgv.ReadOnly     = true;
            this._lastCreated = ndgv;
        }
 private void ndgv_MouseEnter(object sender, EventArgs e)
 {
     // We do this so that when a ContxtMenu item is click, we can tell which
     //   datagrid was the last one the mouse was hovering over.
     this._cntxMenu = (NumberedDataGridView)sender;
 }