Возможно, есть лучший способ, но вы можете ......
Вы можете создать свой собственный диалог, используя формы Windows, добавить кнопку OK, Отмена и переменную свойства или члена для DataGridSelectedCellCollection..
public partial class CellSelectionDialog : Form
{
public DataGridViewSelectedCellCollection cells { get; set; }
public CellSelectionDialog()
{
InitializeComponent();
}
}
Установите это как переменную класса в форме, которая содержит DataGrid, и установите для него значение null.
CellSelectionDialog csd = null
затем на вашем DataGridView подпишитесь на событие selectionChanged.В событии проверьте, является ли ваш диалог пустым.Если это так, то вы не хотите получить клетку.Если оно не равно нулю, то установите значение
if (csd != null)
{
csd.cells = dgvGrid.SelectedCells;
csd.BringToFront();
}
, добавьте обработчик событий для обработки закрытия формы в вашей форме с помощью DataGridView
private void CellSelectionDialog_FormClosing(object sender, FormClosingEventArgs e)
{
if (csd.DialogResult == DialogResult.OK)
{
//Do something with csd.cells
MessageBox.Show(csd.cells[0].Value.ToString());
//set the form to null;
csd = null
}
}
, и вы сможете вызвать диалоговое окнокак
csd = new CellSelectionDialog();
csd.FormClosing += CellSelectionDialog_FormClosing;
csd.Show();