private void dgvVirtualUserList_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
        {
            foreach (DataGridViewRow dgvr in dgvVirtualUserList.Rows)
            {
                if (dgvr.Cells[5].Value.ToString()=="")
                {
                    DataGridViewLinkCell dgvc = dgvr.Cells[8] as DataGridViewLinkCell;
                    dgvc.Displayed = false;//这步错误!我想让这单元格的Link控件失效。。复值不了怎办????
                                          //有什么办法让某单元格的控件失效呢????
                }
            }        }
谢谢各位·········

解决方案 »

  1.   

    dgvc.ReadOnly = true; 
      

  2.   

    dgvc.ReadOnly = true;  设置为只读就行了
      

  3.   

    没有Displayed属性吧??应该有Enabled 属性,设置成false即可。
      

  4.   

     DataGridViewLinkCell dgvc = dgvr.Cells[8] as DataGridViewLinkCell;
    if(dgvc!=null)
    {
                        dgvc.ReadOnly = true;                    
    }
      

  5.   

    dgvc.Displayed = false;//这步错误!我想让这单元格的Link控件失效。。复值不了怎办????
    -------------------
    Displayed 是获取 不能设置
      

  6.   

    Displayed 本来就是只能获取的属性,不能赋值的。
      

  7.   

    恩,Displayed是只读的属性,设置ReadOnlye吧
      

  8.   

    不行啊,各位····dgvc.ReadOnly = true; 后按钮不受影响,也能点击也没有Enabled 属性啊
      

  9.   


    设置指向为空 好像是LinkBehavior这个属性
      

  10.   

    LinkBehavior属性有:
    SystemDefault  此设置的行为取决于使用“控制面板”或 Internet Explorer 中的“Internet 选项”对话框设置的选项。
    AlwaysUnderline  该链接始终显示为带下划线的文本。
    HoverUnderline  仅当鼠标悬停在链接文本上时,该链接才显示带下划线的文本。
    NeverUnderline  链接文本从不带下划线。 仍可使用 LinkLabel 控件的 LinkColor 属性将该链接与其他文本区分开。
      

  11.   

    那一整列是DataGridViewLinkColumn类型的,我想判断这一行的某个单元格为某值时,对应行LinkButton就失效。
      

  12.   

    findcontrols 找到“充值”Linkbutton 然后再设置Linkbutton.Enable=false; 
      

  13.   


    private void dgvVirtualUserList_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
            {
                if ((string)dgvVirtualUserList[5, e.RowIndex].Value == "" && dgvVirtualUserList[8, e.RowIndex].GetType() == typeof(DataGridViewLinkCell))
                {
                    dgvVirtualUserList[8, e.RowIndex] = new DataGridViewTextBoxCell();
                    dgvVirtualUserList[8, e.RowIndex].ReadOnly = true;               
                }
            }
      

  14.   

    将“充值”放在<span id=xxx></span>里,然后再设xxx为hidden。
      

  15.   

    我的方法是这样的。。UseColumnTextForLinkValue = false;就OK!!也欢迎大家更有好的方法分享一下啊。我过段时间再结贴。。private void dgvVirtualUserList_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
            {
                foreach (DataGridViewRow dgvr in dgvVirtualUserList.Rows)
                {
                    if (dgvr.Cells[5].Value.ToString() == "")
                    {
                       
                        DataGridViewLinkCell dgvc = dgvr.Cells[8] as DataGridViewLinkCell;
                      
                        dgvc.UseColumnTextForLinkValue = false;
                       
                        
                    }
      

  16.   

    哦!不好意思看错了,在ddgvVirtualUserList_RowPostPaint这个方法刚才试了一下,不行
    注意:我在这个类里面也用了dgvVirtualUserList_CellFormatting方法
      

  17.   

    CellFormatting 里你写什么了
      

  18.   

     if (dgvVirtualUserList.Columns[e.ColumnIndex].Name == "BuyerName")
                {
                    if (String.IsNullOrEmpty(Convert.ToString(e.Value)))
                    {
                        e.Value ="未购买";
                    }               
                }
                if (dgvVirtualUserList.Columns[e.ColumnIndex].Name == "BuyTime")
                {
                    if (String.IsNullOrEmpty(Convert.ToString(e.Value)))
                    {
                        e.Value = "未购买";
                    } 
                }
      

  19.   

    这个应该不影响。你可以这样,只写RowPostPaint事件 想#23那样  看看效果。或者写建个Form 试下