Visual Studio C# Dersleri – C# İle Basit Not Defteri Yapımı

C# ile basit bir şekilde not defteri uygulaması nasıl yapılır onunla ilgili uygulama yapacağız Form tasarımı için form üzerine bir textbox, toolstrip, statusstrip, colordialog, fontdialog, openfiledialog, savefiledialog nesneleri ekliyoruz programın çalışan versiyonu ve kodlarımız aşağıdadır..

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
// dosya okuma ve kaydetme işlemleri için bunu eklememiz gerekiyor.
using System.IO;
namespace bilisimogretmeninotdefteri
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// form açılırken num lock, caps lock, hizalamalar
// ve sözcük kaydırma durumlarını kontrol et.
private void Form1_Load(object sender, EventArgs e)
{
lblNUM.Text = Console.NumberLock ? "NUM" : "";
lblCAPS.Text = Console.CapsLock ? "CAPS" : "";
btnKelimeKaydır.Checked = textBox1.WordWrap;
btnGeriAl.Enabled = textBox1.CanUndo;
btnYinele.Enabled = textBox1.CanUndo;
btnSola.Checked = textBox1.TextAlign == HorizontalAlignment.Left;
btnSaga.Checked = textBox1.TextAlign == HorizontalAlignment.Right;
btnOrtala.Checked = textBox1.TextAlign == HorizontalAlignment.Center;
btnKes.Enabled = textBox1.SelectedText.Length > 0;
btnKopyala.Enabled = textBox1.SelectedText.Length > 0;
btnYapıştır.Enabled = Clipboard.GetText().Length > 0;
}
// metin içeriği değiştiğinde geri alınabilirlik durumunu kontrol et.
private void textBox1_TextChanged(object sender, EventArgs e)
{
btnGeriAl.Enabled = textBox1.CanUndo;
btnYinele.Enabled = textBox1.CanUndo;
}
// seçili metni keser
private void btnKes_Click(object sender, EventArgs e)
{
textBox1.Cut();
}
// seçili metni kopyalar
private void btnKopyala_Click(object sender, EventArgs e)
{
textBox1.Copy();
}
// panodaki metni seçilen yere yapıştırır.
private void btnYapıştır_Click(object sender, EventArgs e)
{
textBox1.Paste();
}
// son değişikliği geri alır.
private void btnGeriAl_Click(object sender, EventArgs e)
{
textBox1.Undo();
}
// yineleme işlemi:
// text box yapılan sadece bir değişikliği geri alabildiği için
// yapılan değişikliği geri alma işlemini geri alır,
// dolayısıyla önceki haline döner.
private void btnYinele_Click(object sender, EventArgs e)
{
textBox1.Undo();
}
// seçili metin varsa kes, kopyala, yapıştır butonlarını kullanılabilir yap.
private void textBox1_Click(object sender, EventArgs e)
{
btnKes.Enabled = textBox1.SelectionLength > 0;
btnKopyala.Enabled = textBox1.SelectionLength > 0;
btnYapıştır.Enabled = Clipboard.GetText().Length > 0;
}
// metni sola hizala
private void btnSola_Click(object sender, EventArgs e)
{
textBox1.TextAlign = HorizontalAlignment.Left;
btnSola.Checked = true;
btnSaga.Checked = false;
btnOrtala.Checked = false;
}
// metni ortaya hizala
private void btnOrtala_Click(object sender, EventArgs e)
{
textBox1.TextAlign = HorizontalAlignment.Center;
btnSola.Checked = false;
btnSaga.Checked = false;
btnOrtala.Checked = true;
}
// metni sağa hizala
private void btnSaga_Click(object sender, EventArgs e)
{
textBox1.TextAlign = HorizontalAlignment.Right;
btnSola.Checked = false;
btnSaga.Checked = true;
btnOrtala.Checked = false;
}
// sözcük kaydırı aktif/deaktif et
private void btnKelimeKaydır_Click(object sender, EventArgs e)
{
textBox1.WordWrap = !textBox1.WordWrap;
btnKelimeKaydır.Checked = textBox1.WordWrap;
}
// basılan keylere göre caps lock ve num lock durumlarını güncelle
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
lblCAPS.Text = Console.CapsLock ? "CAPS" : "";
lblNUM.Text = Console.NumberLock ? "NUM" : "";
}
// yazı rengini ayarlamak için renk dialoğunu açar
private void btnYazıRengi_Click(object sender, EventArgs e)
{
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.ForeColor = colorDialog1.Color;
}
}
// zemin rengini ayarlamak için renk dialoğunu açar
private void btnZeminRengi_Click(object sender, EventArgs e)
{
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.BackColor = colorDialog1.Color;
}
}
// yazı tipini ayarlamak için yazı tipi diaolğunu açar.
private void btnYaziTipi_Click(object sender, EventArgs e)
{
try
{
// dialoğun açılıştaki fontu metin kutusunun fontu olsun
fontDialog1.Font = textBox1.Font;
// yazı seçilip ok denildikten sonra yazı tipini metne uygula
if (fontDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Font = fontDialog1.Font;
// seçilen rengi de yazı rengine uygula
textBox1.ForeColor = fontDialog1.Color;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
// yeni döküman
private void btnYeni_Click(object sender, EventArgs e)
{
// kendisinin bir kopyasını çalıştırır.
System.Diagnostics.Process.Start(Application.ProductName);
}
// dosya_adı değişkeni dosya açma kaydetme işlemlerinde kullanılacak
string dosya_adı = null;
// dosya açma işlemi
private void btnAç_Click(object sender, EventArgs e)
{
// eğer dosya açma dialoğunda dosya seçilmiş ve tamam denilmiş ise
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
// dosya adı seçilen dosya olacak.
dosya_adı = openFileDialog1.FileName;
// seçilen dosya ile programımız arasına bir boru hattı açıyoruz
StreamReader sr = new StreamReader(
openFileDialog1.FileName,
Encoding.GetEncoding(1254) // Türkçe dil kodu
);
// borudan dosyayı sonuna kadar okuyoruz.
textBox1.Text = sr.ReadToEnd();
// sonra boruyu kapatıyoruz.
sr.Close();
// formun başlığına dosya adını ekliyoruz.
this.Text = "BMYO Not Defteri [" + dosya_adı + "]";
}
}
// farklı kaydetme işlemi
private void farklıKaydetToolStripMenuItem_Click(object sender, EventArgs e)
{
// eğer dosya açma dialoğunda dosya seçilmiş ve tamam denilmiş ise
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
// dosya adı seçilen dosya olacak.
dosya_adı = saveFileDialog1.FileName;
// kaydetme işlemine git
btnKaydet_ButtonClick(null, null);
}
}
// kaydetme işlemi
private void btnKaydet_ButtonClick(object sender, EventArgs e)
{
// eğer ilk defa kaydetmek istiyorsak dosya adı için farklı kaydeti çalıştır
if (dosya_adı == null)
{
// farklı kaydete git
farklıKaydetToolStripMenuItem_Click(null, null);
}
else
{
// daha önce kaydetmiş isek elimizde zaten bir dosya adı var,
// yapılan değişiklikler önceki dosyanın üzerine yazılacak.
// programımız ile diskteki dosya arasına bir boru hattı açıyoruz.
StreamWriter sw = new StreamWriter(
dosya_adı, false,
Encoding.GetEncoding(1254)); // Türkçe dil kodu
// borudan tüm bilgiyi diskteki dosyaya akıtıyoruz.
sw.Write(textBox1.Text);
// sonra boruda kalan bilgiyi de silkeliyoruz.
sw.Flush();
// sonra boruyu kapatıyoruz.
sw.Close();
// formun başlığına dosya adını ekliyoruz.
this.Text = "Bilişim Öğretmeni [" + dosya_adı + "]";
}
}
}
}

