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中来改变内容, 展开
我用了下面的这个加上textbox.setfocus,:Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem) 'ItemClick:单击某行或某ListItem时触发。参数中可以获得被单击的ListItem对象。但是,焦点不会转移到textbox.text中,而是会选中listview.itemlist.item()中的第一个单元格的内容,我接着输入会改变item的内容,而不会跳转到textbox中来改变内容, 展开
1个回答
展开全部
换成窗体的双击事件试试呢?
追问
愿闻其详,
追答
在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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询