admin 管理员组文章数量: 1086019
2024年3月7日发(作者:约瑟夫问题解法)
Dev控件研究(一) gridcontrol简单使用
最近,工作安排,要我研究dev控件。。。项目没开始,被要求搞研究。。。界面
dev的控件表现效果及实用功能都是蛮方便和强大的。gridcontrol中有5种view 型式,普通的是gridview,然后分别为cardview、BandedView、Advanced BandedView、LayoutView;共5种。gridview跟WinForm自带的差不多,有一些高级特性,比如说可以把某一列拿出来分组啊,之类的。我这几天主要研究了这三个:LayoutView、BandedView、AdvancedBandedView。
LayoutView实现的视觉效果可以说很。。。炫~(我们做应用行业软件的。。项目组长却要求这么炫的效果。。。我觉得他是想不开。。。)
仔细看了dev的demo源代码,实际上这里只需要在gridcontrol 中 的designer中 的view组中把OptionView下的viewmode 设置成“Carousel”就达到这种“旋转木马”式的gridcontrol view 特效了。。。
关键部分还是细节,ngle 这个属性决定“旋转木马”的pitch angle 螺距角; 螺旋角; 螺旋升角; 俯仰角; 倾角; 节锥半角
【主科技词汇】 。。。
Roll Angle 属性决定着 倾侧角度~~其它的属性都好说。
然后就是columns的设置问题了,设置column的长高啊什么的,现在还没完全弄明白~~。。。有时候设置了,coumn没变。。。反正要想真正达到图片中的那种效果,得很细心的搞一下才行。
将其设置为图片类型的时候,是比较痛苦的事情。我开始以为在给gridcontrol的datatable里面设置一列为路径 string 就够了~结果试了半天(没办法,源码里面调用的是xml文件!~~图片是Int64类型的,刚开始没仔细看。。),在csdn搜到了。。。
//显示数据
private void showData(List
{
DataTable dt = new DataTable("OneEmployee");
("Caption", e(""));
("Department", e(""));
("PhotoName", e("[]"));
for (int i = 0; i < ; i++)
{
DataRow dr = ();
dr["Caption"] = list[i].Name;
dr["Department"] = list[i].Department;
string imagePath = @"D:C#photos" + list[i].PhotoPath;
dr["PhotoName"] = getImageByte(imagePath);
(dr);
}
urce = dt;
}
//返回图片的字节流byte[]
private byte[] getImageByte(string imagePath)
{
FileStream files = new FileStream(imagePath, );
byte[] imgByte = new byte [ ];
(imgByte, 0, );
();
return imgByte;
}
来自CSDN博客,转载请标明出处:/alen0707/archive/2009/05/20/
必须转换成2进制数组,属性为pictureedit的column才能认~~~,then,基本上完成。。。LayoutView~
.net - 第三方控件Devexpress - GRIDCONTROL 和 GRIDVIEW 的简单使用(C/S)
Tag:
.Net
C_
第三方控件
Devexpress
GridView
GRIDCONTROL 和 GRIDVIEW 的简单使用
【添加、删除、保存、撤销、修改(是在gridView上面直接修改)】
【添加、修改、删除】只是对gridView所绑定的数据源进行的操作的,需要通过【修改】来提交到数据库
【撤销】是撤销对数据源的修改,保存后无法撤销
gridControl:ntrol.
相当于一个dateGrid的控制器,它包括多种显示样式:GridView,CardView,LayoutView 等等.
gridView:ew.
是一个常用的表格形式,下面以gridView为例.
labelControl1:ontrol.
标签,类似于普通的Label
SysUserMgt:是一个对象管理接口,省略.
SysUserMgtImpl:是对管理接口的实现(增、删、改、差),省略.
SysUser:实体类,省略.
SysUserMgtImpl --> Select(); 查询所有用户,返回 DataSet 集合
SysUserMgtImpl --> Insert(SysUser sysUser); 接受一个新用户,添加
SysUserMgtImpl --> Update(SysUser sysUser); 接受一个新用户,修改
SysUserMgtImpl --> Delete(int sysUserId); 接受用户的ID,删除用户
===================加载数据================================
SysUserMgt sysUserMgt = new SysUserMgtImpl();
_dsUser = ();
// 绑定数据源
urce = _[0">;
===================设置gridView的样式======================
// 设置奇数行颜色 // 默认也是白色 可以省略
lor = ;
// 使能 // 和和上面绑定 同时使用有效
AppearanceOddRow = true;
// 设置偶数行颜色
lor = moke;
// 使能
AppearanceEvenRow = true;
// ID 只读 s[0">.ReadOnly = true; 无效
s[0">.ly = true;
// 可以用下面的方式替换
//toryItemTextEdit userId = new toryItemTextEdit();
//ly = true;
//s[0">.ColumnEdit = userId;
// 将第三列设置成密码框,让其看不见,但是可以修改
toryItemTextEdit loginPass = new toryItemTextEdit();
// 密码的显示样式可以替换,只能是 char 型
rdChar = '*';
s[2">.ColumnEdit = loginPass;
// 将站点字段替换成一个下拉式的只读(默认)表格,comboBox无效
toryItemGridLookUpEdit station = new toryItemGridLookUpEdit();
StationMgt stationMgt = new StationMgtImpl();
DataSet dsStation = IdAndName();
urce = [0">;
// 当什么都没选的时候显示的文本
xt = "请选择站点";
// 显示的字段名 //如果是En文,区分大小写。如:NAME or name
yMember = "站点名称";
// 给view 的值 -- 字段名 // 区分大小写
ember = "站点编号";
s[8">.ColumnEdit = station;
===================添加记录================================
Row();
===================删除记录================================
SelectedRows();
===================保存修改================================
(); // 见“焦点设置”
if (_[0">.GetChanges()==null)
{
("没有修改");
return;
}
SysUserMgt sysUserMgt = new SysUserMgtImpl();
// 遍历所有修改过的行
foreach (DataRow row in _[0">.GetChanges().Rows)
{
/*
========DataRowState 成员名称 说明 ========
Added 该行已添加到 DataRowCollection 中,AcceptChanges 尚未调用。
Deleted 该行已通过 DataRow 的 Delete 方法被删除。
Detached 该行已被创建,但不属于任何 DataRowCollection。DataRow 在以下情况下立即处于此状态:创建之后添加到集合中之前;或从集合中移除之后。
Modified 该行已被修改,AcceptChanges 尚未调用。
Unchanged 该行自上次调用 AcceptChanges 以来尚未更改。
* */
// 如果是删除,则通过ID删除
if (te == d)
{
int userId = (row[0, al">.ToString());
(ng());
(userId);
}
// 如果是添加,则创建无ID对象保存——“添加”
else if (te == )
{
SysUser user = new SysUser();
_id = row[1">.ToString();
_pass = row[2">.ToString();
= row[3">.ToString();
= row[4">.ToString();
= row[5">.ToString();
s = row[6">.ToString();
= row[7">.ToString();
nId = (row[8">.ToString());
(user);
}
// 如果是修改,则创建有ID对象保存——“修改”
else if (te == ed)
{
SysUser user = new SysUser();
rId = (row[0">.ToString());
_id = row[1">.ToString();
_pass = row[2">.ToString();
= row[3">.ToString();
= row[4">.ToString();
= row[5">.ToString();
s = row[6">.ToString();
= row[7">.ToString();
nId = (row[8">.ToString());
(user);
}
}
_Changes(); // 改变ds,必须放到修改之后
(); // 见“焦点设置”
("保存成功!");
===================撤销修改================================
// 保存后无法撤销
(); // 见“焦点设置”
if (_[0">.GetChanges() == null)
{
("没有可撤销的项!");
}
else
{
_Changes();// 还原改变(回滚)
}
(); // 见“焦点设置”
===================焦点设置================================
如果添加、删除、保存、撤销等触发的控件能够能到焦点,如:按钮,那么,就可以将设置焦点的这两句话去掉。
由于我们用的是快捷菜单,它是无法获得焦点的,所以才会有这两句话:
();
();
作用:触发_[0"> 的 Change 事件(失去焦点才能触发)
解释:
labelControl1:
是一个无内容的空标签,让它得到焦点,那么 gridView 就会失去焦点,才会触发 _[0"> 的 Change 事件
当然,也可以用其他可以得到焦点的空间代替,但是这个空间必须是可见的
版权声明:本文标题:Dev控件研究(一) gridcontrol简单使用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1709805505a546987.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论