When testing an application that uses Microsoft PropertyGrid controls, you may need to know which item is currently focused. You can easily determine the focused item using the SelectedGridItem
property. This is an internal property of the PropertyGrid control, and in order for TestComplete to be able to access this property, the .NET Application Support plugin must be installed and enabled.
JavaScript
function Main ()
{
let p, Grid, Item;
// Obtain the grid object
p = Sys.Process ("PropertyGridSample");
Grid = p.WinFormsObject("Form1").WinFormsObject("propertyGrid1");
// Get the selected item
Item = Grid.SelectedGridItem;
Log.Message ("Selected item: " + Item.Label.OleValue);
if (!strictEqual(Item.Value, null))
Log.Message ("Item value: " + Item.Value.ToString().OleValue)
else
Log.Message ("Item value: null");
}
JScript
function Main ()
{
var p, Grid, Item;
// Obtain the grid object
p = Sys.Process ("PropertyGridSample");
Grid = p.WinFormsObject("Form1").WinFormsObject("propertyGrid1");
// Get the selected item
Item = Grid.SelectedGridItem;
Log.Message ("Selected item: " + Item.Label.OleValue);
if (Item.Value != null)
Log.Message ("Item value: " + Item.Value.ToString().OleValue)
else
Log.Message ("Item value: null");
}
Python
def Main ():
# Obtain the grid object
p = Sys.Process ("PropertyGridSample")
Grid = p.WinFormsObject("Form1").WinFormsObject("propertyGrid1")
# Get the selected item
Item = Grid.SelectedGridItem
Log.Message ("Selected item: " + Item.Label.OleValue)
if (Item.Value != None):
Log.Message ("Item value: " + Item.Value.ToString().OleValue)
else:
Log.Message ("Item value: None")
VBScript
Sub Main
Dim p, Grid, Item
' Obtain the grid object
Set p = Sys.Process ("PropertyGridSample")
Set Grid = p.WinFormsObject("Form1").WinFormsObject("propertyGrid1")
' Get the selected item
Set Item = Grid.SelectedGridItem
Log.Message ("Selected item: " & Item.Label.OleValue)
If Not (Item.Value Is Nothing) Then
Log.Message ("Item value: " & Item.Value.ToString.OleValue)
Else
Log.Message ("Item value: null")
End If
End Sub
DelphiScript
procedure Main;
var p, Grid, Item : OleVariant;
begin
// Obtain the grid object
p := Sys.Process ('PropertyGridSample');
Grid := p.WinFormsObject('Form1').WinFormsObject('propertyGrid1');
// Get the selected item
Item := Grid.SelectedGridItem;
Log.Message ('Selected item: ' + Item.Label.OleValue);
if Item.Value <> nil then
Log.Message ('Item value: ' + Item.Value.ToString.OleValue)
else
Log.Message ('Item value: nil');
end;
C++Script, C#Script
function Main ()
{
var p, Grid, Item;
// Obtain the grid object
p = Sys["Process"]("PropertyGridSample");
Grid = p["WinFormsObject"]("Form1")["WinFormsObject"]("propertyGrid1");
// Get the selected item
Item = Grid["SelectedGridItem"];
Log["Message"]("Selected item: " + Item["Label"]["OleValue"]);
if (Item["Value"] != null)
Log["Message"]("Item value: " + Item["Value"]["ToString"]()["OleValue"])
else
Log["Message"]("Item value: null");
}
See Also
Working With Microsoft PropertyGrid
Accessing Items in Microsoft PropertyGrid
Selecting Items in Microsoft PropertyGrid
Obtaining and Setting Item Values in Microsoft PropertyGrid