本文整理汇总了C#中GridVirtual.PositionAtPoint方法的典型用法代码示例。如果您正苦于以下问题:C# GridVirtual.PositionAtPoint方法的具体用法?C# GridVirtual.PositionAtPoint怎么用?C# GridVirtual.PositionAtPoint使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GridVirtual
的用法示例。
在下文中一共展示了GridVirtual.PositionAtPoint方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: grid_MouseDown
protected virtual void grid_MouseDown(GridVirtual sender, System.Windows.Forms.MouseEventArgs e)
{
//verifico che l'eventuale edit sia terminato altrimenti esco
if (sender.Selection.ActivePosition.IsEmpty() == false)
{
CellContext focusCell = new CellContext(sender, sender.Selection.ActivePosition);
if (focusCell.Cell != null && focusCell.IsEditing())
{
if (focusCell.EndEdit(false) == false)
return;
}
}
//scateno eventi di MouseDown
Position position = sender.PositionAtPoint( new Point(e.X, e.Y) );
if (position.IsEmpty() == false)
{
Cells.ICellVirtual cellMouseDown = sender.GetCell(position);
if (cellMouseDown != null)
{
sender.ChangeMouseDownCell(position, position);
//Cell.OnMouseDown
CellContext cellContext = new CellContext(sender, position, cellMouseDown);
sender.Controller.OnMouseDown(cellContext, e);
}
}
else
sender.ChangeMouseDownCell(Position.Empty, Position.Empty);
}
示例2: grid_MouseMove
protected virtual void grid_MouseMove(GridVirtual sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == MouseButtons.Left && sender.Selection.EnableMultiSelection)
{
//Scroll if necesary
sender.ScrollOnPoint(e.Location);
Position pointPosition = sender.PositionAtPoint(e.Location);
Cells.ICellVirtual cellPosition = sender.GetCell(pointPosition);
//Only if there is a FocusCell
CellContext focusCellContext = new CellContext(sender, sender.Selection.ActivePosition);
if (focusCellContext.Cell != null && focusCellContext.IsEditing() ==false)
{
Position selCornerPos = pointPosition;
Cells.ICellVirtual selCorner = cellPosition;
////If the current Focus Cell is a scrollable cell then search the current cell (under the mouse)only in scrollable cells
//// see PositionAtPoint with false parameter
//if (sender.GetPositionType(sender.Selection.ActivePosition) == CellPositionType.Scrollable)
//{
// selCornerPos = sender.PositionAtPoint(new Point(e.X, e.Y));
// selCorner = sender.GetCell(pointPosition);
//}
if (selCornerPos.IsEmpty() == false && selCorner != null)
{
//Only if the user start the selection with a cell (m_MouseDownCell!=null)
if (sender.MouseDownPosition.IsEmpty() == false && sender.Selection.IsSelectedCell(sender.MouseDownPosition))
{
sender.ChangeMouseSelectionCorner(selCornerPos);
//sender.ShowCell(l_SelCornerPos);
}
}
}
}
}
示例3: grid_MouseMove
protected virtual void grid_MouseMove(GridVirtual sender, System.Windows.Forms.MouseEventArgs e)
{
Position l_PointPosition = sender.PositionAtPoint(new Point(e.X, e.Y));
Cells.ICellVirtual l_CellPosition = sender.GetCell(l_PointPosition);
//Call MouseMove on the cell that receive tha MouseDown event
if (sender.MouseDownPosition.IsEmpty() == false)
{
Cells.ICellVirtual l_MouseDownCell = sender.GetCell(sender.MouseDownPosition);
if (l_MouseDownCell!=null)
{
sender.Controller.OnMouseMove(new CellContext(sender, sender.MouseDownPosition, l_MouseDownCell), e);
}
}
else //se non ho nessuna cella attualmente che ha ricevuto un mousedown, l'evento di MouseMove viene segnalato sulla cella correntemente sotto il Mouse
{
// se non c'è nessuna cella MouseDown cambio la cella corrente sotto il Mouse
#if !MINI
sender.ChangeMouseCell(l_PointPosition);//in ogni caso cambio la cella corrente
#endif
if (l_PointPosition.IsEmpty() == false && l_CellPosition != null)
{
// I call MouseMove on the current cell only if there aren't any cells under the mouse
sender.Controller.OnMouseMove(new CellContext(sender, l_PointPosition, l_CellPosition), e);
}
}
}
示例4: grid_MouseUp
protected virtual void grid_MouseUp(GridVirtual sender, System.Windows.Forms.MouseEventArgs e)
{
if (sender.MouseDownPosition.IsEmpty() == false)
{
Cells.ICellVirtual l_MouseDownCell = sender.GetCell(sender.MouseDownPosition);
if (l_MouseDownCell!=null)
sender.Controller.OnMouseUp(new CellContext(sender, sender.MouseDownPosition, l_MouseDownCell), e );
sender.ChangeMouseDownCell(Position.Empty, sender.PositionAtPoint(new Point(e.X, e.Y)));
}
}
示例5: grid_Click
protected virtual void grid_Click(GridVirtual sender, EventArgs e)
{
Position clickPosition = sender.PositionAtPoint(sender.PointToClient(Control.MousePosition));
Position clickStartPosition = sender.PositionToStartPosition(clickPosition);
//Se ho precedentemente scatenato un MouseDown su una cella
// e se questa corrisponde alla cella sotto il puntatore del mouse (non posso usare MouseCellPosition perchè questa viene aggiornata solo quando non si ha una cella come MouseDownPosition
if (sender.MouseDownPosition.IsEmpty() == false &&
sender.MouseDownPosition == clickStartPosition /* MouseCellPosition &&
m_MouseDownCell.Focused == true //tolto altrimenti non funzionava per le celle Selectable==false*/)
{
Cells.ICellVirtual mouseDownCell = sender.GetCell(sender.MouseDownPosition);
if (mouseDownCell != null)
{
sender.Controller.OnClick(new CellContext(sender, sender.MouseDownPosition, mouseDownCell), EventArgs.Empty);
}
}
}
示例6: grid_DragOver
protected virtual void grid_DragOver(GridVirtual sender, System.Windows.Forms.DragEventArgs e)
{
Position pointPosition = sender.PositionAtPoint(sender.PointToClient( new Point(e.X, e.Y) ));
Cells.ICellVirtual cellPosition = sender.GetCell(pointPosition);
CellContext cellContext = new CellContext(sender, pointPosition, cellPosition);
sender.ChangeDragCell(cellContext, e);
sender.Controller.OnDragOver(cellContext, e);
}