테이블의 각 파일에 대한 파일 경로가 포함 된 데이터베이스 테이블의 열이 있습니다. C#에서 트리 뷰를 만들면 데이터베이스의 파일 경로 열을 모방합니다. 여기데이터베이스 열의 파일 경로에서 트리 뷰를 만드는 방법
은 샘플 파일 경로 열이 열의 모습입니다 :
jsmith/project1/hello.cs
jsmith/project1/what.cs
jwilliams/project2/hello.cs
테이블의 각 파일에 대한 파일 경로가 포함 된 데이터베이스 테이블의 열이 있습니다. C#에서 트리 뷰를 만들면 데이터베이스의 파일 경로 열을 모방합니다. 여기데이터베이스 열의 파일 경로에서 트리 뷰를 만드는 방법
은 샘플 파일 경로 열이 열의 모습입니다 :
jsmith/project1/hello.cs
jsmith/project1/what.cs
jwilliams/project2/hello.cs
좀 예를했습니다. 나는 그것을 테스트하고 잘 작동합니다.
나는 데이터베이스 시뮬레이션 클래스 MYDATABASE을했습니다 참고 것을 : 당신이 필요하지는 것으로, 여기
내가 내 auxiliar 코드를 붙여
public void CreateTreeView()
{
TreeView myTreeview = new TreeView();
myTreeview.Dock = DockStyle.Fill;
this.Controls.Add(myTreeview);
foreach (string field in MyDataBase.FieldsInMyColumn())
{
string[] elements = field.Split('/');
TreeNode parentNode = null;
for (int i = 0; i < elements.Length - 1; ++i)
{
if (parentNode == null)
{
bool exits = false;
foreach (TreeNode node in myTreeview.Nodes)
{
if (node.Text == elements[i])
{
exits = true;
parentNode = node;
}
}
if (!exits)
{
TreeNode childNode = new TreeNode(elements[i]);
myTreeview.Nodes.Add(childNode);
parentNode = childNode;
}
}
else
{
bool exits = false;
foreach (TreeNode node in parentNode.Nodes)
{
if (node.Text == elements[i])
{
exits = true;
parentNode = node;
}
}
if (!exits)
{
TreeNode childNode = new TreeNode(elements[i]);
parentNode.Nodes.Add(childNode);
parentNode = childNode;
}
}
}
if (parentNode != null)
{
parentNode.Nodes.Add(elements[elements.Length - 1]);
}
}
}
편집하지만, 내 코드를 이해하거나 직접 복사/붙여 넣기를 시도 할 수 있습니다.
public Form1()
{
InitializeComponent();
MyDataBase.AddField("jsmith/project1/hello.cs");
MyDataBase.AddField("jsmith/project1/what.cs");
MyDataBase.AddField("jsmith/project2/hello.cs");
CreateTreeView();
}
Form1에에서
생성자는 트리보기가 같이 방법을 추가하시기 바랍니다 수 있습니다. – AxelEckenberger
왜 downvote? 나는 그것의 나쁜 질문을 생각하지 않는다 ... 제출자는 트리 뷰가 어떻게 보일 것인가를 제공하지 않았다. 왜냐하면 상당히 명백해야하기 때문이다. :) – Polaris878
Javier Morillo가 아래 답변에서했던 것처럼, 열의 "원시 데이터"를 목록으로 액세스 할 수 있습니다. 그렇지 않은 경우 "원시 데이터"는 어떤 형식입니까? 귀하의 예제에서 "원시 데이터"가 알파 정렬되어 있다고 가정 할 수 있습니까? 마지막으로, 파일 경로의 "깊이"가 임의로 깊다고 가정 할 수 있습니까? 예에서와 같이 각 파일 경로의 깊이는 # 3으로 고정되어 있습니까? –
BillW