网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月11日漏签0天
vb吧 关注:156,053贴子:1,166,292
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 首页 上一页 1 2 3 4 下一页 尾页
  • 46回复贴,共4页
  • ,跳到 页  
<<返回vb吧
>0< 加载中...

回复:【求助】关于创建255个以上控件的问题

  • 只看楼主
  • 收藏

  • 回复
  • 雀巢vb豆浆
  • 函数调用
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
......
然后在窗体里加入一个TEXTBOX
这个TEXTBOX控件 名字(NAME属性)就叫 Text1


  • genmoon
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
万分感谢。。已经取得阶段性成功了。。


2026-02-11 11:00:45
广告
不感兴趣
开通SVIP免广告
  • 116.29.178.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
俺是29L,给你写了一个,用法跟注释很详细,你一看就懂的了
=================================================
新键工程,添加一个text1,名称默认,粘贴下面代码,运行.
=================================================
Option Explicit
Private Const W As Integer = 15 '格子宽度,单位:px
Private Const H As Integer = 15 '格子高度,单位:px
Private Type box
     Red As Boolean '是否红格
     Text As String '点击时文本框要增加的文本
     Click As Boolean '是否为按下状态
     '其它的可以自己添加
End Type
Private b(54, 21) As box '55*22个格子;b(列,行)
Private Sub Form_Load()
     Me.ScaleMode = 3
     Me.AutoRedraw = True
     Me.Width = 12900
     Me.Height = 6600
     Text1.Move 0, 350, 400
    
     Dim i As Byte
     Dim j As Byte
     For i = 0 To 54
         For j = 0 To 21
             b(i, j).Red = False '设置是否为红格
             b(i, j).Text = "我是" & i & "-" & j '设置点击时文本框text1要增加的文本
             b(i, j).Click = False   '设置是否为点击状态
             DrawBox i, j
         Next j
     Next i
    
     '设置第一列第一行点击时文本框要增加的文本
     '设好之好记得要DrawBox重绘格子,如果你觉得每次修改属性都要用DrawBox要重绘格子会麻烦,就写一个sub来处理,或者写成class,在Let里面处理.这里我就不写了.
     b(0, 0).Text = "1e2c3350": DrawBox 0, 0
     '设置第二列第一行点击时文本框要增加的文本
     '其它的如此类推
     b(1, 0).Text = "352488ef": DrawBox 0, 1
    
     '设置第3列第3行为红格,至于你说的右边什么死格..我不知道什么意思.你自己写吧
     '其它的如此类推
     b(2, 2).Red = True: DrawBox 2, 2
End Sub
Private Sub DrawBox(ByVal Col As Byte, ByVal Row As Byte)    '画格子:列,行,
     Dim Color As Long
     If b(Col, Row).Red Then
         Color = &HFF&      '红格
     Else
         Color = IIf(b(Col, Row).Click, &HFF0000, &HC0C0C0) '如果是点击状态>蓝色,否则灰色
     End If
     Form1.FillColor = Color
     Form1.Line (Col * W, Row * H)-(Col * W + W, Row * H + H), , B
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
     If X > W * 55 Or Y > H * 22 Then Exit Sub
     Dim Col As Byte
     Dim Row As Byte
     Col = (X - X Mod W) / W
     Row = (Y - Y Mod H) / H
     If b(Col, Row).Red Then Exit Sub '如果是红否.直接退出过程
     b(Col, Row).Click = Not b(Col, Row).Click: DrawBox Col, Row '如果不是点击状击态>设为点击状态,否则设为非点击状态
     '接下来你想咋地咋地
     '例如 , text1增加相应的字符:
     Text1.Text = Text1.Text & b(Col, Row).Text
