İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

C# Karakter Atama

rCpkSk07.09.20134 cevap2.245 görüntüleme
#1
Şöyle bir sıkıntım var. Formda sadece a ttuşuna basınca arkada renkler sürekli değişecek herşeyi yaptımda a tuşunu star olarak nasıl atayacağım onu bulamadım bilen birileri varmıdır acaba ?
Cevaplar
#2
"Star olarak nasıl atayacağım" derken neyi kastettiğini anlamadım.. Ama böyle bir işlem için öncelikle
using System.Windows.Input;
referansını eklemen gerekiyor. Daha sonra da "A" tuşuna basılıp basılmadığı sorgulaman gerekiyor:

if ((e.KeyChar & (char)Keys.A) != 0))
{
// A tuşuna basıldı ! Gereken işlemleri yap.
}
rCpkSk Konuyu açan
#3
start olacaktı o :D Bu arada
if ((e.KeyChar & (char)Keys.A) != 0))
{
// A tuşuna basıldı ! Gereken işlemleri yap.
}
bu kodu formun load bölümüne ekleyeceğim demi ?
#4
rCpkSk dedi: ↑
start olacaktı o :D Bu arada
if ((e.KeyChar & (char)Keys.A) != 0))
{
// A tuşuna basıldı ! Gereken işlemleri yap.
}
bu kodu formun load bölümüne ekleyeceğim demi ?
Öncelikle geç cevap için kusura bakma :)
Load bölümüne eklemenin pek bir anlamı olmayacaktır. Çünkü bu kodun tetiklenmesi, bir tuşa basılması olayı esnasında olmalıdır. Bu olayda KeyDown olayıdır. Form olaylarının listesine gelip keydown'a çift tıklarsan:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
// Form üzerinde bir tuşa basıldı...VE olay tetiklendi.
//
Aşağıda da A tuşuna basıldı ise ne yapılması gerektiğini belirtiyoruz

if ((e.KeyChar & (char)Keys.A) != 0))

{

// A tuşuna basıldı ! Gereken işlemleri yap.

}
}
#5
KODUN Çalışan ve Denenmiş Hali:

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;


namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}


//Bahsettiğim KEYDOWN metodu ile basılan tuşun A ve B olmasına göre Renk değişimini durdurup başlatıyoruz.
private void Form1_KeyDown(object sender, KeyEventArgs EropaKING)
{
if (EropaKING.KeyCode == Keys.A)
{
//RENK CÜMBÜŞÜ BAŞLASIN
timer1.Enabled = true;
timer1.Interval = 100;
timer1.Start();
}

if (EropaKING.KeyCode == Keys.B)
{
//RENK CÜMBÜŞÜ DURSUN
timer1.Stop();
timer1.Enabled = false;
}
}


// TİMER ile yapılacak işlem (Rastgele renk ataması yapıyoruz)
private void timer_islemi(object sender, EventArgs e)
{
Random rnd = new Random();
this.BackColor = Color.FromArgb((rnd.Next(0, 255)), (rnd.Next(0, 255)),
(rnd.Next(0, 255)));
}


//BU KISIM Sadece Keypress ile Karakterleri nasıl algılarsın diye eklendi. Metodu tanıman için yani.
//private void Form1_KeyPress(object sender, KeyPressEventArgs EropaKING)
//{
// var YeniTimer = new Timer();
// YeniTimer.Interval = 300;

//if (EropaKING.KeyChar == (char)Keys.A)
//{
// RENK CÜMBÜŞÜ BAŞLASIN

// YeniTimer.Enabled = true;
//
YeniTimer.Tick += new EventHandler(timer1_Tick);
//
YeniTimer.Start();
//}

//if (EropaKING.KeyChar == (char)Keys.B)
//{
//
YeniTimer.Stop();
// YeniTimer.Enabled = false;
//}
//}

}
}

NOT: Söylemeyi unuttum; kod üzerinde EropaKING yazan yerleri istediğin gibi değiştirebilirsin. Normalde EropaKING yazan yerlerde varsayılan olarak "e" yazar. Sen istersen "rCpkSk" bile yazabilirsin.

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.