ByRefで取得した文字列を、モジュール変数に代入し参照型として扱うには?

解決


TT  2005-02-24 13:49:52  No: 119884  IP: [192.*.*.*]

参照型の引数(TargetText)にテキストボックスのテキストを渡し、それをモジュール変数(sText)に代入します。
TargetTextを変更した場合はテキストボックスに変更が反映されますが、sTextの値を変更しても変更は反映されません。
対象のテキストを変数として保持して、クラス内の他のメソッドで扱いたいので、sTextの値を変更した時にテキストボックスにも反映されるようにする方法はないでしょうか?必ずしもTextBoxの文字列を扱うわけではないので、対象のTextBoxを直接引数として渡す方法ではなくお願いします。


Private sText as String

Public Sub New(ByRef TargetText As String)
    sText = TargetText
    sText.Trim()
End Sub

Public Sub Sample() as Boolean
    For i As Short = 0 To CShort(sText.Length - 1)
        If (sText.Substring(i, 1) <> "@") Then
            Left(sText,i) 'このコードを実行した時点でテキストボックスに反映したい
            Return (True)
        End If
    Next
    Return (False)
End Sub

編集 削除
TT  2005-02-24 13:52:22  No: 119885  IP: [192.*.*.*]

すみません、環境を書き忘れていました。

VisualBasic.NET 2003
WindowsXP Pro

です。よろしくお願いします。

編集 削除
ほげー  2005-02-24 14:25:30  No: 119886  IP: [192.*.*.*]

危険な設計だね。
やる意味は全くないよ。

編集 削除
ガッ  2005-02-24 14:28:26  No: 119887  IP: [192.*.*.*]

テキストボックス渡したら?

編集 削除
dr  2005-02-24 15:11:29  No: 119888  IP: [192.*.*.*]

イベント発生させたらいかが?

編集 削除
TT  2005-02-24 15:32:22  No: 119889  IP: [192.*.*.*]

みなさん返答ありがとうございます。

>ほげーさん
危険ですか…、ありがとうございます。考え直すことにします。ただ、一応実現方法を知りたいので解決ボタンはまだ押さない事にさせてください。

>ガッさん
実は最初はそれでやってたんですが、対象がTextBoxだけとは限らなくなったのでやめました。

>drさん
イベントを発生といいますとどういったイベントですか?すみません、ちょっと想像がつかないです。

String.InternedメソッドかString.IsInternedメソッドというものを使えば実現できるかと思ったんですが、
sText = TargetText

sText = String.Interned(TargetText)
に変えて試してみましたが無理でした。

編集 削除
TT  2005-02-24 20:39:51  No: 119890  IP: [192.*.*.*]

やっぱ無理なんでしょうか。仕方ないので解決ということにします。
みなさんありがとうございました。

編集 削除