Optymalne porównanie zawartości kilku textBox (Windows Forms, C++/CLI, VS2010).

0

Witam.

Mam problem z napisaniem metody porównującej zawartość kilkunastu pól typu textBox(Windows Forms, C++/CLI, VS2010).

Założenia są takie, że mam 18 textBox z nadaną wartością początkową. W przypadku zmiany zawartości dowolnego
pola wprowadzona wartość jest porównywana z zawartością pozostałych i jeśli się powtarza kolor tekstu w obu
jest zmieniany na czerwony.

Metoda obiektu TextChaneged, pożądane rozwiązanie inne (krótsze i bardziej optymalne) niż if-else
dla każdego warunku osobno.

Myślałem o pętlach for tylko nie wiem jak przeskoczyć w pętli na następne pole textBox.

1

Zrób tablicę tych textboksów jako pole klasy formy, i wypełnij ją w konstruktorze.

Potem będzie łatwo w pętli przebiec po tablicy, i sprawdzić czy wartość już występuje.

1
	/// <summary>
	/// Summary for Form1
	/// </summary>
	public ref class Form1 : public System::Windows::Forms::Form
	{

	private:
		array<TextBox^>^ textBoksy;

	public:
		Form1(void)
		{
			InitializeComponent();
			//
			//TODO: Add the constructor code here
			//
			textBoksy = gcnew array<TextBox^>
			{
				textBox1, textBox2, textBox3, textBox4, textBox5, textBox6,
				textBox7, textBox8, textBox9, textBox10, textBox11, textBox12,
				textBox13, textBox14, textBox15, textBox16, textBox17, textBox18
			};
		}
...

// wszystkie textboksy maję tę samą procedurę obsługi zdarzenia.
private: System::Void textBoksy_TextChanged(System::Object^  sender, System::EventArgs^  e) {
			for (int i=0; i<17; i++)
			{
				textBoksy[i]->BackColor = SystemColors::Window;
				for (int j=0; j<17; j++)
				{
					if (i==j)
						continue;
					if (textBoksy[i]->Text == textBoksy[j]->Text)
					{
						textBoksy[i]->BackColor = Color::MistyRose;
						break;
					}
				}
			}
		 }
0

Ooo... Dzięki wielkie! Właśnie takiego czegoś potrzebowałem.

Nie bardzo wiedziałem jak textBox'y upchnąć w tablicę teraz powinno być już z górki.

0

Z racji, że odpowiedź w 100% rozwiązuje przedstawiony problem zamykam temat.

A dla Ciebie Azarien szacunek za pomoc!

1 użytkowników online, w tym zalogowanych: 0, gości: 1