I want to define a property (named `FormAbout`) in a class, so that someone using this object could assign a derived type of `IFormAbout`. To do this, I have an interface and an implementation of it:

```
public interface IFormAbout : IDisposable
{
    void ShowAbout();
}

public partial class MyFormAbout : Form, IFormAbout
{
    public void ShowAbout()
    {
        base.ShowDialog();
        // ...
    }

    // ...
}

```

Here, the main `Form` with the property I'd like to define:

```
public partial class FormMain : Form
{
    // --- This is what I don't know how to do --- //
    public Type<IFormAbout> FormAbout { get; set; }
    // ------------------------------------------- //

    private void SomeMethod()
    {
        using (FormAbout frm = new FormAbout())
        {
            frm.ShowAbout();
            // ...
        }
    }
}

```

The property would be set somehow like this:

```
formMain1.FormAbout = typeof(MyFormAbout);

```

Is it possible to do? Thanks in advance.