Yön tuşlarını kontrol etmek...

Başlatan YıldırımBey, 23 Aralık 2012, 22:22:18

YıldırımBey

Yön tuşlarına bastıgımda forma eklemiş oldugum 4 butonu aktif etmek istiyorum.Kod aşağıda fakat hata veriyor.
Hata:type or namespace definition,or end-of-file expected ve } expected daha yenıyım ufak bır yerde kutuphane veya algorıtma hatası yapmış olabilirm.Şimdiden teşekkürler.


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;
using System.Runtime.InteropServices;
using System.IO;

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

        private void Form1_Load(object sender, EventArgs e)
        {
{
          protected override bool ProcessDialogKey(Keys keyData)
        {
            if (keyData == Keys.Up)
            {
               button1_Click(button1, EventArgs.Empty);
               return false;
            }if (keyData == Keys.Left)
            {
               button2_Click(button2, EventArgs.Empty);
               return false;
            }
            if (keyData == Keys.Down)
            {
               button3_Click(button3, EventArgs.Empty);
               return true;
            }
            if (keyData == Keys.Right)
            {
               button4_Click(button4, EventArgs.Empty);
               return false;
            }
            return base.ProcessDialogKey(keyData);
        }






        }

       
    }
}

semih

Anladığım kadarıyla forma yerleştirdiğin butonları klavyeden kontrol etmek istiyorsun.Bunun için formun interval'ı true olmalı. Daha sonra
button1_Click(button1, EventArgs.Empty);
kodunu aşağıdaki gibi değiştir
button1.PerformClick();


datasheet

Alıntı yapılan: semih - 25 Aralık 2012, 11:47:24
Anladığım kadarıyla forma yerleştirdiğin butonları klavyeden kontrol etmek istiyorsun.Bunun için formun interval'ı true olmalı. Daha sonra
button1_Click(button1, EventArgs.Empty);
kodunu aşağıdaki gibi değiştir
button1.PerformClick();


peki intervali nasıl true yapıyoruz? normalde bir değer atamıyomuyuz?

datasheet

arkadaşlar yeni konu açmama gerek yok buradan yardımcı olurmusunuz?

fatih6761

Hocam, parantezlerde fazlalık var. Şu kısmı
  private void Form1_Load(object sender, EventArgs e)
{
{


aşağıdaki gibi düzeltin.
  private void Form1_Load(object sender, EventArgs e)
{
}

Koda geri dönersek, if ler ile ortalığı bulandırmaya gerek yok, biliyorsanız swith-case yapısı bu iş için daha uygun.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Media;
using System.IO;

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

        private void Form1_Load(object sender, EventArgs e)
        {
        }
        
        protected override bool ProcessDialogKey(Keys keyData)
        {
            switch (keyData)
            {
                case Keys.Left:
                    button1.PerformClick();
                    break;
                case Keys.Right:
                    button2.PerformClick();
                    break;
                case Keys.Up:
                    button3.PerformClick();
                    break;
                case Keys.Down:
                    button4.PerformClick();
                    break;
            }

            return base.ProcessDialogKey(keyData);
        }
    }
}

datasheet

Alıntı yapılan: fatih6761 - 12 Ocak 2013, 15:31:05
Hocam, parantezlerde fazlalık var. Şu kısmı
  private void Form1_Load(object sender, EventArgs e)
{
{


aşağıdaki gibi düzeltin.
  private void Form1_Load(object sender, EventArgs e)
{
}

Koda geri dönersek, if ler ile ortalığı bulandırmaya gerek yok, biliyorsanız swith-case yapısı bu iş için daha uygun.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Media;
using System.IO;

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

        private void Form1_Load(object sender, EventArgs e)
        {
        }
        
        protected override bool ProcessDialogKey(Keys keyData)
        {
            switch (keyData)
            {
                case Keys.Left:
                    button1.PerformClick();
                    break;
                case Keys.Right:
                    button2.PerformClick();
                    break;
                case Keys.Up:
                    button3.PerformClick();
                    break;
                case Keys.Down:
                    button4.PerformClick();
                    break;
            }

            return base.ProcessDialogKey(keyData);
        }
    }
}


form dosyasını eklermisiniz rica etsem ?

fatih6761

Form dosyasında birşey yok. Sadece ProcessDialogKey fonksiyonunu projenizde uygun yere yapıştırın. Eğer örnek proje istiyorsanız https://skydrive.live.com/?cid=3770aa04e8007492&id=3770AA04E8007492%216327&authkey=!ACRGMkluvDHKuN4

datasheet

çok teşekkür ederim hocam,seri porta nasıl okutacağız?yani bir aracı kontrol etmek istesem yukarıya bastığımda ileriye gidecek bunu nasıl gerçekleyebilirim?

fatih6761

Bunun için önce aracı tasarlamanız gerekiyor. PIC benzeri bir MCU ile yapacaksanız RS232 seri porttan veri göndermek basit.

semih

Alıntı yapılan: datasheet - 13 Ocak 2013, 02:40:20
çok teşekkür ederim hocam,seri porta nasıl okutacağız?yani bir aracı kontrol etmek istesem yukarıya bastığımda ileriye gidecek bunu nasıl gerçekleyebilirim?

C# kısmında serialport1.writeline(); komutu ile pic kısmında getch(); komutu ile bunları kolaylıkla halledebilirsin.