Добавить динамическую подсказку динамически

59
9

У меня есть дочерняя форма, которая полностью создана в коде. Я хотел бы добавить подсказки инструментов к элементам управления текстовыми полями в форме. Я знаю, как настраивать подсказки инструмента на лету, но не может найти способ добавить управление всплывающей подсказкой в форму "на лету". Все хиты, которые я нахожу в google, относятся к перетаскиванию элемента управления из панели инструментов дизайнеров.

Мне нужно будет сделать что-то вроде:

        ' Add tool tip control
Dim toolTip1 As New ToolTip()
toolTip1.ShowAlways = True
frm.Controls.Add(toolTip1)

Это не работает

Я попытался добавить sub для обработки события from.load (с обработчиком, который poitn к югу) во время разработки, но не может получить сообщение об ошибке "Tooltip1 не объявлен" при добавлении всплывающей подсказки к индивидуальным динамическим элементам управления.

Если я вызову эту динамическую форму из родительской формы и добавлю элемент tooltip в родительскую форму, я могу использовать ее для дочерней формы. Но как мне это сделать, если бы я создавал форму из рутины, которая не живет в родительской форме?

благодаря

        Dim frm As New Form
' Add tool tip control
''Dim toolTip1 As New ToolTip()
''toolTip1.ShowAlways = True
'Draw the Form object

'close the dynamic frm if existing already
If frm IsNot Nothing Then
frm.Close()
End If

frm = New Form()
frm.AutoScaleDimensions = New System.Drawing.SizeF(6.0F, 13.0F)
frm.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
frm.Name = "frm_test"
'dimension is irrelevant at the moment
frm.ClientSize = New System.Drawing.Size(10, 10)
'the parent will be the current form
'frm.MdiParent = this;
'splash screen mode form, why not...
frm.ControlBox = True
frm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
frm.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink
frm.BackColor = System.Drawing.Color.LightGray
For Each item As MYFILE.Class in the Collection
Dim aTextBox As New TextBox()
aTextBox.Font = New System.Drawing.Font(sFont, Single.Parse(sSizeFont), System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CByte(0))
aTextBox.BackColor = System.Drawing.Color.Yellow
aTextBox.Location = New System.Drawing.Point(iNewColumnPosition + 5 + intMaxWidthLabel, intVertPos)
aTextBox.Size = New System.Drawing.Size(intWidthTextBox + 10, intGapHeight)

'store the biggest width, so that the textboxes can be vertically aligned
If intWidthTextBox > intMaxWidthText Then
intMaxWidthText = intWidthTextBox
End If

'giving a name to all your object will be the only way
'to retrieve them and use them
'for the purpose of this sample, the name can be the
'same for all textboxes.
aTextBox.Name = item.ParameterName
'giving the maximun size in caracters for the textbox.
aTextBox.MaxLength = Integer.Parse(item.ParameterLength)

toolTip1.SetToolTip(aTextBox, "TIP" & intIndex.ToString)

'tab have to be ordered
aTextBox.TabIndex = intIndex
intIndex += 1
'Vertical position is to be manage according the
'tallest object in the form, in this case the
'textbox it self
intVertPos += intGapHeight
'adding the textbox to the form
frm.SuspendLayout()
aTextBox.SuspendLayout()
frm.Controls.Add(aTextBox)
Next

Я оставил много кода, но это должно дать вам представление о том, что я делаю

спросил(а) 2013-04-01T23:15:00+04:00 7 лет, 6 месяцев назад
1
Решение
59

Извините, что это не в VB.NET, но я уверен, что вы можете легко преобразовать это. Первая строка - установить элемент управления ToolTip в компоненты формы. Во-вторых, как вы устанавливаете всплывающую подсказку для элемента управления и присваиваете ему соответствующий текст.

    ToolTip tooltip = new ToolTip(components);
tooltip.SetToolTip(textBox1, "This is a textbox tooltip");

ответил(а) 2013-04-01T23:36:00+04:00 7 лет, 6 месяцев назад
69

В vb это

Dim tooltip As New ToolTip(components)
tooltip.SetToolTip(textBox1, "This is a textbox tooltip")

ответил(а) 2013-04-01T23:40:00+04:00 7 лет, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема