Jump to content

Utilizar Tools de outro Form


D3POD

Recommended Posts

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

Link to comment
Share on other sites

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;

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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.