Aceminin C# sorulari

Başlatan z, 30 Mayıs 2012, 08:19:05

Mucit23

Bir sorum daha var.

Mesela bir değişkenin değerine göre form üzerinde bir butonun Taban rengini ve yazı rengini değiştirmek istiyorum. Nasıl yapabilirim.

desman

Alıntı YapBir sorum daha var.

Mesela bir değişkenin değerine göre form üzerinde bir butonun Taban rengini ve yazı rengini değiştirmek istiyorum. Nasıl yapabilirim.
private void button1_Click(object sender, EventArgs e)
        {
            int a = 5;
            if (a == 5) {
                button1.BackColor=System.Drawing.Color.Aqua;
                button1.ForeColor = System.Drawing.Color.Red;
            }
A freshman at YTU

Mucit23

Evet dediğiniz gibi oluyor.
Fakat butonun dış sınırları aynı renkte kalıyor. Tümüyle rengini değiştiremezmiyiz.

ULAGA

Normal bir butonun dış rengi değişmez.
Ancak bir butonun FlatStyle özelliğini Flat olarak seçip, kodda da;


button1.FlatAppearance.BorderColor = System.Drawing.Color.Red;


yazarsanız, dış rengini değiştirebilirsiniz.

Mucit23

Hocam sizin kod çalışmadı nedense
        private void button1_Click(object sender, EventArgs e)
        {
            button1.BackColor = System.Drawing.Color.Red;
            button1.FlatAppearance.BorderColor = Color.Red;
        }
olduğu gibi yazıyorum.

ULAGA

Butonun özelliklerinden FlatStyle'i Flat olarak değiştirdin mi?

desman

Hocam rengi kullanıcı seçsin istiyosanız.Bi tane colordialog ekleyin projeye ve şöyle yazın;
      private void button1_Click(object sender, EventArgs e)

        {
            colorDialog1.ShowDialog();
            button1.BackColor = colorDialog1.Color;
        }
A freshman at YTU

Mucit23

Hocam dediğiniz gibi buton FlatStyle i Flat olarak seçmemişim. Renk Değiştirme işini anladım.
Çalışmalarım devam ediyor.

Şimdi bir sorum daha var.

Diyelim form üzerinde bir butona klavyeden bir tuşu atamak istiyoruz.  Yani örneğin hem mause ile hemde kavyeden istediğim tuş ile butonun yaptığı işlemi yapabileyim. Biraz araştırdım. Normalde butonun yaptığı işlemi fonksiyon olarak tanımladım. Butona basıldığında o fonksiyonu çağırıp işlemi yaptırıyorum. Sıra geldi klavyeden iştiğim tuşun basıldığını anlamaya. Bunu nasıl yaparım.

ULAGA

Alıntı yapılan: Mucit23 - 08 Haziran 2012, 16:57:52
Hocam dediğiniz gibi buton FlatStyle i Flat olarak seçmemişim. Renk Değiştirme işini anladım.
Çalışmalarım devam ediyor.

Şimdi bir sorum daha var.

Diyelim form üzerinde bir butona klavyeden bir tuşu atamak istiyoruz.  Yani örneğin hem mause ile hemde kavyeden istediğim tuş ile butonun yaptığı işlemi yapabileyim. Biraz araştırdım. Normalde butonun yaptığı işlemi fonksiyon olarak tanımladım. Butona basıldığında o fonksiyonu çağırıp işlemi yaptırıyorum. Sıra geldi klavyeden iştiğim tuşun basıldığını anlamaya. Bunu nasıl yaparım.

Şu geliştirdiğim örneği incele:
https://rapidshare.com/files/1600640681/WindowsFormsApplication1.zip


Mucit23

Hocam Sağolun. Akşam inceleyeyim.

Birde seri port işini çözdüm. Artık istediğim gibi data alıp gönderebiliyorum. Dediğiniz gibi data almak için delegate kullandım. Son gaz çalışıyorum.  ;D

ULAGA

Alıntı yapılan: Mucit23 - 08 Haziran 2012, 19:02:09
Hocam Sağolun. Akşam inceleyeyim.

Birde seri port işini çözdüm. Artık istediğim gibi data alıp gönderebiliyorum. Dediğiniz gibi data almak için delegate kullandım. Son gaz çalışıyorum.  ;D

Ellerine sağlık, sevindim...

subram

#131
hocam verdiğiniz klavye uygulamasına baktım.

programda iş yapan kısım şurası anladığım kadarı ile. yalnız küçük harf yazmak istediğimde kabul etmedi. neden acaba. bu komut yapısını biraz anlatabilir misiniz.

private void frmKey_KeyPress(object sender, KeyPressEventArgs e)
		{
			char ch = Char.ToUpper(e.KeyChar);

            if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'z') )
			{
				e.Handled = true;
			}
			else
			{
				txtDisplay.Text += ch.ToString();
			}
		}


edit;
buldum galiba ToUpper dan kaynaklanıyor.

edit; istediğim buydu ;

char ch =(e.KeyChar);

            if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'z') && (ch < 'A' || ch > 'Z'))
			{
				e.Handled = true;
			}
			else
			{
				txtDisplay.Text += ch.ToString();
			}
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

cicjoe

Char.IsLetterOrDigit(ch) veya !Char.IsLetterOrDigit(ch) seklinde de kullanilabilir

subram

Cicjoe dediğini yapamadım ama klavyedeki tüm karakterleri yazdırmanın yolunu buldum sanırım :) çok zevkli bu C# ya.

private void frmKey_KeyPress(object sender, KeyPressEventArgs e)
		{
			char  ch =(e.KeyChar);

            if ((ch < 0 || ch > 255) )
			{
				e.Handled = true;
			}
			else
			{
             
                
				txtDisplay.Text = ch.ToString();
			}
		}
http://www.elektronark.org  Türkiyede Elektronik Kültürünü Değiştirmeye Geliyoruz

ULAGA

Alıntı yapılan: cicjoe - 09 Haziran 2012, 01:33:59
Char.IsLetterOrDigit(ch) veya !Char.IsLetterOrDigit(ch) seklinde de kullanilabilir

Evet, onu da kullanabilirdim.
Ancak A<>F sınırlaması yapmak istedim. :)