Final 2025-2026 20 soru

Görsel Programlama 2025-2026 Final

Kaynak: https://lolonolo.com/2026/06/11/gorsel-programlama-2025-2026-final-sorulari/

📖 Konu özeti (sınav öncesi tekrar)

Görsel Programlama 2025-2026 Final Soruları

Görsel Programlama 2025-2026 Final Soruları

Visual Studio ve Dağıtım Teknolojileri | Dosya ve Sürücü Yönetimi (System.IO) | Windows Forms Arayüz Kontrolleri | Veri Bağlama ve Tablo Mimarisi

Visual Studio ve Dağıtım Teknolojileri

Visual Studio IDE içerisinde projelerin, formların ve kod dosyalarının hiyerarşik olarak listelendiği panel Çözüm Gezgini (Solution Explorer)’dir. Kaynak koddaki sözdizimi hataları ve uyarılar ise Hata Listesi Paneli (Error List) üzerinde görüntülenir. Geliştirilen bir Windows uygulamasının son kullanıcıya kolayca dağıtılabilmesi için ClickOnce teknolojisi kullanılır. Yayımlama (Publish) sihirbazını çalıştırmak için *Derle (Build) – Seçimi Yayımla* yolu izlenir ve varsayılan kurulum dosyaları *bin\publish* dizininde oluşturulur. Profesyonel MSI/EXE kurulumları hazırlamak için ise *Microsoft Visual Studio Installer Projects* eklentisinin kurulması gerekir.

Dosya ve Sürücü Yönetimi (System.IO)

C# ile disk ve dizin işlemleri System.IO isim uzayı (namespace) altında yer alan sınıflarla yönetilir. Klasör işlemleri için `Directory` sınıfı kullanılırken, doğrudan `Folder` adında bir sınıf bulunmaz. Bir dosyanın fiziksel olarak var olup olmadığını denetlemek için `File.Exists` metodu kullanılır. Sürücü kapasitelerini sorgulayan `DriveInfo` sınıfında ise diskin toplam boyutunu bayt cinsinden veren özellik `TotalSize` iken, boş alanları veren özellikler *TotalFreeSpace* ve *AvailableFreeSpace* şeklindedir.

Windows Forms Arayüz Kontrolleri

Windows formlarında pencereyi simge durumuna küçültme, ekranı kaplama ve kapatma butonlarının görünürlüğünü yöneten özellik ControlBox’tır. Formun düzeni (boyut, hizalama vb.) değiştiğinde tetiklenen event Layout’tur. Tarih/saat girişi için kullanılan *DateTimePicker* kontrolünün görünüm tipi Format özelliğiyle ayarlanır. Seçili elemanın sıra numarası (indeksi) *ComboBox* ve *ListBox* kontrollerinde SelectedIndex ile elde edilir. Listeden indis numarasına göre silme işlemi için `RemoveAt()` metodu kullanılır. İşlem süresi bilinmeyen durumlar için animasyonlu ilerleme çubuğu ProgressBarStyle.Marquee stilidir. Formu ızgaralara bölerek her hücreye bir kontrol yerleşimi sağlayan konteyner TableLayoutPanel iken, menü/araç çubuklarını kenetlenebilir kılan panel ToolStripContainer’dır.

Veri Bağlama ve Tablo Mimarisi

`DataTable` veri yapısında anahtar (Primary Key) ataması `PrimaryKey` özelliği üzerinden bir sütun dizisi verilerek gerçekleştirilir. `DataGridView` arayüzünde kullanıcının seçtiği ilk satıra erişmek için `SelectedRows[0]` indislemesi kullanılır. Satır verisinin bütününe indeks üzerinden ulaşmak için `dataGridView1.Rows[e.RowIndex]` yapısı tercih edilir. Metin kutularına kuralı giriş yaptırmak için kullanılan `MaskedTextBox` nesnesinde, ‘0’ zorunlu karakteri, ‘9’ ise isteğe bağlı karakteri ifade eder.

Görsel Programlama 2025-2026 Final Soruları

