gpt4 book ai didi

winforms - Infragistics 中的复选框列赢得了 ultragrid

转载 作者:行者123 更新时间:2023-12-04 05:14:51 25 4
gpt4 key购买 nike

我是 Infragistics 的新手。
在我的 winforms 应用程序中,我使用 Ultrawingrid 来显示数据库中的数据。

如何将复选框列显示为网格中的第一列?
此外,我需要捕获选中/取消选中事件,然后在应用程序中读取相应的网格行/单元格。

你能帮我解决这个问题吗?

谢谢阅读。

最佳答案

您需要为要呈现为复选框的列获取 UltraGridColumn 实例。就像是:

UltraGridColumn ugc = myGrid.DisplayLayout.Bands[0].Columns[@"myColumnKey"];

然后将列的显示样式更改为复选框并确保它允许编辑:
ugc.Style = ColumnStyle.CheckBox;
ugc.CellActivation = Activation.AllowEdit;

在我看来,将这个网格初始化代码放在表单的 Load 事件或网格的 InitializeLayout 事件的处理程序中是合适的。

处理网格的 CellChange 事件以查看用户何时更改复选框值:
private void mygrid_CellChange(object sender, CellEventArgs e)
{
if (StringComparer.OrdinalIgnoreCase.Equals(e.Cell.Column.Key, @"myColumnKey"))
{
// do something special when the checkbox value is changed
}
}

根据要求,这里是演示添加未绑定(bind)列、将其移动到最左侧位置、处理单元格更改事件以及从网格中检索附加值的示例代码。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=tempdb;Trusted_Connection=true"))
{
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("select * from sysobjects", conn);
conn.Open();
da.Fill(ds);
ultraGrid1.DataSource = ds;
}
}

private void ultraGrid1_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e)
{
UltraGridColumn checkColumn = e.Layout.Bands[0].Columns.Add(@"checkColumnKey", @"caption");
checkColumn.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.CheckBox;
checkColumn.CellActivation = Activation.AllowEdit;
checkColumn.Header.VisiblePosition = 0;
}

private void ultraGrid1_CellChange(object sender, CellEventArgs e)
{
if (!StringComparer.Ordinal.Equals(e.Cell.Column.Key, @"checkColumnKey"))
{
return;
}

bool checkedState = bool.Parse(e.Cell.Text);

DataRowView row = e.Cell.Row.ListObject as DataRowView;
string name = row.Row[@"name"] as string;

MessageBox.Show(string.Format("Checked={0}, name={1}", checkedState, e.Cell.Row.ListObject));
}
}

关于winforms - Infragistics 中的复选框列赢得了 ultragrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5454326/

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