Sono un nuovissimo n00bie in visual C# e mi sono imbattuto in uno strano ostacolo che mi sta facendo impazzire !! Ecco il codice in questione (sì, un programma Ciao Mondo):se le istruzioni nei pulsanti C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Equals("Goodbye Cruel World"))
{
textBox1.Text = ("Hello World!");
}
else { textBox1.Text = ("Goodye Cruel World"); }
}
}
}
Ho anche cercato di usare textBox1.Text == "Goodbye Cruel World"; come parametro di valutazione per la dichiarazione if che non ottiene errori nel compilatore (dal modo in cui utilizzo Visual Studio 2012 Ultimate)
Il programma funziona correttamente. Ho initalizzato la proprietà textbox text come "Hello World!" utilizzando la GUI di design di VS. Il problema che sto affrontando è che il codice funziona solo la prima volta che l'utente fa clic sul pulsante. Ogni volta dopo che il pulsante NON fa NIENTE.
Ho eseguito il debug del codice e mi sono assicurato che la proprietà del testo della casella di testo fosse cambiata correttamente la prima volta che l'utente fa clic sul pulsante. Quando l'utente fa clic sul pulsante una seconda volta (o in qualsiasi momento dopo quello per quello) una volta che il codice raggiunge l'istruzione if, lo salta, come se la valutazione dell'espressione all'interno fosse FALSE. In effetti, mantenendo lo strumento di debug, il pulsante continua a eseguire solo il codice all'interno del blocco else, anche se so per certo che la proprietà TextBox.Text con cui sto lavorando è stata opportunamente modificata in precedenza.
Cosa mi manca qui ??? Perché il pulsante non cambia solo il valore del testo della casella di testo tra le due stringhe che ho codificato?
errore di ortografia. '"Goodye Cruel World"' ti sei perso 'b' in esso. – Yahya
Qui manca un occhio acuto. –
Questo è il motivo per cui dovresti sempre usare un singolo campo 'private const string' per cose come questa invece di digitare la stringa più e più volte. :) –