谁能用C#语言C/S架构实现一个树的功能
1、使用C#、WINFORM开发:有一组保存在ArrayList内的项目ID如下:BB11-AAMDP-C01-B034TBB11-AAMDP-C01-B324TBB12...
1、使用C#、WINFORM开发:有一组保存在ArrayList内的项目ID如下:
BB11-AAMDP-C01-B034T
BB11-AAMDP-C01-B324T
BB12-AAMDP-H00-XXXXT
BB12-ASCOP-M00-XXXXT
BB13-ABFCX-C01-A597T
BB13-ABFCP-M00-XXXXT
ID携带的信息如下(“-”不算在内):
1-4位:公司ID
5位:地区ID
6-8位:客户ID
9位:行业ID
10位:产品线ID
11-12位:月份ID
其他:流水号
请根据项目ID生成一颗项目树,树的层级关系如下:
公司
--------地区
----------------客户
------------------------行业
--------------------------------产品线
----------------------------------------月份
------------------------------------------------项目
显示界面如下图:
各位大侠有思路把你们的邮箱告诉我,我给你们把图发过去。谢谢合作。成功还有加分奖励。 展开
BB11-AAMDP-C01-B034T
BB11-AAMDP-C01-B324T
BB12-AAMDP-H00-XXXXT
BB12-ASCOP-M00-XXXXT
BB13-ABFCX-C01-A597T
BB13-ABFCP-M00-XXXXT
ID携带的信息如下(“-”不算在内):
1-4位:公司ID
5位:地区ID
6-8位:客户ID
9位:行业ID
10位:产品线ID
11-12位:月份ID
其他:流水号
请根据项目ID生成一颗项目树,树的层级关系如下:
公司
--------地区
----------------客户
------------------------行业
--------------------------------产品线
----------------------------------------月份
------------------------------------------------项目
显示界面如下图:
各位大侠有思路把你们的邮箱告诉我,我给你们把图发过去。谢谢合作。成功还有加分奖励。 展开
5个回答
展开全部
public class CA{
private String name;
public String getName() {
return name;}
public void setName(String newname){
name = newname;}
}
public static void main(String[] args)
{
ArrayList<CA> CAs = new ArrayList<CA>();
CA c1= new CA();c1=BB11-AAMDP-C01-B034T
CA c2 = new CA();c2=BB11-AAMDP-C01-B034T
CA c3 = new CA();
c3=BB11-AAMDP-C01-B034T
CAs.add(s1);
CAs.add(s2);
CAs.add(s3);
双引号用不成 用~ (手写半天一提交没有 不想写了写个大概)
treeView1.Nodes.Add(~公司信息~);
treeView1.Nodes[1].Nodes.Add(~公司ID:~ + CAs[1].ToString().Substring(0,CAs[1].ToString().LastIndexOf('-') -1);
treeView1.Nodes[1].Nodes[1].Nodes.Add(~地区ID:~ + CAs[2].ToString().Substring(0,CAs[1].ToString().LastIndexOf('-') -1);
编号长是一定的 最简单就for
要不就用递归吧 TreeNode treeView1
#region 回收站
//回收站
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
if (treeView1.Nodes.Count > 0)
treeView1.Nodes.RemoveAt(0);
string driver = comboBox1.SelectedItem.ToString();
string path = driver + ~Recycled~;
DriveInfo d = new DriveInfo(driver);
if (d.IsReady == false)
{
MessageBox.Show(~该驱动器不可用!~);
return;
}
if (d.DriveFormat == ~NTFS~)
path = driver + ~Recycler~;
string[] dirs = Directory.GetDirectories(path);
string[] files = Directory.GetFiles(path);
treeView1.Nodes.Add(new TreeNode(path, 1, 1));
foreach (string s in dirs)
{
string name = s.Substring(s.ToString().LastIndexOf('\\') + 1);
TreeNode tn = new TreeNode(name, 2, 0);
treeView1.Nodes[0].Nodes.Add(tn);
}
foreach (string s in files)
{
string name = s.Substring(s.LastIndexOf('\\') + 1);
TreeNode tn = new TreeNode(name, 3, 3);
treeView1.Nodes[0].Nodes.Add(tn);
}
}
catch
{
MessageBox.Show(~未找到回收站!~);
return;
}
}
#endregion
private String name;
public String getName() {
return name;}
public void setName(String newname){
name = newname;}
}
public static void main(String[] args)
{
ArrayList<CA> CAs = new ArrayList<CA>();
CA c1= new CA();c1=BB11-AAMDP-C01-B034T
CA c2 = new CA();c2=BB11-AAMDP-C01-B034T
CA c3 = new CA();
c3=BB11-AAMDP-C01-B034T
CAs.add(s1);
CAs.add(s2);
CAs.add(s3);
双引号用不成 用~ (手写半天一提交没有 不想写了写个大概)
treeView1.Nodes.Add(~公司信息~);
treeView1.Nodes[1].Nodes.Add(~公司ID:~ + CAs[1].ToString().Substring(0,CAs[1].ToString().LastIndexOf('-') -1);
treeView1.Nodes[1].Nodes[1].Nodes.Add(~地区ID:~ + CAs[2].ToString().Substring(0,CAs[1].ToString().LastIndexOf('-') -1);
编号长是一定的 最简单就for
要不就用递归吧 TreeNode treeView1
#region 回收站
//回收站
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
if (treeView1.Nodes.Count > 0)
treeView1.Nodes.RemoveAt(0);
string driver = comboBox1.SelectedItem.ToString();
string path = driver + ~Recycled~;
DriveInfo d = new DriveInfo(driver);
if (d.IsReady == false)
{
MessageBox.Show(~该驱动器不可用!~);
return;
}
if (d.DriveFormat == ~NTFS~)
path = driver + ~Recycler~;
string[] dirs = Directory.GetDirectories(path);
string[] files = Directory.GetFiles(path);
treeView1.Nodes.Add(new TreeNode(path, 1, 1));
foreach (string s in dirs)
{
string name = s.Substring(s.ToString().LastIndexOf('\\') + 1);
TreeNode tn = new TreeNode(name, 2, 0);
treeView1.Nodes[0].Nodes.Add(tn);
}
foreach (string s in files)
{
string name = s.Substring(s.LastIndexOf('\\') + 1);
TreeNode tn = new TreeNode(name, 3, 3);
treeView1.Nodes[0].Nodes.Add(tn);
}
}
catch
{
MessageBox.Show(~未找到回收站!~);
return;
}
}
#endregion
展开全部
之所以为树,必需满足树的结构,也就是要找一个根节点,然后每个叶节点有父节点,你的数据目前还没有成为此结构,建议你把数据存入DataTable,每一个节点都是一行,然后增加一个字段叫做parentID,用来存放父节点,根节点的可以用0,建立此结构以后,直接绑定TreeView就自动实现树结构了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有思路,但不知最终实现后的效果(有效果图最好),给个要求,我来实现
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
个人觉得这是一个字符串截取然后验证比较后生成树的问题。
很符合树的要求,
很符合树的要求,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你给我项目案例我给你做
说说你要什么,我这说不定有
不过大部分都是sql2005的
还有JSP的
最后告诉你一点,我们是有团队的哦~~
有兴趣百度Hi联系我
说说你要什么,我这说不定有
不过大部分都是sql2005的
还有JSP的
最后告诉你一点,我们是有团队的哦~~
有兴趣百度Hi联系我
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询