Dev的GridControl控件选择框的使用

先介绍环境:VS2010,dev11.2

想要达到的效果:,当单击某一行时前面的选择框选中。

在网上找了不少,但是感觉跟我想的做法很不一样(有很多都是再另外添加一个什么CheckBox,这个我在Dev里是没有找到)

下面介绍我的做法:

首先:GridControl控件要设置为不可编辑状态,在“OptionsBehavior”下将“Editable”的值改为false,否则左键单击不管用。

第一步:

进入“Run Designer”添加三列,主要讲述一下第一列“判断列”的属性设置,这用了Dev的自带属性,在添加该列时将其属性[ColumnEdit]从下拉框中选择“CheckEdit”,然后打开该属性的下来箭头,设置其“ValueChecked”和“ValueUnChecked”的类型及值,这里我用了int类型的1和0来作为状态的指示。【注:最好还是不要用默认的Bool型的true和false,这样容易出现总是无法显示打钩选中的情况,但是用int型的就不会出现此情况;我找到问题所在了:因为我用了ToString函数,这时会自动把true或者false改变为大写的“True”或“False”,因此判断时就不正确,修改了这一点就可以正确大道目的】

另:我的做法主要就是这一步跟网上说的不太一样,不是添加了一个CheckBox而是用Dev自己的已有的属性。

第二步:

添加事件,选中GridControl的GridView,然后添加其事件“RowClick”,添加事件代码如下:

private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
        {
            string midValueStr = gridView1.GetDataRow(e.RowHandle)["select"].ToString();
            if (midValueStr == "0" || midValueStr == "")
            {
                gridView1.GetDataRow(e.RowHandle)["select"] = 1;
            }
            else
            {
                gridView1.GetDataRow(e.RowHandle)["select"] = 0;
            }
        }

注:if条件中的空值判断,我的这一列是在数据库取出数据后新添加的,所以其值取出来是空的,而不是0.因此,该行未选中时可能有两种值即0和空。

第三步:

运行,即可实现上述效果。而且在这种情况下,GridControl绑定的数据源中,我们所添加的判断列的值也是实时改变的,这也方便后续取值使用。

小结:

①网上很多方法都添加了很多东西,最典型比如添加了CheckBox然后更改属性,同时又用了不止一个事件,不知道是我没看懂还是我没有完全理解那些人的方式,反正我觉得太复杂了,而且有的控件或者属性、事件我都找不到。不知道为什么不用dev本身的东西。

②再说一下我在试验过程中测试的几个相似的事件:FocusedRowChanged事件,它是在选中行的位置改变时发生(比如拖动选中行),而不是说你选中了另一行时发生;事件FocusedRowObjectChanged代表的才是在选中行改变时触发,但是这个事件在控件最初载入时也会触发,因此我感觉很不方便;CellValueChanged事件也可以实现上面的效果,此时整个控件是可编辑状态,但是需要根据不同列的需求来设置具体列的可编辑状态;最后就是RowClick事件了,也是我们上面使用的,它的效果就是只有你单击了那一行才会触发事件。

时间: 2024-08-07 18:35:26

Dev的GridControl控件选择框的使用的相关文章

DEV的GridControl控件的选中列属性设置高光

设置Run Designer=>Views=> OptionsSelection下面的: EnableAppearanceFocusedCell = False,//鼠标移开,失去焦点,仍然保持其原有的样式风格 EnableAppearanceHideSelection = False//控制点击选中行是否出现白色背景的单元格. 设置背景颜色: Run Designer=>Views=>Appearance=>FocusedRow=>BackColor//设置击中行的背

GridControl控件的数据显示的样式控制

如上两图所示,Dev列表控件GridControl默认的格式并没有渐变变色效果,显示的日期数据,也是“yyyy-MM-dd”的格式,而非“yyyy-MM-dd HH:mm:ss”即使对于后面有长格式的日期数据也一样.下面分别对这两种情况进行说明. 如上两图所示,我们有时候需要控制列表访问过的颜色变化,或者是时间显示格式等内容,这个时候设置GridView的RowCellStyle即可实现,如下所示. this.gridView1.RowCellStyle += new DevExpress.Xt

ExtJs内的datefield控件选择日期过后的事件监听select

[摘要]: 选择时间过后我们为什么需要监听事件?一般有这样一种情况,那就是用于比较两个时间大小或者需要判断在哪个时间点上需要做什么样的操作.基于这样的种种情况,我们很有必要琢磨一下datefield控件的日期选择事件了的. 那么我们如何添加日期选择事件呢?针对这样一个问题,网上有很多ExtJs的盆友想到了change事件,就是当文本框内日期值就上一次值来说不同时,触发该事件,change事件添加核心代码如下所示: { xtype: 'datefield', name: 'birthday', f

设置DevExpress GridControl控件时间列显示时、分、秒样式

如题,如果Dev GridControl控件绑定DataTable数据源时,DataTable中的某一列为Date类型时,GridControl默认显示样式只显示当前日期,并不会将时.分.秒显示出来.如图: 解决方案: 设置显示样式,如图: 设置完成,显示结果展示,如图:

DevExpress控件的GridControl控件小结

XtraGrid 的关键类就是:GridControl和GridView.GridControl本身不显示数据,数据都是显示在GridView/CardView /XXXXView中.GridControl是各种View的容器.所以要控制显示,要从GridView这些类入手. 1.DevExpress控件组中的GridControl控件不能使横向滚动条有效.现象:控件中的好多列都挤在一起,列宽都变的很小,根本无法正常浏览控件单元格中的内容. 解决: gridView1.OptionsView.C

DevExpress的GridControl控件更新數據問題解決辦法

開發WPF程序時,使用Devexpress的GridControl控件用ItemSource綁定數據,在頁面進行編輯時,當屬性繼承INotifyPropertyChanged接口時會同步更新後臺數據.今天在開發時遇到一種情況,當通過GridControl中Row上Button[Command]改變行內數據,也就是binding的Detail數據已改變,這時NotifyPropertyChanged有觸發,但改變的行數據不會同步更新到UI上,目前測試有兩種方式進行解決. 1.直接new 一個新的行

File控件选择图片的时候在Html5下马上预览

页面HTML <div> <img src="@pic.Path" id="img" style="width:200px;height:200px;" /> <form id="form_photo" method="post" action="/N/SavePhoto?id=1"> <input style=" display:no

Web控件文本框Reset的功能

在前一篇中<怎样实现Web控件文本框Reset的功能>http://www.cnblogs.com/insus/p/4120889.html Insus.NET只实现了文本框的功能.单个或是多个,有默认值与无值.只要用户点击重置(Reset)时,我们就要以对Web控件进行重置. 参考博文,其实你完全可以写出其它的控件的重置功能来.如DropDownLsit,ListBox,CheckBox,CheckBoxList,RadioButtonList等等. 想实现什么控件Reset功能,均需要创建

DEV 之 有些控件不允许拖动。

DEV 之 有些控件不允许拖动.  设置一个参数即可解决问题 原文地址:https://www.cnblogs.com/struggle-cs/p/9935939.html