zoukankan      html  css  js  c++  java
  • 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事件了,也是我们上面使用的,它的效果就是只有你单击了那一行才会触发事件。

  • 相关阅读:
    LeetCode 350. Intersection of Two Arrays II (两个数组的相交之二)
    LeetCode 349. Intersection of Two Arrays (两个数组的相交)
    LeetCode 290. Word Pattern (词语模式)
    LeetCode 266. Palindrome Permutation (回文排列)$
    34.Search for a Range
    spark连接mongodb
    NLPIR中文分词器的使用
    scala和maven整合实践
    Spark中的键值对操作-scala
    301.Remove Invalid Parentheses
  • 原文地址:https://www.cnblogs.com/qingtian-jlj/p/4864786.html
Copyright © 2011-2022 走看看