tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルForm2からForm1のテキストボックスの内容を取得するほかの方法を教えて下し
記事No1010
投稿日: 2004/08/07(Sat) 20:21
投稿者tomi
[OSのVer]:Windows XP   [VBのVer]:VB.NET  
はじめまして、はじめて投稿をする初心者です。

”Form2からForm1のテキストボックスの内容を取得”のトピックスの方法だと、
”form1”のテキストボックスのテキストプロパティーに直接、入力したテキストしかform2のテキス
トボックスに反映されません。Form1上で入力したテキストボックス内のテキストをForm2のテキスト
ボックスに反映する方法を、どなたか教えてください。

よろしくお願い致します

[ツリー表示へ]
タイトルRe: Form2からForm1のテキストボックスの内容を取得するほかの方法を教えて下し
記事No1011
投稿日: 2004/08/07(Sat) 22:02
投稿者花ちゃん
>Form1上で入力したテキストボックス内のテキストをForm2のテキスト
> ボックスに反映する方法を、どなたか教えてください。

[Form1からForm2のラベルのテキストに記入・Form2からForm1のテキストボックスの内容を取得]
この Form1からForm2のラベルのテキストに記入 と同様でできるかと思うのですが
試されたのでしょうか?

frm2.Label1.Text = "Form1 から記入しています。"

上記をテキストボックスに書き換えたらいいのでは
             ↓
frm2.TextBox1.Text = TextBox1.Text

[ツリー表示へ]
タイトルRe^2: Form2からForm1のテキストボックスの内容を取得するほかの方法を教えて下し
記事No1012
投稿日: 2004/08/08(Sun) 03:33
投稿者tomi
[OSのVer]:Windows    [VBのVer]:VB.NET 2003  
花ちゃんへ
回答ありがとうございます

試してみたのですがどうもうまくいきません。
私のコードの書き方が悪いのかも・・・・・一応、コードを記入しておきます。

フォーム1コード
Private Sub Button1_Click(ByVal sender As System.Object, _
                                 ByVal e As System.EventArgs) Handles Button1.Click
        'Form1からForm2のラベルのテキストに記入
        frm2.textbox1.Text = TextBox1.Text
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) Handles MyBase.Load
        'Form2 を表示    
        frm2 = New Form2
        frm2.Show()
    End Sub

モジュール1コード
    Private frm2 As Form2   'モジュールレベルで宣言
このやり方ですと、frm2が宣言されてないというエラーが出てしまいます。


又、今回の質問のフォーム2のボタンイベントを発生させて、フォーム1のテキストボックス1内のテ
キストを、フォーム2のテキストボックス1に表示させようとしているコードは下記のように記入しま
したが、やはり、フォーム1、テキストボックス1内のプロパティーに直接記入しているテキストしか
表示できませんでした。

フォーム1テキストボックスプロパティーは a となっています

フォーム1コード
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
        TextBox1.Text = "b"
    End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
        Dim frm2 As New Form2
        frm2.Show()
    End Sub

