zoukankan      html  css  js  c++  java
  • C#中对Winform中的DataGridView的控制技巧。(单独控制某单元格的按钮不显示、某单元格的ReadOnly)

    1:控制按钮列中的某一行不显示按钮。(使用环境:数据的移动,如把第二行的数据移动到上面去,最下面的一行为合计行,不允许移动,因此,就需要把第一行与最后一行的按钮屏蔽掉。屏蔽的方法:把按钮改成普通的单元格。具体实现代码如下:(第8列中的第一行与最后一行按钮不显示))

                //定义绘画表格前的事件,在绘画前把按钮转换成普通单元格。
                dataGrid.RowPrePaint += dataGrid_RowPrePaint;
            //控制第一行和最后一行的按钮不显示。
            private void dataGrid_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
            {
                if (e.RowIndex == 0 || e.RowIndex == dataGrid.RowCount - 1)
                {
                    if (dataGrid[7, e.RowIndex] is DataGridViewButtonCell)
                    {
                        dataGrid[7, e.RowIndex] = new DataGridViewTextBoxCell();
                        dataGrid[7, e.RowIndex].Value = string.Empty;
                    }
                }
            }
    2:控制某单元格是否允许修改。(由于没有单独控制某个单元格的ReadOnly属性,因此,只能通过技巧来控制了。原理其实是判断进入的单元格时判断做逻辑处理,对于允许修改的,就把整个表格的ReadOnly设为false,否则就设为 true)
            private void dataGrid_RowEnter(object sender, DataGridViewCellEventArgs e)
            {
                if (e.RowIndex == dataGrid.RowCount - 1)
                    dataGrid.ReadOnly = true;
                else
                    dataGrid.ReadOnly = false;
                dataGrid.Columns[0].ReadOnly = true;
                dataGrid.Columns[3].ReadOnly = true;
            }

     原创作品出自努力偷懒,转载请说明文章出处http://blog.csdn.net/kfarvid或 http://www.cnblogs.com/kfarvid/


  • 相关阅读:
    hdu2328 Corporate Identity
    hdu1238 Substrings
    hdu4300 Clairewd’s message
    hdu3336 Count the string
    hdu2597 Simpsons’ Hidden Talents
    poj3080 Blue Jeans
    poj2752 Seek the Name, Seek the Fame
    poj2406 Power Strings
    hust1010 The Minimum Length
    hdu1358 Period
  • 原文地址:https://www.cnblogs.com/kfarvid/p/2361679.html
Copyright © 2011-2022 走看看