2016-08-26 4 views
0

Ich bin derzeit in einem Windows Forms-Projekt mit mehreren Formularen. Jedes Formular enthält 2 Objekte (PictureBoxes) mit demselben Namen. Eine hieß "pBoxMale" und die andere "pBoxFemale".C# Windows Forms-Objekt

Kann ich diese Methode in beiden Formularen verwenden, ohne dass Sie kopieren und einfügen müssen?

public void changeVisiblity(int column) // Change profile gender icon's visibility 
{ 
    string tempGender = dRow.ItemArray.GetValue(column).ToString(); 
    if (tempGender == "M") 
    { 
     pBoxMale.Visible = true; 
    } 
    else 
    { 
     pBoxFemale.Visible = true; 
    } 
} 
+0

So beide Formen haben die gleichen 'dRow' auch? – stuartd

+0

ja. Jeder Zugriff auf die gleiche Tabelle in einem Access db – Johnny

+0

Sie müssen einen Zeiger auf jedes Formular zu halten, und verwenden Sie es auf pBoxMale/Female –

Antwort

4

ein übergeordnetes Formular erstellen:

public class ParentForm: Form 
    { 
     PictureBox pBoxMale { get; set; } 

     PictureBox pBoxFemale { get; set; } 

     public void changeVisiblity(int column, DataRow dRow) // Change profile gender icon's visibility 
     { 
      string tempGender = dRow.ItemArray.GetValue(column).ToString(); 
      if (tempGender == "M") 
      { 
       pBoxMale.Visible = true; 
      } 
      else 
      { 
       pBoxFemale.Visible = true; 
      } 
     } 
    } 

Und dann hat jede Ihres Formular erbt von Mutterform:

public partial class Form1 : ParentForm 
    { 
     ... 
+1

@Johnny, nicht blind kopieren und einfügen und posten "es funktioniert nicht" oder in Ihrem Fall "Ich bekomme das: Bild". Engagieren Sie Ihr Gehirn und arbeiten Sie es durch. Anstatt dies als eine Antwort auf das Auswendiglernen zu betrachten, gliedern Sie es in Teile und studieren Sie, wie Sie diese Teile zusammensetzen, um eine Antwort zu erstellen. – TnTinMn