vb listbox 修改 某一行

2025-04-05 17:13:26
推荐回答(4个)
回答1:

问题1:

Private Sub Command1_Click()
list1.list(list1.listindex) = text1.text
end sub

问题2:

Private Sub Command2_Click()
dim fn as string, i as long
fn="E:\大刚缴费系统\" & Year(Now) & "\" & Month(Now) & "\" & Day(Now) & ".txt"
if dir(fn)<>"" then kill fn
open fn for output as #1
for i=0 to list1.listcount - 1
print #1, list1.list(i)
next
close #1
End Sub

回答2:

我给一个程序你 我有写过这种程序

http://sbscn.gotoip2.com/ftpUploadfile/sbscn/tempfile_30M/201003131903_javascriptEdit.rar

双击时把list的id加到Text控件的Tag中(借用一下)
Text2.Text = List1.Text
Text2.Tag = List1.ListIndex

恢复时使用Tag来做标识
List1.List(Text2.Tag) = Trim(Text2.Text)

你看我的程序 在第一个文本框里输入的内容

按Init!按钮就会添加到List中 关闭程序时会自动for open到相同目录下的context.txt中

程序启动时会读入List中

完全符合你的需求

双击List中的项目 在右边的文本框会显示
双击右边的文本框 可以编辑内容 编辑好后 在文本框上单击鼠标中键滑轮

选择 修改保存到列表 ,就会更新List中对应项的内容

=======================

自己看看
Private Sub Form_Load()

openfile函数在模块文件里 读取的

另外有一个savefile函数 也一样

If Dir(App.Path & "/code.txt") <> "" Then
Dim s$(), i%
s = Split(openfile(App.Path & "/code.txt"), vbCrLf & vbCrLf & "<$-$-$>" & vbCrLf & vbCrLf)
For i = 0 To UBound(s)
List1.AddItem Trim(s(i))
Next
End If

Private Sub Form_Unload(Cancel As Integer)
If List1.ListCount > 0 Then
Dim s$, i%
For i = 0 To List1.ListCount - 1
s = s & List1.List(i) & IIf(i = List1.ListCount - 1, "", vbCrLf & vbCrLf & "<$-$-$>" & vbCrLf & vbCrLf)
Next
savefile App.Path & "/code.txt", s
End If
End Sub

我的算法是用分隔符 文本里用一个<$-$-$>来做分隔符 读入后用 split分隔再for循环到List中

退出时对应for循环List,一样中间添加<$-$-$>分隔符 再整体重新写入到txt中

而不是说从中间修改 而是全部重新写入

回答3:

其实就是一个问题。
1、把listbox的数据传给text只要不去移除,listbox里的数据顺序自然不变。
把text的值传给listbox,就根据listbox的index确定第几项,直接赋值。
2、第二个问题是要全部移动吧,只要text改过属性,允许多行文本就行。

回答4:

你试试这个吧··我试验过可以用的··呵呵··
Option Explicit

Private Sub Command1_Click()
List1.List(List1.ListIndex) = Text1
End Sub

Private Sub Command2_Click() '这里要把text1的multiline属性设置为true
Dim i As Integer
Text1 = ""
For i = 0 To List1.ListCount - 1
Text1 = Text1 & List1.List(i) & vbCrLf
Next
End Sub

Private Sub Form_Load()
List1.ListIndex = 0

End Sub

Private Sub List1_Click()
Text1 = List1.Text
End Sub