本文实例讲述了C#编程实现QQ界面的方法。分享给大家供大家参考,具体如下:
步骤:
1.新建一个页面,假如说叫VerticalMenu
2.把html代码copy到html代码区
3.把LoadTopMenu方法copy到cs代码区
4.运行即可
1.html代码
<STYLE type=\"text/css\"> A:link {}{ COLOR: #000000; FONT-SIZE: 12px; TEXT-DECORATION: none} A:visited {}{ COLOR: #000000; FONT-SIZE: 12px; TEXT-DECORATION: none} A:hover {}{ COLOR: #006CD9; FONT-SIZE: 12px; TEXT-DECORATION: none} BODY {}{ FONT-SIZE: 12px;} TD {}{ FONT-SIZE: 12px; line-height: 150%} </STYLE> <script language=\"JavaScript\"> <!-- function showitem(id,name) { //打开弹出式页面 //return (\"<span><a href=\'\"+id+\"\' target=_blank>\"+name+\"</a></span><br>\") //在框架中打开 return (\"<span><a href=\'#\' onclick=/\"url(\'\"+id+\"\');/\">\"+name+\"</a></span><br>\") } function url(id) { var source = document.getElementById(\'fMain\'); source.src=id; } function switchoutlookBar(number) { var i = outlookbar.opentitle; outlookbar.opentitle=number; var id1,id2,id1b,id2b if (number!=i && outlooksmoothstat==0){ if (number!=-1) { if (i==-1){ id2=\"blankdiv\"; id2b=\"blankdiv\"; } else{ id2=\"outlookdiv\"+i; id2b=\"outlookdivin\"+i; document.all(\"outlooktitle\"+i).style.border=\"1px none navy\"; document.all(\"outlooktitle\"+i).style.background=outlookbar.maincolor; document.all(\"outlooktitle\"+i).style.color=\"#ffffff\"; document.all(\"outlooktitle\"+i).style.textalign=\"center\"; } id1=\"outlookdiv\"+number id1b=\"outlookdivin\"+number document.all(\"outlooktitle\"+number).style.border=\"1px none white\"; document.all(\"outlooktitle\"+number).style.background=outlookbar.maincolor; //title document.all(\"outlooktitle\"+number).style.color=\"#ffffff\"; document.all(\"outlooktitle\"+number).style.textalign=\"center\"; smoothout(id1,id2,id1b,id2b,0); } else { document.all(\"blankdiv\").style.display=\"\"; document.all(\"blankdiv\").sryle.height=\"100%\"; document.all(\"outlookdiv\"+i).style.display=\"none\"; document.all(\"outlookdiv\"+i).style.height=\"0%\"; document.all(\"outlooktitle\"+i).style.border=\"1px none navy\"; document.all(\"outlooktitle\"+i).style.background=outlookbar.maincolor; document.all(\"outlooktitle\"+i).style.color=\"#ffffff\"; document.all(\"outlooktitle\"+i).style.textalign=\"center\"; } } } function smoothout(id1,id2,id1b,id2b,stat) { if(stat==0){ tempinnertext1=document.all(id1b).innerHTML; tempinnertext2=document.all(id2b).innerHTML; document.all(id1b).innerHTML=\"\"; document.all(id2b).innerHTML=\"\"; outlooksmoothstat=1; document.all(id1b).style.overflow=\"hidden\"; document.all(id2b).style.overflow=\"hidden\"; document.all(id1).style.height=\"0%\"; document.all(id1).style.display=\"\"; setTimeout(\"smoothout(\'\"+id1+\"\',\'\"+id2+\"\',\'\"+id1b+\"\',\'\"+id2b+\"\',\"+outlookbar.inc+\")\",outlookbar.timedalay); } else { stat+=outlookbar.inc; if (stat>100) stat=100; document.all(id1).style.height=stat+\"%\"; document.all(id2).style.height=(100-stat)+\"%\"; if (stat<100) setTimeout(\"smoothout(\'\"+id1+\"\',\'\"+id2+\"\',\'\"+id1b+\"\',\'\"+id2b+\"\',\"+stat+\")\",outlookbar.timedalay); else { document.all(id1b).innerHTML=tempinnertext1; document.all(id2b).innerHTML=tempinnertext2; outlooksmoothstat=0; document.all(id1b).style.overflow=\"auto\"; document.all(id2).style.display=\"none\"; } } } function getOutLine() { outline=\"<table \"+outlookbar.otherclass+\">\"; for (i=0;i<(outlookbar.titlelist.length);i++) { outline+=\"<tr><td name=outlooktitle\"+i+\" id=outlooktitle\"+i+\" \"; if (i!=outlookbar.opentitle) outline+=\" nowrap align=center style=\'cursor:hand;background-color:\"+outlookbar.maincolor+\";color:#ffffff;height:20;border:1 none navy\' \"; else outline+=\" nowrap align=center style=\'cursor:hand;background-color:\"+outlookbar.maincolor+\";color:white;height:20;border:1 none white\' \"; outline+=outlookbar.titlelist[i].otherclass outline+=\" onclick=\'switchoutlookBar(\"+i+\")\'><span class=smallFont>\"; outline+=outlookbar.titlelist[i].title+\"</span></td></tr>\"; outline+=\"<tr><td name=outlookdiv\"+i+\" valign=top align=center id=outlookdiv\"+i+\" style=\'width:100%\" if (i!=outlookbar.opentitle) outline+=\";display:none;height:0%;\"; else outline+=\";display:;height:100%;\"; outline+=\"\'><div name=outlookdivin\"+i+\" id=outlookdivin\"+i+\" style=\'overflow:auto;width:100%;height:100%\'>\"; for (j=0;j<outlookbar.itemlist[i].length;j++) outline+=showitem(outlookbar.itemlist[i][j].key,outlookbar.itemlist[i][j].title); outline+=\"</div></td></tr>\" } outline+=\"</table>\" return outline } function show() { var outline; outline=\"<div id=outLookBarDiv name=outLookBarDiv style=\'width=100%;height:100%\'>\" outline+=outlookbar.getOutLine(); outline+=\"</div>\" document.write(outline); } function theitem(intitle,instate,inkey) { this.state=instate; this.otherclass=\" nowrap \"; this.key=inkey; this.title=intitle; } function addtitle(intitle) { outlookbar.itemlist[outlookbar.titlelist.length]=new Array(); outlookbar.titlelist[outlookbar.titlelist.length]=new theitem(intitle,1,0); return(outlookbar.titlelist.length-1); } function additem(intitle,parentid,inkey) { if (parentid>=0 && parentid<=outlookbar.titlelist.length) { outlookbar.itemlist[parentid][outlookbar.itemlist[parentid].length]=new theitem(intitle,2,inkey); outlookbar.itemlist[parentid][outlookbar.itemlist[parentid].length-1].otherclass=\" nowrap align=left style=\'height:5\' \"; return(outlookbar.itemlist[parentid].length-1); } else additem=-1; } function outlook() { this.titlelist=new Array(); this.itemlist=new Array(); this.divstyle=\"style=\'height:100%;width:100%;overflow:auto\' align=center\";//可以在这里设置对齐方式 this.otherclass=\"border=0 cellspacing=\'0\' cellpadding=\'0\' style=\'height:100%;width:100%\'valign=middle align=center \"; this.addtitle=addtitle; this.additem=additem; this.starttitle=-1; this.show=show; this.getOutLine=getOutLine; this.opentitle=this.starttitle; this.reflesh=outreflesh; this.timedelay=50; this.inc=10; this.maincolor = \"#336699\" } function outreflesh() { document.all(\"outLookBarDiv\").innerHTML=outlookbar.getOutLine(); } function locatefold(foldname) { if (foldname==\"\") foldname = outlookbar.titlelist[0].title for (var i=0;i<outlookbar.titlelist.length;i++) { if(foldname==outlookbar.titlelist[i].title) { outlookbar.starttitle=i; outlookbar.opentitle=i; } } } var outlookbar=new outlook(); var tempinnertext1,tempinnertext2,outlooksmoothstat outlooksmoothstat = 0; <%=LoadVerticalMenu()%>//从数据库产生垂直菜单 //--> </script> <table id=\"mnuList\" style=\"WIDTH:150px;HEIGHT: 100%\" cellspacing=\"0\" cellpadding=\"0\" align=\"left\" border=\"0\"> <tr> <td bgcolor=\"#F0F0E5\" id=\"outLookBarShow\" style=\"HEIGHT: 100%\" valign=\"top\" align=\"middle\" name=\"outLookBarShow\"> <script language=\"JavaScript\"> <!-- locatefold(\"\") outlookbar.show() //--> </script> </td> </tr> </table>
2.cs代码
public class VerticalMenu : System.Web.UI.Page { protected DataRow[] father; protected DataRow[] first; private void Page_Load(object sender, System.EventArgs e) { // 模拟QQ菜单 } public static string ConnectionString=System.Configuration .ConfigurationSettings .AppSettings[\"ConnectionString\"]; GetDataSet#region GetDataSet public static DataSet GetDataSet(string sql) { SqlDataAdapter sda =new SqlDataAdapter(sql,ConnectionString); DataSet ds=new DataSet(); sda.Fill(ds); return ds; } #endregion protected string LoadVerticalMenu() { string sqlFather=\"select * from PowerSetting\"; DataSet dsFather=GetDataSet(sqlFather); father=dsFather.Tables[0].Select(\"IsBoot=0\",\"IsBoot\"); string menu=\"\"; foreach(DataRow drfather in father) { menu+=\"var t;\"; menu+=\"t=outlookbar.addtitle(\'\"+drfather[\"Description\"]+\"\');\"; first=dsFather.Tables[0].Select(\"ParentID=\'\"+Convert.ToInt32(drfather[\"ParentID\"])+\"\' and IsBoot=1\",\"IsBoot\"); foreach(DataRow drfirst in first) { menu+=\"outlookbar.additem(\'\"+drfirst[\"Description\"]+\"\',t,\'\"+drfirst[\"Url\"]+\"\');\"; } } return menu; } Web Form Designer generated code#region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent(); base.OnInit(e); } /**//**//**//// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion }
3.数据库脚本
if exists (select * from dbo.sysobjects where id = object_id(N\'[dbo].[PowerSetting]\') and OBJECTPROPERTY(id, N\'IsUserTable\') = 1) drop table [dbo].[PowerSetting] GO CREATE TABLE [dbo].[PowerSetting] ( [PowerSettingID] [int] IDENTITY (1, 1) NOT NULL , --id [ParentID] [int] NOT NULL , --父节点id [Description] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL , --菜单描述内容 [Icon] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL , --要显示图标 [Url] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL , --url [Target] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL , --_self,_blank等 [CreateByID] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL , --创建人id [CreateON] [datetime] NULL , --创建日期 [IsEnabled] [bit] NULL , --是否可用 [IsBoot] [int] NULL --是不是根节点;1是其他不是 ) ON [PRIMARY] GO
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#数据结构与算法教程》、《C#常见控件用法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》
希望本文所述对大家C#程序设计有所帮助。
本文地址:https://www.stayed.cn/item/968
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我