public override bool ConvertChildClientPoint(ref System.Drawing.Point clientPointWinForms, out string childUIObject) { childUIObject = string.Empty; var clientPoint = new Point(clientPointWinForms.X, clientPointWinForms.Y); //指定座標の要素取得 var hitElement = PointUtility.GetPosElement(clientPoint, _control); if (hitElement == null) { return(false); } //DataGridCell取得 DataGridCell cell = null; foreach (var x in TreeUtilityInTarget.VisualTree(hitElement, TreeRunDirection.Ancestors)) { if (Equals(x, _control)) { break; } cell = x as DataGridCell; if (cell != null) { break; } } if (cell == null) { return(false); } var row = DataGridRow.GetRowContainingElement(cell); if (row == null) { return(false); } int rowindex = row.GetIndex(); var colIndex = cell.Column.DisplayIndex; //座標変換 var screenPos = _control.PointToScreen(clientPoint); var childPoint = cell.PointFromScreen(screenPos); clientPointWinForms.X = (int)childPoint.X; clientPointWinForms.Y = (int)childPoint.Y; childUIObject = $".GetCell({rowindex}, {colIndex})"; return(true); }