40分问两个小问题,很简单的(入门级的),高手来拿分。在线等。

mfkiqpl 2005-05-15 10:04:55
问题一:
现有一个textbox,允许显示多行。
for i=1 to 100
text1.text=text1.text & vbcrlf & i
doevents
next
上面代码可让文本框显示循环结果。。但是如果循环次数太多或者要显示的内容太多。。就会很慢慢。
有没有更快的办法代替:text1.text=text1.text & vbcrlf & i 这句?

问题二:
现有窗口 Form1 当前窗口已设置最大化按钮失效。目的就是为了不让用户改变窗体大小。但是还是可以拉动窗口边缘来达到改变窗口大小的目的。如何让用户不能调整窗口大小?

请高手一一解答。小弟感谢!
...全文
169 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tmran 2005-05-15
  • 打赏
  • 举报
回复
1、第一问:用定时器(Timer),否则数据多了,你的软件将处于不可控状态。

Option Explicit
Private iLimt As Long
Private strTemp As String
Private Sub Command1_Click()
Timer1.Interval = 200
Timer1.Enabled = True
strTemp = Text1.Text
iLimt = 1
End Sub

Private Sub Timer1_Timer()

strTemp = strTemp & vbCrLf & iLimt
iLimt = iLimt + 1
Text1.Text = strTemp
If iLimt > 100 Then
Timer1.Interval = 0
Timer1.Enabled = False
End If
End Sub

2、第二问,设置属性:

Form属性:

BorderStyle = 1
MinButton = True
phlac 2005-05-15
  • 打赏
  • 举报
回复
第二个问题
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Const SC_SIZE = &HF000
Private Const MF_BYCOMMAND = &H0&

Private Sub Form_Load()
Dim hMenu As Long, Success As Long

hMenu = GetSystemMenu(Form1.hwnd, 0)
Success = DeleteMenu(hMenu, SC_SIZE, MF_BYCOMMAND)
End Sub
mfkiqpl 2005-05-15
  • 打赏
  • 举报
回复
问题还没有得到解决。。希望大家能再帮小弟一下。。感谢。。
mfkiqpl 2005-05-15
  • 打赏
  • 举报
回复
感谢楼上的帮忙。。。
domhuang 2005-05-15
  • 打赏
  • 举报
回复
哦 不好意思楼主搞错了 我这个也没有 最小化的按扭  只能缩放
domhuang 2005-05-15
  • 打赏
  • 举报
回复
Dim x1 As Single
Dim y1 As Single
Dim sfw As Boolean
Dim sfh As Boolean

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X > Form1.Width - 100 Then
sfw = True
x1 = X
Form1.Print "zoom1"
End If

If Y > Form1.Height - 100 Then
sfh = True
y1 = Y
Form1.Print "zoom2"
End If



End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

If sfw Then
Form1.Width = Form1.Width - (x1 - X)
x1 = X

'Label1.Caption = X
'Label2.Caption = Form1.Width

End If

If sfh Then
Form1.Height = Form1.Height - (y1 - Y)
y1 = Y
End If

End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
sfw = False
sfh = False

End Sub

模仿windows y有边框
第二个问题
mfkiqpl 2005-05-15
  • 打赏
  • 举报
回复
第二个问题我测试了。。
form的bordersytle设为1
后。连最小化按扭也没了。。我要有最小化按钮。
mfkiqpl 2005-05-15
  • 打赏
  • 举报
回复
回楼上的问题一解答。。
我要实时的显示结束。。不能全部显示。。所以如果在循环外了就不能实时的显示了。。

问题2。我现在用你的访问试验。。
itcoco 2005-05-15
  • 打赏
  • 举报
回复
1〉
Dim s As String
For i = 1 To 1000
s = s & vbCrLf & i
Next
Text1.Text = s 我试了一下 这样子比直接text1.text=text1.text & i快


2 form的bordersytle设为1

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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