אוי ווי... כבר דיברנו על זה!
ראשית, מה שאתה מתאר אינו "תכנות וויזואלי".
למרות ש-MS אהבו לקרוא לכלים שלהם Visual לפני עשור או שניים, והם עדיין אוהבים את זה, בפועל התווית כמעת למגרי ריקה מתוכן.
 
תכנות וויזואלי הוא שאת הקוד עצמו - הלוגיקה, אתה לא צריך לכתוב, אלא גורר אובייקטים גרפיים שמייצגים מבנים ידועים מראש.
 
יש שפה חוצת פלטפורמות לזה:
https://scratch.mit.edu
 
יש אפילו גרסה שלה למיקרו בקרים סטייל ארדואינו, שם כל רכיב חומרה מיוצג כאובייקט.
 
כמובן, זה לא נועד ליישומים של ממש, אלא יותר ללימוד, ובעיקר לילדים.
 
לגבי בניית UI, אין דבר טיפשי יותר היום מבלנות UI בקוד.
אל תיקח את זה כעלבון אישי, אני לא קורא לך טיפש, אתה פשוט לא מהתחום.
 
כשבונים אפליקציה ללקוח, אפליקציה אמתית שהולכת למשתמשי קצה, ולא איזו תוכנה שרק צריכה להציג נתונים טכניים מרכיב חומרה ייעודי שהוא המוצר העיקרי, ה-UI הוא הכל.
 
הוא צריך להיראות טוב! עם אנימציות, עם תמונות שכל אחת במקומה, מעברים, גלילות, משיכות, וכו'.
 
לנסות לבנות מסך שנראה טוב בקוד, זה כמו משחק "הצמד את הזנב לחמור" (לא יודע אם יש גרסה ישראלית לזה).
https://en.wikipedia.org/wiki/Pin_the_tail_on_the_donkey
 
אתה מנסה לנחש מיקומים, לדמיין אותם בראש, ואז לתכנת מספרים קשיחים.
במקום פשוט לעצב את ה-UI עם כלים מתאימים.
 
אני אפילו לא נכנס לזה שהיום כל בניית UI היא "יחסית" או "אדפטיבית" כי צריך להתחשב בהמון סוגי מסכים.
 
בוא ניקח את הדוגמה הפשוטה שלך:
למה לכל הרוחות שתבנה כפתורים בלולאה? מניין יגיע טקסט לכל כפתור ואיך תצמיד לו את הקוד הרלוונטי?
 
אם יש אלמנט בממשק שמכיל יותר מ-3 אופציות, הוא כמעת אף פעם לא יהיה אוסף כפתורים.
הוא יהיה משהו דינאמי כמו תפריט או רשימה, משהו שבכל UI מודרני מטופל ע"י אובייקט יעודי, שמקבל "מקור מידע" ולפי אותו מקור מידע מייצר את האפשרויות הדרושות בזמן ריצה בלי שתצטרך לבנות אחת אחת בקוד עם לולאה משלך.
 
יותר מזה, הוא ידאג להתעדכן אוטומטית כשמקור המידע משתנה.
 
אני יודע שאתה תקוע עם כלים של MS משנות ה-90, עבדתי איתם לפני שנים ואני יודע שהם מייצרים הרגלים רעים, אבל הם גם מייצרים ממשק שהיום נחשב למכוער ולא מקצועי.
 
זמנם תם, ממליץ לך בחום לפתח הרגלים חדשים!