excel如何用vba实现选中listview.itemlist.item()后,将指定单元格内容输入到textbox.text中,并转移焦点

excel如何用vba实现选中listview.itemlist.item()后,将指定单元格内容输入到textbox.text中,并转移焦点到textbox.text?... excel如何用vba实现选中listview.itemlist.item()后,将指定单元格内容输入到textbox.text中,并转移焦点到textbox.text??
我用了下面的这个加上textbox.setfocus,:Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem) 'ItemClick:单击某行或某ListItem时触发。参数中可以获得被单击的ListItem对象。但是,焦点不会转移到textbox.text中,而是会选中listview.itemlist.item()中的第一个单元格的内容,我接着输入会改变item的内容,而不会跳转到textbox中来改变内容,
展开
 我来答
百度网友eb9c235
2014-09-06 · TA获得超过478个赞
知道小有建树答主
回答量:511
采纳率:100%
帮助的人:271万
展开全部
换成窗体的双击事件试试呢?
追问
愿闻其详,
追答

在listview的双击事件中插入以下代码,将其中的sj_16改成你的listview.name

'新建一个框架控件,命名为FR,一个文本框控件,命名为tx,将tx控件拉入到FR内,为了美观,将fr的caption删掉
'在VBA中,窗体控件也分为几个层次,(lsitview,frame,MSflexgrid...等属于一个层次)具体你可以百度下,txextbox的显示层次在listview之下,可能用frame框件变通下来达成目的
Dim iColWidth%, iRowHei%
With SJ_16
     iColWidth = .ColumnHeaders(4).Left + .Left  '这里的4是指你所谓的固定列
     iRowHei = .ListItems(.SelectedItem.Index).Top + .Top  
          If FR.Visible = False Then FR.Visible = True: tx = ""
        FR.Move iColWidth, iRowHei, .ColumnHeaders(4).Width, .ListItems(.SelectedItem.Index).Height + 5 '加5是listview行高太小,适当调整行高
        tx.Height = FR.Height
        tx.Width = FR.Width
        FR.ZOrder
        FR.SetFocus
End With
End Sub

相应的textbox输入完毕后,可用Keyup检测回车符,把当前输入内容更新到listview中,再清空textbox,隐藏frame

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式