เมื่อกล่องข้อความ C # WinForms ได้รับการโฟกัสฉันต้องการให้มันทำงานเหมือนแถบที่อยู่ของเบราว์เซอร์ของคุณ
หากต้องการดูว่าฉันหมายถึงอะไรให้คลิกในแถบที่อยู่ของเว็บเบราว์เซอร์ของคุณ คุณจะสังเกตเห็นพฤติกรรมดังต่อไปนี้:
- การคลิกในกล่องข้อความควรเลือกข้อความทั้งหมดหากไม่ได้เน้นข้อความไว้ก่อนหน้านี้
- เลื่อนเมาส์ลงและลากในกล่องข้อความควรเลือกเฉพาะข้อความที่ฉันเน้นด้วยเมาส์
- หากกล่องข้อความนั้นโฟกัสอยู่แล้วการคลิกจะไม่เลือกข้อความทั้งหมด
- การโฟกัสกล่องข้อความโดยทางโปรแกรมหรือผ่านแท็บคีย์บอร์ดควรเลือกข้อความทั้งหมด
ฉันต้องการทำสิ่งนี้ใน WinForms
ALUN GUN ALERT: โปรดอ่านข้อความต่อไปนี้ก่อนตอบ! ขอบคุณเพื่อน. :-)
การเรียก. SelectAll () ระหว่างเหตุการณ์. ใส่หรือ .GotFocus จะไม่ทำงานเพราะหากผู้ใช้คลิกที่กล่องข้อความเครื่องหมายรูปหมวกจะถูกวางไว้ในตำแหน่งที่เขาคลิกดังนั้นจึงยกเลิกการเลือกข้อความทั้งหมด
การโทร. SelectAll () ระหว่างกิจกรรม .Click จะไม่ทำงานเนื่องจากผู้ใช้จะไม่สามารถเลือกข้อความใด ๆ ด้วยเมาส์ การเรียกใช้. SelectAll () จะแทนที่การเลือกข้อความของผู้ใช้
การเรียกกล่องข้อความ BeginInvoke (Action) SelectAll) ที่โฟกัส / เข้าสู่การป้อนเหตุการณ์ไม่ทำงานเพราะมันทำลายกฎ # 2 ด้านบนมันจะยกเลิกการเลือกของผู้ใช้ในการโฟกัส