WPF İle Pencere İşlemleri

16.12.2008 - Ekleyen : Volkan AKTAŞ

Bir WPF Uygulaması oluşturabilmek için Proje tipi olarak Visual Basic /Windows/WPF Application proje şablonunu seçiyoruz.

Örneğimiz için form üzerine toolbox’dan bir buton nesnesi ekliyoruz. Eklediğimiz butonun ismini “cmdyenipencere”, üzerindeki yazıyı da “Yeni pencere” olarak değiştiriyoruz. Bu işlemi kod yazmadan değiştirmek için properties penceresinden name ve text özelliklerini kullanabileceğimiz gibi XAML kod penceresinden kod yazarak da değiştirebiliriz. Butonumuzun XAML kodu şu şekilde:

 

<Button Height="23" Margin="88,0,115,62" Name="cmdyenipencere" VerticalAlignment="Bottom">Yeni Pencere</Button>

 

VB.NET kodu da şu şekilde olacak:

 

Class Window1

    Private Sub cmdyenipencere_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles cmdyenipencere.Click

        Dim pencere As New Window

        pencere.Width = 300

        pencere.Height = 200

        pencere.Title = "Yeni Pencere"

        pencere.Show()

    End Sub

End Class

 

Project menüsünden Add Window diyerek yeni pencere eklemek de mümkündür. Ana penceremiz içerisine bir buton ekleyerek şu kodu yazalım:

Devamı...

VB.NET İle Excel'de Kopyalama Ve Taşıma İşlemleri

05.12.2008 - Ekleyen : Volkan AKTAŞ

Kopyalama ve taşıma işlemlerinde şu metodlar kullanılabilir:

 

Hücre içeriğini kopyalamak için

Excelnesnesi.Range("Kaynak Sütun:Kaynak Satır").Copy(Excelnesnesi.Range("Hedef Sütun :Hedef Satır"))

Şeklinde bir yöntem kullanılır. 

 

Hücre içeriğini taşımak için

Excelnesnesi.Range("Kaynak Sütun:Kaynak Satır").Cut(Destination:= Excelnesnesi.Range ("Hedef Sütun :Hedef Satır"))

Şeklinde bir yöntem kullanılır. 

 

İşlemler bittikten sonra hafızayı temizlemek için

Devamı...

VB.NET İle Excel'de Seçim İşlemleri

16.09.2008 - Ekleyen : Volkan AKTAŞ

Seçim işlemleri için Select metodu kullanılır.

 

Satır seçmek için

        Excelnesnesi.Rows("Sütun adı ").Select()

şeklinde bir yöntem kullanılabilir.

Sütun seçmek için

        Excelnesnesi.Columns("Sütun adı ").Select()

şeklinde bir yöntem kullanılabilir.

Hücre seçmek için

        Excelnesnesi.Cells.Range("$Sütun adı $Satır numarası ").Select()

şeklinde bir yöntem kullanılabilir.

 

Bunların dışında Excel hücresine erişim konusunda belirttiğimiz erişim metodlarını kullanmamız da mümkündür.

 

Seçme işlemlerine dair bir örnek uygulama yapalım. Form üzerine 3 adet buton ekliyoruz.

 

Public Class Form1

    Dim xl

    'Excell nesnesi tanımlıyoruz

    Dim range

    'Range nesnemizi tanımlıyoruz

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles satırsec.Click

        xl.worksheets(1).Activate()

        '1 nolu satırı seçtik

        xl.Rows("1:1").Select()

    End Sub

 

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        'Excel nesnesini oluşturuyoruz

        xl = CreateObject("Excel.Application")

        'Yeni bir çalışma kitabı ekliyoruz

Devamı...

VB.NET İle Excel İçerisinde Koşullu Biçimlendirme

07.09.2008 - Ekleyen : Volkan AKTAŞ

Örneğimiz için form üzerine bir adet komut butonu ekleyelim ve şu kodları yazalım:

 

Public Class Form1

    Dim xl

    'Excell nesnesi tanımlıyoruz

    Dim range

    'Range nesnemizi tanımlıyoruz

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        If CInt(xl.Range("$A$1").value) > 10 Then

            xl.Range("$A$1").Font.Color = QBColor(2)

        Else

            xl.Range("$A$1").ClearFormats()

        End If

    End Sub

 

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        'Excel nesnesini oluşturuyoruz

Devamı...

Asp.NET Validation Control

19.08.2008 - Ekleyen : Erdem TUZEN

Asp.NET Validation Control

 

