C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[8]: TextBoxを一括でReadOnlyに


(過去ログ 75 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■43917 / inTopicNo.1)  Re[6]: TextBoxを一括でReadOnlyに
  
□投稿者/ たくボン (296回)-(2009/11/21(Sat) 10:06:14)
No43915 (sato さん) に返信
> >>似たような画面を用意する=管理が楽
>
> 似たような表示専用画面を作るならば管理は楽ですよ。データ突っ込むだけだもん。

sato?誰?「かんり」調べてみ。

> 修正は倍になりますが。

こういうアホな設計者がゴミのようなシステム作ってるんだろうな。


> 文字も黒で表示されますし、目に優しいです。たまに、全部グレーのうすボケた画面を見ますが、あれは目によろしくないです。
> たくぼんさんはテキストBOXの外観そのままでデータ部の見た目だけいじっちゃうって案でしょ。
>
> 僕にしてみれば手抜き以外のなにものでもありませんよ。


ボクちゃんの言いたいことが全く理解できないんだけど:-P
標準のコントロール使えばそうなるんだろうけどね。残念だけど俺はカスタムコントロール使ったり、共通の処理はインジェクションして制御するタイプだから心配しないでね:-)

自分の少ない知識だけで人を判断すると後で恥ずかしくならない?


> >>表示を切り替えるだけだよね?(若干の動作も変わるかもしれんけど)
> この含みのあるコメントは、切り替え方次第では別画面ないし、別パネルでの表示も有りうるということを示唆しているのですよね?

ここまで日本語の理解力があると、もはや残念としか言いようがないよね。


> >>データと見栄えは別で管理。これが楽な開発。
> >>
> >>修正大好きなら別画面でもいいけど。
>
> これは何言っているのかわかりません。
> データと見栄えは関係ないでしょ。
> 修正大好きとかそーゆー問題じゃないでしょう。

これは経験不足。理解できるまで色んなシステムを見て、設計してみるといいよ。

あ、やっと思い出した。ボクちゃん>■42862で質問ばっかりしてたsatoちゃんだよね。

で、納期厳しい言うて質問ばっかりしてたシステム完成したの?
引用返信 編集キー/
■43918 / inTopicNo.2)  Re[7]: TextBoxを一括でReadOnlyに
□投稿者/ みきぬ (674回)-(2009/11/21(Sat) 11:58:35)
自分が理解できないと煽りしかできないって、かわいそうですね。
画面を分けて、個々の画面をシンプルに作っておくことの意義がわからないとは。

No43917 (たくボン さん) に返信
> 標準のコントロール使えばそうなるんだろうけどね。残念だけど俺はカスタムコントロール使ったり、共通の処理はインジェクションして制御するタイプだから心配しないでね:-)
>
インジェクションのことは知りませんが、つまりあなたの後にそのシステムを扱う人は、それを知っていないとまずいことは分かりました。
私なら見てすぐわかるように、標準コントロールでできることは標準コントロールを使ってやりますけどね。
引き継ぎのときに余計な重荷は背負いたくないし。

なんかあなたはどんどん前提を変えているようですが、質問の状況をどう考えているのですか?
ここでの回答をもとに、一括で TextBox を Readonly にするような対応をしたら、後で困りますよ?
そこは共通認識でいいですよね。「標準のコントロール使えばそうなるんだろうけどね」と仰っているのだから。

さしあたって、ほかのコントロールはどうするんです?
ComboBox とか、DateTimePicker とか…。これらには Readonly がなく、Enable=false にしたらがっかりな見た目になりますよ?
参照画面を分けておけば、そこは ReadOnly の TextBox に交換するなど、容易に対応できます。
で、カスタムコントロールの場合はどうやって実装するんですか?

また、画面には [登録]などのボタンがあると思いますが、そこは当然隠すなどの対応がいりますね。
[戻る] ボタンがあれば、押したときの遷移先も変えてあげないといけませんね。
登録画面の場合、入力中に戻ろうとしたときは破棄確認を出してあげますが、参照画面には不要なものですね。
そういった2画面ぶんのロジックを1つの画面に持つことで、管理が複雑になることが容易に想像できます。
あなたが提案するインジェクションを使えば、この管理が容易になるのですか?

