我有一個Windows多行文本框並且是隻讀的。我可以檢查其中的文字是否已達到最後?我的目的是在文本大於TextBox容量的情況下啓用滾動。檢查文本是否超出文本框的大小
3
A
回答
5
1
簡單的,不浪費您的時間的解決方案是設置垂直滾動條始終可見。如果沒有必要,它什麼都不會做。但它也不會傷害任何可見的東西。這就是基本上所有的文本編輯器,文字處理器和無數其他應用程序所做的事情。
如果你堅持計算一個滾動條是否必要,你可以這樣做,但這需要很多工作。您將使用TextRenderer.MeasureText
method來確定控件顯示的文本的大小(以像素爲單位)。請務必使用允許傳入與TextBox控件的屬性相對應的字體,大小,文本格式標誌的重載。
(請注意,你不希望使用Graphics.MeasureString
方法,它使用GDI +,而TextBox控件使用GDI內部,所以結果會不準確。)
你會在插入代碼一個TextChanged
event的處理程序,以便每次更新TextBox的內容時都會重新計算所需的大小。
哦,一旦你編寫了代碼並開始測試它,你會發現一個奇怪的錯誤。它需要您花一段時間來識別它,但我會爲您節省麻煩:您將忘記說明滾動條本身的寬度!當滾動條被隱藏時,稍微更多的文本將適合控件的客戶區域。通過允許查詢SystemInformation.VerticalScrollBarWidth
property來確定滾動條的寬度來解決這個問題。
您也可能開始接受測試人員的抱怨,說該應用程序已經變得遲緩。這是有道理的 - 每當TextBox中的文本發生更改時,都要重新計算。可能會對代碼做一些小的優化,但這種解決方案的效率並不高。
相關問題
- 1. 檢查多行文本框的大小
- 2. 如何檢查文件大小是否超過最大文件大小批量
- 3. GWT檢查文本框是否爲空
- 4. 檢查richtextbox是否包含文本框
- 5. 檢查文本框是否爲空
- 6. 文本框不檢查是否爲空
- 7. 檢查文本框是否爲空?
- 8. 檢查文本框是否被編輯?
- 9. 檢查文本框是否爲空
- 10. 檢查文本框是否爲空
- 11. javascript檢查鏈接中的文本錨文本是否溢出
- 12. JS:檢查文本是否超出容器寬度
- 13. 文本和按鈕超出彈出框大小
- 14. 檢查文本在VB.NET文本框中是否有變化
- 15. 檢查是否任何文本框包含文本
- 16. 如何檢查文本框是否有文本?
- 17. 如何檢查SSRS文本框文本是否等於「0」
- 18. 如何檢查文本框是否爲空且值小於500
- 19. 找出CATextLayer中文本框的大小
- 20. 如何在文本超出文本大小時顯示點?
- 21. 檢查文本框
- 22. 檢查文本框
- 23. 當文本開始走出邊界時,是否可以縮放文本框內的文本大小?
- 24. Google apps腳本 - 「文件xyz.csv超出了最大文件大小。」
- 25. 文本正在超出框
- 26. Sub檢查文本框中的大小,vb
- 27. 檢查文本框的值
- 28. 檢查空的文本框
- 29. 更改超鏈接文本的大小
- 30. Shell腳本文件,檢查文本文件是否爲空
不文本框中有一個'在垂直滾動條屬性auto'選項? – Stefan
不是我所知。我正在使用System.Windows.Forms.TextBox – Nitish
也許這會幫助:http://stackoverflow.com/questions/73110/how-can-i-show-scrollbars-on-a-system-windows-forms-textbox-只有當文本-D – Stefan