【帮帮忙自定义控件问题】如何在选择listview中一行的多列中的数据分别写到自定义控件的属性中

iwqfeng 2007-08-26 07:28:24
如何在选择listview中一行的多列中的数据分别写到自定义控件的属性中,例如一个值保存在Text的值中,一个在Tag的值中。或者自定义几个个属性可以存放数据,好让我可以随时调用多个数据,我查到的一段代码可以返回一个值到Text的值中,但我不知道怎么让其他值可以返回到其他的属性值中。
代码如下:
Public Class MultiItem

Inherits ListViewItem
Implements IComparable

Public Value1 As String
Public Value2 As String
Public Value3 As String
Public Value4 As String

Sub New(ByVal V1As String, Optional ByVal V2 As String = "", Optional ByVal V3 As String = "", Optional ByVal V4 As String = "")
MyBase.New()
Value1 = V1
Value2 = V2
Value3 = V3
Value4 = V4

Me.Text = V1
End Sub

Private Function CompareTo(ByVal obj As Object) As Integer Implements IComparable.CompareTo
If obj Is Nothing Then Return 1

Dim other As MultiItem= CType(obj, MultiItem)

Return StrComp(Value1 , other.Value1 , CompareMethod.Text)
End Function

End Class
...全文
367 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
iwqfeng 2007-08-29
  • 打赏
  • 举报
回复
结贴了,算了,没人解决
iwqfeng 2007-08-27
  • 打赏
  • 举报
回复
我是想在那个返回值改变下,让返回一个值改成多个值,在继承的控件的 Tag 属性里面保存一个
iwqfeng 2007-08-27
  • 打赏
  • 举报
回复
在线等答案,给出答案就给分
iwqfeng 2007-08-27
  • 打赏
  • 举报
回复
上面程序是把变量 Value1 的值返回到这个自定义控件的 Text 属性中。也时就运行时可以显示出来的
我还想把另一个变量例如 Value2 的值返回到这个自定义控件的 Tag 属性里面,让我以后可以调用
我现在不知道怎么返回第二个值到 Tag 属性里面
wzuomin 2007-08-27
  • 打赏
  • 举报
回复
不太明白你要干嘛?
你不已经定义了四个Public变量了么?可以用它们保存数据啊
zhchg6666 2007-08-27
  • 打赏
  • 举报
回复
up
wzuomin 2007-08-27
  • 打赏
  • 举报
回复
窗体上添加一个ListView1控件

Public Class Form2
Public Class MyListItem
Inherits ListViewItem

'自定义属性,可以定义多个
Private _TestItem1 As String
Private _TestItem2 As String

Public Property TestItem1() As String
Get
Return _TestItem1
End Get
Set(ByVal value As String)
_TestItem1 = value
End Set
End Property

Public Property TestItem2() As String
Get
Return _TestItem2
End Get
Set(ByVal value As String)
_TestItem2 = value
End Set
End Property

Public Sub New(ByVal item1 As String, ByVal item2 As String)
TestItem1 = item1
TestItem2 = item2
End Sub
End Class


Private Sub ListView1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.DoubleClick
Dim item As MyListItem = CType(ListView1.SelectedItems(0), MyListItem)
MsgBox(String.Format("原属性:text={0} subItem(1)={1} " + vbCrLf + "自定义属性值:TestItem1={2} TestItem2={3}", _
item.Text, item.SubItems(1).Text, item.TestItem1, item.TestItem2), MsgBoxStyle.Information, "Info")
End Sub

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.ListView1.View = View.Details
For i As Integer = 0 To 3
Me.ListView1.Columns.Add("Column" + i.ToString)
Next
For i As Integer = 0 To 10
Dim item As New MyListItem("TestItem1-" + i.ToString, "TestItem2-" + i.ToString)
item.Text = "item" + i.ToString
item.SubItems.Add("SubItem1")
item.SubItems.Add("SubItem2")
item.SubItems.Add("SubItem3")
Me.ListView1.Items.Add(item)
Next
End Sub
End Class
iwqfeng 2007-08-26
  • 打赏
  • 举报
回复
100分都没人看得上么?
郁闷啊
知道的告诉下,着急啊,谢谢了

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