Có cách nào để vô hiệu hóa con trỏ trong hộp văn bản mà không cần thiết lập thuộc tính Enable to false? Tôi đã cố gắng sử dụng thuộc tính ReadOnly nhưng mặc dù thực tế là tôi không thể viết trong hộp văn bản, con trỏ xuất hiện nếu tôi nhấp vào hộp văn bản. Vậy có cách nào để loại bỏ con trỏ này một cách không?Làm thế nào để tắt con trỏ trong hộp văn bản?
Trả lời
Thay vào đó, bạn có thể sử dụng số Label
. Khi ở trong nhà thiết kế, bạn đặt BorderStyle = Fixed3D
, BackColor = Window
và AutoSize = False
, trông giống như một Hộp văn bản.
Tuy nhiên, con trỏ trong hộp văn bản được cung cấp để người dùng có thể cuộn qua văn bản khi nó dài hơn hộp. Bạn sẽ mất chức năng đó với một Nhãn, trừ khi bạn chắc chắn rằng nó sẽ luôn phù hợp. Ngoài ra, không thể xóa con trỏ khỏi một TextBox.
Trong C#, bạn có thể sử dụng sau read-only textbox:
public class ReadOnlyTextBox : TextBox
{
[DllImport("user32.dll")]
static extern bool HideCaret(IntPtr hWnd);
public ReadOnlyTextBox()
{
this.ReadOnly = true;
this.BackColor = Color.White;
this.GotFocus += TextBoxGotFocus;
this.Cursor = Cursors.Arrow; // mouse cursor like in other controls
}
private void TextBoxGotFocus(object sender, EventArgs args)
{
HideCaret(this.Handle);
}
}
Tại sao đặt 'BackColor'? Windows đã thực hiện việc này để phù hợp với chủ đề hệ thống của người dùng. –
@Mikhail Semenov Tôi mới đến C#, làm thế nào để gọi sự kiện này 'TextBoxGotFocus', nó không có mặt trong các sự kiện nữa. xin giúp đỡ .. –
Điều này làm việc hoàn hảo cho một RichTextBox nơi tôi đã có một vấn đề tương tự. Mã trong ReadOnlyTextBox() là thừa. – OfficeAddinDev
bạn có thể sử dụng RightToLeft tài sản của Text Box, đặt nó là đúng, bạn sẽ không thoát khỏi con trỏ, nhưng nó sẽ được cố định ở góc bên phải và nó sẽ không xuất hiện tự động sau mỗi văn bản bạn gõ vào hộp văn bản của bạn. Tôi đã sử dụng nó để phát triển một ứng dụng như Windows Calculator.
Chỉ làm mọi thứ trở nên tồi tệ hơn. Cũng thay đổi căn chỉnh, con trỏ vẫn xuất hiện nơi bạn bấm và chọn văn bản là ... lạ. –
Trong C# bạn có thể vô hiệu hóa con trỏ trong hộp văn bản bằng cách tạm thời vô hiệu hóa và sau đó kích hoạt lại hộp văn bản bất cứ khi nào nó nhận được tiêu điểm. Lưu ý không cần phải làm cho hộp văn bản chỉ đọc nếu sử dụng phương pháp này. Ví dụ:
private void TextBox_Enter(object sender, EventArgs e)
{
TextBox.Enabled = false;
TextBox.Enabled = true;
}
nếu bạn đặt hàm hideCaret bên trong sự kiện Textchange, điều này sẽ giải quyết được sự cố.
[DllImport("user32.dll")]
static extern bool HideCaret(IntPtr hWnd);
private void textBox1_TextChanged(object sender, EventArgs e)
{
HideCaret(textBox1.Handle);
}
Bạn có thể đặt chương trình theo chương trình.
textBox1.Cursor = Cursors.Arrow;
Giải pháp dễ nhất cho tôi là chỉ ghi đè lên sự kiện lấy nét và tập trung lại cho phụ huynh. Điều này ngăn cản con trỏ và bất kỳ chỉnh sửa của hộp văn bản của người dùng và về cơ bản vô hiệu hóa hộp văn bản với ra có thiết lập các Enabled = false tài sản.
private void Form1_load(object sender, EventArgs e) {
textBox1.ReadOnly = true;
textBox1.Cursor = Cursors.Arrow;
textBox1.GotFocus += textBox1_GotFocus;
}
private void textBox1_GotFocus(object sender, EventArgs e) {
((TextBox)sender).Parent.Focus();
}
- 1. Làm thế nào để tắt định vị con trỏ và chọn văn bản trong EditText? (Android)
- 2. Làm thế nào để ẩn con trỏ nhấp nháy hộp văn bản?
- 3. Ngăn chặn con trỏ nhấp nháy trong hộp văn bản
- 4. "Find and Replace" hộp văn bản chứa con trỏ
- 5. Làm cách nào để di chuyển con trỏ tới mặt trước của hộp văn bản có văn bản trong đó?
- 6. Xoay Con trỏ Theo Hộp văn bản được Xoay
- 7. Cách dán văn bản vào con trỏ hiện tại của hộp văn bản?
- 8. Trong Javascript, làm cách nào để tự động di chuyển con trỏ đến hộp văn bản tiếp theo khi hộp văn bản hiện tại đầy?
- 9. Làm thế nào để bạn có được vị trí con trỏ trong một vùng văn bản?
- 10. làm thế nào để chèn văn bản tại bất kỳ vị trí con trỏ trong uitextview?
- 11. Con trỏ văn bản Android trong EditText
- 12. Cách tắt các phím tắt trong Hộp văn bản WPF
- 13. Làm cách nào để tắt hộp văn bản tùy thuộc vào hộp kiểm được chọn
- 14. Làm thế nào để vô hiệu hóa gói văn bản trong điều khiển hộp văn bản?
- 15. Làm thế nào để lấy văn bản từ hộp văn bản trong widget Android?
- 16. Làm cách nào để thay đổi màu của con trỏ văn bản trong Eclipse
- 17. Làm cách nào để thêm văn bản vào vị trí con trỏ của người dùng trong Hộp văn bản có dạng thức trong C#?
- 18. Làm thế nào để xóa một hộp văn bản onfocus?
- 19. Làm thế nào để chuyển đổi chuỗi thành chữ hoa trong hộp văn bản cửa sổ?
- 20. C# - cách đặt văn bản trong hộp văn bản để hiển thị gợi ý khi hộp văn bản trống?
- 21. Nhận vị trí con trỏ hiện tại trong hộp văn bản
- 22. Làm thế nào để thêm một hộp văn bản bên trong hộp kiểm trong C#?
- 23. cách ẩn con trỏ nhấp nháy trong văn bản nhập?
- 24. Cách đặt con trỏ bên trong hộp văn bản sau khi tải trang bằng jquery
- 25. Chọn văn bản trong hộp văn bản bị tắt trong C#
- 26. Làm thế nào để tránh con trỏ null trong View.getDrawingCache()?
- 27. cách nhận và đặt vị trí con trỏ hiện tại của hộp văn bản WPF
- 28. Tắt con trỏ nhấp nháy trong UITextField?
- 29. Làm cách nào để ngăn chặn lựa chọn văn bản/phần tử khi kéo con trỏ
- 30. Tìm vị trí văn bản con trỏ trong JTextField
Hộp văn bản ReadOnly cũng hữu ích để hiển thị thông tin mà người dùng có thể muốn sao chép và dán ở nơi khác. Bằng cách sử dụng Nhãn (hoặc tắt con trỏ) khả năng bị mất hoặc bị giảm. Nhưng nếu bạn thực sự muốn hiển thị thông tin mà không có khả năng chọn nó thì Label là công cụ thích hợp cho công việc. –
@ JeffreyLWhitledge Tôi biết đây là câu hỏi cũ nhưng chỉ để cân nhắc, điều gì xảy ra nếu người dùng yêu cầu thanh cuộn trên nhãn? –
@KyleT: Nếu bạn có đủ số lượng văn bản mà bạn yêu cầu thanh cuộn, thì tôi khuyên bạn vẫn nên sử dụng 'TextBox' thay thế và đặt thuộc tính' ReadOnly' thành 'true'. Con trỏ ở đó thực sự rất hay, vì nó cho phép người dùng chọn các phần của văn bản mà không cần chỉnh sửa nó. – Virtlink