做个用文本框输入来改变颜色的小程序,哪里出错了??
界面有一个picturebox用以显示颜色及改变;一个文本框显示“Color=RGB(20,0,0)”格式的各颜色值;再就是三个滚动条分别以调整三个原色的值(0~255)。运行后滚动条效果可正常实现,但另一个要求:通过在文本框里输入三个颜色各自的数值,再回车。来改变颜色的效果却失败了。文本框的键盘事件代码如下:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
a = InStr(10, Text1.Text, ",") 截取文本框里Color=RGB(20,0,0)”格式中第一个","前的数字赋给a,即红色的值;下面的b、c同理分别是绿色、蓝色的值
b = InStr(a + 1, Text1.Text, ",")
c = InStr(b + 1, Text1.Text, ")")
HScroll1(0) = Val(Mid(Text1.Text, 11, a-11))使三个滚动条分别对应abc的值
HScroll1(1) = Val(Mid(Text1.Text, a+1, b-a-1))
HScroll1(2) = Val(Mid(Text1.Text, b+1, c-b-1))
End If
End Sub
运行时在文本框里把三个原色的值都编辑完再回车后,若光标不论停在哪个数值那儿,只有第一个数字对应的红色的滚动条变为设定状态,另两个颜色的数值及滚动条都恢复为0即min状态;接着若光标不论停在哪个数值那儿再按回车键,只有前两个数字对应的红色和绿色的滚动条变为设定状态,第三个颜色蓝色的数值及滚动条都恢复为0即min状态;最后光标停在任意数值处第三次按下回车,才会使蓝色滚动条变化。(当然此种过程中图片框颜色也都是相应变化)
我很困惑,为什么文本框的回车不能使三个颜色对应的滚动条改变都一下子同时生效呢?
怎么也找不出哪里有错误。还请各位帮着分析一下?
[ 本帖最后由 zhaomg 于 2012-1-16 10:52 编辑 ]