日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

C# 关于WinForm界面在触摸屏上显示点触型按钮会引发右键导航栏功能

發(fā)布時(shí)間:2023/12/8 C# 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 关于WinForm界面在触摸屏上显示点触型按钮会引发右键导航栏功能 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問(wèn)題描述:
前幾天在工控觸摸屏上測(cè)試項(xiàng)目的時(shí)候,發(fā)現(xiàn)工控機(jī)一體機(jī)(屏自帶觸摸效果)上常按屏不放的話就會(huì)出現(xiàn)右鍵菜單欄。 而我現(xiàn)在的項(xiàng)目中有不少按鈕的功能設(shè)計(jì)為點(diǎn)動(dòng)類(lèi)型,有需要常按屏幕不放的相關(guān)操作,所以會(huì)導(dǎo)致點(diǎn)動(dòng)效果出不來(lái)。
之前做的項(xiàng)目中沒(méi)有用到這種帶觸摸功能的工控機(jī),鼠標(biāo)操作的話,用MouseDown和MouseUp兩個(gè)事件關(guān)聯(lián)需要點(diǎn)動(dòng)的按鈕,就可以了而且沒(méi)有任何問(wèn)題。
但是換上這種帶觸摸功能的工控一體機(jī),Winform框架提供的MouseDown和MouseUP這兩個(gè)事件在用手去觸摸工控一體的屏幕時(shí),達(dá)不到預(yù)期的效果,相反會(huì)出現(xiàn)右鍵導(dǎo)航功能。如果非要觸發(fā)這兩個(gè)事件的話,必須先進(jìn)行滑動(dòng)然后再按住目標(biāo)按鈕(這樣的動(dòng)作才不會(huì)觸發(fā)右鍵導(dǎo)航案例功能),才能起作用。
解決方案:
1、剛開(kāi)始遇到這種情況時(shí),認(rèn)為是右鍵導(dǎo)航菜單欄干擾造成的;所以在工控屏上禁用了右鍵導(dǎo)航欄功能;操作步驟如下:
(1) 找到控制面板選項(xiàng):

(2)在硬件和聲音選項(xiàng)中

(3)筆和觸摸功能塊,點(diǎn)擊設(shè)置筆勢(shì)以執(zhí)行某些任務(wù)選項(xiàng)

(4)在筆和觸摸選項(xiàng)中,選擇按下并保持設(shè)置選項(xiàng),并點(diǎn)擊設(shè)置按鈕
禁用右鍵功能之后,發(fā)現(xiàn)對(duì)于按鈕的功能并沒(méi)有多大的作用。要觸發(fā)點(diǎn)動(dòng)按鈕,還需要先進(jìn)行滑動(dòng)然后再按住才能觸發(fā)。
2、因?yàn)橹皩W(xué)了一些WPF框架的知識(shí),所以想到用WPF中的按鈕來(lái)替換當(dāng)前Winform中的所有點(diǎn)動(dòng)型按鈕。
然后進(jìn)行了簡(jiǎn)單的測(cè)試,問(wèn)題得到了解決。
(2)相關(guān)測(cè)試代碼如下:

using System.Windows.Forms;namespace Touch {public partial class Form1 : Form{public Form1(){InitializeComponent();System.Windows.Controls.Button Btn_M1014 = new System.Windows.Controls.Button(){Background = System.Windows.Media.Brushes.Black,FontFamily = new System.Windows.Media.FontFamily("宋體"),FontSize = 9F,FontWeight = System.Windows.FontWeights.Bold,Foreground = System.Windows.Media.Brushes.White,BorderThickness = new System.Windows.Thickness(3, 3, 3, 3),BorderBrush = System.Windows.Media.Brushes.White,Name = "Btn_M1014"};Btn_M1014.Content = "這是一個(gè)WPF按鈕";elementHost1.Child = Btn_M1014;Btn_M1014.AddHandler(System.Windows.Controls.Button.MouseDownEvent, new System.Windows.RoutedEventHandler(Btn_MouseDown), true);Btn_M1014.AddHandler(System.Windows.Controls.Button.MouseUpEvent, new System.Windows.RoutedEventHandler(Btn_MouseUp), true);}private void Btn_MouseDown(object sender, System.Windows.RoutedEventArgs e){(sender as System.Windows.Controls.Button).Content = "松開(kāi)";}private void Btn_MouseUp(object sender, System.Windows.RoutedEventArgs e){(sender as System.Windows.Controls.Button).Content = "按下";}} }

窗口如下:

總結(jié):
本來(lái)是用的TouchDown和TouchUp這兩個(gè)事件的,但是后面發(fā)現(xiàn)WPF button按鈕中 MouseDown和MouseUp這兩個(gè)事件也是可行的,而且還可以用鼠標(biāo)來(lái)操控界面的點(diǎn)動(dòng)按鈕,方便測(cè)試,所以上面我依舊還是選用了后者。

總結(jié)

以上是生活随笔為你收集整理的C# 关于WinForm界面在触摸屏上显示点触型按钮会引发右键导航栏功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。