Разбирая старый проект, обнаружил интересную особенность, которую никогда не использовал. Есть статический класс с методом DataGridViewCellClicked:
namespace GuiSystem
{
public static class GlobalMethods
{
public static bool DataGridViewCellClicked(this DataGridView dataGridView, Point mousePosition)
{
///
}
}
}
Этот метод вызывается в произвольных классах на стандартных объектах винформ DataGridView:
private void productsDataGridView_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
var clickInTable = productsDataGridView.DataGridViewCellClicked(MousePosition);
GetContextMenuStripForProductsDataGridView(clickInTable).Show(productsDataGridView, e.Location);
}
}
Как это работает без наследования? Я думал, что через какой-нибудь partial class для DataGridView, но не нашел его в проекте.