20 soru
Şıkka dokun, anında açıklamasını gör — ya da çalışma modunda tüm cevapları aç.
Soru 1
ClickOnce ile uygulamanın kurulum dosyasını oluşturmak için Visual Studio editöründe aşağıdaki menü yollarından hangisi izlenmelidir?
DDoğru cevap
Açıklama
Visual Studio’da geliştirdiğiniz bir uygulamanın son kullanıcılar tarafından kolayca kurulabilmesi için ClickOnce teknolojisi kullanılır. Bu kurulum (publish) dosyasını oluşturmak için üst menüden “Build” (Derle) sekmesine tıklanır ve ardından üzerinde çalışılan spesifik projenin yayımlanması için “Publish [Proje Adı]” (Seçimi Yayımla) seçeneği tercih edilir.
Soru 2
Görsel Programlama 2025-2026 Final Soruları 2. SORU
Yukarıda verilen kodun kaynak.txt isimli dosyanın mevcut olup olmadığını kontrol etmesi istenmektedir.
Kodun çalışabilmesi için boş bırakılan yere aşağıdaki metodlardan hangisi gelmelidir?
CDoğru cevap
Açıklama
C# programlama dilinde `System.IO` kütüphanesi altında bulunan `File` sınıfının `Exists` metodu, belirtilen dosya yolunda (path) ilgili dosyanın fiziksel olarak var olup olmadığını kontrol eder. Dosya mevcutsa ‘true’ (doğru), mevcut değilse ‘false’ (yanlış) boolean değerini döndürür. Bu nedenle boşluğa `Exists` gelmelidir.
Soru 3
ClickOnce ile bir projenin varsayılan kurulum yolu aşağıdakilerden hangisidir?
CDoğru cevap
Açıklama
Visual Studio’da ClickOnce kullanılarak bir projenin kurulum dosyaları oluşturulduğunda (publish edildiğinde), aksi belirtilmedikçe varsayılan yayımlama dizini genellikle projenin ana klasörü içerisindeki `publish\` klasörü veya derleme ayarlarıyla bağlantılı olarak `bin\publish` yolu olur. Bu klasör uygulamanın dağıtım dosyalarını (setup.exe, uygulama dosyaları vb.) barındırır.
Soru 4
Aşağıdaki kod satırından hangisi ProgressBar kontrolünün animasyonlu gösterilmesi için kullanılır?
CDoğru cevap
Açıklama
Windows Forms uygulamalarında `ProgressBar` kontrolü, bir işlemin ilerleme durumunu gösterir. İşlemin ne zaman biteceği kesin olarak bilinmiyorsa ve sadece kullanıcının bir işlemin devam ettiğini anlaması isteniyorsa, sürekli kayan bir animasyon görünümü sağlayan `ProgressBarStyle.Marquee` stili kullanılır.
Soru 5
Aşağıda verilen DriveInfo sınıfı özelliklerinden hangisi sürücünün toplam kapasitesini bayt cinsinden döndürür?
BDoğru cevap
Açıklama
`System.IO.DriveInfo` sınıfı, bilgisayardaki sürücüler (diskler) hakkında bilgi almak için kullanılır. Bu sınıfa ait `TotalSize` özelliği, ilgili sürücünün toplam depolama kapasitesini bayt (byte) cinsinden döndürür. Diğer seçeneklerden `TotalFreeSpace` toplam boş alanı, `AvailableFreeSpace` ise mevcut kullanılabilir boş alanı ifade eder.
Soru 6
Aşağıda verilen olaylardan hangisi formun düzeni değiştiğinde tetiklenir?
CDoğru cevap
Açıklama
Windows Forms’da kontrollerin (formun veya form içindeki panellerin) yerleşimi, hizalaması veya boyutu gibi görsel düzenlemeleri değiştiğinde (örneğin yeni bir kontrol eklendiğinde, kaldırıldığında veya AutoSize özelliği devredeyken) bu yerleşim değişikliklerini yakalamak için `Layout` olayı (event) tetiklenir.
Soru 7
DateTimePicker kontrolünde tarih gösterme biçimi kontrolün aşağıdaki özelliklerden hangisi ile belirlenir?
BDoğru cevap
Açıklama
`DateTimePicker` kontrolü, kullanıcıdan tarih ve saat verisi almak için kullanılır. Tarih ve saatin arayüzde nasıl görüneceğini (Kısa tarih, uzun tarih, sadece saat veya özel bir format) belirlemek için kontrolün `Format` özelliği (örneğin: `DateTimePickerFormat.Short`, `DateTimePickerFormat.Time` veya `Custom`) kullanılır.
Soru 8
Formun sağ üst köşesindeki simge durumuna getirme, tam ekran yapma ve kapatma butonlarının gösterilip gösterilmeme ayarı aşağıdaki hangi form özelliği ile sağlanır?
DDoğru cevap
Açıklama
Bir Windows formunun pencere başlığında (Title Bar) sağ üstte yer alan standart kontrol kutusunun (Simge Durumuna Küçült, Ekranı Kapla, Kapat düğmeleri dahil) tümüyle görünür olup olmamasını sağlayan boolean (true/false) özellik `ControlBox` özelliğidir. False yapıldığında formun standart kapatma ve boyutlandırma butonları kaybolur.
Soru 9
ComboBox kontrolünde seçili elemanın indisi aşağıdaki hangi özellik ile elde edilir?
EDoğru cevap
Açıklama
Açılır liste (ComboBox) kontrolünde, kullanıcının seçtiği elemanın listedeki sırasını (indeks numarasını) tam sayı (integer) olarak döndüren veya ayarlayan özellik `SelectedIndex`’tir. İndeksleme sıfırdan (0) başlar; yani ilk eleman seçilirse değer 0 olur. Eğer hiçbir eleman seçili değilse bu özellik -1 değerini döndürür.
Soru 10
Aşağıda verilen şıklardaki kod satırlarından hangisi, dt adlı DataTable veri yapısında ID sütununu birincil anahtar (PrimaryKey) olarak atamayı sağlar?
ADoğru cevap
Açıklama
C# programlamada `DataTable` yapısında bir veya daha fazla sütunu “Birincil Anahtar” (Primary Key) olarak ayarlamak için `PrimaryKey` özelliği kullanılır. Birincil anahtar bir veya birden fazla sütundan oluşabileceği için bu özellik bir `DataColumn` dizisi (array) kabul eder. Bu yüzden atama işlemi `new DataColumn[] {dt.Columns[“SütunAdı”]}` formatında yapılmalıdır.
Soru 11
Aşağıdaki seçeneklerden hangisi, dataGridView1 adlı DataGridView kontrolünde seçili ilk satırı elde etmek için kullanılır?
BDoğru cevap
Açıklama
`DataGridView` kontrolünde kullanıcının seçmiş olduğu satırların tümü `SelectedRows` koleksiyonunda tutulur. Kullanıcının seçtiği “ilk” satıra (ya da birden fazla satır seçildiyse koleksiyondaki sıfırıncı indisteki satıra) erişmek için dizi mantığıyla `SelectedRows[0]` ifadesi kullanılır.
Soru 12
Baş taraftaki 012 alan kodu isteğe bağlı ve takip eden diğer numaraları zorunlu olmak üzere (012) 345-67-89 formatında veri girilmesi için MaskedTextBox kontrolünün Mask özelliği aşağıdakilerden hangisi olarak ayarlanmalıdır?
BDoğru cevap
Açıklama
`MaskedTextBox` kontrolünün Mask özelliğinde, rakam girişleri için kullanılan sembollerin farklı anlamları vardır: ‘0’ rakamı “zorunlu giriş” (kullanıcı buraya rakam yazmak zorundadır), ‘9’ rakamı ise “isteğe bağlı giriş” (kullanıcı rakam yazabilir veya boş geçebilir) anlamını taşır. Bu nedenle isteğe bağlı (012) bölümü için ‘(999)’, zorunlu numaralar için ise ‘000-00-00’ kullanılmalıdır.
Soru 13
Uygulamada yer alan projeler, projelere ait formların tasarım ve kod dosyaları Visual Studio editöründe aşağıdaki hangi ekran, pencere veya panelde listelenir?
EDoğru cevap
Açıklama
Visual Studio geliştirme ortamında (IDE), açılan Solution (Çözüm) içerisindeki tüm projelerin, sınıfların (class), form dosyalarının, referansların ve kaynak dosyalarının (resim, ikon vb.) hiyerarşik bir ağaç yapısında görüntülendiği, yönetildiği ve aralarında geçiş yapıldığı panelin adı “Solution Explorer” yani “Çözüm Gezgini”dir.
Soru 14
Aşağıdakilerden hangisi System.IO alan adında yer alan sınıflardan biri değildir?
ADoğru cevap
Açıklama
C# programlamada dosya ve dizin giriş-çıkış işlemlerini yöneten `System.IO` isim uzayında klasör/dizin işlemleri için `Directory` veya `DirectoryInfo` sınıfları bulunur. “Folder” adında doğrudan tanımlanmış bir sınıf yer almamaktadır. Diğer şıklardaki sınıflar veri okuma ve dosya/sürücü bilgi işlemleri için resmi System.IO yapılarıdır.
Soru 15
DataGridViewRow r = dataGridView1.Rows[e.RowIndex];
Yukarıdaki kod satırının işlevi aşağıdakilerden hangisidir?
ADoğru cevap
Açıklama
`CellClick` veya benzeri DataGridView olaylarında (event) meydana gelen işlemde, `e.RowIndex` parametresi tıklanan veya işlem yapılan satırın indeks numarasını tutar. `dataGridView1.Rows[e.RowIndex]` ifadesi ise ilgili sıradaki satır nesnesine (`DataGridViewRow`) tüm içeriği, veri ve hücre yapısıyla (değerleriyle) birlikte doğrudan ulaşmayı/elde etmeyi sağlar.
Soru 16
Kaynak koddaki hataların listelendiği panel aşağıdakilerden hangisidir?
DDoğru cevap
Açıklama
Yazılan kodun derlenmesi (build) aşamasında veya eşzamanlı kod yazımı sırasında ortaya çıkan sözdizimi hatalarının (Errors), eksik referansların, uyarıların (Warnings) ve mesajların tablo halinde gösterildiği Visual Studio bölümü “Error List” yani “Hata Listesi Paneli”dir.
Soru 17
Setup Project (Kurulum Projesi) ile uygulamanın kurulum dosyasını oluşturmak için Visual Studio editörüne kurulması gereken uzantı aşağıdakilerden hangisidir?
EDoğru cevap
Açıklama
ClickOnce dışında, profesyonel bir Windows Setup (*.msi, *.exe) kurulum sihirbazı oluşturmak için Visual Studio’nun varsayılan özelliklerine ek olarak “Microsoft Visual Studio Installer Projects” eklentisinin (extension) indirilerek kurulması gerekmektedir.
Soru 18
Formu satır ve sütun halinde çerçevelere bölen ve her hücre içerisine yalnızca tek bir kontrol eklenmesine izin veren form kontrolü aşağıdakilerden hangisidir?
DDoğru cevap
Açıklama
`TableLayoutPanel` kontrolü, tıpkı HTML tabloları gibi formu izgaralar halinde belirli satır (row) ve sütunlara (column) bölen özel bir konteyner kontrolüdür. Tasarım düzenini korumak amacıyla bu ızgaradaki her bir hücreye en fazla bir adet kontrol yerleştirilmesine müsaade eder.
Soru 19
Aşağıdaki kontrollerden hangisi menü ve araç çubuklarının yerleşimi için formu üst, alt, sağ ve sol panellere böler?
ADoğru cevap
Açıklama
Profesyonel uygulamalarda menü çubuklarını (MenuStrip) ve araç çubuklarını (ToolStrip) formun etrafında (yukarı, aşağı, sağ, sol) sürükle-bırak yöntemiyle kenetlenebilir (dockable) hale getirmek için geliştirilmiş olan özel kapsayıcı (container) kontrolü `ToolStripContainer` yapısıdır.
Soru 20
ListBox kontrolünün değerleri içinde belirli bir indisteki elemanı koleksiyondan silmek için aşağıda verilen metodlardan hangisi kullanıır?
EDoğru cevap
Açıklama
C# koleksiyonlarında (ve ListBox’ın Items koleksiyonunda) bir elemanı doğrudan metinsel değerini/nesnesini vererek silmek için `Remove()` metodu kullanılırken; dizide bulunduğu sıra numarasına (indeksine) göre hedef gösterip silmek için `RemoveAt(indeks)` metodu kullanılır.