The following Method fills a TreeView with the DataSet (and its Tables)
Strucure.
You mut call the Method with a reference to your exsisting TreeView
Control, DataSet to use and a String Array with Branch/Node Strings to use.
In my Projects these Strings are Language dependent and must be filled
beforhand.
OnFillTreeViewD ataSet(ref TreeViewDataSet , ref dset_MainFrame, ref
sa_TreeViewData Set);
Hope this helps as a starter.
Mark Johnson, Berlin Germany
mj*****@mj10777 .de
private void OnFillTreeViewD ataSet(ref TreeView ref_treeView, ref DataSet
dset_MainFrame, ref String[] sa_treeView)
{
string s_DataSet="",s_ TableName="", s_FieldName="";
//---------------------------------------------------------------
string s_DataConnectio ns="";
string s_AmountFields= "",s_AmountRows ="",s_AmountTab les="";
s_DataConnectio ns = sa_treeView[1]; // "Data Connections";
s_AmountFields = sa_treeView[4]; // "Columns";
s_AmountRows = sa_treeView[5]; // "Rows";
if (dset_MainFrame .Tables.Count == 1)
s_AmountTables = sa_treeView[2]; // "Table";
else
s_AmountTables = sa_treeView[3]; // "Tables";
//---------------
// Display a wait cursor while the TreeNodes are being created.
Cursor.Current = Cursors.WaitCur sor;
// Suppress repainting the TreeView until all the objects have been
created.
ref_treeView.Be ginUpdate();
// Clear the TreeView each time the method is called.
ref_treeView.No des.Clear();
// Net.Framework.C ompact does not support new TreeNode(s_Data Set,2,1);
// - thus we must do it per hand in 5 Steps instead of 1, but it should
work on both Systems
TreeNode tn_Node=null;
for (int i_DataSet=0;i_D ataSet<1;i_Data Set++)
{
tn_Node = new TreeNode(); // Step 1 - only this
is possible the NET Framework.Compa ct
tn_Node.Text = s_DataConnectio ns; // Step 2 - we really
don't need s_DataSet !
tn_Node.ImageIn dex = 0; // Step 3 - Not
Selected - DataConnection. gif
tn_Node.Selecte dImageIndex = 0; // Step 4 - Is
Selected - DataConnection. gif
ref_treeView.No des.Add(tn_Node );
if (dset_MainFrame .Namespace != sa_treeView[0])
{
s_DataSet = dset_MainFrame. Namespace;
tn_Node = new TreeNode();
tn_Node.Text = s_DataSet;
tn_Node.ImageIn dex = 1; // Does this work ? -
DataBase_Closed .gif
tn_Node.Selecte dImageIndex = 2; // Does this work ? -
DataBase_Open.g if
ref_treeView.No des[i_DataSet].Nodes.Add(tn_N ode);
tn_Node = new TreeNode();
tn_Node.Text =
dset_MainFrame. Tables.Count.To String()+" "+s_AmountTable s;
tn_Node.ImageIn dex = 8; // - NOTE12.ICO
tn_Node.Selecte dImageIndex = 8; // - NOTE12.ICO
ref_treeView.No des[i_DataSet].Nodes[i_DataSet].Nodes.Add(tn_N ode);
for(int i_Table=0;i_Tab le<dset_MainFra me.Tables.Count ;i_Table++)
{
DataTable dt_Table = dset_MainFrame. Tables[i_Table];
s_TableName = dt_Table.TableN ame;
tn_Node = new TreeNode();
tn_Node.Text = s_TableName;
tn_Node.ImageIn dex = 6; // Does this work ?
tn_Node.Selecte dImageIndex = 5; // Does this work ?
ref_treeView.No des[i_DataSet].Nodes[i_DataSet].Nodes[i_DataSet].Nodes.Add(tn
_Node);
tn_Node = new TreeNode();
tn_Node.Text = dt_Table.Column s.Count+"
"+s_AmountField s+", "+dt_Table.Rows .Count.ToString ()+" "+s_AmountR ows;
tn_Node.ImageIn dex = 9; // - NOTE12.ICO
tn_Node.Selecte dImageIndex = 9; // - NOTE12.ICO
ref_treeView.No des[i_DataSet].Nodes[i_DataSet].Nodes[i_DataSet].Nodes[i_Tabl
e].Nodes.Add(tn_N ode);
for(int i_Fields=0;i_Fi elds<dt_Table.C olumns.Count;i_ Fields++)
{
s_FieldName = dt_Table.Column s[i_Fields].ColumnName; // May
not work > 0
tn_Node = new TreeNode();
tn_Node.Text = s_FieldName;
tn_Node.ImageIn dex = 7; // Column.ico
tn_Node.Selecte dImageIndex = 7; // Column.ico
ref_treeView.No des[i_DataSet].Nodes[i_DataSet].Nodes[i_DataSet].Nodes[i_Tabl
e].Nodes[i_DataSet].Nodes.Add(tn_N ode);
tn_Node = new TreeNode();
tn_Node.Text =
dt_Table.Column s[i_Fields].DataType.ToStr ing();
tn_Node.ImageIn dex = 10; // - NOTE12.ICO
tn_Node.Selecte dImageIndex = 10; // - NOTE12.ICO
ref_treeView.No des[i_DataSet].Nodes[i_DataSet].Nodes[i_DataSet].Nodes[i_Tabl
e].Nodes[i_DataSet].Nodes[i_Fields].Nodes.Add(tn_N ode);
} // for(int i_Fields=0;i_Fi elds<dt_Table.C olumns.Count;i_ Fields++)
} // for(int i_Table=0;i_Tab le<dset_MainFra me.Tables.Count ;i_Table++)
} // if (dset_MainFrame .Namespace != sa_treeView[0])
} // for (int i_DataSet=0;i_D ataSet<1;i_Data Set++)
// Open all the nodes
ref_treeView.Ex pandAll();
// Begin repainting the TreeView.
ref_treeView.En dUpdate();
if (ref_treeView == TreeViewDataSet )
{ // this is TreeView and DataTable specific !
if (dtable_MainFra me00 != null)
i_MainFrame00So rtCol = 0; // Rebuild ListView if Table is filled
} // if (treeViewDataSe t == TreeViewDataSet )
// Reset the cursor to the default for all controls.
Cursor.Current = Cursors.Default ;
//---------------
} // private void OnFillTreeViewD ataSet(ref ref_treeView, ref
dset_MainFrame, ref sa_treeView)
#endregion
"Mark Goldin" <ma********@com cast.net> wrote in message
news:Oj******** ******@TK2MSFTN GP11.phx.gbl... Anybody can shart some working samples of using that control on Windows
form?
Thanks