トップページ⇒tech
1001コメント309KB

C#, C♯, C#相談室 Part71

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2012/03/24(土) 16:43:24.60
前スレ
C#, 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
0577デフォルトの名無しさん2012/04/28(土) 20:34:00.59
やりたかったことができました
それにしても仕事早いですね
汎用的で使い回しもできるし
コントロール自作したことなかったんで挑戦してみます
ありがとうございました

ちなみに自分の考えたコードはこれです
http://pastebin.com/mwKAYzah
0578デフォルトの名無しさん2012/04/28(土) 21:07:23.84
亀田製菓が異物混入の韓国企業と提携で炎上 → 同業者「韓国とは提携せず満足と信頼の製品を作ります」
http://engawa.2ch.net/test/read.cgi/poverty/1335590644/


亀田製菓は韓国の企業「農心」との共同開発を行い、今秋から発売するという。また、農心の工場で菓子の生産技術や
レシピを提供し、農心の商品として販売するそうだ。
この発表以降、亀田製菓のブログに批判的な意見の書き込みが続出し、炎上状態に。最新の更新内容へのコメントは、
既に4000件を超えている。
(略)
http://www.tanteifile.com/watch/2012/04/28_01/image/01.jpg
http://www.tanteifile.com/watch/2012/04/28_01/image/02.jpg
主力商品「辛ラーメン」に、ネズミやゴキブリ等が混入していたことが報じられている。その結果、イギリスやドイツでは
輸入禁止になった。ウジ虫の混入が発覚した際のニュースの動画も出回っている。そのような企業と提携することに対して、
亀田製菓のモラルの欠如を指摘する声が多い。
http://www.tanteifile.com/watch/2012/04/28_01/image/03.jpg
さらに、アマゾンの同社製品へのレビューも、非難のコメントばかりになっている。「日本中で愛されてきたハッピーターンや
柿ピーのノウハウが盗まれ、『韓国起源』となる日も近いでしょう」、「昔ながらの『日本のおばあちゃん』が描かれた
このパッケージも目がつり上がった『オモニ』に替わる日が来るかも知れないなんて・・・亀田さんマジで勘弁して下さいよ・・・」
といった揶揄のコメントも目立つ。
http://www.tanteifile.com/watch/2012/04/28_01/image/04.jpg
炎上騒動の影響は、競合他社へも及んでいる。三幸製菓のブログには、同社を応援するという書き込みが相次いだ。
すると、ブログの担当者は「弊社では、韓国企業との技術提携は行っておらず、また今後そういった計画もございません。
今後も、お客様からご満足と信頼のいただける製品づくりを目指して取り組んで参ります」とコメントした。
http://www.tanteifile.com/watch/2012/04/28_01/image/05.jpg
亀田製菓に限らず、韓国と提携して菓子を製造している企業は多い。この騒動が、他社に飛び火する可能性も高そうだ。

http://www.tanteifile.com/watch/2012/04/28_01/index.html
0579デフォルトの名無しさん2012/04/28(土) 21:23:15.54
ネトウヨきもっ、まで読んだ。
0580デフォルトの名無しさん2012/04/28(土) 21:43:22.82
しかしやっぱり、人に教えようと思うと色々学ぶところがあって面白いなあ。
他にも教える人がいると、違う視点も見れたりして、かなり勉強になる。
精進精進。
0581デフォルトの名無しさん2012/04/28(土) 21:45:39.11
内容が違っていたり気に入らなかったりすると人格批判する奴がいない場合なら同意
0582デフォルトの名無しさん2012/04/28(土) 21:52:47.22
せっかく晒したんだから>>577に対してなにかコメント頂戴よ
>>576みたいなコーディングが簡単にできるようになるには
一体何の知識が足りないの?
文法もひと通り覚えたし、2,30個は小規模アプリ作ったけど
>>576のようなコードが頭にパッと浮かばない
面倒だなと思いながらもわかりやすいからif文を重ねることになる
0583デフォルトの名無しさん2012/04/28(土) 21:55:54.06
>>570
>列挙の要素が10あると100通りのif文を書く方法しか思いつかなくて

