2009-08-18 7 views
1

J'ai un formulaire personnalisé qui retourne les valeurs au formulaire principal mais il ne voit pas les variables. Je ne pense pas que je le dis très clairement, donc j'inclurai les liens vers les exemples de ce que j'essaie de faire.Ma valeur de retour de boîte de dialogue ne fonctionne pas

Je sais que je suis sans doute sur quelque chose très facile et ou évident, mais voici ce que j'ai.

form1.cs:

private void addTime_Click(object sender, EventArgs e) 
{ 
    Form add = new addTime(false, new string[] { "", "" }); 
    if (add.ShowDialog(this) == DialogResult.OK) 
    { 
     // the line not working 
     Label1.Text = add.Details; 
     // reports with:'System.Windows.Forms.Form' does not contain a 
     // definition for 'Details' and no extension method 'Details' accepting  
     // a first argument of type 'System.Windows.Forms.Form' could be found (are you 
     // missing a using directive or an assembly reference?) 
    } 
} 

addTime.cs:

internal class addTime : Form 
{ 
    //.. 

    private string _details; 
    public string Details 
    { 
     get { return _details; } 
     private set { _details = value; } 
    } 

    private string _goalTime; 
    public string GoalTime 
    { 
     get { return _goalTime; } 
     private set { _goalTime = value; } 
    } 

    private void applybtn_Click(object sender, EventArgs e) 
    { 
     Details = detailslbl.Text; 
     GoalTime = goalTimelbl.Text; 
    } 
} 

Répondre

5

Votre variable 'add' est de type Form, pas addTime et le type de formulaire n'a pas de propriété Details.

Essayez cette ligne à la place:

addTime add = new addTime(false, new string[] { "", "" }); 
+0

WOW! Je savais que ça devait être quelque chose de simple! Lol, merci bien que je me sens comme un idiot maintenant. – Nyight

+0

Belle prise, j'ai raté ça –

3

Vous devez définir la propriété DialogResult du formulaire enfant

DialogResult = DialogResult.OK 

le bouton clic.

0

vous devez définir la propriété à OK DialogResult du formulaire. Vous ne l'avez pas spécifié dans votre code. Une fois que les critères corrects ont été remplis, vous devez le définir comme suit.

If (//condition) 
{ 
this.DialogResult = DialogResult.OK; 
This.Close(); 
} 
Questions connexes