Validation Nedir Ne işe yarar?
     
    Küçük bir senaryo düşünelim. Bir site tasarladık ve bu sitede üyelik sistemi ekledik. Veri tabanına gönderilecek veriler için girdi noktalarımız olacaktır.(Textbox, Combobox vs.) Üye olacak kişi girdi alanlarını doldurarak “Kaydet” butonuna tıkladığında bilgiler veritabanına gönderilecektir. Bu bilgiler gönderilmeden önce bir kontrolden geçirmemiz gerekmektedir. Mesela belli alanlar boş bırakılmalı ya da istediğimiz formatta yazılmalı. Bu tür işlemleri yapabilmek için birkaç seçeneğimiz vardır. şunlar;
     
-      Bilgileri alıp, code behind’da belli kontroller yapmak buna göre exception oluşturmak ya da herhangi bir şekilde kullanıcıya bir hata mesajı göstermek. Tabi bu kontrolleri code behinde’da yapmak için, kullanıcının bu verileri girdiği sayfa postback (sayfa sunucuya gidip – gelmeli) yapılmalı, bundan dolayı bu yöntem çok kullanışlı ve verimli değil. ( Ayrıca çok kullanılmayan ve tercih edilmeyen bir yöntem )
-      Diğer bir yöntem ise bu alanları JavaScript kullanarak client-side’da kontrol yapmak. Bu yöntem yukarıda anlattığıma göre biraz daha kullanışlı, ama bir sürü if-else yazmamız gerekecek.
İşte Asp.NET’teki Validation compenentleri bizi bu işlerle uğraşmaktan kurtarmak için tasarlanmış bileşenlerdir.

Şöyle ki; hem işimizi client-side hallediyor (yani boş alan kontrolü, ya da istenilen aralıkta olması, gereken bir değerin kontrolü gibi.) hem de bir sürü if-else kullanmaktan kurtarıyor. (Kısaca .NET nimetleri diyebiliriz. :))



ToolBox’tan Validation’a geldiğimizde üstteki Resmi göreceksiniz. Buradaki componentleri genel olarak açıklamak gerekirse;

RequiredFieldValidator:   Doldurulması gerekli olan alanlar için kullanılır. (Kullanıcı adı, şifre)
RangeValidator: Bir alanın belirli değerler arasında veri girişi olmasını istenen durumlarda kullanılır. (Şifrenin 8 karakterden çok, 16 karakterden az olması )
RegularExpressionValidator: Bir alanın belli bir regex pattern’a uygun olması istenen durumlarda kullanılır ( Mail adresi vs.)

CompareValidator: Bir alanın diğer bir alana göre karşılaştırılması, ya da bir alanın tipinin karşılaştırılması için kullanılır.
CustomValidator : Adından da anlaşılacağı gibi validation’ı bize bırakan bir component.
Validation Summary:   Validation özeti. Oluşturduğumuz validation nesnelerinin hata mesajları burada gösterilir.

Küçük bir örnek ile anlattıklarımızı uygulayıp detaylarını görelim.
Ben basit örnek için bir siteye üye olma senaryosu tasarladım.





Yukarıda gördüğümüz şekilde basit bir form ve Textbox’ların yanlarında gördüğünüz (*), (**), (***), (!) validation’ların Text değerlerine atanmış ifadelerdir.

Şimdi tek tek her Text alanı için eklenen validation kontrolün properties’ ini inceleyelim;

İlk olarak Textbox’larımızın (ID) isimlerini vereyim

Kullanıcı Adı : kadi
Şifre : sifre
İsim & Soyisim : isim
Kimlik Numarası : kimlikno
Telefon : tel
E-Posta : eposta

Tüm Text alanları için RequiredFieldValidator kullanıldı ve değer girilip girilmediğini kontol edeceğiz.

Kontrolün Properties görüntüsü:


Gördüğünüz gibi arkadaşlar. Şimdi tek seferlik gerekli tüm alanları anlatacağım. Bundan sonra ise sadece değişiklik yapılan alanları göstereceğim.