列挙の要素が10あると2^10通りのif文を書く方法しか思いつかなくて

の間違いじゃね?
0584デフォルトの名無しさん2012/04/28(土) 21:59:46.49
列挙の要素が10あると10通りのif文を書く方法しか思いつかなくて

だろ。
0585デフォルトの名無しさん2012/04/28(土) 22:03:59.12
>>582
んー、そうだなあ。

if文を減らすため、ていう単独の目的なら、常に「列挙できないか」という視点を持って見ると良いかも。
今回ので言えば、俺ももう一人の人も、Enum.GetValuesとか、Type.GetEnumValuesとか、
列挙体(enum)を列挙(IEnumerableとして取得)して、実現させてるでしょう?

C#の一つの方向性として、IEnumerableの活用ってのはそれなりに熱いし、
Microsoftもある程度注力しているから、そこは大事かな。

全体的なスキルの向上に関しては、目的に従って検索したら、
たとえ目的に合わない様な検索結果でも、とりあえず理解出来ないかトライするってのが良いと思う。
懇切丁寧に教えてくれる人が身近にいないなら、自分で自分にムチを打つしかない。

あとは、MSDNの「クラス一覧」みたいなのを、片っ端から読んでみるのも面白いよ。
どうしても分からない事があったら、こういうところで聞くのもあり。
ただ、最初の内は自分が思っている以上に人に伝わる質問が出来ないもの。
可能なら最初から自分のソースコードを可能な限り広い範囲で晒してみるのが良いと思うよ。
0586デフォルトの名無しさん2012/04/28(土) 22:06:15.31
あぁ、「広い範囲」というのは、マルチポストしろ、って意味じゃなくて、
「質問するのに必要なのはここだけだろう」とソースをごく狭い一部分だけ切り出すんじゃなくて、
関連しそうな部分は「可能な限り」全部晒す、ということなので念為
0587デフォルトの名無しさん2012/04/28(土) 22:09:48.03
1,今後、楽しちゃえ方針で行く
毎回、if〜で判定して…とか面倒だ↓

汎用的に使えるようにリフレクションとか使えば、できそうだ。
するとどうだろう、毎回if〜で判定してチェックボックス設置してという作業から
ユーザーコントロールひとつ設置して型を登録するだけとお手軽になる。

2,MSDNなり、インテリセンスなり調べる。気になるクラスのメタデータをF12(定義に移動)で
見てみるだけでも良い。何か使えそうなプロパティなりメソッドがあれば、それがヒント。

0588デフォルトの名無しさん2012/04/28(土) 22:15:47.39
あ、そうか、ソースに何か言ってくれ、ってことだったな。
ソース自体は全然悪くないと思うよ。今回みたいに、目的が限られているならこれで十分だと思う。
逆に、自分が晒したみたいなソースコードは、時によっては忌避されるべきこともある。
(何でもかんでもリフレクション、なんでもかんでもforeachすりゃ良いってもんでもない)

最初は素直に、こういう風に組んでみるのは全然良いことだと思う。
「一体どこで何が行われるべきなのか」っていうことを知るためには、if文と単純ループだけで作るのが一番大事な基礎だと思うし。
逆に、そういう段階を踏まないと、「なんだ、こんな便利なものがあるのか」と道具頼りで、いざ道具が無い場面に遭遇した時に何も出来ないただのお馬鹿になってしまう。

