[Ajuda] C# Chamar metodos de uma class

Biohazard

Power Member
Boas PEssoal,

estou a criar um jogo da memoria em que tenho que chamar o metodo timer_tick que está numa class que se chama tabuleiro e quero passar esse metodo para um outro form, na minha class tabuleiro tenho o seguinte codigo:

publicvoid timer_Tick(object sender, EventArgs e)
{
int tag1 = int.Parse(btn1.Tag.ToString());
int tag2 = int.Parse(btn2.Tag.ToString());
if (tag1 == tag2)
{
btn1.Enabled = false;
btn2.Enabled = false;

}

else

btn1.ImageIndex = btn2.ImageIndex = -1;

btn1 = btn2 = null;
timer.Stop();
}


na minha outra forma consigo chamar o metodo, mas não sei o que lhe passar nos arguments, tenho assim:

tabuleiro.timer_tick(aqui não sei o que lhe passar)

alguem me dá umas dicas?

Thks
 
tu não chamas o timer_tick(), esse método é um evento.
o proprio timer é que a vai chamar sempre que fizer um tick, mas tens de a registar no timer, algo como:

timerName.onTick += new TimerEvent( timer_tick );

não sei de cor, mas se tiveres a usar o VS o code completion automaticamente diz-te tudo.
 
do tipo se tens uma clasee com o nome teste

e o ficheiro c# onde queres chamar essa classe tiver o mesmo namespace da classe

basta fazeres teste t = new teste(); // instanciar a classe

chamar o metodo

t.nomedometodo();

para files com namespaces diferentes

fazes nomenamespace.nomeclassedessenamespace teste= new nomenamespace.nomeclassedessenamespace()


exemplo para o caso do mesmo name space

file texte.cs

Código:
namespace insersao
{
    public class teste
    {

     private void metodo()
    {
    }
    }

}
file texte2.cs

Código:
namespace insersao
{
    public class teste2
    {

     private void funcaoi()

    {

//instanciar classe teste

teste t = new texte();

//chamar metodo da classe teste

t.metodo();
    }
    }

}
exemplo para o caso de name space diferente


file texte.cs

Código:
namespace insersao
{
    public class teste
    {

     private void metodo()
    {
    }
    }

}
file texte2.cs

Código:
 namespace insersao2
 {
     public class teste2
     {
 
      private void funcaoi()

     {

//instanciar classe teste

insersao.teste t = new insersao.texte();

//chamar metodo da classe teste

t.metodo();
     }
     }
 
 }
espero ter ajudado
 
Thks já consigo chamar os metodos e os outros forms.

Agora por exemplo tenho um objecto label.text numa form e quero o passar para a minha class tabuleiro por exemplo.

eu crio uma propriedade na minha form para poder aceder a esse objecto na minha class tabuleiro do tipo:

public label nome1 {
get {return label.text}
}

agora na minha class tabuleiro para aceder a este objecto chamo a minha form para poder aceder à propriedade que por sua vez tem o objecto ou seja:

form nome = new form();
nome.nome1.text

agora eu na minha class tabuleiro quero que ele devolva para o meu form o objecto da minha form mas com valores alterados na minha class tabuleiro do tipo:

nome.nome1.text = "nomes"
quero que ele devolva isto modificado para onde está originalmente o meu objecto.

ou seja eu chamo o objecto da minha form para a class tabuleiro só para lhe alterar valores, neste caso a propriedade text, mas quero que depois na minha form ele assuma os valores que alterei na minha class tabuleiro.

como faço isso?
 
não estou a perceber bem mas vou dar um exemplo do que percebo


tens uma class Dados

Código:
public class Dados
{


 private string nome;

 public DataSet nome_pessoa(string id)
        {
            dbm = new DAL.DBManager();
            DataSet ds = null;

            dbm.connection_string = ligacaopessoa;
            dbm.Open();
            dbm.commType = CommandType.StoredProcedure;
            dbm.commText = "procura_nomepessoa";
            dbm.CreateParameter(1);
            dbm.AddParameter(0, "@id", id, ParameterDirection.Input);
            Object obj = dbm.ExecuteDataSet();
            if (obj != null)
            {
                if (obj is System.Data.DataSet)
                {
                    ds = (DataSet)obj;
                    nome = (ds.Tables[0].Rows[0][0]).ToString();
                }
            }
            dbm.Close();
            dbm.Dispose();
            return ds;
        }
}

   public string Nome
        {
            get { return nome; }
            set { nome = value; }
        }
como ja deves ter percebido estou a procurar o nome pessoa referente a um id a pesquizar numa bd atraves de uma store na class nome_pessoa

depois em outro form fasso

Código:
dados d= new dados();


d.nome_pessoa(1);

string nome= d.Nome;
com reparaste aqui vou buscar o nome da pessoa referente ao id =1

puxando logo de seguida o valor da property referente a private nome que puxa essa valor pesquizadona bd



espero que seja essa a ajuda que queiras
 
Back
Topo