आप ToolTip
को TextBox
पर कैसे निर्दिष्ट करते हैं और उसमें सभी "बात करें कि टेक्स्टबॉक्स किसके लिए है"?
बस & ड्रॉप ToolTip
फार्म के अंदर खींचें। और फिर प्रत्येक TextBox
गुणों में आपको toolTip1
पर विविध अनुभाग ToolTip
में अतिरिक्त प्रविष्टि होनी चाहिए (या यदि आप इसका नाम बदलते हैं तो इसका नाम भी होगा)।
फिर जब उपयोगकर्ता TextBox
से अधिक हो जाता है (केवल पढ़ने/अक्षम TextBox
टूलटिप्स प्रदर्शित नहीं करता है) और 1 सेकंड टूलटिप के लिए वहां रुक जाता है उचित जानकारी के साथ दिखाना चाहिए।
आप अंततः या और भी बेहतर कर सकते हैं एक Label
अगले TextBox
से कहा है कि क्या है, लेकिन एक ToolTip
होने भी एक अच्छा विचार है कि के माध्यम से उपयोगकर्ता के लिए अधिक जानकारी की व्याख्या करने के लिए है।
वॉटरमार्क के साथ काम करना है ताकि आप, घटनाओं की स्थापना SelectAll आदि की देखभाल आप इसे इस तरह से कर सकता से काफी मदद की जरूरत नहीं है के लिए
। नई watermark.cs फ़ाइल बनाएं और इसे इस कोड से प्रतिस्थापित करें। सुनिश्चित करें कि आपने अपने प्रोग्राम नेमस्पेस से मेल खाने के लिए नेमस्पेस बदल दिया है।
#region
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
#endregion
namespace Watermark {
public static class TextBoxWatermarkExtensionMethod {
private const uint ECM_FIRST = 0x1500;
private const uint EM_SETCUEBANNER = ECM_FIRST + 1;
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)] private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, uint wParam, [MarshalAs(UnmanagedType.LPWStr)] string lParam);
public static void SetWatermark(this TextBox textBox, string watermarkText) {
SendMessage(textBox.Handle, EM_SETCUEBANNER, 0, watermarkText);
}
}
}
internal class WatermarkTextBox : TextBox {
private const uint ECM_FIRST = 0x1500;
private const uint EM_SETCUEBANNER = ECM_FIRST + 1;
private string watermarkText;
public string WatermarkText {
get { return watermarkText; }
set {
watermarkText = value;
SetWatermark(watermarkText);
}
}
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)] private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, uint wParam, [MarshalAs(UnmanagedType.LPWStr)] string lParam);
private void SetWatermark(string watermarkText) {
SendMessage(Handle, EM_SETCUEBANNER, 0, watermarkText);
}
}
अपने फार्म में आप इसे इस तरह सक्रिय करें:
textBoxYourWhatever.SetWatermark("Text that should display");
यह वहाँ के रूप में लंबे TextBox
खाली है रहता है। जब उपयोगकर्ता TextBox
टेक्स्ट में गायब हो जाते हैं। यह फिर से प्रकट होता है जब TextBox
साफ़ किया जाता है (या तो उपयोगकर्ता या स्वचालित रूप से)। किसी विशेष घटनाओं आदि के लिए कोई ज़रूरत नहीं
संपादित करें:
मैं भी आंतरिक वर्ग WaterMarkTextBox जो आप बस नई WaterMarkTexBox कि डिज़ाइनर में उपलब्ध हो जाता है का उपयोग करने का विकल्प देता है जोड़ दिया है। फिर इसे अपने डिजाइनर पर खींचें और छोड़ दें और इसका इस्तेमाल करें। यह सामान्य टेक्स्टबॉक्स की तरह व्यवहार करता है बस आपको अतिरिक्त क्षेत्र WaterMarkText देता है।
मैं अभी भी पहली विधि पसंद करता हूं। आपको फिर से अपने गुई का पुनर्निर्माण नहीं करता है।
यदि आपने दो समाधानों की कोशिश की है ... दूसरा * * काम करना चाहिए ... यह कोड में एक बग हो सकता है। क्या आप वास्तव में इस्तेमाल किए गए कोड को प्रदान कर सकते हैं? – Nick
मैंने कोड पोस्ट किया। अगर मुझे आगे बढ़ना पर्याप्त है तो मुझे बताएं। – Slateboard
तो क्या कोई समाधान आपको प्राप्त करने के लिए मदद करता था? – MadBoy