そこから脱却したい、という話なので、>>585のようなことを考えなきゃいけないね、ということ。
それに、毎回毎回似たようなコードを書くのも面倒臭い、となれば>>587の言うとおり、後で楽するために今苦しむ、というスタンスで行くことになる。
0589デフォルトの名無しさん2012/04/28(土) 22:19:52.08
MSDNは説明文が難しすぎる
今回は、リフレクションと列挙体の知識が足りなかったということで勉強になりました
0590デフォルトの名無しさん2012/04/28(土) 22:21:44.12
>>589
そうなあ。MSDNの日本語の難解さは異常。
長い時間はかかるけど、いずれ慣れるよ。

俺もWPFの勉強にMSDNと格闘、七転八倒してるところだから頑張ろうじゃないか。
0591デフォルトの名無しさん2012/04/28(土) 22:22:17.24
まるでここだけ人生相談室
0592デフォルトの名無しさん2012/04/28(土) 22:24:43.51
MSDNは、ぶっちゃけわかりにくいのは、同意。
MSDN見て?が頭の上に3つ浮かびそうになったら、他にわかりやすいところないか
ググる。それでもないならMSDNを解読するしかない。
0593デフォルトの名無しさん2012/04/28(土) 22:26:09.54
そして何よりも速さが足りない
0594デフォルトの名無しさん2012/04/28(土) 22:27:05.88
MSDNは六法全書に繋がるものがある
0595デフォルトの名無しさん2012/04/28(土) 22:28:25.10
MSに言えよ
0596デフォルトの名無しさん2012/04/28(土) 22:29:21.92
理系一筋の俺でも六法全書の方が分かりやすいと思うわ。
ハイパーリンクの偉大さはあるけど。
あと、場合によっては英語で直読みした方が捗る。
0597デフォルトの名無しさん2012/04/28(土) 22:30:37.75
単なる愚痴にも、解決策を提案するか、
それとも「余所でやれ」と投げ出すかで色々変わる。
スレ違いの話題は忌避されるべきだけど。
0598デフォルトの名無しさん2012/04/28(土) 22:33:21.41
英単語のニュアンスがわからない
横文字が専門用語のことを言っているのか、英会話の一般的なニュアンスなのか
ここがごちゃごちゃになっているから理解に苦しむ
0599デフォルトの名無しさん2012/04/28(土) 22:35:17.25
それは英語圏の人間でもそうらしい。又聞きだけど。
だからこそ、HTMLにも色んな要素があるわけだ。
専門用語のことを言っている箇所はそれなりの要素に納めて、
ブラウザはそれを斜体表示するとか。
0600デフォルトの名無しさん2012/04/28(土) 22:35:57.28
MSDNはだいたい説明が不足してるだけ。
既述が分かりにくいという批判はちょっと違うと思う。
0601デフォルトの名無しさん2012/04/28(土) 22:38:48.98
>>598
文脈依存だから単語で見るとわからない。
自分は、単語AとBが出てきたら頭の中でフュージョンしたり分離したりしてる。
とりあえず、英単語はプリミティブまで分解して考えないとムズいかしいと自分は思っている。

あと、外国はぶらっくじょーくが起源になってたりするからその可能性も考慮しないといけないような気がする。
0602デフォルトの名無しさん2012/04/28(土) 22:41:18.93
MSDNでリファレンスを参照する場合においてはその限りではないが、
コラム的な書きっぷりのページは、確かに向こうの文化とかも押さえておかないと面食らうことがあるな。
重要なこと言ってるかのように見えて、読み終えてみるとたんなる前口上だったりとか。
0603デフォルトの名無しさん2012/04/28(土) 22:44:16.74
日本語で読むから難しいんだよ?!
台湾にして繁体字な漢文に設定して読めばめっちゃ読み易くなるよ?
0604デフォルトの名無しさん2012/04/28(土) 22:45:05.98
>>603
台湾人愛してる
0605デフォルトの名無しさん2012/04/28(土) 22:47:44.59
スポーツ選手と同じで反射で読めるようになったら、しめたもんだな。
0606デフォルトの名無しさん2012/04/28(土) 22:51:58.10
http://msdn.microsoft.com/zh-tw/library/f7ykdhsy.aspx
確かに。リフレクションなんてカタカナにするから駄目なんだよな。
漢は黙って「Reflection」=「反映」だな。
0607デフォルトの名無しさん2012/04/28(土) 22:53:41.98
Google翻訳の方がまだわかりやすい

