Bu dersimizde Login Ekranında Sürekli Değişen Resimler Yapmayı göreceğiz
Selamlar arkadaşlar,
Bu dersin içeriği;
- PictureBox kullanımı
- Timer Kullanımı
- Directoryİnfo Kullanımı
- Fileİnfo Kullanımı
- For Kullanımı
Öncelikle projemizin bin debug yoluna bir klasör açalım ve içerisine resimlerimizi atalım. Resimlerimizi login 1.jpg, login 2.jpg gibi bir formatta isimlendirelim.
DİKKAT: İsimler farklı farklı olmayacak. Tek farklı kısım sayısı olacak. Aksi takdirde bu yöntem çalışmaz.
Şimdi bizim bu resimleri proje içerisinde bulmamız gerekiyor. Bunun için Directoryİnfo ve Fileİnfo sınıflarını kullanacağız. DirectoryInfo ile klasörü tarayacağız, FileInfo ile klasördeki resimlerin sayısını for döngüsü kullanarak alacağız.
int adet=0;
void ResimleriSay()
{
DirectoryInfo di = new DirectoryInfo(AppPath = System.Windows.Forms.Application.StartupPath + @"LoginResimler");
FileInfo[] rgFiles = di.GetFiles();
adet = 0;
for (int i = 0; i < rgFiles.Count(); i++)
{
adet++;
}
}
int ResimleriSay()
{
DirectoryInfo di = new DirectoryInfo(Classlar.GlobalSistem.AppPath + @"LoginResimler");
FileInfo[] rgFiles = di.GetFiles();
int adet = 0;
for (int i = 0; i < rgFiles.Count(); i++)
{
adet++;
}
return adet;
}
Evet Klasördeki resimlerin sayısını aldık. bunu yapmamızdaki amacımız klasörde kaç tane resim var ise o kadar değişmesini istememiz. Bir resim koyarsak hiç değişmeyecek.
System.Windows.Forms.Application.StartupPath
Login formumuza bir adet PictureBox, bir adette Timer ekliyoruz.
Formumuzun load eventine gelelim ve Timer'imizi ayarlayalım. Tabiki Timer başladığında resim adedi de bize lazım olacağından load eventimizde ResimSay() fonksiyonumuz da çalıştırıyoruz.
pictureEdit1.Image = Image.FromFile(System.Windows.Forms.Application.StartupPath + @"LoginResimlerlogin 1.jpg");
ResimleriSay();
timer1.Enabled = true;
timer1.Interval = 1000;
timer1.Start();
Şimdi de Timer'imizin Tick eventine gelip kodlarımızı yazıyoruz.
int i = 0;
private void timer1_Tick(object sender, EventArgs e)
{
i++;
if (i > adet)
i = 1;
pictureEdit1.Image = Image.FromFile(System.Windows.Forms.Application.StartupPath+ @"{0}LoginResimlerlogin "+1+".jpg");
ResimleriSay();
}
i adında bir int değişkeni tanımladık. Timer'in her tick demesinde i 'yi bir arttırdık. Eğer ki i klasörümüzdeki resim sayısına eşit oldu ise, (yani tüm resimleri gösterildi ise) i değişkenimizi 1 yapıyoruz.
Şimdi ;
i = 1 , adet = 18 eşit mi? Değil... Devam ediyoruz
PictureBox'in resmini alacağız.
System.Windows.Forms.Application.StartupPath
@"{0}LoginResimler" ile resimlerimizin klasöürün adını veriyoruz.
"login " + i + ".jpg";
Tick eventinin en sonundaki "ResimleriSay();" yeni eklenen resimler olursa diye sayıyı güncelliyoruz.
Bu dersimizde bu kadar arkadaşlar
Diğer derslerimizde görüşmek üzere