touch screen c# winforms

Asked

Viewed 67 times

0

I developed this application that visualizes information contained on a website through windows Forms and with the webbrowser component. The application works with the mouse perfectly. When I run on a touch screen, the app simply doesn’t respond to the clicks that the user applies.

Here is the current code:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Security.Permissions;
    using System.Windows.Forms;

    namespace WebsiteWrapper
    {
        public partial class Form1 : Form
        {
            public static Timer IdleTimer = new Timer();
            const int Tempo = 90000; // 1min - represents the configured time to see if the application is in idle
            public Form1()
            {

            Application.Idle += new EventHandler(Application_Idle);
            IdleTimer.Interval = Tempo;
            IdleTimer.Tick += TimesUp;
            IdleTimer.Start();
            InitializeComponent();
            Application.Idle -= new EventHandler(Application_Idle);

        }

        //avoid the page to open external links
        private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
        {
            e.Cancel = true;
        }

        public void Application_Idle(object sender, EventArgs e)
        {
            if (IdleTimer.Enabled)
            {
                IdleTimer.Start();
            }
        }

        //reload de webBrowser when it reachs 1min of inactivity
        public void TimesUp(object sender, EventArgs e)
        {
           this.webBrowser1.Navigate("http://www.myWebsite.co.mz/index.php/pt/novo");

        }
    }

    //events messages 
    [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
    public class LeaveIdleMessageFilter : IMessageFilter
    {
        const int WM_NCLBUTTONDOWN = 0x00A1;
        const int WM_NCLBUTTONUP = 0x00A2;
        const int WM_NCRBUTTONDOWN = 0x00A4;
        const int WM_NCRBUTTONUP = 0x00A5;
        const int WM_NCMBUTTONDOWN = 0x00A7;
        const int WM_NCMBUTTONUP = 0x00A8;
        const int WM_NCXBUTTONDOWN = 0x00AB;
        const int WM_NCXBUTTONUP = 0x00AC;
        const int WM_KEYDOWN = 0x0100;
        const int WM_KEYUP = 0x0101;
        const int WM_MOUSEMOVE = 0x0200;
        const int WM_LBUTTONDOWN = 0x0201;
        const int WM_LBUTTONUP = 0x0202;
        const int WM_RBUTTONDOWN = 0x0204;
        const int WM_RBUTTONUP = 0x0205;
        const int WM_MBUTTONDOWN = 0x0207;
        const int WM_MBUTTONUP = 0x0208;
        const int WM_XBUTTONDOWN = 0x020B;
        const int WM_XBUTTONUP = 0x020C;

        // The Messages array must be sorted due to use of Array.BinarySearch
        static int[] Messages = new int[] {WM_NCLBUTTONDOWN,
            WM_NCLBUTTONUP, WM_NCRBUTTONDOWN, WM_NCRBUTTONUP, WM_NCMBUTTONDOWN,
            WM_NCMBUTTONUP, WM_NCXBUTTONDOWN, WM_NCXBUTTONUP, WM_KEYDOWN, WM_KEYUP,
            WM_LBUTTONDOWN, WM_LBUTTONUP, WM_RBUTTONDOWN, WM_RBUTTONUP,
            WM_MBUTTONDOWN, WM_MBUTTONUP, WM_XBUTTONDOWN, WM_XBUTTONUP};

        public bool PreFilterMessage(ref Message m)
        {
            if (m.Msg == WM_MOUSEMOVE)  // mouse move is high volume
                return false;
            if (!Program.IdleTimer.Enabled)     // idling?
                return false;           // No
            if (Array.BinarySearch(Messages, m.Msg) >= 0)
                Program.IdleTimer.Stop();
            return false;
        }
    }
}

I think I’m lost and from so many searches I did in Google I didn’t think anything that helped me solve the problem. The application runs on a windows 10 computer.

  • You checked whether the touchscreen counters are the same as the ones mapped in your code?

1 answer

0


Solved.

The external touch screen did not recognize the ringtones because it needed to install the screen drivers on the computer in the application is installed.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.