注册 登录
编程论坛 VB.NET论坛

listbox1上面用鼠标选一行就让那一行显示在textbox1上面

qqwcwa 发布于 2010-05-16 19:44, 1765 次点击
listbox1上面用鼠标选一行就让那一行显示在textbox1上面
而listbox1里面的内容是读取txt得到的,
listbox1显示如下:

001    姓名 学号
002    姓名 学号
003    姓名 学号
.
.
276    姓名 学号

然后鼠标选择一项,在textbox1只显示 姓名,对textbox1姓名修改好后按一下button1就把它保存回listbox1里原来的位置!
这样的 code要怎么写啊?哪个高手能帮我写一下,我是个初学者~!~!!
11 回复
#2
ouxianzhi5202010-05-16 21:48
在listbox的事件中通过对选择的项进行字符串处理并保存然后传送到文本框 。
在按钮事件中通过保存文本框的值传入到listbox中。
主要就是对你的那一串字符串进行截取。提示:先查看一下字符串截取的相关函数,可能你就明白了。
#3
qqwcwa2010-05-16 22:28
能不能具体点~!
#4
sywzs2010-05-17 05:33
    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        Me.TextBox1.Text = ListBox1.Items(ListBox1.SelectedIndex)
    End Sub
#5
ouxianzhi5202010-05-17 08:40
我的功能 在楼上 的再加一点就行了。楼上的是把是整个listbox的内容选出来了。并不只是选的姓名。所以还要去掉前面的编号,后面的学号,以及中间的空格
#6
yjjpp2302010-05-17 09:13
System.Data.DataRowView

最后出现这个是什么问题????

请上面的高手帮忙。。。
#7
qqwcwa2010-05-17 09:35
那改好后,按按扭保存回原来位置要怎么做?
#8
qqwcwa2010-05-17 20:21
那位高手帮助一下!!!
#9
ouxianzhi5202010-05-17 20:24
回复 7楼 qqwcwa
没有明白你的意思
说清楚 一些
#10
ouxianzhi5202010-05-17 20:25
回复 6楼 yjjpp230
你这是哪里的问题,和这个主题 不相关吧。
#11
sywzs2010-05-20 06:01
请参考下面的代码。
    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        nList = ListBox1.SelectedIndex  '事先定义的一个全局变量
        If nList > -1 Then
            Me.TextBox1.Text = ListBox1.Items(nList).ToString
        End If
    End Sub

'当TextBox1的值修改后按回车键时,保存回ListBox1原位置
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        If Asc(e.KeyChar) = 13 Then
            ListBox1.Items(nList) = TextBox1.Text
        End If
    End Sub
#12
sywzs2010-05-21 12:24
回复7楼:
下面是一套完整的程序代码。在TextBox1中修改完后,按回车或按按钮,均可把数据保存在ListBox1的相应位置中。

Public Class Form1
    Dim nI As Integer = 0
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        '假设序号由3位字符组成,姓名由8位字符组成,学号由4位字符组成,中间各插入一个字符
        '以下代码是为了演示而添加的数据,实际应用应该填入表中的记录。
        ListBox1.Items.Add("001 AAAAAA   1234")
        ListBox1.Items.Add("002 BBBBBB   3256")
        ListBox1.Items.Add("003 CCCCCC   6542")
        ListBox1.Items.Add("004 DDDDDD   7894")
    End Sub

    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        nI = ListBox1.SelectedIndex
        If nI > -1 Then
            TextBox1.Text = Mid(ListBox1.Items(nI), 5, 8)
            TextBox1.MaxLength = 8
        End If
    End Sub

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        If Asc(e.KeyChar) = 13 Then
            Dim cSTR1 As String = ListBox1.Items(nI)
            ListBox1.Items(nI) = Mid(cSTR1, 1, 4) & TextBox1.Text & Space(8 - TextBox1.Text.Length) & Mid(cSTR1, 13)
        End If
    End Sub

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim cSTR1 As String = ListBox1.Items(nI)
        ListBox1.Items(nI) = Mid(cSTR1, 1, 4) & TextBox1.Text & Space(8 - TextBox1.Text.Length) & Mid(cSTR1, 13)
    End Sub
End Class
1