⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m61.htm

📁 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程 vb教程
💻 HTM
字号:
<html>
<head>
<title>VB教程</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
 
</head>
<p align="center"><script src="../../1.js"></script></a>

<body bgcolor="#ffffff" leftmargin="5" topmargin="1" marginheight="5" marginwidth="5">
<div align=center> 
  <table border=0 cellpadding=0 cellspacing=0 width=680 align="center">
    <tbody> 
     
    <tr> 
      <td bgcolor=#000000 height=9> 
        <div align=center class=H1>    <font color="#FFFFFF">能自行调节高度的 TextBox</font> </font> </font></div>
      </td>
    </tr>
    <tr valign=top> 
      <td class=H1 height=76> 
        <p align="left">  <br>
           </font>  概述 </span></font></p>
        <p>    TextBox 在放到 Form 中以后, 
          就不管内容有多少, 就是占这么多的地盘, 为什么不让它灵活一些呢?<br>
          <br>
            每当TextBox 的内容修改好以后, 就查看TextBox 的行数是否变化。 如果有改变的话, 就把TextBox 的位置调整到合适的位置。<br>
          <br>
            一个可能的应用就是在TextBox 和MsFlexGrid 配合使用的情况, 可以动态修改高度。</span></font></p>
        <h3> <span class="unnamed1">实现步骤</span></font></h3>
        <p> <span class="unnamed1">1 开启一个新的工程。</span></font></p>
        <p> <span class="unnamed1">2 增加一个TextBox(Text1), 
          修改BorderStyle 为0-None, MultiLine 为 True。</span></font></p>
        <p> <span class="unnamed1">3 在 Form1 的声明中增加:<br>
          <br>
          Const EM_GETLINECOUNT = &amp;HBA<br>
          <br>
          Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" 
          (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal 
          lParam As Long) As Long<br>
          <br>
          Dim LastLine As Long '最后的行数<br>
          Dim LineHeight&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '每行的高度</span></font></p>
        <p> <span class="unnamed1">4 在 Form_Load 过程中增加:<br>
          <br>
          Private Sub Form_Load()<br>
          Set Me.Font = Text1.Font<br>
          LineHeight = Me.TextHeight("TT")<br>
          End Sub</span></font></p>
        <p> <span class="unnamed1">5 在 Text1_Change 中增加代码:<br>
          <br>
          Private Sub Text1_Change()<br>
          Dim Ret As Long<br>
          Ret = SendMessage(Text1.hWnd, EM_GETLINECOUNT, 0, 0&amp;) '取行数<br>
          If Ret &lt;&gt; LastLine Then<br>
          If Text1.Height + Text1.Top + LineHeight &gt; Me.ScaleHeight And Ret 
          &gt; 1 Then<br>
          If LastLine &lt;= Ret - 1 Then<br>
          Exit Sub '如果已经是最大高度,保持<br>
          End If<br>
          LastLine = Ret - 1 '超过最大高度<br>
          Else<br>
          LastLine = Ret<br>
          End If<br>
          Text1.Height = LastLine * LineHeight '修改高度<br>
          End If<br>
          End Sub</span></font></p>
        <p> <span class="unnamed1">6 在Text1_GotFocus 中增加代码:<br>
          <br>
          Private Sub Text1_GotFocus()<br>
          LastLine = SendMessage(Text1.hWnd, EM_GETLINECOUNT, 0, 0&amp;)<br>
          End Sub</span></font></p>
        <p> <span class="unnamed1">7 按F5, 开始运行。 在 TextBox 
          中多打入几行, 可以发现TextBox 的高度会自动修改, 甚至对剪贴操作也一样有效。 而在 TextBox 到了Form 的最大边缘后, 
          就停止了扩张高度。</span></font></p>
        <p> </p>
        <p align="left">                                        <br>
           
  </table>
</div>
<p align="center"><a href="../../pian/vb.htm">回首页</a>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -