Tim Corey ile C# Form Tasarımını Keşfetmek — Rehberli Bir Yürüyüş
[[academy-video-youtube({"vid": "h8HknjkQ9SI", "start_time": "0", "title": "C# Uygulaması Baştan Başlangıca Ders 07 - Form Aılımı", "creator": "Tim Corey", "length": "1h 06m 41s"})]]
Bu derste Tim Corey, C# Windows Forms uygulaması için kullanıcı arayüzü oluşturma sürecini bizlere gösteriyor. Amacın henüz mantık yazmak değil, önceki derslerden planlama eskizlerini gerçek, çalışan formlara dönüştürmek olduğunu açıklar. Tim, ilk önce tasarıma odaklanacağımızı ve daha sonra her şeyi kodla birleştireceğimizi vurgular. Bu, C# form inşası konusuna daha derin bir bakış ve Tim'in videosu bir Windows Forms uygulamasının Visual Studio'da adım adım nasıl inşa edildiğini açıklamaya yardımcı oluyor.
Form İnşamaya Giriş
Tim, yedinci derse hoş geldiniz diyerek başlar ve amacı net bir şekilde belirtir: formları inşa ediyoruz. Kütüphane çalışmasına benzer olduğunu, ancak şu anda daha önceki planlama eskizlerimize dayalı olarak gerçek kullanıcı arayüzünü uygulamakta olduğumuzu hatırlatır. Bu aşamada kod eklemeye eğilimli olabileceğimizi ancak formları oluşturmaya odaklanmamızı istediğini vurgular.
Önceki tasarımlarımızın kaba eskizler olduğunu, şu anda formların iyi görünmesi gerektiğini açıklar. Tim, tasarım kılavuzunun önemli olduğunu, denemeleri göstermeyeceğini ancak son sonuçları anlatacağını belirtiyor. Önceki planlama adımındaki tasarımların bu dersin temelini oluşturduğunu ve gerekiyorsa o tasarımlara atıfta bulunmayı önerir.
Yeni Proje Ekleme ve Bir Windows Forms Uygulamasına Başlama
Tim çözümü yeni bir proje eklemeyi gösteriyor. Çözüm Gezgini'nde, çözüm üzerine sağ tıklıyor, Yeni Proje Ekle'yi seçiyor ve Windows Form Uygulaması'nı seçiyor. Bu, özellikle Windows masaüstü uygulamaları oluşturma için yeni bir proje türü oluşturur. Projeye Tournament Tracker UI adını verir.
Bir Windows Forms uygulaması oluştururken varsayılan Form1.cs dosyasının otomatik olarak üretildiğini açıklar. Uygulamanın başlangıç formuna ihtiyacı olduğundan Tim, onu silmemeye karar verir. Bunun yerine dosyanın ve sınıfın adını TournamentViewerForm olarak değiştirir ve tüm referansları yeniden adlandırma sorgusunu kabul eder. Bu, uygulamanın ana penceresinin düzgün çalışmasını sağlar.
Form Sınıfını Yeniden Adlandırma
Tim, bir Windows Forms uygulamasında çalışan bir formunuz olması gerektiğini vurguluyor. Varsayılan Form1.cs dosyasını silerseniz, Program.cs içindeki giriş noktası güncellemeniz gerektiğini açıklıyor. Bu karmaşıklıktan kaçınmak için Tim basitçe formun adını değiştirir. Bir Windows Forms uygulaması başlatırken tipik bir adım: proje amacına uyması için sınıf ve dosya adını değiştirmek.
Özellikler Penceresini Kullanma
Tim, Özellikler Penceresini açar ve formun özelliklerini değiştirmeye başlar. Metin özelliğini "Tournament Viewer" olarak değiştirir, böylece başlık çubuğu doğru adı gösterir.
Daha sonra, varsayılan Visual Studio grisi olan BackColor'ı beyaza değiştirir, beyazın daha modern olduğunu ve formun içeriğinden dikkat dağılmaması gerektiğini açıklar. Bu, kullanıcı arayüzü için bir tasarım rehberi oluşturmanın bir parçasıdır.
Daha sonra Font'u 16 noktalık modern bir yazı tipine değiştirir ve bunun neden erken yapılması gerektiğini açıklar: daha sonra eklenen kontroller otomatik olarak yeni yazı tipini miras alacaktır. Tim, bunun formları verimli bir şekilde inşa etmek için önemli bir ipucu olduğunu açıklıyor.
İkon ve Kaynakları Değiştirme
Tim, özel bir ikon dosyası içe aktararak formun simgesini değiştirir. İkonu oluşturmak için Metro Studio isimli ücretsiz bir araç kullandığını açıklar. Bu, simgeleri sıfırdan yazma veya tasarlama gereksinimini ortadan kaldırır. Ayrıca, tüm formlarda aynı simgeyi kullanacağını, uygulamanın görünümünü birleştirmek için kullanacağını belirtiyor.
Forma Kontroller Ekleme
Tim, Toolbox'tan formlara kontrol sürükleyerek kullanıcı arayüzünü oluşturmaya başlar. Bir başlık etiketi ekler ve özelliklerini değiştirir:
ForeColor → RGB (51, 153, 255)
Font → Light, 28
Metin → "Turnuva:"
- İsim → "headerLabel"
Daha sonra turnuva adı etiketi oluşturmak için başlık etiketini kopyalar ve yapıştırır, metnini geçici olarak "None" olarak ayarlar ve adını turnuvaNameLabel olarak değiştirir. Tim, kontrolleri kopyalama ve yapıştırmanın tutarlı bir stil korumanın ve zamandan tasarruf etmenin hızlı bir yolu olduğunu açıklar.
Raunt Seçimi Kontrolleri Ekleme
Tim bir Round etiketi ve bir ComboBox açılır listesi ekler. Etiketin yazı tipini 20'ye değiştirir ve rengini aynı mavimsi aksana ayarlar. Kontrollerin düzgün hizalanması için Visual Studio'nun hizalama kılavuzlarını kullanır.
Daha sonra "Yalnızca Oynanmayanlar" adlı bir CheckBox ekler. Stilini düz olarak değiştirir ve kontrol işaret rengi maviye değiştirir. Tim ayrıca isimlendirme kuralını açıklar: kontrol türünü sondan ekler (örn. roundDropDown, unplayedOnlyCheckbox) böylece arama ve kod gezinmesi kolaylaşır.
Eşleşme Listesi ve Skor Kontrolleri Ekleme
Tim, matchupListBox adında bir ListBox ekler ve kenarlık stilini sabit tek olarak ayarlar. ListBox'un ComboBox'a benzer davrandığını ve bunun kodlamayı daha kolay hale getirdiğini açıklar.
Sonra takım adları ve puanları için etiketler ve metin kutuları ekler. Güçlü bir teknik gösteriyor: çoklu kontrol seçimi, kopyalama ve ardından birlikte yapıştırma. Bu, boşlukların ve düzenin korunmasını, böylece tasarım sürecinin hızlandırılmasını sağlar.
Tim ayrıca, kontrollerin düzgün bir şekilde yeniden adlandırılması gerektiğini, label1 veya textBox2 gibi varsayılan adlardan kaçınılması gerektiğini, bu adların daha sonra karışıklığa neden olabileceğini açıklar.
VS Etiket ve Skor Butonu Ekleme
Tim, iki takım bölümü arasında bir "VS" etiketi ekler. Ardından bir Skor butonu ekler ve stilini özelleştirir:
FlatStyle → Düz
Kenarlık Rengi → Gümüş
MouseDownBackColor → (102, 102, 102)
MouseOverBackColor → (242, 242, 242)
Yazı Tipi → Yarı kalın, 16
ForeColor → (51, 153, 255)
- Metin → "Puan"
Bu ayarların özellikle kullanıcı butonun üzerine geldiğinde veya tıkladığında modern ve duyarlı görünmesini sağladığını açıklar.
Formu Çalıştırma
Tim, projenin şu anda yanlış başlangıç projesine sahip olduğunu açıklar. Sınıf kütüphanesi Çözüm Gezgini'nde kalın yazıyla, bu başlangıç projesi olarak ayarlandığını gösterir, ancak bir sınıf kütüphanesi kendi başına çalıştırılamaz. Tracker UI'ı başlangıç projesi olarak ayarlar.
Uygulamayı çalıştırdığında, form Windows 10 stilinde görünür. Tim, butonun üstüne gelme ve tıklama davranışının, kullanıcı arayüzünün duyarlı ve modern olduğunu gösterdiğini belirtir.
Turnuva Oluşturma Formu
Tim, CreateTournamentForm adlı yeni bir form ekler ve özelliklerini (font, renk, ikon) ayarlar. Geliştirme sürecini hızlandırmak için Tournament Viewer formundan kontroller kopyalar.
Şunları ekler:
Turnuva adı girişi
Katılım ücreti girişi (varsayılan değer 0)
Takım ekleme açılır listesi
Takım oluşturma bağlantı etiketi
Takım ekleme butonu
Ödül oluşturma butonu
Turnuva oyuncuları list kutusu
Silme butonları
- Turnuva oluşturma butonu
Bağlantı etiketini mavi tutma tasarım seçimini, kullanıcıların mavi altı çizili metni bir bağlantı olarak tanımaları üzerine yaptığı açıklama ile anlatıyor.
Takım Oluşturma Formu
Tim CreateTeamForm oluşturur ve ekler:
Takım adı girişi
Takım üyesi seçimi açılır listesi
Üye ekleme butonu
Yeni üyeleri ekleme için grup kutusu
Ad, soyad, e-posta ve cep telefonu alanları
Üye oluşturma butonu
Takım üyeleri list kutusu
Seçili üye silme butonu
- Takım oluşturma butonu
Grup kutusunun görsel bir sınır sağladığını ve gruplanmış kontrolleri yönetmeyi kolaylaştırdığını açıklar. Ayrıca, grubu bir birim olarak taşırken de yardımcı olur.
Ödül Oluşturma Formu
Tim, CreatePrizeForm'u şu elemanlarla inşa eder:
Yer numarası girişi
Yer adı girişi
Ödül tutarı girişi
Ödül yüzdesi girişi
"Veya" etiketi
- Ödül oluşturma butonu
Yerleşimin temiz ve profesyonel görünmesine dikkat ederek hizalama araçlarını kullanır.
Turnuva Kontrol Formu
Tim nihai formu oluşturur: TournamentDashboardForm. Şunları ekler:
Mevcut turnuvayı yükleme açılır listesi
Turnuvayı yükleme butonu
- Turnuva oluşturma butonu
Yerleşimin görsel olarak dengeli olması için hizalama ve boşluk araçlarını kullanır.
İsimlendirme ve Organizasyon İpuçları
Tim doğru isimlendirmenin önemini vurgular. Sunumlar listesi gibi yanlışlıkla geride bırakılmış etiket1 veya textBox2 gibi adsız kontrolleri belirlemenize yardımcı olması için Özellikler açılır listesini nasıl kullanabileceğinizi gösterir. Daha netlik sağlamak için newMemberGroupBox eklemek üzere bir grup kutusunun adını değiştirme işlemi gösterir.
Başlangıç Formunu Ayarlama
Tim Program.cs'de başlangıç formunu nasıl değiştireceğinizi açıklar. Şu değişiklikleri yapar:
Application.Run(new TournamentViewerForm());şu şekle:
Application.Run(new TournamentDashboardForm());Bu satırın form örneğini oluşturduğunu ve form kapatılana kadar uygulamayı duraklattığını açıklar.
Neden Main Önemlidir
Tim, Windows Forms'u konsol uygulamalarıyla karşılaştırır: ikisinin de static void Main vardır. Main tamamlandığında uygulamanın kapandığını açıklar. Bu nedenle, uygulamanın çalışmaya devam etmesi için formun açık kalması gerektiğini belirtir.
Ayrıca Visual Studio'nun XML yorumlarını içermesini ve daha sonra yöntemler için XML belgeleri eklemeyi teşvik ettiğini belirtir.
Sonraki Adımlar
Dersin sonunda Tim, bir sonraki adımın formları mantık ile birleştirmek olduğunu belirtiyor. İzleyicilere karmaşık kısmın geldiğini, ama formlar oluşturulduktan sonra yönetilebilir hale geleceğini reassures. Mantığın LEGO parçalarını birleştirmek gibi hissettireceğini ve ilerledikçe zor kısmın yavaş yavaş kaybolacağını söylüyor.