End Sub


  • genmoon
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
感谢"116.29.178.*"详细的代码,我已经按照您所说的做好,已经成功运行。
还有如此详细的注释,,,,真是感谢感谢!!!
------------------------------------------------------------------------
原来我用上了CodeSmart 2007 for VB6 导致默认生成的textbox控件的默认name属性(txtText1)与原来的(text1)不同,所以有了30楼的事故发生。。哈哈。。
------------------------------------------------------------------------
不知何年何日才能达到各位达人的境界啊!


  • 116.29.178.*
快试试吧,
可以对自己使用挽尊卡咯~
◆
◆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
修改一下:
b(1, 0).Text = "352488ef": DrawBox 0, 1应该是
b(1, 0).Text = "352488ef": DrawBox 1, 0
DrawBox (列,行)
其实修改text时不用重绘格子(DrawBox)的,因为那个跟显示没什么系....
所以直接
b(1, 0).Text = "352488ef"就好了。
如果你是修改成红格,就要DrawBox了。
   
   



  • genmoon
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
感谢感谢,,先粘贴一下36楼修正过后的代码:(备份一下)
----------------------------------------------------------------
Option Explicit
Private Const W As Integer = 15 '格子宽度,单位:px
Private Const H As Integer = 15 '格子高度,单位:px
Private Type box
      Red As Boolean '是否红格
      Text As String '点击时文本框要增加的文本
      Click As Boolean '是否为按下状态
      '其它的可以自己添加
End Type
Private b(54, 21) As box '55*22个格子;b(列,行)
Private Sub Form_Load()
      Me.ScaleMode = 3
      Me.AutoRedraw = True
      Me.Width = 12900
      Me.Height = 6600
      Text1.Move 0, 350, 400
    
      Dim i As Byte
      Dim j As Byte
      For i = 0 To 54
          For j = 0 To 21
              b(i, j).Red = False '设置是否为红格
              b(i, j).Text = "我是" & i & "-" & j '设置点击时文本框text1要增加的文本
              b(i, j).Click = False    '设置是否为点击状态
              DrawBox i, j
          Next j
      Next i
    
      '设置第一列第一行点击时文本框要增加的文本
      '设好之好记得要DrawBox重绘格子,如果你觉得每次修改属性都要用DrawBox要重绘格子会麻烦,就写一个sub来处理,或者写成class,在Let里面处理.这里我就不写了.
      b(0, 0).Text = "1e2c3350": DrawBox 0, 0
      '设置第二列第一行点击时文本框要增加的文本
      '其它的如此类推
      b(1, 0).Text = "352488ef": DrawBox 1, 0
    
      '设置第3列第3行为红格,至于你说的右边什么死格..我不知道什么意思.你自己写吧
      '其它的如此类推
      b(2, 2).Red = True: DrawBox 2, 2
End Sub
Private Sub DrawBox(ByVal Col As Byte, ByVal Row As Byte)     '画格子:列,行,
      Dim Color As Long
      If b(Col, Row).Red Then
          Color = &HFF&       '红格
      Else
          Color = IIf(b(Col, Row).Click, &HFF0000, &HC0C0C0) '如果是点击状态>蓝色,否则灰色
      End If
      Form1.FillColor = Color
      Form1.Line (Col * W, Row * H)-(Col * W + W, Row * H + H), , B
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
      If X > W * 55 Or Y > H * 22 Then Exit Sub
      Dim Col As Byte
      Dim Row As Byte
      Col = (X - X Mod W) / W
      Row = (Y - Y Mod H) / H
      If b(Col, Row).Red Then Exit Sub '如果是红否.直接退出过程
      b(Col, Row).Click = Not b(Col, Row).Click: DrawBox Col, Row '如果不是点击状击态>设为点击状态,否则设为非点击状态
      '接下来你想咋地咋地
      '例如 , text1增加相应的字符:
      Text1.Text = Text1.Text & b(Col, Row).Text
End Sub
Private Sub Text1_Change()
End Sub
----------------------------------------------------------------



  • genmoon
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
按顺序看,看了雀巢vb豆浆兄19楼的第二个问题的解答。有点不惑。。
意思是指,a就是原来的i和j吗?而s就是要求的i和j的十六进际的最终形态吗?
我想我还是重新阐述一下要求,见下图。

