Herkese selam, bugün basit bir şekilde notepad uygulaması kodlayacağız C#'ta. Zaten dile az buçuk hakim olsanız bile çok kolay şekilde yapabilirsiniz ancak yeni başlamış ve kendini geliştirmek isteyen arkadaşlar için yararlı olacağını düşünüyorum. Daha fazla gecikmeden anlatıma geçeyim;
Öncelikle Visual studio üzerinden bir winforms projesi oluşturuyoruz. .Net framework versiyonu farketmez. Ama ben 4.8 seçiyorum. Projemiz bu şekilde:
Şimdi bir form tasarımı yapmamız gerekiyor. Forma:
1 RichTextBox, 1 ComboBox (tema için), 4 Adet Buton, 1 SaveFileDialog, 1 OpenFileDialog ve iki adette label ekliyorum ben. Son hali şu şekilde oldu:
RichTextBox'un rengi normalde böyle değil. Sadece siz görün diye bu şekilde yaptım. Siz istediğini renkleri kullanabilirsiniz.
Şimdi sıra en eğlenceli kısımda . Aşağıda size proje dosyalarını ve kodları içeren bir klasör bırakacağım zaten oradan kopyala yapıştır da yapabilirsiniz.
Anlamayacağınız bir yer olacağını sanmıyorum ancak ben gene de bazı kodları yanında açıkladım.
/*
Eğer Formun Border'ını None yaptıysanız 4 adet buton ekleyin. Biri çıkma biri küçültme butonu olacak. Diğerleri 2 adet ekleyebilir. Onlarda Dosya aç ve Kaydet olacak.
*/
Şimdi ufaktan kodlara geçiş yapalım:
Kapatma tuşuna:
Application.Exit();
Küçültme tuşuna:
this.WindowState = FormWindowState.Minimized;
Kapatma - Küçültmeyi hallettiğimize göre Dosya Açma ve Kaydetme işlemine geçebiliriz.
Dosya Aç Butonuna:
OpenFileDialog openFileDialog1 = new OpenFileDialog(); //Burada yeni bir OpenFileDialog öğesi oluşturup açılan dosyadaki yazıları richTextBox'a aktardık.
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
openFileDialog1.Title = "Open"; //Burası açılan pop-up'un yazısı.
richTextBox1.Text = File.ReadAllText(openFileDialog1.FileName);
}
----------------------------------------------------------------------------------
Kaydetme Butonuna:
SaveFileDialog saveFileDialog1 = new SaveFileDialog(); // Burada da saveFileDialog öğesi oluşturup StreamWriter ile RichTextBox'taki yazıları oluşan dosyanın üzerine yazdık.
saveFileDialog1.Filter = "Text Files (*.txt) | *.txt|All Files|*.*";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
saveFileDialog1.Title = "Text Files";
using (Stream s = File.Open(saveFileDialog1.FileName, FileMode.CreateNew))
using (StreamWriter sw = new StreamWriter(s))
{
sw.Write(richTextBox1.Text);
}
MessageBox.Show("Saved!");
}
----------------------------------------------------------------------------------
Bunları yaptığınızda dosya açabiliyor, kaydedebiliyor olmalısınız. Hata almıyorsanız devam edelim.
Eğer formu borderless yaptıysanız aşağıdaki kodları kodun herhangi bir yerine ekleyin. Sonunda forma basılı tutup sürüklediğinizde hareket ettirebiliyor olacaksınız.
----------------------------------------------------------------------------------
Point lastPoint;
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
lastPoint = new Point(e.X, e.Y);
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
this.Left += e.X - lastPoint.X;
this.Top += e.Y - lastPoint.Y;
}
}
----------------------------------------------------------------------------------
Son olarak opsiyonel olan tema tasarımı kaldı. Onuda size bırakıyorum. Çözersiniz aşırı basit bir mantığı var. Bu konu bu kadardı. Daha ilk defa bu şekilde bir anlatım yaptığım için acemice olmuş olabilir. Kusuruma bakmayın .
Sonraki konularda görüşmek üzere..
Github:
Uygulamanın son hali aşağıda:
Öncelikle Visual studio üzerinden bir winforms projesi oluşturuyoruz. .Net framework versiyonu farketmez. Ama ben 4.8 seçiyorum. Projemiz bu şekilde:
Şimdi bir form tasarımı yapmamız gerekiyor. Forma:
1 RichTextBox, 1 ComboBox (tema için), 4 Adet Buton, 1 SaveFileDialog, 1 OpenFileDialog ve iki adette label ekliyorum ben. Son hali şu şekilde oldu:
RichTextBox'un rengi normalde böyle değil. Sadece siz görün diye bu şekilde yaptım. Siz istediğini renkleri kullanabilirsiniz.
Şimdi sıra en eğlenceli kısımda . Aşağıda size proje dosyalarını ve kodları içeren bir klasör bırakacağım zaten oradan kopyala yapıştır da yapabilirsiniz.
Anlamayacağınız bir yer olacağını sanmıyorum ancak ben gene de bazı kodları yanında açıkladım.
/*
Eğer Formun Border'ını None yaptıysanız 4 adet buton ekleyin. Biri çıkma biri küçültme butonu olacak. Diğerleri 2 adet ekleyebilir. Onlarda Dosya aç ve Kaydet olacak.
*/
Şimdi ufaktan kodlara geçiş yapalım:
Kapatma tuşuna:
Application.Exit();
Küçültme tuşuna:
this.WindowState = FormWindowState.Minimized;
Kapatma - Küçültmeyi hallettiğimize göre Dosya Açma ve Kaydetme işlemine geçebiliriz.
Dosya Aç Butonuna:
OpenFileDialog openFileDialog1 = new OpenFileDialog(); //Burada yeni bir OpenFileDialog öğesi oluşturup açılan dosyadaki yazıları richTextBox'a aktardık.
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
openFileDialog1.Title = "Open"; //Burası açılan pop-up'un yazısı.
richTextBox1.Text = File.ReadAllText(openFileDialog1.FileName);
}
----------------------------------------------------------------------------------
Kaydetme Butonuna:
SaveFileDialog saveFileDialog1 = new SaveFileDialog(); // Burada da saveFileDialog öğesi oluşturup StreamWriter ile RichTextBox'taki yazıları oluşan dosyanın üzerine yazdık.
saveFileDialog1.Filter = "Text Files (*.txt) | *.txt|All Files|*.*";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
saveFileDialog1.Title = "Text Files";
using (Stream s = File.Open(saveFileDialog1.FileName, FileMode.CreateNew))
using (StreamWriter sw = new StreamWriter(s))
{
sw.Write(richTextBox1.Text);
}
MessageBox.Show("Saved!");
}
----------------------------------------------------------------------------------
Bunları yaptığınızda dosya açabiliyor, kaydedebiliyor olmalısınız. Hata almıyorsanız devam edelim.
Eğer formu borderless yaptıysanız aşağıdaki kodları kodun herhangi bir yerine ekleyin. Sonunda forma basılı tutup sürüklediğinizde hareket ettirebiliyor olacaksınız.
----------------------------------------------------------------------------------
Point lastPoint;
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
lastPoint = new Point(e.X, e.Y);
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
this.Left += e.X - lastPoint.X;
this.Top += e.Y - lastPoint.Y;
}
}
----------------------------------------------------------------------------------
Son olarak opsiyonel olan tema tasarımı kaldı. Onuda size bırakıyorum. Çözersiniz aşırı basit bir mantığı var. Bu konu bu kadardı. Daha ilk defa bu şekilde bir anlatım yaptığım için acemice olmuş olabilir. Kusuruma bakmayın .
Sonraki konularda görüşmek üzere..
Github:
GitHub - Atalayagiz/Freya-Notepad
Contribute to Atalayagiz/Freya-Notepad development by creating an account on GitHub.
github.com
Uygulamanın son hali aşağıda:
Son düzenleme: