C# wpf  跟Mouse按下彈起比較相關的事件我所知主要就

 

PreviewMouseDown

MuseDown

PreviewMouseUp

MouseUp

 

有沒有preview的差異見

What are WPF Preview Events?

ttp://stackoverflow.com/questions/1460170/what-are-wpf-preview-events

 

(Key按下彈起 也差不多這四個事件  概念相同)

 

而我我遇到的情境,我想在user按下TB(之後用這簡稱TextBox)後自動全選TB內的所有文字,

基本上全選的方法概念很簡單

不管用什麼事件內容都一樣

private void 某個事件(object sender, MouseButtonEventArgs e)
{
    TextBox T = sender as TextBox;
    if (T != null)
        T.SelectAll();
}

 

所以問題在用哪個事件

 

我發生的問題是用MouseDown MouseUp PreviewMouseDown都沒用,

 

但是使用PreviewMouseUp就成功了

 

 

推測是因為MouseDown跟MouseUp是Bubble的所以不太清楚什麼原因就會無效

而很明顯

----------

PreviewMouseDown

MuseDown

下面兩個事件應該會發生在上面兩個之後(這是直接推測的)

PreviewMouseUp

MouseUp

------------

 

所以我猜PreviewMouseDown可能滑鼠在彈回的時候引發了什麼TB的類似MouseUp的內建機制會讓游標變回無反白並閃動,

 

而PreviewMouseUp幾乎發生在最後部會在引動什麼其他機制,

跟MouseDwon相比又可以繞過一些東西所以能成功

 

個人才疏學淺的推測如上

 

 

arrow
arrow
    全站熱搜

    olivermode 發表在 痞客邦 留言(0) 人氣()