2016-11-24 231 views
2

有沒有辦法通過點擊按鈕或其他控件來改變c#中點擊事件的「點擊框」?控件點擊事件點擊框

我正在使用自定義GUI控件來控制設備。這些控件可以作爲指示當前狀態(綠色或黑色)以及用戶可以點擊的按鈕的小圓圈工作。

問題是,我在設備上使用觸摸屏,點擊小圓圈並不容易。 50%的時間你錯過了它,並沒有提出控件點擊事件。

我想在不更改圓圈的可視大小的情況下更改此設置,因爲我的GUI在空間上已經受到限制。所以我想要一個看不見的控制本身的可點擊的點擊框。可能嗎?

+0

您可以通過多種方式解決問題,例如:**♦**您可以使用[Flat button](http://stackoverflow.com/a/32966147/3110834),將'FlatStyle'設置爲'Flat'並使用相同的'BackColor',將'FlatAppearance.MouseDownBackColor'和'FlatAppearance.MouseOverBackColor'設置爲合適的顏色並使用所需的按鈕圖像。 **♦**您可以將按鈕的區域設置爲圓形區域並繪製稍小的圓形。 **♦**或者您可能想要使用[圓形單選按鈕列表](http://stackoverflow.com/a/38390028/3110834)。 –

回答

0

感謝您的提示! 我最終做的事情與Abdul和Active92的答案類似。

我爲每個按鈕創建了一個圖片框,它比按鈕本身更大,並將其放在按鈕「後面」。 (右鍵點擊併發回)。由於我不添加任何圖像的pictureboxes是不可見的。

在每個圖片框中單擊事件處理程序,我只是觸發原始控件的單擊事件。

0

創建一個更大的按鈕,並執行下面的代碼,其中button1是您的原始按鈕,button2是更大的按鈕。

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

    private void button2_Click(object sender, EventArgs e) 
    { 
     ShowMessage(); 
    } 

    private void ShowMessage() 
    { 
     MessageBox.Show("ok", "ok"); 
    } 

將button2的文本設置爲空白。

設置FlatStyleflat

Set BorderColor,MouseDownBackColor and MouseOverBackColor to BackColor

右鍵單擊按鈕2併發回。

1

在設計UserControl時使用Panel,然後在面板內放置可點擊的項目,Panel默認爲透明。您無需爲其設置任何其他設置,並且用戶單擊面板消防control1_Click事件。

private void control1_Click(object sender, EventArgs e) 
{ 
    MessageBox.Show("Test"); 
} 

private void panel1_Click(object sender, EventArgs e) 
{ 
    control1_Click(sender, e); 
}