【问题标题】:Vb.net get panels colorsvb.net 获取面板颜色
【发布时间】:2012-06-21 03:11:59
【问题描述】:
for i = 0 to 10
    dim paneln as new panel
    paneln.backcolor = color.red
    if i = 5 then
        paneln.backcolor = color.white
    end if
    me.controls.add(paneln)
next

现在我想获取表单上每个面板的颜色

红色
红色
红色
红色
白色
红色
红色
红色
红色
红色

类似:

For Each p As Panel In Me.Controls
    MsgBox(p.BackColor)
Next

【问题讨论】:

    标签: vb.net winforms


    【解决方案1】:

    如果您使用的是 .Net 3.5 或 4.0,您可以尝试:

    For Each p as Panel In Me.Controls.OfType(Of Panel)
        MessageBox.Show(p.BackColor)
    Next
    

    这将仅遍历面板控件(或从面板派生的控件),而忽略其他控件。请注意,这只会获取直接在表单上的面板,而不是容器对象内部的任何面板,就像其他面板一样。

    【讨论】:

    • MsgBox(p.BackColor) 我认为 BackColor.tostring 修复了 exeption :) 但 tnx
    • 我已将 VB6 样式的 MsgBox 更改为 .Net 样式的 MessageBox.Show,它应该隐式调用 p.BackColor 上的 ToString 方法。而且我今天了解到 MsgBox 将 Object 作为其参数,而不是字符串。
    【解决方案2】:

    试试:

    For Each p As Panel In Me.Controls.OfType(Of Panel)()
      MessageBox.Show(p.BackColor.ToString())
    Next
    

    【讨论】:

      猜你喜欢
      • 2011-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-17
      • 1970-01-01
      相关资源
      最近更新 更多