Nella mia applicazione, ho un BaseForm
che ha un membro generica in esso:Come ereditare un modulo generico e aprirlo nel designer di Visual Studio?
public partial class BaseForm<T> : Form where T : Presenter
{
protected T Presenter;
public BaseForm()
{
InitializeComponent();
}
}
Ora che cosa ho bisogno è di avere una forma che viene ereditato da mia BaseForm
public partial class SampleForm : BaseForm<SamplePresenter>
{
public SampleForm()
{
InitializeComponent();
Presenter = new SamplePresenter();
}
}
Il problema è che il designer di Visual Studio non mostra il mio SampleForm
derivato da BaseForm<T>
.
Si dà questo avvertimento:
Attenzione 1 Il progettista non può essere visualizzata per questo file perché nessuna delle classi all'interno di esso può essere progettato. Il progettista ha esaminato le seguenti classi nel file:
SampleForm --- Impossibile caricare la classe base "Invoice.BaseForm". Assicurarsi che l'assembly sia stato referenziato e che tutti i progetti siano stati costruiti. 0 0
Come posso superare questo?
P.S. Ho guardato allo this post ma non ho avuto l'idea di come risolverlo.
Non è l'idea di avere diversi presentatori in diverse classi ereditarie. – Magnus
@Magnus: il problema degli OP si concentra sull'integrazione del designer di Visual Studio. Niente di più. Penso che questo sia quello che dovrebbe essere per quello. –
Grazie, è esattamente quello che stavo cercando. Ora posso solo avere un pacchetto di test in cui sarò in grado di aprire l'interfaccia utente con il designer e far sì che il progetto reale venga implementato tramite generici. Grazie ancora :) – Carmine