次のコード例では、各クラスの複数のオブジェクトを作成し、メソッドはそれらを比較するのEqualsの使用方法を示して、二つのパラメータのカスタムAttributeクラスを定義します。

Attribute.Equals メソッド (System)
http://msdn.microsoft.com/ja-jp/library/09ds241w.aspx
0608デフォルトの名無しさん2012/04/28(土) 23:02:13.43
MSDNはサンプルが読みにくいよな
なぜ短く端的に表現できないのか
0609デフォルトの名無しさん2012/04/28(土) 23:04:12.61
マルチレベルで文句言ってくるからかな??
0610デフォルトの名無しさん2012/04/28(土) 23:05:18.18
全部完璧に和訳せよというのも無理な話
0611デフォルトの名無しさん2012/04/28(土) 23:14:38.33
だからこそスクリプトでうざいポップアップさせてるんだろうよ あれマジでうざい
0612デフォルトの名無しさん2012/04/28(土) 23:16:29.92
>>611
あれのせいでMSDN読む気が起きなくなった。
ちょっとコピーしようとしたら、ポップアップが邪魔しやがる。
0613デフォルトの名無しさん2012/04/28(土) 23:19:04.85
[属性の使用方法(属性先.引数)]
公 階層 属性先引数:属性
{
  ///これは属性の構築です。
  公 属性先引数(文字列 目標文章)
  {
    これ.目標文章 = 目標文章;
  }

  //目標文章は、属性文章のための記憶装置です。
  保護 文字列 目標文章;

  //基本が生成するものに文章を追加するには、文字列に変換()を上書きします。
  公 上書き 文字列 文字列に変換()
  {
    戻り値 基本.文字列に変換()+":"+目標文章;
  }
}
0614デフォルトの名無しさん2012/04/28(土) 23:19:56.33
神経質過ぎじゃないの?
俺はGoogleのインスタントプレビューは鬱陶しいだけだと思うけど、
MSDNの原文表示は別に鬱陶しいと思わないけどな
0615デフォルトの名無しさん2012/04/28(土) 23:23:36.17
>>613
もうそこまでいったら、なでしこでやれww
0616デフォルトの名無しさん2012/04/28(土) 23:30:10.20
これからこのスレは英語禁止な
和製英語ももちろんダメだからな
0617デフォルトの名無しさん2012/04/28(土) 23:34:38.47
>>616
メール欄にsageって書いてるぞ
0618デフォルトの名無しさん2012/04/29(日) 00:09:54.64
>>616
釦押下時に「こんにちわ、世界」という声明を窓で表示するにはどうしたらよいのでしょうか?
0619デフォルトの名無しさん2012/04/29(日) 00:24:34.42
逆に、全部訳すと途端に分かりづらくなるよ。COBOLのドキュメント見てて思った。
ああ、そうか、日本語と横文字で単なる文章とそうでないものの見分けが付くから分かりやすいんだな、と。
0620デフォルトの名無しさん2012/04/29(日) 00:26:26.14
でも識別名くらいなら日本語/漢字の方がいいかも。そういう処理系はないのか?
0621デフォルトの名無しさん2012/04/29(日) 00:29:13.10
>>620
C#

オススメはせんけどな。
0622デフォルトの名無しさん2012/04/29(日) 02:11:56.72
>>576
>>574
どちらも型をまず登録しなければいけないんだけど
そういう場合はコンストラクタを使ったほうがいいと思うんだけど
それをしなかったのはなぜですか?

