Что вы получаете, когда вы дважды щелкните элемент управления в режиме разработки, это событие, которое разработчики мышления управления будут наиболее использовать, в этом случае это Navigate
.
Но да, этот элемент управления имеет два события двойного щелчка мышью:
public partial class Form1 : Form
{
DataGrid grid = new DataGrid();
public Form1()
{
InitializeComponent();
grid.DoubleClick += new EventHandler(grid_DoubleClick);
grid.MouseDoubleClick += new MouseEventHandler(grid_MouseDoubleClick);
grid.Dock = DockStyle.Fill;
this.Controls.Add(grid);
}
void grid_MouseDoubleClick(object sender, MouseEventArgs e)
{
}
void grid_DoubleClick(object sender, EventArgs e)
{
}
}
Однако оба эти события запуска при двойном щелчке в любом месте на контроле, и они напрямую не дают вам информацию о том, что строка была выбран. Возможно, вы сможете получить строку , дважды щелкнув по ссылке в обработчике grid_MouseDoubleClick
, получив ее из элемента управления на основании щелчка точки (e.Location
), вот как это работает в элементе управления TreeView. С быстрым взглядом я не видел, имеет ли контроль такой метод. Вместо этого вы можете использовать DataGridView, если у вас нет конкретной причины использовать этот элемент управления.
Вот как получить значение, если кто-то интересно: System.Drawing.Point пт = dataGrid1.PointToClient (Cursor.Position); DataGrid.HitTestInfo info = dataGrid1.HitTest (pt); int row; int col; if (info.Column <0) col = 0; else col = info.Column; if (info.Row <0) row = 0; else row = info.Row; string here = dataGrid1 [row, col] .ToString(); MessageBox.Show (здесь); – steve76