ايران ويج

نسخه‌ی کامل: راهنمایی در مورد tool tip تکست باکس
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
حالت عادی وقتی نشانگر موس روی تکست باکس میبریم tooltip برای زمان کمی نمایش داده میشه ولی
میخوام تا موقعی که فوکوس روی تکست باکس هست و داریم داخل تکست باکس تایپ میکنیم tooltip نمایش داده بشه...
ایا راهی هست؟
کسی نیست راهنمایی کنه؟
سلام، بابت تاخیر متاسفم؛
یادمه داخل Visual Basic میشد خیلی راحت برای هر Event پاسخ نوشت (Responding to Mouse and Keyboard Events)، در نتیجه نسخت لازم است Event های مورد نیازمان را پیدا کنیم. در مسیر زیر تمامی Event های پشتیبانی شده توسط vb (به ترتیب حروف الفبا) در سایت msdn قرار دارند:
Visual Studio -> Visual Basic 6.0 -> Resource Center -> Product Documentation -> Reference -> Language Reference -> Events
Event هایی که برای این کار میتوانیم از آنها استفاده کنیم عبارتند از:
Click Event (رویداد کلیک کردن)
The MouseDown OR MouseUp Event (شبیه رویداد بالایی است)
The EnterFocus AND GotFocus Event (رویداد فوکوس شبیه انتخاب شدن کردن)
حالا باید برای هرکدام از Event های بالا تعریف کنیم که، زمانی که هر کدام از Events های TextBox Control رخ دهد، شما ToolTip Control بسازی یا اگر از قبل ساخته شده است آن را فراخوانی کنید و حتما در ToolTip Property (خصوصیات ToolTip) گزینه ای باشه که مقدار TimeOut تعیین کرد.

متاسفانه vb ندارم که بررسی کنم اما با جست و جوی عبارت "show tooltip when focused visual basic" به این چند تکه کد برخوردم؛

مثال اول - توضیح (لینک) :
نقل قول: The Enter and Leave events are probably useful here, and show it with a duration of 0 to keep it there
Note: Calling the Show(...) method twice like in my example will force the "pointer" to point correctly to the control

مثال اول - کد :
کد:
private ToolTip tt;

private void textBox1_Enter(object sender, EventArgs e) {
 tt = new ToolTip();
 tt.InitialDelay = 0;
 tt.IsBalloon = true;
 tt.Show(string.Empty, textBox1);
 tt.Show("I need help", textBox1, 0);
}

private void textBox1_Leave(object sender, EventArgs e) {
 tt.Dispose();
}

مثال دوم - توضیح (لینک) :
نقل قول: tooltip is a control, needs to be added from toolbox

مثال دوم - کد :
کد:
private void textbox_Enter(object sender, EventArgs e)
{
 toolTip1.Show("your tip here", textbox);
}

private void textbox_Leave(object sender, EventArgs e)
{
 toolTip1.Hide(textbox);
}



پیوست؛ من تازه متوجه مشکل شدم و راستش دلم نیومد توضیحات قبلی و پاک کنم  024
اینطوری که من متوجه شدم قضیه اینکه وقتی ToolTip نمایش داده میشود و کاربر شروع به تایپ کردن میکند، ToolTip محو میشود. درسته؟  خنده بلد − بهینه شده برای ورژن جدید
خب دو تا راه حل است؛ اولیش اینطوریه که با استفاده از Event های مربوط به کیبورد مثل KeyPressKeyDownKeyUp و یا Change استفاده کنیم و در پاسخ هر بار ToolTip نمایش دهیم.

نمونه کد:
کد:
Private Sub Form_Load()
 'Initialization tooltip
 With Me.txtToolTip
   .Visible = False
   .Appearance = 0
   .BackColor = &H80000018
 End With

 Text1.ToolTipText = "Hey this is Text1!"
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
 showtoolTip Text1
End Sub

Private Sub Text1_GotFocus()
 showtoolTip Text1
End Sub

Private Sub showtoolTip(pTB As TextBox)
 With Me.txtToolTip
   .Height = Me.TextHeight(pTB.ToolTipText)
   .Width = Me.TextWidth(pTB.ToolTipText) + 100
   .Left = pTB.Left
   .Top = pTB.Top + pTB.Height
   .Text = pTB.ToolTipText
   .ZOrder
   .Visible = True
 End With
End Sub

Private Sub Text1_LostFocus()
 Me.txtToolTip.Visible = False
End Sub

راه حل دوم؛ دو تا TextBox میسازی (به نام های مثلا علی و رضا) که اندازه TextBox اولی (علی) بزرگتر از TextBox دومی (رضا) باشه بعد TextBox رضا میزاری روی TextBox علی (که بزرگتره) جوری که یه خورده از TextBox علی معلوم باشه؛ اونوقت TextBox علی از فرم (Form) برنامه Hide کن؛ بعدش وقتی Event های مربوط به انتخاب، فوکوس و شروع تایپ کردن فراخوانی شد با تابع SetCursorPos مکان موس و تغییر بده به جایی که TextBox علی از پشت رضا زده بیرون و معلوم باشه.
ممنون بابت جواب قلب
ولی ارور میده موقع اجرا
nImaarek قبلا عضو انجمن DataIran بودی؟