ControlToValidate: Hangi alanı kontrol edeceğimizi buradan seçiyoruz. Açılır listemiz var ve buradan alanları secebiliyoruz.
Display: 3 seçeneğimiz var;
-Static: Validation text değerinin gösterileceği yer, baştan ayrılır. (Burada static gözükse de, bence bunu tercih etmeyin; çünkü table’ların aralıklarının kaymasına sebep olabiliyor)
-Dynamic: Text değerinin gösterileceği yer ayrılmaz. Gösterilmesi gereken durumda, uygun bir şekilde yer ayrılır.
-None: Bu seçenekte ise bu değer hiç gösterilmez. Fakat ValidationSummary’de ErrorMessage gözükür.
EnabledClientScript: Client’da çalışabilmesi için. (Yani diyelim ki ismi girmedik. Uyarı verdi. Tekrar ismi girdiğimizde hemen otomatik olarak validation uyarı (*) ifadesini kaldıracaktır).
Error Message: Burada yazdığımız hata mesajları “Kaydet” butonuna bastığımızda ValidationSummary kontrolünde gösterilecektir.
SetFocusOnError: Adından da anlaşılacağı gibi, validation bir hata ürettiğinde, hata oluşturan kontrolün seçili olmasını sağlar.
Text: Girilen değer istenilen kriterlere uygun değilse validation kontrolünün ekrana çıktısı buraya yazılan olur.
ValidationGroup: Bu da birden fazla validation’ı bir grupta toplamaya yarıyor. Bizimde senaryomuzda kullandığımız üzere biraz anlatayım;
Formun altında “Kaydet” ve iptal butonlarımız var. Tamam’a basınca bu validation’ların çalışması lazım, iptal’e basınca çalışmaması lazım.
İşte burada işe yarayacak ValidationGroup, “Kaydet” butonun ValidationGroup özelliğine bizim oluşturduğumuz validation’ların grubunu yazınca, iptal butonu bu validation kullanmayacaktır.

Diğer Validation’larıda bu şekilde ayarlamalıyız. Tek yapacağımız değişiklik ControlToValidate seçeneğinde uygun kısmı şeçmektir.

Kullandığımız RangeValidator kontrolün properties’lerini inceleyelim.



Burada fazladan MinimumValue ve MaximumValue değerlerini giriyoruz.

RagulerExpressionValidator kontrolün properties’lerini inceleyelim.



Burada ise ValidationExpression kısmını dolduruyoruz. Ki burada girdiğimiz RegEx değeri E-Postamızın Geçerli olup olmadığını kontrol ediyor.

Sizin için bu değeri vereyim;
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

Genel olarak bir validation’ın özelliklerinden bahsettik. Ama özellikle bahsetmek istediğim iki validation nesnesi var, CustomValidator ve ValidationSummary.
CustomValidator da istediğimiz karşılaştırmayı yapabiliyoruz ve kod da yazabiliyoruz demiştim.

CustomValidator properties:



 

Gördüğünüz gibi fazladan bir şey eklemiyoruz. Fakat kod ile kontrol yapacağımızdan aşağıdaki alana geçiyoruz.

 


CustomValidator’ın properties penceresi ve events penceresi. Buradaki ServerValidate çok işimize yarayacak. Yanında gördüğünüz methodu oluşturunca ( çift tıklayarak ) görüceksiniz ki codebehind kısmında bir method gövdesi oluştu. İşte bu methodun içine yazacağımız her şey client-side’da çalışacak.
Bu kısmı kullanıcı ismi daha önceden kullanılmış mı diye kontrol edebiliriz.

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)

        {

 

        }

Bahsettiğim bir diğer validation kontrolü ise, ValidationSummary idi; bu da bizim validation’larımızın hata mesajlarının toptan gözüktüğü yer.

Bunun Properties kısmını inceleyecek olursak;



Display mode: hata mesajlarının nasıl görüntüleneceği
ShowMessageBox: adında da anlaşılacağı üzere, errormessage’ları bir messagebox üzerinde göstermeyi sağlıyor.
ShowSummary: Sayfaya ValidationSummary’i koyduğunuz yerde hataların gösterilmesini sağlıyor.

Şimdi genel olarak öğrendiğimize göre artık hayal gücünüzle pek çok şeyi post etmeden kontrol edebilirsiniz.

(Harun Kardeşime teşekkürlerimi sunarım)

Herkese iyi çalışmalar.

Selametle…

Devamı...

Asp.Net Dinamik Meta Tag Ekleme (Veri Tabanından Veri çekerek.)

28.07.2008 - Ekleyen : Erdem TUZEN

Canlı Meta Tagların Nasıl oluşturulduğunu Veri tabanından nasıl çekildiğini göstereceğim. bunun için VeriTabanı oluşturmalıyız. Ve 3 tane alan belirlemeliyiz. Bunlar Keywords,PageTitle,Description ve Tablomuzun ismi MetaTag olsun.
şimdi gerisini Aşağıdaki kodları izleyerek yapabilirsiniz...

MasterPage.Cs içinde Sayfanın Page Load' ına Yazılacak Kod


