form programming etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
form programming etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

2 Kasım 2008 Pazar

Dosyadan Okuma Ve Dosyaya Yazma İşlemleri

Bu yazımda System.IO isim alanı altında bulunan StreamReader ve StreamWriter sınıflarıyla herhangi bir text dosyasından okuma ve dosyaya yazma konularına değineceğim. Programımız bir Windows uygulaması olacak.

Dosyaya Yazma

İlk olarak programımıza System.IO kütüphanesini ekleyelim. Daha sonra formumuza 3 adet TextBox ekleyelim ve Name özelliklerini sırasıyla txtAd, txtSoyad, txtNo olarak belirleyelim. Ek olarak 1 adet Button ekleyelim ve Name özelliğini btnYaz olarak belirleyelim.
Form üzerine çit tıkladıktan sonra kod tarafında yol isimli string türünde bir genel değişken tanımlayalım ve aşağıdaki değeri verelim.
string yol = @"C:Kayıt.txt";
Bu yolla C sürücüsünde Kayıt.txt isimli bir metin belgesi oluşturacağız. Daha sonra yine genel değişken olarak StreamWriter tipinde yaz isimli bir değişken tanımlayalım. Bu değişkeni, bizim dosyamıza yazma işlemini gerçekleştirebilmek için tanımladık.
StreamWriter yaz;
Formu çift tıkladığımızda oluşan Form1_Load olayı içine aşağıdaki satırı yazalım.
yaz = new StreamWriter(yol, true);
Burada daha önce tanımladığımız yaz ismindeki değişkenden StreamWriter tipinde bir nesne oluşturuyoruz. Bu nesnedeki yol değeriyle C sürücüsünde Kayıt.txt isimli bir metin belgesi oluşuyor. true değeri ise bu metin belgesine veri ekleme işleminin olabileceğini belirtiyor. Yani içinde bir veri varsa onun sonraki satırından itibaren girdiğimiz veriyi ekliyor. Eğer false değeri girersek metin belgesinin içeriğini temizler ve yerine bizim girdiğimiz yeni verileri yazar.
Forma dönüp butonun üzerine çift tıklayarak btnYaz_Click olayını oluşturalım. Bu olay yordamının içine aşağıdaki satırları girelim.
string veri = txtAd + " " + txtSoyad + " " + txtNo;
yaz.WriteLine(veri);
yaz.Flush();
Bu satırlarda veri isimli değişkene TextBox’ lardaki veriler aralarında birer boşluk bırakılarak giriliyor. Daha sonraki satırda ise veri isimli değişkenin değeri metin belgesine aktarılmak üzere belleğe yazılıyor. Son satırda ise veri metin belgesine aktarılıyor. Son satır olmazsa veri bellekten bir süre sonra silinir ve belgeye yazılmaz.

9 Ağustos 2007 Perşembe

MDI Formlarda Parent Formun Arka Planını Değiştirme

Bu yazımda MDI formlarda parent formun arkaplan rengini değiştirmeyi anlatmaya çalışacağım. Eminim ki birçoğunuz parent formun arkaplan rengini ve ya resmini değiştirmeyi properties penceresinde ve kod tarafında denedi ama muhtemelen olmadı. Yaptığım bir projede bunu kullanmam gerekmişti. Aşağıdaki kodların işe yaramadığını görmüş olabilirsiniz. (Visual Studio .Net 2005’te öyle)

this.BackgroundImage = Image.FromFile("C:\\Resim.jpg");
this.BackColor = Color.Blue;

Ben yaptığım projede bazılarınızın da aklına geldiği gibi kalıtım kullandım. Ama kalıtımda da yukarıdaki kodları doğrudan yazınca (sadece renk değiştirmede) işe yaramıyor. Bunun için uyguladığım yöntemi kodları kısaltıp size aktarmak istiyorum.

İlk olarak MdiBackGround isimli yeni bir Windows projesi oluşturalım. Ve Form1’in kodlarını aşağıdaki gibi yazalım. (Form1 miras alınacak sınıf olarak kullanılacak)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace MdiBackGround {
 public partial class Form1: Form {
  public Form1() {
   InitializeComponent();
  }
  protected override void OnPaint(PaintEventArgs e) {
   //if (!DesignMode)//eğer tasarım anında hata olursa bunu aktifleştirin.
   PaintBackground(e.Graphics);
  }
  [DefaultValue(false)]
  public new bool IsMdiContainer {
   get {
    return base.IsMdiContainer;
   }
   set {
    base.IsMdiContainer = value;
    if (!value) return;
    for (int i = 0; i < this.Controls.Count; i++) {
     MdiClient mdiClient = this.Controls[i] as MdiClient;
     if (mdiClient != null) {
      mdiClient.Paint += new PaintEventHandler(this.MdiClient_Paint);
      break;
     }
    }
   }
  }
  private void MdiClient_Paint(object sender, PaintEventArgs e) {
   //if (!DesignMode)//eğer tasarım anında hata olursa bunu aktifleştirin.
   PaintBackground(e.Graphics);
  }
  private void PaintBackground(Graphics g) {
   //this.BackgroundImage = Image.FromFile("C:\\Resim.jpg");
   //Burada doğrudan bu yazılınca çalışıyor.
   Rectangle rect = this.ClientRectangle;
   rect.Inflate(2, 2);
   SolidBrush sb = new SolidBrush(Color.Blue);
   g.FillRectangle(sb, rect);
   sb.Dispose();
  }
 }
}
Related Posts Plugin for WordPress, Blogger...