2013-08-08 18 views
21

Continuo a ricevere i seguenti errori nel mio programma:Il membro non invocabile non può essere utilizzato come metodo?

'System.Windows.Forms.TextBox.Text' is a 'property' but used like a 'method' 

e

Non-invocable member 'System.Windows.Forms.Control.Text' cannot be used like a method. 

Ecco il codice:

if (OffenceBox.Text != "") 
    { 
AddBook(int.Parse(AgeBox.Text), NameBox.Text, AddressBox.Text, (HeightBox.Text), OffenceBox.Text()); 
    } 
    else 
    { 
    MessageBox.Show("Age must be max 3 numbers in length"); 
    } 
    } 

Come posso risolvere questo problema?

EDIT: corretto l'errore e ora di fronte a un altro: Argument 4: Cannot convert String to int e io non riesco a risolvere il problema.

risposta

45

Dove hai scritto "OffenceBox.Text()", devi sostituirlo con "OffenceBox.Text". È una proprietà, non un metodo - l'indizio è nell'errore!

+0

Questo ha funzionato ma ho riscontrato un altro problema in cui 'Argument 4: Impossibile convertire String in int' e non riesco a risolverlo. – Angelrawzz

+0

int.Parse (HeightBox.Text) anziché (HeightBox.Text). La proprietà Text è di tipo string, quindi devi provare a convertirla in un int, esattamente come hai fatto per AgeBox.Text. Scatola di questi potrebbe non essere convertibile in int, quindi è necessario catturare l'Eccezione risultante. –

2

Come indica chiaramente l'errore, OffenceBox.Text() non è una funzione e quindi non ha senso.

3

In generale è possibile utilizzare metodi di classi diverse. Es: "Count" uso:


Namespace: System.Linq

using System.Linq 

namespace Teste 
{ 
    public class TestLinq 
    { 
     public return Foo() 
     { 
      var listX = new List<int>(); 
      return listX.Count(x => x.Id == 1); 
     } 
    } 
} 

Namespace: System.Collections.Generic

using System.Collections.Generic 

namespace Teste 
{ 
    public class TestList 
    { 
     public int Foo() 
     { 
      var listX = new List<int>(); 
      return listX.Count; 
     } 
    } 
} 

Problemi correlati