Hello,
I have a DevExpress grid which contains some Ranorex.Row elements. Each Ranorex.Row contains some cells (Ranorex.Cell). I need to get the Background color for these cells. I am very surprised to realize that Ranorex.Cell does not provide any means to get the background color. Therefore, if anybody has a clue how to get the background color for a Cell object, please let me know. As this unexpected problem appeared close to the delivery deadline (as the problems always do ), I would greatly appreciate any quick hint or clue.
Thank you
Get background color for Ranorex.Cell objects
- Support Team
- Site Admin
- Posts: 12145
- Joined: Fri Jul 07, 2006 4:30 pm
- Location: Houston, Texas, USA
- Contact:
Re: Get background color for Ranorex.Cell objects
Hi Symfony,
Is this a WPF DevExpress grid or a WPF one?
In case this is a WPF one please take a look at the following links: WPF custom properties on user controls and Best way to verify special characters, bold and italic text?.
There you find the information on how to identify the background color of a WPF control.
Regards,
Markus
Is this a WPF DevExpress grid or a WPF one?
In case this is a WPF one please take a look at the following links: WPF custom properties on user controls and Best way to verify special characters, bold and italic text?.
There you find the information on how to identify the background color of a WPF control.
Regards,
Markus
Re: Get background color for Ranorex.Cell objects
Hello Markus,
Thank you for information. My grid is a WinForms DevExpress control: https://www.devexpress.com/Products/NET ... orms/Grid/ . We solved the problem by adding a special method to our AUT which returns the background color of a certain grid cell and call this method in our automated test cases. Nevertheless, It would be nice to be possible to retrieve the grid cell background color without modifying the AUT (which is not always possible unfortunately).
Best regards
Thank you for information. My grid is a WinForms DevExpress control: https://www.devexpress.com/Products/NET ... orms/Grid/ . We solved the problem by adding a special method to our AUT which returns the background color of a certain grid cell and call this method in our automated test cases. Nevertheless, It would be nice to be possible to retrieve the grid cell background color without modifying the AUT (which is not always possible unfortunately).
Best regards
- Support Team
- Site Admin
- Posts: 12145
- Joined: Fri Jul 07, 2006 4:30 pm
- Location: Houston, Texas, USA
- Contact:
Re: Get background color for Ranorex.Cell objects
Hi Symfony,
Thanks for letting us know that you found a solution !
It should normally be possible to get the background color of a standard WinForms control with Ranorex Spy without the need to modify the code of your application.
May I ask you to send me a Ranorex snapshot file of the control where you cannot identify the background color?
The following link will show you how to generate a snapshot file: Creating Ranorex Snapshot Files.
Thanks,
Markus
Thanks for letting us know that you found a solution !
It should normally be possible to get the background color of a standard WinForms control with Ranorex Spy without the need to modify the code of your application.
May I ask you to send me a Ranorex snapshot file of the control where you cannot identify the background color?
The following link will show you how to generate a snapshot file: Creating Ranorex Snapshot Files.
Thanks,
Markus
Re: Get background color for Ranorex.Cell objects
Hi Markus,
Thanks for reply. As I said before, I need to retrieve the background color for a Ranorex.Cell and not a Ranorex.Control object. Please provide a code snippet how to do this, as long as Ranorex.Cell does not provide a method similar with GetPropertyValue of the Ranorex.Control object.
I tried to convert Ranorex.Cell to Ranorex.Control or use the Element.GetAttributeValue() for the cell but without any luck .
Thank you
Thanks for reply. As I said before, I need to retrieve the background color for a Ranorex.Cell and not a Ranorex.Control object. Please provide a code snippet how to do this, as long as Ranorex.Cell does not provide a method similar with GetPropertyValue of the Ranorex.Control object.
I tried to convert Ranorex.Cell to Ranorex.Control or use the Element.GetAttributeValue() for the cell but without any luck .
Thank you
- Support Team
- Site Admin
- Posts: 12145
- Joined: Fri Jul 07, 2006 4:30 pm
- Location: Houston, Texas, USA
- Contact:
Re: Get background color for Ranorex.Cell objects
Hi Symfony,
I am afraid that there is nothing Ranorex can make to get the background color of your cell controls.
The problem is that the MSAA representation of such a WinForms cell doesn't provide the background color and therefore Ranorex can also not identify it.
In order to get the background color of a cell you can modify the accessible implementation for such cells or you could also use the InvokeRemotely method to inject code in your AUT.
I created a samll sample with a normal WinForms grid, this grid control can be used to access each cell and to get the background color of the same:
I hope this will help you to get a suitable solution!
Regards,
Markus
I am afraid that there is nothing Ranorex can make to get the background color of your cell controls.
The problem is that the MSAA representation of such a WinForms cell doesn't provide the background color and therefore Ranorex can also not identify it.
In order to get the background color of a cell you can modify the accessible implementation for such cells or you could also use the InvokeRemotely method to inject code in your AUT.
I created a samll sample with a normal WinForms grid, this grid control can be used to access each cell and to get the background color of the same:
Ranorex.Table table = "/form[@controlname='Form1']/table[@controlname='dataGridView1']"; Ranorex.Control myCtrl = (Ranorex.Control) table.Element; // Invoke Remotely string colorOfCell = (string)myCtrl.InvokeRemotely( delegate(System.Windows.Forms.Control control, object input) { System.Windows.Forms.DataGridView dataGrid = (System.Windows.Forms.DataGridView) control; // There you can access each cell: Color color = dataGrid.Rows[1].Cells[2].Style.BackColor; Console.WriteLine("Color: "+color); return color.ToString(); } ); Report.Info("Color of Cell: "+colorOfCell);To get more information of the InvokeRemotely method please take a look at the following blog: Transfering data to and from a .NET control.
I hope this will help you to get a suitable solution!
Regards,
Markus