CLI C++ petla for each a checkbox

0

Mam taki kod:

 for each(Control^ element in zbior->Controls) //petla do wszystkich kontrolek
{
if (element->GetType() == TextBox::typeid)	//nie zeruje label, - w sumie tylko textbox zeruje
{
element->Text = "";
}

}

Chciałbym, żeby pętla nie zerowała mi tekstu tylko Checbox, więc próbuje:

element->Checked=false;

ale nie dziala, o co chodzi ?

0

No, bo Textbox nie jest Checkboxem. Sprawdź najpierw czy element jest właściwą kontrolką i dopiero zmieniaj wartość.

z tym element->GetType() == TextBox::typeid nie przejdzie, bo tutaj wpadną Ci same textboksy.

0

Może jeszcze raz:

 	private: Void wyczysc(Control^ zbior) //
	{
		
		for each(Control^ element in zbior->Controls) //petla do wszystkich kontrolek
		{
			if (element->GetType() == TextBox::typeid)		//nie zeruje label, - w sumie tylko textbox zeruje
			{
				element->Text = "";
			}
			
		}
		//checkbox->Checked = false;
	}

jesli wywolam funkcje

wyczysc(groupBox2);

to oczywiscie dzila i probuje zamienic tak:

 		for each(Control^ element in zbior->Controls) //petla do wszystkich kontrolek
		{
			if (element->GetType() == CheckBox::typeid)		//nie zeruje label, - w sumie tylko textbox zeruje
			{
				element->Checked= "";
			}
			
		}

PODKREŚLA mi te Checked, ale dlaczego ??
Nawet jesli usune intrukcje warunkowa to jest to samo.

3

Bo element nie jest CheckBox^ tylko Control^, które nie ma czegoś takiego jak Checked.

safe_cast<CheckBox^>(element)->Checked = L"";

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