日历归档 |
|
<< < 2024 - 11 > >> | Su | Mo | Tu | We | Th | Fr | Sa | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
|
|
|
About Me |
|
|
ZhangSichu |
|
Male |
|
32 |
|
ZhangSichu@gmail.com |
|
ZhangSichu@hotmail.com |
|
ZhangSichu.com |
|
weibo.com/zhangsichu |
|
|
|
个人推荐 |
|
|
|
|
分类归档 |
|
|
|
|
My Friends |
|
|
|
|
C#下界面设计初探
|
对程序的设计分析可以面向对象,对界面的设计可以面向设计吗?.Net Web设计有一个.UI可以专门来设计 Asp.Net的界面。.Net界面的设计和操作分离可以很方便的实现。自学了.Net下的面向对象设计,用C#来实现.Net下的界面的设计和操作的分离。最近和同学合作,作了一个社区的管理程序,要求界面模仿Windows优化大师,要求界面简单易用功能分类清晰。下面是设计好的界面:
上部横条大类导航 左边是大类下的小类:
要求大类点一下,小类中的按钮就要改换一下,换到这个大类操作下的小类。在原来还没有学过面向对象界面设计的时候就把所有的小类都放在主Form的。当大类被点击了,置小类的Visible=true; Visible=false;如果这样写的话,在只有几个按钮的情况下很好处理,不过当按钮一多起来就很难控制了。
下面是根据面向对象的思想,拆分各个窗体。每个左边的菜单都是一个Form,它被嵌入到了主Form里,各个Form 进行自己的操作。
MainForm Load 函数
private void MainForm_Load(object sender, System.EventArgs e) { transferForm += new TransferForm(this.InitialForm); transferForm += new TransferForm(this.ShowFormMain);
baseInstance = new BaseInstance(); InitialForm(baseInstance); sideBase = new SideBase(transferForm); InitialForm(sideBase); sideRoutine = new SideRoutine(transferForm); InitialForm(sideRoutine); sideService = new SideService(transferForm); InitialForm(sideService); sidePeople = new SidePeople(transferForm); InitialForm(sidePeople); sideParty = new SideParty(transferForm); InitialForm(sideParty); sideComplex = new SideComplex(transferForm); InitialForm(sideComplex); sideProtect = new SideProtect(transferForm); InitialForm(sideProtect);
lastSideForm=sideBase; ShowFormSide(sideBase); lastMainForm=baseInstance; ShowFormMain(baseInstance);
}
初始化嵌套的要显示的窗体
public void InitialForm(Form showForm) { showForm.Location = new Point(0,0); showForm.TopLevel = false; showForm.TopMost = false; showForm.ControlBox = false; showForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; showForm.StartPosition = System.Windows.Forms.FormStartPosition.Manual; }
显示左边的导航窗体
private void ShowFormSide(Form showForm) { //showForm.Size = this.panelSide.ClientSize; lastSideForm.Visible=false; lastSideForm = showForm; showForm.Parent=this.panelSide; showForm.Visible =true; }
显示右边的窗体 public void ShowFormMain(Form showForm) { //showForm.Size = this.panelMain.ClientSize; lastMainForm.Visible=false; lastMainForm = showForm; showForm.Parent=this.panelMain; showForm.Visible =true; }
更换左边导航窗体 private void btService_Click(object sender, System.EventArgs e) { ShowFormSide(sideService); }
最终实现了各个窗体管理自己的按钮,给别的窗体留出通讯接口(这里是 transferForm 那个指代给Side类窗体传入两个函数)各司其职,互相留好通信接口。功能和界面分离,管理方便。
执行程序(需要.Net1.1运行时环境)
File: Click to Download
|
|
#re:C#下界面设计初探 9/22/2012 10:41:35 PM revin
|
写的界面不错,看到作者你的原来源码也没有了,估计也要不到源码了,从下午搞到现在终于反编译整理好了源码,一切正常,才发现主界面的那个竟然是个大图。。还得需要PS 哎。。。不过。感谢楼主。
|
|
#re:C#下界面设计初探 4/17/2011 1:59:07 PM dd
|
能把你的界面源码发给我吗?我想做一个类似界面的程序~~ hawkingye@126.com
|
|
#re:C#下界面设计初探 4/7/2011 9:57:53 PM tianer
|
楼主好,我也是菜鸟,看到楼主的杰作十分羡慕,希望能得到楼主的源代码,不胜感激,谢谢了!mytianer@163.com
|
|
#re:C#下界面设计初探 11/8/2010 3:10:57 PM 晴天
|
能不能发个源代码,初学者,需要学习,有类似的工作,谢谢,liuyanxia123456sad@126.com,非常感谢。
|
|
#re:C#下界面设计初探 8/25/2010 11:20:38 AM zhangsichu
|
|
#re:C#下界面设计初探 8/17/2010 2:24:24 PM lqx
|
|
#re:C#下界面设计初探 4/1/2010 5:12:58 PM luckjelly
|
能不能发一个学习一下,luckjelly@yahoo.com.cn
|
|
#re:C#下界面设计初探 3/20/2010 11:36:59 PM chang_da@zju.edu.cn
|
|
#re:C#下界面设计初探 1/20/2010 11:53:45 AM lin
|
能发我一份源码吗?谢谢!linofficewhl@163.com
|
|
#re:C#下界面设计初探 6/8/2009 7:50:51 PM Jayn
|
可以给我发一份这个的原代码吗? 邮箱:caojiayin1984@126.com
谢谢。
|
|
#re:C#下界面设计初探 5/26/2009 9:25:41 AM zhangsichu
|
不好意思,很抱歉,机器重装了几次,源代码已经找不到了。
|
|
#re:C#下界面设计初探 5/26/2009 8:55:12 AM flyaway
|
我也想要,我要做个类似界面的动向,能吧源程序给我吗?谢谢拉!flyaway1502@163.com
|
|
#re:C#下界面设计初探 12/25/2008 11:20:28 PM 破风雷
|
在使用Visual Studio 2005 开发Windows程序的时候,需要在容器控件中显示一个新的Form,直接使用如下代码出现异常无法将顶级控件添加到控件: MyForm myForm = new MyForm(); container.Controls.Add(myForm); 网上查阅了相关资料,解决方法很简单。由于Form默认为顶级控件,所以在容器控件中加入会出现标题所示异常。 只要在添加控件的代码之前将Form设置为非顶级控件即可解决错误。 MyForm myForm = new MyForm(); myForm.TopLevel = false; container.Controls.Add(myForm);
|
|
#re:C#下界面设计初探 5/14/2005 6:40:47 PM Hello
|
|
#re:求教 5/13/2005 10:57:45 AM ZhangSichu
|
showForm.Location = new Point(0,0); showForm.TopLevel = false; showForm.TopMost = false; showForm.ControlBox = false; showForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; showForm.StartPosition = System.Windows.Forms.FormStartPosition.Manual; showForm.Parent=this.panelSide; showForm.Visible =true; 你再试试
|
|
#re:C#下界面设计初探 5/12/2005 1:27:50 PM 求教
|
怎么能把一个Form的Parent赋予一个pannal呢? showForm.Parent=this.panelMain; Form是顶级控件呀,我为什么这样做就会有运行错误呢?
|
|
#re:C#下界面设计初探 5/11/2005 7:10:12 PM 淡如云烟
|
你好: 刚接触C#, 能把你做界面的源程序,借来看看吗? clbfr@163.com 谢谢!!!
|
|
|
|
|
|