我以前用过 vb.net,想探索 c#。(他们说 c# 比 vb.net 好)但无论如何......我在下面的 vb.net 调用父窗口中的控件中使用了这段代码。
Dim strWindowToLookFor As String = GetType(MainWindowForm).Name
Me.Close()
Dim win = (From w In Application.Current.Windows Where DirectCast(w, Window).GetType.Name = strWindowToLookFor Select w).FirstOrDefault
If win IsNot Nothing Then
DirectCast(win, MainWindowForm).imglogin.Visibility = Windows.Visibility.Visible
DirectCast(win, MainWindowForm).Focus()
End If
我之前在其他论坛上找到了这段代码,并在 vb.net 中帮助了我很多......但现在我想在 c# 中使用这段代码来调用控件......所以我使用 SharpDevelop(一个很好的软件)对其进行了转换。 ...
string strWindowToLookFor = typeof(MainWindowForm).Name;
this.Close();
var win = (from w in Application.Current.Windowswhere ((Window)w).GetType().Name == strWindowToLookForw).FirstOrDefault;
if (win != null) {
((MainWindowForm)win).imglogin.Visibility = System.Windows.Visibility.Visible;
((MainWindowForm)win).Focus();
}
问题是它给了我一个错误:
错误 1 找不到源类型“System.Windows.WindowCollection”的查询模式的实现。'哪里' 没有找到。考虑明确指定范围变量“w”的类型。
错误 #1 突出显示了 Application.Current.Windows。
错误 2 查询正文必须以 select 子句或 group 子句结尾