treeview添加节点后不显示出来?怎么解决?

marxch 2012-05-28 06:29:14
主窗口初始化时能显示:

public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
webBrowser.Navigate("http://www.baidu.com");
GetTreeViewData();//获取数据在treeview里显示
}
}

添加节点在另外一个窗口,添加完成后:

MainForm mm = new MainForm();
mm.GetTreeViewData();

问题是主窗口不能显示刚才添加的节点,请问是怎么回事?
...全文
630 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
__天涯寻梦 2012-05-30
  • 打赏
  • 举报
回复
MainForm mm = new MainForm();
mm.GetTreeViewData();

你要找到已经打开的那个 MainForm ,而不是新建一个 MainForm ,调用那个已经打开的 MainForm 的 GetTreeViewData() 方法。
marxch 2012-05-30
  • 打赏
  • 举报
回复
UP

谁帮忙解决一下啊?
marxch 2012-05-29
  • 打赏
  • 举报
回复
private void AddTreeViewTarsk(object[][] AllTreeView)
{
for (int i = 0; i < AllTreeView.GetLength(0); i++)
{
if ((int)AllTreeView[i][2] > -1)//不是根节点,则
{
foreach (TreeNode node in treeView.Nodes)
{
if ((int)AllTreeView[i][2] == int.Parse((string)node.Tag))
{
TreeNode myTreeNode = new TreeNode();
myTreeNode.Text = (string)AllTreeView[i][0];
myTreeNode.Tag = AllTreeView[i][3].ToString();
myTreeNode.Name = AllTreeView[i][2].ToString();
node.Nodes.Add(myTreeNode);
this.treeView.ExpandAll();
}
}
}
}
}

private void AddTreeViewGroup(object[][] AllTreeView)
{

int i = AllTreeView.GetLength(0);
for (i = 0; i < AllTreeView.GetLength(0); i++)
{
if((int)AllTreeView[i][2]==-1)
{
TreeNode myTreeNode = new TreeNode();
myTreeNode.Text = (string)AllTreeView[i][0];
myTreeNode.Tag = AllTreeView[i][3].ToString();
myTreeNode.Name = AllTreeView[i][2].ToString();
this.treeView.Nodes.Add(myTreeNode);
this.treeView.ExpandAll();
}
}

}
marxch 2012-05-29
  • 打赏
  • 举报
回复
private void GetTreeViewData()
{
//加载分组和任务
treeView.Nodes.Clear();
object[][] AllTreeView = (object[][])GetAllTreeViewData();//获取需要加载的数据
AddTreeViewGroup((object[][])AllTreeView);
AddTreeViewTarsk((object[][])AllTreeView);
treeView.ExpandAll();
}

另外,mm.Show()的话,又打开了一个主窗口,只是这个新打开的主窗口显示了刚加进去的新节点.而已有的主窗口还在....

郁闷.
言多必失 2012-05-28
  • 打赏
  • 举报
回复
GetTreeViewData();//获取数据在treeview里显示
怎么写的,另外

MainForm mm = new MainForm();
mm.GetTreeViewData();


mm.Show(); 看看
marxch 2012-05-28
  • 打赏
  • 举报
