vb listbox 修改 某一行

一个listbox,一个textbox,两个按钮问题如下:单击listbox中的,某一行,显示在textbox中,(这个已经搞定了)。问题1在textbox中对这行进行修... 一个 listbox, 一个 textbox,两个按钮
问题如下:
单击listbox中的,某一行,显示在textbox中,(这个已经搞定了)。
问题1 在textbox 中 对这行进行修改,单击按钮1,listbox中 变成改后的
内容。行的顺序不要变。问题1结束
listbox 的数据是同步保存在 一个txt文件里面的,改完之后,肯定和txt文件里面的内容不同了
问题2 单击按钮2,把txt里面内容 变得和listbox 一样
谢谢各位了,再次补充一下,某一目录下还有个.txt文本文件需要 写入数据的...........................................要与listbox保持一致的

用了 luomandick 的代码,第一个问题解决,还有第二个问题 某一目录下还有个.txt文本文件需要 写入数据的...........................................要与listbox保持一致的

修改指定文本文件 指定行的问题吧 (.txt)
展开
 我来答
网海1书生
科技发烧友

推荐于2018-04-21 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26226

向TA提问 私信TA
展开全部
问题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
匿名用户
2010-03-13
展开全部
我给一个程序你 我有写过这种程序

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中

而不是说从中间修改 而是全部重新写入
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tanxuxin928
2010-03-13 · 超过21用户采纳过TA的回答
知道答主
回答量:157
采纳率:0%
帮助的人:78.8万
展开全部
其实就是一个问题。
1、把listbox的数据传给text只要不去移除,listbox里的数据顺序自然不变。
把text的值传给listbox,就根据listbox的index确定第几项,直接赋值。
2、第二个问题是要全部移动吧,只要text改过属性,允许多行文本就行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luomandick
2010-03-13 · TA获得超过1175个赞
知道小有建树答主
回答量:902
采纳率:0%
帮助的人:712万
展开全部
你试试这个吧··我试验过可以用的··呵呵··
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式