还要求是两位数。
希望不鄙指教。。



  • genmoon
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
抑或:最后对text1里面的数再进行处理好一点?


2026-02-11 10:54:45
广告
不感兴趣
开通SVIP免广告
  • genmoon
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
又测试了一下37楼代码,好像有点问题:
点击方格,方格的颜色没有发生变化(没有变蓝)?
我明天上班继续研究研究。


  • genmoon
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:38楼
终于解决了:用Hex()函数。
-------------------------------------------------------
Public Sub CreatTabStr()
    Dim i As Integer, j As Integer
      For i = 0 To 54
         For j = 0 To 21
            TabStr(j, i) = Hex(CStr(j)) + ", " + Hex(CStr(i))
         Next
      Next
End Sub



  • richway2
  • 递归爆栈
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:8楼
留邮箱RICH5AY@163.COM


  • 雀巢vb豆浆
  • 函数调用
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
       For i = 0 To 54
          For j = 0 To 21
             TabStr(j, i) = mid(Hex(j+256), 2) + ", " + mid(Hex(i+256), 2)
          Next
       Next



  • genmoon
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
十分感谢雀巢vb豆浆兄的回复,
太好了!
---------------------------------------------------
因为41楼有很大的缺陷:
1:一旦负数(假如),就变了FFFFFFFF(-1变成了很多个F)
呵呵,惭愧,我用了Right$(数,2)函数来解决问题。
2:个位的数没能自动补零。
这个我就不懂,找资料也没找到。
我把个位的数用 "0"& 的方式来“补”零。(笨方法)
---------------------------------------------------
学习了。。感谢。。


  • genmoon
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

有个问题关于15楼其中一段代码,代码如下
----------------------------------------------------------------------
Private Sub Pic1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
     Dim ix As Integer, iy As Integer '定义格子序号
       If Button = vbLeftButton Then '鼠标左键点击?
          ix = X \ 20: iy = Y \ 20 '鼠标点击的坐标数字(单精,X、Y就是)÷格子的宽度=格子的序号(取整数)
          Table(iy, ix) = (Table(iy, ix) + 1) Mod 2 '这行以下代码利用求余数产生“按一下就蓝色、再按一下就变回灰色…”的效果,同时在text1中写入相关数据
          If Table(iy, ix) = 1 Then
             Text1.object.Text = Text1.object.Text + TabStr(iy, ix) + vbCrLf
             Pic1.Line (ix * 20 + 1, iy * 20 + 1)-(ix * 20 + 18, iy * 20 + 18), vbBlue, BF
          Else
             Text1.object.Text = Replace(Text1.object.Text, TabStr(iy, ix) + vbCrLf, vbNullString)
             Pic1.Line (ix * 20 + 1, iy * 20 + 1)-(ix * 20 + 18, iy * 20 + 18), &H80000016, BF
          End If
       End If
End Sub
----------------------------------------------------------------------
问题是:能否设一个按钮,点击就清除了求余数那行代码在内存中的相关数据?意即初始化
又或者:能否设一个按钮,点击就重新加载此程序,并清除此程序之前在内存中贮存的数据?(相当于关了此程序,又在电脑中重新打开一样)
----------------------------------------------------------------------
多次麻烦,希望雀巢vb豆浆兄和各位达人仍不鄙指教。感谢!


2026-02-11 10:48:45
广告
不感兴趣
开通SVIP免广告
  • 雀巢vb豆浆
  • 函数调用
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我晕 你还是没看懂程序啊 CreatTable()就是初始化代码。。。
Private sub Command1_Click()
call CreatTable
End sub


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 首页 上一页 1 2 3 4 下一页 尾页
  • 46回复贴,共4页
  • ,跳到 页  
<<返回vb吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示