tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルformにあるtextbox名取得
記事No11271
投稿日: 2008/01/29(Tue) 16:50
投稿者
度々すいません。

VB6で開発しているのですが、
フォームを表示した時に、フォームにあるtextboxの名前を取得することは
できなんでしょうか?
 フォームには、テストボックスとコンボボックスが合計で70個ほどあり
配列には、現時点ではなっていません。
 画面上にあるTEXTBOX名をControl変数に代入したいのですが、中々いい方法が
思いつかず悩んでいます。
 代入はやはり70行記述する方法しかないでしょうか?


Private Const LogCtrNum = 75
Private Ctr(LogCtrNum) As Control

Private Sub Form_Load()
CALL SetFocuName
End Sub

Private Sub SetFocuName()
  Ctr(1) = Txt1
  Ctr(2) = Txt2
  Ctr(3) = Cob1
  ・
  ・
  ・
  Ctr(75) = Txt70
End Sub

[ツリー表示へ]
タイトルRe: formにあるtextbox名取得
記事No11272
投稿日: 2008/01/29(Tue) 17:24
投稿者
ME.Controls(0).Name で解決できました。

お騒がせしました。

ありがとうございました。

[ツリー表示へ]
タイトル formにあるtextbox名取得 BETU
記事No11273
投稿日: 2008/01/29(Tue) 18:02
投稿者
ME.Controls(0).Name で名前は取得できるようになったのですが、

Set ctr(0)=Me.Controls(lngCnt).Name 
でエラーがでてしまいました。
424 オブジェクトが必要です。

Me.Controls(lngCnt).Nameでは無理なのでしょうか

[ツリー表示へ]
タイトルRe: formにあるtextbox名取得 BETU
記事No11274
投稿日: 2008/01/29(Tue) 18:15
投稿者
.Nameはプロパティですからね。
Setでは.Nameプロパティがぶら下がって(?)いるコントロール自体を指定してあげないと。

[ツリー表示へ]
タイトルRe: formにあるtextbox名取得 BETU
記事No11275
投稿日: 2008/01/29(Tue) 18:15
投稿者大吉末吉
> Set ctr(0)=Me.Controls(lngCnt).Name 
> でエラーがでてしまいました。
> 424 オブジェクトが必要です。
>
「Me.Controls(lngCnt)」ここまでで、コントロールそのものですので、「.Name」はいりません。


> Me.Controls(lngCnt).Name
では、いわば、

>  Set Ctr(1) = Txt1.Name
としているようなものです。

[ツリー表示へ]
タイトルRe: formにあるtextbox名取得 BETU
記事No11276
投稿日: 2008/01/29(Tue) 18:17
投稿者asdf
> Me.Controls(lngCnt).Nameでは無理なのでしょうか
未確認ですが型が違いませんか?
.NameプロパティはString型のような気がするので、Controlには入らないと思います。
Me.Controls(lngCnt)とかでもよさそうな。

[ツリー表示へ]
タイトルRe^2: formにあるtextbox名取得 BETU
記事No11277
投稿日: 2008/01/29(Tue) 18:44
投稿者
琴さん 大吉末吉さん asdfさん 
ありがとうございます。

確かにその通りです。
全くバカなことをかいてすいませんでした。

解決できました。


本当にありがとうございました。

[ツリー表示へ]