- - PR -
TextBox のVisibleプロパティを False に設定するとプログラムから書き込みも参照も出来なくなる。
投稿者 | 投稿内容 | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-11-28 21:55
はじめにお断りしておきますが、私はある人(リジェクト試行な特定の人)以外はみな、一緒に仕事をしている仲間だと思って書いています。そのため、「みんなが自分で問題解決ができるようになればいい」と思っています。今、それができなくても、明日にはそれができるようになっていればいいな。そう思っています。
なので、問題に直接答えるより、なにが問題なのか、問題を見分ける視点、問題を解決するための考え方をアドバイスしたいと思っています。
はい。やめて正解だと思います。 ただペコペコ頭を下げるのではなく、何を指摘されているのか、何を学ばなければならないのか、考えて、学んでください。 学ぶことをしないから、正解にたどり着けないのです。 例えば、私は前にも、「まずリファレンスをあたり、それぞれのプロパティ、メソッドがなんのために定義されているか、確認しましょう」と書きました。それをされていれば、今回のように「Visible = False ならばバインドされない」という思い込みはなかったと思います。実験されたように、「デザイナで False にしている場合はバインドされないけど、なぜ?」から始まったのではないでしょうか。
なるほど、では、私の目的は達成しているようです。 私は、「恩は忘れやすいが、恨みは長く覚えている」と思っています。なので、この次、どこにでも投稿するときに「Jittaのような奴からタラタラ能書き垂れられるかもしれない」と振り返っていただければ幸いです。私もあちこちの掲示板に顔を出しています。また私から言われないように、気をつけてください。 (もっとも、最初からそのつもりでは書いていませんけど) 私は前に、「私の都合も考えてください」と、書いたと思います。私は、見ることはできますが、投稿できる時間は限られています。いつでもタイムリーに答えられるわけではありません。質問とは、他のスレッドでのことだと思いますが、他の方が答えてくださっていますよね?また私も、「名指しでの質問には答えられない」と答えたと思います。あなたにとって納得がいかなくても、これが質問に対する答えです。その答えを提示した理由も添えてあったと思います。
うざいのは、上記の通りです。それは、目的通りです。 他人を決めつけてはいません。断定はしていないでしょう?「とお考えのように感じます」と、あなたの態度に対して、私の感想を述べているのですが。。。 また、これは失礼だろうと思ったので省きましたが、「ペコペコ頭を下げてそれでも我慢」しているのは、感じていました。つまり、答えをもらうためにうわべだけ取り繕っている、と。そのように感じた理由は、以前のスレッドで書いたことが実践されていないからです。私は、「周りの人に、投稿文が赤の他人に理解可能か、聞いてみてください」とも書きました。そのことも実践されていないようです。 初心者であることや、質問をしていることを見下げることはしません。しかし、この、うわべだけ取り繕う態度については見下げます。反感を覚えるのは結構です。ある程度、それを目的としていますから。でも、そのうわべだけ取り繕う態度こそ、反感を買っていることも、お忘れ無く。 なお、私は人を見て(感じて)回答内容を変えます。自分でやろうとしている人には、とことん付き合います(例13ページ以降)。 一緒に仕事をするなら、何でも人に聞きに来る人より、自分である程度やって、「こんなことで詰まっているんだけど、次はこうやってみるね。他になんか調べる方法ないかなぁ?」と聞きに来る人の方がいいです。私は、みんながこうなってくれればいいと思っています。こうなるために、どんな聞き方があるか、どんな考え方があるか、アドバイスをします。 リアルでは、複数の人から「とりあえず、あいつに聞け」に指定されています。まったくわからない分野の質問もされます。直接的な回答は得られないが、解決のためのヒントや回避策が出てくるからだそうです。
ここは完全に誤解です。ここは、だんじりさん宛ではありません。「まとめちゃいます」と書いているように、Error401さんへのレスです。 でも、これは気になるので。
時代から取り残される?なぜ? 私は、「新しいことが良いことだ」とは思いません。流行が良いことだとも思いません。 自分が使うものがどんなものか、理解する。自分が何をしようとしているか、理解する。自分が書いたものが何か、理解する。これは、どんなツールを使うことになろうとも、必ず必要なことで、良い悪いという判断を超えた、必要なものだと思います。むしろ、ノンコーディングを、必要な知識を習得する機会を奪う、有害なものであると考えます。 私は流行がどうであろうと、このスタンスを変えるつもりはまったくありません。乗り遅れているとしても気にしません。必要なことですから。お気遣いは無用です。 (というか、気遣っているというより、皮肉に聞こえるんですよ。2〜3スレッドより前から、私に対しては悪意を感じているのですが、気のせいですか) | ||||||||||||||||||||||||
|
投稿日時: 2007-11-28 22:01
いったん区切って、と。11/22 18:00 で原因が特定している?私は「調査のめどが付いた」だけで、特定できているとは思わなかったんだけどなぁ。
と〜っても不思議なので&バグがつぶれて時間を捻出できたので実験してみました。 DataSet をひとつ作り、これにテーブルをひとつ定義。ここに string の列を複数個作りました。 この DataSet をデータソースとして追加しました。VS2005 の[データ]メニューから[データソースを追加]で、DataSet をオブジェクトデータソースとして追加。データソースビューで見ると DataTable1 に定義した列が並んでいるので、こいつをフォーム上へドラッグ。 データソースの作りは別として、だんじりさんの作り方は、こんな感じかなぁ?コードを貼れなくても、こういう、操作手順を書くことはできるよね。 結論として、DataSource にデータが入るタイミングで Visible が false になっている場合、そのコントロールには値がロードされないようです。 また、データを持ってくるのも、Application.Run を呼び出すより後の方がよさげですね。そうでないと、DataSource.BindingComplete イベントが発生しませんでした。なので、Visible を false にするのは、このイベント以降が良さそうです。
試したこと: で、やっぱり「Visible が false だとバインドしません」というのが仕様なのかどうか、わからない。少なくとも、実装はそうなっているっぽい。 DataSource に「バインド処理がされる直前」っていうイベントがないので、いつバインドされるのかがわからないのですが、Application.Run 以降のようです。 ASP.NET なら自分で制御しなきゃいけないんだけど、Windows の場合、どうなっているんだろう? | ||||||||||||||||||||||||
|
投稿日時: 2007-11-28 23:40
だんじりさんにとって、「ミニマムコード」(またはじゃんぬねっとさんが書かれた
「現象が再現できる最小限の 'コード'」)が「具体的に」どんなものなのか、 理解できなかったのが、長引いた原因ではないでしょうか? 私はVisual Basic 2005 Express Editionを使ったことがないので、これを使った時の ミニマムコードが想像できません。 JavaやSQLだと、CODEタグでくくったソースをここでよく見かけます。 ここでちょうどJittaさんから投稿がありましたので、流用させていただきます。
これ(だけ)が、Visual Basic 2005 Express Editionのミニマムコードなんでしょうか? (本当に知らないで聞いています) たぶん、これに(CODEタグでくくった)ソースを加えたものがあると、他の人が再現できる ミニマムコードになると想像しています。 今回に関して言えば、だんじりさんに「ミニマムコードとはこんなもんだよ」と例示して いれば、こじれなかったと思います。 | ||||||||||||||||||||||||
|
投稿日時: 2007-11-29 01:43
何度か出ていたと記憶していますが私の認識に誤りがありますか? というより私自身も何度か例示していたつもりでしたが... 悲しいですね。 あれでダメというなら回答者は質問者に対して皮肉のオンパレードになるでしょうね。 ひょっとしてデザイナでのレベルの話でしょうか... そこはそうであると表明して頂くかしないとやっていないのと同じに見られるのはしょうがないかなと思ってしまいます。 少なくともそれ以外の部分は提示できた事実に変わりがないわけです。 さらにひょっとして、"こ れ が 今 回 の ミ ニ マ ム コ ー ド だ!!" と明示しなくてはいけなかったということでしょうか。 そこまで求めるのは無茶ですね。 私個人としては意味さえありません。 以下は独り言に近いですが。
ご本人はミニマム コードが何であるか理解してるつもりだったようですし、問題解決に繋がらないものは一旦無視するのももはや恒例です。 私は根気よく何度も要求しますけど。 ただ、イヤなら 「答えなきゃいい」 という選択肢もあることは忘れないでおきたいですね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||||||||||
|
投稿日時: 2007-11-29 07:41
この操作に、「デザイナ上で、VisibleプロパティをFalseにする」という操作を加えると、ミニマムコードが生成されます。 ミニマムとはいえ、ツールが大量のコードを生成しますから、この場に投稿するのは躊躇われます。この、「出来上がったコードがでかすぎる」という理由では、だんじりさんがコードを載せないことはもっともだと思います。 とはいえ、このように、操作手順を書くという方法もあるわけです。 「まず、隣にいる人に聞いてみようよ」と書く理由がここにあります。隣の人に、説明するでしょ。そのとき、聞き返されることもあるでしょう。聞き返されたことは、ウェブでも聞き返されるのです。 | ||||||||||||||||||||||||
|
投稿日時: 2007-11-29 08:05
質問者の理解力が回答者の説明に対して相対的に不足しており、回答者が根気強くコメントを繰り返しているところに見かねた新たな回答者が嫌味っぽい発言をして荒れるケースがありますね。「1+1もわからない人が数学の教授に質問してはいけない」というのはその通りかも知れませんが、ここはオープンな場所ですから「数学しか教えられない人が算数の質問に回答してはいけない」というのもまた真ではないでしょうか?
「質問者に成長してほしい」という想いはすばらしいと思います。ですが会議室の主目的はそれではないですから、そういう想いを持って質問者に接するなら、「やるならちゃんとやる。ちゃんとできないならやらない」心構えでやってほしいです。辛抱できずに嫌味っぽい発言をしてしまうとその想いも嘘に見えてしまいます。 質問者を育てるという行為にも、プログラミングで言うところの”ミニマムコードを書く”、”リファレンスを見る”等に相当するセオリーがあると思います。 | ||||||||||||||||||||||||
|
投稿日時: 2007-11-29 10:10
あまり関係ありませんが。
誰かが少し言ってましたが、僕はどうして「単価」を非表示にして保持しておく必要があるのかずっと疑問でした。 画面を表示し、金額を算出するまでに時間があった場合、裏で単価が変わってしまっていたらどうすんだろ、と。 仕様を見直せば、今回の問題なんか出てこないのかな、と。 まあ、今となってはどうでもいい話ですが。 ひょっとして、画面上にある表示系の TextBox にすべて Bind されているのではないかとちょっと心配・・・ | ||||||||||||||||||||||||
|
投稿日時: 2007-11-29 10:28
このスレッドは最初から面白く拝見させていただきましたが、私はラフィンさんと逆の意見を持っています。
そもそもだんじり氏は22日11時及び12時時点で回答者から提示されたミニマムコードと比較しながら 自分の状況を詳しく説明しています。私も普通に読んで単純に理解できました。またこの説明を理解した 閲覧者で同じ体験を持つ数人が、その情報を提供してくれてましたよね。 それから(20:42分時点)自力解決されそのテスト手順とテスト結果を提示しています。さらに情報提供者 からのヒントで7個のコントロールについてもテスト手順とその結果まで提供されていました。 ところがこの状況説明を理解できなかった回答者が、根気強く(しつこく)コメント(質問)を繰り返して いたに過ぎません。だんじり氏にとってはとっくに解決済みなのに、その後1週間もの質問攻めで、はじめは 丁寧に返事していましたが、最後にはプッツンしたのでしょう。 ただ許せないのはJittaさんに対する侮辱です。たまたまプッツンしているときにJittaさんから投稿が あったからでしょうが、出てきてあやまれ。 |