BCB Edit 在可編輯模式下,雙擊或其他點擊操作可引起控制元件的默認 字串全選行為。請問如何屏蔽該默認行為。
可以確定的是引發全選的不僅是雙擊動作,具體可引起全選的所有事件無法全面推測。
uj5u.com熱心網友回復:
貌似有個AutoSelect屬性,不過對雙擊未必有用。uj5u.com熱心網友回復:
在edit的所有滑鼠有關的事件中,比如mousedown,mousemove,mouseup,mouseleave mouseenter都執行這句代碼Edit1->SelLength=0;這樣就不會全選了
uj5u.com熱心網友回復:
但不能屏蔽人為通過滑鼠拖拉進行范圍選中的操作uj5u.com熱心網友回復:
可以啊,通過滑鼠選中的也屏蔽了,你再試一遍,滑鼠拖動也無法選中文字,也可以屏蔽鍵盤的
uj5u.com熱心網友回復:
不能屏蔽 人為通過滑鼠拖拉進行范圍選中的操作
uj5u.com熱心網友回復:
看有沒有其他人測驗下這種情況,我的win10 X64 BCB2010,用這個代碼是滑鼠也沒辦法進行拖拉選中文字的,可以試下多執行幾個事件,比如EditEnter,再不行就試下把Edit所有事件都這樣執行一下看效果
uj5u.com熱心網友回復:
是我沒表述清楚, 不能屏蔽人為通過滑鼠拖拉進行范圍選中的操作 是需求。即人為通過滑鼠拖拉進行范圍選中的功能需要保留,僅屏蔽其他操作全選的功能。
uj5u.com熱心網友回復:
試下這三個事件,看下是不是你要的效果,滑鼠點進去和雙擊這些都不會自動全選,滑鼠手工拖動可以選擇全部或者一部分void __fastcall TForm1::Edit1Enter(TObject *Sender)
{
Edit1->SelLength=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1DblClick(TObject *Sender)
{
Edit1->SelLength=0;
}
void __fastcall TForm1::Edit1Exit(TObject *Sender)
{
Edit1->SelLength=0;
}
uj5u.com熱心網友回復:
控制元件的相關資料我都查過了,單純重寫控制元件的事件應該解決不了。控制元件提供的自動全選功能不僅在雙擊時觸發,還有點擊背景關系有關(具體背景關系關聯無法推測,可以多操作幾次體現下)。
仍然非常感謝~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/47602.html
標籤:VCL組件使用和開發