おそらく、たくボン氏がやればそうなのでしょう。あなたはどうやら、とてもすばらしい管理方法を持っているようだ。
だったら、是非それを質問者に教えてあげてください。それはとても有意義なことだと思います。
ていうかそれをしないと、回答として無責任だと思います。
引用返信 編集キー/
■43929 / inTopicNo.3)  Re[8]: TextBoxを一括でReadOnlyに
□投稿者/ たくボン (297回)-(2009/11/21(Sat) 21:59:05)
2009/11/21(Sat) 22:01:06 編集(投稿者)

脱字あったので修正。

No43918 (みきぬ さん) に返信
> 自分が理解できないと煽りしかできないって、かわいそうですね。
> 画面を分けて、個々の画面をシンプルに作っておくことの意義がわからないとは。

個々の画面をダラダラ書いて作り捨てにするって事かな?作業の合間に書いたから遅くなってしまった。


複雑な大規模なプロジェクトになる程、コードの住み分けを明確にして集中して管理するのが鉄則だと思うけど?MVCにしてもPatterns & Practicesにしても根本はそこだと思う。

俺はよく例に出すんだけど、「フグ田家にドラえもんがいたり、野比家にカツオがいたら混乱の元」って事。
シンプルに作れないのは、物事を素直に抽象化できていないからだと思うけど。

俺がMSDN買ってすぐにしたことはカスタムコントロールの作成と、アプリケーションの共通する処理のコンポーネント化だったけど未だにその手法は使ってますよ。
(おかげで.NETの継承やADOのバグは結構見つけて教えたけど、結局全部.NETのバグだったからインシデントの消費は0だったな)
画面が綺麗になろうが下位のコンポーネントやレイヤーが変わろうと、業務システムの画面制御なんかそう変わるもんじゃないから。
と言うよりむしろ変わってはダメ。優れたUI程、運用指導とかのコストは低くなるしバグも出にくい。(ここは重要)


> インジェクションのことは知りませんが、つまりあなたの後にそのシステムを扱う人は、それを知っていないとまずいことは分かりました。
> 私なら見てすぐわかるように、標準コントロールでできることは標準コントロールを使ってやりますけどね。
> 引き継ぎのときに余計な重荷は背負いたくないし。

まずいってのがどれくらいのレベルを言ってるのかわからんけど。

コントロール(コンポーネント)の設計者は知ってないとまずいけど、普通のプログラマがそれを全て理解する必要はないでしょ。
みきぬさんは標準コントロールの動作全てを知ってるから使ってるの?
コードの設計はあるべき所にあるべきコードがあれば迷う必要はないと思うんだけど?プロジェクトで徹底できてない?それとも技術者のスキルが低い?
規模にもよるけど、1つのFormに全てのコードを入れて行くと開発工数の増加やバグの温床になると思うんだけど。

システム固有の可変になる部分のみをプログラマに作成させて、制御やUI、エンティティの設計はこっちで用意する。
エンドユーザにしても一般の開発者にしても、自由を与えてるようで与えないってのが設計者の思考だと俺は思う。
(こう書くと御幣が生まれるかもしれんから補足しとくけど、全く開発者を信用してない訳ではないから。こっちのチェックが楽になるからそうしてるだけ)


> なんかあなたはどんどん前提を変えているようですが、質問の状況をどう考えているのですか?
> ここでの回答をもとに、一括で TextBox を Readonly にするような対応をしたら、後で困りますよ?
> そこは共通認識でいいですよね。「標準のコントロール使えばそうなるんだろうけどね」と仰っているのだから。

共通認識でOK?もちろん:-)

さて、話を本題に戻してあたかも自分の主張が正しいように誘導してるみたいだけど、スレ主の質問(タイトルも)は、『TextBoxを一括でReadOnlyに』だよね?
個別にReadOnlyするしないの制御はまた別問題。Panelに入れて制御するなり個別にIf書くなり自由にすれば良いだけ。
他にも「後で困る」理由があれば書いてみて。
前提を変えてるんじゃなくて、小出しにしてるだけなんだけどなぁ。
ここは学校じゃないんだし、今回の質問はシステムの作りに関することだからヒント出しただけで十分だと思うけど。
こっから先は考えれる人だけわかればいいんじゃないかな。


> さしあたって、ほかのコントロールはどうするんです?
> ComboBox とか、DateTimePicker とか…。これらには Readonly がなく、Enable=false にしたらがっかりな見た目になりますよ?
> 参照画面を分けておけば、そこは ReadOnly の TextBox に交換するなど、容易に対応できます。

