仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 746|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之TreeView 派生类: TreeViewEx 完成 Nod...

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:50:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我以前很喜欢Serv-U,自从它用Java重写之后我就再也没用过,实在是太慢了,我宁可用IIS搭建FTP,虽然IIS搭建FTP在权限管理上很不灵活。//playyuer@Microshaoft.cominvent
//一个TreeView的派生类:TreeViewEx完成NodeShowToolTip、NodeDoubleClick事务
//1.完成了NodeShowToolTip事务,分离键盘Ctrl键显现及设置ToolTipText
//2.完成了NodeDoubleClick事务,可在挪用中只呼应"叶子"节点
//3.点击TreeView空缺处不选中任何节点
//Class1.cs
usingSystem;
publicclassTreeViewEx:System.Windows.Forms.TreeView
{
publiceventTreeViewExEventHandlerNodeDoubleClick;
publiceventTreeViewExEventHandlerNodeShowToolTip;
privatevoidOnNodeDoubleClick(System.Windows.Forms.TreeNodexx)
{
if(this.NodeDoubleClick!=null)
{
this.NodeDoubleClick(this,newTreeViewExEventArgs(xx));
}
}
privatevoidOnNodeShowToolTip(System.Windows.Forms.TreeNodexx,System.Windows.Forms.ToolTipyy)
{
if(this.NodeShowToolTip!=null)
{
if((xx!=null)&&(this.toolTip!=null))
this.NodeShowToolTip(this,newTreeViewExEventArgs(xx,this.toolTip));
}
}
protectedoverridevoidOnDoubleClick(System.EventArgse)
{
if(this.SelectedNode!=null)
this.OnNodeDoubleClick(this.SelectedNode);
base.OnDoubleClick(e);
}
privateSystem.Windows.Forms.ToolTiptoolTip;
publicTreeViewEx()
{
toolTip=newSystem.Windows.Forms.ToolTip();
this.toolTip.InitialDelay=300;
this.toolTip.ReshowDelay=0;
}
protectedoverridevoidOnClick(System.EventArgse)
{
if(this.GetNodeAt(System.Windows.Forms.TreeView.MousePosition.X,System.Windows.Forms.TreeView.MousePosition.Y)==null)
this.SelectedNode=null;
base.OnClick(e);
}
protectedoverridevoidOnMouseDown(System.Windows.Forms.MouseEventArgse)
{
if(this.GetNodeAt(e.X,e.Y)==null)
this.SelectedNode=null;
base.OnMouseDown(e);

}
privateSystem.Windows.Forms.TreeNodeLastTreeNode;
protectedoverridevoidOnMouseMove(System.Windows.Forms.MouseEventArgse)
{
this.Cursor=System.Windows.Forms.Cursors.Default;
System.Windows.Forms.TreeNodetreeNode;
treeNode=this.GetNodeAt(e.X,e.Y);
if(treeNode!=null)
{
if((System.Windows.Forms.Control.ModifierKeys&System.Windows.Forms.Keys.Control)!=0)
{
this.Cursor=System.Windows.Forms.Cursors.Hand;
if(treeNode!=LastTreeNode|LastTreeNode==null)
{
LastTreeNode=treeNode;
this.toolTip.Active=false;
this.OnNodeShowToolTip(treeNode,this.toolTip);
this.toolTip.Active=true;
}
}
else
{
this.Cursor=System.Windows.Forms.Cursors.Default;
this.toolTip.Active=false;
}
}
else
{
this.Cursor=System.Windows.Forms.Cursors.Default;
this.toolTip.Active=false;
}
base.OnMouseMove(e);
}
}
publicdelegatevoidTreeViewExEventHandler(objectsender,TreeViewExEventArgse);
publicclassTreeViewExEventArgs:System.EventArgs
{
publicTreeViewExEventArgs(System.Windows.Forms.TreeNodeSelectedNode)
{
this.m_SelectedNode=SelectedNode;
}
publicTreeViewExEventArgs(System.Windows.Forms.TreeNodeNode,System.Windows.Forms.ToolTipNodeToolTip)
{
this.m_NodeToolTip=NodeToolTip;
this.m_Node=Node;
}
publicTreeViewExEventArgs(System.Windows.Forms.TreeNodeNode,stringToolTipText)
{
this.m_ToolTipText=ToolTipText;
}
privatestringm_ToolTipText;
privateSystem.Windows.Forms.ToolTipm_NodeToolTip;
privateSystem.Windows.Forms.TreeNodem_SelectedNode;
privateSystem.Windows.Forms.TreeNodem_Node;
publicSystem.Windows.Forms.TreeNodeSelectedNode
{
get
{
returnthis.m_SelectedNode;
}
}
publicstringToolTipText
{
get
{
returnthis.ToolTipText;
}
set{m_ToolTipText=value;}
}
publicSystem.Windows.Forms.TreeNodeNode
{
get
{
returnthis.m_Node;
}
}
publicSystem.Windows.Forms.ToolTipNodeToolTip
{
get
{
returnthis.m_NodeToolTip;
}
}
}
publicclassTreeNodeEx:System.Windows.Forms.TreeNode
{
publicintGetLevel()
{
inti=0;
System.Windows.Forms.TreeNodexx=this.Parent;
while((xx=xx.Parent)!=null)i++;
returni;
}
}

