Click here to Skip to main content
15,916,945 members
Home / Discussions / C#
   

C#

 
GeneralRe: USB (removable) drives in listbox Pin
simplicitylabs8-May-07 10:19
simplicitylabs8-May-07 10:19 
GeneralRe: USB (removable) drives in listbox Pin
MatrixCoder8-May-07 10:40
MatrixCoder8-May-07 10:40 
GeneralRe: USB (removable) drives in listbox Pin
simplicitylabs8-May-07 12:06
simplicitylabs8-May-07 12:06 
GeneralRe: USB (removable) drives in listbox Pin
simplicitylabs8-May-07 12:16
simplicitylabs8-May-07 12:16 
AnswerRe: USB (removable) drives in listbox Pin
AFSEKI8-May-07 23:11
AFSEKI8-May-07 23:11 
Questionproblem to use TreeView in show Hierarchy data. Pin
hdv2128-May-07 8:52
hdv2128-May-07 8:52 
AnswerRe: problem to use TreeView in show Hierarchy data. Pin
PIEBALDconsult8-May-07 9:51
mvePIEBALDconsult8-May-07 9:51 
AnswerRe: problem to use TreeView in show Hierarchy data. Pin
PIEBALDconsult8-May-07 11:13
mvePIEBALDconsult8-May-07 11:13 
Here's an example I just whipped up. The constructor populates a DataSet with some hierarchical data, and the Form.Load populates a TreeView with it.

There are many other ways this same data could be displayed in the TreeView, which is why there's no "automatic" way. You need to decide how you want your tree to look (this is one of the reasons I use a TreeView much more frequently than a DataGridView).

C#
namespace PlayGround
{
    public partial class Form1 : System.Windows.Forms.Form
    {
        private enum Gender { Male , Female } ;
        private System.Data.DataSet ds = new System.Data.DataSet() ;
            