C# Not Defteri Uygulaması (1377 indirme)
Bartın Meslek Yüksek Okuluna Teşekkürler…

  • hasan

    abi bana aç kapat yurut ledleri yapan program lazımn v eya geri ileri şeklinde

  • gokhan

    benim sorum bambaşka olacak burada bazı komutlar var mesela
    lblCAPS.Text = Console.CapsLock ? “CAPS” : “”;
    lblNUM.Text = Console.NumberLock ? “NUM” : “”;

    bunların bu işe yaradığını nasıl öğreniyorsunuz yani console.capslock komutunun büyük harfin açık olup olmadığını kontrol edeceği bilgisini nerden öğreniyorsunuz veya diğer kodların bilgi verirseniz sevinirim

  • Ahmet

    abi merhaba ben c# yeniyim şunu yapamadım textboxın olayı bende textchanged oluyo click yapamıyorum abi yardımcı olurmusun

    • BilisimOgretmeni

      formun üzerine bir buton ekleyip tasarım alanında butonun üzerine çift tıklamanız yeterli…

  • Emre

    Merhabalar, Bana Şöyle Birşey Yapabilirmisiniz?

    1) Text’e yazı yazılacak,
    2) Bir Butona Basınca Bir Dosyaya Kaydedecek (Biz Seçmiyeceğiz Nereye Kaydeceğini)
    3) Sonra Bir Butona Basınca Kaydettiğimiz Notu Açıcak.

    Başka birşey Olmasın lütfen.

    • Furkan Ççelik

      Emre dostum tamda benim yapmak istediğim şeyi anlattın.

  • Burak

    Emeğinize sağlık çok güzel olmuş

    • BilisimOgretmeni

      rica ederiz iyi çalışmalar

Pin It on Pinterest