I don't see why long names are bad. Everyone I know that writes C, C++, C#, Java, Python, ... programs larger than "Hello World" is using an IDE with code completion. Long descriptive names help reading the code.
For the checkbox problem you mentioned you could have had it easy if you created a checkbox array in the first place in the form. And if you need unique checkbox identifier you could have used the "Tag" property to store an unique identifier (string). Finding a checkbox by name would have been an easy task: var myIdCheckbox = checkboxArray.Find(cb => "MyId" == (string)cb.Tag);