2009-08-27 47 views
130

Tôi có một số điều khiển mà tôi muốn hiển thị ToolTip khi chuột di chuột qua nó. Tôi có thể làm cái này như thế nào? Tôi muốn biết làm thế nào để làm điều này đúng trong mã, mà còn trong nhà thiết kế (Có một thành phần ToolTip trong hộp công cụ, nhưng tôi không khá .. có được nó).C#: Làm cách nào để thêm một chú giải công cụ vào một điều khiển?

Tôi sẽ không ngạc nhiên nếu điều này là trùng lặp, nhưng tôi chỉ có thể tìm câu hỏi trên các trường hợp cụ thể, nâng cao hơn. Tôi muốn biết những điều cơ bản.

+0

có thể trùng lặp của [Hiển thị tooltip trên di chuột của một văn bản] (http://stackoverflow.com/questions/873175/displaying-tooltip-on-mouse-hover-of-a -text) –

+0

Có liên quan và cũ hơn (áp dụng cho .NET nói chung): https://stackoverflow.com/questions/168550/display-a-tooltip-over-a-button-using-windows-forms –

Trả lời

168

Here là bài viết của bạn để thực hiện nó với mã

private void Form1_Load(object sender, System.EventArgs e) 
{ 
     // Create the ToolTip and associate with the Form container. 
     ToolTip toolTip1 = new ToolTip(); 

     // Set up the delays for the ToolTip. 
     toolTip1.AutoPopDelay = 5000; 
     toolTip1.InitialDelay = 1000; 
     toolTip1.ReshowDelay = 500; 
     // Force the ToolTip text to be displayed whether or not the form is active. 
     toolTip1.ShowAlways = true; 

     // Set up the ToolTip text for the Button and Checkbox. 
     toolTip1.SetToolTip(this.button1, "My button1"); 
     toolTip1.SetToolTip(this.checkBox1, "My checkBox1"); 
} 
+3

Vì vậy, tôi đoán nó không quan trọng nếu biến 'toolTip1' bị loại ra khỏi phạm vi? – Svish

+0

Vâng, nó quan trọng.Tốt hơn là làm cho nó thành viên lớp, nếu bạn muốn quản lý nó từ một số chức năng khác .. –

+1

Còn một 'ToolTip' tĩnh cho tất cả các biểu mẫu của bạn thì sao? – Svish

111

Kéo một điều khiển tooltip từ hộp công cụ vào hình thức của bạn. Bạn không thực sự cần phải cung cấp cho nó bất kỳ tài sản nào ngoài tên. Sau đó, trong các thuộc tính của điều khiển bạn muốn có chú giải công cụ, hãy tìm một thuộc tính mới với tên của điều khiển chú giải công cụ mà bạn vừa thêm vào. Nó sẽ mặc định cung cấp cho bạn một chú giải công cụ khi con trỏ di chuyển điều khiển.

+1

Đây là một câu trả lời rất hay. Đơn giản là chìa khóa. –

+36

Hãy chắc chắn rằng khi bạn làm điều này (như lúc 2 giờ sáng) bạn sử dụng một điều khiển ToolTip và không phải là một điều khiển ToolStrip. –

+1

Với câu trả lời này, việc thêm một chú giải công cụ duy nhất vào biểu mẫu hình dạng cho phép tất cả các điều khiển dưới dạng chú giải công cụ của riêng họ. – SAm

34
  1. Thêm một thành phần ToolTip mẫu
  2. của bạn Chọn một trong các điều khiển mà bạn muốn một mẹo công cụ để
  3. mở bảng thuộc tính (F4), trong danh sách bạn sẽ tìm thấy một tính chất gọi "ToolTip trên toolTip1" (hoặc một cái gì đó tương tự). Đặt văn bản chú giải công cụ mong muốn trên thuộc tính đó.
  4. Lặp lại 2-3 cho các điều khiển khác
  5. Xong.

Bí quyết ở đây là sự kiểm soát ToolTip là một điều khiển mở rộng, có nghĩa là nó sẽ mở rộng các thiết lập các thuộc tính cho điều khiển khác trên biểu mẫu. Đằng sau hậu trường này là đạt được bằng cách tạo ra mã như trong câu trả lời của Svetlozar. Có các điều khiển khác hoạt động theo cách tương tự (chẳng hạn như HelpProvider).

+1

Vì vậy, bạn có thể sử dụng cùng một ToolTip cho nhiều điều khiển với các văn bản khác nhau? – Svish

+0

@Svish: có, đó là mục đích của điều khiển extender. –

+0

Có thể sử dụng các biểu mẫu và biểu mẫu người dùng chéo không? Giống như khi bạn tạo một ToolTip tĩnh với các giá trị thuộc tính chuẩn của bạn. Hay điều đó có được coi là thực hành không tốt? – Svish

-2

Chỉ cần đăng ký sự kiện ToolTipTextNeeded của kiểm soát và trả lại e.TooltipText, đơn giản hơn rất nhiều.

+4

Tôi không nghĩ đó là một sự kiện điều khiển WinForm tiêu chuẩn. – Dan7

5

Chú giải công cụ trong C# rất dễ dàng để thêm vào hầu như tất cả các điều khiển giao diện người dùng. Bạn không cần thêm bất kỳ sự kiện MouseHover nào cho điều này.

Đây là cách để làm nó-

  1. Thêm một đối tượng ToolTip để hình của bạn. Một đối tượng là đủ cho toàn bộ biểu mẫu. ToolTip toolTip = new ToolTip();

  2. Thêm điều khiển vào chú giải công cụ với văn bản mong muốn.

    toolTip.SetToolTip(Button1,"Click here");

Các vấn đề liên quan