Giriş
Evet sevgili arkadaşlar, yine güzel bir gün ve yine ben her zamanki gibi sizlerle deneyimlerimi paylaşıyorum J Bugün OpenFileDialog(Windows için) nesnelerini inceleyeceğiz. Ayrıca bu nesne ile birkaç uygulama hazırlayacağız.
OpenFileDialog Nesnesi
Bu nesne uygulamamız ile bilgisayarımız arasında bir köprü görevi görür. Nesnenin ShowDialog fonksiyonu bize bilgisayarın dizinlerini gösteren bir ara yüz getirir. Şimdi anlatmak istediklerimizi hemen bir uygulama üzerinde görelim.
Uygulama OpenFileDialog
Formumuzda bir adet OpenFileDialog nesnesi , bir adet button ve bir adet PictureBox nesnesi yerleştirelim.
Butonumuzun click olayına OpenFileDialog1.ShowOpen yazdığımız zaman bu nesne ile üzerinde işlem yapacağımız bir ara yüze ulaşırız. Buradan gelen pencerede Dosya ismi ve dosya türü kısımları boş gelir. Properties kısmından bu kısımlar ile ilgili düzenlemeleri yapabiliriz.
OpenFileDialog nesnesinin properties penceresindeki FileName kısmına yazacağımız şeyler az önceki dosya ismi kısmında görüntülenir. Bu kısma ?dosya seç? yazalım veya kod ile yapacak olursak formun load olayına OpenFileDialog1.FileName=?dosya seç? yazmalıyız. Uygulamayı çalıştırıp butonumuza bastımızda gelen pencereden dosya isminin yazdığımız yazı olduğunu göreceksiniz. Şimdi sıra geldi dosya uzantısını kısıtlamaya?
Dosya uzantısını kısıtlamak için OpenFileDialog nesnesinin properties penceresindeki Fitler kısmından yararlanacağız. Buraya yazacağımız uzantılar gelen ara yüz penceresinde yerini alacaktır ve sadece bu uzantılara ilişkin dosyalar seçilebilecektir. Buraya belirteceğimiz uzantıların yazım şekli şöyledir
(*.Uzantıya vereceğimiz isim)|*.burasıda uzantı
ÖRNEK : (Resim Dosyası)|*.jpg görüldüğü gibi ilk kısımda uzantının ismini verdik ikinci kısımda ise uzantının gerçek yazılış şeklini belirttik. Tabi siz benim gibi fantezi peşinde koşmayın ve Filter kısmına şunu yazın Jjpg|*.jpg veya kodla yapacaksanız load olayına OpenFileDialog1.Filter = "jpg|*.jpg"yazın.Şimdi uygulamayı derleyin ve çalıştırdığınızda dosya türü kısmında sadece jpg yazdığını ve sadece buna ilişkin dosyaların karşınıza geldiğini göreceksiniz.
Gelen ara yüzün başlığını belirleyebilmemiz için load olayına şöyle bir kod yazabiliriz. OpenFileDialog1.Title = "I Love You Hagi" Yada bunun yerine propertiesdeki title kısmına I Love You Hagi yazsakda olur.
Şu ana kadar kullanıcıya .jpg uzantılı dosyaları seçtirme yetkisi verdik. Şimdide dilerseniz kullanıcının seçtiği dosyanın fiziksel yolunu bulalım. Kullanıcı Dosya seçip Aç butonuna bastığında ekrana fiziksel adresi gösteren bir pencere çıkarmalıyız. Bunun için OpenFileDialog nesnesinin FileOk olayından yararlanacağız. Şimdi aşağıdaki kodu projemize dâhil edelim.
PrivateSub OpenFileDialog1_FileOk(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
MsgBox(System.IO.Path.GetFullPath(OpenFileDialog1.FileName))
End Sub Yukarıdaki kodun çalışabilmesi için system.io kütüphanesinin çağırılmış olması gereklidir. Bunu da projemizin code kısmının en tepesinden import edebiliriz. Şu aşamada kullanıcı dosya seçip Aç butnuna bastığında bu dosyanın fiziksel yolunu gösteren bir pencere ile karşılaşır.
Bu nesne ile karşımıza gelen arayüzün ilk başlayacağı dizini belirleyebiliriz. Örneğin arayüzümüz ilk C:/ dizininden başlasın. Bunun için formun load olayına OpenFileDialog1.InitialDirectory = "c:\" yazmalıyız. Yada properties penceresindeki InitialDirectory kısmına c:\ yazmamız yeterlidir. Bu kadar bilgi yüklemesinin ardından artık gelelim asıl uygulamamıza. Hatırlarsanız formumuzda picturebox nesnesi vardı. Biz OpenFileDialog nesnesi ile bir resim seçip bu resmide bu picturebox içinde göstereceğiz. Bunun için system.io kütüphanesinden faydalanacağız. İlk olarak formdaki picturebox nesnemizin SizeMode öelliğini StretchImage olarak belirlemekte fayda var. Tabi tercih sizin! Şimdi aşağıdaki kodları FileOpenDialog nesnemizin FileOk olayına ekleyelim.
Dimyol As String = System.IO.Path.GetFullPath(OpenFileDialog1.FileName)
Dim fs As System.IO.FileStream = New System.IO.FileStream(yol, FileMode.Open, FileAccess.Read)
Dim resim As System.Drawing.Bitmap = New System.Drawing.Bitmap(fs, True)
PictureBox1.Image = resim
Şu aşamada uygulamayı derleyip çalıştırdığımızda çağırdığımız resmin sorunsuzca picturebox nesnesine gelmiş olduğunu göreceksiniz. Tıpkı benim aşağıdaki denediğim gibi?

Hatta bu aşamada elimizdeki resim değişkeni üzerinde bazı oynamalar yapabilirsiniz. Mesela
İf resim.Height = 155 then
msgbox(?bu resim uygundur?)
else
msgbox(?ebat uymadı?)
end if
gibi? Bu şekilde resmin yükseklik genişliğini istediğiniz gibi kontrol ettirebilirsiniz. Bunun yanında resmin istediğiniz boyutu aşmaması sağlayabilirsiniz. Örneğin eklenecek resmin 100kb geçmiyecek şekilde olmasını isteyebilirsinizki bu kısımlar makalenin amacının dışına çıkıyor J
Makaledeki örnek uygulamayı indirmek için tıklayın