- PR -

TextBox のVisibleプロパティを False に設定するとプログラムから書き込みも参照も出来なくなる。

投稿者投稿内容
だんじり
大ベテラン
会議室デビュー日: 2007/08/10
投稿数: 155
お住まい・勤務地: 神奈川県
投稿日時: 2007-11-21 12:54
Visual Basic 2005 Express Edition でWindowsアプリケーションを開発しています。

DataGridViewでの非表示の列項目(フィールド)とプログラムで値の読み書きは
可能ですが、フォームに配置した非表示TextBoxとの値の読み書きは不可能なよう
ですが、このことはVB.NETの仕様でしょうか。
もし仕様なら、こんな場合にどのように工夫されておられるのかを教えてください。
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2007-11-21 13:04
引用:

フォームに配置した非表示TextBoxとの値の読み書きは不可能なようですが、このことはVB.NETの仕様でしょうか。



ありえません。
「値の読み書き」が何を表しているのか

「不可能」である根拠
を説明してみてください。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-11-21 13:07
引用:

だんじりさんの書き込み (2007-11-21 12:54) より:

フォームに配置した非表示TextBoxとの値の読み書きは不可能なようですが、このことはVB.NETの仕様でしょうか。
もし仕様なら、こんな場合にどのように工夫されておられるのかを教えてください。


そのようなことはないです。

コード:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.TextBox1.Visible = False
        Me.TextBox1.Text = "Liar! Liar!"
        MessageBox.Show(Me.TextBox1.Text)
    End Sub


問題なく動作します。 ミニマム コードで再確認することをオススメします。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2007-11-21 16:03
ありえないですね。
本当に、そんな動きをするのなら、僕が今まで作った大量のコードの動作が不可解だったことになってしまいます。

_________________
R・田中一郎 -  R.Tanaka.Ichiro’s Blog
だんじり
大ベテラン
会議室デビュー日: 2007/08/10
投稿数: 155
お住まい・勤務地: 神奈川県
投稿日時: 2007-11-21 20:05
まどかさん。じゃんぬねっとさん。R・田中一郎さん。大変ありがとうございます。
「そのようなことはないです。」との事ですが、私は非表示TextBoxとの値の読み書きは
出来ないので、不可能なのがVB.NETの仕様と考えておりました。

VB.NETに不慣れな者からしますと何か自分で出来ないことが発生しますと、これは
仕様だろうと思ってしまい、とんでもない間違いを犯してしまいます。今回も非表示
のTextBoxを参照してもNullとのエラーが発生し、また書き込んでも書き込んだ形跡が
なく(TableAdapter.Updateした後、TableAdapter.FillしてDataGridViewに表示して
確認)てっきり仕様と考えました。やむなくTextBoxのBisibleプロパティをTrueにし
て空白のLabelで隠しているしまつです。

「そのようなことはないです。」との事ですので、明日もう一度テストしてみて、
先輩の言われるとおりか試してみて、私の設定に間違いがありば、このスレッドに
報告します。

まどかさん。じゃんぬねっとさん。R・田中一郎さん。本当にありがとうございまし
た。仲間が居なく独学でがんばろうとしているものにとっては、つまらない質問かも
しれませんが、大変ありがたく思っています。今後ともよろしくお願いいたします。



RUN
常連さん
会議室デビュー日: 2007/10/05
投稿数: 32
お住まい・勤務地: 東京都
投稿日時: 2007-11-22 00:38
引用:

だんじりさんの書き込み (2007-11-21 20:05) より:
私は非表示TextBoxとの値の読み書きは
出来ないので、不可能なのがVB.NETの仕様と考えておりました。



個人的に突っ込みどころ満載なのだが、出来るだけ簡潔かつ簡単な事だけ書きます。

まず、どの様な確認方法によって、非表示TextBoxとの値の読み書き方法を確認されましたか?
実際に使用したコードの提示をお願いします。

>Nullとのエラーが発生し
実際のエラーメッセージをお願いします。

最後に、
何の為に非表示のTextBoxを利用しようとしていますか?
本当にTextBoxで実装すべき処理なのですか?

以上についてお聞かせください。

追伸:
Labelで隠すくらいならば、Panelで隠した方がまだ良いですよ。
まるく
大ベテラン
会議室デビュー日: 2004/01/09
投稿数: 181
投稿日時: 2007-11-22 08:49
http://www.hyuki.com/writing/techask.html
一度読んでみてください。
スレッド立てる前に、ここに書かれている事を確認していくと、自分で試せていない事など見つかると思います。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2007-11-22 09:31
引用:

だんじりさんの書き込み (2007-11-21 20:05) より:

「そのようなことはないです。」との事ですが、私は非表示TextBoxとの値の読み書きは
出来ないので、不可能なのがVB.NETの仕様と考えておりました。



僕も独学なので、妙な勘違いをしてしまったという経験は同様にあります。

今回の場合は、落ち着いて Visible プロパティの役割と目的を考えてみると、このような動きは不自然であることがわかります。

そして、不可解だと思ったら、じゃんぬねっとさんの仰るようにミニマムコードを書いてみると良いですよ。
_________________
R・田中一郎 -  R.Tanaka.Ichiro’s Blog

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