2012-04-10 18 views
7

Tôi cần điều chỉnh chiều cao của hộp văn bản để phù hợp với màn hình cảm ứng.Làm thế nào tôi có thể tăng chiều cao của một hộp văn bản mà không cần Multiline = "true" hoặc tăng kích thước phông chữ?

Tôi hiểu mọi người khuyên bạn nên Multiline = "true" nhưng nếu tôi làm như vậy, văn bản bên trong hộp được hợp lý với đầu không phù hợp trong đơn đăng ký của tôi.

Tôi đã cố gắng điều chỉnh kích thước phông chữ, nhưng kích thước phải rất lớn để phù hợp với chiều cao cho nhu cầu của tôi.

Có cách nào khác để tăng chiều cao của hộp văn bản không?

+0

Bạn có thể sử dụng đệm, điều này sẽ phát triển hộp văn bản _and_ biện minh cho nó 'bình thường', tôi nghĩ vậy. –

+0

@david Đó không phải là suy nghĩ đúng đắn: chúng tôi không có 'Padding' cho TextBox trong WinForms. –

Trả lời

8

Hãy thử điều này:

textBox1.AutoSize = false; 

Nó sẽ không hiển thị trong IntelliSense, nhưng nó sẽ làm việc.

Để có nó làm việc với các nhà thiết kế, bạn sẽ phải làm cho TextBox của riêng bạn:

public class TextBoxEx : TextBox { 
    public TextBoxEx() { 
    this.AutoSize = false; 
    } 
} 
+0

Nó hoạt động nhưng văn bản được căn chỉnh với đầu của nó và tôi không được phép thay đổi căn chỉnh theo chiều dọc của nó. Bất kỳ ý tưởng làm thế nào tôi có thể sắp xếp theo chiều dọc văn bản? –

+1

@ david Cách duy nhất khác là lấy một TextBox không biên giới và đặt nó bên trong một UserControl với cùng một BackColor, sau đó xử lý vị trí của TextBox trong giới hạn của UserControl vì nó được thay đổi kích cỡ. Không lý tưởng, bạn mất đường viền TextBox với phong cách trực quan của họ. WinForms là không tốt ở đây trong khi WPF xử lý này tốt hơn. – LarsTech

+1

@LarsTech Làm cho hộp văn bản xuất hiện lớn hơn dường như không phù hợp với những gì OP đang tìm kiếm. Anh ta thực sự muốn hộp văn bản to hơn, vì vậy nó dễ chạm vào hơn. – McKay

0

bước Trick:

  1. Đặt nhiều dòng = true
  2. Không cần phải thay đổi kích thước phông chữ.
  3. thay đổi Độ dài tối đa. để nó không được nhập vào dòng tiếp theo.