表单设计器—属性设置及相关操作
2010-05-25 20:55
316 查看
当HTML元素添加到设计面板以后,通常我们还需要对元素的属性进行设置,特别是为该HTML元素添加一些业务相关的属性,我们暂且不讨论业务属性的添加,但是其具体的操作与设置普通属性是相似的。一般来说设置元素属性的方式可以有PropertyGrid、PropertyForm以及代码修改,PropertyGrid是三者之中最常用的方式,像VisualStudio、Dreamweaver、FlexBuilder等进行界面设计时都使用这种方式;代码修改一般来说是一种辅助性的方式,因为不具有可视化界面的友好性和易用性,所以使用该方式进行属性设置的产品不能够作为一种成熟的产品;本文主要对PropertyForm这种方式进行介绍。
PropertyForm展现一般来说是通过右键事件触发的,在大多数的文档处理工具中一般使用的是这种方式,例如Office,wps等。使用右键菜单对设计面板中的HTML元素进行属性设置的时候,主要的问题有以下几个:
如何确定右键点击处焦点所处控件的类型,进而根据控件类型显示不同的右键菜单,如选中button、checkbox与选中table时显示的右键菜单是不同的。
如果选中的是button、checkbox等普通的HTML元素,如何将属性窗口设置的值体现到HTML代码中或者在设计面板中显示相应效果。
在Table区域内点击右键后,table相关属性的设置
同时,为了保持连贯性,本文也将介绍table右键的相关操作实现。
以上问题的解决方法为:
通过DHTMLEdit.DOM.selection.type属性进行区分当前右键事件选择元素的类型,之前文章:HTML元素操作已经介绍过该type可选值。此处有个问题就是,如果焦点在Table表格中或者不在任何HTML元素上,那么type的值都是NONE,此时如何确定是显示表格相关右键菜单还是显示面板右键菜单呢,答案是通过DHTMLEdit.QueryStatus方法来确定,具体方式见下文。
针对不同的HTML元素,我们需要使用不同的属性窗口对元素属性进行设置,我们可以用过IHTMLElement的setAttribute方法来为元素增加或者修改属性值,设置完成后我们获取该元素的outHTML,然后将该html内容替换原来的html内容即可。例如我们可以对Button的value进行设置:HTMLInputButtonElement.setAttribute("width", "75px",0);对于样式属性,我们可以生成相应的对象进行设置。
对于Table的操作主要通过下面的方法进行:
DHTMLEdit.QueryStatus进行某种操作之前用来检查该操作的合法性
DHTMLEdit.ExecCommand进行操作
例如插入表格操作:
DHTMLEDITCMDF cmd= DHTMLEdit.QueryStatus(DHTMLEDITCMDID.DECMD_INSERTROW);
if (cmd >= DHTMLEDITCMDF.DECMDF_ENABLED)
{
DHTMLEdit.ExecCommand(DHTMLEDITCMDID.DECMD_INSERTROW);
}
QueryStatus的返回值有:
DECMDF_DISABLED (1):当前选中区域内不能执行此操作
DECMDF_ENABLED (3):当前选中区域内可以执行此操作
DECMDF_LATCHED (7):当前区域内可执行该操作,操作按钮应置为选中,例如加粗
DECMDF_NINCHED (11):当前选中区域可以执行此操作,但是含有一些特殊元素,例如对含有粗体和正常字体的区域执行加粗操作时会返回DECMDF_NINCHED
Table相关的ExecCommand支持的操作有:
DECMD_DELETECELLS:从table中删除选中的单元格
DECMD_DELETECOLS:从table中删除包含选中文本的所有列
DECMD_DELETEROWS:删除包含选中元素的所有行
DECMD_INSERTCELL:在当前table选中单元格的左边插入单元格
DECMD_INSERTCOL:在当前列的左边插入新列
DECMD_INSERTROW:在当前行的上方插入新行
DECMD_INSERTTABLE:插入表格
DECMD_MERGECELLS:合并单元格
DECMD_SPLITCELL:拆分单元格
原创文章,转载请注明出处!
All CopyRight Reserved !
主页:http://jingtao.cnblogs.com
QQ:307073463
Email:jingtaodeemail@qq.com
MSN:sunjingtao@live.com
PropertyForm展现一般来说是通过右键事件触发的,在大多数的文档处理工具中一般使用的是这种方式,例如Office,wps等。使用右键菜单对设计面板中的HTML元素进行属性设置的时候,主要的问题有以下几个:
如何确定右键点击处焦点所处控件的类型,进而根据控件类型显示不同的右键菜单,如选中button、checkbox与选中table时显示的右键菜单是不同的。
如果选中的是button、checkbox等普通的HTML元素,如何将属性窗口设置的值体现到HTML代码中或者在设计面板中显示相应效果。
在Table区域内点击右键后,table相关属性的设置
同时,为了保持连贯性,本文也将介绍table右键的相关操作实现。
以上问题的解决方法为:
通过DHTMLEdit.DOM.selection.type属性进行区分当前右键事件选择元素的类型,之前文章:HTML元素操作已经介绍过该type可选值。此处有个问题就是,如果焦点在Table表格中或者不在任何HTML元素上,那么type的值都是NONE,此时如何确定是显示表格相关右键菜单还是显示面板右键菜单呢,答案是通过DHTMLEdit.QueryStatus方法来确定,具体方式见下文。
针对不同的HTML元素,我们需要使用不同的属性窗口对元素属性进行设置,我们可以用过IHTMLElement的setAttribute方法来为元素增加或者修改属性值,设置完成后我们获取该元素的outHTML,然后将该html内容替换原来的html内容即可。例如我们可以对Button的value进行设置:HTMLInputButtonElement.setAttribute("width", "75px",0);对于样式属性,我们可以生成相应的对象进行设置。
对于Table的操作主要通过下面的方法进行:
DHTMLEdit.QueryStatus进行某种操作之前用来检查该操作的合法性
DHTMLEdit.ExecCommand进行操作
例如插入表格操作:
DHTMLEDITCMDF cmd= DHTMLEdit.QueryStatus(DHTMLEDITCMDID.DECMD_INSERTROW);
if (cmd >= DHTMLEDITCMDF.DECMDF_ENABLED)
{
DHTMLEdit.ExecCommand(DHTMLEDITCMDID.DECMD_INSERTROW);
}
QueryStatus的返回值有:
DECMDF_DISABLED (1):当前选中区域内不能执行此操作
DECMDF_ENABLED (3):当前选中区域内可以执行此操作
DECMDF_LATCHED (7):当前区域内可执行该操作,操作按钮应置为选中,例如加粗
DECMDF_NINCHED (11):当前选中区域可以执行此操作,但是含有一些特殊元素,例如对含有粗体和正常字体的区域执行加粗操作时会返回DECMDF_NINCHED
Table相关的ExecCommand支持的操作有:
DECMD_DELETECELLS:从table中删除选中的单元格
DECMD_DELETECOLS:从table中删除包含选中文本的所有列
DECMD_DELETEROWS:删除包含选中元素的所有行
DECMD_INSERTCELL:在当前table选中单元格的左边插入单元格
DECMD_INSERTCOL:在当前列的左边插入新列
DECMD_INSERTROW:在当前行的上方插入新行
DECMD_INSERTTABLE:插入表格
DECMD_MERGECELLS:合并单元格
DECMD_SPLITCELL:拆分单元格
原创文章,转载请注明出处!
All CopyRight Reserved !
主页:http://jingtao.cnblogs.com
QQ:307073463
Email:jingtaodeemail@qq.com
MSN:sunjingtao@live.com
相关文章推荐
- 表单设计器—属性设置及相关操作
- 文件上传的基本操作之表单属性enctype的设置
- spring为实现Aware接口的自动设置相关属性的操作
- jQuery根据name属性操作textarea、text、radio,通达OA表单js设计
- 2016-06-17 nui构件隐藏时相关属性的设置 bug命名【彩虹】
- java14.语言进阶------本地文件操作---文件属性的读取、设置
- 为某个集合属性设置vs设计器支持
- jquery之操作元素属性和特性(设置特性值,attr(name,value),attr(attributes)方法的使用)
- c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)
- .NET自定义控件——与属性相关的设计时特性
- 通过RelativeLayout.LayoutParams.addRule()方法在代码中设置RelativeLayout相关属性
- java类中为什么设置set和get方法操作属性
- TCP协议相关属性设置-FIONBIO属性
- iOS开发笔记--UILabel的相关属性设置
- 操作excel获取范围,设置属性
- JPA学习笔记---JPA实体Bean的建立---链接上一个博文:对实体Bean中属性进行操作:保存日期类型,设置字段的长度,名字,是否为空,可以声明枚举字段;可以存放二进制数据,可以存放
- 表单SELECT相关操作
- 开源的asp.net工作流程引擎ccflow : 自由表单设计器的基本操作.
- Infopath表单用改控件值提交或作别的更改时一定要在控件属性浏览器表单的回发设置为始终.
- 文件上传下载时,在form表单中设置属性enctype=“multipart/form-data”的情况下,如何获取表单提交的值?