Jump to content

Utilizar Tools de outro Form


Recommended Posts

Posted

Olá a todos, estou com uma duvida que dever ser super básica, mas que não encontro no google nada sobre isso ou simplesmente não estou a procurar de maneira correcta.

O que acontece é que em VB.NET eu podia fazer...

exemplo = form2.btn_abrir.txt

Como faço em C#?

Agradeço desde já a vossa ajuda 😉

Posted

Hummm assim até parece fácil de mais LOL mas não me expliquei bem...

realmente é assim que encontro nos tutoriais e era assim que usava no VB.NET...

talvez seja melhor explicar tudo o que pretendo...

Estou a fazer uma aplicação e vou na parte de actualizar.

Tenho um form onde este contem uma datagridview que recebe a informação.

Depois tenho varios buttons onde um é o Alterar e ao clicar nele abre um painel com uma textbox e um botão...

Ora a minha ideia é colocar nessa textbox o ID do cliente que pretendo alterar e ao clicar no botão ele então abre um form com as textbox e com os dados actuais... depois é só editar o que pretendo e faço salvar para guardar...

Então o que me lembrei de fazer...

Ao abrir o form2 ele vai fazer um SELECT que do cliente com o ID selecionado na panel.

Vou colocar o código, apesar que não está testado... muito menos deve estar correcto...

private void Form2_Load(object sender, EventArgs e)

{

Form2 fr2 = new Form2();

Form1 fr1 = new Form1();

if (fr2.Text == "Alterar Cliente - Gclient")

{

btn_alterar.Visible = true;

btn_grava.Visible = false;

OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Clientes.accdb;Persist Security Info=False");

string query = " UPDATE Clientes SET [Nome] = @nome, [Telefone] = @telefone, [Telemóvel] = @telemovel, [Morada] = @morada, [Contribuinte] = @contribuinte, = @email, [Licença] = @licença, [Activação] = @activação WHERE ID = @ID ";

OleDbCommand command = new OleDbCommand(query, conn);

command.Parameters.Add("@ID", OleDbType.Integer).Value = Form1.txt_id.text;

 

}

else

{

btn_grava.Visible = true;

btn_alterar.Visible = false;

}

}

o código ainda nem está completo... alias nem sei se com este código vou obter o que pretendo... pouco sei de C# ou de outra linguagem, estou ainda a aprender.

Basicamente com este código ele devia carregar a informação no form2 do cliente que tivesse o ID igual ao colocado na textbox no painel...

Espero que me possam ajudar 😉

Um abraço

Posted

Assim à vista, tens aí dois problemas. A propriedade de texto da TextBox é Text e não text ou txt, o controlo txt_id tem que ser público para conseguires aceder a esse valor num outro contexto. Por default os controlos são privados.

Aconselho-te a ter uma propriedade no form1, por exemplo ClientId:

public int ClientId{
  get {return Convert.ToInt32(txt_id.Text);}
}

no parâmetro terias:

command.Parameters.Add("@ID", OleDbType.Integer).Value = frm1.ClientId;

Posted (edited)

E quando o Form1 é aberto, txt_id tem algum texto?

neste caso form2...

sim irá ter o valor do ID do cliente que será apresentada a informação...

rumbafum o meu problema é que a textbox está no form1... e eu quero aceder à informação dele na form2.

Edit1: Já consegui 😉

Fui no form 1 e criei o get para o valor da textbox e depois fui ao form2 e usei... como já tinha o código para o form2... bastou fr2.clientid 😉

Muito obrigado 😉

resumindo para aceder ao valores de outro form ou tools então tenho que o tornar publico ao projecto, pois por default é privado do form onde está... é isso?

Em relação ao código com o que estou a fazer vou conseguir o que pretendo?

Um abraço

Edited by D3POD
Posted

É isso mesmo. Quando adicionas a TextBox através do designer, por default a instância desse objecto é privada.

Para acederes a dados de um form num outro form o melhor é expores propriedades do que queres aceder ou então por injecção de dependências através de construtor

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.