求助做一个VB程序

2025-03-06 03:15:29
推荐回答(2个)
回答1:

方便代码共享,特复制代码。邮件已发送给你,请注意查收。
Dim x As Single, y As Single, a As Long, b As Long, c As Long
Private Sub Command1_Click()
Picture1.Cls
If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then
MsgBox "a,b,c均不能为空,请重新输入!", vbExclamation + vbOKOnly, "警告"
Exit Sub
ElseIf Trim(Text1.Text) = 0 Then
MsgBox "最高次项不能为0,请重新输入!", vbExclamation + vbOKOnly, "警告"
Text1.Text = ""
Text1.SetFocus
Exit Sub
Else
a = Trim(Text1.Text)
b = Trim(Text2.Text)
c = Trim(Text3.Text)
Picture1.Scale (-10, 10)-(10, -10)
Picture1.Line (-10, 0)-(10, 0)
Picture1.Line (0, -10)-(0, 10)
x = -10
Do While x <= 10
y = a * x * x + b * x + c
Picture1.PSet (x, y)
x = x + 0.00002
Loop
End If
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
Label4.Caption = "函数自变量X的区间为[-10,10]"
Me.AutoRedraw = True
End Sub
Private Sub text1_KeyPress(KeyAscii As Integer) '这段程序只能输入数字,并且不屏蔽空格
Select Case KeyAscii
Case 8
'无变化,退格键不屏蔽
Case Is < Asc(0) '48
KeyAscii = 0
Case Is > Asc(9) '57
KeyAscii = 0
End Select
End Sub
Private Sub text2_KeyPress(KeyAscii As Integer) '这段程序只能输入数字,并且不屏蔽空格
Select Case KeyAscii
Case 8
'无变化,退格键不屏蔽
Case Is < Asc(0) '48
KeyAscii = 0
Case Is > Asc(9) '57
KeyAscii = 0
End Select
End Sub
Private Sub text3_KeyPress(KeyAscii As Integer) '这段程序只能输入数字,并且不屏蔽空格
Select Case KeyAscii
Case 8
'无变化,退格键不屏蔽
Case Is < Asc(0) '48
KeyAscii = 0
Case Is > Asc(9) '57
KeyAscii = 0
End Select
End Sub

回答2:

用vb的函数做起来有难度。
我告诉你个简单方法,
只要在 VB里调用excel的库。
然后吧text文本框的值放倒excel对应的连接里
再拉出一个excel中生成的图形出来。
就可以实现。