1

我有一个完全用代码创建的子表单。我想向表单上的文本框控件添加工具提示。我知道如何即时设置工具提示,但找不到动态将工具提示控件添加到表单的方法。我在谷歌上找到的所有点击都是指从设计器工具箱中拖动控件。

我需要做类似的事情:

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

这不起作用

我尝试在设计时添加一个子来处理 from.load 事件(使用指向子的处理程序),但在将工具提示添加到单个动态控件时无法通过错误“未声明工具提示 1”。

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

谢谢

        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

我遗漏了很多代码,但这应该让您了解我在做什么

4

2 回答 2

2

在vb中是

Dim tooltip As New ToolTip(components)
tooltip.SetToolTip(textBox1, "This is a textbox tooltip")
于 2013-04-01T20:40:30.090 回答
1

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

    ToolTip tooltip = new ToolTip(components);
    tooltip.SetToolTip(textBox1, "This is a textbox tooltip");
于 2013-04-01T20:36:27.573 回答