回复
哪位大大能帮忙解决一下?小弟是新人...
第五部分、操作人员管理设计说明 操作人员维护模块的运行界面如图18所示 图18 操作人员维护界面 操作人员管理系统主要是用来管理对该软件进行操作的工作人员,同时系统所提供的用户权限设置能够提高系统的安全性,并对不同性质的人员给予不同的权限 5.1程序描述 主窗体的代码不是很复杂,界面设计主要是利用了树型控件来实现的 程序模块名称:frmsq; 重要控件:TreeView、图像列表Imagelist等; 相关数据库表:user_load。 该窗体主要实现增加用户、删除用户、对用户进行授权,主要是面向管理人员对操作人员的操作进行管理,满足不同层次的人员对系统不同的需求。 5.2功能 操作人员管理系统主要是用来管理对该软件进行操作的工作人员,同时系统所提供的用户权限设置能够提高系统的安全性,并对不同性质的人员给予不同的权限,为了方便集中管理数据库表和数据源,我们把数据库的连接放到Global.bas模块中,应用ADO接口技术直接和SQL Server 2000数据库服务器建立连接。 5.3性能 精 度:通过鼠标点击或快捷键进入子模块,对在文本框内输入的大小写敏感,姓名和密码都区分大小写 灵 活 性:用户鼠标点击可以进行确认,按E键表示关闭当前窗口; 时间特性:用户输入后的验证时间在1秒之内; 5.4输人项 通过鼠标点击或快捷键。用户输入的姓名,密码字符信息;这些信息由系统管理员管理,存储在数据库表中 5.5输出项 提示信息为信息符号,参考的输出结果如图19,在屏幕上显示一个对话框: 图19:一个显示删除管理员的对话框信息 5.6算法 该窗体主要实现对用户授权,用户的授权是采用0,1编码来实现的。如果该用户拥有某项权限,则该权限为1;反之,则为0。 5.7流程逻辑 登录组件的逻辑流程如下: 图20:操作人员维护模块数据流程图 5.8接口 接口设计包括组件提供给外部的接口和对数据访问组件的调用接口,这些接口构成了该ActiveX 控件实现的内容,该窗体主要实现增加用户、删除用户、对用户进行授权,主要是面向管理人员对操作人员的操作进行管理,满足不同层次的人员对系统不同的需求。 Private SubCommand3_Click () '删除操作人员的命令按钮 '显示对话框,是否删除操作人员 t = MsgBox("你是否确定删除该操作员!", vbOKCancel, "确定吗?") If t = 1 Then '如果返回1,则进行删除操作 '判断是否有记录,如果没有记录,则提示选择操作人员 If rsdel.BOF = True Or rsdel.EOF = True Then t = MsgBox("请选择操作员姓名!", vbOKOnly, "无记录") Else '否则进行删除,并显示成功删除操作人员对话框 rsdel.Delete t = MsgBox("成功删除操作员姓名!", vbOKOnly, "成功") End If tvwdb.Nodes.Clear '清除TreeView节点的内容 tvwdb.Sorted = True '设置sorted属性为真 Set mnode = tvwdb.Nodes.Add() mnode.Text = "操作员姓名" '节点显示“操作员姓名” mnode.Image = 2 '设置节点的图表为imagelist1中的图2 Set rspsw = New ADODB.Recordset rspsw.open"select*from user_load",cn,adOpenStatic,adLockPessimistic Do Until rspsw.EOF '用rspsw中的记录对treeview进行加载 Set mnode = tvwdb.Nodes.Add(1, tvwChild) '添加treeview的孩子 mnode.Text = rspsw.Fields("user_name") '使其文本为rspsw字段中的用户名 mnode.Image = 1 '设置节点的图表为imagelist1中的图1 rspsw.MoveNext '记录往后移动一条 Loop Else Exit Sub End If '将用户数据库表中的用户名加载到treeview控件中 Private SubPrivate Sub loadtreeview() tvwdb.Sorted = True '将treeview的排序设为真 Set mnode = tvwdb.Nodes.Add() mnode.Text = "操作员姓名" '节点显示“操作员姓名” mnode.Image = 2 '设置节点的图表为imagelist1中的图2 If cn.State = 1 Then Else Call condatabase '连接数据库 End If Set rspsw = New ADODB.Recordset '打开rspsw记录集 rspsw.open "select * from user_load", cn, adOpenStatic, adLockPessimistic Do Until rspsw.EOF '用rspsw中的记录对treeview进行加载 Set mnode = tvwdb.Nodes.Add(1, tvwChild) '添加treeview的孩子 mnode.Text = rspsw.Fields("user_name") '使其文本为rspsw字段中的用户名 mnode.Image = 1 '设置节点的图表为imagelist1中的图1 rspsw.MoveNext '记录往后移动一条 Loop End Sub Private Sub Form_Load() '窗体加载过程 Call loadtreeview '调用loadtreeview过程 End Sub Private Sub tvwdb_NodeClick(ByVal Node As MSComctlLib.Node) '处理nodeclick事件 If Node.Index = 1 Then '如果只有一个根节点,则退出程序 Exit Sub End If Call check_condatabase '检查是否连接数据库,如果连接了则放弃,否则连接 If Node.Parent.Index = 1 Then '是根节点 nodename = Node.Text '将删除的变量赋值给nodename Set rsdel = New ADODB.Recordset '获得该节点的用户名的所有资料 rsdel.open "select * from user_load where user_name='" & nodename & "'", cn, _ adOpenStatic, adLockPessimistic End If End Sub 5.9存储分配 本程序在高级语言Visual Basic进行编码,直接的内存分配由VB运行时分配。 本组件内所依赖的变量、结构要求全部在组件元素内申明。 5.10注释设计 本部分代码的实现,应按照该注释规范来进行。 5.11限制条件 控件所依赖的的ActriveX DLL prjDBACCESS必须存在。 该控件在使用的时候,必须经过注册,并且在运行时,客户端程序必须安装有VB运行时的动态连接库。 在运行时,用户端的计算机必须有鼠标或触摸板等点输入设备。 5.12测试计划 本模块的输入基本有鼠标点击来完成,不需要特殊的测试用例,在增加管理员是具体的测试用例和登录测试用例相同,这里不再一一例举。 5.13尚未解决的问题 本模块的没有尚未解决的问题。
vf6.0,要考二级没系统的下哈 Microsoft Visual FoxPro 6.0 for Windows 的常见问题 这些是有关 Microsoft Visual FoxPro 最常见的问题。在您求助 Microsoft 产品支持服务之前,请先查阅这张列表。 若想打印这些附注,请从“文件”菜单中选择“打印”命令。此文档分为以下四部分: --------------------------------------------------------------------- 部分 1. 技术支持与市场 部分 2. Visual FoxPro 6.0 新增功能 部分 3. 从其他版本的 FoxPro 和 Visual FoxPro 中移植 部分 4. Visual FoxPro 常见问题 --------------------------------------------------------------------- 部分 1. 技术支持与市场 问题 1-1: 从何处可以获得产品的更新版本? 答案: 在 Visual FoxPro 的 Web 站点上即可获得产品的更新信息,其中包括有关 Service Pack 和更新的示例、向导及其他代码的信息,该站点的网址为: www.microsoft.com/vfoxpro 请定期查看该网站,以便下载产品的最新版本。 问题 1-2: 从何处可以得到有关 Visual FoxPro 的详细资料? 答案: 通过 Microsoft Visual FoxPro Web 站点是随时获得各种最新产品发布信息的最佳途径。在此站点上不仅有新的产品公告,而且还提供了产品的更新信息、技术文章、白皮书、专业开发人员设计的优秀示例、会议公告、以及与其他许多 FoxPro web 站点的各种链接。 问题 1-3: 如何获得技术支持,以及如何报告软件错误? 答案: Microsoft Visual FoxPro Web 站点已经链接到了多种联机支持选项,其中包括覆盖面广阔的有关所有产品 Microsoft Knowledge Base(Microsoft 知识库)。您还可以阅读一份有关常见问题的清单。除联机支持之外,还可以直接通过电话获得技术支持。“帮助”菜单中的选项可列出技术支持的电话号码。这些电话号码也可用于报告产品中的错误。 问题 1-4. 什么是 Knowledge Base?如何使用它? 答案: Knowledge Base 是内容广泛的论文集,覆盖了如何使用产品的各种特性、已知的软件错误及其解决方案或回避的方法、以及其他有助于使用各种 Microsoft 产品的有用信息。通过以下站点可访问整个 Knowledge Base: support.microsoft.com 问题 1-5: 是否会有 Visual FoxPro 6.0a? 答案: Microsoft 公司一向承诺为用户提供高质量的产品。如果确实需要,我们将提供 Visual FoxPro 6.0 的错误修订版。但是,修订版不会使用 6.0a 版的形式。Visual FoxPro 6.0 中任何错误的修正都将包含在 Visual Studio Service Pack 中。同时还会在 Visual FoxPro 的 www.microsoft.com/vfoxpro 或 Visual Studio 的www.microsoft.com/vstudio 的 Web 站点上发布修订公告。 问题 1-6: Microsoft 公司为应用程序的开发提供了一些优秀的解决方案。怎样才能知道应该向客户推荐和使用哪种产品? 答案: 在选择适用某项任务的产品时,需要考虑多方面的因素。Microsoft Visual FoxPro web 站点上有一份优秀的策略背景论文,它比较了 Visual FoxPro、Visual Basic、SQL Server 和 Access 等 Microsoft 产品之间的不同。 问题 1-7: 哪里可以找到 Visual FoxPro 的使用示例? 答案: Visual FoxPro 6.0 产品中带有丰富的示例,其中有一些是针对 6.0 版特有功能的新示例。与 Visual FoxPro 以前的版本不同,这些示例将与所有 Visual Studio 示例安装在一起。您必须运行 MSDN Library 的“自定义”安装来安装这些示例。在 Visual FoxPro 中可使用新的 HOME(2) 函数方便地找到已安装示例的位置。 除了产品中所自带的示例外,Microsoft Visual FoxPro web 站点还将经常提供新的示例。
第1章 空 第2章 ASP.NET运行模型 21.如何在页面中应用javascript脚本-示例1 21.如何在页面中应用javascript脚本-示例2 22.如何实现从服务器端向页面动态添加javascript脚本-示例1 22.如何实现从服务器端向页面动态添加javascript脚本-示例2 24.如何处理多页面重定向到同一页面后的返回问题 25.如何用Response.Redirect方法传递汉字 29.如何利用输出缓存技术缓存整个页面 30.如何利用片段缓存技术对用户控件进行缓存 31.如何利用数据缓存技术提高程序的性能 33.如何实现当页面产生错误时重定向到自定义错误界面 35.如何在程序中读写Web.config文件 37.如何使用CSS文件定义控件的样式 38.如何启用和禁用ViewState保存状态信息的功能 39.如何应用IsPostBack控制页面的加载 41.如何使用Trace对象进行跟踪调试(页面级) 42.如何使用#Include语法将文件添加到页面 43.如何使用编程的方式处理异常信息 44.如何将网页错误信息写入事件日志 第3章 常用Web服务控件 46.如何使用Label控件动态显示文本信息 47.如何实现当鼠标移到控件时显示提示信息 48.如何在Web应用程序中实现快捷键功能(使用脚本实现) 48.如何在Web应用程序中实现快捷键功能(使用属性实现) 49.如何设置页面上控件的Tab键顺序 50.如何实现用回车键代替Tab键的功能 51.如何为按钮键添加消息框 52.Button、LinkButton和ImageButton服务控件的区别及应用 54.如何使用CheckBox和CheckBoxList控件(CheckBox示例) 54.如何使用CheckBox和CheckBoxList控件(CheckBoxList示例) 55.如何使用RadioButton和RadioButtonList控件(RadioButton示例) 55.如何使用RadioButton和RadioButtonList控件RadioButtonList示例) 56.如何使用Panel控件操作一组控件 57.如何使用Table控件组织页面的内容 58.如何实现DropDownList控件选项的添加、删除等操作 59.如何实现间接改变DropDownList控件的当前选项 60.如何实现两个或多个DropDownList控件的联动 61.如何实现ListBox控件选项的上移、下移、添加和删除操作 62.如何实现ListBox控件中选项的双击事件 63.如何动态设置ListBox控件中各选项的背景颜色 64.如何在页面中动态创建控件 65.如何为HTML服务器控件的事件添加自定义方法 第4章 验证控件 67.如何使用RequiredFieldValidator控件验证用户是否输入信息 68.如何使用RegularExpressionValidator控件验证E-mail地址和邮编等格式 69.如何使用RangeValidator控件验证输入的信息是否在指定范围内 70.如何使用CompareValidator控件对两个输入控件比较验证 71.如何使用CustomValidator控件自定义验证格式 72.如何使用ValidationSummary控件总结所有验证控件的错误信息 73.如何创建自定义功能的验证控件 74.如何禁用服务器控件的验证功能 75.如何控制页面部分验证控件有效 76.如何实现控件即时验证功能 77.如何使用验证控件综合验证用户注册页面 78.如何验证DataGrid控件的编辑列 81.如何使用验证控件验证日期类型的输入(CompareValidator) 81.如何使用验证控件验证日期类型的输入(CustomerValidator) 81.如何使用验证控件验证日期类型的输入(RegularValidator) 第5章 高级Web控件 82.如何在网页中使用Calendar Web控件显示和选择日期 83.如何在Calendar Web控件中控制个别日的内容及显示 84.如何在Calendar Web控件中控制用户日期选定 86.如何使用XML控件显示XML文件和进行XSLT转换 87.如何使用AdRotator Web控件制作广告发布程序-示例1 87.如何使用AdRotator Web控件制作广告发布程序-示例2 88.如何创建用户控件 89.如何将Web窗体转换成用户控件 90.如何实现动态加载用户控件 92.如何使用TabStrip Web和MultiP

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