protected void Page_Load(object sender, EventArgs e)

{

//Meta ve Keywordslar

      //Önce Dataları Veritabanından Okuyalım

        string PageTitle = "";

        string Keywords = "";

        string Description = "";


        SqlConnection sqlCon = new         SqlConnection(ConfigurationManager.ConnectionStrings["MetaTag"].ToString());

        sqlCon.Open();

        SqlCommand sqlCom = new SqlCommand("SELECT Keywords, PageTitle, Description FROM MetaTag",sqlCon);

        SqlDataReader sqlDr = sqlCom.ExecuteReader();

        if (sqlDr.Read())

        {

            Keywords = sqlDr["Keywords"].ToString();

            PageTitle = sqlDr["PageTitle"].ToString();

            Description = sqlDr["Description"].ToString();

        }

        sqlCon.Close();

        Page.Header.Title = PageTitle;

        //  Metadata tagını tanımlamak

        HtmlMeta metaDescription = new HtmlMeta();

        metaDescription.Name = "Robot";

        metaDescription.Content = "index,follow";

        // Sayfaya ekliyoruz.

        Page.Header.Controls.Add(metaDescription);

        // İkinci bir metadata tagını eklemek

        HtmlMeta metaKeywords = new HtmlMeta();

        metaKeywords.Name = "googlebot";

        metaKeywords.Content = "index,follow";

        Page.Header.Controls.Add(metaKeywords);

}



Selametle...

Devamı...

C# ile Doviz Bilgilerini Çekmek - Projenize Doviz Bilgileri Eklemek

18.07.2008 - Ekleyen : Selçuk ERMAYA

İnternette gördüğüm üzere birçok kişi Doviz bilgilerini C#'da nasıl alabileceğini sorgulamış. Bunlara bende dahil tabiki ama ben TCMB.gov.tr 'nin XML'ini işleyerek bu bilgiye ulaşmıştım. Aşağıda vereceğim yöntem ise çok daha basit bir yöntem. Bu yöntem ile Doviz bilgilerini çok kolay bir şekilde alabilirsiniz.

Tabiki bu Doviz alma işlemi sadece C#'dan ibaret değil. Desktop programınıza bunu aktarabileceğiniz gibi Asp.net'de de vereceğim dosyayı kullandığınız takdirde doviz bilgilerini rahatlıkla WebFormlarınıza alabilirsiniz.

Peki Nasıl Yapacağız ?

İlk olarak burada bulunan Doviz.rar dosyasını indirin,zipten çıkarın ve çıkan Doviz.cs dosyasını projenizin ana dizinine atın ya da Projenize sağ tuş ile tıklayın Add > Existing Item komutunu vererek indirdiğiniz dosyayı seçin. Ayrıca Asp.net içinde App_Code klasörü içerisine bu dosyayı atarak kullanabilirsiniz.Konumuz C# geri dönüyorum.

Daha sonra References üzerine sağ tuş ile tıklayın ve Add Reference yapın. ".Net" sekmesindeki "System.Web.Services"'i seçin.

Kullanabileceğimiz şeyleri şimdi ayarlamış olduk. Yapacağımız tek işlemse artık kurlarımızı çekecek kodu yazmak bu ise çok basit.

Projenize 2 tane Label , 1 Buton koyun. Ben labellerin isimlerinin lblUSDBuy ve lblUSDSell olduğunu varsayıyorum. Butonun Click olayına aynen aşağıdaki gibi yazıyoruz.

Butonun Click Olayına Yazılacak KodCurrency.DovizIslemleri Doviz = new Currency.DovizIslemleri();
lblUSDBuy.Text = Doviz.TlKarsiligi(Currency.
DovizIslemleri.KurKodu.USD.ToString(), Currency.DovizIslemleri.Tur.ForexBuying).ToString() + " YTL";
lblUSDSell.Text = Doviz.TlKarsiligi(Currency.
DovizIslemleri.KurKodu.USD.ToString(), Currency.DovizIslemleri.Tur.ForexSelling).ToString() + " YTL";

Artık Tek yapmanız gereken projenizi Çalıştırmak.

lblUSDBuy ve lblUSDSell labellerine USD alış ve satış değerlerinin geldiğini göreceksiniz.

Diğer döviz kurları için yapmanız gereken tek şey Currency.DovizIslemleri.KurKodu 'dan sonra "." koyup kurunuzun ismini seçmek. Misal Euro

Currency.DovizIslemleri.KurKodu.EUR.ToString()

için bunu kullanabilirsiniz.

