Tôi tìm thấy một sự khác biệt đơn giản chưa được giải quyết trong chủ đề này.
Nếu bạn đang thực hiện tất cả các ScrollToCarat()
cuộc gọi như một phần của Load()
sự kiện trong biểu mẫu của mình , thì nó không hoạt động. Tôi vừa thêm ScrollToCarat()
cuộc gọi của mình vào Activated()
sự kiện của mẫu đơn và nó hoạt động tốt.
Biên tập
Điều quan trọng là chỉ thực hiện cuộn này khi Activated
sự kiện của biểu mẫu lần đầu tiên được kích hoạt (không phải trong các lần kích hoạt tiếp theo) hoặc nó sẽ cuộn mỗi khi biểu mẫu của bạn được kích hoạt, đó là điều bạn có thể không muốn.
Vì vậy, nếu bạn chỉ bẫy Activated()
sự kiện để cuộn văn bản khi chương trình của bạn tải, thì bạn chỉ có thể hủy đăng ký sự kiện bên trong trình xử lý sự kiện, do đó:
Activated -= new System.EventHandler(this.Form1_Activated);
Nếu bạn có những việc khác bạn cần làm mỗi khi biểu mẫu của bạn được kích hoạt, bạn có thể đặt thành bool
đúng khi lần đầu tiên Activated()
sự kiện của bạn được kích hoạt, vì vậy bạn không cuộn vào các lần kích hoạt tiếp theo, nhưng vẫn có thể thực hiện những việc khác bạn cần làm
Ngoài ra, nếu bạn TextBox
ở trên một tab không phải là SelectedTab
, ScrollToCarat()
sẽ không có hiệu lực. Vì vậy, bạn cần ít nhất làm cho nó trở thành tab đã chọn trong khi bạn cuộn. Bạn có thể gói mã trong một YourTab.SuspendLayout();
và YourTab.ResumeLayout(false);
cặp nếu biểu mẫu của bạn nhấp nháy khi bạn làm điều này.
Kết thúc chỉnh sửa
Hi vọng điêu nay co ich!