- - PR -
TextBox のVisibleプロパティを False に設定するとプログラムから書き込みも参照も出来なくなる。
投稿者 | 投稿内容 | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-11-26 10:55
J.J.さん、テストの詳細な説明ありがとうございます。
J.J.さんのテスト結果は私と同じですね。取り急ぎお礼まで・・・ 追記:先日「ご提示の計算では日数TextBoxに数字が入力されていなくても同様の エラーが出ると思われます。」とのご指摘ありがとうございます。 新規の入力は 全てチェックするようにしていましたが、今回のBindしたデータはチェックして いませんでした。今後はチェックします。 | ||||||||||||||||||||||||
|
投稿日時: 2007-11-26 11:05
じゃんぬねっとさん、説明べたですみません。
詳細説明は、J.J.さん(2007-11-26 10:40)と同じですので重複説明しませんがお許し下さい。 なを、J.J.さんの「この状態で、(列名)TextBoxのVisibleプロパティをIDEより操作。」 とはデザイナで操作と同じと解釈しました。 じゃんぬねっとさんには大変お手数をおかけして申し訳ありません。 | ||||||||||||||||||||||||
|
投稿日時: 2007-11-27 00:51
大変遅いレスで申し訳ありません
>あえて言うなら特殊な環境は1番ではないでしょうか 何故それが特殊で他が特殊でないと思われたのですか? その理由を是非ともお教えいただけませんでしょうか? 初心者故にと言うのであれば、どれが特殊かは思いつかず、とりあえず全て特殊かも知れないと判断すると思うのですが違いますかね? 少なくとも自分には2番がもっとも特殊だと判断します。 貴方が提示されている情報上では、TextBoxはWindows.FormsのコントロールのTextBoxだと判断してしまいます。 となると、TextBoxコントロール自体が何かをBindするような前提のコントロールではないので、bindすることが既に特殊です。 また、貴方の提示されていない情報から判断される、GridView内のカラムコントロールであると判断した場合でも。 1と3は一般的な殆どのコントロールに存在する動作であり、 2だけはGridコントロール特有の動作である為、やはりこれが特殊だと判断できます。 あまり直感的ななんとなくだけで物事を考えているようでは、成長はありませんよ。 大事なのは論理的思考。5W1Hです。 あと、じゃんぬさんもおっしゃられていますが、コントロールにbindさせているのはいったい何なのでしょうか?この点は非常に重要な情報です。 bindしたものによって、挙動は当然変わってきます。 あと、今回の件に関しては、 GridにDataTableをbindしているものと仮定した場合(もっともポピュラーなbind形態) Gridからデータを取得できなかったとしても、直接DataTableからデータを取得出来ると思います。 グリッドに隠しカラムを設定する事は、比較的常套手段なので出来ないという状況自体かなり不思議に感じていますが・・・ 最後に、 >これからもよろしくご指導下さい 本気でそう思っているのであれば、こちらからの状況確認の質問にはちゃんと答えてください。 このスレッドだけでも、回答者側からの質問をどれだけ無視すれば気が済むのですか? 正直、状況確認の質問を無視し続けられると、回答する意欲がなくなります | ||||||||||||||||||||||||
|
投稿日時: 2007-11-27 09:57
「このミニマムコードを書いてみて」ということです・・・ こういうことですか?
・・・C#だったっけ・・・まぁいっか・・・ 注:一切コンパイルなどしていません。間違ってたらすいません。 さて上記コードをみて、何か違ったりしませんか?私はただしくだんじりさんの言ってることをとらえているでしょうか?? コードで書いていない ⇒ 日本語で説明しているということは、何かしらの、 だんじりさんの解釈が含まれてしまう可能性があります。 そういった質問者と回答者の間のずれをうまないためにも、コードというものを提示してほしいのです。 (コードはかかれたままに動きますからね。) ※ じゃんぬさんもきっとそんなかんじのことを言いたいのだと・・ ちがったらちがうよこの野郎!といってください。 > じゃんぬさん 回答者に対して、ほんとうに自分の意図が伝わるのか、伝わらないのであれば どうすれば伝わるのかをもうちょっと考えてみるといいかもしれないですね。 (これは回答者側にも言えてしまうんですけどね〜 特に私はそのあたり 苦手で・・(TT)) | ||||||||||||||||||||||||
|
投稿日時: 2007-11-27 10:37
RUNさん、ありがとうございます。
RUNさんの言われていることが私には理解できない点があります。状況説明しながら 質問させてください。
2番はフォームにTextBoxを配置するほとんどの場合、データソースウインドウから 該当テーブルの該当フォルダーをフォーム上にドラック&ドロップするのではないの でしょうか。 3番の単価TextBoxのVisibleプロパティをFalseに設定することはEnabledプロパティ 同様よくFalseに設定することは一般的と思いました。以上のことからどれも一般的で すが、あえて言うなら1番画と思いました。(ところが実際には2番と3番が複合し て発生したようです)。また最初の状況説明が不足していたのは、エラー原因の究明 をお願いしているのではなく、「・・・不可能なようですが、このことはVB.NETの仕 様でしょうか。」との一般常識を伺ったからからです。(言い訳に聞こえますか) よって、最初の解答で80%の解答をいただいき、J.J.さん(2007-11-22 12:24)の 解答で100%とと感じておりました。 それでもRUNさんのからの指摘がありましたのでそのときの状況を説明いたしましたが どれも一般的で、あえて言うなら1番と思った程度で、RUNさんの言われる2番かもしれません。
この意味が私には理解できません。TextBoxは何のソースともBindしないでフォーム上 に配置することが普通で、bindすることが特殊なのでしょうか。私が現在開発中のソフトでは ほとんどTextBoxは何かのソースとBindしています。この点、私の使い方がおかしいの でしょうか
次の引用は私がこのスレッドの最初に提示した情報ですが・・
また、
Bindされたソース側のデータはテキストであれ数字であれごく一般的なデータです。 2007-11-22 11:01の例で言いますとDataSetの社員名簿テーブルの単価フィールドです。 RUNさん、色々ご指導ありがとうございました。 最後に回答者さんからの質問は、教わる質問者として出来る限り早く詳しく書いている つもりですが、RUNさんのこのスレッドに最初解答いただいたのは次のように最初の 1行目から大変恐ろしく感じてしまい、無視させていただいた次第です。
いずれにいたしましても皆様のご協力で、「BindされたコントロールのVisibleプロパ ティをデザイナで Falseに設定しておくとBindが無効になる。」といえそうです。 ありがとうございました。 渡す→私に修正 [ メッセージ編集済み 編集者: だんじり 編集日時 2007-11-27 11:17 ] "quote"の修正 [ メッセージ編集済み 編集者: だんじり 編集日時 2007-11-27 13:23 ] | ||||||||||||||||||||||||
|
投稿日時: 2007-11-27 11:02
Toshiさん、ありがとうございます。
Toshiさんやじゃんぬねっとが言われた、相手に説明するのに「コードで書け」が間違いなく 伝わる方法と私も理解できますが、次のことをコードで記述する方法が私にはわかりません。 1.TextBoxをフォームに配置する場合、データソースウインドウから該当テーブルの 該当フィールドをドラック&ドロップ(バインド)するコード記述 2.TextBoxが該当フィールドとBindしてデータを受取る前に、Visibleプロパティを Falseに設定するコードをどの場所に書くか。(フォーム_Load時なら正常に動作します) また大変申し訳ありませんが、Toshiさんがご提示いただいたコードも上記条件が 満足されたものかどうかは、私の力では解読できません。 それでもコードを記述して相手に伝えることは間違いなく伝えられることと、そのまま テストできる点等、重要であることは、よく理解しました。 ご親切にありがとうございました。 5行目に(バインド)を追加 [ メッセージ編集済み 編集者: だんじり 編集日時 2007-11-27 11:33 ] フォルダをフィールドに修正 [ メッセージ編集済み 編集者: だんじり 編集日時 2007-11-27 13:54 ] | ||||||||||||||||||||||||
|
投稿日時: 2007-11-27 11:28
スレ主さんへ
他の方からも言われているので鬱陶しいと感じられるかもしれませんが、一言だけ。 回答者が「ミニマムコード」を求めるのは、以下の理由があります。 ・回答者が問題点を見つけやすい ・回答者側で同様の環境を作りやすい ・何より質問者が問題点を見つけやすい 今回の場合、私の提示した手順であっているのであれば、デザイナで操作する部分が多い為 実際に書き込んだコード量は少なかったのかもしれません。 そういう場合は、実際に行った操作を順に並べるというやり方で表現したほうが分かりやすい 場合もあります。 スレ主さんが仕事でプログラムを作っているのであれば、ユーザーから 「エラーが出る。どうにかしろ。」 と言われた場合、どうされますか?その言葉だけじゃ対応できないですよね? 私の場合は、最低でも以下のことを確認します。 ・エラーメッセージは何と表示されているか ・どのような操作を行った場合に発生したか 状況で他にもいくつか追加されますが、これらが分かるだけでもある程度問題点を絞り込めるからです。 本来は、今回私が提示したようなものをスレ主さんから提示してほしかったのだと思います。 で、ここからは別の話。
Jittaさんもおっしゃってますが、私も「仕様である」という情報を見つけられません。 Visual C# 2008 Beta2でも同様の結果となりましたので、仕様・・・というかそのような 設計思想なのかなと勝手に思ってますが、出来れば確証がほしいです。 どなたかご存知ありませんか? | ||||||||||||||||||||||||
|
投稿日時: 2007-11-27 13:07
J.J.さん、またまたありがとうございました。
お恥ずかしい話ですがToshiさんにお答えしたとおり、状況をコード化する力量がなく、 またJ.J.さんをはじめ、KIさん(2007-11-22 19:44)やふみおさん(2007-11-22 14:35) のようにご理解いただいていたもので、それ以上の説明をしていませんでした。 申し訳ありません。 3行目の"含め"を削除 [ メッセージ編集済み 編集者: だんじり 編集日時 2007-11-27 13:59 ] |