C# 从表单元格中检索信息

C# 从表单元格中检索信息,c#,wpf,visual-studio-2010,webbrowser-control,mshtml,C#,Wpf,Visual Studio 2010,Webbrowser Control,Mshtml,我正在从WPF应用程序读取WebBrowser控件中加载的页面 在这个页面中有一个数据表,我需要捕获它,我正在使用MSHTML 我可以检索表,我可以检索表中的行,我只是不能检索行中的单元格。我总是得到一个NullReferenceException 这就是我现在拥有的: foreach (var a in ((wbSocial.Document as HTMLDocument).getElementById("j_idt29:gridDadosTrabalhador").children as

我正在从WPF应用程序读取WebBrowser控件中加载的页面

在这个页面中有一个数据表,我需要捕获它,我正在使用MSHTML

我可以检索表,我可以检索表中的行,我只是不能检索行中的单元格。我总是得到一个
NullReferenceException

这就是我现在拥有的:

foreach (var a in ((wbSocial.Document as HTMLDocument).getElementById("j_idt29:gridDadosTrabalhador").children as IHTMLElementCollection))
    foreach (var b in (a as HTMLTableSection).rows)
        if (((b as HTMLTableRow).cells as HTMLTableCell) == null || ((b as HTMLTableRow).cells as HTMLTableCell).nodeName.ToUpper() == "TH")
            continue;

当我调试
HTMLTableRow
时,我看到
HTMLTableRow
中有7个元素,但是如果我强制转换到
HTMLTableCell
它会给我
NullReferenceException
好的,我自己设法解决了它。我真的认为这与我的能力相去甚远。成功之后,我真的觉得自己很愚蠢

这就是我所做的:

 foreach (var a in ((wbSocial.Document as HTMLDocument).getElementById("j_idt29:gridDadosTrabalhador").children as IHTMLElementCollection))
                    foreach (var b in (a as HTMLTableSection).rows)
                    {
                        if ((b as HTMLTableRow).rowIndex == 0) { continue; }
                        else
                        {
                            foreach (var c in (b as HTMLTableRow).cells)

为了修复它,您必须更改什么?很抱歉,回答了这么长时间。显然,
HTMLTableRow.cells
返回一个
HTMLElementCollection
,每个
HTMLElement
都可以强制转换为
HTMLTableCell
。只是我没有引起注意。我已经编辑了你的标题。请参阅“”,其中的共识是“不,他们不应该”。