动态添加工具提示控件

时间:2013-04-01 20:15:12

标签: vb.net visual-studio-2010

我有一个完全用代码创建的子表单。 我想在表单上的文本框控件中添加工具提示。我知道如何动态设置工具提示但无法找到一种方法将工具提示控件动态添加到表单中。我在google上找到的所有匹配都是指从设计器工具箱中拖动控件。

我需要做类似的事情:

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

这不起作用

我尝试在设计时添加一个sub来处理from.load事件(带有一个处理器,该处理程序可以调用sub),但是当将工具提示添加到iundividual动态控件时,无法传递错误“未声明Tooltip1”

如果我从父表单调用此动态表单并将工具提示控件添加到父表单,我可以将其用于子表单。但是,如果我从一个不在父表单上的例程创建表单,我该怎么做呢?

感谢

        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

我留下了很多代码,但是这可以让你知道我在做什么

2 个答案:

答案 0 :(得分:2)

在vb中它是

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

答案 1 :(得分:1)

很抱歉这不是VB.NET,但我很确定你可以轻松转换它。第一行是将ToolTip控件设置为表单组件。第二个是如何将工具提示设置为控件并为其提供相关文本。

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