WPF 错误求助

海口_菜鸟 2018-11-14 10:32:58
我在练习WPF,我使用了如下语句枚举窗体中的textbox,结果出现错误:

For Each tbox In Content
If (TypeOf tbox Is TextBox) Then
tbox.Datacontext =tb
End If
Next

错误:"无法将类型为“System.Windows.Controls.Viewbox”的对象强制转换为类型“System.Collections.IEnumerable”

Viewbox 是我为了让窗体大小变化是控件也跟着变化而添加,请问我应该怎么改正?谢谢!
...全文
87 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
海口_菜鸟 2018-11-21
  • 打赏
  • 举报
回复
引用 8 楼 Runnerchin 的回复:
Dim g As Grid = TryCast(Me.Content, Grid)结果为空是挺奇怪,在属性窗口看下window的content属性,是不是grid。或者直接点,给grid设置一下name属性,然后取它的children。
需要从一个大集合中取一个明确类型的小集合时,可以用oftype指定类型
        For Each box As TextBox In gridmain.Children.OfType(Of TextBox)
box.Text = "xxx"
Next

==============================
谢谢!可以了,看起来是忽视WPF的name 。
X-i-n 2018-11-21
  • 打赏
  • 举报
回复
Dim g As Grid = TryCast(Me.Content, Grid)结果为空是挺奇怪,在属性窗口看下window的content属性,是不是grid。或者直接点,给grid设置一下name属性,然后取它的children。 需要从一个大集合中取一个明确类型的小集合时,可以用oftype指定类型
        For Each box As TextBox In gridmain.Children.OfType(Of TextBox)
            box.Text = "xxx"
        Next
海口_菜鸟 2018-11-20
  • 打赏
  • 举报
回复
引用 6 楼 Runnerchin 的回复:
gridmain是最外层的Grid
        private void Button_Click(object sender, RoutedEventArgs e)
        {
           foreach(TextBox box in gridmain.Children.OfType<TextBox>()) box.Text = "zzz";
        }
--------------------------------- 谢谢! 这段代码应该跟我的差不多一个样子吧?C#环境里我可以实现,只是VB里不行。我不知道错在哪里。
X-i-n 2018-11-20
  • 打赏
  • 举报
回复
gridmain是最外层的Grid
        private void Button_Click(object sender, RoutedEventArgs e)
        {
           foreach(TextBox box in gridmain.Children.OfType<TextBox>()) box.Text = "zzz";
        }
海口_菜鸟 2018-11-20
  • 打赏
  • 举报
回复
引用 1 楼 stherix 的回复:
遍历要用.Children属性

-----------------------------------------
辛苦指正一下,WPF窗体就一个grid,三个textbox,一个button。

Dim g As Grid = TryCast(Me.Content, Grid)
Dim childrens As UIElementCollection = g.Children 运行的时候提示错误 g 为空 nothing

For Each ui As UIElement In childrens

If TypeOf ui Is TextBox Then
(TryCast(ui, TextBox)).Text = "zzzz"
End If
Next
stherix 2018-11-19
  • 打赏
  • 举报
回复
引用 3 楼 u010528453 的回复:
[quote=引用 1 楼 stherix 的回复:] 遍历要用.Children属性
----------------- 我使用 For Each element As UIElement In Canvas.Children 结果提示Canvas 是非共享成员要求对象引用,请问应该怎么处理? 谢谢![/quote] Content是那个Canvas的对象吗? 用 Content.Children
海口_菜鸟 2018-11-16
  • 打赏
  • 举报
回复
引用 1 楼 stherix 的回复:
遍历要用.Children属性

-----------------
我使用 For Each element As UIElement In Canvas.Children
结果提示Canvas 是非共享成员要求对象引用,请问应该怎么处理?
谢谢!
stherix 2018-11-14
  • 打赏
  • 举报
回复
遍历要用.Children属性
海口_菜鸟 2018-11-14
  • 打赏
  • 举报
回复
谢谢,能给个代码吗?
我怎么写还是错误连连 :(

16,549

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