Не думаю, что есть какой-то официальный путь.Однако следующий фрагмент кода может определить, когда запись в сетке открыта, используя встроенный редактор текстовых полей или раскрывающийся редактор.Он не определяет, когда запись открывается с помощью маленькой кнопки «...».
public static bool IsInEditMode(PropertyGrid grid)
{
if (grid == null)
throw new ArgumentNullException("grid");
Control gridView = (Control)grid.GetType().GetField("gridView", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(grid);
Control edit = (Control)gridView.GetType().GetField("edit", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(gridView);
Control dropDownHolder = (Control)gridView.GetType().GetField("dropDownHolder", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(gridView);
return ((edit != null) && (edit.Visible & edit.Focused)) || ((dropDownHolder != null) && (dropDownHolder.Visible));
}
Конечно, поскольку она основана на внутренней структуре сетки, она может измениться в будущем, поэтомуиспользуйте на свой страх и риск.