VB的TextBox文本框实现垂直居中显示的方法
方法 实现 显示 vb 文本框 居中 垂直 textbox
2023-06-13 09:15:40 时间
本文实例代码可以实现让VB的TextBox文本框垂直居中显示效果。此处需要注意:
具体的功能代码如下:
"================================================================================ "|模块名|TextBoxMiddle "|说明|文本框居中显示 "================================================================================= OptionExplicit PrivateTypeRECT LeftAsLong TopAsLong RightAsLong BottomAsLong EndType PrivateDeclareFunctionSendMessageLib"user32"Alias"SendMessageA"(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,lParamAsAny)AsLong PrivateDeclareFunctionSetWindowTextLib"user32"Alias"SetWindowTextA"(ByValhwndAsLong,ByVallpStringAsString)AsLong PrivateDeclareFunctionCallWindowProcLib"user32"Alias"CallWindowProcA"(ByVallpPrevWndFuncAsLong,ByValhwndAsLong,ByValMsgAsLong,ByValwParamAsLong,ByVallParamAsLong)AsLong PrivateDeclareFunctionGetWindowLongLib"user32"Alias"GetWindowLongA"(ByValhwndAsLong,ByValnIndexAsLong)AsLong PrivateDeclareFunctionSetWindowLongLib"user32"Alias"SetWindowLongA"(ByValhwndAsLong,ByValnIndexAsLong,ByValdwNewLongAsLong)AsLong PrivateConstEM_GETRECT=&HB2 PrivateConstEM_SETRECTNP=&HB4 PrivateConstGWL_WNDPROC=(-4) PrivateConstWM_CHAR=&H102 PrivateConstWM_PASTEAsLong=&H302 PrivateprevWndProcAsLong PublicClipTextAsString PublicSubDisableAbility(TargetTextBoxAsTextBox) prevWndProc=GetWindowLong(TargetTextBox.hwnd,GWL_WNDPROC) SetWindowLongTargetTextBox.hwnd,GWL_WNDPROC,AddressOfWndProc EndSub PrivateFunctionWndProc(ByValhwndAsLong,ByValMsgAsLong,ByValwParamAsLong,ByVallParamAsLong)AsLong DimTempAsString SelectCaseMsg CaseWM_CHAR IfwParam<>13ThenWndProc=CallWindowProc(prevWndProc,hwnd,Msg,wParam,lParam) CaseWM_PASTE ClipText=Clipboard.GetText Temp=Replace(ClipText,Chr(10),"") Temp=Replace(Temp,Chr(13),"") Clipboard.Clear Clipboard.SetTextTemp WndProc=CallWindowProc(prevWndProc,hwnd,Msg,wParam,lParam) Clipboard.Clear Clipboard.SetTextClipText CaseElse WndProc=CallWindowProc(prevWndProc,hwnd,Msg,wParam,lParam) EndSelect EndFunction SubVerMiddleText(mFormAsform,mTextAsTextBox) IfmText.MultiLine=FalseThenExitSub DimrcAsRECT,tmpTopAsLong,tmpBotAsLong SendMessagemText.hwnd,EM_GETRECT,0,rc WithmForm.Font .Name=mText.Font.Name .Size=mText.Font.Size .Bold=mText.Font.Bold EndWith tmpTop=((rc.Bottom-rc.Top)-_ (mText.Parent.TextHeight("H")\Screen.TwipsPerPixelY))\2+2 tmpBot=((rc.Bottom-rc.Top)+_ (mText.Parent.TextHeight("H")\Screen.TwipsPerPixelY))\2+2 rc.Top=tmpTop rc.Bottom=tmpBot mText.Alignment=vbCenter SendMessagemText.hwnd,EM_SETRECTNP,0&,rc mText.Refresh DisableAbilitymText EndSub "/////////////////////////////////////////////////////// "以下为窗体代码 "/////////////////////////////////////////////////////// PrivateSubForm_Load() "================注意!!!================= "多行属性必须为真,暨Text1.MultiLine=True "该属性为只读属性,请在设计时修改 "换行会被之后的代码屏蔽,不想屏蔽可自行修改 "=========================================== "调用此函数就好了 VerMiddleTextMe,Text1 Caption=Len(Text1) EndSub
相关文章
- 如何启用计算机双通道内存的方法,内存条怎么插 组建内存双通道正确插法教程…
- zblog利用ip地址物理化插件实现评论显示IP归属地的方法(最新兼容IPV4/V6)
- MySQL实现参数传递的方法(mysql传递参数)
- MySQL实现不重复记录的技术方法(mysql不重复的记录)
- 实现向MSSQL中快速插入多条数据的方法(向mssql插入多条数据)
- Oracle实现字段相加的方法简述(oracle字段相加)
- Oracle数据库约束五种实现完美完整性的方法(Oracle中五种约束)
- asp的程序能实现伪静态化的方法
- 用css来控制图片大小显示的实现方法与代码
- php中ob(OutputBuffer输出缓冲)函数使用方法
- 用按钮控制iframe显示的网页实现方法
- Java中实现随机无重复数字的方法
- Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
- 解析如何正确使用SqlConnection的实现方法
- Android自定义View设定到FrameLayout布局中实现多组件显示的方法分享
- 用PHP实现浏览器点击下载TXT文档的方法详解
- jsp实现页面实时显示当前系统时间的方法
- Android下Activity全屏显示实现方法
- C#实现鼠标移动到曲线图上显示值的方法
- destoon实现首页显示供应、企业、资讯条数的方法
- DevExpress实现GridControl显示Gif动画的方法
- destoon切换城市后实现logo旁边显示地区名称的方法
- destoon实现不同会员组公司名称显示不同的颜色的方法
- 使用jquery.validate自定义方法实现"手机号码或者固话至少填写一个"的逻辑验证