We have a ultra grid which is having custom controls embedded in individual cells. When the grid cell is activated then its edit control get activated and the text of this control is shown over the horizontal scroll bar (if cell is partially visible and some part of the cell is below the scroll bar). Please provide a solution to fix the issue.
There's no way putting the cell into edit mode like this is going to work properly.
What I would do is use another instance of the same UserControl as the RenderingControl of the cell so that the cell looks the same whether it's rendering or editing.
Then you could expose a method on your control that takes in a point and returns the area within the control that the point is over. You could then handle the MouseMove on the grid and translate the point in the grid into a point within the cell and pass that translated point into your UserControl to determine where it is and show the appropriate tooltip.
We need to edit the cell on mouse over because, we have assigned the cell with a user control having more than one lable in a row. On the basis of the mouse over the lable, we are displaying their text as tool tip. this user control is assigned to cell using UltraControlContainerEditor. Without editing the cell, we are not able to get that user control object and due to this we are not able to show the tooltip. So please suggest.
In the MouseEnterElement event, the sample code is watching for when the mouse moves over a Cell.
When the mouse moves over a cell, the code sets a flag, activates the row, then the cell, then calls PerformAction to EnterEditMode on that cell.
This is very strange UI, but aside from that, the flag is cancelling the BeforeRowRegionScroll event. So when PerformAction is called to enter edit mode on the cell, the UltraControlContainerEditor is showing the EditingControl over the cell, but it doesn't fit and it ends up covering up the scrollbars. The grid tries to scroll the row into view, but the flag prevents it from doing so.
Now... I understand why you are adding the flag. If you remove this flag, what happens is that the row is scrolled into view when it becomes active, which places the mouse over a different cell, which then becomes activated and the grid scrolls all the way to the bottom.
But what this sample is doing is just a contradiction. In order to go into edit mode properly, this row MUST be scrolled into view, and not scrolling it into view means that the MouseEnterElement event will fire repeatedly. It's not going to work.
So the question here is... why are you placing a cell into edit mode whenever the mouse moves over it? This seems like a very strange UI to me and it will cause all sorts of problems. For example, suppose a user clicks on a cell and them moves the mouse away from that cell so that it's out of the way when they are typing. If they happen to move the mouse over another cell, the cell they want to edit will go out of edit mode and the cell they moused over will enter edit mode. They will end up typing in the wrong cell.
Hello,
I probably wasn't clear enough in my last post. It's not the EnterEditMode itself that's causing the issue. It's performing EnterEditMode in the MouseEnterElement event that's causing the issue. Our developers do not recommend doing that with the UltraGrid.
We know that this issue is appearing due to EnterEditMode but we have to use this function. If the issue is because of this function then what is the alternative of this?