2016-04-20 1 views
1

J'ai le codeComment configurer la couleur d'arrière d'une étiquette sous une forme séparée C#

  Results toResults = new Results(); 
      correct = 0; 
      incorrect = 0; 
      //Indicates clearly which answers are correct 
      if (userGuessArray[0]==decompTimeArray[0]) 
      { 
       toResults.yourAnswerLabel1.BackColor = Color.Green; 
       lblone.BackColor = Color.Green; 
       correct++; 
      } 
      else 
      { 
       toResults.yourAnswerLabel1.BackColor = Color.Red; 
       lblone.BackColor = Color.Red; 
       incorrect++; 
      } 

Il ne semble pas fonctionner pour régler la backcolor de l'étiquette sur la deuxième forme. Je l'ai fait définir la couleur sur lui-même et cela fonctionne, mais il ne va pas aller à l'autre forme. Comment pourrais-je remédier à cela?

J'ai en effet cherché de nombreuses solutions à cela mais n'en ai trouvé aucune.

Voici le code qui l'affiche réellement.

private void ShowResults() 
     { 
      //Shows the Results form. 
      toResults.Show(); 
     } 



private void resultsButton_Click(object sender, EventArgs e) 
     { 

      ShowResults(); 

     } 
+0

Nous ne savons pas vraiment ce que vous entendez par "votre deuxième forme". Peut-être que la deuxième forme n'a pas encore fini d'être initialisée? – noelicus

+1

Parce que vous créez une nouvelle instance du formulaire Résultats. Cette instance n'est jamais affichée et vous ne pouvez pas voir ses étiquettes. Si vous appelez toResults.Show(), vous verrez les effets de vos changements. Mais je parie que ce n'est pas ce que vous attendez ici, n'est-ce pas? Vous devez appliquer ces modifications à l'instance du formulaire Résultats déjà affichée – Steve

+1

Vous dites * ce formulaire * et * cette autre forme * mais je n'en vois aucune dans votre code. Qu'est-ce que tu racontes? pouvez-vous poster plus de code et expliquer ce qui se passe ici? – pid

Répondre

1

Dans votre deuxième formulaire, créez une propriété qui définira ces valeurs pour vous.

Deuxième forme:

public Color _labelBackColor 
{ 
    get { return myLabel.BackColor; } 
    set { myLabel.BackColor = value; } 
} 

Vous pouvez ensuite modifier la valeur en appelant

toResults._labelBackColor = Color.Green; 

ou en définissant quand vous instanciez la deuxième forme

var toResults = new Results { _labelBackColor = Color.Green }; 
+0

J'ai changé ce que j'ai fait en fonction de ce que quelqu'un d'autre a dit et cela a fonctionné. Merci pour votre participation. – pkp23

1

Depuis c'est Windows utilisation de l'application de formulaire Variable statique.

Créez une variable statique dans votre formulaire principal et gardez-la pour gérer votre couleur pour le formulaire. Toujours lire la couleur à partir de cette variable statique pour appliquer où vous voulez.