        public Form1 ( string[] args )
        {
            InitializeComponent() ;
            
            System.Data.DataRow dr ;

            ds.Tables.Add ( new System.Data.DataTable ( "PetType" ) ) ;
            ds.Tables.Add ( new System.Data.DataTable ( "Person" ) ) ;
            ds.Tables.Add ( new System.Data.DataTable ( "Pet" ) ) ;
            
            ds.Tables [ "PetType" ].Columns.Add ( new System.Data.DataColumn ( "Id" , typeof(int) ) ) ;
            ds.Tables [ "PetType" ].Columns.Add ( new System.Data.DataColumn ( "Type" , typeof(string) ) ) ;
            ds.Tables [ "PetType" ].Columns.Add ( new System.Data.DataColumn ( "DisplayColor" , typeof(string) ) ) ;

            ds.Tables [ "Person" ].Columns.Add ( new System.Data.DataColumn ( "Id" , typeof(int) ) ) ;
            ds.Tables [ "Person" ].Columns.Add ( new System.Data.DataColumn ( "Name" , typeof(string) ) ) ;
            ds.Tables [ "Person" ].Columns.Add ( new System.Data.DataColumn ( "Gender" , typeof(string) ) ) ;

            ds.Tables [ "Pet" ].Columns.Add ( new System.Data.DataColumn ( "Id" , typeof(int) ) ) ;
            ds.Tables [ "Pet" ].Columns.Add ( new System.Data.DataColumn ( "PetType" , typeof(int) ) ) ;
            ds.Tables [ "Pet" ].Columns.Add ( new System.Data.DataColumn ( "Owner" , typeof(int) ) ) ;
            ds.Tables [ "Pet" ].Columns.Add ( new System.Data.DataColumn ( "Name" , typeof(string) ) ) ;
            ds.Tables [ "Pet" ].Columns.Add ( new System.Data.DataColumn ( "Gender" , typeof(string) ) ) ;
            ds.Tables [ "Pet" ].Columns.Add ( new System.Data.DataColumn ( "Age" , typeof(int) ) ) ;
            
            ds.Relations.Add ( new System.Data.DataRelation ( "TypeOfPet" , ds.Tables [ "PetType" ].Columns [ "Id" ] , ds.Tables [ "Pet" ].Columns [ "PetType" ] ) ) ;
            ds.Relations.Add ( new System.Data.DataRelation ( "OwnerOfPet" , ds.Tables [ "Person" ].Columns [ "Id" ] , ds.Tables [ "Pet" ].Columns [ "Owner" ] ) ) ;

            dr = ds.Tables [ "PetType" ].NewRow() ;
            dr [ "Id" ] = 0 ;
            dr [ "Type" ] = "Dog" ;
            dr [ "DisplayColor" ] = "Green" ;
            ds.Tables [ "PetType" ].Rows.Add ( dr ) ;

            dr = ds.Tables [ "PetType" ].NewRow() ;
            dr [ "Id" ] = 1 ;
            dr [ "Type" ] = "Cat" ;
            dr [ "DisplayColor" ] = "Blue" ;
            ds.Tables [ "PetType" ].Rows.Add ( dr ) ;

            dr = ds.Tables [ "Person" ].NewRow() ;
            dr [ "Id" ] = 0 ;
            dr [ "Name" ] = "Joe" ;
            dr [ "Gender" ] = Gender.Male ;
            ds.Tables [ "Person" ].Rows.Add ( dr ) ;
 
            dr = ds.Tables [ "Person" ].NewRow() ;
            dr [ "Id" ] = 1 ;
            dr [ "Name" ] = "Mary" ;
            dr [ "Gender" ] = Gender.Female ;
            ds.Tables [ "Person" ].Rows.Add ( dr ) ;
 
            dr = ds.Tables [ "Pet" ].NewRow() ;
            dr [ "Id" ] = 0 ;
            dr [ "PetType" ] = 0 ;
            dr [ "Owner" ] = 0 ;
            dr [ "Name" ] = "Spot" ;
            dr [ "Gender" ] = Gender.Male ;
            dr [ "Age" ] = 2 ;
            ds.Tables [ "Pet" ].Rows.Add ( dr ) ;
 
            dr = ds.Tables [ "Pet" ].NewRow() ;
            dr [ "Id" ] = 1 ;
            dr [ "PetType" ] = 0 ;
            dr [ "Owner" ] = 0 ;
            dr [ "Name" ] = "Rover" ;
            dr [ "Gender" ] = Gender.Male ;
            dr [ "Age" ] = 5 ;
            ds.Tables [ "Pet" ].Rows.Add ( dr ) ;
 
            dr = ds.Tables [ "Pet" ].NewRow() ;
            dr [ "Id" ] = 2 ;
            dr [ "PetType" ] = 1 ;
            dr [ "Owner" ] = 0 ;
            dr [ "Name" ] = "Fluffy" ;
            dr [ "Gender" ] = Gender.Female ;
            dr [ "Age" ] = 3 ;
            ds.Tables [ "Pet" ].Rows.Add ( dr ) ;
 
            dr = ds.Tables [ "Pet" ].NewRow() ;
            dr [ "Id" ] = 3 ;
            dr [ "PetType" ] = 1 ;
            dr [ "Owner" ] = 1 ;
            dr [ "Name" ] = "Gilligan" ;
            dr [ "Gender" ] = Gender.Male ;
            dr [ "Age" ] = 4 ;
            ds.Tables [ "Pet" ].Rows.Add ( dr ) ;
 
            dr = ds.Tables [ "Pet" ].NewRow() ;
            dr [ "Id" ] = 4 ;
            dr [ "PetType" ] = 1 ;
            dr [ "Owner" ] = 1 ;
            dr [ "Name" ] = "Ginger" ;
            dr [ "Gender" ] = Gender.Female ;
            dr [ "Age" ] = 4 ;
            ds.Tables [ "Pet" ].Rows.Add ( dr ) ;
 
            return ;
        }

