テキストボックスを複数個使い、マトリクスを作りたいのです。数が100×100近くあります。
テキストボックスのindexプロパティの値を任意に自動で割り振る方法はありますか? text1(???)の部分です。
また、テキストボックスを使った配列表示でよい方法があれば教えてください。
よろしくお願いします。
10000個ですか・・・
かなり大変そうですね。グリッド系のコントロールを使用することも検討してみてはどうでしょうか?
当方、エンタープライズエディションなのでできませんでした。
どうしましょう???
100個*100個のテキストボックスを1画面に出すのですか?
そうでないならパネルに貼り付けてスクロールさせるのかな?
配列でデータを保持する。
1画面分だけをテキストボックスを並べる。
下と横にスクロールバーを置いてそのValue値から
配列の該当部分を表示させる。
とすれば1画面分のコントロール数で済む。
いろいろ教えていただきありがとうございます。
1つのフォーム上に表示しています。
そしてその1つ1つのテキストボックスに値(数値)を表示したいんです。
よろしくお願いします。
>当方、エンタープライズエディションなのでできませんでした。
これが、わかんないんだけれども、
エンタープライズエディションでも
グリッド系のコントロールはあるように思うんだが・・・。
MSGridなど・・・。
MSGrid があるんですが、ライセンスが無いので使えません 、とエラーが出ます
そう、
エンタープライズ=グリッド系コントロールが
使えないという掲示が気になっただけです。
他の初心者が誤解するので・・・。
こういうチャレンジ精神あるのは若い証拠ですよね!
Gridっぽく使いたいんですよね。。
text1(100,100)の2次元配列にするのはよいとして、
開発環境が不明なのでVB6でかかせてもらいます(苦、多分.NETだろうけど)
textbox()
10*10の場合こういうかんじです。
Load時に動的に作った方がいいと思います。
Option Explicit
Dim X As Integer
Private Type CellTemplate
X As Integer
Y As Integer
End Type
Dim Cell As CellTemplate
Private Function GetCellNum(ByVal X As Integer, ByVal Y As Integer)
GetCellNum = X * 10 + Y '縦が10の場合
End Function
Private Function GetCellPos(ByVal CellNum As Integer)
Cell.X = Int(CellNum / 10)
Cell.Y = Int(CellNum - Cell.X * 10)
End Function
Private Sub Form_Load()
Me.Show
Text1(0).SetFocus
End Sub
Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
Debug.Print Cell.X & " "; Cell.Y & "SEL " & Text1(Index).SelStart
With Cell
Select Case KeyCode
Case vbKeyDown
.Y = .Y + 1
Case vbKeyUp
.Y = .Y - 1
Case vbKeyRight
If Text1(Index).SelStart = Len(Text1(Index).Text) Then
.X = .X + 1
End If
Case vbKeyLeft
If Text1(Index).SelStart = 0 Then
.X = .X - 1
End If
If .X < 0 Then .X = 0
If .Y < 0 Then .Y = 0
If .X > 9 Then .X = 9
If .Y > 9 Then .Y = 9
End Select
Text1(GetCellNum(.X, .Y)).SetFocus
End With
End Sub
Private Sub Text1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
GetCellPos Index
End Sub
なんか時間あまりなかったんで、適当ですが参考までに!
ではでは
文章でのイメージだけで恐縮なのですが、ピクチャボックスに100×100で
グリッドを引き1つだけテキストボックスを配置し、キー入力やマウスイベントで
そのテキストボックスを各セルに移動させる。
そしてテキストボックスの内容が決定されたら、ピクチャボックスに表示といった
手段ではどうでしょうか。
もちろん各セルの内容はべつに用意した配列にいれて保存するということで。
ありがとうございます。
いろいろアドバイスを参考にやってみたんですが、結局テキストで表示する前に計算によって配列っぽくしました。
ありがとうございました。
ツイート | ![]() |