あと~の意味はなんですか?ぐぐっても出てこない
this.value & ~changedFlag
0623デフォルトの名無しさん2012/04/29(日) 02:13:49.50
↑
1の補数
0624デフォルトの名無しさん2012/04/29(日) 02:22:55.00
>>622
確かにこういう場合はコンストラクタを使いたいんだけど、
UserControlのコンストラクタに引数を設定してしまうと、
デザイナで貼り付けられないからだね。

this.value & ~changedFlagは、
this.value と changedFlag の(1の)補数のビット論理積を求めている。

この場合、changedFlag で指定されたフラグを、this.value から解除するためにこうしてる。
参考�@:http://yas-hummingbird.blogspot.jp/2009/02/c_11.html
参考�A:http://ufcpp.net/study/csharp/st_operator.html
参考�B:http://no23.xrea.jp/learning/cs/cs0207Operator4.html
0625デフォルトの名無しさん2012/04/29(日) 02:31:26.79
こうやって色々enumいじってても思うのが、
やっぱりFlagsAttribute付きのenumはちと使いにくいな。
boolをいっぱい持ったclassなりstructの方が使いやすいと感じる。
0626デフォルトの名無しさん2012/04/29(日) 02:38:47.16
>>623
>>624
ありがとう
0627デフォルトの名無しさん2012/04/29(日) 02:45:19.86
Enum.HasFlagsなんてもんができてたのか。
今までは拡張メソッド作ってたけど、知らんかった。
どうせなら演算もビット演算じゃなくてちゃんとメソッドで定義してくれればいいのに。
static Enum Off(this Enum value, Enum flag)とか
static Enum On(this Enum value, Enum flag)とか作ればいんだろけど、
value.GetType().GetEnumUnderlyingType()して・・・とか考えるとおっくうだなあ。
0628デフォルトの名無しさん2012/04/29(日) 02:49:22.98
たいていenumのList使っちゃう
0629デフォルトの名無しさん2012/04/29(日) 02:50:32.48
なるほど、それならLinqでだいぶ捗るな。
0630デフォルトの名無しさん2012/04/29(日) 05:13:54.85
ひと通りの機能を備えた2chブラウザを作るとしたらまず何からはじめる?
資産が何もない状態と仮定して

UMLなどのクラス設計?
いきなりGUIを作成?
抽象クラスを大量に作成する?
Consoleアプリでテストも兼ねて実装から書く?
0631デフォルトの名無しさん2012/04/29(日) 05:48:21.22
テストプロジェクトを作成する
0632デフォルトの名無しさん2012/04/29(日) 05:55:39.83
DataGridView事態のソースコードを読みたいんだが、
どうしたら手に入るか分からない。。。誰か助けてくれい
06336322012/04/29(日) 07:08:56.16
Mono Projectで、ほぼ相当するコードを見付けたので解決しました。
そうか・・・BindingContextってこうやって使うんだな・・・
0634デフォルトの名無しさん2012/04/29(日) 07:14:50.45
>>630
Consoleとdllで2つプロジェクトを作ってモデルの実装と
実験コードの実装を並行して行う。
0635デフォルトの名無しさん2012/04/29(日) 07:29:04.69
>>630
・未だにwebAPIを用意しないで昔ながらの差分取得させてる糞仕様に対応した通信系
・糞BEなどを排除しろと五月蝿いキチ対応のための絞込み機能とテキスト検索
・この辺のUIは横へもってこいや!とネットチンピラ対応の柔軟なUI設計

くらいじゃないの?
大まかに分けると
0636デフォルトの名無しさん2012/04/29(日) 07:41:37.24
日本の大陸棚拡大認定 国連委が勧告 「沖ノ鳥島は島であり、日本の海底資源が拡大すること認定する」

自民党政府は、日本近海の海底にメタンハイドレートやレアメタルなどの海底資源の存在が確認されたことから、
平成20年11月に7海域(計約74万平方キロ)で大陸棚の延伸を申請していた。

200カイリを超えて海底資源の権益を主張できる大陸棚の拡大について、政府は27日、国連の大陸棚限界委員会が
日本の国土面積の約8割に相当する計31万平方キロの拡大を認める勧告を採択したと発表した。日本が同委員会の勧告を受けるのは初めて。

沖ノ鳥島をめぐっては、中国と韓国が「岩であり大陸棚は設定できない」と反発していたが、
国連の大陸棚限界委員会は日本の大陸棚の拡大を認定した。
http://sankei.jp.msn.com/science/news/120428/scn12042808010001-n1.htm



    ∧_∧
  三 (´Д`) _○_
 三/   \/|  |
∩ / /|  |_| 勝 |
|||||  | |  |
||ニヒO ヽ \| | 訴 |
∪   /\ ヽ |__|
 三 / /| |
三 /_/ | |
  \_) (__)
0637デフォルトの名無しさん2012/04/29(日) 09:33:31.66
>>627
dynamicで楽々実装
0638デフォルトの名無しさん2012/04/29(日) 12:09:57.59
>>635
いまさら2chブラウザなんて作ってみようなんてくらい酔狂なんだから
そのくらい屁でもないだろ
0639デフォルトの名無しさん2012/04/29(日) 12:39:46.71
どのようなものを作るのがナウいんですか?
0640デフォルトの名無しさん2012/04/29(日) 12:47:13.51
アップル系 || MS系 || google系のデザインに持っていく
0641デフォルトの名無しさん2012/04/29(日) 18:44:47.80
JITコンパイラってILを1行1行 機械語へ翻訳してるんですか?
それとも、起動時にすべて翻訳してるんですか?
0642デフォルトの名無しさん2012/04/29(日) 18:58:28.32
C#は、インタープリタじゃないので1行1行ってことはないと思う。
0643デフォルトの名無しさん2012/04/29(日) 19:01:11.50
>>641
まずは、JIT の意味を調べてから質問しようよ。
0644デフォルトの名無しさん2012/04/29(日) 19:02:40.06
>>641
非同期処理でも一行づつだと思うか?
0645デフォルトの名無しさん2012/04/29(日) 19:05:37.06
>>841
http://ufcpp.net/study/dotnet/il_about.html

に、「コンパイルしながら実行されます」とあるんで1行1行やってるんでは?
たしかに遅いわけだw
0646デフォルトの名無しさん2012/04/29(日) 19:18:24.48
さすがに1行ずつってわけじゃなくて、メソッド単位とか
クラス単位とか、ある程度の区切りでコンパイルされてると思う。
詳しいことは、知らないけど。
0647デフォルトの名無しさん2012/04/29(日) 19:18:40.56
>>645
JITはメソッド単位。
始めた呼んだメソッドがあったら、そこで全部ネイティブ化して、以降は直接ネイティブコード実行。
0648デフォルトの名無しさん2012/04/29(日) 19:29:41.86
CIL的には一行づつではないでしょうか
0649デフォルトの名無しさん2012/04/29(日) 19:33:36.80
1行ってのが何を指してるかわからないけど、
毎回コンパイルするわけではなく、必要となったときに部分的にネイティブコードに変換して
キャッシュしてるのでは?
0650デフォルトの名無しさん2012/04/29(日) 19:48:13.81
ラベルを持つユーザーコントロールの MouseClick イベントに関する質問です。

ユーザーコントロールを作成して MouseClick イベントの処理を行うとしていますが、
ユーザーコントロール内にあるラベルの上をクリックすると
ラベルに邪魔されて MouseClick イベントが発生しません。
ラベルの上かどうかを気にせず MouseClick イベントを発生させるには
どのようにするのが一番でしょうか?

ラベルの MouseClick イベントで OnMouseClick を呼ぶ方法を試してみましたが、
ラベルの上でマウスボタンを押して
ラベルから外れた(同ユーザーコントロール上の)位置でマウスボタンを離すと
MouseClick イベントが処理されないため(逆も同様)、
いい加減にクリックしてるとたまに反応しません
0651デフォルトの名無しさん2012/04/29(日) 19:53:01.62
>>641
C# via CLSって本で解説されてたけど、内容は忘れたw
0652デフォルトの名無しさん2012/04/29(日) 19:54:01.59
コントロールの上にコントロールしたら当然イベントは分かれるな
ラベル程度なら使わない方がいいんじゃないの
ユーザーコントロールのOnPaintでDrawStringやDrawText使って文字列描画してあげたらどう
0653デフォルトの名無しさん2012/04/29(日) 19:55:12.18
>>650
クリックイベントは子コントロールから伝達される
設定さえしていれば
0654デフォルトの名無しさん2012/04/29(日) 20:09:43.92
>>652
GUI で位置調整しづらいので、直接描画は最後の手段にしたいなあ・・・と
ネイティブだと子コントロールをスルーして親にイベントを送るようなフラグがあったような記憶があって、
C# でもそれがあればと思ってます

>>653
見る限りそれらしいものが見つからないです・・・
0655デフォルトの名無しさん2012/04/29(日) 20:27:36.15
>>654
子コントロールのイベントを受け取るかどうかのプロパティがある
0656デフォルトの名無しさん2012/04/29(日) 20:54:25.79
>>655
ありませんね・・・
ひょっとして 4.0 からのプロパティとかですか?
今は 3.5 で作ってます
0657デフォルトの名無しさん2012/04/29(日) 21:03:07.06
ありますよ

見つけられないならデリゲートイベント使えば?
0658デフォルトの名無しさん2012/04/29(日) 21:08:04.30
あったような機がするのに見付けられない。
そして何故教えてやらぬのだ。

なきゃこういうのも考えるかな。子コントロール一つ一つにイベント登録とか面倒なことこの上無いけど。

public class TestControl : UserControl
{
  Label label;
  public TestControl()
  {
   label = new Label();
   label.Click += new EventHandler(childrenControls_Click);
  }

  private void childrenControls_Click(object sender, EventArgs e)
  {
   this.ClickEventThrow(sender as Control, e);
  }

  private void ClickEventThrow(Control control, EventArgs e)
  {
   if (control == this)
   this.OnClick(e);
   else if (control != null && control.Parent != null)
   ClickEventThrow(control.Parent, e);
  }
}
0659デフォルトの名無しさん2012/04/29(日) 21:08:58.70
UserControl に本当にあります?
06606582012/04/29(日) 21:09:35.29
アレ?それじゃ何の解決にもなってねえよ。馬鹿か。
0661デフォルトの名無しさん2012/04/29(日) 21:12:32.22
>>658
Click のレベルで伝えると
>ラベルの MouseClick イベントで OnMouseClick を呼ぶ方法を試してみましたが、
>ラベルの上でマウスボタンを押して
>ラベルから外れた(同ユーザーコントロール上の)位置でマウスボタンを離すと
>MouseClick イベントが処理されないため(逆も同様)、
>いい加減にクリックしてるとたまに反応しません
と同じ問題が発生するのではないかと

ラベルの Down, Up 内で
RaiseMouseEvent で親にマウスイベントを投げられれば
解決しそうではあるのですが、
第一引数の仕様が公開されていないという・・・
0662デフォルトの名無しさん2012/04/29(日) 21:18:21.19
せいぜいラベルを disabled にする程度でしか
スルーできないようですね・・・
disabled は disabled で困りますので、
結局直接描画で乗り切る事にします
どうもありがとうございました
0663デフォルトの名無しさん2012/04/29(日) 21:20:06.07
>>661
すまん、よく読んでなかった。これで行けそうな気もするが気のせいかも知れない。

public class TestControl : UserControl{
 public TestControl(){
  this.ControlAdded += new ControlEventHandler(_ControlAdded);
 }
 private void _ControlAdded(object sender, ControlEventArgs e){
  e.Control.MouseDown += new MouseEventHandler(childrenControls_MouseDown);
  e.Control.MouseUp += new MouseEventHandler(childrenControls_MouseUp);
  e.Control.ControlAdded += new ControlEventHandler(_ControlAdded);
 }
 private void childrenControls_MouseDown(object sender, MouseEventArgs e){
  this.MouseDownEventThrow(sender as Control, e);
 }
 private void MouseDownEventThrow(Control control, MouseEventArgs e){
  if (control == this)
   this.OnMouseDown(e);
  else if (control != null && control.Parent != null)
   MouseDownEventThrow(control.Parent, e);
 }
 /* 以下略。MouseDownのメソッド二つと同じモノを、「MouseUp」に置き換えて続ける */
}
0664デフォルトの名無しさん2012/04/29(日) 21:20:53.86
そうか、どうしても、親でクリックイベント取得したいのか。
Up/Downの伝播だけだと不足なのね。やらかしたー
0665デフォルトの名無しさん2012/04/29(日) 21:31:13.54
ttp://stackoverflow.com/questions/547172/

WndProcをオーバーライドしてWM_NCHITTESTにHTTRANSPARENTを返せ、だとさ
てか、普通にググれば答え出てくるじゃん。ググれよ
0666デフォルトの名無しさん2012/04/29(日) 23:01:22.78
>>646
ってことは、あるメソッドが呼ばれる場合

以前に翻訳済みか否かをチェックして、未翻訳だったら翻訳して実行
を繰り返してるってこと?

ほぼ、インタプリタじゃんw

VB6の方が速いんじゃね?
0667デフォルトの名無しさん2012/04/29(日) 23:06:46.13
>>666 MSに言ってくれ。
0668デフォルトの名無しさん2012/04/29(日) 23:08:53.82
>>667
モビルスーツに何言っても無駄だろw

お前馬鹿なの?

ガノタはこれだからw
俺はC#の話をしてるんだよw
0669デフォルトの名無しさん2012/04/29(日) 23:12:35.56
VB.NETの記事だがC#も同じ。

http://www.atmarkit.co.jp/fdotnet/vbcheer/vbcheer08/vbcheer08.html
>VB.NETがネイティブ・コード・コンパイラを持たないということと、インタープリタで実行されることはイコールではありません。
0670デフォルトの名無しさん2012/04/29(日) 23:16:45.54
まあ、実際速度を気にするようなシーンなら、C#は使わんし。
0671デフォルトの名無しさん2012/04/29(日) 23:18:29.46
そりゃ、ILからネイティブに翻訳された後なら、遅いってことはないだろうけど
IL⇒ネイティブ翻訳を随時おこなってたら、翻訳時間が上乗せされちゃって最終結果が
得られるのは遅れるんじゃないの?

0672デフォルトの名無しさん2012/04/29(日) 23:19:27.58
>>670
速度を気にするようなシーンとは、どのようなシチュエーションでしょうか?
0673デフォルトの名無しさん2012/04/29(日) 23:19:39.12
>>670
俺もそのスタンスだ。
今時のスペックだと、特に気にすることでもないと思う。
0674デフォルトの名無しさん2012/04/29(日) 23:19:56.37
そら遅れるさ。
0675デフォルトの名無しさん2012/04/29(日) 23:21:26.59
>>672
色々あるけど・・・
具体例挙げると仕事の話になっちゃうからな。

抽象的な例だけど、たとえば緊急地震速報みたいなリアルタイム性を求められるシステムなら、
より計量でコンパクトなシステムを目指すし、C#は牛刀で兎、になっちゃうだろうと思うが。
0676デフォルトの名無しさん2012/04/29(日) 23:23:34.14
↑
えらく大きく出たなw
■ このスレッドは過去ログ倉庫に格納されています