1

コードで完全に作成された子フォームがあります。フォームのテキスト ボックス コントロールにツール ヒントを追加したいと考えています。その場でツール ヒントを設定する方法は知っていますが、ツール ヒント コントロールをその場でフォームに追加する方法が見つかりません。Google で見つけたすべてのヒットは、デザイナー ツールボックスからコントロールをドラッグすることに言及しています。

私は次のようなことをする必要があります:

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

これは動作しません

設計時に from.load イベントを処理するサブを追加しようとしましたが (サブを指すハンドラーを使用)、ツールチップを個別の動的コントロールに追加するときに「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

多くのコードを省略しましたが、これで私が何をしているのかがわかるはずです

4

2 に答える 2