Невозможно обновить дерево в пользовательском контроле - PullRequest
0 голосов
/ 29 июля 2010

Я создал usercontrol с древовидной структурой внутри.Представление дерева будет заполнено, если я добавлю узлы в обработчик загрузки пользовательского контроля.Но после этого (например, я нажимаю кнопку в родительской форме), древовидная структура не обновляется.Я вижу, что узлы были обновлены в памяти, но они просто не могут отображаться на экране.Я позвонил обновить / обновить после добавления узлов.Любое предложение приветствуется.

Ответы [ 2 ]

0 голосов
/ 30 июля 2010

Спасибо, Дейв.Я понял.Я дважды ввел usercontrol в свою форму по ошибке (не могу вспомнить, как я это сделал).И тот, которым я управляю, находится под другим.Вот почему я не вижу этого.Извините, что потратил ваше время.

0 голосов
/ 30 июля 2010

Я собрал быстрый тест на основе вашего описания, и он, кажется, прекрасно рисует.

UserControl1

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class UserControl1
    Inherits System.Windows.Forms.UserControl

    'UserControl overrides dispose to clean up the component list.
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
    Me.TreeView1 = New System.Windows.Forms.TreeView
    Me.SuspendLayout()
    '
    'TreeView1
    '
    Me.TreeView1.Dock = System.Windows.Forms.DockStyle.Fill
    Me.TreeView1.Location = New System.Drawing.Point(0, 0)
    Me.TreeView1.Name = "TreeView1"
    Me.TreeView1.Size = New System.Drawing.Size(150, 150)
    Me.TreeView1.TabIndex = 0
    '
    'UserControl1
    '
    Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    Me.Controls.Add(Me.TreeView1)
    Me.Name = "UserControl1"
    Me.ResumeLayout(False)

  End Sub
  Friend WithEvents TreeView1 As System.Windows.Forms.TreeView

End Class

Public Class UserControl1

  Public Sub AddNewNode(ByVal text As System.String)
    TreeView1.Nodes.Add(text)
  End Sub

End Class

Поместите пользовательский контроль в форму с помощью кнопки

Public Class Form1

      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        UserControl11.AddNewNode(Now.ToString)
      End Sub
    End Class

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

...