企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
<p><span style="font-weight:700;"><span style="font-size:16px;">KeyDown 事件</span></span></p> <p>当对象具有焦点时,用户按下(KeyDown)键。(要解释ANSI字符,请使用KeyPress事件。)</p> <p><br /> </p> <p class="label" style="font-size:12px;">语法</p> <p><span style="font-weight:700;"></span></p> <p style="color:#2A2A2A;font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:13px;"><span style="font-weight:700;">Private Sub&nbsp;Form_KeyDown(<i>keycode</i>&nbsp;As Integer,&nbsp;<i>shift</i>&nbsp;As Integer)</span></p> <p style="color:#2A2A2A;font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:13px;"><span style="font-weight:700;">Private Sub&nbsp;<i>Object</i>_KeyDown([<i>index</i>&nbsp;As Integer,]<i>keycode</i>&nbsp;As Integer,&nbsp;<i>shift</i>&nbsp;As Integer)</span></p> <p style="color:#2A2A2A;font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:13px;"><span style="font-weight:700;"><br /> </span></p> <span style="font-weight:700;"></span><p>KeyDown 事件的语法包含下面部分:</p> <table class="MsoNormalTable" border="1" cellpadding="0" style="width:650px;"><tbody><tr><td width="23%" valign="top"><p class="MsoNormal"><span style="font-weight:700;"><span style="font-size:9pt;font-family:宋体;">部分</span></span><span style="font-size:9pt;font-family:宋体;"></span></p> </td> <td width="77%" valign="top"><p class="MsoNormal"><span style="font-weight:700;"><span style="font-size:9pt;font-family:宋体;">描述</span></span><span style="font-size:9pt;font-family:宋体;"></span></p> </td> </tr> <tr><td width="23%" valign="top"><p class="MsoNormal"><span class="emp"><i><span style="font-size:9pt;">object</span></i></span><span style="font-size:9pt;font-family:宋体;"></span></p> </td> <td width="77%" valign="top"><p class="MsoNormal"><span style="font-size:9pt;font-family:宋体;">对象表达式</span><span style="font-size:9pt;font-family:宋体;">,其值是&nbsp;“应用于”列表中的一个对象。</span><span style="font-size:9pt;font-family:宋体;"></span></p> </td> </tr> <tr><td width="23%" valign="top"><p class="MsoNormal"><em>index</em><em>&nbsp;</em></p> </td> <td width="77%" valign="top"><p class="MsoNormal"><span style="font-size:9pt;font-family:宋体;"><span style="color:#2A2A2A;font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:13px;line-height:17.55px;">一个整数,唯一标识一个控件,如果它在一个控制数组。</span></span><span style="font-size:9pt;font-family:宋体;"></span><span style="font-size:9pt;font-family:宋体;"></span></p> </td> </tr> <tr><td width="23%" valign="top"><p class="MsoNormal"><em>keycode</em><em>&nbsp;</em></p> </td> <td width="77%" valign="top"><p class="MsoNormal"><span style="font-size:9pt;font-family:宋体;">一个关键代码,如<span style="font-weight:700;">vbKeyF1</span>(F1键)或<span style="font-weight:700;">vbKeyHome</span>(HOME键)。要指定键代码,请使用对象浏览器中的Visual Basic(VB)对象库中的常量。</span><span style="font-size:9pt;font-family:宋体;"></span><span style="font-size:9pt;font-family:宋体;"></span></p> </td> </tr> <tr><td width="23%" valign="top"><p class="MsoNormal"><em>shift</em><em>&nbsp;</em><span style="font-size:9pt;font-family:宋体;"></span></p> </td> <td width="77%" valign="top"><p class="MsoNormal"><span style="font-size:9pt;font-family:宋体;">与事件发生时的SHIFT,CTRL和ALT键的状态相对应的整数。的<i>shift</i>参数是与对应于SHIFT键的至少-显著位(位0),CTRL键(第1位),以及ALT键(第2位)的比特字段。这些位分别对应于值1,2和4。可以设置一些,全部或任何位,表示某些,全部,或没有一个按键被按下。例如,如果按住CTRL和ALT两者,<i>shift的</i>值为6。</span><span style="font-size:9pt;font-family:宋体;"></span></p> </td> </tr> </tbody> </table> <p class="MsoNormal">&nbsp;</p> <p class="label" style="font-size:12px;">说明</p> <p style="color:#2A2A2A;font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:13px;">对于这个事件,具有焦点的对象将接收所有的击键。一个表单只有在没有可见和启用的控件时才能有焦点。虽然KeyDown和KeyUp事件可以应用于大多数键,但它们最常用于:</p> <ul style="color:#000000;font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:13px;"><li>扩展字符键,如功能键。</li> <li>导航键</li> <li>键与标准键盘修饰符的组合。</li> <li>区分数字小键盘和常规数字键。</li> </ul> <p style="color:#2A2A2A;font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:13px;">如果您需要响应键的按压和释放,请使用KeyDown和KeyUp事件过程。</p> <p style="color:#2A2A2A;font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:13px;">KeyDown和KeyUp不会被调用:</p> <ul style="color:#000000;font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:13px;"><li>如果形式所具有的ENTER键命令按钮与控制默认设置为属性真。</li> <li>如果窗体具有将Cancel属性设置为True的CommandButton控件,则ESC键。</li> <li>TAB键。</li> </ul> <p style="color:#2A2A2A;font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:13px;">KeyDown和KeyUp通过两个参数解释每个字符的大写和小写:<i>keycode</i>,表示物理键(从而返回A和A作为相同的键)和<i>shift</i>,表示<i>shift</i>&nbsp;+&nbsp;<i>key</i>的状态,因此返回A或a。</p> <p style="color:#2A2A2A;font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:13px;">如果需要测试<i>shift</i>参数,可以使用定义参数中的位的<i>shift</i>常数。常数具有以下值:</p> <div class="tablediv" style="color:#000000;font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:13px;"><div class="contentTableWrapper"><table class="dtTABLE" style="width:650px;border:1px solid #BBBBBB;"><tbody><tr><th width="22%" style="color:#636363;background-color:#EDEDED;">不变</th> <th width="14%" style="color:#636363;background-color:#EDEDED;">值</th> <th width="54%" style="color:#636363;background-color:#EDEDED;">描述</th> </tr> <tr><td width="22%" style="color:#2A2A2A;"><span style="font-weight:700;">vbShiftMask</span></td> <td width="14%" style="color:#2A2A2A;">1</td> <td width="54%" style="color:#2A2A2A;">SHIFT键位掩码。</td> </tr> <tr><td width="22%" style="color:#2A2A2A;"><span style="font-weight:700;">VbCtrlMask</span></td> <td width="14%" style="color:#2A2A2A;">2</td> <td width="54%" style="color:#2A2A2A;">CTRL键位掩码。</td> </tr> <tr><td width="22%" style="color:#2A2A2A;"><span style="font-weight:700;">VbAltMask</span></td> <td width="14%" style="color:#2A2A2A;">4</td> <td width="54%" style="color:#2A2A2A;">ALT键位掩码。</td> </tr> </tbody> </table> </div> </div> <p style="color:#2A2A2A;font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:13px;">常数作为位掩码,您可以使用它来测试密钥的任何组合。</p> <p style="color:#2A2A2A;font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:13px;">您通过首先将每个结果分配给一个临时整数变量,然后将<i>shift</i>与位掩码进行比较来测试条件。使用带有<i>shift</i>参数的And运算符来测试条件是否大于0,表示修改器被按下,如下例所示:</p> <pre>ShiftDown =(Shift和vbShiftMask)&gt; 0</pre> <br /> <p style="color:#2A2A2A;font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:13px;">在一个过程中,您可以测试任何条件的组合,如本例所示:</p> <pre>如果ShiftDown和CtrlDown然后</pre> <br /> <blockquote class="dtBlock" style="color:#000000;font-family:'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif;font-size:13px;">注意&nbsp;&nbsp;&nbsp;&nbsp;如果KeyPreview属性设置为True,则表单上的控件接收事件之前,表单将接收这些事件。使用KeyPreview属性创建全局键盘处理例程。</blockquote> <br /> <div><br /> </div>