作れない(もしくは考えてもわからない)ならサードパーティ製のコントロールでも買えばいいんじゃない?そのためのサードパーティ製品だと思うし。
俺も案件によってはサードパーティ製のコントロールを指定されることもあるけど、機能満載で使いにくいから嫌い(金出して買ってもバグあるし)

ReadOnlyのTextBoxに交換するのが容易って案があるけど、配置だけ考えても
・その配置やプロパティの設定やチェックは誰がするの?
・何をもってOKとするの?
・仕様変更入ったら全コントロールの配置をまた再チェック?
・データの表示形式とか変更になったら同じ作業をするの?

これはバグの少ない素晴らしいシステムの香りがするのは俺だけ?

古臭いかもしれないけど、システム構築なんかはエンドユーザ業務の「ムリ、無駄、ムラ」の問題点を軽減させることだと思ってるので、これを自分やチームに置き換えて考えてみればおのずと答えが出ると思うけど?
・チームに高いスキルを持つ人が多くいますか?
・スキルの違う人がプログラムしても、同じような品質を提供できますか?
・スキルのない人がチームに参加して、実際納品できうるレベルの品質のコードに到達するまでの期間は短いですか?
・チーム全員がシステムの基本動作が理解できてますか?

ありきたりの話だけど、システムの品質はチームの一番スキルの低い人の品質になるって言われてるけど、実際そうだと思う。
じゃ、どうすれば品質を維持できるの?


> で、カスタムコントロールの場合はどうやって実装するんですか?

そこは自分で考えようよ。開発者は考えてナンボなんだし。


> また、画面には [登録]などのボタンがあると思いますが、そこは当然隠すなどの対応がいりますね。
> [戻る] ボタンがあれば、押したときの遷移先も変えてあげないといけませんね。
> 登録画面の場合、入力中に戻ろうとしたときは破棄確認を出してあげますが、参照画面には不要なものですね。
> そういった2画面ぶんのロジックを1つの画面に持つことで、管理が複雑になることが容易に想像できます。
> あなたが提案するインジェクションを使えば、この管理が容易になるのですか?

答えを先に言うと当然簡単にできる。
実際、登録・参照みたいな画面を制御したりするけど、そんなに難しい処理?そして個々の画面に記述すべき処理?
ってか、業務システムの大半はこれの繰り返しだと思うけど、このことについて考えたことあるのかな?
(既に、1つの画面に処理を持つって書いてる時点で、考えたことはないと思うんだけど敢えて聞いてみようか。)

戻るボタンを使うN:Nの画面遷移のような場合は少し難しくなるけど、ループとインスタンスの動的生成すれば画面制御部は呼び出し元の画面の型を設定しておくだけでできる。(参照を持ってもいいんだけど、それは無駄だし)
設定は呼び出し側の1行でOK。その中核の部分(と言ってもコメント除いて15行くらいで実現できる。
このしくみを開発者が理解できなくても問題はない(と言っても今年入社した新人ですら理解できてるから、俺がいなくても全然平気)

業務システムを構築してる人なら、この辺の作りはまず考えておくべきことじゃないの?


> おそらく、たくボン氏がやればそうなのでしょう。あなたはどうやら、とてもすばらしい管理方法を持っているようだ。
> だったら、是非それを質問者に教えてあげてください。それはとても有意義なことだと思います。
> ていうかそれをしないと、回答として無責任だと思います。

で、俺に何のメリットがあるの?
って書いてしまえばそれまでだけど、結構ヒントは出したつもり(もちろん、みきぬさんの質問に対しても)

ここって勉強会なんだから、こういう討論をもっとしてもいいんじゃないの?

http://d.hatena.ne.jp/busaikuro/20070821
(ごめん、どんな人かわからんから「みきぬ」でぐぐったら一番にヒットしたw)

こんな感じで裏で人を中傷したりしてるより、よっぽど有意義だと思うけど?

こういう事が好きな人みたいだから、先に情報あげるけど「たくボン」で検索しても意味ないですよ:-P
(10年くらい前に別の質問板で使ってたから懐かしくて使ってるだけなので)

さて、ここまで書いたんだからみきぬさんが冒頭で言ってる「意義」ってのを教えてください。
ちなみにウチの新人は昨日「別画面とかありえない」って即答したんで、もしかしたら俺の教育が悪いかもしれないので今後の参考に是非:-)
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -