The question is totally wrong. You cannot "convert" one control type to another, in principle. This is not how reference-type objects work.—SA
Don't mix up this with type cast of reference types and assignment compatibility between variables/members. You always can, for example, assign your control type, to say, the variable/member
Control, but it won't change the run-time type of your control. Nothing actually can change it. To get it, you need to learn about inheritance, references and reference types, assignment compatibility, run-time vs compile-time types.
And I want to warn you: you cannot really do any UI development until you learn this, and a lot more; you actually need to know very well all the OOP topics, and also interfaces, delegates types and instances, events and handlers, to be able to do just the bare minimum. And right now, we are discussing topic well below the "real" OOP which essentially starts somewhere at the level of abstract and virtual methods, overrides, late binding and polymorphism. You need to know it all, no exclusions. Learn it all from scratch, use some basic manual, do simple exercises, better as some console-only application. Before you learn it all, don't even think about UI, otherwise you would only waste your time and get a lot of frustration.
when you access the children of a control using the Controls property it returns you a collection that is of type Control, but it does not tell you which type exactly.
What you could to is cast your objects to the type you are expecting.
for example if it is a Textbox :
((TextBox)crt).Text = string.Empty;
if is is a CheckBox :
((CheckBox)crt).Checked = false;