精华内容
下载资源
问答
  • 请教高手,我是delphi 7 开发,我在使用devexpress 打印控件打印cxgrid内容时,如何添加报表的小标题(例如,显示我查询的时间段)?
  • VS的属性栏有树形结构,节点有很多属性可以展开,dev是XtraTreeList做么,谁有些经验指点一下在保证树形结构时,怎么在节点下添加可以多样性操作的属性
  • 全网传媒 例如:到了某个时间点对应的原点是实心,后面还未到的是空心显示 大佬们,,小白线等!!!

    全网传媒



    例如:到了某个时间点 对应的原点是实心,后面还未到的是空心显示
        大佬们,,小白线等!!!

    展开全文
  • 这个就是前一页后一页的,怎么用
  • 求详细介绍?devexpress 例子
  • 的是dev chartcontrol控件的pie饼图,请大家指点
  • 找了很多没找到, demo也没找到是怎么调用的,求有用过的给点资料啊,实在没办法了
  • 我现在有个挺早的项目DevExpress里面的ASPxDropDownList,这个控件有个自动填充的功能,填入数据的时候,如果下拉菜单中有数据,那么会自动补全为已有数据。比如下拉菜单中有“测试姓名”,那么填“测试”的时候...
  • 动态添加Button procedure TForm1.Button1Click(Sender: TObject);var NewItemLink: TdxBarItemLink; kk: TdxBarSubItem; MyBtn: TdxBarButton;begin MyBtn := TdxBarButton.Create(Self); MyBtn.Caption := ...

    动态添加Button

    procedure TForm1.Button1Click(Sender: TObject);
    var
      NewItemLink: TdxBarItemLink;
      kk: TdxBarSubItem;
      MyBtn: TdxBarButton;
    begin
      MyBtn := TdxBarButton.Create(Self);
      MyBtn.Caption := '通过程序放上去的';
      //MyBtn.ImageIndex:= 1;
      NewItemLink := MyBtn.BarManager.Bars[0].ItemLinks.Add;
      // NewItemLink := dxBarSubItem1.ItemLinks.Add;
      NewItemLink.Item := MyBtn;

      MyBtn.OnClick:= YouBtnOnClick; //动态添加Button的Onclick单击事件

      kk := TdxBarSubItem.Create(Self);
      kk.Caption := '又放上去一个东西';
      // NewItemLink := dxBarSubItem1.ItemLinks.Add;
      NewItemLink.Item := kk;
      NewItemLink := kk.ItemLinks.Add;
      NewItemLink.Item := MyBtn;
    end;

    动态添加Button的Onclick单击事件

    procedure TForm1.YouBtnOnClick(Sender: TObject);
    begin
      ShowMessage((Sender as TdxBarButton).Caption);
    end;

    转载于:https://www.cnblogs.com/JackSun/archive/2010/10/11/1847799.html

    展开全文
  • DevExpress 的 MVVM 框架生成的项目,怎么代码给主键赋值? WPF,MVVM模式,初次MVVM不熟悉。
  • XtraBars菜单怎么添加分割线?谢谢!!
  • DevExpress 汉化

    千次阅读 2012-10-19 13:45:44
    昨天从 Delphi学习分享和交流这个群(117312472 一个很好的交流群)淘到了一个 'Dev汉化.ini'这个文件,刚开始还不知道怎么用,百度了下了解了下用法,果然是个好东西啊,原先用到DevExpress控件的一些英文的地方都...

    昨天从 Delphi学习分享和交流这个群(117312472 一个很好的交流群)淘到了一个 'Dev汉化.ini'这个文件,刚开始还不知道怎么用,百度了下了解了下用法,果然是个好东西啊,原先用到DevExpress控件的一些英文的地方都汉化了,这里看起就顺眼多了。特别是日期控件不用再看E文了DevExpress 汉化 - ゞ戀戰ゞ - 恋战的博客

    1、拖一个TcxLocalizer控件(一些低版本是没有的)DevExpress 汉化 - ゞ戀戰ゞ - 恋战的博客

    2、设置这个控件的一些属性 (1)、FileName:Dev汉化.ini这个文件的路径 (2)、Active:true (3)、Locale:中文(简体,中国)   如图
    DevExpress 汉化 - ゞ戀戰ゞ - 恋战的博客

    3、运行就可以看到效果了

    DevExpress 汉化 - ゞ戀戰ゞ - 恋战的博客DevExpress 汉化 - ゞ戀戰ゞ - 恋战的博客


    4、最后这个文件路径肯定不能写死,就在FromCreate事件的地方动态调用了下

    var LocalFile: string;

        LocalFile := trim(ExtractFilePath(Application.ExeName) + '\Config\DevLocal.ini');

       //获得汉化文件
        if FileExists(LocalFile) then
        begin
          MainFM.cxLocalizer.LoadFromFile(LocalFile);
          MainFM.cxLocalizer.Language:='中文(简体,中国)';    //这行搞了好久,原先以为是 Locale属性
          MainFM.cxLocalizer.Active := true;
        end;

    5、汉化文件下载地址http://u.115.com/file/f752976f6c

    转载:http://blog.163.com/wdetianxia2000@126/blog/static/122721962201251302124587/

    展开全文
  • //怎么获取CALENDER选中的值????????? }); }); </script> </head> <body> <form id="form1" runat="server"> <div> <dx:ASPxLabel ID="ASPxLabel1" runat...
  • [img=https://img-bbs.csdn.net/upload/201404/18/1397802154_853281.png][/img] 单击运行程序的时候就出现了这种的框框什么意思 [img=... 怎么解决呀
  • asp.net devexpress 版本

    2021-04-19 14:31:24
    下了一个用devexpress12.1.8的asp的web项目,v20的能兼容吗,引用那里怎么改一下呢</p>
  • DevExpress控件在导出Excel时的是 Printingsystem的导出ExportToXls方法导出的,只能将整个界面按一个Excel工作表来导出!! 界面上有三个grid(每一个加载一个界面作为数据控件),我想要做的是在导出的时候,每...
  • C#开发WinForm之DevExpress框架里TreeList使用 文章目录C#开发WinForm之DevExpress框架...winForm里树型结构是比较常见的,不论何种前端开发,树型都需要学会怎么用。 而DexExpress里的TreeList是比较特殊的使用方...

    C#开发WinForm之DevExpress框架里TreeList使用

    前言

    winForm里树型结构是比较常见的,不论何种前端开发,树型都需要学会怎么用。
    而DexExpress里的TreeList是比较特殊的使用方式 ,因为它的数据结构是“平级”的,从结构上讲,数据没有上下级关系。都放在DataRowCollection这个Map集合里,它通过指定KeyFieldNameParentFieldName来标明上面级关系。换句话说,数据是平等的,关键在逻辑上来处理父子关系。

    新建一下windows 窗体,拖拽一下DevExpress.XtraTreeList.TreeList到窗体上,命名为workSpaceTree
    如下图方式打开列的设计面板
    在这里插入图片描述
    在这里可以指定展示的列,每一个属性都必需指定列,但我们可以设置列是否显示,所以我们同样可以控制列的展示。

    以后台返回的如下json格式数据为例

    {
    	"uid": "480304801154859009",
    	"objectName": "鬼六村族谱",
    	"children": [
    		{
    			"uid": "515117932112510976",
    			"objectName": "张三",
    			"releaseStatus": "Working",
    			"children": [
    				{
    					"uid": "518088753315577856",
    					"objectName": "张三大儿子",
    					"children": []
    				},
    				{
    					"uid": "504962126524186624",
    					"objectName": "张三二儿子",
    					"children": [
    						{
    							"uid": "504962126557741056",
    							"objectName": "张三大孙子",
    							"children": []
    						}
    					]
    				}
    			]
    		},
    		{
    			"uid": "518079417910558720",
    			"objectName": "张四",
    			"children": []
    		}
    }
    

    简单的数据结构,有父子关系。

    初始化树结构

    
            /// <summary>
            /// 初始化树信息
            /// </summary>
            private void LoadData(WorkspaceRootVo workspaceRootVo)
            {
                this.workSpaceTree.Nodes.Clear();
                this.workSpaceTree.BeginUpdate();
    
                DataTable dt = new DataTable();
                dt.Columns.Add("uid");
                dt.Columns.Add("index");
                dt.Columns.Add("parentUid");
                dt.Columns.Add("parentIndex");
                dt.Columns.Add("objectName"); 
    
                int index = 0;
                ParseDataTable(dt, workspaceRootVo.data, null, ref index, 0);
    
                //TreeList绑定数据
                this.workSpaceTree.DataSource = dt;
                
                this.workSpaceTree.KeyFieldName = "index";
                this.workSpaceTree.ParentFieldName = "parentIndex";
                this.workSpaceTree.EndUpdate();
                this.workSpaceTree.ExpandAll();
            }
    

    LoadData方法的参数WorkspaceRootVo 是上面json数据对象,如果不懂怎么解析,可百度Newtonsoft.Json,DataTable是树的数据源,指定给this.workSpaceTree.DataSource即可。 this.workSpaceTree.KeyFieldNamethis.workSpaceTree.ParentFieldName指定父子关系。

    ParseDataTable方法如下:

    private void ParseDataTable(DataTable dt, WorkspaceVo childVo, WorkspaceVo parentVo, ref int childIndex, int parentIndex)
            {
                DataRow dataRow = dt.NewRow();
                dataRow["uid"] = childVo.uid;
                int index = ++childIndex;
                dataRow["index"] = index;
                dataRow["objectName"] = childVo.objectName;
                if (null != parentVo)
                {
                    dataRow["parentUid"] = parentVo.uid;
                    dataRow["parentIndex"] = parentIndex;
                }
                else
                {
                    dataRow["parentUid"] = null;
                    dataRow["parentIndex"] = null;
                }
                dt.Rows.Add(dataRow);
                if (null != childVo.children && childVo.children.Count > 0)
                {
                    foreach (WorkspaceVo itemVo in childVo.children)
                    {
                        ParseDataTable(dt, itemVo, childVo, ref childIndex, index);
                    }
                }
            }
    

    通过递归调用,构建数据,每一个DataRow都通过dt.Rows.Add(dataRow);添加到Map集合里,本身没有父子关系,通过index和parentIndex,在逻辑上处理成父子关系。
    按如上方式即可渲染出一个树。

    TreeList选中事件

    给TreeList增加FocusedNodeChanged获得焦点事件。增加的方法如下

    this.workSpaceTree.FocusedNodeChanged += new DevExpress.XtraTreeList.FocusedNodeChangedEventHandler(this.WorkSpaceTree_FocusedNodeChanged);
    

    当然我们可以通过属性面板里的事件面板自动增加事件处理。
    在这里插入图片描述

    在事件处理函数里有2种方式取数据。

    
            /**
             * 工作区选中事件
             * */
            private void WorkSpaceTree_FocusedNodeChanged(object sender, DevExpress.XtraTreeList.FocusedNodeChangedEventArgs e)
            {
                TreeList workSpaceTree = sender as TreeList;
                TreeListNode node = workSpaceTree.FocusedNode;
                if (null != node)
                {
                    //方法一:通过GetDataRecordByNode获取结点数据集
                    DataRowView drv = workSpaceTree.GetDataRecordByNode(node) as DataRowView;
                    string uid = (string)drv["uid"];
                    string objectName= (string)drv["objectName"];
    
                    //方法二:通过GetDisplayText取得显示文件
                    workspaceSelectedUid = node.GetDisplayText("uid");
                    workspaceSelectedCtype = node.GetDisplayText("objectName");
                }
            }
    

    获得行的数据集

      		DataRowView drv = workSpaceTree.GetDataRecordByNode(node) as DataRowView;
                    string uid = (string)drv["uid"];
                    string objectName= (string)drv["objectName"];
    

    刷新数据以及控制选中

    有时候我们需要从后台重新请求数据并显示,或者我们主动控制哪个结点被选中。
    假如WorkspaceRootVo result = HttpUtil.GetResponse(UrlFactory.getWorkspaceUrl(GlobalData.ini.ReadValue(“home”)));是我们请求后台的接口方法。

    刷新树型方法如下:

    private void refreshTree()
            {
                workSpaceTree.ClearNodes();
                WorkspaceRootVo result = HttpUtil.GetResponse<WorkspaceRootVo>(UrlFactory.getWorkspaceUrl(GlobalData.ini.ReadValue("home")));
                LoadData(result);
            }
    

    控制选中方法如下:

    //调用testSetTreeSelect方法
    private void  test(){
    	testSetTreeSelect(this.workSpaceTree.Nodes, "515117932112510976");
    }
    
    
    //selectedUid是选中的结点Uid
    private Boolean testSetTreeSelect(TreeListNodes treeListNodes, string selectedUid)
            {
                if (!string.IsNullOrEmpty(selectedUid))
                {
                    for(int i = 0;i< treeListNodes.Count; i++)
                    {
                        TreeListNode treeListNode = treeListNodes[i];
                        string uid = treeListNode.GetDisplayText("uid");
                        if (!string.IsNullOrEmpty(uid))
                        {
                            if(uid == selectedUid)
                            {
                                treeListNode.Selected = true;
                                return true;
                            }
                            else
                            {
                                treeListNode.Selected = false;
                            }
                        }
                        if (treeListNode.Nodes.Count > 0)
                        {
                            Boolean re = testSetTreeSelect(treeListNode.Nodes, selectedUid);
                            if (re)
                            {
                                return true;
                            }
                        }
                    }               
                }
                return false;
            }
    

    我这里使用Uid做唯一标识,如果有其它参数唯一,也可以用来判断。通过遍历树下所有结点,通过唯一的uid比较,选中使用treeListNode.Selected = true;,不选中treeListNode.Selected = false;

    CheckState与Selected

    这2属性意思不一样。CheckState是在有复杂框情况下选中是否,事实上,它的“选中”和Selected的“选中”不是一个选中,Selected是唯一的,表示当前某个结点被“选中”,而CheckState表达的是“选择”的意思。
    TreeList带有CheckBox,并且节点要有三种状态(所有的子节点都选中,所有的子节点都没选择,一部分子节点选中)。
    TreeList.OptionsView.ShowCheckBoxes = true :是否显示CheckBox
    TreeList.OptionsBehavior.AllowIndeterminateCheckState = true :设置节点是否有中间状态,即一部分子节点选中,一部分子节点没有选中
    设置这两个属性之后就实现了TreeList带有CheckBox,并且节点有三种状态。
    复选框的子节点与父节点统一的规则有:

        1.  选择某一节点时,该节点的子节点全部选择
        2.  取消某一节点时,该节点的子节点全部取消选择
        3. 某节点的子节点全部选择时,该节点选择
        4. 某节点的子节点未全部选择时,该节点不选择
    

    代码如下

    //节点选中前事件,通过上一次选中状态计算这次状态
     private void treeList1_BeforeCheckNode(object sender, DevExpress.XtraTreeList.CheckNodeEventArgs e)  
     {  
         if (e.PrevState == CheckState.Checked)  
         {  
             e.State = CheckState.Unchecked;  
         }  
         else  
         {  
             e.State = CheckState.Checked;  
         }  
     }  
     
     //region 节点选中后事件 ,计算子结点和父结点状态
     private void treeList1_AfterCheckNode(object sender, DevExpress.XtraTreeList.NodeEventArgs e)  
     {  
         SetCheckedChildNodes(e.Node, e.Node.CheckState);  
         SetCheckedParentNodes(e.Node, e.Node.CheckState);  
     }  
     
     //region 设置子节点状态跟随父结点
     private void SetCheckedChildNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, CheckState check)  
     {  
         for (int i = 0; i < node.Nodes.Count; i++)  
         {  
             node.Nodes[i].CheckState = check;  
             SetCheckedChildNodes(node.Nodes[i], check);  
         }  
     }  
     
     //region 设置父节点状态,如果它的孩子都被选中,则状态是check(由上下文件环境传递),否则是CheckState.Indeterminate
     private void SetCheckedParentNodes(DevExpress.XtraTreeList.Nodes.TreeListNode node, CheckState check)  
     {  
         if (node.ParentNode != null)  
         {  
             bool b = false;  
             CheckState state;  
             for (int i = 0; i < node.ParentNode.Nodes.Count; i++)  
             {  
                 state = (CheckState)node.ParentNode.Nodes[i].CheckState;  
                 if (!check.Equals(state))  
                 {  
                     b = !b;  
                     break;  
                 }  
             }  
             if (b)  
             {  
                 node.ParentNode.CheckState = CheckState.Indeterminate;  
             }  
             else  
             {  
                 node.ParentNode.CheckState = check;  
             }  
             SetCheckedParentNodes(node.ParentNode, check);  
         }  
     }  
    

    树型结构展示

    默认展示形势是TreeList,效果
    在这里插入图片描述

    如果想换成树型,则需要设置ViewStyle=TreeView。或者如下操作
    打开Run Designer找到Options,设置ViewStyle
    在这里插入图片描述

    展开和关闭图标

    默认的展开和关闭图标是箭头,如果想换成+-。则如下操作
    打开Run Designer找到Options,设置LookAndFeel
    在这里插入图片描述

    LookAndFeel.UseDefaultLookAndFeel=false
    LookAndFeel.UseWindowsXPTheme=false
    

    增加过滤显示功能

    TreeList自身是提供了一个数据过滤功能,但这个功能有一个缺点。就是如果目录树是多级目录树,并且父节点不符合过滤条件时,即使里面的子节点符合过滤条件,也不会显示对应的节点。所以我们使用DevExpress.XtraEditors.SearchControl控件,
    拖拽一个SearchControl到面板上,指定属性Client为需要过滤的树即可,其它不用设置。
    有些人说给树添加FilterNode事件,根据不需要,而且DevExpress17.2.7版本下TreeList也没有FilterNode事件。

    展开全文
  • DevExpress52 汉化

    2013-04-04 10:11:27
    昨天从 Delphi学习分享和交流这个群(117312472 一个很好的交流群)淘到了一个 'Dev汉化.ini'这个文件,刚开始还不知道怎么用,百度了下了解了下用法,果然是个好东西啊,原先用到DevExpress控件的一些英文的地方都...
  • 有些代码非常有用,但是的时候就记不清怎么写,所以就在这里打个草稿。 //设置组汇总 private void SetSummation() { this.gridViewShipment.GroupSummary.Add(DevExpress.Data.SummaryItemType.Sum, ...
  • DevExpress 画等高线怎么画等高线呢,什么控件呢,求大神解答。。。
  • Devexpress里关于gridControl里面的ShowLoadingPanel.我的是wpf下的框架.gridcontrol里面有ShowLoadingPanel.只有true和fals属性.设置true之后.怎么弄都是一直显示.想达到的效果是加载数据时显示,加载完之后不显示...
  • dev我不怎么,边学边记: 如果要在gridControl 页面底部统计记录总数只需两步: 1:设置显示gridControl页脚 2,、设置统计列: DevExpress.XtraGrid.Columns.GridColumncol_Profit=gridView1.Columns[0...
  • Devexpress XtraReport 设置页面大小单位

    万次阅读 2013-04-08 16:24:23
    今天做报表打印,研究怎么设置纸张大小,原理的项目里面的单位是厘米,Devexpress XtraReport怎么也找不到,后来无意中发现有这么一个属性。。。 哭了,这里记录一下
  • 还有ZIP压缩、条形码和单位转换功能,我在工作中用得不多,所以没试,还有一个快照功能,暂时还没有研究出来要怎么用。顺便说一句,我觉得很奇怪的是单位转换这么简单的功能,明明就包括在了DevExpress.Docs.v13.1....
  • 最近把DevExpress版本从13.1升级到了17.2,结果发现继承自DevExpress的自定义控件居然在工具箱中消失了,弄了两天还是没有任何头绪,部分自定义Dev控件可以正常出现,但大部分自定义Dev控件却怎么也出不来, ...
  • DevExpress的框架介绍,给初学者的一些建议

    万次阅读 多人点赞 2017-09-24 15:02:57
    DevExpress的框架介绍,给初学者的一些建议,知道怎么学,比学什么更重要首先简单介绍一下DevExpress这款软件,不用官方术语,从我体验来说,我当初接触这款软件是由于接了一个项目,做一个C/S(客户端/服务器)架构...
  • DevExpress.v11.2 for Silverlight 破解

    千次阅读 2012-06-17 14:56:00
    试用了 DevExpress.v11.2 版的 Silverlight 控件库,很多控件是项目中需要的,我个人不喜欢制造已有的好轮子(浪费时间),有强大的第三方库之! 强烈鄙视那些工具反编译后,将源码复制到新项目中,重新整理改...
  • DevExpress报表设计之表格

    千次阅读 2012-05-28 22:28:35
    先看看效果     再看下设计器里的效果 ...如上面的设置,表示每10行一页,这里的数据源是DataSet,其他数据源还不清楚怎么设置.   表格的样式由Styles确定,其中EventStyle代表基数行的效果,OddS

空空如也

空空如也

1 2 3
收藏数 51
精华内容 20
关键字:

devexpress怎么用