gpt4 book ai didi

c# - 将单选按钮添加到 Windows 窗体数据网格控件

转载 作者:行者123 更新时间:2023-11-30 18:36:46 25 4
gpt4 key购买 nike

enter image description here

我的 Windows 窗体上有 DataGrid,我在运行时向 DataGrid 添加一行。我在 DataGrid 上有一列,我需要在运行时向其中添加不同的 UI 控件(列的每个单元格将包含不同的 UI 控件,如下拉列表、复选框、超链接、单选按钮)。我可以添加除单选按钮控件之外的其他控件,如何将单选按钮添加到 DataGrid 列?我用过this它对我不起作用,因为它需要整个列作为单选按钮列。

最佳答案

这里介绍了如何使一列复选框用作单选按钮。从您的图片中,您需要一行,所有列都作为 RadioBUttons -> 这更复杂,并且取决于您将数据绑定(bind)到 datagridview 的方式。我更多地使用 VB.NET,所以这里可能有一些语法错误...

在您的数据 GridView 中创建一个 DataGridViewCheckBoxColumn 列使用 DataGridView 的三个事件,我的复选框列用作单选按钮

private Boolean bRbtnCurrentValue 
private Int32 iColumnRadioBtn = 4
private Datagridview dgv //Only for this exapmle

//In Event dgv_CellBeginEdit
{
//Here we stored current value to variable
if (this.dgv.CurrentCell.ColumnIndex = this.iColumnRadioBtn)
this.bRbtnCurrentValue = this.dgv
}

//In Event dgv_CellEndEdit
{
//Here we update if value changed
Boolean bNewValue = this.dgv.CurrentCell.Value
if (this.dgv.CurrentCell.ColumnIndex = this.iColumnRadioBtn)
{
if(bNewValue=False)
this.dgv.CurrentCell.Value=this.bRbtnCurrentValue
else
//Here jo actions when value changed(database update etc.)
}
}

//Event dgv_ CurrentCellDirtyStateChanged
{
if(this.dgv.CurrentCell.ColumnIndex = this.iColumnRadioBtn) andalso (dgv.IsCurrentCellDirty = True)
{
foreach(DataGridViewRow dgvr In dgv.Rows)
{
If (dgvr.Index = dgv.CurrentRow.Index)
If (dgv.CurrentCell.Value = True)
dgv.CancelEdit() //True to False cannot be changed
else
If (dgvr.Cells(dgv.CurrentCell.ColumnIndex).Value=True)
dgvr.Cells(dgv.CurrentCell.ColumnIndex).Value = False
}
}
}

关于c# - 将单选按钮添加到 Windows 窗体数据网格控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13489238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com