private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (e.Control is DataGridViewTextBoxEditingControl) { Button btn = new Button(); btn.Height = e.Control.Height; btn.Width = e.Control.Width / 6; btn.Top = 0; btn.Left = e.Control.Width - btn.Width; btn.Cursor = Cursors.Default; btn.Click += new EventHandler(btn_Click); btn.Dock = DockStyle.Right; textbox.Controls.Clear(); textbox.Controls.Add(btn); } } void btn_Click(object sender, EventArgs e) { Form f = new Form(); f.StartPosition = FormStartPosition.Manual; Button btn = sender as Button; Rectangle bound = btn.Parent.RectangleToScreen(btn.Bounds); f.Location = new Point(bound.Left, bound.Height + bound.Top); f.Show(this); }