1

我对使用基础设施控制(昨天开始)相当陌生。虽然它们(非常)令人印象深刻,但它们确实增加了另一层复杂性,我正在蒙混过关。所以我问我觉得这是一个相当简单的问题:

我试图从组合框中显示的列之外的另一列中获取值。到目前为止,我所有的尝试都只获取了标题列的值,而不是选择的行列中的值。

具体来说,我想在选择一行时从我的超组合框中获取 lastname 列中的值并将其放在文本框中。到目前为止,我的以下代码将重新运行标题列 (LastName),无论我选择哪一行,都没有其他内容。

Private Sub ucboPatientInfo_RowSelected(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.RowSelectedEventArgs) Handles ucboPatientInfo.RowSelected
        ucboPatientInfo.ValueMember = "accounts"
        LastName = ucboPatientInfo.SelectedRow.Band.Columns(1).ToString

我添加了:“ucboPatientInfo.ValueMember = 'accounts'”以帮助澄清我的代码在做什么它实际上不在这部分代码中。

请帮忙

4

2 回答 2

4

看起来您找到了解决自己问题的有效解决方案。我想我会添加更多信息和要考虑的事情。

您可能希望避免对单元格进行硬索引引用,以防将来在您将新数据添加到网格的数据源时位置发生变化。假设您在 lastName 之前插入另一列,现在您的 .Cells(5) 将返回不正确的数据。

而是尝试使用 Cells("columnName") 进行如下访问:

LastName = ucboPatientInfo.Cells("LastName").Value

您还应该尝试在事件中使用 eventArgs 和 sender 对象,并避免直接控制引用。所以你的代码可能看起来像这样:

LastName = e.Row.Cells("LastName").Value.ToString()

无论如何,很高兴看到你的工作进展顺利。

于 2009-01-15T19:50:35.937 回答
0

找到正确的组合:

LastName = ucboPatientInfo.Cells(5).Value
于 2008-12-17T21:59:36.170 回答