在这个类里作判断的话很简单
if(base.GetType() == typeof(System.windows.Forms.Form))
{
}

解决方案 »

  1.   

    try
    {
    object f = new Class1();
    System.Windows.Forms.Form ff = (System.Windows.Forms.Form)f;
    MessageBox.Show("y");
    }
    catch
    {
    MessageBox.Show("n");
    }
      

  2.   

    if(this is System.windows.Forms.Form){
       // your code...
    }
      

  3.   

    楼主可以使用更标准的方法
    Type.IsAssignableFrom 方法public virtual bool IsAssignableFrom(  Type c);
    参数

    与当前的 Type 进行比较的 Type。 
    返回值
    如果 c 参数和当前的 Type 表示同一类型,或者如果当前的 Type 处在 c 的继承层次结构中,或者如果当前的 Type 是 c 所支持的接口,则为 true。如果这些条件都不成立,或者如果 c 为空引用(Visual Basic 中为 Nothing),则为 false。更具体可以参考Type类
      

  4.   

    如何知道一个类都实现了哪些接口和从那个类继承 
    http://www.cnblogs.com/dahuzizyd/archive/2004/07/08/22543.aspx
      

  5.   

    if (obj is System.windows.Forms.Form)//可以转换成System.windows.Forms.Form,肯定继承自System.windows.Forms.Form
    {
    //your code
    }