Microsoft DataGridView cells can be of different types -- text boxes, combo boxes, check boxes, buttons, images, links, as well as custom types. Depending on the cell type, you can get or set cell values in different ways. Note that before changing the cell value, you need to select the needed grid cell and activate the edit mode, and after you make changes, you need to save them. You can learn how to select cell values and work with in-place editors in my previous posts:
Note: In the examples below, I use the following helper routines from the previous posts:
CloseCellEditor. So, if you are going to try out the examples, do not forget to include the routines in your script.
Getting Cell Values
You can get the value stored in the grid cell using the cells
Value property. One more property,
FormattedValue, lets you get the displayed representation of the cell value. Note that the .NET
DateTime objects are not OLE-compatible and you cannot use them directly in your scripts. To obtain the OLE-compatible values of these objects, you should use the
OleValue property added to them by TestComplete.
The following example contains the sample
GetCellValue routine that can be used to obtain the DataGridView cell text:
Setting Cell Values
The way you interact with Microsoft DataGridView cells and modify their values depends on the cell type, that is, you type in text boxes, check check boxes and select combo box items. However, its possible to distinguish three common approaches to modifying the cell value:
- Using the
- Simulating actions over the cells in-place editor.
- Using the cells editor internal properties and methods.
1) Using the
DataGridViewCell.Value property is the easiest way to change the value of any cell. Below is a sample
SetCellValue routine that can be used for this purpose:
2) Simulating actions over the cells in-place editor. In the Working With In-place Editors in Microsoft DataGridView post, I explained how you can access the cell editor controls. Since TestComplete recognizes some types of editor controls (e.g. text boxes, combo boxes, and others) as standard Win32 controls, it extends them with extra methods (such as
Keys) that help you simulate actions over the controls. So, you can simulate actions over the cell editor controls in the same way as over usual text boxes, combo boxes and other controls.
The general sequence of actions should include: selecting the cell, activating its in-place editor, simulating actions that modify the cell value and saving the changes. In the example below, the
SelectComboBoxItem routine illustrates this approach applied to the combo box editor:
3) Using internal properties and methods of a cell editor. You can use this approach if the tested application uses custom editor controls that TestComplete cannot recognize for some reason. In this case, you can access the current cell editor using the
DataGridView.EditingControl property, and use methods and properties of the returned object to change the cell value.
The following example demonstrates how you can use the combo box editors
SelectedIndex properties to change the selected item:
Changing Values in Particular Cell Types
Changing a Text Cell Value
To change the text box cell value, you can type the desired text in it. You can simplify this process and send the keyboard input directly to the grid window instead of the cell editor. In the example below, the
TypeToCell routine demonstrates how this can be done:
Changing Check Box Cell State
To change the state of a check box, you can simulate a click on it. Note that if you click in the center of the check box cell, that is, on the check mark, the cells check state is toggled. If you click the cell outside the check mark, the cells check state is not changed. For example, the
ClickCell routine from the Selecting Cells in Microsoft DataGridView post clicks in the cell center, so it can be used to toggle the cell check state.
Selecting Items in Combo Box Cells Using Autocompletion
In DataGridView, the combo box editors support the automatic completion feature. However, this functionality is enabled if the
AutoComplete property of the combo box cells column is True.
Autocompletion means that when you start typing in the combo box, the first item that matches the typed characters becomes selected. So, to select the desired item in the combo box cell, you can type the item caption into it. For instance, you can do this using the
TypeToCell routine I used in the sample script.