- PR -

別フォームの値を変更

1
投稿者投稿内容
den
会議室デビュー日: 2004/10/05
投稿数: 1
投稿日時: 2004-10-06 14:23
はじめまして。
いつも参考にさせて頂いています。
vb.netをはじめたばかりの者ですが、どなたか教えてください。

Form1のボタンで、Form2を呼び出し、
Form2のボタンで、Form2を閉じるという処理をしています。

Form2を閉じる前に、Form1のtextboxの値を変更したいのですが、
Form1.test.text = '10'
↑のようにすると
「Protected Dim WithEvents txStayCnt As System.Web.UI.WebControls.TextBoxは、Protedtedであるためこのコンテキストではアクセスできません。」
という構文エラーになります。

エラーの意味は分かりますが、どうしたらいいか分かりません。
どなたかお願いします。

Form1
・textboxの定義(aspx.vb)
Protected WithEvents test As System.Web.UI.WebControls.TextBox
 ・ボタン(htmlソース)
<input id="F1Button" onclick="fnForm2()" type="button" >
※fnForm2(javascript)で、Form2を呼んでいる

Form2のボタン(aspx.vbソース)
Private Sub Button1_Click(略)
<-- Form1のtextbox testに10をセット--->
Form1.test.text = '10'
<-- Form2を閉じる--->
Dim script As String
script = "<script language=""JavaScript"">"
script &= "window.close();"
script &= "</script>"
Response.Write(script)
End Sub
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2004-10-06 16:31
Protedtedじゃないようにしてみたのですか?(すると別のエラーがでると思いますが)
引用:
Form1.test.text = '10'

そもそも、Form1はクラスなのでtestにはこのようにはアクセスできません。
しかもこの時点でForm1のインスタンスは特殊な場合をのぞいては存在しませんよね。

すでにクライアントに表示されているFrom1のテキストボックスに値を入れたい、
ということならクライアント側でやる(javascriptなどで)か、From1の方をpostbackする
ようにしむける必要があります。あと、textboxに値を入れてwindowを閉じるだけなら
Button1_Click時もpostbackする必要はない気もします。

例えば
script &= "window.close();"  の前に
script &= (別ウインドウのテキストボックスの値を操作するスクリプト)
を入れるとか
1

スキルアップ/キャリアアップ(JOB@IT)