Вызов события C # click без фактического нажатия кнопки не работает - PullRequest
0 голосов
/ 26 июня 2018

Ниже приведен код, написанный внутри приложения C # Form, в котором я пытаюсь получить координаты x,y и z с устройства Leap Motion.

public partial class Form1 : Form
{


    public Form1()
    {
        InitializeComponent();
        //controller.EventContext = WindowsFormsSynchronizationContext.Current;
        button1.Click += new EventHandler(button1_Click);
     }


    private void button2_Click(object sender, EventArgs e)
    {
        Application.Exit();

    }

    private void button1_Click(object sender, EventArgs e)
    {

        // Initialize the Controller object which connects to the Leap motion service
        // and captures the hand tracking data

        Controller controller = new Controller();

        //Get the most recent tracking data using the Frame object
        Frame frame = controller.Frame();

        for (int h = 0; h < frame.Hands.Count; h++)
        {


            // Initialize the Hand in the given frame
            Hand leapHand = frame.Hands[h];

            // Get the "Pointer" finger of current hand which refers to where a person is pointing
            Finger leapFinger = leapHand.Fingers[1];

            // Prepare a vector which will store the co-ordinate values of the tip of the pointer
            Vector currentPosition = leapFinger.StabilizedTipPosition;

            textBox1.Text = Convert.ToString(currentPosition.x);
            textBox2.Text = Convert.ToString(currentPosition.y);
            textBox3.Text = Convert.ToString(currentPosition.z);

        }

    }
}

Однако мне нужно явно щелкнуть button1 для отображения. Есть идеи, что случилось?

1 Ответ

0 голосов
/ 26 июня 2018

Вот слишком простой пример того, как это сделать. Я не говорю, что это лучший способ, но вы должны быть в состоянии изменить этот пример кода с вашим кодом.

В этом примере есть простой метод «HelloWorld», который вызывается как при инициализации формы, так и при каждом нажатии кнопки. Дайте мне знать, если это приблизит вас к тому, что вы хотите.

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            button1.Click += new EventHandler(button1_Click);

            HelloWorldTest();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            HelloWorldTest();
        }

        private void HelloWorldTest()
        {
            MessageBox.Show("Hello World!");
        }
    }
}

Для чего бы то ни было, я не использовал ваш код, потому что у меня не установлены библиотеки Leap, и если бы была опечатка, я бы не сильно помог ее решить. Тем не менее, надеюсь, это заставит вас пойти по правильному пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...