3 つのリスト (SysListView32) を持つウィンドウからデータを取得しようとしています。UISpy と Inspect の両方で 3 つの行とセルが表示されますが、コードではそのうちの 2 つが完全に機能します (Caption="List2" と Caption="List3")。 3 番目には、白い空の文字列のみが含まれます。
私が試してみると:
IntPtr PrizeListHandle = Win32Utils.FindWindowByCaption(Lobby, "List1");
IUIAutomationElement dataGridPrizes = autom.ElementFromHandle(PrizeListHandle);
IUIAutomationGridPattern gridPrizes = dataGridPrizes.GetCurrentPattern(10006);
string linea = gridPrizes.GetItem(0, 0).CurrentName;
lineaは空の文字列になり、gridPrizes は 17 行、3 列、すべてのセルが空の文字列になります。
私が試してみると:
IntPtr PrizeListHandle = Win32Utils.FindWindowByCaption(Lobby, "List1");
IUIAutomationElement dataGridPrizes = autom.ElementFromHandle(PrizeListHandle);
int propIdClassName = 30004; // UIA_ClassNamePropertyId;
IUIAutomationPropertyCondition conditionListItem = (IUIAutomationPropertyCondition)autom.CreatePropertyCondition(propIdClassName, "list item");
IUIAutomationElementArray children = dataGridPrizes.FindAll(interop.UIAutomationCore.TreeScope.TreeScope_Children, conditionListItem);
int i = children.Length;
私は0です。なぜですか?
UISpy を使用すると、すべてが検出されることに注意することが重要です。また、Automation でマネージド バージョンとアンマネージド バージョンの両方を試しましたが、まったく同じ結果が得られました。
Windows Server 2008 R2 を使用しています。
スクリーンショットは次のとおりです。
前もって感謝します