AccessTr.NET sayesinde Access konusunda hiç bir bilgim yok iken özellikle Sayın Atoz112 ve Ozanakkaya hocalarımın destekleriyle kendimi baya ilerlettiğimi düşünüyorum
Hal böyle olunca bir de vb.net e el atmak istedim ve kurcalayarak internette araştırarak bişeyler öğrenmeye başladım. Tabi öğrenmem Access teki kodlama deneyimimden (amatörce) altyapı olduğu için pek zor olmadı
vb.net te yapmış olduğum ilk uygulamamı sizlerle paylaşıyorum. çalışmam geçtiğimiz aralık sonu malum defter tastik dönemi idi ve lazım oldu internetten bir tane buldum işimi gördü ancak neden ben yapmayım düşüncesi ile oluşturdum.
Ekte çalışmanın sadece exe sini veriyorum.
Kaynak kodta aşağıdaki gibi;
Dim i As Integer = 0
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim ilksayi As Integer = CInt(TextBox1.Text)
Dim sonsayi As Integer = CInt(TextBox2.Text)
If CInt(TextBox1.Text) <= "0" Then
MsgBox("İlk sayfa numarasını girmediniz", vbInformation, "Uyarı")
TextBox1.Focus()
ElseIf CInt(TextBox2.Text) <= "0" Then
MsgBox("Son sayfa numarasını girmediniz.", vbInformation, "Uyarı")
TextBox2.Focus()
ElseIf CInt(TextBox2.Text) < CInt(TextBox1.Text) Then
MsgBox("Son sayfa numarası ilk sayfa sunarasından küçük olamaz.", vbCritical, "Uyarı")
TextBox2.Focus()
Else
Dim pdx As Integer
For pdx = 1 To ComboBox1.Text
Dim pd As New System.Drawing.Printing.PrintDocument
AddHandler pd.PrintPage, AddressOf PrintDocument_PrintPage
pd.Print()
Next
End If
End Sub
Private Sub PrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
Dim ilksayi As Integer = CInt(TextBox1.Text)
Dim sonsayi As Integer = CInt(TextBox2.Text)
Dim fark As Integer = sonsayi - ilksayi
While i < fark + 1
e.Graphics.DrawString((i + ilksayi).ToString, New Font("Cambria", 14, FontStyle.Bold), Brushes.Black, e.PageSettings.PaperSize.Width - 105, 45)
i = i + 1
Exit While
End While
If i < fark + 1 Then e.HasMorePages = True Else e.HasMorePages = False : i = 0
End Sub
Private Sub numarator_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ComboBox1.Text = "1"
Button1.Enabled = False
End Sub
Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyCode = Keys.Enter Then
TextBox2.Focus()
End If
End Sub
Private Sub TextBox2_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox2.KeyDown
If e.KeyCode = Keys.Enter Then
ComboBox1.Focus()
End If
End Sub
Private Sub ComboBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles ComboBox1.KeyDown
If e.KeyCode = Keys.Enter Then
Button1.Focus()
End If
End Sub
Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
Button1.Enabled = True
End Sub
Program "6" haneli sayılara kadar sorunsuz bir şekilde döküm almakta sayfaya tam sığmaktadır. Kodları internetten bulduğum ve sayın Drummers in burada paylaşmış olduğu kodlar ile karıştırdım kodlamada sadece "3" haneli sayılar döküm alına bilmekteydi ve son rakam sayfanın çok sağında kalmaktaydı ben kodlarda düzenleme yaparak bu sorunu çözdüm.
Eğer yazı fontunu değiştirmek yada yazıları daha sola ve/veya daha aşağı almak isteyen olursa ilgili kod satırı;
e.Graphics.DrawString((i + ilksayi).ToString, New Font("Cambria", 14, FontStyle.Bold), Brushes.Black, e.PageSettings.PaperSize.Width - 105, 45)
PrintDocument satırı altındaki kodta bulunan ilgili yerleri değiştirerek yapabilirler.Çoğu kişi biliyordur ancak benim gibi yeni vb.net e başlayanlar için kod içindeki "105" sayısı sağ taraftan olan uzaklık dahada uzaklaştırmak için büyütmek yakınlaştırmak için küçültmek gerekir, "45" sayısı yukarıdan olan uzaklıktır daha da aşağı indirmek için büyütmek yukarı çıkartmak için küçültmek gerekir.
Saygılarımla
Ek olarak;
Visual Basic.Net hakkında daha fazla bilgi edinmek ve öğrenmek istiyorum bunun için nereden başlamalıyım veya tavsiye edebileceğiniz bir kaynak/kitap var mı ?
Teşekkürler.