Xedoc Posted February 27, 2014 at 04:23 PM Report #546927 Posted February 27, 2014 at 04:23 PM Boas pessoal... Eu estou neste momento a fazer um mini programa em Windows form que compreende 2 textbox um para login e outro para a password e um button. private void btConnexion_Click(object sender, EventArgs e) { string[] tablog = new string[3] {"delv-n", "gila-r", "gilo-a"}; string[] tabpass = new string[3] {"12345", "67890", "12345"}; tbLogin.Text = Convert.ToString(tbLogin); tbPassword.Text = Convert.ToString(tbPassword); if (tbLogin = tablog[1]) { } Em 1º lugar, eu meti new string [3] porque assim vi no msdn mas é estranho pois uma tabela começa em 0. Neste caso aparentemente não pois contem 3 logins e se meto new string[2] ele dá-me erro e diz que o comprimento está errado. Eu queria basicamente dizer ao programa que ao meter if (tbLogin = tablog[1]) ele tem de ir buscar a 1ª palavra da tabela, neste caso delv-n. O problema aqui e o que me deixa confuso é que ao meter tablog[1] ele diz... Cannot implicitly convert type 'string' to 'System.Windows.Forms.TextBox' Se tirar o 1 ele diz que falta ali um valor. Neste momento encravei aqui e não como sair. Uma ajuda seria bem vinda. Poderá ser problemas de sintaxe ?
nelsonr Posted February 27, 2014 at 04:34 PM Report #546929 Posted February 27, 2014 at 04:34 PM A comparação em C# é com o == E para leres o texto de uma textbox, tens de usar textbox.Text E o primeiro elemento é o [0]
Xedoc Posted February 27, 2014 at 04:41 PM Author Report #546931 Posted February 27, 2014 at 04:41 PM A comparação em C# é com o == E para leres o texto de uma textbox, tens de usar textbox.Text E o primeiro elemento é o [0] Operator '==' cannot be applied to operands of type 'System.Windows.Forms.TextBox' and 'string' http://msdn.microsoft.com/fr-fr/library/aa288453%28v=vs.71%29.aspx Aqui no msdn se reparares têm lá escrito: string[] names = new string[3] {"Matt", "Joanne", "Robert"}; O que vai contra o facto do 1º elemento estar na posição 0
nelsonr Posted February 27, 2014 at 04:44 PM Report #546934 Posted February 27, 2014 at 04:44 PM Operator '==' cannot be applied to operands of type 'System.Windows.Forms.TextBox' and 'string' Isto resolve: E para leres o texto de uma textbox, tens de usar textbox.Text Aqui no msdn se reparares têm lá escrito: string[] names = new string[3] {"Matt", "Joanne", "Robert"}; O que vai contra o facto do 1º elemento estar na posição 0 Como é que vai contra? Quando fazes new string[3] quer dizer que estás a criar um array de strings com 3 elementos. Em que o primeiro elemento está na posção 0, o segundo na posção 1 e o terceiro na posição 2. Estás a misturar o total de elementos com a posição deles 1 Report
Xedoc Posted February 27, 2014 at 04:50 PM Author Report #546936 Posted February 27, 2014 at 04:50 PM Pensei que automaticamente o new string [3] era a posição deles, por isso pensava que o correcto seria new string [2] disseste que para ler o texto de uma textbox tenho de usar o .Text mas no código que mostrei já está convertido: tbLogin.Text = Convert.ToString(tbLogin); tbPassword.Text = Convert.ToString(tbPassword); Porque é que ainda tenho de usar o .Text se já tinha dito ao programa que tblogin.Text = tbLogin ?
nelsonr Posted February 27, 2014 at 05:02 PM Report #546940 Posted February 27, 2014 at 05:02 PM if (tbLogin.Text == tablog[0]) { } E qual o objectivo desta parte? tbLogin.Text = Convert.ToString(tbLogin); tbPassword.Text = Convert.ToString(tbPassword);
Flinger Posted February 27, 2014 at 05:08 PM Report #546942 Posted February 27, 2014 at 05:08 PM Jasus, que confusão... tbLogin.Text = Convert.ToString(tbLogin); tbPassword.Text = Convert.ToString(tbPassword); Tu queres que o texto da TextBox tome o valor da própria TextBox convertida para string??? Não te estou a perceber... Se queres comparar o texto inserido na textbox com uma string do teu array fazes: private void btConnexion_Click(object sender, EventArgs e) { string[] tablog = new string[3] { "delv-n", "gila-r", "gilo-a" }; string[] tabpass = new string[3] { "12345", "67890", "12345" }; if (tbLogin.Text == tablog[1]) { MessageBox.Show("igual"); } else MessageBox.Show("diferente"); }
Xedoc Posted February 27, 2014 at 08:40 PM Author Report #546981 Posted February 27, 2014 at 08:40 PM Jasus, que confusão... tbLogin.Text = Convert.ToString(tbLogin); tbPassword.Text = Convert.ToString(tbPassword); Tu queres que o texto da TextBox tome o valor da própria TextBox convertida para string??? Não te estou a perceber... Se queres comparar o texto inserido na textbox com uma string do teu array fazes: private void btConnexion_Click(object sender, EventArgs e) { string[] tablog = new string[3] { "delv-n", "gila-r", "gilo-a" }; string[] tabpass = new string[3] { "12345", "67890", "12345" }; if (tbLogin.Text == tablog[1]) { MessageBox.Show("igual"); } else MessageBox.Show("diferente"); } É exactamente isso que eu queria. lol. Peço desculpa se não me fiz compreender. if (tbLogin.Text == tablog[0]) { } E qual o objectivo desta parte? O objectivo seria para que depois, não tivesse de fazer "if (tbLogin.Text == tablog[1]" mas simplesmente " if (tbLogin == tablog[1]" porque no meu ver, já estaria convertido ou seja tbLogin.Text passaria a ser simplesmente tbLogin.
nelsonr Posted February 27, 2014 at 10:06 PM Report #547003 Posted February 27, 2014 at 10:06 PM tbLogin é uma textbox, por isso terás sempre de usar a propriedade Text para aceder ao texto. Aquelas linhas não fazem o que estás a pensar que fazem. tbLogin.Text = Convert.ToString(tbLogin); Estás a atribuir ao texto da textbox, o objecto da textbox convertido para string. Neste caso, a tbLogin ficará com o texto do tipo "System.Windows.Forms.TextBox", que é o tipo do objecto. Não sei se vieste do VB6 onde se podia usar apenas o nome da textbox, que acedia à propriedade do texto. Em C# isso não acontece, e normalmente tens de indicar explicitamente a propriedade que pretendes
Xedoc Posted February 28, 2014 at 12:18 AM Author Report #547025 Posted February 28, 2014 at 12:18 AM Sim já programei em Visual basic 6.0 lol mas à muito anos atrás, entretanto meti-me a estudar outras coisas e nunca mais programei na vida. Hoje lá voltei. Obrigado a todos pela pela explicação.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now