フォーム2コード
Private Sub Button1_Click(ByVal sender As System.Object, _
                                  ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = frm1.TextBox1.Text
    End Sub

モジュール1コード
  Public frm1 As New Form1

以上のようなコードなのですが、デバックした際、フォーム1のテキストボックスには bと表示さ
れ、ボタンを押した際、フォーム2が表示されます。このときフォーム2のテキストボックスにはフォ
ーム2テキストボックスの、初期値のTextBox1が表示されています。そして、フォーム2のボタンをク
リックすると、テキストボックスの中には a が表示されます。
大変ご迷惑をおかけいたしますが、今一度、よろしくお願い致します。

[ツリー表示へ]
タイトルRe^3: Form2からForm1のテキストボックスの内容を取得するほかの方法を教えて下し
記事No1013
投稿日: 2004/08/08(Sun) 10:55
投稿者花ちゃん
> 試してみたのですがどうもうまくいきません。

どううまくいかないのですか?

> したが、やはり、フォーム1、テキストボックス1内のプロパティーに直接記入しているテキストし

> 表示できませんでした。

どのようなテキストを表示したいのですか?
テキストボックスに記入しているテキストの内容じゃないのですか?
それともForm1のテキストボックスに記入している状態をリアルタイムにForm2に表示したい
という事ですか
やりたい事をもう少し詳しく箇条書きに順を追って書いて下さい。


>モジュール1コード
>    Private frm2 As Form2 'モジュールレベルで宣言
>このやり方ですと、frm2が宣言されてないというエラーが出てしまいます。

'モジュールレベルで宣言 の書き方が紛らわしかったようです。
Module1.vb じゃなく、Form1 のプロシージャ外という事です。
(Declarations の部分です)
VB6.0 で言うフォームモジュールのモジュールレベルのつもりで書いたのですが

詳しくは、下記リンクのモジュール・レベルの変数を見てください。
hhttp://www.bekkoame.ne.jp/~poetlabo/COMP/Excel/VBALEC/arg.htm

.NET では(メンバ変数)紛らわしいので修正しておきます。
hhttp://www.microsoft.com/japan/msdn/net/vbnetref/vbnetref3-1.asp

[ツリー表示へ]
タイトルRe^4: Form2からForm1のテキストボックスの内容を取得するほかの方法を教えて下し
記事No1014
投稿日: 2004/08/08(Sun) 17:35
投稿者tomi
[OSのVer]:Windows    [VBのVer]:VB.NET  
花ちゃんへ、
たびたびの回答 本当にありがとうございます。

モジュールの件大変よくわかりました。感謝します。

さて、私が考えていたのは画像ビュワーです。フォーム1上の、配列として並べたピクチャーボックス
とテキストボックスに、System.IO.Directory.GetFiles(D:\folder)で所得したファイルを表示させま
す。そして、表示されている1枚のピクチャーボックスをクリックしたときに、フォーム2にて、その
画像を拡大して表示させたいと思っています。そのためにフォーム2上にフォーム1のテキストボック
スで任意に指定したファイルのパスをフォーム2に反映させたいというものです。(この場合、テキス
トボックスでもラベルボックスでもかまわなかったのですが、あえて、テキストボックスを使いまし
た。)

すなわち、花ちゃんに言っていただいた、フォーム1のテキストボックスの内容をリアルタイムにフォ
ーム2に表示させたいというものなのです。

本当にお手数をおかけして、申し訳ございませんが、よろしくお願い致します。

[ツリー表示へ]
タイトルRe^5: Form2からForm1のテキストボックスの内容を取得するほかの方法を教えて下し
記事No1015
投稿日: 2004/08/08(Sun) 18:46
投稿者花ちゃん
答えはすでに書いています。
もう一度回答を見直して下さい。
又、やりたい事を順を追って細かく紙にでも書いて(箇条書き)整理して下さい。

どのタイミング(イベント)でForm2に表示させるかだけの事かと思いますよ。


下記はForm1のボタンをクリックした時にForm1のテキストボックスに書かれている
内容をForm2のテキストボックスに表示するコードです。
Form1 には Button1 と TextBox1 が必要で Form2 TextBox1 が必要です。

    Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) Handles Button1.Click
    frm2.TextBox1.Text = TextBox1.Text    
    End Sub


# 今回の場合はリアルタイムの処理にはなりませんし、必要もないでしょう。

[ツリー表示へ]
タイトル解決しました
記事No1016
投稿日: 2004/08/08(Sun) 23:55
投稿者tomi
[OSのVer]:Windows    [VBのVer]:VB.NET  
花ちゃんへ
本当に親切にご指導いただきありがとうございました。

又何かの機会があればよろしくお願い致します。
本当にありがとうございました。

[ツリー表示へ]