PDA

View Full Version : سوال: درخواست راهنمایی در مورد advtree در کامپوننت های DevComponent



eshaghrahimy
چهارشنبه 22 خرداد 1392, 08:11 صبح
با سلام لطفا منو راهنمایی کنید که چطور advtree را می توان به شکل زیر تنظیم کرد که به هر نود بتوان چند ستون اختصاص داد و اطلاعات را در آن ریخت

younes221
چهارشنبه 22 خرداد 1392, 18:18 عصر
سلام ؛ در Node خاصیتی اره به نام NodesColumns که این خاصیت یک متد داره به نام Add که با استفاده از این متد میتونی به Node مورد نظر ستونی را اضافه کنی .

مثال :


private void button1_Click(object sender, EventArgs e)
{
advTree1.Nodes.Clear();
advTree1.Nodes.Add(new DevComponents.AdvTree.Node("شخص اول"));
advTree1.Nodes.Add(new DevComponents.AdvTree.Node("شخص دوم"));
advTree1.Nodes.Add(new DevComponents.AdvTree.Node("شخص سوم"));

for (int counter = 0; counter < advTree1.Nodes.Count; counter++)
{
advTree1.Nodes[counter].NodesColumns.Add(new DevComponents.AdvTree.ColumnHeader("نام"));
advTree1.Nodes[counter].NodesColumns.Add(new DevComponents.AdvTree.ColumnHeader("نام خانوادگی"));
advTree1.Nodes[counter].NodesColumns.Add(new DevComponents.AdvTree.ColumnHeader("سن"));

advTree1.Nodes[counter].NodesColumns[0].Width.Absolute = 40;
advTree1.Nodes[counter].NodesColumns[1].Width.Absolute = 100;
advTree1.Nodes[counter].NodesColumns[2].Width.Absolute = 80;
}
advTree1.Nodes[0].Nodes.Add(new DevComponents.AdvTree.Node());
advTree1.Nodes[0].Nodes[0].Cells[0].Text = "ایوب";
advTree1.Nodes[0].Nodes[0].Cells.Add(new DevComponents.AdvTree.Cell("خورشیدی"));
advTree1.Nodes[0].Nodes[0].Cells.Add(new DevComponents.AdvTree.Cell("10"));

advTree1.Nodes[1].Nodes.Add(new DevComponents.AdvTree.Node());
advTree1.Nodes[1].Nodes[0].Cells[0].Text = "مسلم";
advTree1.Nodes[1].Nodes[0].Cells.Add(new DevComponents.AdvTree.Cell("امرایی"));
advTree1.Nodes[1].Nodes[0].Cells.Add(new DevComponents.AdvTree.Cell("19"));

advTree1.Nodes[2].Nodes.Add(new DevComponents.AdvTree.Node());
advTree1.Nodes[2].Nodes[0].Cells[0].Text = "رضا";
advTree1.Nodes[2].Nodes[0].Cells.Add(new DevComponents.AdvTree.Cell("امرایی"));
advTree1.Nodes[2].Nodes[0].Cells.Add(new DevComponents.AdvTree.Cell("35"));
}

eshaghrahimy
چهارشنبه 22 خرداد 1392, 22:01 عصر
راهی داره که بتونیم به صورت مستقیم یک دیتا تیبل را به یک نود بدیم بدون استفاده از حلقه for یعنی روی هر نودی که کلیک کردیم یک جدول زیر اون نود باز بشه و به کاربر نشان داده بشه
ممنون از راهنماییتون

younes221
پنج شنبه 23 خرداد 1392, 10:29 صبح
دوست عزیز در این فروم راهنمایی می کنیم نه اینکه بیایم واستون کد رو کامل بنویسیم. البته ببخشید اینطوری حرف می زنم واسه خودتون میگم .با استفاده از همون کدهایی که واستون نوشتم می تونستید این سوال رو به راحتی حل کنید :



Dim cs As String = "Data Source=(LocalDB)\v11.0;AttachDbFilename=F:\C#‎ \My Sample Projects\DataBase\Sample1\Sample1\bin\Debug\AppDat aBase.mdf;Integrated Security=True;Connect Timeout=30"
Dim myConnection As SqlConnection = New SqlConnection(cs)
Dim DA As SqlDataAdapter = New SqlDataAdapter("Select * from Person", myConnection)
If (myConnection.State <> ConnectionState.Open) Then
myConnection.Open()
End If
Dim dt As DataTable = New DataTable()
DA.Fill(dt)
Me.DataGridView1.DataSource = dt

myConnection.Close()

'--------------------------------------

Me.AdvTree1.Nodes.Clear()
Me.AdvTree1.Nodes.Add(New DevComponents.AdvTree.Node("جدول شخص"))
For counter As Byte = 0 To DataGridView1.Columns.Count - 1
AdvTree1.Nodes(0).NodesColumns.Add(New DevComponents.AdvTree.ColumnHeader(DataGridView1.C olumns(counter).HeaderText))
AdvTree1.Nodes(0).NodesColumns(counter).Width.Abso lute = 90
Next

For counter As UInteger = 0 To Me.DataGridView1.Rows.Count - 1 Step 1
Me.AdvTree1.Nodes(0).Nodes.Add(New DevComponents.AdvTree.Node())
Me.AdvTree1.Nodes(0).Nodes(counter).Cells(0).Text = Me.DataGridView1.Rows(counter).Cells(0).Value.ToSt ring()
For counter2 As Integer = 1 To Me.DataGridView1.Columns.Count - 1
Me.AdvTree1.Nodes(0).Nodes(counter).Cells.Add(New DevComponents.AdvTree.Cell(Me.DataGridView1.Rows(c ounter).Cells(counter2).Value.ToString()))
Next
Next

عکس نتیجه : sssss.jpg - 85 KB (http://uplod.ir/pk6g1fhd8o61/sssss.jpg.htm)