metroColorStyle是一种类型,不能用作表达式错误

时间:2014-11-06 13:16:02

标签: vb.net

我受到了这个c#函数的启发:。

private void metroTileSwitch_Click(object sender, EventArgs e)
    {
        var m = new Random();
        int next = m.Next(0, 13);
        metroStyleManager.Style = (MetroColorStyle)next;
    }

我试图在vb.net中复制导入框架对象的函数:

 Dim m = New Random()
 Dim s = m.Next(0, 13)
 Form1.MetroStyleManager1.Style = (MetroFramework.MetroColorStyle)s 'there's an error here

但我的最后一行有问题,特别是编译器告诉我:

" metroColorStyle是MetrFramework中的一个类型,不能用作表达式"。

为什么这段代码不起作用?

2 个答案:

答案 0 :(得分:2)

C#中的这一行:

metroStyleManager.Style = (MetroColorStyle)next;

将VB翻译为:

metroStyleManager.Style = DirectCast(s, MetroColorStyle)
' or if you have not imported the NameSpace:
metroStyleManager.Style = DirectCast(s, MetroFramework.MetroColorStyle)

有几个很好的在线转换器可以做到这一点。无论m是什么,都必须是可以投射到MetroColorStyle的类型。

答案 1 :(得分:0)

在vb.net上:

  1. 如果您成功导入了所有地铁控件,请在列表中找到" metrostylemanager"将其添加到表单后,它将显示为"MetroStyleManager1",就像添加计时器一样。

  2. 然后选择它("MetroStyleManager1")并将其属性修改为

      

    "修饰符:public" &安培; "所有者:选择您的表格"

  3. 我改变颜色的方式(无需导入任何东西):

      

    MetroStyleManager1.Style = MetroFramework.MetroColorStyle.Red

  4. 希望这有帮助