参照型の引数(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
すみません、環境を書き忘れていました。
VisualBasic.NET 2003
WindowsXP Pro
です。よろしくお願いします。
危険な設計だね。
やる意味は全くないよ。
テキストボックス渡したら?
イベント発生させたらいかが?
みなさん返答ありがとうございます。
>ほげーさん
危険ですか…、ありがとうございます。考え直すことにします。ただ、一応実現方法を知りたいので解決ボタンはまだ押さない事にさせてください。
>ガッさん
実は最初はそれでやってたんですが、対象がTextBoxだけとは限らなくなったのでやめました。
>drさん
イベントを発生といいますとどういったイベントですか?すみません、ちょっと想像がつかないです。
String.InternedメソッドかString.IsInternedメソッドというものを使えば実現できるかと思ったんですが、
sText = TargetText
を
sText = String.Interned(TargetText)
に変えて試してみましたが無理でした。
やっぱ無理なんでしょうか。仕方ないので解決ということにします。
みなさんありがとうございました。
ツイート | ![]() |