        private void Form1_Load ( object sender , System.EventArgs e )
        {
            System.Windows.Forms.TreeNode person ;
            System.Windows.Forms.TreeNode pettype ;
            System.Windows.Forms.TreeNode pet ;
            
            foreach ( System.Data.DataRow personrow in ds.Tables [ "Person" ].Rows )
            {
                person = new System.Windows.Forms.TreeNode ( string.Format ( "{0} {1} ({2})" , (int) personrow [ "Id" ] , (string) personrow [ "Name" ] , personrow [ "Gender" ] .ToString() ) ) ; 
                person.Tag = personrow ;

                    foreach ( System.Data.DataRow pettyperow in ds.Tables [ "PetType" ].Rows )
                    {
                        pettype = new System.Windows.Forms.TreeNode ( (string) pettyperow [ "Type" ] + "s" ) ; 
                        pettype.Tag = pettyperow ;
                        
                        pettype.ForeColor = System.Drawing.Color.FromName ( (string) pettyperow [ "DisplayColor" ] ) ;
                        
                        ds.Tables [ "Pet" ].DefaultView.RowFilter = string.Format ( "Owner={0} and PetType={1}" , personrow [ "Id" ] , pettyperow [ "Id" ] ) ;
                
                        foreach ( System.Data.DataRowView petrow in ds.Tables [ "Pet" ].DefaultView )
                        {
                            pet = new System.Windows.Forms.TreeNode ( string.Format ( "{0} {1} {2} year old {3}" , (int) petrow [ "Id" ] , (string) petrow [ "Name" ] , (int) petrow [ "Age" ] , petrow [ "Gender" ] .ToString() ) ) ; 
                            pet.Tag = petrow ;

                            pet.ForeColor = pettype.ForeColor ;
                            pettype.Nodes.Add ( pet ) ;
                        }
                                                
                        person.Nodes.Add ( pettype ) ;
                    }

                treeView1.Nodes.Add ( person ) ;
            }
        }
   }
}

QuestionProblems with GUI in Visual Studio C# .Net Pin
zeeShan anSari8-May-07 8:05
zeeShan anSari8-May-07 8:05 
AnswerRe: Problems with GUI in Visual Studio C# .Net Pin
Luc Pattyn8-May-07 8:25
sitebuilderLuc Pattyn8-May-07 8:25 
GeneralRe: Problems with GUI in Visual Studio C# .Net Pin
zeeShan anSari9-May-07 9:54
zeeShan anSari9-May-07 9:54 
QuestionRedrawing Screen Pin
rahvyn68-May-07 7:45
rahvyn68-May-07 7:45 
QuestionScanning all files in a computer Pin
sharpiesharpie8-May-07 7:09
sharpiesharpie8-May-07 7:09 
AnswerRe: Scanning all files in a computer Pin
Dave Kreskowiak8-May-07 7:34
mveDave Kreskowiak8-May-07 7:34 
GeneralRe: Scanning all files in a computer Pin
sharpiesharpie8-May-07 11:27
sharpiesharpie8-May-07 11:27 
GeneralRe: Scanning all files in a computer Pin
Luc Pattyn8-May-07 12:16
sitebuilderLuc Pattyn8-May-07 12:16 
GeneralRe: Scanning all files in a computer Pin
Dave Kreskowiak8-May-07 17:29
mveDave Kreskowiak8-May-07 17:29 
QuestionHow to determine primary columns in a table Pin
Naveed Kamboh8-May-07 6:32
Naveed Kamboh8-May-07 6:32 
AnswerRe: How to determine primary columns in a table Pin
Giorgi Dalakishvili8-May-07 7:15
mentorGiorgi Dalakishvili8-May-07 7:15 
QuestionUnable to use decimal in "if" statement. Pin
Goalie358-May-07 5:43
Goalie358-May-07 5:43 
AnswerRe: Unable to use decimal in "if" statement. Pin
ccitt8-May-07 5:47
ccitt8-May-07 5:47 
AnswerRe: Unable to use decimal in "if" statement. Pin
Guffa8-May-07 5:55
Guffa8-May-07 5:55 
Questionloop dictionary Pin
arkiboys8-May-07 5:39
arkiboys8-May-07 5:39 
AnswerRe: loop dictionary Pin
Judah Gabriel Himango8-May-07 5:57
sponsorJudah Gabriel Himango8-May-07 5:57 
AnswerRe: loop dictionary Pin
Martin#8-May-07 6:06
Martin#8-May-07 6:06 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.