Sorry -- posted this in the wrong location earlier. Someone please help, if you can!!
I am having difficulty finding how to access the ultragridcell location or the x,y coordinates of the top, left of the cell in the UltraGrid. Why isn't there a location property on the cell? I found an example for accessing the UI element and used the current mouse location out of desperation, and the element returns null when it's on the cell that I want to return!! Anyone have an example of how to do this or can someone even mention what property it is that I need to look at?
CODE THAT DOESN'T GET ME WHAT I'M LOOKING FOR:
UltraGrid grid = (UltraGrid)sender;
Infragistics.Win.UIElement elem = grid.DisplayLayout.UIElement.ElementFromPoint(new Point(grid.DisplayLayout.UIElement.CurrentMousePosition.X, grid.DisplayLayout.UIElement.CurrentMousePosition.Y));
Hi,
What exactly are you trying to do here?
You starting off by saying that you want to get the location of a cell in the grid. But the code you listed here does exactly the reverse - it gets a cell from a location.
To get the location of a cell, you would use the GetUIElement method on the cell to get it's UIElement. This may be null if the cell is not currently visible on the screen. If it's not null, you can get the Rect of the UIElement.
To get a cell from a location, you can use the code you have here. Except I'm not sure why you are using CurrentMousePosition. This might be a problem if those coordinates are not in the right system. ElementFromPoint takes client coords, not screen coords. If you want to get a cell from a point, I recommend checking out the Infraistics KB. There are lots of articles on how to do this sort of thing.
Knowledge Base Results - ElementFromPoint
HOWTO:UltraWinGrid Mouse Position and Cell Identification
I am trying to get the "Location" or X,Y cooridnates of the cell at its absolute position so that I know where to position a popup over that cell.
Again, there's not PointToClient() method, so that's useless. I'm getting closer but still not there with:
UltraGrid grid = ((UltraGrid)sender); CellUIElement element = (CellUIElement)e.Cell.GetUIElement(grid.ActiveRowScrollRegion, grid.ActiveColScrollRegion); Point p = new Point(); p = grpSalesOrder.PointToClient(p); int x = element.RectInsideBorders.X + grid.Location.X + p.X; int y = element.RectInsideBorders.Y + grid.Location.Y + p.Y; frmPopup frm = new frmPopup(x, y);
grpSalesOrder being the first control that I can find with a PointToScreen() call. Which returns negative values (not sure why yet, still researeching).
I'm not usually a UI developer so this is all a bit new for me.
So that's my question, how do I get the absolute X,Y position of the cell??????