热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

下拉列表索引

OptionExplicitPrivateDeclareFunctionSendMessage&Libuser32AliasSendMessageA(

Option Explicit

Private Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
Private Const CB_SHOWDROPDOWN = &H14F
Private Const CB_SETTOPINDEX = &H15C
Private Const CB_GETDROPPEDSTATE = &H157

Private PYList() As String

'初始化
Private Sub Form_Load()
    Dim i As Integer
    
    'Combo
    With Combo1
        For i = 1 To 10
            .AddItem i
        Next
        .AddItem "北京中关村"
        .AddItem "大连联盛座"
        .AddItem "河北石家庄"
        .AddItem "河北玉晶玻璃制品有限公司"
        For i = 1 To 10
            .AddItem i + 10
        Next
    End With
   
    '拼音列表
    InitPYList Combo1
End Sub

'初始cboBox的拼音列表
Private Sub InitPYList(ByRef cboBox As ComboBox)
    Dim i As Integer
    Dim tCount As Integer
   
    tCount = cboBox.ListCount - 1
    Erase PYList
    ReDim PYList(tCount)
   
    With cboBox
        .Enabled = False
       
        For i = 0 To tCount
            PYList(i) = GetPY(.List(i))
        Next
       
        .Enabled = True
    End With
End Sub

'取字符串拼音首字
Function GetPY(ByVal x As String) As String
    Dim i As Integer
    Dim j As Integer
    Const hanzi = "啊芭擦搭蛾发噶哈击喀垃妈拿哦啪期然撒塌挖昔压匝座ABCDEFGHJKLMNOPQRSTWXYZZ"
   
    GetPY = ""
    For j = 1 To Len(x)
        For i = 1 To 24
            If Asc(Mid(x, j, 1)) >= Asc(Mid(hanzi, i, 1)) And Asc(Mid(x, j, 1))                 GetPY = GetPY & Mid(hanzi, 24 + i, 1)
            End If
        Next
    Next
End Function

'查找
Private Sub Combo1_KeyUp(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyReturn Then
        Combo1.Text = Combo1.List(Val(Combo1.Tag))
    Else
        FindPY Combo1.Text, Combo1
    End If
End Sub

'找出拼音串tS
Private Sub FindPY(ByVal tS As String, ByRef cboBox As ComboBox)
    Dim i As Integer
    Dim tL As Integer
   
    tS = UCase(tS)
    tL = Len(tS)
   
    For i = 0 To UBound(PYList)
        If tS = Left(PYList(i), tL) Then  '找到第一个匹配的
            Me.Caption = i
           
            '下拉列表
            If Not SendMessage(cboBox.hwnd, CB_GETDROPPEDSTATE, 0, 0) Then
                SendMessage cboBox.hwnd, CB_SHOWDROPDOWN, True, 0
            End If
            '定位
            cboBox.Tag = i
            SendMessage cboBox.hwnd, CB_SETTOPINDEX, i, 0
            Exit Sub
        End If
    Next
End Sub


推荐阅读
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了一种解析GRE报文长度的方法,通过分析GRE报文头中的标志位来计算报文长度。具体实现步骤包括获取GRE报文头指针、提取标志位、计算报文长度等。该方法可以帮助用户准确地获取GRE报文的长度信息。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
author-avatar
Vin-莹持_366
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有