WEB开发网
开发学院软件开发C语言 C# WinForm下DataGridView单元按钮列 阅读

C# WinForm下DataGridView单元按钮列

 2009-07-01 07:07:41 来源:WEB开发网   
核心提示: 这个是CheckBox的,如果是RadioButton的话你还需要控制其它RadionButton的状态,C# WinForm下DataGridView单元按钮列(4),这个时候就没有三种状态而是两种状态了,代码可以修改成这样:private void dataGridView1_Cel

这个是CheckBox的,如果是RadioButton的话你还需要控制其它RadionButton的状态,这个时候就没有三种状态而是两种状态了,代码可以修改成这样:

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex >= 0)
    {
        DataGridViewColumn column = dataGridView1.Columns[e.ColumnIndex];

        if (column is DataGridViewCheckBoxColumn)
        {
            DataGridViewDisableCheckBoxCell cell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex] as DataGridViewDisableCheckBoxCell;
            if (!cell.Enabled)
            {
                return;
            }
            if ((SelectedStatus)cell.Value == SelectedStatus.NoSelected)
            {
                cell.Value = SelectedStatus.Selected;
                SetRadioButtonValue(cell);
            }
            else
            {
                cell.Value = SelectedStatus.NoSelected;
            }
        }
    }
}

private void SetRadioButtonValue(DataGridViewDisableCheckBoxCell cell)
{
    SelectedStatus status = (SelectedStatus)cell.Value;
    if (status == SelectedStatus.Selected)
    {
        status = SelectedStatus.NoSelected;
    }
    else
    {
        status = SelectedStatus.Selected;
    }
    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    {
        DataGridViewDisableCheckBoxCell cel = dataGridView1.Rows[i].Cells["checkbox"] as DataGridViewDisableCheckBoxCell;
        if (!cel.Equals(cell))
        {
            cel.Value = status;
        }
    }
}

函数SetRadionButtonValue负责修改宿主DataGridView当前列中其它的RadionButton的状态。

在完成这些工作后,一个相对完整的支持RadionButton或三种状态的CheckBox列的DataGridView界面就完成了,你可以根据需要在接下来的代码中来判断DataGridView中哪些行被选中了,或者哪些行处于未确定的选择状态(CheckBox的第三种状态),进而做出判断来完成后面的工作。

最后我会提供整个工程供大家下载,其中也给出了DataGridViewLinkColumn列中的一些效果,如当鼠标指向超链接时显示一个ToolTip,当用户点击超链接时打开一个网页等。

上一页  1 2 3 4 

Tags:WinForm DataGridView 单元

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接