代码之家  ›  专栏  ›  技术社区  ›  Dillie-O

是否可以通过编程方式设置DirectCast命令的对象类型?

  •  0
  • Dillie-O  · 技术社区  · 16 年前

    我正在帮助一位同事为他的应用程序中的一些控件开发一个“全面”类型的错误处理程序。他要做的是传递有错误的对象以及该对象的类型,如TextBox或ComboBox,然后在其处理程序中调用DirectCast方法,以正确处理其中的Text属性。通常,该方法如下所示:

    Protected Sub SpecialErrorHandler(ByVal TargetControl As Object, ByVal ControlType As String)
    
       MessageBox.Show("Bad Juice: " & DirectCast(TargetControl, ControlType(ObjType)).Text)
    
    End Sub
    

    3 回复  |  直到 16 年前
        1
  •  2
  •   Joel Coehoorn    16 年前

    DirectCast() Control .

        2
  •  1
  •   Ricardo Villamil    16 年前

    您可以使用反射来提取属性。此外,如果知道对象始终是控件,为什么不将其强制转换为控件,然后获取控件的文本属性?

    Control errorObject = (Control)TargetControl;
    MessageBox.Show("Error..."+errorObject.Test));
    

    (很抱歉C#代码,对VB不太熟悉,但应该基本相同。)

        3
  •  0
  •   Mark Hurd    12 年前

    注意,如果没有一个超级类,比如 Control Option Strict Off 版本 TargetControl.Text 因为直到运行时才确定类。

    推荐文章