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控件失效。。复值不了怎办????
//有什么办法让某单元格的控件失效呢????
}
} }
谢谢各位·········
if(dgvc!=null)
{
dgvc.ReadOnly = true;
}
-------------------
Displayed 是获取 不能设置
设置指向为空 好像是LinkBehavior这个属性
SystemDefault 此设置的行为取决于使用“控制面板”或 Internet Explorer 中的“Internet 选项”对话框设置的选项。
AlwaysUnderline 该链接始终显示为带下划线的文本。
HoverUnderline 仅当鼠标悬停在链接文本上时,该链接才显示带下划线的文本。
NeverUnderline 链接文本从不带下划线。 仍可使用 LinkLabel 控件的 LinkColor 属性将该链接与其他文本区分开。
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;
}
}
{
foreach (DataGridViewRow dgvr in dgvVirtualUserList.Rows)
{
if (dgvr.Cells[5].Value.ToString() == "")
{
DataGridViewLinkCell dgvc = dgvr.Cells[8] as DataGridViewLinkCell;
dgvc.UseColumnTextForLinkValue = false;
}
注意:我在这个类里面也用了dgvVirtualUserList_CellFormatting方法
{
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 = "未购买";
}
}