您的位置:程序门 -> .net技术 -> c#



一个已经郁闷了好长时间的问题,详细说明请您进入阅读,谢谢!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


一个已经郁闷了好长时间的问题,详细说明请您进入阅读,谢谢![已结贴,结贴人:mlhy20060406]
发表于:2007-01-13 15:12:20 楼主
我想在一个运行的exe程序的窗体中的panel面板上随意的添加控件,
比如在运行的窗体上我有一个toolbar工具栏,工具栏上的按钮
文本上写着有标签、文本框、图片框、单选按钮,复选框,
等基本控件名称,只要点击一个相应的按钮,就可以在panel上
画出一个相应的控件,比如点击的按钮上面写着标签,就可以
在panel上鼠标点击处显示一个label标签,并能修改标签的显示
的内容即text属性,背景色,前景色,字体选择大小的改变,
并能改变控件的大小而且可以移动该控件的位置,
工具栏上的其他按钮的功能大概都是如此。
在panel上所画的控件的位置,控件的字体,位置并能够保存下来,
退出软件一边下次进入时和上一次所做的变动后保存的位置一样。

说这么多废话的意思就是:我想做一个打印报告,报告中控件的位置
不是固定的,使用者可以改变控件的位置,比如picturebox控件的大小
移动其位置。

我所遇到的问题就是在panel面板控件中画n条线的位置如何保存下来,
而且我在画线条时画错位置了如何取消或者删除原来所画的线条,所添加
的控件也是这样。

我现在的做法是写一个配置文件,配置文件保存控件的位置,名称,尺寸,
显示的内容(text属性内容),控件的字体,前景色,背景色,问题是控件
字体的名字、字体大小是只读,只能同过fontdialog对话框来修改,我的
意思是修改以后并能保存下来,下次再进入程序时就是该过后的字体了,
所有控件的位置也是如此。

[pictureboxes]
count=2
left0=3120
top0=3825
width0=5475
height0=4125
left1=3120
top1=3825
width1=5475
height1=4125

[textboxes]
count=1
top0=8745
left0=1620
height0=6825
width0=9135
fontname0=宋体
fontitalic0=false
fontsize0=9
fontstrikethru0=false
fontbold0=false
fontunderline0=false
forecolor0=0

[lines]
count=0
color0=
width0=
x00=1090
y00=2254
x10=9660
y10=30

[statictext]
count=3
name0=填写大名:
top0=960
left0=3840
fontname0=宋体
fontitalic0=false
fontsize0=24
fontstrikethru0=false
fontbold0=false
fontunderline0=false
forecolor0=32768
name1=公司:
top1=1485
left1=4425
fontname1=宋体
fontitalic1=false
fontsize1=18
fontstrikethru1=false
fontbold1=true
fontunderline1=false
forecolor1=16711680
name2=你好:
top2=8355
left2=1335
fontname2=宋体
fontitalic2=false
fontsize2=12
fontstrikethru2=false
fontbold2=false
fontunderline2=false
forecolor2=16711680

我是通过读上面的配置文件来装载控件和修改后保存控件的位置,
这样做我发现了几个问题不能解决(就是上面所诉的问题),那位
大哥或者大姐又没有其他的好方法,或者有这方面的资料和源代码,
对这个问题我已经郁闷了好长时间了。

在此先谢谢大家进入阅读!希望大家能帮我解决一下
发表于:2007-01-13 15:18:171楼 得分:0
自己先顶一下了
发表于:2007-01-13 15:18:332楼 得分:20
用xml文件保存,将线条需要保存的属性(如长度、颜色、高度等)保存到xml配置文件,然后在打开的时候,通过此信息用反射的方法将其添加到panel上。
发表于:2007-01-13 15:23:273楼 得分:10
都已经是只读属性了。又要动态加载。那加载的时候肯定只能是默认值了。

要么把你要用到的控件都重载一下,把这两个属性改成可写的。
发表于:2007-01-13 15:24:274楼 得分:0
zhgroup(王员外)   (   )    

用什么保存倒无所谓的。只是反射过去后,怎么赋值呢?那两属性是只读的。
发表于:2007-01-14 12:29:545楼 得分:0
up
发表于:2007-01-16 12:02:456楼 得分:0
从控件中可以读取font的值和forecolor的值,根据这两个值,保存font和forecolor的值到xml文件中,在初始化的时候,根据保存的值,先反射生成都市font和color,然后再分别赋值给控件,.
发表于:2007-01-20 08:41:027楼 得分:0
上一周去别的公司了,没来的及上网!
to:   zhgroup(王员外)  
但是这个“线”的位置,我可以在panel中随意移动和删除吗?
能不能提供一些代码呢?这个问题我真的郁闷好久了
谢谢你们的指点
发表于:2007-01-27 10:25:128楼 得分:0
up
发表于:2007-01-27 12:01:229楼 得分:0
hehe
发表于:2007-02-26 15:49:2510楼 得分:0
自己再up一下
发表于:2007-02-26 17:38:0511楼 得分:0
up
发表于:2007-02-26 17:56:3912楼 得分:10
如果想移动删除所画的线条,需要把每个线条元素化,封装,然后各个元素分层显示,处理。再加上撤销等功能,好像不是那么容易。
发表于:2007-03-05 12:53:0813楼 得分:0
各位老大能不能给出事理代码?
发表于:2007-03-08 15:10:0114楼 得分:0
again   up
发表于:2007-03-10 08:55:0415楼 得分:0
up
发表于:2007-03-22 09:53:3216楼 得分:10
用xml文件保存,将线条需要保存的属性(如长度、颜色、高度等)保存到xml配置文件,然后在打开的时候,通过此信息用反射的方法将其添加到panel上。
严重同意
发表于:2007-03-22 09:59:0417楼 得分:0
to:leixueqiyi()
能不能给出一些代码事例呢?
发表于:2007-03-26 10:26:1418楼 得分:0
从控件中可以读取font的值和forecolor的值,根据这两个值,保存font和forecolor的值到xml文件中,在初始化的时候,根据保存的值,先反射生成都市font和color,然后再分别赋值给控件,.
发表于:2007-03-26 11:27:3419楼 得分:0
能不能给出一些代码?


快速检索

最新资讯
热门点击