ComboBox选择文本内容

genius00 2003-10-16 08:42:32
高手,
如何在COMBOBOX中只显示LIST表中ITEMS中单项文本开始的二个字符?

过程:
先COMBOBOX控件响应,选中LIST中内容后,在COMBOBOX的TEXT中只显示选中的LIST内容的开始几个字符.
如:在COMBOBOX中LIST中有"07,二轮摩托车",选中后,只显示 07.
...全文
169 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
smbee 2003-11-10
  • 打赏
  • 举报
回复
你好。
ComboBox1_SelectedIndexChanged事件是在我们改变了TEXT后执行的,我们首先得到了真正的值,Me.ComboBox1.Text = Mid(ComboBox1.SelectedItem, 1, 2)只是在程序中隐式改变了
ComboBox1.Text 的值,你也可以把ComboBox1.Text 当做一个变量,只是在程序中改变了这个变量的值,要从外观上做改变,就要重写ComboBox1控件,双线程就起了这个作用。
genius00 2003-11-10
  • 打赏
  • 举报
回复
吾剑兄弟,
我不用线程,为什么会不行啊!!!!

在ComboBox1_SelectedIndexChanged事件写上
Me.ComboBox1.Text = Mid(ComboBox1.SelectedItem, 1, 2)
smbee 2003-11-05
  • 打赏
  • 举报
回复
呵呵,怎么会不行呢,这是用线程的方法来解决的,我在VS2003中调试过没问题的,要不就是你那个语句有错的,
只二句:
1.在ComboBox1_SelectedIndexChanged事件写上

Dim newCombo As Threading.Thread = New Threading.Thread(AddressOf NewText)
newCombo.Start()

2.建一个
Sub NewText()
Me.ComboBox1.Text = Mid(ComboBox1.SelectedItem, 1, 2)
End Sub

3.只要combobox1有内容,你直接把代码粘上去。
genius00 2003-11-04
  • 打赏
  • 举报
回复
吾剑兄弟,你的方法不行啊!!!
stickvc 2003-11-03
  • 打赏
  • 举报
回复
楼上的高手:
我的意思是:
在COMBOBOX中LIST中有"07,二轮摩托车",选中后,COMBOX的TEXT国只显示 07
smbee 2003-11-03
  • 打赏
  • 举报
回复
真不好意思,坐下来认真一想,我也把问题复杂化了,有一个简单的解决办法:

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Dim newCombo As Threading.Thread = New Threading.Thread(AddressOf NewText)
newCombo.Start()
End Sub

Sub NewText()
Me.ComboBox1.Text = Mid(ComboBox1.SelectedItem, 1, 2)
End Sub
smartluwei 2003-11-03
  • 打赏
  • 举报
回复
NoReady(亦正亦偏) :这位兄弟,哪有这么复杂啊
呵呵,直接把一个文本框添上去就行了啊。
不过要设置一下这个visible
smbee 2003-11-03
  • 打赏
  • 举报
回复
NoReady(亦正亦偏)所说是一种解决问题的方法,但不是正解。
我只说一个思路:
应该用重写的方法把combobox的textbox与listbox折开,改变textbox显示的样式,只显示左边2个字符。
不过我认为这没什么意义,如果你想得到combobox.text的前二个字符,在程序中用
Microsoft.VisualBasic.Left(ComboBox1.Text, 2)就行了,那与显示有什么关系呢?不要把把程序搞复杂了,简洁是最好的方法!!!
zhuangcrui 2003-10-31
  • 打赏
  • 举报
回复
Dim stra As String
stra = Microsoft.VisualBasic.Left(ComboBox1.Text, 5)
ComboBox1.Items.Clear()

ComboBox1.Text = stra
qqwqq 2003-10-24
  • 打赏
  • 举报
回复
REstr12 = Microsoft.VisualBasic.Left(Cmbclass.Text, 2)
Cmbclass.clear

Cmbclass.item.add(REstr12 )
NoReady 2003-10-21
  • 打赏
  • 举报
回复
挺复杂的,具体细节很难说清楚,说下大概:
1、new一个textbox并隐藏
2、当编辑时使textbox位置在combobox的上方,这里要用到很多API
3、把textbox的值赋给combobox
genius00 2003-10-21
  • 打赏
  • 举报
回复
楼上的高手,如何重写一个控件---------用一个文本框覆盖combobox的文本框
genius00 2003-10-21
  • 打赏
  • 举报
回复
楼上的高手,如何重写一个控件---用一个文本框覆盖combobox的文本框
请教导我啊!!!
NoReady 2003-10-21
  • 打赏
  • 举报
回复
这是不行的,我建议你重写一个控件。
用一个文本框覆盖combobox的文本框
genius00 2003-10-21
  • 打赏
  • 举报
回复
不会吧,一个小问题,哪有这么复杂.太难了吧,有没有好办法啊???
genius00 2003-10-18
  • 打赏
  • 举报
回复
楼上的高手,你的方法是错误的!!!!!!!!!!!
zwq78 2003-10-17
  • 打赏
  • 举报
回复
那就用
return split(mybase.text,",")(0)
genius00 2003-10-17
  • 打赏
  • 举报
回复
split(combo.selecteditem中,我引用selecteditem有错误
zwq78 2003-10-17
  • 打赏
  • 举报
回复
自定义一个继承自combobox的类,
重载text属性。

在get中写

return split(combo.selecteditem,",")(0)

16,549

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