//=================================================================
//挪用示例
privateTreeViewExtreeViewEx1;
privatevoidForm1_Load(objectsender,System.EventArgse)
{
treeViewEx1=newTreeViewEx();
this.Controls.Add(treeViewEx1);
treeViewEx1.HideSelection=false;
treeViewEx1.NodeDoubleClick+=newTreeViewExEventHandler(treeViewEx1_NodeDoubleClick);
treeViewEx1.NodeShowToolTip+=newTreeViewExEventHandler(this.treeViewEx1_NodeShowToolTip);
treeViewEx1.Nodes.AddRange(newSystem.Windows.Forms.TreeNode[]{
newSystem.Windows.Forms.TreeNode("Root",
newSystem.Windows.Forms.TreeNode[]
{newSystem.Windows.Forms.TreeNode("a"),newSystem.Windows.Forms.TreeNode("b")}
),
newSystem.Windows.Forms.TreeNode("Root1",
newSystem.Windows.Forms.TreeNode[]
{newSystem.Windows.Forms.TreeNode("a1"),newSystem.Windows.Forms.TreeNode("b1")}
)
}
);
}

publicvoidtreeViewEx1_NodeShowToolTip(objectsender,TreeViewExEventArgse)
{
e.NodeToolTip.SetToolTip(this.treeViewEx1,"["+e.Node.Text+"]{");
}

privatevoidtreeViewEx1_NodeDoubleClick(objectsender,TreeViewExEventArgse)
{
if(e.SelectedNode.GetNodeCount(true)==0)
System.Windows.Forms.MessageBox.Show(e.SelectedNode.Text);
&nb
感觉很多控件都必须自己去写代码;用了WebMatrix感觉也不是很好,毕竟没有很强的WYSIWYG效果。现在就不知道如何是好了。
金色的骷髅 该用户已被删除
沙发
发表于 2015-1-20 05:20:24 | 只看该作者
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
透明 该用户已被删除
板凳
发表于 2015-1-28 18:31:18 | 只看该作者
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
不帅 该用户已被删除
地板
发表于 2015-2-5 20:45:30 | 只看该作者
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。
蒙在股里 该用户已被删除
5#
发表于 2015-2-13 10:39:11 | 只看该作者
由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。
老尸 该用户已被删除
6#
发表于 2015-3-3 19:09:27 | 只看该作者
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
分手快乐 该用户已被删除
7#
发表于 2015-3-11 12:32:23 | 只看该作者
Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!
只想知道 该用户已被删除
8#
发表于 2015-3-18 11:22:42 | 只看该作者
最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
山那边是海 该用户已被删除
9#
发表于 2015-3-25 19:16:52 | 只看该作者
CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-11 16:45

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表