J'ai donc une page d'onglet modèle dans mon onglet de contrôle qui contient une zone de texte multiligne, un bouton, une barre de progression et une étiquette. J'ai essayé de chercher le clonage de la page de l'onglet modèle et de l'ajouter à mon contrôle onglet, mais pour une raison quelconque, il se bloque à un moment donné à mi-chemin à travers. Est-ce parce que la page de l'onglet a des contrôles à l'intérieur? Dois-je cloner chaque contrôle, puis les ajouter à une nouvelle page à onglet? Est-il simplement plus facile de créer ces contrôles et de simplement définir les valeurs lors de l'exécution? Je me dis que je dois me tromper parce que j'ai de la difficulté à trouver des informations à ce sujet.comment cloner une page à onglet "modèle" C#
private void copyControl(Control sourceControl, Control targetControl)
{
// make sure these are the same
if (sourceControl.GetType() != targetControl.GetType())
{
throw new Exception("Incorrect control types");
}
foreach (PropertyInfo sourceProperty in sourceControl.GetType().GetProperties())
{
object newValue = sourceProperty.GetValue(sourceControl, null);
MethodInfo mi = sourceProperty.GetSetMethod(true);
if (mi != null)
{
sourceProperty.SetValue(targetControl, newValue, null);
}
}
}
question de côté, cela semble que cela pourrait avoir un chevauchement de nom, ou est-ce que pas d'importance puisque chaque contrôle appartient à une page de l'onglet différent?
hmm il semble encore à l'échec quand il arrive à System.Drawing.Size PreferredSize – gbux
Quel est le message d'erreur que vous obtenez? Aussi, pouvez-vous inclure un exemple d'un appelant à cela? Je suppose que vous créez le "targetControl" avant de l'appeler (ou vous obtiendrez une exception NullReferenceException). Ajoutez-vous la cible à la collection Controls du parent avant ou après avoir appelé cette méthode? –