问题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
我给一个程序你 我有写过这种程序
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中
而不是说从中间修改 而是全部重新写入
其实就是一个问题。
1、把listbox的数据传给text只要不去移除,listbox里的数据顺序自然不变。
把text的值传给listbox,就根据listbox的index确定第几项,直接赋值。
2、第二个问题是要全部移动吧,只要text改过属性,允许多行文本就行。
你试试这个吧··我试验过可以用的··呵呵··
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