你好,我使用此代碼讀取datagridview的cell.Its工作的罰款,直到對象引用未設置爲一個對象(CacheRequest)(UI)
var myString = targetText.Cached.Name;
targettext的實例爲null
代碼:
LogMessage("Getting RootElement...");
AutomationElement rootElement = AutomationElement.RootElement;
if (rootElement != null)
{
LogMessage("OK." + Environment.NewLine);
Automation.Condition condition = new PropertyCondition(AutomationElement.NameProperty, "Form1");
LogMessage("Searching for Test Window...");
AutomationElement appElement = rootElement.FindFirst(TreeScope.Children, condition);
if (appElement != null)
{
LogMessage("OK " + Environment.NewLine);
LogMessage("Searching for Gridview control...");
AutomationElement txtElementA = GetTextElement(appElement, "dg");
var rows = txtElementA.FindAll(TreeScope.Children, PropertyCondition.TrueCondition);
foreach (AutomationElement loginLine in rows)
{
var loginLinesDetails = loginLine.FindAll(TreeScope.Children, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Custom));
for (var i = 0; i < loginLinesDetails.Count; i++)
{
var cacheRequest = new CacheRequest
{
AutomationElementMode = AutomationElementMode.None,
TreeFilter = System.Windows.Automation.Automation.RawViewCondition
};
cacheRequest.Add(AutomationElement.NameProperty);
cacheRequest.Add(AutomationElement.AutomationIdProperty);
cacheRequest.Push();
var targetText = loginLinesDetails[i].FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ClassNameProperty, "TextBlock"));// targettext is null
cacheRequest.Pop();
var myString = targetText.Cached.Name;//Object reference not set ///to instance of an object error
}
}
}
else
{
WriteLogError();
}
}
這是一個我正在嘗試閱讀的示例表單的圖像。如果它適用於這個小應用程序,它肯定會適用於大型應用程序。
所有我想要做的就是讀取datagridview.I的細胞不知道我是否在做正確與否任何一個可以請幫我這個。 會有很大的升值,如果有人可以幫助我
它不是一個重複的,請閱讀問題再一次沒有標題 –
您是否嘗試過檢查,如果targettext爲空?如果它的空你不應該訪問它,它會給你對象引用沒有設置...錯誤。我認爲akshay提出的建議是有道理的 – ViSu
是的,我在那條線上得到了空白。我可以在這條線上得到一個值,儘管它是空的。我做錯了一件事 –