C#, C♯, C#相談室 Part71
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2012/03/24(土) 16:43:24.60C#, C♯, C#相談室 Part70
http://toro.2ch.net/test/read.cgi/tech/1327570969/
Visual Studio 2010 Express
http://www.microsoft.com/japan/msdn/vstudio/express/default.aspx
0446デフォルトの名無しさん
2012/04/26(木) 22:01:30.90いずれは、フォーム捨ててWPFというのは、わかるのだが、
どうにもWPFは、まだ始まっても居ない気もする。
まだいろいろあいまいなところがあって、過去資産を活かせないところとか、
わざわざ作り直さないといけない=コストが掛かるとか、そこらへんの問題もあるし、
あいまい故、まだ解説が少ないという面もあるのかもしれん。
0447デフォルトの名無しさん
2012/04/26(木) 22:07:55.61野暮い、というのは?見た目?実装?
0448デフォルトの名無しさん
2012/04/26(木) 22:09:06.45ちょっとリネームするとか、ファイル仕分けするぐらいのものに
WPF使うのは面倒
0449デフォルトの名無しさん
2012/04/26(木) 22:13:01.33WPFが面倒なのは、設計・実装そのものがフォームと比べて変わったからだと思う。
ちょっとしたものを作るならWPFの設計よりもフォームで使い捨てな設計と実装のほうが楽だし、
ITに不慣れなエンドユーザーを考えると、WPFのデザイン制が問われるところでもある。
フォームは、もうわざわざ拡張したりしないで良いから機能としてだけは、残しておいて欲しいところだ。
0450デフォルトの名無しさん
2012/04/26(木) 22:26:14.670451デフォルトの名無しさん
2012/04/26(木) 22:34:14.40そんなもんWPFで作っても全く手間変わらんぞ
というかコマンドラインでいいだろ
0452デフォルトの名無しさん
2012/04/26(木) 22:36:40.24社会人になってから、新しいモノに慣れる時間がとにかく延びた気もするし。
0453デフォルトの名無しさん
2012/04/26(木) 23:06:48.24わざわざコマンド作って、xaml書くって面倒じゃん
それにWPFのデザイン画面は重い
リネームパターンをコンボボックスやリストボックスに残す場合
コマンドラインじゃ無理でしょ
コマンドラインで出来る程度の想像力しかないのかよ
0454デフォルトの名無しさん
2012/04/26(木) 23:18:16.51そんなことしなくてもWinFormsと同じように作れるから
MVVM教の言うことを真に受けてはいけない
0455デフォルトの名無しさん
2012/04/26(木) 23:18:48.550456デフォルトの名無しさん
2012/04/26(木) 23:21:37.84MVVM教(というと批判的に聞こえるだろうが、俺が理解できないだけ)に従わず、
敢えて旧来通りのやりかたでWPFを解説してるサイトってないかな。
WPFとMVVMをいっぺんに、ってなかなか入りづらくて・・・。
ひとまず一段階ハードルを下げてみたい。
0457デフォルトの名無しさん
2012/04/26(木) 23:25:34.43可能な限りGUIに直接依存するコードを減らしてGUIなしでテストできるようにするのがWPF流
WinFormsでもPassiveViewとかうまく使ってそういう考え方で作ればいいと思うよ
0458デフォルトの名無しさん
2012/04/26(木) 23:27:24.59いやいや、MVVMやりやすいようにテンプレート改変してるから
やりたくなくてもやりたくなるでしょWPF使ったら
てか、同じやり方するならWinFormでいいし
0459デフォルトの名無しさん
2012/04/26(木) 23:29:22.19MVVMだの理解できないっていうのもあるけど、単にコマンドだのビューだのモデルだの
面倒だとも思える。いろんな面から分けて作るべきというのは、わかるけど、場面によるわな。
それと、どうにもWPFは、デザイナーが重いし、Formsに比べると、
プロパティエディタが不親切。Formsのようにプロパティの説明を出して欲しい。
0460デフォルトの名無しさん
2012/04/26(木) 23:32:13.45GUIなしテストはもうしてるんだけど、
GUI部分を実装するときにいちいち実行して動作確認が鬱陶しいんだよね
右クリックしたときに適切なコンテキストメニューが表示されるかどうかとか
メニューの排他チェックボタンが正しく機能しているかどうかとか
0461デフォルトの名無しさん
2012/04/26(木) 23:34:03.47バインディングはMVVMでなくても十分便利に活用できるぞ
WPF使うのは高度なGUIの自由度を得るのが目的だろ
MVVMが目的とか本末転倒
0462デフォルトの名無しさん
2012/04/26(木) 23:35:32.62こうしたい!っていう欲求自体が高度化していて、
WPFに写ったときに同じコトをやろうとすると、
覚えることが多すぎるってのはある
0463デフォルトの名無しさん
2012/04/26(木) 23:40:38.480464デフォルトの名無しさん
2012/04/26(木) 23:40:48.97UIオートメーションという仕組みがあるけどWinFormsでも使えるよ
0465デフォルトの名無しさん
2012/04/26(木) 23:42:20.78だから、ちょっとしたツールにそんなデザインなんていらないんだよ
WPF使うときはそれなりの規模のものを作るとき
そういうときのためにMVVMしやすいように改良しているから
そうでないとき以外使いたくない
0466デフォルトの名無しさん
2012/04/26(木) 23:51:13.210467デフォルトの名無しさん
2012/04/27(金) 00:03:17.95お!それなんか良さそう。ありがとう
0468デフォルトの名無しさん
2012/04/27(金) 01:19:27.450469デフォルトの名無しさん
2012/04/27(金) 03:53:36.82MVVMフレームワークとかいろいろあってよく分からん。
0470デフォルトの名無しさん
2012/04/27(金) 04:00:12.990471デフォルトの名無しさん
2012/04/27(金) 04:24:15.24チーム開発になると必要になるんだろうなとは思うけど、まぁ俺には過ぎた代物だ。
0472デフォルトの名無しさん
2012/04/27(金) 13:48:12.2564ビットの値(wowではない箇所)を読む場合どうすれば
よいのでしょうか?
0473デフォルトの名無しさん
2012/04/27(金) 14:21:04.53RegDisableReflectionKey関数でキー単位でリフレクトを停止できる
.NET 4ならRegistryKeyにHandleプロパティがあるからそれ渡せばいいかな
0474デフォルトの名無しさん
2012/04/28(土) 04:02:57.360475デフォルトの名無しさん
2012/04/28(土) 09:29:18.02MSDN嫁、RegexOptionsの項に載ってるじゃねーか
0476デフォルトの名無しさん
2012/04/28(土) 09:50:30.330477デフォルトの名無しさん
2012/04/28(土) 10:26:32.51MouseDown
↓
MouseUp
↓
Click
↓
SelectionChanged
だかんね
0478デフォルトの名無しさん
2012/04/28(土) 10:30:22.370479デフォルトの名無しさん
2012/04/28(土) 11:57:22.92動的に属性を付加または、変更する方法を誰か知っていませんか?
例:とあるクラスにFont型を持つプロパティに対して
動的にDesignerSerializationVisibility属性を付加するなど。
0480デフォルトの名無しさん
2012/04/28(土) 12:08:14.180481デフォルトの名無しさん
2012/04/28(土) 14:38:50.84上記画像の仕様を実装したい場合はどうすればいいのか助言お願いします。
今、自分なりに考えているのは、PanelのMouseイベントでFormのMouseイベントハンドラをOverrideすればいいのかもしれないと考えています。
ただ、今回初めてOverrideを使うので、注意すべき点や、この方法はスマートではない場合、アドバイスお願いします。
0482デフォルトの名無しさん
2012/04/28(土) 14:51:49.79Panelをトップレベルウィンドウにしてるってこと?
何でそんな変なことをする必要があるんだろう。
そんな変なことをしなければ済む問題だと思うんだけど
0483デフォルトの名無しさん
2012/04/28(土) 16:01:30.78FormのNonClientAreaまで全部Panelで覆っちゃうから操作不能って意味だから困ってるの?
>>482
自分がやらないから他の人もやるなと頭ごなしにまず批判する奴って結構いるよね
自分がやらないやり方では、その延長線上じゃ絶対に何らかの機能を持ったソフトを作ることはできないと
断言できるほどすべてのコードパターンを想像できないから俺には言えないな
0484デフォルトの名無しさん
2012/04/28(土) 16:06:19.80しかも、頭ごなしに批判する奴に限って真っ当な理由を述べていないからな。
所詮誰かから仕入れた情報を鵜呑みしてるだけだったり、勘違いしてたりだ。
0485デフォルトの名無しさん
2012/04/28(土) 16:19:39.260486デフォルトの名無しさん
2012/04/28(土) 16:42:59.00馬鹿っぽい批判だね。
君がやってるのがまさに頭ごなしの批判そのもの。
違うというのならPanelをトップレベルウィンドウにしてFormに覆わせる必然性が
あるケースを一つでも言ってからにしろ。
中学生かよ本当。
0487デフォルトの名無しさん
2012/04/28(土) 16:54:08.12理解力なさすぎ
お前にはプログラミング無理
0488デフォルトの名無しさん
2012/04/28(土) 16:57:12.670489デフォルトの名無しさん
2012/04/28(土) 16:57:32.37だから俺やお前が想像できないから 絶対、必ず、100.00%、未来永劫、存在しないとはいえないって言ってるの
頭ごなしの批判を批判したらそれが頭ごなしの批判ってお前は馬鹿か
揚げ足とってる小学生かよ本当。
0490デフォルトの名無しさん
2012/04/28(土) 17:02:01.02同じ内容でも10人それぞれ違ったやり方がある。
改善したほうが良い点は、指摘してくれれば、その人の知識として蓄えられるかも知れない。
しかし、理由なく自分のやり方じゃないからと、批判したところでなんら無意味でしかない。
すなわち、
貴方が素晴らしいと思うやり方が素晴らしいやり方です。
ただし、他人の同意を得られるとは、限りません・・・。
0491デフォルトの名無しさん
2012/04/28(土) 17:13:20.51頭ごなしの批判を批判したら頭ごなしだ、などと意味不明なことは言ってない。
「頭ごなしの批判」とやらをお前自身も頭ごなしに批判してるぞと言っている。
ちなみに頭ごなしの意味はこう
----------------------------------------------------
あたま‐ごなし【頭ごなし】
相手の言い分を聞かず、最初からきめつけた態度をとること。「―にしかりつける」
----------------------------------------------------
うだうだ言ってないで根拠を言えよ。
俺は全然そう思わないが、あんたにとっては頭ごなしの批判は良くないんだろ?
>>482のが不当である理由を頭ごなしにではなくちゃんと言ってくれ。
0492デフォルトの名無しさん
2012/04/28(土) 17:15:01.52友達とかいなそうだなw
0493デフォルトの名無しさん
2012/04/28(土) 17:16:44.34技術の世界に正当な批判なんて存在しえなくなる。
せっかく誰かが悪い作法やアンチパターンを整理しても、それが少なくとも
必用悪であるケースがないことの証明なんて出来ないからな。
0494デフォルトの名無しさん
2012/04/28(土) 17:18:31.62お前そうやって言い訳しながら嫌なことを避けて惨めな人生を暮らしているんだろ?
0495デフォルトの名無しさん
2012/04/28(土) 17:19:37.91幼稚なこと言ってないで>>481的スキームが必用になる具体的ケースを挙げてみろ。
0496デフォルトの名無しさん
2012/04/28(土) 17:21:48.99具体性がない
お前がレスからわかるのは「変」だということだけ
0497デフォルトの名無しさん
2012/04/28(土) 17:22:05.84尤もらしいことを言っているように見せてるようだけど、
自分の主観で「100%ありえない」なんて抜かす主張はそもそも破綻してるんだよ。
あと、アンチパターンを10000回読み直してきた方が良い。
貴様はアンチパターン提唱の何が素晴らしいかを何一つ理解出来てない。
0498デフォルトの名無しさん
2012/04/28(土) 17:22:32.47さっさと答えろや、どういう作りにしょうがお前らには関係ねーだろーよ
0499デフォルトの名無しさん
2012/04/28(土) 17:22:38.19する理由は?
0500デフォルトの名無しさん
2012/04/28(土) 17:23:05.140501デフォルトの名無しさん
2012/04/28(土) 17:23:08.85そう質問する理由は?
0502デフォルトの名無しさん
2012/04/28(土) 17:23:43.68FormにSendMessageしてみてはどうか。
0503デフォルトの名無しさん
2012/04/28(土) 17:25:48.95どこに100%ありえないなんて書いてるんだ。
そうする必要性があるのなら質問者が具体的に答えればよい。
君みたいなガキが相手ではそうは行かないが、人間同士のやり取りとはそういうもの
0504デフォルトの名無しさん
2012/04/28(土) 17:28:29.09バカのオウム返しで答える気がないならこちらも答える必要性はない
0505デフォルトの名無しさん
2012/04/28(土) 17:30:40.36抗鬱剤飲みながら、引きこもって2ちゃんねるを荒らすのが日課
0506デフォルトの名無しさん
2012/04/28(土) 17:31:06.61アンチパターンはきちんと読み返して理解して来たのか?
分からなかったらアンチパターン、なんて二度と安易に言うなよな。
そもそもの動機を根本原因として疑うのは全く以て結構だが、
喧嘩吹っかけるような貴様のレスには端から見ていて苛立ちしか感じなかった。
>違うというのならPanelをトップレベルウィンドウにしてFormに覆わせる必然性が
>あるケースを一つでも言ってからにしろ。
こういう書き口が煽ってるんだよ。
「こうしてはどうか」と具体例を出せるなら出せば良いし、
解決する手立てが思いつかないなら、黙ってろ。
ガキでも結構だが、ガキとしてはアンチパターンを理解出来ない大人の方がいらっしゃるのは暗澹たる気分だね。
0507デフォルトの名無しさん
2012/04/28(土) 17:33:39.33普通はどうして車輪を使わずに抱えて持つ必要があるのかと聞くだろう。
もちろん、万が一のケースとして、車輪を使えない理由があるかもしれない。
だからといって「どうして車輪を使わないのか」と聞かないのかよ。
本当中学生の論理だよな。一貫性がないから論理とも呼べないけどね
0508デフォルトの名無しさん
2012/04/28(土) 17:37:24.83貴様(笑)の煽りは俺を苛立たせる煽り。
最近、こういうおかしな奴増えてるね。
0509デフォルトの名無しさん
2012/04/28(土) 17:37:52.740510デフォルトの名無しさん
2012/04/28(土) 17:39:44.69そりゃあもう、楽しんでるからね。煽りには煽りを。
ちょっと強い言葉を使えば、最初は冷静な連中も、いとも容易く激高する。
実に面白い遊びだ。
0511デフォルトの名無しさん
2012/04/28(土) 17:39:49.940512デフォルトの名無しさん
2012/04/28(土) 17:41:13.49650 名前:デフォルトの名無しさん[sage] 投稿日:2012/04/28(土) 09:10:57.63
あんまりどうでもいい話すると荒らすよ
ポタリングに行っていたので
0513デフォルトの名無しさん
2012/04/28(土) 17:42:31.390514デフォルトの名無しさん
2012/04/28(土) 17:44:42.42で、出た案はやってみたの?
0515デフォルトの名無しさん
2012/04/28(土) 17:51:16.95>ただ、今回初めてOverrideを使うので、注意すべき点や、この方法はスマートではない場合、アドバイスお願いします。
override ってどういうことなの。FormのイベントをPanelのイベントでoverride?継承について何か勘違いしてないかな。
それともC#予約語のoverrideではなく、何か他のことを指しているのか?
子Panelのイベントで受け取ったポインタを、親Formのイベントにそのまま渡せば良いと思うよ。
0516デフォルトの名無しさん
2012/04/28(土) 17:51:44.63○カーソル位置
0517デフォルトの名無しさん
2012/04/28(土) 17:57:37.660518デフォルトの名無しさん
2012/04/28(土) 17:59:49.940519デフォルトの名無しさん
2012/04/28(土) 18:00:19.12文章から察するに、「override」を何か誤解しているようだから、
あんまり突っ込まないでおこう。
0520デフォルトの名無しさん
2012/04/28(土) 18:06:53.520521481
2012/04/28(土) 18:07:10.79>>483
PanelをDock.Fillです。
更にFormborderstyle.Noneです。
>>502
そこをもう少し詳しくアドバイスお願いします。
0522デフォルトの名無しさん
2012/04/28(土) 18:11:25.82メッセージ取得できるでしょ
>>521
OSからのメッセージ(マウスやキーボードの入力情報)を
インターセプトしていじくるってこと
0523デフォルトの名無しさん
2012/04/28(土) 18:12:49.00質問がミスリード過ぎる。
サイズを変更できないのはFormborderstyle.Noneにしているからで、
Panelと一切関係ないじゃないか。
0524デフォルトの名無しさん
2012/04/28(土) 18:13:47.86Formの上にコントロールがいくらかぶさろうとも
子コントロールのイベントを親コントロールに通知できるぞ
0525515
2012/04/28(土) 18:16:24.89>PanelをDock.Fillです。
>更にFormborderstyle.Noneです。
やっぱりそれか。作ってたよ。
ちょっとサンプルコード貼ってるからまっとき。
0526デフォルトの名無しさん
2012/04/28(土) 18:19:10.31させようと思うとWindows Messageを捕捉してかなり面倒な処理が必用になったはず。
妥協案としてウィンドウの右下のみでサイズ変更可能にするだけなら、
普通にWindows Formのマウスイベントを捕捉して処理するだけで大した苦労はなくて出来る。
0527515
2012/04/28(土) 18:20:41.39MainForm.cs
http://pastebin.com/x1mYsD5j
MainForm.Designer.cs
http://pastebin.com/RS2VCYNy
これでどうだ?
0528デフォルトの名無しさん
2012/04/28(土) 18:21:12.80簡単に枠なしや半透明とかできるのに
0529デフォルトの名無しさん
2012/04/28(土) 18:21:28.790530デフォルトの名無しさん
2012/04/28(土) 18:23:02.490531デフォルトの名無しさん
2012/04/28(土) 18:25:41.87FormBorderStyle.Sizableにしたらサイズ変更ができるのは分かってるけど、Formborderstyle.Noneにしたいという要求もあるってことか?
ならば質問でFormborderstyle.Noneにもしたいと言わないと伝わらないだろうな
で解答じゃないけど、もしNoneにした理由がタイトルバーを消したいというだけの理由なら
Sizableにした上でタイトルバーを消すようなRegionを設定するという方法や
Form.Textを空白&Form.ControlBoxをfalseにする方法もある
0532デフォルトの名無しさん
2012/04/28(土) 18:26:37.86int x=y=0;
のようなことって、C#でどう書くんですか?
0533デフォルトの名無しさん
2012/04/28(土) 18:26:39.90どうしようか迷ったけど、マウスイベント、って何のこと(Down/Up/...)を言ってるのかわからんかったので、
いきなりラムダ式でDelegate渡して・・・ってやったら、
質問者が自分のやりたいことをやるためにソースを直すのに、また四苦八苦させてしまうかもしれんな、と思ったので。
0534デフォルトの名無しさん
2012/04/28(土) 18:27:13.23int x = 0, y = 0;
0535デフォルトの名無しさん
2012/04/28(土) 18:28:46.470536デフォルトの名無しさん
2012/04/28(土) 18:29:06.87こいつ昨日ふらっとで同じ質問して相手にバカとかアホとか逆ギレしてたヤツだからスルー推奨
0537デフォルトの名無しさん
2012/04/28(土) 18:30:00.57int x = y = 0がスマート、
int x = 0, y = 0;がスマートでない、と感じる理由で良い。
リテラルを2個も使うのが、後で変更するときに保守性下げるって言うなら、こう。
-----
private const int InitialValue = 0;
/* 略 */
int x = InitialValue,
y = InitialValue;
0538デフォルトの名無しさん
2012/04/28(土) 18:31:16.05逆ギレさせるだけの原因があるからかもしれない。
とりあえず答えてみるよ。
0539デフォルトの名無しさん
2012/04/28(土) 18:31:50.62そのやりかたは知っているけど
int x=y=0;
みたいなやり方をどこかで見たんですよ
これに近い感じで書けないですか?
0540デフォルトの名無しさん
2012/04/28(土) 18:33:49.12スマートとか言っているのは俺じゃないから
よくメソッド内で使い捨ての変数を宣言するときに
簡単に書けないのかなと思ったんで
そしたら
int x=y=0;
みたいな記述を見て、メモっとくのを忘れたから
教えてほしい
0541デフォルトの名無しさん
2012/04/28(土) 18:34:26.45初期化する対象が多くて、一文一文書くのがダサイ、ということなら、
たとえば変数が3個以上ある場合、こういうのはできるけど。
int w, x, y, z;
w, x = y = z = 0;
0542デフォルトの名無しさん
2012/04/28(土) 18:35:01.54x=y=0;
これかなと思ったんだが
これだとyが初期化されていないと何故か警告が出る
xが・・・ならわかるが、なぜy?
0543デフォルトの名無しさん
2012/04/28(土) 18:35:08.790544デフォルトの名無しさん
2012/04/28(土) 18:36:26.00警告、こっちだとでないんだけども。
0545デフォルトの名無しさん
2012/04/28(土) 18:40:26.63解散
■ このスレッドは過去ログ倉庫に格納されています