Ayrıca bilmeniz gereken, Doviz Alış ve Satış durumu Currency.DovizIslemleri.Tur ile belirleniyor. Bunun alabileceği 4 değer bulunuyor. Bunlar ;

ForexBuying, //Döviz alış
ForexSelling,
//Döviz satış
BanknoteBuying,
//Efektif alış
BanknoteSelling, //Efektif satış

Değerleridir. Sizde kendinize uygun olanı seçip alış-satış bilgilerini çekebilirsiniz. Ben olayı biraz daha genişleterek Tüm kurları alabilecek bir program yaptım. Bu programıda inceleyerek daha detaylı bilgiye sahip olabilirsiniz.

Programın Ekran Görüntüsü :

Programın dosyalarını buradan indirebilirsiniz.

Selametle...

Devamı...

Asp.net File Upload Control - fiUpload

12.07.2008 - Ekleyen : Selçuk ERMAYA

Asp.net 'de yazdığım File Upload kontrolünü sizlerle paylaşmak istiyorum. Kontrol normal Asp.net Upload kontrolünde çok çok farklı ve fazla işleve sahip bulunuyor. Umarım sizler içinde yararlı olacaktır. Yapacağınız işlemlerin hepsi indireceğiniz dosyanın içerisinde yazıyor. Ama ön bilgi olsun diye aşağıda kontrolün ön görünümünü ve özelliklerini görebilirsiniz.

Ayrıca kontrolün bir kaç ekran görüntüsünü de ekleyeyim.

Kontrolün dosyalarını indirmek için burayı kullanabilirsiniz.

Ayrıca sormak istedikleriniz eklemek istedikleriniz olursa konunun altına yorum yazabilirsiniz.

Selametle...

Devamı...

Excel Hücreleri Üzerinde Formatlı Biçimlendirme

02.07.2008 - Ekleyen : Volkan AKTAŞ

Form üzerine bir buton ekleyerek aşağıdaki kodları yazacağız:

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim xl

        'Excell nesnesi oluşturuyoruz

        xl = CreateObject("Excel.Application")

        'Yeni bir çalışma kitabı ekliyoruz

        xl.Workbooks.add()

        'Excel sayfasını görüntülüyoruz

        xl.application.visible = True

        '1 nolu çalışma sayfasını aktif ediyoruz           

        xl.worksheets(1).Activate()

        'A1 hücresine şu anki tarihi yazıyoruz

        xl.cells(1, 1).value = Now

        'A1 hücresinde tarih biçimlendirmesi yapıyoruz

        xl.cells(1, 1).NumberFormat = "dd.mm.yyyyy"

        'B1 hücresine değerimizi yazıyoruz

        xl.cells(1, 2).value = "54321"

        'B1 hücresinde tam sayı biçimlendirmesi yapıyoruz

        xl.cells(1, 2).NumberFormat = "### ###"

        'C1 hücresine değerimizi yazıyoruz

        xl.cells(1, 3).value = "543,21"

        'B1 hücresinde tarih biçimlendirmesi yapıyoruz

        xl.cells(1, 3).NumberFormat = "(#,##0.00)"

    End Sub

End Class

 

Devamı...

Visual Studio 2008 ile Silverlight'ı Kullanmak

19.06.2008 - Ekleyen : Selçuk ERMAYA

Selamün Aleyküm Değerli kardeşlerim.

Bir önceki yazımda bahsettiğim gibi Silverlight kullanımı ile alakalı bilgiler vereceğimi söylemiştim. Ayrıca onlarla alakalı makaleler de yazmayı ihmal etmeyeceğim tabi.

Uzun lafın kısası hemen makalemize geçelim. İlk olarak aşağıdaki linkten Silverlight 2.0 Beta 1 'i Visual Studio da kullanmak için gerekli olan Tools'u indirelim.

http://www.microsoft.com/downloads/details.aspx?FamilyID=e0bae58e-9c0b-4090-a1db-f134d9f095fd&DisplayLang=en

İndirip kurduktan sonra VS 2008 'i açınca aşağıdaki seçimleri yapın ve projenizi oluşturun.

Diğer bir adımda aşağıdaki pencereden seçimleri yapın ve tekrar OK'a basın.

Evet. Bunları gerçekletirdiğimizde Projemiz karşımıza gelecektir. Gelen ekran aşağıdaki gibidir.

Page.xaml sayfası bizim Silverlight uygulama sayfamız olacak. Bir dahaki makalemizde size silverlight kontrollerinden ve bunların kullanımlarından bahsedeceğim. Biraz sabır gerektiriyor :)

Selametle...

Devamı...