﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>StrataFrame Forum » StrataFrame Application Framework - V1 » WinForms (How do I?)  » How to update parent Form Treeview or other control?</title><generator>InstantForum 2017-1 Final</generator><description>StrataFrame Forum</description><link>http://forum.strataframe.net/</link><webMaster>StrataFrame Forum</webMaster><lastBuildDate>Thu, 21 May 2026 21:18:40 GMT</lastBuildDate><ttl>20</ttl><item><title>How to update parent Form Treeview or other control?</title><link>http://forum.strataframe.net/FindPost25466.aspx</link><description>Dear Sir/Madam&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I have a problem about how to refresh the parent form treview data. In my program, When SQL table updated, In my Bo the ServerData changed Event received the notification. So I call&amp;nbsp; FrmMain.LoadMsg() to refresh the treeview data in Bo ServerDataChanged Event. I found the FrmMain.LoadMsg is running but the FrmMain's treeview not refresh. please told to me how to apply this function. (I using VB.net) , Thanks a lot.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub SystemMsgBO_ServerDataChanged(ByVal e As System.Data.SqlClient.SqlNotificationEventArgs) Handles Me.ServerDataChanged&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox(e.Info.ToString() &amp;amp; ControlChars.CrLf &amp;amp; e.Source.ToString() &amp;amp; ControlChars.CrLf &amp;amp; e.Type.ToString()) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;FrmMain.LoadMsg()&lt;/P&gt;&lt;P&gt;End Sub</description><pubDate>Thu, 07 Jan 2010 08:38:26 GMT</pubDate><dc:creator>Amy Tai</dc:creator></item><item><title>RE: How to update parent Form Treeview or other control?</title><link>http://forum.strataframe.net/FindPost25489.aspx</link><description>Thanks, Edhy.  Glad you found a solution. ;)</description><pubDate>Thu, 07 Jan 2010 08:38:26 GMT</pubDate><dc:creator>Trent L. Taylor</dc:creator></item><item><title>RE: How to update parent Form Treeview or other control?</title><link>http://forum.strataframe.net/FindPost25483.aspx</link><description>Glad you find the solution.  &lt;br&gt;
&lt;br&gt;
Also take a look at the BO.GetEnumerable() which allow you to loop the BO records in a better fashion than the DO WHILE.  Search the forums for GetEnumerable() samples and also the SF help file.</description><pubDate>Tue, 05 Jan 2010 08:00:08 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: How to update parent Form Treeview or other control?</title><link>http://forum.strataframe.net/FindPost25482.aspx</link><description>Dear All,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I solved, just using this code:&amp;nbsp; CType(StrataFrameApplication.MainForm, FrmMain).LoadMsg()&amp;nbsp;, It's work.</description><pubDate>Tue, 05 Jan 2010 06:54:20 GMT</pubDate><dc:creator>Amy Tai</dc:creator></item><item><title>RE: How to update parent Form Treeview or other control?</title><link>http://forum.strataframe.net/FindPost25481.aspx</link><description>Hi Edhy,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thank you for you help! the code for&amp;nbsp; the LoadMsg and also the code for the BO event&amp;nbsp; as bellow. I think the main problem is how to refresh the parentform control through chilform. If the FrmMain Activated, I call the LoadMsg on the FrmMain treeview data refreshed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Sub SystemMsgBO_ServerDataChanged(ByVal e As System.Data.SqlClient.SqlNotificationEventArgs) Handles Me.ServerDataChanged&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Show the query information to make sure it had been executed&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox(e.Info.ToString() &amp;amp; ControlChars.CrLf &amp;amp; e.Source.ToString() &amp;amp; ControlChars.CrLf &amp;amp; e.Type.ToString())&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FrmMain.LoadMsg()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/P&gt;&lt;P&gt;'the following code in FrmMain&lt;BR&gt;#Region "Load MessageTree"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub LoadMsg()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Establish Locals&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim loMsgNode As TreeNode&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Clear the tree&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CheckedTreeView2.Nodes.Clear()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim MyMsgBo As New SystemMsgTitleBO&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim loParentID As String&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyMsgBo.FillDataTable("select * from SystemMessageTitle" )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Cycle through all of the parent records&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If MyMsgBo.MoveFirst() Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Do&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Create the new root node&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loMsgNode = New TreeNode(MyMsgBo.MsgCategory)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loParentID = MyMsgBo.MsgCategory&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Load any children nodes&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LoadMsgChildNodes(loParentID, loMsgNode)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.CheckedTreeView2.Nodes.Add(loMsgNode)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop While MyMsgBo.MoveNext()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Expand and show the last node&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.CheckedTreeView2.ExpandAll()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.CheckedTreeView2.SelectedNode = CheckedTreeView2.Nodes(0)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Private Sub LoadMsgChildNodes(ByVal ParentID As String, ByVal ParentNode As TreeNode)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Establish Locals&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim loMsgNode As TreeNode&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Load the child records&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim loChildMsgBO As New SystemMsgBO&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loChildMsgBO.FillDataTable("select * from SystemMessage where MsgCategory='" &amp;amp; ParentID &amp;amp; "' and postto='All' or postto='" &amp;amp; SecurityBasics.CurrentUser.UserName &amp;amp; "'")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Cycle through the child nodes&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If loChildMsgBO.MoveFirst() Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Do&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Create the node&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loMsgNode = New TreeNode(loChildMsgBO.MsgDetail)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loMsgNode.Tag = loChildMsgBO.MsgCategory&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Add to parent nodes&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ParentNode.Nodes.Add(loMsgNode)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop While loChildMsgBO.MoveNext()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '-- Clean Up&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loChildMsgBO.Dispose()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;BR&gt;#End Region</description><pubDate>Tue, 05 Jan 2010 02:55:42 GMT</pubDate><dc:creator>Amy Tai</dc:creator></item><item><title>RE: How to update parent Form Treeview or other control?</title><link>http://forum.strataframe.net/FindPost25476.aspx</link><description>[quote][b]Amy Tai (01/04/2010)[/b][hr]... yes, just what you said. but my problem is the treeview data not update on the screen. I had refresh it but nothing changed until I click the button on the mainform when it activate . If i call the button (LoadMsg) in BO directly, it don’t work. &lt;br&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;[/quote]&lt;br&gt;
Hi Amy,&lt;br&gt;
The refresh have to happen in the form where the treview is, not in the BO.  So just to be clear:&lt;br&gt;
1. You have a form with a treeview and a BO instance with the data for the treeview.&lt;br&gt;
2. You setup the Broker service and in the BO instance in the form, you receive notification of data changes.&lt;br&gt;
3. In the event where this notification is receive, you then call the LoadMsg method in the form to refresh your treeview.&lt;br&gt;
&lt;br&gt;
If the above is correct, please post the code for the LoadMsg and also the code for the BO event where the SQL notification is received.&lt;br&gt;</description><pubDate>Mon, 04 Jan 2010 09:08:45 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: How to update parent Form Treeview or other control?</title><link>http://forum.strataframe.net/FindPost25475.aspx</link><description>Hi Edhy,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; yes, just what you said. but my problem is the treeview data not update on the screen. I had refresh it but nothing changed until I click the button on the mainform when it activate . If i call the button (LoadMsg) in BO directly, it don’t work. &lt;BR&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&amp;nbsp;</description><pubDate>Mon, 04 Jan 2010 09:02:59 GMT</pubDate><dc:creator>Amy Tai</dc:creator></item><item><title>RE: How to update parent Form Treeview or other control?</title><link>http://forum.strataframe.net/FindPost25474.aspx</link><description>Hi Amy,&lt;br&gt;
&lt;br&gt;
I have not used SQL Broker services yet but I believe all you have to do is after you get your notification, fill up the BO that is loading the Treeview and then refresh the Treeview.</description><pubDate>Mon, 04 Jan 2010 08:28:36 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: How to update parent Form Treeview or other control?</title><link>http://forum.strataframe.net/FindPost25471.aspx</link><description>Hi Trent &amp;amp; Les,&lt;/P&gt;&lt;P&gt;&amp;nbsp; Thanks your respond.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp; I already enabled SQL Broker service and receive the query notifications from SQL Server in BO ServerDataChange Event, So I want to refresh the treeview (in Mainform ), I do that but found the treeview data not updated.&lt;BR&gt;&amp;nbsp;&amp;nbsp; I want to refresh treeview data in BO ServerDataChange Event directly, and I have a procdure name LoadMsg() in MainForm to populate the treeview data. My questions is: Can I call LoadMsg() in BO directly to refresh treeview? or need using other method to refresh parentForm treeview data?</description><pubDate>Mon, 04 Jan 2010 01:33:05 GMT</pubDate><dc:creator>Amy Tai</dc:creator></item><item><title>RE: How to update parent Form Treeview or other control?</title><link>http://forum.strataframe.net/FindPost25470.aspx</link><description>Dear Amy,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; My question is the same as Trent's: Do you want your program to detect a change in the SQL tables made by another user and update the treeview automatically, or do you want to refresh the treeview when you make changes to the table from within your own program?&lt;/P&gt;&lt;P&gt;Les</description><pubDate>Sun, 03 Jan 2010 20:01:34 GMT</pubDate><dc:creator>Les Pinter</dc:creator></item><item><title>RE: How to update parent Form Treeview or other control?</title><link>http://forum.strataframe.net/FindPost25469.aspx</link><description>Just so that understand what you are trying to accomplish, are you trying to use the SQL Server query notifications to alert you of a change within your SQL Query so that you can refresh your treeview?</description><pubDate>Sun, 03 Jan 2010 17:54:44 GMT</pubDate><dc:creator>Trent L. Taylor</dc:creator></item></channel></rss>