ふらっとVisual C#,C♯,C#(初心者用) Part98

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
このスレッドは
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。


ふらっとVisual C#,C♯,C#(初心者用) Part97
http://toro.2ch.net/test/read.cgi/tech/1347332006/

関連スレ
C#, C♯, C#相談室 Part75
http://toro.2ch.net/test/read.cgi/tech/1346940693/
2デフォルトの名無しさん:2012/10/02(火) 16:47:13.30


>>前999
オプションが要るけど.NET 4.5まで対応してる
3デフォルトの名無しさん:2012/10/02(火) 16:47:52.94
>>1
4デフォルトの名無しさん:2012/10/02(火) 16:55:58.38
そろそろWin8発売だが、あと5年はWinFormsで行くぜー!!!
David Platt氏の発言はもっともだぜ!!!オラオラ!!!
5デフォルトの名無しさん:2012/10/02(火) 17:10:19.81
>>2
thx
使ってみます
6デフォルトの名無しさん:2012/10/02(火) 18:59:51.11
7デフォルトの名無しさん:2012/10/02(火) 20:22:10.32
win8ストアって儲かるのかな
8デフォルトの名無しさん:2012/10/02(火) 22:27:21.10
ううん
9デフォルトの名無しさん:2012/10/02(火) 22:32:37.37
でもさ、WindowsRTとか言うのが主流になると
HTML5+JavaScriptとかがメインの開発言語になるんだろ?
C#コミュニティとしては何とか流行らないように妨害した方が良くね?
10デフォルトの名無しさん:2012/10/02(火) 22:52:02.70
ビジネスロジックをC#で書いて、UIをHTMLで書きたいってのが簡単に実現できるわけで
妨害より共存繁栄を目指す方がいいと思うけど?
11デフォルトの名無しさん:2012/10/02(火) 23:12:14.49
C#コミュニティとか何一枚岩気取ってんだ死に晒せ
12デフォルトの名無しさん:2012/10/02(火) 23:13:08.47
そうでなくてもクライアントがどんどん薄くなってサーバーに移って行ってる時代だしな
C#の用途がASP.NETメインになっていくのは必至
13デフォルトの名無しさん:2012/10/02(火) 23:35:27.63
WinRT自体、(C++/DirectXは別にして)Webサービスのクライアント動かすための環境みたいなもんだろ
サーバー側はがっつり.NETでサービス書いて、
クライアントはただの窓口だからJSでも何でも手軽なのでいいって方針でしょ
14デフォルトの名無しさん:2012/10/02(火) 23:35:29.25
サーバーサイドなら、初心者が大嫌いなリバースエンジニアリングもされなくて済むよ(ニッコリ
15デフォルトの名無しさん:2012/10/02(火) 23:42:19.13
Webサービス使わないんならWinRTでむしろ何作るんだろ? (ゲーム以外で)
自称個人開発者お得意のちょっとしたユーティリティ類なんて
制限ガチガチのWinRTじゃほとんど何もできないし
16デフォルトの名無しさん:2012/10/02(火) 23:51:46.46
お前もいつまでも根に持ってるな
そんなに堪えたのか
17デフォルトの名無しさん:2012/10/03(水) 00:09:52.64
仕事以外ではゲームしか作らないから問題ない
18デフォルトの名無しさん:2012/10/03(水) 00:40:39.71
>>15
無能って想像力無いんだね
19デフォルトの名無しさん:2012/10/03(水) 00:52:16.55
>>18
アイデアplz
エディタとかでもモバイル対応するんなら今時web同期は常識だよ
20デフォルトの名無しさん:2012/10/03(水) 02:26:51.36
エロビデダウンローダー
21デフォルトの名無しさん:2012/10/03(水) 02:46:23.32
html5で快適に動かしたかったら今よりずっとスペックが必要だしな
html5の時代なんていつまでたっても来ないだろう
22デフォルトの名無しさん:2012/10/03(水) 04:19:57.81
大体ブラウザが原因じゃないかと
23デフォルトの名無しさん:2012/10/03(水) 08:27:11.38
ところで、VS2012のコンパイルオプションで、
x86と64ってのが選べるんだけど、.NETって
CPU依存モジュールなんだっけ?
それとも単なる最適化オプション?
24デフォルトの名無しさん:2012/10/03(水) 08:29:49.83
>>23
IntPtr
25デフォルトの名無しさん:2012/10/03(水) 08:40:02.35
AnyCPUがあるとおり.NET自体はどっちでもいいんだが
アプリの参照するCOMとかアンマネージDLLとかがな
26デフォルトの名無しさん:2012/10/03(水) 08:43:49.24
以前radiko用の簡易プレーヤーをwebBrowserで作った際に
AnyCPUでビルドして配布したら64bitOS下でこけたことがあるな

x86でビルドしておけば64bitOS下でも32bit版IEとFlashが読み込まれるので
こけない感じ
27デフォルトの名無しさん:2012/10/03(水) 15:24:07.74
WindowsMediaPlayerコントロールって、ターゲットプラットフォームが64bitだと正常に動作しないですか?
なんかやたらと不安定なんですが・・・。
28デフォルトの名無しさん:2012/10/03(水) 15:37:59.36
せめてどう不安定なのかとか、使ってるコーデック一覧ぐらいはないと…
29デフォルトの名無しさん:2012/10/03(水) 17:46:44.68
すまぬ。
コーデック以前に、フォームに貼りつけただけで「AxHostが作成できませんでした」とか
「Interop.WMPLib.DLLが見付かりません」とか
「WMPLib.DLLが無効です」とか
勝手にDLL拾ってきて勝手にエラー出してます。
30デフォルトの名無しさん:2012/10/03(水) 20:19:07.75
ウィルス
31デフォルトの名無しさん:2012/10/03(水) 21:48:01.60
やっぱりDelphi最強だな
32デフォルトの名無しさん:2012/10/03(水) 21:57:18.46
ヘルスバーグがGoogleやOracleやAppleに引き抜かれて新言語作ったら
さぞ微妙な気分になることだろうな
それでもC#信者でいられるだろうか
33デフォルトの名無しさん:2012/10/03(水) 22:09:25.02
十数本ある手足のうちの一つだからどうでもいいわ
むしろ一本増えるかも
34デフォルトの名無しさん:2012/10/03(水) 22:54:32.43
彼の素晴らしさが多くの人に知れ渡ると歓喜するのがよく訓練された信者というものではないか。
35デフォルトの名無しさん:2012/10/04(木) 01:09:57.28
36デフォルトの名無しさん:2012/10/04(木) 15:01:33.37
すみません、VC#でUDPでの送受信プログラムを作ろうとしています。
1対多の構成で、1台のPCから数台のネットワーク端末へデータのポーリングを行います。

下記ページのコードを参考に作っているのですが、
受信したUDPのデータがどのIPアドレスの端末から送られてのかを見る場合
どこのプロパティを参照すればよいでしょうか。
http://homepage2.nifty.com/nonnon/SoftSample/CS.NET/SampleUdpIp2.html
37デフォルトの名無しさん:2012/10/04(木) 15:09:16.60
EndReceivedで受け取ってるだろ
38デフォルトの名無しさん:2012/10/04(木) 15:11:16.00
IPEndPoint.Address, IPEndPoint.Port
39デフォルトの名無しさん:2012/10/04(木) 15:14:43.84
>>37
ipAnyの中に入ってますね。
ありがとうございました。
大変たすかりました。
40デフォルトの名無しさん:2012/10/04(木) 15:16:12.17
>>38
こまかいプロパティの名前までありがとうございました。
41デフォルトの名無しさん:2012/10/04(木) 19:56:16.96
>>36
torrentでもやろうっての?
42デフォルトの名無しさん:2012/10/04(木) 20:36:30.87
>>41
さっさと質問に答えろよ、ハゲ
43デフォルトの名無しさん:2012/10/04(木) 21:07:21.66
答えて差し上げろ
44デフォルトの名無しさん:2012/10/04(木) 21:58:01.38
30超えてからプログラミングはじめた俺でもわかる
45デフォルトの名無しさん:2012/10/04(木) 23:08:38.88
なんやそれ
オッサン自慢け
46デフォルトの名無しさん:2012/10/05(金) 07:22:55.18
野球よりもセックスすき
2012年9月30日現在301人斬り/卒業までに1000人斬りや/目指せ加藤鷹

http://blog-imgs-44.fc2.com/n/e/w/news020/Screenshot_1_20121004180516.jpg
記念すべき300人目が高1女との3Pとは想像も
せんかったわ 300.301

47デフォルトの名無しさん:2012/10/05(金) 12:52:14.93
今までLL言語とか興味ゼロで知識ゼロだったんだけど
TypeScriptが登場したので、今30分くらいjsを勉強してみたんだけど
js界隈に近寄らなくて正解だと確信した、今後も関わることは無いだろう
48デフォルトの名無しさん:2012/10/05(金) 12:53:11.89
ケドケドケドケド
49デフォルトの名無しさん:2012/10/05(金) 13:09:13.46
Lightweight Language Language
50デフォルトの名無しさん:2012/10/05(金) 15:52:09.50
Scroll.Valueの最大値ってScroll.Maximumと違うじゃねーかくそったれ
半日悩んだじゃねーかごるぁああああああああああああああああああ
51デフォルトの名無しさん:2012/10/05(金) 16:43:30.54
漠然とした質問ですいません、XMLを使用したクライアント/サーバーでの
通信は一般的にどの様に行うのでしょうか?

[SOH]ヘッダー部分(ここでXMLがどの型を使うか指定)[STX]Xml本体[EOT]
のように行うのかhttp://lyokato.github.com/ocean-core/xep2.htmlのように
XML文内で通信をやり取りするのか・・・

C#単体であれば他にやりようがあるのですが、C++やJavaでも使用する可能性
があります。ざっくり、この記事を見ろでもかまいませんヒントになるようなものない
でしょうか?よろしくおねがいします。
52デフォルトの名無しさん:2012/10/05(金) 17:01:25.46
http + xml
inetd(or xinetd) + xml(毎回接続)
inetd(or xinetd) + xml(MIMEマルチパート)
5351:2012/10/05(金) 17:41:25.99
すいません、条件をつけるのを忘れていました。

条件:Socket通信
電文方法:XML

不明点:通信データのやり取りの方法
電文XMLを送信した場合、データの終端はどの様に判断するか?
固定長ヘッダー+XML文とするのか?(固定長ヘッダー^内に電文サイズを格納するなど)

54デフォルトの名無しさん:2012/10/05(金) 17:45:46.80
終端はコネクション断によって判断する
55デフォルトの名無しさん:2012/10/05(金) 17:51:58.38
\0が入ったら終端とする
56デフォルトの名無しさん:2012/10/05(金) 17:56:57.21
金の切れ目が縁の切れ目ってか、上手いこと言ったつもりか
57デフォルトの名無しさん:2012/10/05(金) 18:01:21.37
え?
58デフォルトの名無しさん:2012/10/05(金) 18:03:39.63
HTTPでやればいいのに
59デフォルトの名無しさん:2012/10/05(金) 18:45:33.50
>>58に一票
60デフォルトの名無しさん:2012/10/05(金) 19:00:59.04
プロトコルなんて上っ面だから、後からどうとでもなる部分だしね
61デフォルトの名無しさん:2012/10/05(金) 19:24:06.07
いきなりズラズラXMLを送っていきなり切断してもいいわけだろ
62デフォルトの名無しさん:2012/10/05(金) 21:13:50.20
モバイルとかの業務アプリだとhttpは遅くて使いものにならない
63デフォルトの名無しさん:2012/10/05(金) 21:16:43.63
毎回切断するからか?
64デフォルトの名無しさん:2012/10/05(金) 21:41:01.68
誰も業務なんて言ってないのに何故いきなり業務が始まったの?
ワーカーホリックなの?
65デフォルトの名無しさん:2012/10/05(金) 21:41:36.03
うん
66デフォルトの名無しさん:2012/10/05(金) 21:43:40.05
httpって遅いの?
ちょっとやり取りした後は別になんでも送れるんじゃないの?
67デフォルトの名無しさん:2012/10/05(金) 21:45:22.87
仕事中毒は感染するから隔離しないと駄目だよ
シッシッ
68デフォルトの名無しさん:2012/10/05(金) 21:48:47.01
送信側も受信側も単純な処理しかしてないのなら大差ないよ
おせーってのはちゃんとしたRFCにあるような仕様に従って処理すればの話

それとペイロードが非常に小さくて、数送るとオーバーヘッドが無視できないような場合
69デフォルトの名無しさん:2012/10/05(金) 22:17:19.38
そういやSOAPって今どうなってんの?
流行ってる?
70デフォルトの名無しさん:2012/10/05(金) 22:22:20.64
>>69
2クールなのはいいがダウンロード厳罰化の10月をまたいだのはいただけないな
テレビで見られないからネットで見てたんだけど捕まったら嫌だから泣く泣く切ったよ
文化庁はストリーミングはOKって言ってるけどQ&A見る限り情弱ぷりを惜しげなく披露してるとこから
発言の効力があるとは思えないのが実情だな
もうねこの国
71デフォルトの名無しさん:2012/10/05(金) 22:27:59.13
それはsop
72デフォルトの名無しさん:2012/10/05(金) 22:28:33.71
これ面白いと思って書いてるんでしょ
アニメなんか見るもんじゃあないよね
73デフォルトの名無しさん:2012/10/05(金) 22:29:35.38
sopは海外サッカー見るやつだろ
74デフォルトの名無しさん:2012/10/05(金) 22:55:06.07
エクスプローラーをファイル選択状態で開きたいんだけど
既にそのフォルダが開かれているとファイル選択してくれないんだけど
Win32APIを使うしか無いですか?
75デフォルトの名無しさん:2012/10/05(金) 23:34:24.99
うん
76デフォルトの名無しさん:2012/10/06(土) 02:09:35.12
最近良く聞くクラウドとは何ですか?
77デフォルトの名無しさん:2012/10/06(土) 02:12:43.86
お前のようなうすのろのことだ
78デフォルトの名無しさん:2012/10/06(土) 02:41:42.67
うすのろって何ですか?
79デフォルトの名無しさん:2012/10/06(土) 09:03:24.90
広辞苑より
うす-のろ【薄鈍】 知能が低くて、動作や反応が にぶいこと。また、そういう人。
だそうだ
80デフォルトの名無しさん:2012/10/06(土) 10:08:31.86
辞書から引いてくる嫌味って、パンチに欠けるよね。
81デフォルトの名無しさん:2012/10/06(土) 10:12:27.56
今はこれが、精一杯
82デフォルトの名無しさん:2012/10/06(土) 10:18:41.65
常に全力を出せる準備をしていない奴に価値などない
83デフォルトの名無しさん:2012/10/06(土) 15:48:10.51
準備をしているかどうかはどうでもよい
結果がすべて
84デフォルトの名無しさん:2012/10/06(土) 23:19:23.47
もし誤ってCドライブのファイルを全部削除するようなコーディングをしてしまった場合
「一切保障しません」と書いていれば大丈夫?
85デフォルトの名無しさん:2012/10/06(土) 23:36:50.97
>>84
他人にやったらウイルス犯じゃね?
86デフォルトの名無しさん:2012/10/06(土) 23:47:03.29
>>84
程度問題ではあるが、そのケースの場合、
その動作は意図したものでなかったと主張してそれが通ると思う?
87デフォルトの名無しさん:2012/10/06(土) 23:59:29.28
昔みずいろだかってエロゲーがあってですね…
88デフォルトの名無しさん:2012/10/07(日) 06:22:40.00
ReadMeに「このソフトウェアはCドライブのファイルを全部削除するかもしれません」と書いておけばおk
89デフォルトの名無しさん:2012/10/07(日) 22:59:39.26
Silverlight で、画像データをGIF形式で出力できるライブラリ
(もしくはサンプルソース) を探していますが、見つかりません。

海外サイトとかでも良いので、知っている方がいましたら、
教えていただけないでしょうか?
90デフォルトの名無しさん:2012/10/07(日) 23:05:32.87
お断りしました
91デフォルトの名無しさん:2012/10/08(月) 00:08:30.69
CodeProjectにNGifとかいうのがあったけど試してみたら
92デフォルトの名無しさん:2012/10/08(月) 00:30:50.26
Silverlightならサーバーでやれよ
それができないなら制限だらけなだけだからやめといた方がいいぞSilverlightなんて
93デフォルトの名無しさん:2012/10/08(月) 01:07:53.09
やりたいんだからやらせといてやれよ
gdgdでやっとこさ出来上がって最後にはゴミになるだけだから
9489:2012/10/08(月) 01:27:36.93
皆さんアドバイスありがとうございました。 NGifを試してみることにします。
95デフォルトの名無しさん:2012/10/08(月) 05:00:03.19
string[] cmds = System.Environment.GetCommandLineArgs();
MessageBox.Show(cmds[1]);
Encoding enc = Encoding.GetEncoding("Shift_JIS");
File.WriteAllText(@"Test.txt", cmds[1], enc);

このような、引数の文字列をメッセージボックスで表示してファイルに保存するコードを書きました
デバッグの設定でコマンドライン引数をabcと設定すると、意図した通りに
abcというメッセージが表示され、abcと書かれたテキストファイルが出来上がります
しかし、Janeのコマンド機能を利用して$TEXT(Janeで選択反転した文字列)を引数として渡すと、
メッセージは正常にJaneで選択したテキストが表示されるのですが、ファイルが作成されません
これはなぜでしょうか
メッセージの表示は正常にできているのでJaneからのテキストの受け取りは成功しているようです
エラーが出ないのでよく分からない状況です

念のためJaneのコマンド機能について
http://janesoft.net/janestyle/help/option/function/command.html

返信遅くなるかもしれませんが、よろしくお願いします
96デフォルトの名無しさん:2012/10/08(月) 07:14:54.12
絶対パスでやったら
97デフォルトの名無しさん:2012/10/08(月) 07:16:16.79
>>95
コマンドラインのパラメータは文字数制限がある
それにひっかかっているいのかもな
普通、長い場合はクリップボード経由やD&D、ファイルを仲介して送る
98デフォルトの名無しさん:2012/10/08(月) 07:34:37.18
WindowsMobile6.5で外部MYSQLの接続について

ODBCで接続したいと思ったが、.NETCompactフレームワークではできないっぽい。
(VBAでMYSQLポート3363を開いて接続はとっくに出来てる。)

HTTP通信でリクエストだして、PHPでJSON生成して受信しようと思ったけど、
.NETCompactフレームワークにJSON解析するものがない、、、困った。
99デフォルトの名無しさん:2012/10/08(月) 08:30:20.98
>>97
表示は出来てるんだから、それはないだろ。
そもそもいつの時代の知識で止まってるんだよ。

Jane の作業フォルダに作られてるんのを見つけられてないだけだと思う。
なので、まずは >>96 でやってみるのがいいんじゃね ⇒ >>95
100デフォルトの名無しさん:2012/10/08(月) 09:52:49.54
コマンドプロンプトの制約は今も昔も変わっていないが?
101デフォルトの名無しさん:2012/10/08(月) 09:56:23.84
「メッセージの表示は正常にできている」を見落とした>>97が悪い
102デフォルトの名無しさん:2012/10/08(月) 10:03:42.83
そりゃ絶対パスじゃなかったら起動されたパスで
ファイルが作成されるのは当たり前だろバカ
103デフォルトの名無しさん:2012/10/08(月) 10:14:26.20
まあコマンドプロンプトの文字数制限とコマンドライン引数の文字数制限もまた別なんですけどね
104デフォルトの名無しさん:2012/10/08(月) 10:48:06.72
>>100
変わっていますが?

http://support.microsoft.com/kb/830473/ja
Microsoft Windows XP 以降を実行しているコンピュータでは、コマンド プロンプトで使用できる
文字列の最大長は 8191 文字です。
Microsoft Windows 2000 または Windows NT 4.0 を実行しているコンピュータでは、コマンド
プロンプトで使用できる文字列の最大長は 2047 文字です。

>>102
アプリ内で作業フォルダを変更する奴もいることも知らない >>102 がバカ。

例えば、Excel は単純に起動するとオプションで指定した既定のファイルの場所をカレントフォル
ダにするし、ファイルを開くと開いたファイルの場所をカレントフォルダにしてしまう。
なので、Excel マクロで相対指定でファイルを扱うのは基本的に止めた方がいい。
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_140.html
105デフォルトの名無しさん:2012/10/08(月) 10:55:36.93
なんでExcelの話?
10695:2012/10/08(月) 13:58:51.94
>Jane の作業フォルダに作られてるんのを見つけられてないだけだと思う。
その通りでした…
てっきり作成したアプリと同じフォルダにできるものと勘違いしてましたorz
107デフォルトの名無しさん:2012/10/08(月) 14:25:23.79
>>105
アプリとしての普及度合いから例として適切と思ったんだが、なんかまずかったか?
108デフォルトの名無しさん:2012/10/09(火) 00:08:26.58
配列に配列を挿入したいのですが

int[,] l = new int[5,5];
int[] t = new int[] {0,1,2,3,4,5};
l[0,0] = t;

とすると「型 'int[]' を型 'int' に暗黙的に変換できません」と怒られてしまいます
このようなときはどうすればいいのでしょうか?
109デフォルトの名無しさん:2012/10/09(火) 00:12:52.63
l[0,0]
これはintになっちゃってるじゃん
できるかどうか知らんがやるなら

l[0] = t;

じゃね?
110デフォルトの名無しさん:2012/10/09(火) 00:12:58.59
多次元配列はオワコン
配列の配列(ジャグ配列)を使えば通る
111108:2012/10/09(火) 00:16:36.78
ありがとうございます!

int[,][] l = new int[5,5][];
int[] t = new int[] {0,1,2,3,4,5};
l[0,0] = t;

としたらできました!
112デフォルトの名無しさん:2012/10/09(火) 00:17:34.40
int[][] l = new int[5][5];

こんな感じだっけ?

これが気持ち悪ければ

List<List<int>> l = new List<List<int>>();
で行ってもいいし
113デフォルトの名無しさん:2012/10/09(火) 00:18:08.31
>>108
var l = new int[5,5][];
var t = new int[]{0, 1, 2, 3, 4, 5};
114デフォルトの名無しさん:2012/10/09(火) 00:18:09.46
>>111
え・・・
115デフォルトの名無しさん:2012/10/09(火) 00:33:20.82
>>110
多次元配列がダメってお前3Dゲー作ったことないだろ
116デフォルトの名無しさん:2012/10/09(火) 00:37:41.45
C#初版以降、MSに全力でシカトされてるのは事実だし
けっこう遅いよ多次元配列
117デフォルトの名無しさん:2012/10/09(火) 00:38:57.59
遅いってGPU使ってないからだろ
118デフォルトの名無しさん:2012/10/09(火) 00:41:44.01
GPUと配列アクセスの速度がどう関係あるんだよw
それに多次元配列がなくても一次元配列のインデックスの除算と剰余で
多次元配列と似たような配列の使い方はできるし
DirectXとかだと非常に一般的なやり方だと思うけど…
119デフォルトの名無しさん:2012/10/09(火) 00:43:58.79
やべ、プロが北、にげろー
120デフォルトの名無しさん:2012/10/09(火) 00:50:20.88
まあ、エクセルのオートメーションでもやらない限り俺も使わないな。

もっとも、遅くてメモリーの使用効率も悪いのはむしろジャグ配列の方だよね。
121デフォルトの名無しさん:2012/10/09(火) 00:51:36.25
負けたか
122デフォルトの名無しさん:2012/10/09(火) 00:52:58.84
多次元配列はポンタ使えるしね
123デフォルトの名無しさん:2012/10/09(火) 00:55:11.09
右のインデックスに連続アクセスするなら
圧倒的にジャグ配列の方が速いよ
124デフォルトの名無しさん:2012/10/09(火) 01:36:00.87
ってかLINQと多次元配列の相性が最悪
125デフォルトの名無しさん:2012/10/09(火) 01:52:31.60
たかがアクセスに乗算が必要とかね
126デフォルトの名無しさん:2012/10/09(火) 09:24:02.85
多次元配列もそうだけどね
127デフォルトの名無しさん:2012/10/09(火) 10:03:25.38
でもそれは多次元配列なんてつかう情弱が悪いのでは?
128デフォルトの名無しさん:2012/10/09(火) 10:34:55.27
CA1814: 複数次元の配列ではなくジャグ配列を使用します
使うだけで無条件に警告が出る機能って…
多くの場合メモリの無駄遣いになるからで、問題ない場合は無視していいらしいけど、
普通に使っていい機能なら、そもそも一律警告とかありえないし、
こんなわかりやすいタイトルも付けないだろうねw
129デフォルトの名無しさん:2012/10/09(火) 11:49:20.55
ジャグ配列って何?
130デフォルトの名無しさん:2012/10/09(火) 11:50:03.25
>>129
>>113
細かい説明はぐぐって確認してね
131デフォルトの名無しさん:2012/10/09(火) 13:18:52.37
int[][] ジャグ配列

ジャグ配列[2][3]

int[,] 2次元配列

2次元配列[2,3]
132デフォルトの名無しさん:2012/10/09(火) 13:25:23.68
おおおおお
133デフォルトの名無しさん:2012/10/09(火) 17:05:46.36
多次元配列ってunsafeやネイティブコードとの相互運用では使うけど
逆に言うと、そのくらいしか出番が…
134デフォルトの名無しさん:2012/10/09(火) 17:12:45.77
そのくらいで十分
13589:2012/10/09(火) 17:31:32.75
nGifを使ってみましたが、残念ながらシルバーライトに対応していませんでした。

この場合、自分でサンプルソースをカスタマイズしないと いけないのでしょうか? 大変恐縮ですが、良い解決方法がありましたら(シルバーライトを使わないとかは無しで)教えて頂けないでしょうか?

136デフォルトの名無しさん:2012/10/09(火) 17:33:43.26
自分で作る

フォーマットはどこかに資料ない?
137デフォルトの名無しさん:2012/10/09(火) 17:38:07.87
なんでわざわざgifなのかさっぱりわからんけど標準で使えないわけだから
GDI+とかで取ってくるしかないんじゃないの
138デフォルトの名無しさん:2012/10/09(火) 17:48:11.54
silverlightはFlashのAIRみたいにアプリ化を認めないと
できることが限られる

独自で書くかライブラリ探すか上でもあったサーバー側だとgifもいじれるはずなので
サーバー側でファイルにした上で転送してもらって出力するしかないかなあ
139デフォルトの名無しさん:2012/10/09(火) 17:49:37.30
おまえはすべてがわかったつもりでいるのか?
140デフォルトの名無しさん:2012/10/09(火) 17:51:45.41
先生が来たぞ
>>139がずばり回答くれるようだ
よかったな
141デフォルトの名無しさん:2012/10/09(火) 17:51:47.43
すべてがわかっている・・・
142デフォルトの名無しさん:2012/10/09(火) 17:52:30.64
>>139
はやく答えて差し上げろ
143デフォルトの名無しさん:2012/10/09(火) 18:01:53.10
自演臭が
144デフォルトの名無しさん:2012/10/09(火) 18:06:38.19
>>136
スレ違いだがGIFの仕様書
http://www.martinreddy.net/gfx/2d/GIF89a.txt
145デフォルトの名無しさん:2012/10/09(火) 18:42:38.96
>silverlightはFlashのAIRみたいにアプリ化を認めないと〜
WPFデスクトップアプリとしてIDEの設定で出力すればいいだけだろ。
JavaのSwingでもアプレットをデスクトップアプリ化するのはたやすい。
146デフォルトの名無しさん:2012/10/09(火) 20:31:59.80
>silverlightはFlashのAIRみたいにアプリ化を認めないと〜
SilverlightにはOutOfBrowserというブラウザ外で動かす機能があって、
それを使うと全権握って普通のローカルアプリとしてやりたい放題できる。
それを使わないと無理だと言ってるんだと思うよ。
でもそれやるんだったらWPFの方がいい。Silvelrightの意味ない。
Silverlightならサーバーで処理する一択。
147146:2012/10/09(火) 20:38:39.03
誤解されそうだから補足しとく
権限昇格モードでもフルセットの.NETの機能やDllImportが使えるわけじゃなくて、
勝手にファイルにアクセスしたり
COMを使ってネイティブコンポーネントを呼び出したりできるだけ。
それを利用してGifのデコードをやろうと思うとCOMコンポーネントをインストールしたりとか
いろいろ大掛かりになってしまうので、Silverlightの意味がない。
OOBが意味ないんじゃなくて、インストールが面倒になるならSilverlightの意味ないってことね。
148デフォルトの名無しさん:2012/10/09(火) 20:58:02.98
>>135
カスタマイズって言ってもちょっと手直しする程度でいい。
nGifのGif/Componentsの中のソースコード見れ
149デフォルトの名無しさん:2012/10/10(水) 00:31:26.20
visual studioで、1つのソリューションの中にサーバとクライアントのプロジェクト置いて通信とかのシミュレーションってできますか?
150デフォルトの名無しさん:2012/10/10(水) 00:33:45.96
普通にlocalhostでやればいいんでは
151デフォルトの名無しさん:2012/10/10(水) 00:34:16.29
本来数台のPCで(サーバ・クライアント)それぞれ実行するようなプログラムを作成する場合に、1台で開発できないもんかと。実際に何台かPC置いて実装する前段階として。
152デフォルトの名無しさん:2012/10/10(水) 00:37:36.74
だからサーバー側は普通にVSの開発用サーバーで動かして
クライアントからはそのポートにアクセスするだけだよ
何の問題もなく一台でやれる
153デフォルトの名無しさん:2012/10/10(水) 00:38:20.51
>>150の方法でやるか手持ちのマシンスペックがよくわからんのであれだが
VMware Playerあたりで仮想マシン作ってそっちでサーバーでもクライアントでもいいので
動かしてみるとか
154デフォルトの名無しさん:2012/10/10(水) 00:41:41.22
なんと、、、そんな方法があるのですね…!来年から社会人なのに、開発の部署でやっていけるか心配^q^
155デフォルトの名無しさん:2012/10/10(水) 00:42:24.29
片側づつならOK
156デフォルトの名無しさん:2012/10/10(水) 00:48:04.08
>>153
仮想マシン作ったら、IPアドレスが一般的な通信のように割り当てられるんですか?
157デフォルトの名無しさん:2012/10/10(水) 00:58:52.59
>>156
できる。あとスレチだからこれ以上はやめとけ。
158デフォルトの名無しさん:2012/10/10(水) 01:01:09.14
ごごごめんなさい。失礼いたしやした!
159デフォルトの名無しさん:2012/10/10(水) 01:02:14.90
ふざけるな
160デフォルトの名無しさん:2012/10/10(水) 07:18:45.08
MenuStripについてなんですがウィンドウが2つあるアプリケーションで
非アクティブなほうのウィンドウのメニュー項目をクリックすると
1回目のクリックでウィンドウがアクティブになり
2回目のクリックでメニュー項目が選択できます。
1回目のクリックでメニュー項目が選択できるようにしたいのですが
そのようなプロパティも見当たりませんでした。
何か解決策はないものでしょうか?
161デフォルトの名無しさん:2012/10/10(水) 07:52:24.14
マウスカーソルが非アクティブなウインドウの領域に入ったときに
自分自身がアクティブになるようにすればいいんじゃないの?
162デフォルトの名無しさん:2012/10/10(水) 07:59:07.59
>>160
OSの規定がそうなのに
それを変えて独自仕様にしたら
一般の人は混乱するだけ
163デフォルトの名無しさん:2012/10/10(水) 08:13:57.62
>>161
なるほど。でもマウスが入ってくるだけでアクティブに
なってしまうのもあれですね。

>>162
自分も標準から外れるのは嫌いなんですが
例えばエクスプローラですらメニューには一発アクセスできます。
こちらのほうがどう見ても使いやすいんですよねー。
164デフォルトの名無しさん:2012/10/10(水) 08:28:49.68
>>163はいつもの荒らし
以後放置で
165デフォルトの名無しさん:2012/10/10(水) 08:44:14.95
OK
166デフォルトの名無しさん:2012/10/10(水) 09:59:35.12
ぐぐってたら下記サイトが見つかり無事実装できました。
http://blogs.msdn.com/b/rickbrew/archive/2006/01/09/511003.aspx
167デフォルトの名無しさん:2012/10/10(水) 10:34:51.93
>>166
個人的にはその動作のほうが自然だと思う
自分もWM_MOUSEACTIVATE見て同様な機能にしたとこがある

>>162
OSの規定というのは誤解ではないか
168デフォルトの名無しさん:2012/10/10(水) 11:00:48.96
試したらXPのメモ帳, explorer, Opera, Firefox, 秀丸 は
非アクティブの状態からでもメニューが1クリックで反応する

しかしExcel 2000, Visual C# 2008 は非アクティブからだとメニューが反応しない
これらはWin32APIの標準メニューでなく別途実装されたコントロールで
MenuStripもこっち側だな
169デフォルトの名無しさん:2012/10/10(水) 11:30:47.98
>>168
JAVA製だからOS規定と違うのは当たり前
170デフォルトの名無しさん:2012/10/10(水) 11:42:37.47
>>169
釣り針でけぇよ
171デフォルトの名無しさん:2012/10/10(水) 13:20:52.85
UIに日本語入るとだせぇ
どうにかならんのかこのダサさ
172デフォルトの名無しさん:2012/10/10(水) 14:41:31.28
漢字とかな、カナを混ぜなければいい
173デフォルトの名無しさん:2012/10/10(水) 14:58:54.49
日本から出ていけばいい
174デフォルトの名無しさん:2012/10/10(水) 17:38:02.96
全部アイコン
toolchipで
175デフォルトの名無しさん:2012/10/10(水) 17:40:46.29
tooltipだった・・・
176デフォルトの名無しさん:2012/10/10(水) 19:15:43.55
tu-rutippu
177デフォルトの名無しさん:2012/10/10(水) 19:26:20.07
多言語にするとバランスが違いすぎていらつく
178デフォルトの名無しさん:2012/10/10(水) 19:41:45.63
Englishでガリガリ書いていったほうが変数名とか悩まなくていいな
179デフォルトの名無しさん:2012/10/10(水) 21:43:25.66
ImageList.Images.Add( string key, Image image )って
もしかしてkeyが重複してても上書きしてくれないの……
小1時間はまりましたわぁ
上書きするとリークしかねないという配慮からかな(´;ω;`)


private void Form1_Load( object sender, EventArgs e )
{
    this.imageList1.Images.Add( "key1", Resource1.image1 );
    this.pictureBox1.Image = this.imageList1.Images["key1"];
}

private void button1_Click( object sender, EventArgs e )
{
    this.imageList1.Images.Add( "key1", Resource1.image2 );
    this.pictureBox2.Image = this.imageList1.Images["key1"];
}

// どちらもimage1が表示される
180デフォルトの名無しさん:2012/10/10(水) 22:01:36.22
MessageBox.Show( ( this.imageList1.Images["key1"] == this.imageList1.Images["key1"] ).ToString() );

// False

あー、これはどゆこと?
181デフォルトの名無しさん:2012/10/10(水) 22:02:12.26
キー重複は例外の場合もあるんだから先に仕様を確認しようよ…
182デフォルトの名無しさん:2012/10/10(水) 22:05:42.08
MSDNにもなんとも書いてないんすもん
183デフォルトの名無しさん:2012/10/10(水) 22:27:30.65
英語力がねーんだよ
184デフォルトの名無しさん:2012/10/10(水) 22:41:37.18
単語が限界
コメントとか文章になるとお手上げ
185デフォルトの名無しさん:2012/10/10(水) 22:54:13.11
重複してたらfalseが返るよね
186デフォルトの名無しさん:2012/10/10(水) 23:56:45.84
>>179
重複可能なハッシュコンテナなんじゃね?
18789:2012/10/11(木) 02:21:36.47
皆さん色々とありがとうございました。

色々と方法は調べているところですが、最悪の場合nGifのカスタマイズで
対処しようと思います。

SilverLight は GDI+ がライブラリにないので(System.Drawing が使えない)
カスタマイズはかなり苦労するとは思いますが・・・・・・

188148:2012/10/11(木) 02:37:49.52
いや、だからちょっとの手直しでいいって言ってるのに…
GDI+はビットマップ画像読み込んでピクセルデータにアクセスするぐらいしか使ってない。
だからWriteableBitmapに置き換えればすぐ
189デフォルトの名無しさん:2012/10/11(木) 02:59:42.70
根本的な発想が狂ってる奴はほおっておけよ
190デフォルトの名無しさん:2012/10/12(金) 08:53:07.33
AnyCPUでコンパイルしてるアプリなんですが
Win32APIを使う必要が出てきました。
この場合x86でコンパイルする必要があるでしょうか?
64bitのWindowsでも動かしたいと思っているのですが。
191デフォルトの名無しさん:2012/10/12(金) 08:56:22.00
x86コンパイルしても64bitOS上で動くよ

というか積極的にx86指定するべきだけどな

AnyCPUはトラブルの元
192デフォルトの名無しさん:2012/10/12(金) 09:01:31.12
>>191
具体的に
193デフォルトの名無しさん:2012/10/12(金) 09:05:53.81
うーん
.netといえどコアの部分では結局windowsのネイティブを呼び出してるので
コア機能を呼び出してるコントロールを使うとトラブル起こすんだよな

今はどうか知らんけど経験したのはwebBrowserか
webBrowserの中でプラグインを使わなければ特に問題ないんだが
Flashプレーヤーを呼び出すHPを表示するとコケた

理由は簡単でAnyCPUでコンパイルして64bitOS上で動かすと
64bitアプリとして動いてIEコアも64bit版が呼び出されるんだが
以前はまった当時はFlashプレーヤーが32bit版しかなくて
この辺でこけてた
194デフォルトの名無しさん:2012/10/12(金) 09:20:35.35
というかvsの古いバージョン使ってない?
VC#2010 ExpressだけどAnyCPUの項目ないぞ
x86だけだった
195デフォルトの名無しさん:2012/10/12(金) 09:46:01.01
あ、ごめん。本当だ。
VS2008のプロジェクトと混同してた。x86しかないや。
196デフォルトの名無しさん:2012/10/12(金) 09:57:03.01
マジでバカばっかっのスレだな
AnyCPUは自分で作るんだよ。デフォルトでは見えないだけ。

AnyCPUの問題はこっち
AnyCPU Exes are usually more trouble than they're worth
http://blogs.msdn.com/b/rmbyers/archive/2009/06/8/anycpu-exes-are-usually-more-trouble-then-they-re-worth.aspx

バカのために簡単に言うと、AnyCPUにすることでメンテナンスのコストが上昇するシナリオが考えられ、
現状パフォーマンスもx86で動かしたほうがいい場合がある。
しかしそうする必要があるならAnyCPUにしたらいい。
>>193みたいなマヌケな理由じゃないのw
197デフォルトの名無しさん:2012/10/12(金) 10:14:50.54
>>190
x86でビルドするとDllImportしたWin32APIも32bit版が使われる。
AnyCPUでビルドすると64bit環境なら64bit版、32bit環境なら32bit版が使われる。
x64でビルドすると32bit環境では動かない。

Win32構造体を使う場合などで問題が出るのがAnyCPUで、
32bitと64bitで共用できないパターンがあり得る。パッキングが違ったりね。
IntPtr.Sizeで振り分ける必要があったり、パッキングを明示的に指定しないといけなくなる場合もある。

有名なのが SHFILEOPSTRUCTね。今はあんまり使わないけど。
GetWindowLong/GetWindowLongPtr とかも振り分けないといけない。
198デフォルトの名無しさん:2012/10/12(金) 10:39:11.95
>>194
テンプレートいじればいいよ
199デフォルトの名無しさん:2012/10/12(金) 11:17:27.94
いいよね
200デフォルトの名無しさん:2012/10/12(金) 14:38:44.83
Windows 7 64bitの氷菓版なんてものがあったからテストできた。
201デフォルトの名無しさん:2012/10/12(金) 15:02:18.21
どうも例のウイルス事件の犯人はC#スレで質問してた可能性があるな
202デフォルトの名無しさん:2012/10/12(金) 15:32:57.26
ID出ないスレでなぜそんなことがわかるんだ?
203デフォルトの名無しさん:2012/10/12(金) 15:35:15.09
>>202
ウイルスの動きをシマンテックが公開してたんだが
ここ2年くらいの間に対応してきた質問で網羅してたなあと思ってさw
204デフォルトの名無しさん:2012/10/12(金) 15:35:24.68
dobonを丸コピーしたりして意外とレベルが低そうだという話だな
205デフォルトの名無しさん:2012/10/12(金) 15:48:47.12
dobonマジでありがたい。一時期つながらないときはマジで仕事にならなかった。
206デフォルトの名無しさん:2012/10/12(金) 16:17:33.24
すみません。お助けください。  ageで失礼します。

ダウンロードしてきたソースを 2010 C# で実行したところ、実行することができました。
ソースを少々変更しても実行することができました。

フォームの初期値を設定しようと、numelicUpDown のValue に初期値をセットしたところ、
エラーが発生して実行およびコンパイルできなくなってしまいました。

どこを直せばいいのかわからないので教えてください。

エラー:
リソース識別子 'new03.Form1.resources' はアセンブリで既に使用されています。
207デフォルトの名無しさん:2012/10/12(金) 16:52:44.37
とりあえずプロジェクトプロパティのリソースとか見てみたら?
208デフォルトの名無しさん:2012/10/12(金) 17:33:26.52
>>203
遠隔操作ウイルスはオリジナル? 作者は腕の立つ人物か
http://www.yomiuri.co.jp/net/security/goshinjyutsu/20121012-OYT8T00959.htm

あんなコピペで作られた手抜きソフトでも世間じゃ腕利き扱いだってよw
209デフォルトの名無しさん:2012/10/12(金) 17:38:17.41
そのウイルスはC#で作られたのか?
逆アセンブルできてよかったじゃんッ!
210デフォルトの名無しさん:2012/10/12(金) 18:35:14.23
>>206 です。

ソリューションエクスプローラにあった
Form1.resources
をプロジェクトから除外したところ
ビルドできるようになりました。 (よくわからないでやってます)
お騒がせしました。
211デフォルトの名無しさん:2012/10/12(金) 19:02:55.98
inner class 使いたい!

とか思ったら
その時点でしばらく全体を見直してどうするべきか
考え直したほうがいいのだろうか…
212デフォルトの名無しさん:2012/10/12(金) 19:08:33.30
普通に使えるだろ
C#にはデリゲートがあるから、
Javaにあるような外のthisを引き継いでるやつや(Javaでいう)無名クラスは不要
ちょっとデータをまとめてコレクションに入れたいというようなときにしか使わん
213デフォルトの名無しさん:2012/10/12(金) 19:17:06.24
稀にインターフェイスを内部クラスで実装することもあるな
Javaに比べるとその頻度は極めて低いけど
その場合は(中でしか使わないなら)外で実装するよりも内部クラスで実装して
外には見せない方が作法的にむしろベター
214デフォルトの名無しさん:2012/10/12(金) 19:42:19.92
言葉のアレだけどC#に内部クラスは無いよ。
C#のnested classはJavaでのstatic nested classになる。
215デフォルトの名無しさん:2012/10/12(金) 23:31:42.79
>>208
なにこれ、2chブラウザか?
216デフォルトの名無しさん:2012/10/12(金) 23:36:12.59
プログラムは個々の要素は難しくなくても
完成させるとなると別なんだよね…
217デフォルトの名無しさん:2012/10/12(金) 23:37:18.71
以外に中学生ぐらいの犯行だったりしてw
218デフォルトの名無しさん:2012/10/12(金) 23:39:00.48
ウィルスならほとんど個々の技術要素だけで作れるからな
219デフォルトの名無しさん:2012/10/12(金) 23:41:15.30
そもそもこれウィルスなのか?と思う
220デフォルトの名無しさん:2012/10/12(金) 23:44:52.55
OSの穴をついてとなると技術力があるなと思うけど
ただ単に掲示板閲覧して書き込むだけのソフトだからな
221デフォルトの名無しさん:2012/10/12(金) 23:59:40.16
被害が出ないだけでずっと監視されている奴らとかたくさんいるんだろうな
222デフォルトの名無しさん:2012/10/13(土) 01:32:28.53
その掲示板を借りてるやつが犯人な可能性が高いんだろ
そっから足つかないの?
223デフォルトの名無しさん:2012/10/13(土) 01:42:25.59
海外経由とかなんとか
誰だよこんなインターネット考えたのは
224デフォルトの名無しさん:2012/10/13(土) 08:36:55.18
string str = "(? <obj> w+)::(? <art> w+)::(? <value> %d)::%d*";

Regex p = new Regex(str);

というコードを書いたら

'System.ArgumentException' のハンドルされていない例外が System.dll で発生しました。

追加情報: 解析中 "(? <obj> w+)::(? <art> w+)::(? <value> %d)::%d*" - 認識されないグループ化構造です。

って言われて止まってしまいます。
どういうことなんですか?
225デフォルトの名無しさん:2012/10/13(土) 08:39:16.24
正規表現が間違っている
%dなんだこれは
226デフォルトの名無しさん:2012/10/13(土) 08:41:18.40
string str = "(?<obj>\w+)::(?<art>\w+)::(?<value>\d+)::\d*";
こうしたいんじゃないのか?
227デフォルトの名無しさん:2012/10/13(土) 08:41:44.52
>>224
> (? <obj> w+)
何この謎スペース
228デフォルトの名無しさん:2012/10/13(土) 08:42:04.26
@が抜けてた
string str = @"(?<obj>\w+)::(?<art>\w+)::(?<value>\d+)::\d*";
229デフォルトの名無しさん:2012/10/13(土) 08:58:25.67
>>225
>>226
>>227
>>228
ありがとうございます!!通りました
230デフォルトの名無しさん:2012/10/13(土) 11:07:56.32
var task = Task.Factory.StartNew( ()
{
Console.WriteLine (0);
       Obj =new Obj();
if(Obj!=null)
Console.WriteLine (1);
});
これやっても下のWriteLineが動かない。別スレッドでのnewってなんか特殊な方法が必要?
それとも俺がミスってるだけ?
231デフォルトの名無しさん:2012/10/13(土) 11:16:03.52
struct Data
{
...
}

static StaticClass1
{
232デフォルトの名無しさん:2012/10/13(土) 12:02:40.86
>>230
問題なく動く
本当にそのコードで間違いないのなら、
newしてからifまでの間に別のスレッドがタイミングよくObjにnullを代入するという
奇跡が起こっているか、実はObjが変数ではなくプロパティで
常にnullを返すようになっているくらいしか考えられない
var task = Task.Factory.StartNew( () => {
Console.WriteLine (0); Obj =new Obj();
});
if(Obj!=null) Console.WriteLine (1);
もしかしてこれの間違いじゃないのか? これならifの方が先だから当然動かないよ
233デフォルトの名無しさん:2012/10/13(土) 13:01:32.57
その「 Console.WriteLine が動かない」ってのが、

・本当にそのコードが実行されていない/そこに到達しない
・コンソールに出力がされない

のどっちなんだって疑問もあるけどな。スレタイ的に。
234デフォルトの名無しさん:2012/10/13(土) 14:47:13.27
これPSMで書いてたんだけど到達してないっぽい。
if(Obj==null)でもうごかなっかったし。
それに単純にintの変数いじるだけなら動作する。 
235デフォルトの名無しさん:2012/10/13(土) 15:07:05.22
あまり不可思議な動作をしてるならIL見てみるのも一つの手
236デフォルトの名無しさん:2012/10/13(土) 15:12:36.60
ソース全部だぜよ
237デフォルトの名無しさん:2012/10/13(土) 15:12:55.68
とりあえずObjをラムダ内のローカル変数にしてみるとか
238デフォルトの名無しさん:2012/10/13(土) 15:30:47.90
「ぽい」じゃなくて、ちゃんと確認してから来いよ。
特にそう言う動作するなら尚更だ。

それと、多分問題ないと思うけど、オブジェクトと変数名が同じなのが悪さしてたりしない?
239デフォルトの名無しさん:2012/10/13(土) 15:35:55.63
ソース全部だぜよ
240デフォルトの名無しさん:2012/10/13(土) 16:04:36.17
他のobjをnewしたときは普通に動いたので自作Objのコンストラクタが原因だと思いました。
変数名とObjは違う名前でした。お騒がせして申し訳ありませんでした。
241デフォルトの名無しさん:2012/10/13(土) 16:22:57.89
死いいいいいいいいいいいねえええええええええええええええええええ
242デフォルトの名無しさん:2012/10/13(土) 16:25:59.54
だからソース出させろよ
自分でおかしいと思ってない公開されてない部分に原因があるから
思うように動かないんだけなんだし


思い込み

が最大の敵
243デフォルトの名無しさん:2012/10/13(土) 16:32:00.88
やかましいお前は吉良か
244デフォルトの名無しさん:2012/10/13(土) 16:36:47.76
string str = @"(?<obj>\w+)::(?<art>\w+)::(?<value>\w+)::\d*";

Regex p = new Regex(str);

str line = "3::110::4.5::1136075500"
Match m;

m = p.Match(line);

でマッチしないと言われます
どういうことなんですか?
245デフォルトの名無しさん:2012/10/13(土) 16:37:45.80
string str = @"(?<obj>\w+)::(?<art>\w+)::(?<value>\w+)::\d*";

Regex p = new Regex(str);

str line = "3::110::4.5::1136075500";
Match m;

m = p.Match(line);

ですすいません…
246デフォルトの名無しさん:2012/10/13(土) 16:38:40.36
>>244
4.5が\w+とマッチしてないんだろ
247デフォルトの名無しさん:2012/10/13(土) 16:40:32.09
文字クラスくらい把握してから使えよアンポンタンが
248デフォルトの名無しさん:2012/10/13(土) 16:40:41.81
string str = @"(?<obj>\w+)::(?<art>\w+)::(?<value>\w+)::\d*";

Regex p = new Regex(str);

string line = "3::110::4.5::1136075500";
Match m;

m = p.Match(line);

ですね何度もすいません^^;
249 ◆tsGpSwX8mo :2012/10/13(土) 16:41:08.47
500" の後ろの ; か(しょ盆)
250デフォルトの名無しさん:2012/10/13(土) 16:43:13.10
>>249
なにこのキチガイ
251デフォルトの名無しさん:2012/10/13(土) 16:44:43.86
string str = @"(?<obj>[^:]+)::(?<art>[^:]+)::(?<value>[^:]+)::[^:]*";

コロン以外全部取っちゃえばいいんじゃないの
252デフォルトの名無しさん:2012/10/13(土) 17:00:37.93
>>246
>>247
>>251
>>249
ありがとうございます
通りました!
253デフォルトの名無しさん:2012/10/14(日) 00:40:59.85
structを使うときそのメンバーを全てpublicにしているのですが、これはダメですよね?
254デフォルトの名無しさん:2012/10/14(日) 00:42:07.00
OK
255デフォルトの名無しさん:2012/10/14(日) 00:44:37.45
牧場
256デフォルトの名無しさん:2012/10/14(日) 00:46:08.64
不特定多数向けのライブラリ作るとかでなければそれでいいと思う
パフォーマンス目的でstruct使うんなら、プロパティにしてたらほとんど意味無いしな
257デフォルトの名無しさん:2012/10/14(日) 01:02:40.74
>>254,255,256
ありがとうございます。よかった
258デフォルトの名無しさん:2012/10/14(日) 01:07:58.91
プロパティにしたらどれくらいパフォーマンス下がるの?
259デフォルトの名無しさん:2012/10/14(日) 01:12:06.42
アクセサはインライン展開されるはずだけど値のコピーは消えなかったと思う
260デフォルトの名無しさん:2012/10/14(日) 09:51:04.01
フィールド、プロパティ、静的プロパティでアクセス速度比較したけど
ほぼ差はなかった
261デフォルトの名無しさん:2012/10/14(日) 10:04:10.02
>>260
構造体を返すプロパティだと結構差があるよ
262デフォルトの名無しさん:2012/10/14(日) 10:12:02.35
どれだけ激しくプロパティを叩いてるんだよ
263デフォルトの名無しさん:2012/10/14(日) 10:14:50.18
いや少しでも速くしたいから構造体使ってるんでしょ
どうでもいいなら全部クラスでいいじゃない
264デフォルトの名無しさん:2012/10/14(日) 10:27:03.17
インスタンスのコピーを自動的に作成したいのなら構造体を使うってだけ
パフォーマンスはI/Oや計算量オーダーの影響の方が圧倒的に大きいし
265デフォルトの名無しさん:2012/10/14(日) 10:30:43.48
それならイミュータブルなクラスの方がよくね
266デフォルトの名無しさん:2012/10/14(日) 11:10:34.06
windowsフォームアプリケーションで、
ツールバーに表示するアイコンってみんなどこから手に入れてるの?
保存とかファイルを開くとかの画像
267デフォルトの名無しさん:2012/10/14(日) 11:14:04.74
>>266
OSのリソースを使うか、フリーのアイコンを利用
268デフォルトの名無しさん:2012/10/14(日) 11:32:30.34
>>266
高いVSには付いてる
269デフォルトの名無しさん:2012/10/14(日) 12:10:14.88
ToolStrip/MenuStrip系なら標準項目の挿入ってコマンドでリソースに入れてくれる
Expressでも
270デフォルトの名無しさん:2012/10/14(日) 17:08:54.86
自分が使う機能だけをつけたアプリはすぐできるけど
万人向けに作るとなると面倒だね
大半が自分が使わないような機能ばっかりだし
271デフォルトの名無しさん:2012/10/14(日) 18:00:41.55
別に「自分が使う機能だけ」のアプリでも OK だろ。
それが使いやすければ。
万人向けの機能はもう誰かが使いやすいのを作ってるだろうし。
272デフォルトの名無しさん:2012/10/14(日) 20:14:29.03
まあよほどのものでなければどうせ見向きもされないしな
人に使ってもらいたいならスマホに行ったほうが面白いよ
273デフォルトの名無しさん:2012/10/14(日) 21:10:15.04
保存がFDDアイコンって、この先生き残るンかな?
274デフォルトの名無しさん:2012/10/14(日) 21:11:37.76
視覚的に理解はしやすい。だからアイコンなわけだし。
275デフォルトの名無しさん:2012/10/14(日) 21:13:16.60
他に保存を連想させるアイコンってどんなのがあるよ
光ディスクは何か違うよな
276デフォルトの名無しさん:2012/10/14(日) 21:21:07.76
IntPtrとUIntPtrって、どう使い分けたらいいでしょうか。
例えば、DWORD_PTRを引数に取るWinAPIを呼ぶ場合、C#側はUIntPtrとすればいいでしょうか。
277デフォルトの名無しさん:2012/10/14(日) 21:22:35.12
全部IntPtrでよい
278デフォルトの名無しさん:2012/10/14(日) 21:22:35.91
おじさん世代には紙テープとかパンチカードの方が

まあパピルスとかロゼッタストーンとか巻物とか、考えればいろいろあるとは思う
279デフォルトの名無しさん:2012/10/14(日) 22:07:00.80
.jsスクリプトのアイコンはなんであんな絵柄になったんだろうな
280デフォルトの名無しさん:2012/10/15(月) 10:32:07.75
プログラミング未経験からC#を学んだという方がいましたら教えてください
他人の作った簡単なプログラムのコードが読める(なにやってるか大体わかる)ようになるまで何ヶ月くらいかかりましたか?
281デフォルトの名無しさん:2012/10/15(月) 10:54:47.33
1年やっているけど今でも読めない
ライブラリが膨大過ぎ
282デフォルトの名無しさん:2012/10/15(月) 13:21:21.69
テキストファイルに1行ずつ検索する単語が書かれています。
webbrowserを使ってあるサイトを表示して
最初にそのテキストファイルの1行目に書かれている単語を読んで入力して
検索結果を表示。
次にForm1を表示したまま新しくForm2を生成して2行目の単語を読み取って
また検索結果を表示したいと考えています。
Form1に検索結果を表示させることはできたのですが
ループさせて10個ぐらいのFormに検索結果を表示させることができません。
どういった処理にすればいいか全く思いつかないのでご教授願います。
283デフォルトの名無しさん:2012/10/15(月) 14:30:46.31
using( StreamReader sr = new StreamReader( tekisutoFairu ) )
{
 string line;
 while( ( line = sr.ReadLine() ) != null )
 {
  string result = kennsaku( line );
  new Form2( result ).Show();
 }
}
284デフォルトの名無しさん:2012/10/15(月) 14:43:43.36
>>282
どういう実装がお好みかさっぱりわからんけどこういう動きでいいんじゃね?
http://ideone.com/X9UvD
285デフォルトの名無しさん:2012/10/15(月) 14:57:32.41
>>284を訂正
Form1.cs
http://ideone.com/2AoKY

Program.csをこんな感じにすれば動作確認できる
http://ideone.com/tOVhx
286デフォルトの名無しさん:2012/10/15(月) 15:22:40.70
>>283
>>285
ありがとうございます!
>>285の方を今のプログラムに当てはまて
あとで確認してます!!
287デフォルトの名無しさん:2012/10/15(月) 16:18:31.63
>>285でいけそうです!!
感動しました!涙が出ました!
ありがとうございます!!
288デフォルトの名無しさん:2012/10/15(月) 16:19:29.01
>>287はウイルス犯
289デフォルトの名無しさん:2012/10/15(月) 16:31:36.70
>>288
無限増殖させようとか考えてないから
290デフォルトの名無しさん:2012/10/15(月) 16:34:33.23
ウイルスっていうかブラクラの類だねw
291デフォルトの名無しさん:2012/10/15(月) 17:06:38.93
ここでいいのかな。
webkitbrowserについての質問なんですけど、webkitbrowserを使用して簡易ブラウザを作成し、User-Agentをiphoneにして
mobageへログインしようと試みたんですが、「cookieを有効にして再起動してください。」なる文字が出るんですが
webkitbrowserはもともとcookieが有効になっていないのでしょうか。
webbrowserやgeckowebbrowserはログインできるもののレイアウトが崩れる為、webkitbrowserを使用します。
292デフォルトの名無しさん:2012/10/15(月) 17:25:37.49
モバゲーの運営に聞けばええんちゃう?
293デフォルトの名無しさん:2012/10/15(月) 18:02:41.66
>>291
有効だよ
Document.Cookieにクッキー格納されてるよ
294デフォルトの名無しさん:2012/10/15(月) 18:47:44.28
publicメンバが呼び出されてない場合に警告される属性とかないかあなあ
295デフォルトの名無しさん:2012/10/15(月) 20:33:29.48
順序守らせたいのか?
296デフォルトの名無しさん:2012/10/15(月) 20:38:59.35
publicメンバを用意する側が特定の順番を守らない場合は例外でとめるとか

public メンバA
public メンバB
public メンバC

ってあって

A
B
C
の順番で呼べばエラーにならないけど
A
C
とか呼び出すとアウトとかさ
297デフォルトの名無しさん:2012/10/15(月) 20:42:44.50
298デフォルトの名無しさん:2012/10/15(月) 21:13:24.95
Initって言うメソッドを呼んでからじゃないと使えないんだけど
Initを呼んでない場合にコンパイラ様が警告してくれるような

internalだと使ってなければ警告してくれるけど
publicだとしてくれないじゃない
299デフォルトの名無しさん:2012/10/15(月) 21:16:49.99
>>298
>>296>>297でいいじゃん
ほぼデバック用だよ

順番守ってなければ例外でるんだし
300デフォルトの名無しさん:2012/10/15(月) 21:16:57.88
その警告の趣旨は

使わないなら無駄だ
存在価値皆無
消せよ

って言ってんだろうから
301デフォルトの名無しさん:2012/10/15(月) 21:22:49.03
>>300
ああ、その警告かよ・・・
さっぱりわからんかったw
302デフォルトの名無しさん:2012/10/15(月) 21:41:17.36
>>293
ありがとう
もう少し頑張ってみる
303デフォルトの名無しさん:2012/10/15(月) 22:27:21.95
クラスに使うwhere Tと継承を同時に使うにはどうすればいいのでしょう?
class A<T> where T : interface : class
とか書いて見ましたが予想通りコンパイルエラーでした
304デフォルトの名無しさん:2012/10/15(月) 22:31:04.08
class A<T> : IHoge<T> where T : class
305デフォルトの名無しさん:2012/10/16(火) 02:35:42.60
Parallel.ForEach(z, (x) =>
{

x.update(step);

x.showInf();
}
);

で、zは自作クラスのarraylistです
このコードで、型引数を推論することができません、型を明示的に云々って出ます
306デフォルトの名無しさん:2012/10/16(火) 02:37:11.65
>>305
ArrayListなんかやめてList<T>を使いなよ
307デフォルトの名無しさん:2012/10/16(火) 02:41:02.01
framework4.5て7の自動アプデで勝手に入る?
308デフォルトの名無しさん:2012/10/16(火) 02:52:01.27
4って入ってんの?
309デフォルトの名無しさん:2012/10/16(火) 02:58:59.06
>>306
なんかいけたっぽいです!
ありがとうございます!

あと気になったんですが、varってメイン関数の中でしか使えないんですかね…
自作クラスの中で使うと、
型または名前空間'var'が見つかりません って言われるんですが。
310デフォルトの名無しさん:2012/10/16(火) 02:59:58.31
>>309
varを使うときには=も同時に使わないといけない

var x = 3;
311デフォルトの名無しさん:2012/10/16(火) 03:04:00.63
>>310
var ads = 0;

みたいなコードでvarの下に赤線が引かれて文句言われるんです
ちなみにVS2012使ってます
メイン関数の中で同じ事やっても文句言われません…
312デフォルトの名無しさん:2012/10/16(火) 03:29:14.29
>>311
それはありえないな
正確なソースをくれよ
313デフォルトの名無しさん:2012/10/16(火) 03:38:39.11
>>307-308
デフォルトインストールされてるのは
win7は.NET3.5.1
win8は.NET4.5と.NET3.5.1(オプション)
win8で.NET3.5.1を有効にする方法は↓参照。
http://msdn.microsoft.com/ja-jp/library/vstudio/hh506443.aspx

.NET4 Client ProfileはWindows Updateを通じて、vista/win7では自動、xpではオプションの更新として配布された。
http://support.microsoft.com/kb/982670/ja

.NET4.5の配布はまだだったと思うけど、その内やるんじゃないか。

>>311
varは暗黙的に型指定される"ローカル変数"
なんでフィールドで使えないんだ!って質問にはコンパイラ開発チームの人が答えてくれてる。
http://blogs.msdn.com/b/ericlippert/archive/2009/01/26/why-no-var-on-fields.aspx
314デフォルトの名無しさん:2012/10/16(火) 04:06:34.83
>>313
ありがとう
自分で確認する前にvs2012入れちゃったから確認できなかった

自動アプデで入るようになるまでは4.0で我慢しよ
VS Express for Desktopってデザイン変えただけで中身はまんま2010だね
でもなんか挙動は軽くなった感じ
操作性はほとんど一緒だから違和感なく以降できていいわこれ
315デフォルトの名無しさん:2012/10/16(火) 08:58:52.84
>>313
>win8は.NET4.5と.NET3.5.1(オプション)
3.5で作ったものはWin8では標準では動かないのですか?
下位互換はないものと考えるのでしょうか
316デフォルトの名無しさん:2012/10/16(火) 09:01:20.95
win8なんてMe並みにすべって消えるよ
317デフォルトの名無しさん:2012/10/16(火) 09:37:14.91
>>315
互換性があり標準で動くが、app.configに4.xでも動作すると明示する必要がある。

.NET4.xしか入っていない環境で動くようにするには
app.configに<startup useLegacyV2RuntimeActivationPolicy="true">を指定し、supportedRuntimeにv4.0を書き足せばよい。
318デフォルトの名無しさん:2012/10/16(火) 09:54:36.32
>>317
315です
ありがとう
319デフォルトの名無しさん:2012/10/16(火) 11:52:30.21
いえいえ
320デフォルトの名無しさん:2012/10/16(火) 12:46:23.01
291です。
先日回答を頂いた件なんですがdocument.cookieが見当たりません。
心当たりのある方はいらっしゃいませんでしょうか。

Microsoft Visual Studio 2010 Express
WebKit.NET-0.5-bin-cairo
321デフォルトの名無しさん:2012/10/16(火) 12:51:16.10
WindowsアプリケーションでFormを追加する場合
ソリューション名を右クリックして追加、新しい項目の追加で
フォームを追加しますが
プログラム上で新しいフォーム(Form2)を作成することはできないのでしょうか?
322デフォルトの名無しさん:2012/10/16(火) 12:54:26.33
自分で対応できないならあきらめろ
323デフォルトの名無しさん:2012/10/16(火) 12:54:54.24
class Form2 : Form { }
これでできあがり
実際に使うにはコントロールの登録とかいろいろ面倒だからお勧めしないけど
324デフォルトの名無しさん:2012/10/16(火) 12:55:36.64
>>322>>320
こんなタイミングで入るとは思わなかった

>>321
Formを継承したForm2を作ればできるよ
325デフォルトの名無しさん:2012/10/16(火) 12:56:58.20
つかコードから作るんならFormを継承したクラスは作る必要ないぞ
new Form()してControls.Addしていくだけ
クソ面倒だけど
326デフォルトの名無しさん:2012/10/16(火) 13:00:08.39
>>325
結局やることはかわらんよw

継承すればメソッドとか入れれるけど内部で部品を追加するコードは
Controls.Addしないとどうしようもない

プロジェクト作ったらデフォルトで用意されるForm1だって
IDEが触るもうひとつのファイルにごりごり書いてある
327321:2012/10/16(火) 13:09:12.95
回答ありがとうございます。継承でいけそうです。

継承についてまだあまりよくわかっていないのですが
デフォルトのFrom1のデザインをForm2でも使用したい場合は
Form1を継承すればいいのでしょうか?
また、プログラム上で作ったForm2のデザインをいろいろ変えたい場合は
Form1.Desiger.csみたいなものをForm2用に作って
変更していけばいいのでしょうか?
328デフォルトの名無しさん:2012/10/16(火) 13:18:33.24
そういうのはやめた方がいい
共通部分をUserControlにするとか、
共通部分をFormで作って差し替えたい部分だけUserControlにするとか
そっちの方向の方がデザイナで扱いやすい
329デフォルトの名無しさん:2012/10/16(火) 13:20:39.69
Client Profileって微妙に足りなかったりして発狂するようなやつじゃなかったか
330321:2012/10/16(火) 13:21:28.13
>>328
なるほどなるほど
ぜひそれでやってみたいと思います。
最高にありがとうございます!!
331デフォルトの名無しさん:2012/10/16(火) 13:29:28.36
>>329
.NET 4で普通のアプリ作る分には困ることはまずないはず
332デフォルトの名無しさん:2012/10/16(火) 13:34:00.28
ASPなんちゃらとかがないだけっしょ?
333デフォルトの名無しさん:2012/10/16(火) 13:35:16.76
webまわりの機能使う場合はクライアント側であっても
Client Profileじゃあだめなケースあったような
334デフォルトの名無しさん:2012/10/16(火) 14:50:03.49
そうか?
335デフォルトの名無しさん:2012/10/16(火) 16:31:05.74
class Form2 : Form { }
class Form3 : Form { }

class Form100 : Form { }

これをループでできない?
336デフォルトの名無しさん:2012/10/16(火) 16:33:00.22
>>335
継承しなきゃ出来ないようなことFormにはないし
337デフォルトの名無しさん:2012/10/16(火) 16:39:32.75
>>336
つまりできないってこと?
338デフォルトの名無しさん:2012/10/16(火) 16:42:04.89
>>335
方向性が間違ってるよ
339デフォルトの名無しさん:2012/10/16(火) 16:47:25.32
>>337
ソースコード生成とか
動的クラス生成とか一応出来るはずだけどね
340デフォルトの名無しさん:2012/10/16(火) 16:54:06.47
>>335
そういう断片的なやりたいことだけをいうんじゃなく
なんでそういう発想にいたったか説明してみろ
341デフォルトの名無しさん:2012/10/16(火) 16:58:26.04
>>340
独立した100個のフォームがほしいから
342デフォルトの名無しさん:2012/10/16(火) 16:59:21.41
for(int i = 0; i< 100; ++i)
{
 form[i] = new Form();
}

でええやん?
343デフォルトの名無しさん:2012/10/16(火) 16:59:34.32
Form form1 = new Form();
Form form1 = new Form();
Form form2 = new Form();
Form form3 = new Form();

どうせこういうことしたいだけだろうと予想
344355:2012/10/16(火) 17:05:05.03
Form form1 = new Form();
form1.Show();
Form form2 = new Form();
form2.Show();
Form form3 = new Form();
form3.Show();
メインフォームを閉じちゃうと残りも全部閉じちゃう・・
345デフォルトの名無しさん:2012/10/16(火) 17:06:35.89
Application.Run(form1);

とかやってるとform1が閉じた時にアプリケーションが終わる

Application.Run(); で開始して終わるときはApplication.Exit()を呼び出すようにすればいい
だったかな
346355:2012/10/16(火) 17:12:54.81
Program.csをどうすればいいの?
347デフォルトの名無しさん:2012/10/16(火) 17:13:49.15
Application.Run(form1);
これを
Application.Run();
こうすりゃいいんだよ
348355:2012/10/16(火) 17:14:47.27
Program.cs
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run();
}
にしたら何も表示されなくなった・・
349デフォルトの名無しさん:2012/10/16(火) 17:16:42.63
>>347
それじゃあだめだろw

Formの親子関係がよくわからんけど
サブフォームを必ず親から作るのであればClosingイベントを受けとって
制御すればいいだけじゃないの?
メインフォームはサブフォームが生きてれば見えないだけにして
サブフォームの終了を待ってればいいんだし

それがいやならexeを分けろ
350355:2012/10/16(火) 17:18:27.62
メインフォームを見えなくする以外に方法はないのかな
351デフォルトの名無しさん:2012/10/16(火) 17:19:11.83
>>348
new Form1().Show();
Application.Run();


これで
352355:2012/10/16(火) 17:20:23.52
>>351
天才現る
353デフォルトの名無しさん:2012/10/16(火) 17:21:07.35
Application.Run(form1);
することでForm1が消えないようにループが起こってるけど
Application.Run();
とすると何を動かすのかわからんし

Application.Run(form1);
でも
Form1から作っただけのForm2などがメインフォームである
Form1を閉じると消えるのは
Form2などのサブフォームを維持するための
Application.Run(form2);
をやってないからでしょ
354デフォルトの名無しさん:2012/10/16(火) 17:23:00.22
>>351
それだって
Application.Run();
を終了させるには
開いたFormの最後のやつが後始末として
Application.Exit();
しないとだめなんじゃないの?

その辺が面倒ならexeを分けろって
355355:2012/10/16(火) 17:23:34.99
>>353
>>Form2などのサブフォームを維持するための
>>Application.Run(form2);
>>をやってないからでしょ

サブフォームに対するApplication.Run()の仕方がわからん
356デフォルトの名無しさん:2012/10/16(火) 17:27:13.95
予想以上にあほだった

>>354で書いた通り

Form1.cs
http://ideone.com/xPrRo

Program.cs
http://ideone.com/HM9RD

これをデバックで動かして開いたFormを二つ閉じて
デバックモードが開放されるか確認してみ?
357355:2012/10/16(火) 17:31:21.29
>>356
開放されないが>>351の方法以外に
今のところ良い方法がない
358デフォルトの名無しさん:2012/10/16(火) 17:32:10.04
だから終了したくなったらApplication.Exit()すればいいんだよ
359デフォルトの名無しさん:2012/10/16(火) 17:32:28.72
>>357
>>349に仕様書いたよ
360355:2012/10/16(火) 17:33:14.62
>>358
どこにどういう記述をすればいいのか・・・
361デフォルトの名無しさん:2012/10/16(火) 17:33:37.94
>>360
どういうタイミングで終了するか言えよ
362355:2012/10/16(火) 17:34:31.15
>>361
private void Form1_Load(object sender, EventArgs e) {
Form form1 = new Form();
form1.Show();
Form form2 = new Form();
form2.Show();
Form form3 = new Form();
form3.Show();
}
最後のform3を閉じたときに終了させたい
363355:2012/10/16(火) 17:37:01.47
>>359
Closingイベント調べてる
364デフォルトの名無しさん:2012/10/16(火) 17:42:22.06
Form[] forms = new Form[3];

for(int i = 0; i < forms.Length; ++i)
{
 forms[i] = new Form();
 forms[i].Closed += (sender, e)=>{ if(forms.All(form => forn.Visible == false)){ Application.Exit(); } };
}

こんな感じじゃね
365デフォルトの名無しさん:2012/10/16(火) 17:43:14.53
>>364
このレベルの人にそれを教えるかw
366355:2012/10/16(火) 17:47:08.25
>>364
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
new Form1().Show();
Application.Run();

ここに追加すればいいのかな?

}
367355:2012/10/16(火) 17:50:17.49
>>359
100個のサブフォームがあったとき
100回Cosingイベントを判定して
100回目のCosingイベントでメインフォームを閉じるということかな?
368デフォルトの名無しさん:2012/10/16(火) 17:51:33.64
>>364はForm1の中でしょ

というか動きが断片的すぎてアドバイスもまともにできねえw

サブフォームはどういうタイミングで作るんだよ・・・
369デフォルトの名無しさん:2012/10/16(火) 17:53:52.69
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

Form[] forms = new Form[3];

for(int i = 0; i < forms.Length; ++i)
{
 forms[i] = new Form();
 forms[i].Closed += (sender, e)=>{ if(forms.All(form => form.Visible == false)){ Application.Exit(); } };
 forms[i].Show();
}

Application.Run();


こんな感じかな
370355:2012/10/16(火) 18:06:52.09
>>369
Form1.cs
http://ideone.com/ZMfaq

Program.cs
http://ideone.com/NeMbu

こうしたけど開放されなかった・・
371デフォルトの名無しさん:2012/10/16(火) 18:16:26.97
>>369
閉じたフォームのVisibleって当てになるのか?
372デフォルトの名無しさん:2012/10/16(火) 18:25:21.24
たしかにダメだったわ

試してみたら

for(int i = 0; i < forms.Length; ++i)
{
 forms[i] = new Form();
 forms[i].Disposed += (sender, e)=>{ if(forms.All(form => form.Visible == false)){ Application.Exit(); } };
 forms[i].Show();
}

これでいけるみたいだな
373355:2012/10/16(火) 18:31:03.73
>>372
神現る
恐らくこれ以上の最高の方法はないだろう
374デフォルトの名無しさん:2012/10/16(火) 18:35:46.51
なんかもっとまともな方法があるはずだけど・・・

forms[i].Disposed += (sender, e)=>{ if(forms.Count(form => form.IsDisposed) <= 1){ Application.Exit(); } };

ClosedとかDisposedの段階ではまだCloseもDisposeもされてなくて良く分かんないんだよなどれを見ればいいのか
<=1っていう条件も怪しいし・・・
375デフォルトの名無しさん:2012/10/16(火) 18:57:10.99
>>372
Closedで見るなら2個falseになってる状態ならExit発行していいな
タイミング的にはまだvidible=falseになってないみたい
376デフォルトの名無しさん:2012/10/16(火) 18:58:31.73
ラムダ式とか使いこなせないのでこんなコードだけど
http://ideone.com/yhL1E

まあ泥臭く書くのが一番

あとせめてテストはしようねw
377デフォルトの名無しさん:2012/10/16(火) 19:05:15.51
【韓流】ブームがいきなり終焉!? K-POP「江南スタイル」がYouTubeランク外に消える“珍事"が勃発[10/16]
http://awabi.2ch.net/test/read.cgi/news4plus/1350366216/
992:<丶`∀´>(´・ω・`)(`ハ´  )さん :2012/10/16(火) 16:30:03.73 ID:kdSMXng1
★まとめ★

1:チョーセン人が不正で異常な閲覧数を稼ぎレディガガ記録を抜く
2:気づいた奴が4ch(アメリカ版の2ch)で暴露
3:「アイツら本当にうぜーな」と4chねらーが PSYのwiki(英語版)で死んだことにする
4:チョーセン人かその関係者がwiki(英語版)での死亡を直す
5:4chねらーが PSYのwiki(英語版)で死んだことにする、チョーセン人が直す(無限ループ)
6:「こりゃ祭りだ」と4chねらーがYoutubeに”お悔やみ”(RIP)を書き込む
7:「物足ねーな、Koreanが嫌うことって何だ? 日本を褒めることか!」と4chねらー考える
9:「PSYは最高の日本人、死んで残念」「J-POP最高!」などの書き込みが始まる
10:おそらくアメリカ留学中のタイ人やマレーシア人がFaceBookで母国に拡散
11:タイ語の書き込みまで出てくる
12:「◯◯人の私もPSYのファン」というネタで意味もなく国名を目立つように書く
13:火星、木星、天国からもメッセージが届く
14:Youtube再生数より視聴時間重視に変更後ランキング1位から圏外に   ←今ここ
378デフォルトの名無しさん:2012/10/16(火) 20:02:42.14
ネトウヨきもっ、まで読んだ。
379デフォルトの名無しさん:2012/10/16(火) 20:28:06.47
この流れで聞きますが
自分で作ったForm1を継承して
プログラムで何個もFormを作る方法を教えてください。
380デフォルトの名無しさん:2012/10/16(火) 21:00:52.06
ああ逆だ

forms[i].Disposed += (sender, e)=>{ if(forms.Count(form => form.IsDisposed == false) <= 1){ Application.Exit(); } };
381デフォルトの名無しさん:2012/10/16(火) 21:21:28.15
>>379
フォームでメインになるのは一個だけだが、
そのメインのフォームの中で更にフォームを何個も作るのは別に違法でもなんでもない。
フォームをnewして表示すればいいだけさね。
382デフォルトの名無しさん:2012/10/16(火) 21:44:07.59
>>381
それだとForm1を継承できないんじゃないの?
383デフォルトの名無しさん:2012/10/16(火) 21:44:42.86
継承する必要がない
384デフォルトの名無しさん:2012/10/16(火) 21:46:12.64
インスタンスの概念がないんだろ
385デフォルトの名無しさん:2012/10/16(火) 21:47:14.07
クラス=オブジェクトとかVB脳か
386デフォルトの名無しさん:2012/10/16(火) 21:47:59.30
意味わからん
387デフォルトの名無しさん:2012/10/16(火) 21:48:59.12
分からんでよか
寝ろ
388デフォルトの名無しさん:2012/10/16(火) 21:49:19.97
>>382
なんで継承できないと思ったの?実装と実行はべつもんだいだよ?
継承でマズイのは再帰的に特定のある機能を呼びまくってメモリ不足で死亡するくらいだと思うんだけど。

あ、エスパーなんだけど、
最初に呼び出されるフォームはVC#だったらprogram.csだったかに記述されてて、
それを変更すれば任意のフォームをメインに出来るよ。
389デフォルトの名無しさん:2012/10/16(火) 21:54:44.19
どうやって書けばいいんだ
390デフォルトの名無しさん:2012/10/16(火) 21:59:17.74
InitializeComponent();
の次の行に
new Form1().Show();
って書いてみろよカス野郎
391デフォルトの名無しさん:2012/10/16(火) 22:16:15.74
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace Hoge__
{
    static class Program
    {
        /// <summary>
        /// アプリケーションのメイン エントリ ポイントです。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());//←ここで何をやってるか理解できれば、お望みどおりだと思いますよ?
        }
    }
}
392デフォルトの名無しさん:2012/10/16(火) 22:18:21.55
dllをimportする関係でIntPtr型を使いたいのですが
「クラス、デリゲート、列挙型、インターフェイス または構造体が必要です」
とエラーが出てしまいます。
どうすれば使えるようになるのでしょうか
393デフォルトの名無しさん:2012/10/16(火) 22:20:27.51
怒らないからDllImportをどこに書いてるか言ってみ
394デフォルトの名無しさん:2012/10/16(火) 22:22:01.59
>>393
ありがとうございます!解決しました!
395デフォルトの名無しさん:2012/10/16(火) 22:23:08.84
>>390
ブラクラじゃないすか
396デフォルトの名無しさん:2012/10/16(火) 22:32:11.40
継承を実現するためには設計図であるクラスを事前に書いておくしかない
事前に用意された設計図があればどうにかなる

設計図は動的にどうこうできない

そもそも仕様策定が間違ってる

何をやろうとしてるのか自分で整理しろ
断片的に書き込むな
397デフォルトの名無しさん:2012/10/16(火) 22:38:32.30
メタプログラミング舐めてんのか
398デフォルトの名無しさん:2012/10/16(火) 22:52:11.20
GetFilesで特定拡張子のファイルだけを取得したいのですが
例えば「.ABC」という拡張子と「.ABCD」という拡張子のファイルが混在していて前者のみを取得したい場合はどうしたらいいでしょう?
GetFiles("*.ABC")では両方でてきてしまいます・・・
399デフォルトの名無しさん:2012/10/16(火) 22:55:36.45
*.{ABC}
ではどう?
C#関係なしにワイルドカードって別になるね
400デフォルトの名無しさん:2012/10/16(火) 22:59:47.33
>>399
.ABCも.ABCDも両方でてこなくなっちゃいました・・・
401デフォルトの名無しさん:2012/10/16(火) 23:09:31.95
取得してから弾くしかないです
FindFirstFile使ってるせいなので長年の伝統です
402デフォルトの名無しさん:2012/10/16(火) 23:11:21.88
・最近、若い女性の間でも右寄りの思想に傾倒する女子が急増している。
 「K-POPや韓流ドラマは絶対視ない!」、「韓国は国ぐるみで間違った歴史を教えて、日本を悪者に仕立てている。
 許せない!」、「尖閣諸島や竹島は絶対に日本のもの!」、「中韓とは断固国交断絶!」「広告代理店やマスコミが
 朝鮮人と結託して、日本人に反日的な感情を植え付けようとしてる!」……などと語気が荒く語る女性が少なからず
 存在するのだ。

 しかも、彼女たちはいわゆる”普通の女子”。流行やブランド品を好む、 “スイーツ系女子”の相田多喜子さん
 (仮名・33歳・会社員)はこう話す。
 「韓国製のコスメや食品はもちろん、韓国と業務提携、協賛している日本企業の製品も購入しないようになった」

 発端は知人に紹介された「2ちゃんねるまとめブログ」だという。
 「それまで2ちゃんねるに関心がなかったのですが、中国や韓国の実態を伝える書き込みを初めて読んでショックを
 受けました。韓流芸能人が韓国で日本を悪く言っていること、韓国の性犯罪率の高さ、商品にウジが混入すると
 いった企業の衛生管理のずさんさなどを知り、さらにネットで勉強するように。日本のマスコミが偏った報道しか
 しないことを知りました」


 彼女たちの多くが、ネットを通して”真実”にたどり着き、日頃感じていた矛盾が解決したと語る。
 それは、いわゆる「ネトウヨ」とは違うのか……? 
 「違います。私たちがしているのは日本人として当たり前のこと。許してはいけないことを許したくないだけ」(竹中さん)(抜粋)
 http://nikkan-spa.jp/312054


403デフォルトの名無しさん:2012/10/16(火) 23:14:08.61
>>400
使えないのか
すまそ

>>401
そんな罠があるのか
404デフォルトの名無しさん:2012/10/16(火) 23:31:08.19
デリゲートが意味わからない
405デフォルトの名無しさん:2012/10/16(火) 23:32:19.38
1. インターフェイスについて学ぶ
2. Observerパターンについて学ぶ
3. イベントのadd/removeを自分で実装してみる
これで完璧
406デフォルトの名無しさん:2012/10/16(火) 23:34:10.03
処理の移譲

コントロールのイベントが発生したときに使ってるじゃん

イベントが発生したときに処理を移譲するメソッドを教えてくれ!
407デフォルトの名無しさん:2012/10/16(火) 23:57:49.76
デリゲートって2012だと非同期async/awaitに移行しちゃうの?
408デフォルトの名無しさん:2012/10/17(水) 00:01:55.27
非同期プログラミングモデル以外にもデリゲートの用途は沢山あるから
409デフォルトの名無しさん:2012/10/17(水) 00:02:30.16
別の機能間で移行も何もない
あ、非同期デリゲートは.NET1.1までで十分です
410デフォルトの名無しさん:2012/10/17(水) 00:09:59.28
>>406
そんなものはない
>>405に従えば理解できるよ
411デフォルトの名無しさん:2012/10/17(水) 00:34:41.73
なくはない
でも隠されているし、見ても特に意味はない
412デフォルトの名無しさん:2012/10/17(水) 00:58:51.71
>>406
必死に考えてたのに…
413デフォルトの名無しさん:2012/10/17(水) 01:00:46.32
eventって無駄な機能だな
+=と-=に絞る意味がない
414デフォルトの名無しさん:2012/10/17(水) 01:13:41.57
>>413
煽り抜きでダメな奴はだいたいそういう考え方をする。
ガチでそう考えているのならプログラマに不向きなんだよ君。
415デフォルトの名無しさん:2012/10/17(水) 01:17:37.20
イベントの基礎ともいえる割り込みが使えなければ
コンピューターは使い物にならんぞ

人間世界だって割り込みはあるだろう
416デフォルトの名無しさん:2012/10/17(水) 01:40:43.62
デリゲートは使いまくるけどeventは自分では全く使わんな
=代入できないと不便でしょうがない
417デフォルトの名無しさん:2012/10/17(水) 01:53:28.75
同じかたのイベントなら代入できるけど?
例えばTextBoxのクリックイベントを
Formのクリックベントに置き換えられる
418デフォルトの名無しさん:2012/10/17(水) 02:02:44.88
>>417
そんな意味不明のことができても仕方ないし
そもそもできないだろそんなこと
419デフォルトの名無しさん:2012/10/17(水) 02:04:50.89
もしかして add/remove アクセサを知らないとか?
420デフォルトの名無しさん:2012/10/17(水) 02:07:06.73
もはや何のことやら全く意味不明だな
プロパティみたいに書くadd/removeの存在は知ってるがもちろん使おうと思ったことすらない
421デフォルトの名無しさん:2012/10/17(水) 02:18:42.42
ライブラリ製作者だったら必須機能なんだが
使うだけの人は意識しなくていいって話だろ。

お前の中ではそうなんだろ としか言えないよ。
422デフォルトの名無しさん:2012/10/17(水) 02:22:01.45
結局=代入できるという話はどこかに消えるし・・・

デリゲート公開すればいいだけの話だし
だいたいSelectedIndexChangedみたいなのは自分でインデックス入れてもいちいち反応するから使いにくいったらない
eventって言う方式がそもそも間違ってる
423デフォルトの名無しさん:2012/10/17(水) 02:23:37.38
自分が想定できる範囲が狭いと露呈しているだけ
そんな初心者にムキにならなくてもいいじゃん
424デフォルトの名無しさん:2012/10/17(水) 02:25:25.79
最初に見たものをありがたがって使ってるだけだろ
ライブラリを作るなら利便性を考えるべきで
eventって言う方式はまともな設計センスの持ち主なら選択肢に入らない
425デフォルトの名無しさん:2012/10/17(水) 02:26:59.92
デリゲート公開したら外から弄られ放題
426デフォルトの名無しさん:2012/10/17(水) 02:28:49.50
デリゲート上書きしたいケースは日常的に出てくるからその方が良い
427デフォルトの名無しさん:2012/10/17(水) 02:51:23.98
>>424
言語設計の神様+MSの頭脳集団 vs 2chの匿名の誰か

さて、まともな設計センスを持っていないのはどっちだろうね?
428デフォルトの名無しさん:2012/10/17(水) 02:57:52.09
使えば一瞬でわかる問題でも頭が悪いと権威に目が眩んで判断できなくなるんだよな
429デフォルトの名無しさん:2012/10/17(水) 03:04:10.46
イベント捨ててデリゲートを公開しろってのが暴論だと思えないのなら頭おかしいよ
430デフォルトの名無しさん:2012/10/17(水) 03:12:41.09
C#の言語機能event以外全部パクられてるけど
eventをパクった言語もパクろうとしてる言語も皆無でしょ
必要ないんだよ
431デフォルトの名無しさん:2012/10/17(水) 03:30:15.37
え、よくあるEventListener使ったObserverパターンを
言語機能として取り込んだだけなんだけど…

むしろC#がパクった方
432デフォルトの名無しさん:2012/10/17(水) 04:00:01.20
ずいぶんむちゃくちゃなことを言うね
その理屈だとgetHoge setHogeは昔から使われてたからプロパティはパクっただけっていう主張になるわけ?
でもプロパティはちゃんとパクられてるからね
eventとは違って

Observerパターンは非常に使いにくい とても面倒
だからeventなんてものも出来たけどそれも大差なかったからパクられなかった
他言語ではすぐに関数型とラムダで取って代わられるでしょう
433デフォルトの名無しさん:2012/10/17(水) 04:09:04.64
他言語ってどれの事?
434デフォルトの名無しさん:2012/10/17(水) 04:16:57.47
他の言語の権威でしか語れない阿呆め
435デフォルトの名無しさん:2012/10/17(水) 04:31:41.52
>>432
有名どころだとECMAScriptにevent機構がある。
C#のものより酷く面倒ではあるけど、C#が元祖ではない。
436デフォルトの名無しさん:2012/10/17(水) 04:43:42.54
デリゲート公開すればいいと言ってるが
マルチキャストデリゲートの存在には文句ないのか?

eventってマルチキャストデリゲートをラップして
外部から勝手に実行したり全削除できないようにするぐらいの機能しかないわけだが
437デフォルトの名無しさん:2012/10/17(水) 05:32:03.45
馬鹿の考え休むに似たり
438デフォルトの名無しさん:2012/10/17(水) 06:16:08.81
みんなケチケチしてdll作らないでexe単体だよね
439デフォルトの名無しさん:2012/10/17(水) 06:37:41.20
勝手にdllファイルもってくやつ誰が書いたか言えよ。
440デフォルトの名無しさん:2012/10/17(水) 06:49:14.73
結局不勉強なのが露見して終わったか
441デフォルトの名無しさん:2012/10/17(水) 09:51:36.77
eventなんて単なる関数オブジェクトのリストだろ・・・
コールバックの登録とかどんだけ昔からある概念だよ
442デフォルトの名無しさん:2012/10/17(水) 09:58:30.86
デリゲートは関数ポインタと一緒です
443デフォルトの名無しさん:2012/10/17(水) 10:09:57.24
イベントって一つ一つ分けないでIListenerとかにまとめて登録できたほうが無駄少なくてよくないですか?
subject.AddListener(listener);
subject.Hoge(); // foreach IListener e in listeners do e.OnHoge(this, null)
subject.Fuga(); // foreach IListener e in listeners do e.OnFuga(this, null)
みたいな感じで
444デフォルトの名無しさん:2012/10/17(水) 10:33:28.43
>>442
関数ポインタと決定的に違うのは付属のポインタがあること
この差がどれほど大きいことか
445デフォルトの名無しさん:2012/10/17(水) 10:36:14.44
>>426
それはイベントとは要件違う。

イベントは見ず知らずの複数人が使う可能性あるぞ。
自分とは違う誰かが = で上書きしたせいで、自分が書いた側のコード動かなくなったらまずい。
個人の、プロジェクト内でしか使わないクラスでそれはいいけど、標準ライブラリとかではかなりまずい。
446デフォルトの名無しさん:2012/10/17(水) 10:37:51.28
>>432
たいていの言語、add/removeEventHandlerだらけだよ。
関数の引数としてデリゲート/関数ポインターを渡すものはあっても、setterで上書きしてしまえるような言語ない。
447デフォルトの名無しさん:2012/10/17(水) 10:39:55.56
上書きするケースはeventでなくowner設定の方だな
448デフォルトの名無しさん:2012/10/17(水) 10:40:52.59
ないよね
449デフォルトの名無しさん:2012/10/17(水) 12:12:59.71
スレチだけど今anonymous font入れてみたらエディタめちゃくちゃ読みやすいな オヌヌメ
450デフォルトの名無しさん:2012/10/17(水) 12:16:53.47
>>443
JavaのMouseListenerみたいに複数のメンバを持ったリスナを使うってこと?
あれは後からメンバを追加できないという致命的な問題があってだな
なのでJavaでも基本的にイベントリスナにはメソッド一つだけのインターフェイス(SAMという)を使うことが好まれる
(いつになるか知らんが)導入予定のJavaのラムダ式はSAMにしか対応していない
それが導入されれば事実上全てのコールバックにはSAMを使えということになる
SAMはマルチキャストを除けば実質的にはデリゲートと全く等価
451デフォルトの名無しさん:2012/10/17(水) 12:28:42.27
Javaの昔のリスナ方式だと、バージョンアップしたらinterface Callback2 extends Callback { 追加メンバ }
でリスナがCallback2を実装してるかどうか型チェックして実装してたらCallback2のメンバを呼ぶ
みたいな超頭の悪いことになるんだぜ
452デフォルトの名無しさん:2012/10/17(水) 13:00:59.34
>>445
可能性があるってならなんだって可能性はあるわな
どんなメソッドだって間違った使い方をすればぶっ壊れる

上書きしたらまずいなら単にしなければいいだけの話
そもそもいろんなところがコントロールの生参照持ってて自由にevent登録可能みたいな設計は
根本から間違ってるが

>>446
それはオブジェクト指向の幻想を優先してコーディングの利便性を犠牲にした結果だよ
453デフォルトの名無しさん:2012/10/17(水) 13:03:02.11
>>435
同じような字面なだけでC#のeventとは殆ど関係ないだろ

>>436
足したり引いたり出来る機能は無駄だけど別に不便はないからいいんじゃね
454デフォルトの名無しさん:2012/10/17(水) 13:13:50.63
イベント以外でもデリゲートが積極的に使われる今、マルチキャストこそ無駄だな
本来、Observerとそのまま対応させれば
List<EventHandler> hoge = new List<EventHandler>();
event Hoge { add { hoge.Add(value); } remove { hoge.Remove(hoge); } }
でいいはずで、当時は呼び出しの容易さとかスレッドセーフとかも考慮した結果なんだろうけど
今再設計したらコレクションとデリゲートは別になるだろうな
455デフォルトの名無しさん:2012/10/17(水) 13:51:34.56
マルチキャストなんてシンタックスシュガーみたいなもんだろ
http://ideone.com/HOC3k
456デフォルトの名無しさん:2012/10/17(水) 14:29:26.47
>>453
add/removeでEventListener操作する概念はC#のeventと変わらん。
それと同時に、1つしか関数を入れれず、どこからでも=で破壊的な変更ができてしまうイベントハンドラも使える。

>>452
プロパティ不要論を語ってた馬鹿も「フィールドを慎重に使えばプロパティいらないじゃん」って言ってたw
457デフォルトの名無しさん:2012/10/17(水) 14:39:49.35
>>452
C#以外の言語もまとめて全否定とは恐れ入る
458デフォルトの名無しさん:2012/10/17(水) 14:47:29.18
世の中にはうんこに触って匂いを嗅いで臭いと言うのが趣味という
奇特な人がいるんだなぁ
459デフォルトの名無しさん:2012/10/17(水) 14:54:18.67
C#が臭いと言い始めたら引っ込みがつかなくなって、他の言語も臭いと言い始めて
こいつ頭大丈夫か?と引かれてる。
460デフォルトの名無しさん:2012/10/17(水) 15:12:01.23
ほんとセンスないなあ
Add/Remove方式のEventListenerなんて存在が許されてはいけないレベルのウンコだし
それを引きずってるC#のeventなんてのも全く無駄の固まりでしょ
そんなの使ってりゃすぐ分かるじゃん
461デフォルトの名無しさん:2012/10/17(水) 15:15:46.46
>>460
で、どの言語ならOKだって?w
462デフォルトの名無しさん:2012/10/17(水) 15:20:44.90
eventなくす代替案がデリゲートを直接公開しろってのがもうね絶望的にセンスない。頭おかしくて笑える
463デフォルトの名無しさん:2012/10/17(水) 15:21:45.20
挙句の果てには、直接公開しても慎重に使えば大丈夫!ってプロパティ否定派みたいな醜態晒すしww
464デフォルトの名無しさん:2012/10/17(水) 15:31:58.96
Add/Remove方式のEventListenerなんて存在が許されてはいけないレベルのウンコ
465デフォルトの名無しさん:2012/10/17(水) 15:34:07.56
そろそろ負け惜しみの釣り宣言して逃げ出す頃合いじゃないか
466デフォルトの名無しさん:2012/10/17(水) 15:39:35.57
フィールドを慎重に使うことでプロパティの利点を得られるなんてことは全くないが
イベントは単にデリゲートから機能を省いただけなので省かれた機能を使わなければ同等になる
この2つを混同してしまうようないい加減な脳みそだとeventもマンセーしてしまうのだろうな
467デフォルトの名無しさん:2012/10/17(水) 15:46:54.77
Javaで無名内部クラスでも作ってみれば
EventListenerは存在しちゃいけないんだなってことがよく分かるよ
468デフォルトの名無しさん:2012/10/17(水) 15:47:45.30
>>461
だからC#でdelegateをそのまま使えばいいんだよ
469デフォルトの名無しさん:2012/10/17(水) 15:53:38.71
そう思うならお前がやればいい
ただの妄想ならよそでやってくれ
470デフォルトの名無しさん:2012/10/17(水) 15:56:15.98
>>466
eventキーワードの機能分かってる?
それprivateをpublicにしても外から呼ばなければ良いって言ってるのと同じだよ
471デフォルトの名無しさん:2012/10/17(水) 15:58:44.27
>>470
>privateをpublicにしても外から呼ばなければ良い

その意見には概ね賛成だね
カプセル化はデメリットが大きいから
明らかにprivateなもの以外はpublicで良い
pythonも同じ考えだよね
472デフォルトの名無しさん:2012/10/17(水) 16:01:32.25
ちょっと質問。インナークラスってどんなときに使うの?
ちょっと使い道がわかんないのでみんなどうしてるか気になって・・・

public class A
{

 Internal class B
 {
   Internal string B { get; set; }
 }

 public IEnumerable<B> BList { get; set; }

}

みたいな?
473デフォルトの名無しさん:2012/10/17(水) 16:03:25.20
そのクラスの中でしか使わないプライベートなクラスで使うなあ
474デフォルトの名無しさん:2012/10/17(水) 16:12:13.20
>>472
ネストクラスの話とinternalキーワードの話が多少混ざってる気がする
C#にいわゆるインナークラス(内部クラス)というものは無い

http://msdn.microsoft.com/ja-jp/library/ms173120(v=vs.80).aspx
http://msdn.microsoft.com/ja-jp/library/7c5ka91b(v=vs.80).aspx

ネストクラスは>>473が言うように中でしか使わない(private class)か
もしくは外側のクラスに強く依存したクラス、例えば
System.Windows.Forms.ListView.ListViewItemCollection
のような形で使われる
475デフォルトの名無しさん:2012/10/17(水) 16:46:17.50
>>472
あるクラスのプロパティの型にするクラスによく利用する
そういうのを新たにクラスファイルで作成してたら
ファイルだらけで見づらくなるからね
それに中に入れておくほうがわかりやすいしね
476デフォルトの名無しさん:2012/10/17(水) 16:51:40.83
サブフォームを閉じるまでメインフォームを
操作不可能(非表示にはせず)にすることってできますか?
477デフォルトの名無しさん:2012/10/17(水) 16:52:13.72
>>471
478デフォルトの名無しさん:2012/10/17(水) 16:53:55.28
>>476
ShowDialog
479デフォルトの名無しさん:2012/10/17(水) 16:58:35.76
>>478
thank you
480472:2012/10/17(水) 17:14:00.09
>>473,474,475

なるどでです。つまり外のクラスにのみ依存(または強く依存)している場合に
インナークラス(クラスの中にクラスを記述)するのがわかりやすくてよさそうですね。

実際のコストは外に出しても、中で書いても変わらない・・・ですよね?
強く依存している場合のみ使うようにしてみます。

ありがとうございました。
481デフォルトの名無しさん:2012/10/17(水) 17:17:53.66
>>480
>外に出しても、中で書いても変わらない・・・ですよね?
変わらないよ
482デフォルトの名無しさん:2012/10/17(水) 17:36:44.16
int i=0;
if (i < 5) {
i++;
Form1 form = new Form1();
this.Text = i; ←タイトルバーにこの値を設定したいがString型に変換できない
form.Show();
}

どのようにすればいいでしょうか?
483デフォルトの名無しさん:2012/10/17(水) 17:40:25.31
string.Format()
使うのがどこでも使えるかな。

ToString() というのもあるけどね
484デフォルトの名無しさん:2012/10/17(水) 17:46:49.62
this.Text = i.ToString;
だといきませんでした。

this.Text = string.Format({0},i);
でいきました
485デフォルトの名無しさん:2012/10/17(水) 18:03:48.57
なんで括弧を消すんだ
486デフォルトの名無しさん:2012/10/17(水) 18:16:58.52
>>485
すいません
いけました。ありがとうごわます
487デフォルトの名無しさん:2012/10/17(水) 18:37:32.29
namespace WindowsFormsApplication1 {
public partial class Form1 : Form {
static int i=0;
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
if (i < 5) {
i++;
Form1 form = new Form1();
this.Text = i.ToString();
form.Show();
}
}
}
}
希望としては1,2,3,4,5の名前がついたFormが作成されてほしいのですが、
それプラスForm1というフォームも作成されてしまいます。
どうすればいいのでしょうか。
Program.csはデフォルトのままです。
488デフォルトの名無しさん:2012/10/17(水) 18:39:08.34
>>487
こわいよおおおおおおおおおおおおおおおお
このソースこわいよおおおおおおおおおおおおおおおおおおおおおおおお
489デフォルトの名無しさん:2012/10/17(水) 18:49:09.36
そのForm1は最初の 1 を作ったやつだろw
自分が1になって2を作る、とかでどうだ?
490デフォルトの名無しさん:2012/10/17(水) 18:52:25.12
>>487
static変数は使わないこと
少なくとも初心者のうちは
http://ideone.com/Mrala
491デフォルトの名無しさん:2012/10/17(水) 18:54:25.15
>>490
ありごとうございます!!
なんで使わない方がいいんですか?
492デフォルトの名無しさん:2012/10/17(水) 19:05:04.92
局所性をぶち壊しにするから
デバッグやスレッド局所記憶以外でstatic変数を使う場合は
大抵設計がおかしいか使い捨ての手抜きプログラム
493デフォルトの名無しさん:2012/10/17(水) 19:27:01.75
http://www.tokyo-np.co.jp/s/article/2012101790072011.html
http://www.tokyo-np.co.jp/s/article/images/2012101799072011.jpg

東日本大震災の復興予算が被災地の再建と無関係な事業に使われている問題で、
各府省がこれまで一般会計として扱ってきた事業に関し、復興予算に付け替えて
継続を図っていたことが分かった。一般会計の予算査定が厳しくなる中、省益優先と
ばかりに、関連性のない復興予算獲得に飛びつき、野放図に認められていたのが実情だ。
 (中根政人、岩崎健太朗)

 典型的な事業は、外務省の青少年国際交流事業だ。
 震災発生前の二〇〇七年度からの五年間、「二十一世紀東アジア青少年大交流計画」の
名称で、中国や韓国などの若者を招いた。毎年度平均で約七十億円の事業予算が一般
会計から支出され、一一年度に終了予定だった。
 ところが、復興のための一一年度三次補正予算に「アジア大洋州地域及び北米地域との
青少年交流」(七十二億円)と名称を変えて盛り込まれた。震災の実態を米国や中国、韓国など
約一万人の若者に伝えるのを目的としているが、実際は被災地での滞在は十日前後のうち
実質三日。主に東京や名古屋、京都など被災地と関係のない大都市や観光地を回る内容だった。
 外務省は「震災全体の正しい姿を伝えるための事業。復興予算からの支出は適正だ」と話している。
 このほか、文部科学省は一二年度予算の復興特別会計に所管する独立行政法人・日本原子力
研究開発機構の核融合エネルギー研究費として四十二億円を計上した。この事業は被災地の
復興に直接関係なく、〇七年度から一一年度までは一般会計として扱われてきた。

 内閣府は復興のための一一年度三次補正予算に、自殺防止対策として「地域自殺対策緊急強化
基金」に三十七億円を盛り込んだ。事業費は被災地だけでなく、全国の相談業務に充てられる。
〇九年度に三年間分として、一般会計に計百億円が計上されていた。
494デフォルトの名無しさん:2012/10/17(水) 19:28:16.00
ネトウヨ王に、俺はなる!まで読んだ。
495デフォルトの名無しさん:2012/10/17(水) 19:32:12.36
ちょっと間違えたら無限にウインドウを開き続けるクラッシャーと化すな
496デフォルトの名無しさん:2012/10/17(水) 19:46:39.49
デストラクタって使うことあるの?
497デフォルトの名無しさん:2012/10/17(水) 19:50:17.90
>>496
GCに任せておくとどのタイミングでリソースが解放されるか分からない
リアルタイム性が要求される場面では自分で解放する
usingとか良く使うだろ?
498デフォルトの名無しさん:2012/10/17(水) 19:52:53.73
>>497
それデストラクタと関係ない。
何を言ってるんだ。
499デフォルトの名無しさん:2012/10/17(水) 19:54:04.02
デストラクタ内にGC書けば同じ事だろアホか
500デフォルトの名無しさん:2012/10/17(水) 20:08:04.70
>>499
馬鹿だろお前
501デフォルトの名無しさん:2012/10/17(水) 20:13:22.72
誰が本当なんだよwwwwwww
502デフォルトの名無しさん:2012/10/17(水) 20:58:18.70
デストラクタというかファイナライザな
アンマネージリソースを保持するクラスなら普通に使うよ

>>497 == >>499 は今頃スレのログ削除して寝ちまっただろう。
恥ずかしくてw
503デフォルトの名無しさん:2012/10/17(水) 21:45:10.15
昨日から馬鹿が常駐してるのか?
504デフォルトの名無しさん:2012/10/17(水) 21:50:29.23
C#のデストラクタ=Finalize
C++/CLIのデストラクタ=IDisposable::Dispose
Finalizeはクラス利用者がアホ(IDisposableを実装しているのにDisposeを呼び忘れる)
だった場合の被害を抑えるために機能する
505デフォルトの名無しさん:2012/10/17(水) 21:59:31.15
>>452
誤用を避けれる書き方ってのは確かにあって、オブザーバーパターンもその一種。
かなり効果ある。

>>453
関係あるよ。
C#のeventは、ECMAScriptのevent機構とかと利用目的一緒。
違うように見えてるんなら本気で不勉強。
506デフォルトの名無しさん:2012/10/17(水) 22:01:18.44
>>454
そのList使った実装じゃマルチスレッド環境での利用で安全じゃない。
507デフォルトの名無しさん:2012/10/17(水) 22:18:29.20
webbrowserのCookieの削除をプログラム上でするには
どのようにすればいいでしょうか?
508デフォルトの名無しさん:2012/10/17(水) 22:19:37.33
wininetの機能を使えばできるはず
509デフォルトの名無しさん:2012/10/17(水) 22:31:15.34
>>505
>かなり効果ある。

どのようなケースでどんな効果があるのか説明してみ?

>C#のeventは、ECMAScriptのevent機構とかと利用目的一緒。

C#のイベントはAddとRemoveに限定させるもの
javascriptのイベントはタグ内でイベントに対応したjavascriptを書くことで実行させる機能だろ
どう一緒で何の関係があるんだよ
510デフォルトの名無しさん:2012/10/17(水) 22:34:38.38
こういうセンスがない人はたぶん説明しても無駄。

普通はなぜfoolproofが重要かなんて人に教わらなくても自分で分かると思うが、
人に説明されても理解できないのは馬鹿だからとしか言いようがない。
511デフォルトの名無しさん:2012/10/17(水) 22:37:06.37
>>510
馬鹿じゃなくて勉強不足なだけだろ
512デフォルトの名無しさん:2012/10/17(水) 22:42:54.75
プライベートに隠すことをよしとした誤った教育を受けた結果
時間を掛けてパブリックとプライベートを峻別して無駄に階層を深くして可読性を下げコストを増やした上で
自由度が低く拡張性に乏しいライブラリを量産した挙句
パブリックなメンバもちょっと使い方を間違えば平気でぶっ壊れるような危険性は無視してフールプルーフなライブラリが出来たとか宣ってるんだから
アホウというか可哀想になるやね

ちゃんと理解して正しく使えるようにすること
拡張性のために内部をできるだけ見せること
必要なのはこの2つであってプライベートに隠すことではないのよ
513デフォルトの名無しさん:2012/10/17(水) 22:42:57.23
ほんと不勉強のアホだな。

ECMAScriptの仕様書
http://www.w3.org/TR/DOM-Level-2-Events/ecma-script-binding.html

addEventListenerとremoveEventListenerがC#のeventへの+=と-=に相当する。
514デフォルトの名無しさん:2012/10/17(水) 22:44:39.45
>>513
そんなのただのAPIであって言語機能のイベントでもなんでもねーだろ
515デフォルトの名無しさん:2012/10/17(水) 22:45:44.67
>>504
デストラクタからしかDisposeできないIDisposableというのも時折あってだな
516デフォルトの名無しさん:2012/10/17(水) 22:46:22.77
>>514
機能も利用目的も同じ
517デフォルトの名無しさん:2012/10/17(水) 22:46:34.64
>>513
お前がアホだろwwwwww
518デフォルトの名無しさん:2012/10/17(水) 22:55:44.47
C#からイベントアクセサーを排除すると何が嬉しいんだ?
他人の追加したデリゲートを消す嫌がらせは出来そうだが
519デフォルトの名無しさん:2012/10/17(水) 22:59:23.82
イベントの動作をぱっと入れ替えられて便利になるってだけだわ
どうしても入れ替えてほしくないならそういうクラスを作ればいいけど
そんな邪魔くさいライブラリは誰も使わなくなるだろう
520デフォルトの名無しさん:2012/10/17(水) 23:02:02.79
>>519
そう思ってるのはお前ぐらいで、他のみんなは
「どうしても入れ替えたいならそういうクラスを作ればいいけど
そんな邪魔くさいライブラリは誰も使わなくなるだろう」って思ってる。
521デフォルトの名無しさん:2012/10/17(水) 23:02:33.88
>>512
開放的なのはいいがやりすぎて掴まんなよ
522デフォルトの名無しさん:2012/10/17(水) 23:07:26.24
だいたいまずやることはイベントに自作デリゲート入れることだからね

control.Clicked += (sender, e) => MyClicked();

senderとかキャストしてまで使うようなもんじゃないしコントロールの生参照をだれにでも与えるとかむちゃくちゃだし
ほんとここはダメダメだわ
ヘルズバーグもなんでこんなコトしちゃってんだアアアアアッ! とか夜中に思い出して叫んでるだろう
523デフォルトの名無しさん:2012/10/17(水) 23:09:02.25
それeventじゃなくて、WinFormsの設計の話じゃん
524デフォルトの名無しさん:2012/10/17(水) 23:09:54.20
そもそも参照を持っていない奴はイベントを購読できないんだけどね
525デフォルトの名無しさん:2012/10/17(水) 23:10:57.41
それも込みで自作デリゲート入れると
入れ替えられるし引数もシンプルになって便利だなあというお話
526デフォルトの名無しさん:2012/10/17(水) 23:12:06.21
へーすごいねー
あんたの言うとおりにすればms超えちゃうね〜
527デフォルトの名無しさん:2012/10/17(水) 23:13:55.75
>>522
そんなの他の言語のGUIライブラリでも同じだろw
528デフォルトの名無しさん:2012/10/17(水) 23:13:57.83
class Controller{
Control control;

public void SetClicked(EventHandler handler)
{
 control.Clicked += handler;
}
}

こんな風にしない?
こうしたらControlは隠れててもイベント起動するとsenderで送られちゃうよね
529デフォルトの名無しさん:2012/10/17(水) 23:18:21.93
しないしただの設計ミスだそれは
引数をEventHandlerじゃなくてActionとかにしろ
530デフォルトの名無しさん:2012/10/17(水) 23:20:28.91
だから当然Actionにするわけだよ
本質的に危険で無駄で邪魔臭いわけよeventが言語機能としてもWinFormsとかのライブラリ面でも
531デフォルトの名無しさん:2012/10/17(水) 23:22:44.92
>>509
利用側が誤用しないようにしないといけないんだよ。

たいがいなレベルの、それこそ君みたいなレベルの、そんな開発者は、
誤用したうえで問題出たらフレームワーク側のバグだって言ってくる。

それを防ぐためには、外からはaddとremoveのみできて、
呼び出しや = 上書き(clear)は中からだけしかできないようにしなきゃいけない。
532デフォルトの名無しさん:2012/10/17(水) 23:24:18.61
下々に合わせた言語は大変だなあ
533デフォルトの名無しさん:2012/10/17(水) 23:24:53.00
>>528>>530
ん?デリゲートを直接公開するんじゃなくてSetClicked(Action)とか作っちゃうの??
534デフォルトの名無しさん:2012/10/17(水) 23:27:27.00
>>533
eventのadd/removeをわざわざ手動で実装しなおしてるだけだな。
535デフォルトの名無しさん:2012/10/17(水) 23:28:11.51
Controllerがクリックハンドラーを外に公開する設計より下はちょっと思いつかない
536デフォルトの名無しさん:2012/10/17(水) 23:28:47.95
そもそもEventHandlerを管理クラス以外が直接触ってAddとかRemoveすること自体が誤用
責任を持った管理者が微にいり細に渡って管理しなきゃイベントハンドリングなんてうまく動かないんだから
その責任を持った管理者は当然削除も出来るし起動もできて当然なわけ
その管理権を自作デリゲートで取り戻すところから始めなきゃいけないから無駄に一手間増えてるだけ

多分お前ら殆どはイベントの使い方をわかっておらず誤用してるんじゃないかと思うよ
言語とライブラリがミスリードしているせいで
537デフォルトの名無しさん:2012/10/17(水) 23:30:04.59
MVVM舐めてんのか
538デフォルトの名無しさん:2012/10/17(水) 23:34:05.40
さっきから熱弁してる人さぁ
なんでこの板にいんの?
c#やってんの?
他の言語行けば?
c#じゃないと死んじゃうの?
そんなに詳しいのなら自分で言語作れば?
できないの?
口だけなの?
スレタイも読めない馬鹿はいい加減うざったいから消えて
539デフォルトの名無しさん:2012/10/17(水) 23:37:43.54
C#だからここまで出来るんだよ
C#1.0当時の経験の少ないアンダースが犯した誤りをずっと引きずってる部分があるってだけ
それも最新C#のパワーを使えば簡単に克服できるの
event機能に代表される悪弊を捨てればね
540デフォルトの名無しさん:2012/10/17(水) 23:38:30.57
初心者でもうしわけないんですが
イベントにラムダを追加していらなくなったら削除したいときってどうやればいいんですか?
元のラムダをずっと保持していないとダメなんでしょうか
541デフォルトの名無しさん:2012/10/17(水) 23:40:01.13
>>540
だからまずこうするんだよ

control.Clicked += (sender, e) => MyClicked();

でMyClickedを上書きする
542デフォルトの名無しさん:2012/10/17(水) 23:41:11.05
>>541
すいません良くわかりません
それだとイベントに追加されたラムダは永遠に残ってメモリの無駄だと思うのですが…
543デフォルトの名無しさん:2012/10/17(水) 23:41:21.24
>>536
ControlとコードビハインドがセットになってViewになってる所を分離したいというわけか。

お前Controllerなんてクラス名使っときながらMVC分かってないのかw
544デフォルトの名無しさん:2012/10/17(水) 23:42:38.27
なんか余計な機能ふえすぎ
2.0で作れないもんなんてない
545デフォルトの名無しさん:2012/10/17(水) 23:43:38.00
>>542
control.Clicked += (sender, e) => if(MyClicked != null){ MyClicked(); }

じゃあこうしてnullをいれればいいんじゃないの

546デフォルトの名無しさん:2012/10/17(水) 23:44:50.37
>>543
何がわかってないって?
547デフォルトの名無しさん:2012/10/17(水) 23:48:04.10
WinFormsの場合はM-VCという方が適切かな。
まともに分離して作りたいならWPF使え
548デフォルトの名無しさん:2012/10/17(水) 23:48:10.32
>>545
あの、ですからそのラムダそのものを削除してメモリを開放してやりたいんですけど…
549デフォルトの名無しさん:2012/10/17(水) 23:48:36.50
最初期の自転車でも走れなくは無い
550デフォルトの名無しさん:2012/10/17(水) 23:48:55.26
>>548
それはもう諦めようよ
551デフォルトの名無しさん:2012/10/17(水) 23:48:55.74
>>542
デリゲートを直接公開してもラムダ式のイベント消すのが面倒だって事情は変わらないって分かってて言ってるの?w
552デフォルトの名無しさん:2012/10/17(水) 23:52:00.43
VCを強引に分けようとしてるから無駄な手間が増えてる。
WinFormsはそういう設計になってないからWPF使えというのが結論。
553デフォルトの名無しさん:2012/10/17(水) 23:55:01.53
WPF(笑)
554デフォルトの名無しさん:2012/10/17(水) 23:56:41.66
eventをキチガイみたいに叩いてると思ったらWinFormsが気に食わなかっただけだった。
555デフォルトの名無しさん:2012/10/18(木) 00:01:30.83
WPF息してんの?
556デフォルトの名無しさん:2012/10/18(木) 00:03:06.48
MとVとCがわけたところで問題は何も解決しない
GUIはつまりgotoで状態を行ったり来たりしてるんだからそれ自体が複雑の権化
どういう時にどうするか全パターンを書き出すようなキチガイじみた作業をどれだけわかりやすく構成し直せるかが問題
そのためにはCを目的ごとに分割してModelとViewをそれぞれのCがコントロールすることが必要
ViewはModelを反映すれば良いなんてのは絵空事でしかない
まずモデルに投げた後モデルをViewが反映するみたいな余計な中間層が増えるだけ
MVCなんかクッソ食らえだわ
557デフォルトの名無しさん:2012/10/18(木) 00:03:25.18
Win8出たのに4日レスがない程度には
558デフォルトの名無しさん:2012/10/18(木) 00:04:02.77
あれWPFじゃなくて親戚みたいなもん
559デフォルトの名無しさん:2012/10/18(木) 00:05:48.95
>>556
gotoとイベントドリブンを同一視するのは馬鹿っぽいぞ
560デフォルトの名無しさん:2012/10/18(木) 00:23:08.82
だいたいWPFも変わんないでしょう
モデルを変更してGUIの状態をアップデートしたら
そこでまたイベントが起動してモデルに変更が行ってと無限ループに陥ってしまう
根幹から設計が間違ってる
561デフォルトの名無しさん:2012/10/18(木) 00:30:55.29
触ったこともないのに設計を語るやつなんなの
562デフォルトの名無しさん:2012/10/18(木) 00:38:45.37
唐突に仕事を語りだす人くらいにはありがちな人種です
563デフォルトの名無しさん:2012/10/18(木) 00:47:38.43
だって誰も使ってない破綻した失敗作に対して
「勉強してから言え」って言われても破綻した失敗作なんか勉強したくないし
そもそも理解できないから誰も使ってないんで学習にかかるコストを考えたら
WPFに文句をいうためだけに勉強するのはあり得ない選択だよね
564デフォルトの名無しさん:2012/10/18(木) 00:50:07.17
webbrowserで表示したページの最下部まで
自動でスクロールしてくれる命令ありませんか?

webBrowser1.Document.Window.ScrollTo(0,100);
みたいなのはあるけど最下部の指定がわからない。
565デフォルトの名無しさん:2012/10/18(木) 00:52:56.70
>>563
失敗から学ぶこともちょびっとあるよ。
WPF殆ど触ってないけど、Point構造体の要素がdoubleなのだけが羨ましい。
逆に状態依存プロパティはVOIDポインタのように感じてだいっきらいだ。
566デフォルトの名無しさん:2012/10/18(木) 00:54:32.55
http://cs2ch.blog123.fc2.com/blog-entry-83.html
webBrowser.Document.Window.Document.Body.ScrollRectangle
この辺で全体のサイズがわかりそう?
567デフォルトの名無しさん:2012/10/18(木) 01:01:11.26
>>566
サンクス
568566:2012/10/18(木) 01:08:00.23
この間HPのキャプチャソフトを作ったのが残ってたわ
http://ideone.com/M7oqU

オートスクロールでスクリーンキャプチャ()する泥臭いタイプだけどww

この間ここかもうひとつのスレで叩かれたやつwww
569デフォルトの名無しさん:2012/10/18(木) 01:10:54.26
ああ、この前最後にちょろっとコメントにした部分がそのままだった
こっちがちゃんと動作するやつ
http://ideone.com/Dsxbp
570デフォルトの名無しさん:2012/10/18(木) 01:13:23.51
データバインディング機構が全然わからないんだよなあ
INotifyPropertyChangedはいいけどプロパティが変わるたびに通知していって
それぞれ同期している値に変換が入ってそこで誤差が出たら
永久にプロパティチェンジ通知が終わらなくなるでしょう
怖くて使えない
571デフォルトの名無しさん:2012/10/18(木) 01:14:37.79
>>570
そんなのはwinformだってサイズ変更のイベントとかで
余裕でかけるだろw
572デフォルトの名無しさん:2012/10/18(木) 01:24:51.08
出来上がってるもんの荒拾うのは誰だってできるんだよ
一から設計して実用化に至るまで作って見ろよゴミ屑
573デフォルトの名無しさん:2012/10/18(木) 01:27:06.34
MSの設計者は>>570ほど愚かじゃない
574デフォルトの名無しさん:2012/10/18(木) 01:28:58.53
ここだと一から全部作らないと文句言っちゃいけないらしいね
575デフォルトの名無しさん:2012/10/18(木) 01:30:29.86
既存の仕組みにループを回避する仕組みがないなら
そうならないようにプログラムを組めばいいだけ
悩むことはない
576デフォルトの名無しさん:2012/10/18(木) 01:42:16.38
>>574
そうだよ

ス レ チ だ か ら
577デフォルトの名無しさん:2012/10/18(木) 01:54:08.43
>>574
愚痴スレ逝けよウンコクズ
578デフォルトの名無しさん:2012/10/18(木) 02:09:45.35
>>570
本当に全然分かってないね。
そんな使い方はしない。
579デフォルトの名無しさん:2012/10/18(木) 02:11:53.86
>>560
それは設計じゃなくて、お前の頭が間違ってるわ
580デフォルトの名無しさん:2012/10/18(木) 02:25:05.06
webbrowserで表示させたWebページのsubmitが押されたかどうかを
判定したい場合どのようにすればいいでしょうか?
581デフォルトの名無しさん:2012/10/18(木) 02:41:33.71
Document.GetElementsByTagName("button")でボタン探して
HtmlElement.GetAttribute("type")がsubmitになってるやつ見つけて
ClickイベントにHtmlElementEventHandler突っ込めばおk

Document.Clickにハンドラ設定して
Document.GetElementFromPoint(e.MousePosition)でクリック位置のHtmlElement取得して
TagNameとGetAttribute(string)でsubmitボタン探してもいい
582デフォルトの名無しさん:2012/10/18(木) 02:43:01.95
>>581
うおおおおおおおおおおおおおおおおお
ありがとおおおおおおおおおおおおおおおおお
583デフォルトの名無しさん:2012/10/18(木) 04:30:15.67
中国漁船の違法操業取り締まり過程で、韓国海洋警察が発射したゴム弾に当たった中国人船員が死亡した事件と関連し、
張シン森駐韓中国大使は韓国外交通商部(外交部)を訪問し、中国側の立場を伝える予定だったが、これがキャンセルとなったことが確認された。

17日の韓国メディアによると、駐韓中国大使館側は張シン森大使と安豪栄(アン・ホヨン)外交第1次官の面談のために外交部と日程を調整したが、午後遅くに訪問する計画はないと通報したという。

韓国メディアは、張大使の外交部訪問計画が取り消されたことに関し、今回の事件が外交的紛争に発展する状況を防ぐという中国政府の意中が反映された、と分析した。

ttp://japanese.joins.com/article/479/161479.html?servcode=A00§code=A30
584デフォルトの名無しさん:2012/10/18(木) 06:49:01.19
Surface RTいいじゃん
http://www.youtube.com/watch?v=yswUFCD1x0A

広告戦略キッチリやってCM打てば結構売れそう。日本でも売ってくれ
585デフォルトの名無しさん:2012/10/18(木) 08:36:57.88
カスタムコントロールを張り付けているのですが
デバッグする度に、それ以後のFormに対するデザインの変更が無効になっているらしく
変更してからデバッグすると変更が反映されていない
Formを開き直すと、デバッグ前の状態に戻っている
カスタムコントロールを利用する場合、コードで貼りつけたほうがいいのでしょうか?
注意点みたいなのがあれば教えて下さい
586デフォルトの名無しさん:2012/10/18(木) 08:52:16.95
新規プロジェクト作って最小構成で試して問題があるようならプロジェクトうp
587デフォルトの名無しさん:2012/10/18(木) 09:39:41.22
うわぁああ、ソリューションクリーンにしたら
配置してたコントロール全部消えた
やっぱり独自カスタムコントロールがだめだったんだろうな
最小構成しても同じ症状だったし
オーナーの表示をカスタマイズするような機能をつけたものは
デザイン時に貼り付けちゃだめなの?
588デフォルトの名無しさん:2012/10/18(木) 09:43:17.01
方法 : ToolStripTextBox を拡大して ToolStrip の残りの幅に合わせる (Windows フォーム)
http://msdn.microsoft.com/ja-jp/library/ms404304(v=vs.100).aspx
作ったカスタムコントロールはこれをコピペしただけ
それ以外一切変更なし(難しくてよくわからんし)
それを配置してたら死んだ・・・
589デフォルトの名無しさん:2012/10/18(木) 09:47:18.19
はて、そんな症例あったっけ…
590デフォルトの名無しさん:2012/10/18(木) 09:55:36.69
やるとわかりますよ。
上のソースそのままコピペ
デザイン画面でToolStripにこのSpringTextBoxを配置

あとは適当なコントロールをForm1上に配置してデバッグ
次にその適当なコントロールのサイズを変更してデバッグ
ここでサイズ変更されないままになる

あ、コントロールが消えたのはコントロールを別のフォルダ移動したからだった
591デフォルトの名無しさん:2012/10/18(木) 10:29:26.54
いやーーちがうかった
ユーザーコントロールやカスタムコントロールをフォルダ移動しただけで
ネームスペースは変更していないんだからこうなるのはおかしい
コントロールが消える前に巻き戻して、今度はカスタムコントロールをデザイン画面から
削除して同じようにフォルダ移動、プロジェクトのクリーンをしたら
何も問題が起きなかった
やっぱこいつなだよ!この糞デザイナーが中途半端に自動化できるから
M$社員は俺様の高度なプログラミングを想定してなかったんだ!
592デフォルトの名無しさん:2012/10/18(木) 12:13:34.86
デザイン属性多すぎて把握できないからデザイナーは使わなくなった
593デフォルトの名無しさん:2012/10/18(木) 12:27:07.65
>>592
public FormMain(){ while(true) { InitializeComponent();}}
594デフォルトの名無しさん:2012/10/18(木) 13:04:59.73
c#っていうかさ、なんかもっと根本的なものが狂ってる奴ばっかりだよね
595デフォルトの名無しさん:2012/10/18(木) 13:06:19.80
>>594
うん、お前が一番狂ってるよな
596デフォルトの名無しさん:2012/10/18(木) 13:22:06.44
あまり変わらないファイルのパスやファイル名などを全体で使う場合
staticで変数として定義するか
constで定数として定義するか
どっちの方がいいんですか?
597雑魚シカ:2012/10/18(木) 13:25:03.20
こんst
598デフォルトの名無しさん:2012/10/18(木) 13:25:25.81
privateかinternalならどっちでも同じ
publicかprotectedならstatic readonly
599デフォルトの名無しさん:2012/10/18(木) 13:29:18.38
>>597
>>598
どっちでしょうか・・・
600デフォルトの名無しさん:2012/10/18(木) 13:30:00.72
どれでもいいよ別に
601デフォルトの名無しさん:2012/10/18(木) 13:32:08.07
>>600
わかりました
602デフォルトの名無しさん:2012/10/18(木) 14:29:13.15
そもそも韓国は中世以降に北方から侵入してきたエベンキ朝鮮人の国。
百済や新羅はおろか、高麗との関係さえない、正体不明のゴキブリ朝鮮人なんだよな。

得体の知れない正体不明のエベンキ朝鮮人が勝手にハナクソのような朝鮮半島の歴史にさえ
コビリグソのように寄生しているという現実。

新羅や百済でアリランを歌い踊ってたとでも思ってるのかねバカチョンは。よく南洋からやってきた倭人に征服された
属国に過ぎなかった新羅や百済なのに、日本に文化を伝えたニダ!とか言ってるバカチョンがいるけど、それならなんで
「アリラン」は伝わらなかったのだろうね。

正体不明のエベンキ朝鮮人くん、君たちはいったいどこの何者なんだい?

たとえば、お前ら自分の隣の家の「鈴木さん」がある日、突然に謎の顔エラ怪人に変わっていて「鈴木ニダ」
「お金を貸してほしいニダ」と言ってきたらどうする?

朝鮮半島ってそういう正体不明の犯罪ゴキブリ民族がひしめいてる状態だから犯罪が起きまくるのだよw
だから竹島を侵略して興奮状態にしないと国としてまとまることも不可能という。
603デフォルトの名無しさん:2012/10/18(木) 16:02:44.20
インターネット上になりすましの犯行予告が書き込まれていた事件で、犯行に使われたウイルスには、
2000年頃に登場したコンピューター言語が用いられていたことが情報セキュリティー会社の解析でわかった。

情報セキュリティー会社「シマンテック」によると、今回のウイルスに使用されたのは「C#(シー・シャープ)」と
呼ばれるコンピューター言語。2000年頃からパソコンのソフトウエア製作などに用いられるようになったという。
http://headlines.yahoo.co.jp/hl?a=20121018-00000808-yom-soci
604デフォルトの名無しさん:2012/10/18(木) 16:04:31.05
やっとメジャーになったね
605デフォルトの名無しさん:2012/10/18(木) 16:05:31.25
exe見たらC#かVB.NETか区別できるのかね
606デフォルトの名無しさん:2012/10/18(木) 16:09:15.74
書いてあるよ
607デフォルトの名無しさん:2012/10/18(木) 16:17:04.52
>>605
当たり前じゃん
608デフォルトの名無しさん:2012/10/18(木) 16:26:22.36
LINQで、コレクションの射影をつくりたいんですが
条件に合う時は追加して、そうでないときは無視する場合どうしたらいいんでしょう
Selectだと必ず返さないといけないみたいで
.Select( i => {
609デフォルトの名無しさん:2012/10/18(木) 16:27:34.30
途中送信ごめんなさい

.Select( i => { if( i != 0 ){ return 5 / i; }else{...} );
の...のところが要らないんですが
610デフォルトの名無しさん:2012/10/18(木) 16:28:18.11
Selectの前にWhereする
611デフォルトの名無しさん:2012/10/18(木) 16:28:53.24
C#とウイルスってのがあまり結びつかないな
解析されにくいC++とか使えばいいのに
612デフォルトの名無しさん:2012/10/18(木) 16:31:23.65
使えなかったんだろ・・・知識的に
613デフォルトの名無しさん:2012/10/18(木) 16:36:23.91
>>606,607
どこに書いてあんの?
614デフォルトの名無しさん:2012/10/18(木) 17:14:25.80
ウィルスにコメントが入っていたら笑えるな
615デフォルトの名無しさん:2012/10/18(木) 17:15:22.79
ウィルスにシリアル番号が入っていたりして
616デフォルトの名無しさん:2012/10/18(木) 17:41:37.56
すごいな
617デフォルトの名無しさん:2012/10/18(木) 17:54:40.38
フォルダ名が残ってて、自分の名前の下にファイル名があったりして
618デフォルトの名無しさん:2012/10/18(木) 18:35:27.25
C++スレから誘導されてやってきました

C# expressを使用しています

フォームにTopMost=Trueを設定し、最前面に表示させながらフォームは決して
アクティブウィンドウにならないようにしたいのですが、どのような方法がスマートなのでしょうか?
マウスクリックは透過させているのですが、フォームの位置やサイズを変更すると
勝手にアクティブになってしまい困っています
619デフォルトの名無しさん:2012/10/18(木) 18:52:13.46
>>618
>C++スレから誘導されてやってきました
C++やってたけどC#は初心者ってこと?
見下しに来たと思われるからこういう余計なことは書かないほうがいいんじゃね

C++ならこうなんけど、みたいな返され方すると不愉快だから答えるのやめとくわ
620デフォルトの名無しさん:2012/10/18(木) 18:54:09.52
C++スレなら快く答えてくれるんだけどC#スレじゃこれが限界か。残念です
621デフォルトの名無しさん:2012/10/18(木) 18:55:55.90
ビンゴ
相手にしなくて正解だったな
622618:2012/10/18(木) 18:59:21.86
>>620は私ではありません
623デフォルトの名無しさん:2012/10/18(木) 19:02:15.55
>>619
いえ、マルチポストとならないようにの決まり文句で深い意味はありません
624デフォルトの名無しさん:2012/10/18(木) 19:04:33.66
判決。>>619が一番の屑
625デフォルトの名無しさん:2012/10/18(木) 19:05:06.47
フォームの移動やサイズ変更を禁止すればいいんじゃない
626デフォルトの名無しさん:2012/10/18(木) 19:05:29.05
>>618
ググッたらあったぞ
http://blog.ishitoya.info/entry/20080304/1204640570

>>619
http://toro.2ch.net/test/read.cgi/tech/1342285511/58-59n
これだろ、どう見てもスレ間違っただけ
>>620
句点が騙り臭ぇ
627デフォルトの名無しさん:2012/10/18(木) 19:05:58.61
ここは2ch初心者の巣窟
マルチポストなんて知らねーよ
628デフォルトの名無しさん:2012/10/18(木) 19:09:50.91
無駄にさわるから馬鹿が調子に乗ってんぞ
629デフォルトの名無しさん:2012/10/18(木) 19:13:10.72
嬉しそうに書き込みが増えてかわいいな
630デフォルトの名無しさん:2012/10/18(木) 19:14:08.74
>>618
WM_MOUSEACTIVATE でなく WM_ACTIVATEしか来ない場合は
SetForegroundWindow(m.LParam) で
元アクティブを再度アクティブにする必要があるかもしれない
631デフォルトの名無しさん:2012/10/18(木) 19:14:45.13
ちょっと確認なんだけど、
以下のようにしたほうがコストは低いよね?

(仕様)
・長い文字列を渡して解析結果を受け取る
・引数に渡す文字列は変更しない

var source = "長い文字列";

private string AnalyzeHoge(string source)
{
  //なにかの処理
}

より

private string AnalyzeHoge(ref string source)
{
  //なにかの処理
}

のほうがコピーしないからコストは低いはず。
元のソース部分の変更されない担保はできないけど・・・
632デフォルトの名無しさん:2012/10/18(木) 19:20:52.35
>>631
refじゃ仕様に合わないじゃん
633デフォルトの名無しさん:2012/10/18(木) 19:23:15.86
out
634631:2012/10/18(木) 19:25:21.94
>>632

すいません。2の「引数に渡す文字列は変更しない」とありますが、
実際は自クラスの中でしかそのメソッドは使用しないので変更することはありません。

※ただ、C++みたいに引数にconstでもつけれたら・・・少しは安心なのになー程度です。

なので、文字列の変更については加味せず、コストの面だけ見ていただいたらと・・・
635デフォルトの名無しさん:2012/10/18(木) 19:25:41.29
>>631
stringなどのclass(≠struct)型の場合は
中身がコピーされるわけでなく参照だけが渡されるからコストは同じ
むしろ最適化の関係で前者の方が多分低コスト
636デフォルトの名無しさん:2012/10/18(木) 19:25:53.74
>>626
ありがとうございます
WS_EX_TRANSPARENTにてマウスは透過させているのですが、BringToFront()にて
最前面に持ってこようとすると、SetForegorundWindow()みたいにアクティブ化されてしまいます
うろ覚えですがTopMoustと併用するとバグで期待通りの動作がしないってのはこの件だったのでしょうか?

>>630
現在のところそのように対処しているのですが、何か気をつけなければならない点などありますか?
こちらで確認したところ画面のチラツキとか目に見える問題は無いようでしたので
このまま実装しようかと考えています
637デフォルトの名無しさん:2012/10/18(木) 19:29:25.44
>>636
自分でやってみたわけでないので
他の問題は特に知らない
638631:2012/10/18(木) 19:29:38.32
>>635

なるほどです!stringの場合にメソッド内で変更しても元の文字列は
変更されていないので引数で渡すときに文字列をコピーして渡している
と思っていました。

と言うことはStringの場合はメソッド内で使われるときに初めてコピー
するということなのでしょうか?
639デフォルトの名無しさん:2012/10/18(木) 19:37:09.39
>>636
>WS_EX_TRANSPARENTにてマウスは透過させているのですが、BringToFront()にて
>最前面に持ってこようとすると、SetForegorundWindow()みたいにアクティブ化されてしまいます
>うろ覚えですがTopMoustと併用するとバグで期待通りの動作がしないってのはこの件だったのでしょうか?
この辺が再現できるソースをだせ

再現するソースを書かせる気か?
640デフォルトの名無しさん:2012/10/18(木) 19:42:22.44
>>638
Stringは不変、インスタンスそのものは変更されず
新しい文字列を作った場合は、別のインスタンスが作られるだけ

//C#
String a = "a";
String b = "b";
a += b;
...

 ↓

//C++
std::string* a = new std::string("a");
std::string* b = new std::string("b");
{
 std::string* tmp = new std::string(*a + *b);
 delete a;
 a = tmp;
}
...
delete b;
delete a;
641デフォルトの名無しさん:2012/10/18(木) 20:10:39.60
windowsフォームアプリケーションで
Form1 form = new Form1();をループでまわして
一度に50個ぐらいフォームを作りたいんですが
20数個目で止まってしまいます。
なぜでしょうか?
642デフォルトの名無しさん:2012/10/18(木) 20:14:00.01
まず30回死ね
643デフォルトの名無しさん:2012/10/18(木) 20:16:53.50
はあああああああああああああああああああああああああああああああ
644デフォルトの名無しさん:2012/10/18(木) 20:40:11.34
    03秒 (CAP) フォームそんなに作るな
    04秒    枯渇するから [ヒューリスティック検知警報音 2秒間]
    05秒 (COP) はい 少しだけ作ります
    11秒 (CAP) 作るな
    12秒 (COP) 20個目出来上がった
645デフォルトの名無しさん:2012/10/18(木) 21:39:29.84
どーんと行こうや
646デフォルトの名無しさん:2012/10/19(金) 13:11:45.37
>>641はウイルス犯
647641:2012/10/19(金) 14:41:01.25
自己解決しました
500個以上開けるようになりました
ありがとうございました。
648デフォルトの名無しさん:2012/10/19(金) 14:42:50.90
ウイルス 完 成
649デフォルトの名無しさん:2012/10/19(金) 17:58:04.45
ソフトのプラグインを作るのに、クラスライブラリで作成しているんですが、
フォームの内容をデザイナーを使わずに手書きしたときに、フォームのプレビューをするにはどうしたらいいでしょうか
650デフォルトの名無しさん:2012/10/19(金) 18:06:01.88
不可能
カスタムコントロールとして作ってフォームに貼るとかすればデザイナ使えるから
再利用性とか考えても直接フォームとして作らないでそうやるのがおすすめ
651デフォルトの名無しさん:2012/10/19(金) 19:29:48.65
独自のイベントを動的に追加したコントロールをFlowLayoutPanelに追加しているのですが
FlowLayoutPanel.Controls.Clear()をするときに追加したイベントを削除するべきですか?
652デフォルトの名無しさん:2012/10/19(金) 20:08:09.70
もちろんYes
653デフォルトの名無しさん:2012/10/19(金) 20:51:59.54
削除するのはなぜなのでしょうか?
理由をぐぐってみてもそれらしいのが見つからないです
654デフォルトの名無しさん:2012/10/19(金) 20:57:57.92
じゃあNoで
655デフォルトの名無しさん:2012/10/19(金) 21:47:13.40
コントロールにイベントを追加した場合、
一般的にはコンテナ←コントロール の方向で参照が発生することが多い。
コントロールがイベントハンドラを通じてコンテナへの参照を保持する。
ctrl.SomeEvent += container.someMethod;
コンテナの寿命の方が長い場合はイベントの削除を考えなくてよい。

ただし静的なイベントの場合は例外。
656デフォルトの名無しさん:2012/10/19(金) 22:36:05.12
>>655
なるほど、確かにイベントが追加されたままだと参照先がなくてもイベントが発生してしまいますね
参照を保持しているとGCが効かずににメモリ上にあるということですか?
これが問題になるのなら、動的かどうか、コントロールか否かに関係なく
例えばオブジェクト同士であっても削除しないとだめみたいですね
657デフォルトの名無しさん:2012/10/19(金) 22:43:00.86
イベントを動的に追加とか何言ってるのかそもそも分からんw
658デフォルトの名無しさん:2012/10/19(金) 23:28:04.25
内部的にComponent.Eventsへ追加しているから間違いとは言えない
659デフォルトの名無しさん:2012/10/20(土) 13:13:02.61
>>656
イベントが相手の参照持ちっぱなしにしてる状態だから「参照がなくても」ってのは間違い。
660デフォルトの名無しさん:2012/10/20(土) 13:20:20.19
コントロールへの参照をClearで外してるのにイベント削除してなんか意味あんのか?
661デフォルトの名無しさん:2012/10/20(土) 14:07:13.66
コントロール側がアホで死後もイベント送り続けてくる場合の対策では
662デフォルトの名無しさん:2012/10/20(土) 15:56:51.23
tabcontrolの上にDataGridViewを表示して切り替えるプログラムを作っています。
この時tabcontrolの一枚一枚にDataGridViewを配置するものでしょうか。
それともDataGridViewは一つだけ置いておいて、データソースのみ入れ替える方が
普通でしょうか。
663デフォルトの名無しさん:2012/10/20(土) 16:40:18.56
1つのほうが作るのも楽
664デフォルトの名無しさん:2012/10/20(土) 16:52:01.92
やくにたたねー糞スレだな
665デフォルトの名無しさん:2012/10/20(土) 17:07:14.35
はい
666デフォルトの名無しさん:2012/10/20(土) 17:15:17.50
タブ使うならタブごとに配置するもんじゃねえの
667デフォルトの名無しさん:2012/10/20(土) 17:32:01.02
迷うような用途ならたぶんTabControlを使うことそのものが不正解。

VB6にはページごとにコンテナを持たないタブもあったけど、
最近はタブをそういう風に使ってるソフトってほとんど見ない気がする。

RadioButtonをボタン表示にして使うとかの方がいいんじゃないの?
668デフォルトの名無しさん:2012/10/20(土) 17:48:34.99
俺はFlowLyaoutPanelをタブボタン代わりにしてる
タブコントロールは多段になると順番変わるから嫌なんだよ
669デフォルトの名無しさん:2012/10/20(土) 17:50:01.24
質問の仕方が糞
もっと具体的に書けボケナス
670デフォルトの名無しさん:2012/10/20(土) 18:29:33.26
初心者に嫌がらせしなければいけないほど、お前の人生って終わっているんだね
671デフォルトの名無しさん:2012/10/20(土) 18:45:42.36
終わってる人間が調子に乗るので初心者は他で質問しましょう
672デフォルトの名無しさん:2012/10/20(土) 19:41:37.01
他のクラスからFormのtextboxの値を使うことって出来ないの?
673デフォルトの名無しさん:2012/10/20(土) 19:42:45.98
できるよ
674デフォルトの名無しさん:2012/10/20(土) 19:43:05.80
参照を辿れているのならできないはずが無い
参照を辿れていないならできるはずが無い
675デフォルトの名無しさん:2012/10/20(土) 19:46:22.33
とんちみたいな言い方するな
676デフォルトの名無しさん:2012/10/20(土) 19:48:18.23
参照を教えてやれば使える
677デフォルトの名無しさん:2012/10/20(土) 19:57:35.47
そのやり方を聞いているんだよバカチン
678デフォルトの名無しさん:2012/10/20(土) 19:58:12.74
参照を教えてやればいい
679デフォルトの名無しさん:2012/10/20(土) 20:03:06.59
だめだこれ、壊れた九官鳥ですわ
680デフォルトの名無しさん:2012/10/20(土) 20:03:12.26
そうざんしょ
681デフォルトの名無しさん:2012/10/20(土) 20:04:33.24
ひとつのプロジェクトにはmainは一つだけしか入れられないと思いますが,
ファイル単位での実行とimportされたときの実行をわけることってできませんか?
例えばpythonならif __name__ == '__main__'と書くことで
スクリプトファイルとして実行されるときとimportされた時の実行の範囲を決められるのですが
682デフォルトの名無しさん:2012/10/20(土) 20:08:55.46
どういう操作を想定してるのか全然分からない
exeをどこからか参照の追加で使いたいのか?
683デフォルトの名無しさん:2012/10/20(土) 20:13:03.94
Application.ExecutablePathとかで現在の実行パスをみれば判別できるっしょ
684デフォルトの名無しさん:2012/10/20(土) 20:17:20.19
>>672
class Form1
{
 ...
 public string TextBoxText
 {
  get
  {
   return this.textBox1.Text;
  }
 }
}

---------------

使い方
Form1 form = new Form1();
...
string textBoxText = form.TextBoxText;
685デフォルトの名無しさん:2012/10/20(土) 20:20:10.90
>>681
ソリューションにプロジェクトを複数入れればいいよ
686デフォルトの名無しさん:2012/10/20(土) 20:46:50.94
>>685
今までLLしかやっておらずC#の作法はよくわからないのですが
1スクリプト = 1プロジェクト
という考えでいいのですか?
687デフォルトの名無しさん:2012/10/20(土) 20:47:56.87
んなわけあるかい
688デフォルトの名無しさん:2012/10/20(土) 20:50:06.66
>>686
オープンソース探してみたほうが早いよ
689デフォルトの名無しさん:2012/10/20(土) 21:01:20.88
[DllImport("user32.dll")]
長くなるので先にコードだけ投稿します
public static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
public static extern IntPtr GetFocus();
[DllImport("user32.dll")]
extern static bool AttachThreadInput(int idAttach, int idAttachTo, bool fAttach);
[DllImport("user32.dll")]
public static extern int GetWindowThreadProcessId(IntPtr hWnd, out int lpdwProcessId);
[DllImport("kernel32.dll")]
public static extern int GetCurrentThreadId();
[DllImport("Imm32.dll")]
public static extern IntPtr ImmGetContext(IntPtr hWnd);
[DllImport("Imm32.dll")]
public static extern bool ImmGetOpenStatus(IntPtr hIMC);
[DllImport("Imm32.dll")]
public static extern bool ImmReleaseContext(IntPtr hWnd, IntPtr hIMC);

void timer_Tick(object sender, EventArgs e)
{
 int activeId;
 activeId = GetWindowThreadProcessId(GetForegroundWindow(), out activeId);
 if (AttachThreadInput(GetCurrentThreadId(), activeId, true))
 {
  IntPtr hWnd = GetFocus();
  var hIMC = ImmGetContext(hWnd);
  var status = ImmGetOpenStatus(hIMC);
  Console.WriteLine(status + " " + hIMC + " " + hWnd + " " + GetCurrentThreadId());
  ImmReleaseContext(hWnd, hIMC);
  AttachThreadInput(GetCurrentThreadId(), activeId, false);
 }
}
690デフォルトの名無しさん:2012/10/20(土) 21:01:54.01
ここに張って
http://ideone.com/
691デフォルトの名無しさん:2012/10/20(土) 21:02:20.31
アクティブなウィンドウのIMEのOn/Offの状態を知りたくて上記のようなコードを書きました
しかし、常にhIMCが0でImmGetContextが失敗しているようです(エラーはでないのですが)
hWndには各ウィンドウをクリックするたびに違うIDが入ってくるので、アタッチやアクティブなIDの取得までは成功しているようです
原因が分かる方いましたら、教えてください

参考にしたサイト
http://www.geocities.co.jp/siliconvalley/4805/vbtips/vbtips076.htm
http://hp.vector.co.jp/authors/VA023367/neartech/vb/1.html
692デフォルトの名無しさん:2012/10/20(土) 21:03:12.79
>>683
ApplicationはFormsのクラス
汎用性を求めるならAssembly.GetEntryAssembly
693デフォルトの名無しさん:2012/10/20(土) 21:03:57.81
>>690
便利なサイトがあるのですね
今回は>>689だけで終わりなので次回から使わせてもらいます、すみません
694デフォルトの名無しさん:2012/10/20(土) 21:10:29.34
>>691
IMMって古いんじゃなかったっけ?
http://nyaruru.hatenablog.com/entry/20070308/p1
695デフォルトの名無しさん:2012/10/20(土) 21:14:41.13
http://www.kanazawa-net.ne.jp/~pmansato/net/net_tech_ime.htm
>Windows Vista になってから IME の動作がおかしいとの
>記述をたくさん見ることができますが、実は Windows Vista
>の IME は TSF のラップでしかないことにトラブルの原因があるようです。
>ラップとは従来の IME 関係の API 関数を呼び出すと、
>TSF の該当する機能を呼び出すという意味です。
>もはや IME ではなく、TSF を使えという意味なのでしょうか。
>たとえば、次のトピックで扱う「入力した漢字のふりがなを
>取得する」ときに、ImmGetConversionList 関数を
>呼び出している人がいるようですが、Windows Vista
>でこの関数を呼び出してもエラーにはならないものの
>正常には動作しません。
TSFを使いましょう
696デフォルトの名無しさん:2012/10/20(土) 21:17:40.19
TSF、ですか
普段こっち方面の開発はしないので初耳でした
調べてみます
ありがとうございました
697デフォルトの名無しさん:2012/10/20(土) 21:33:04.29
CodeMaid便利だな
698デフォルトの名無しさん:2012/10/20(土) 22:38:31.06
Windows7でもImmはちゃんと動いている。キミのコードが正しく動かないのは
他プロセスのステータスを取得しようとしているから。
他プロセスの状態を取得するなんてことは考えない方がいい。
699662:2012/10/21(日) 01:11:36.88
>>663,666,667,668
返信ありがとうございます。

言われてみるとTabControlは違うような気がしてきました。
別のコントロールによる切り替えを検討してみます。
700デフォルトの名無しさん:2012/10/21(日) 02:33:35.79
ふらっとC#,C♯,C#(初心者用) Part92
http://anago.2ch.net/test/read.cgi/software/1335443552/
701デフォルトの名無しさん:2012/10/21(日) 08:38:46.76
sharpdx使ってる人います?
sharpdxってC#から.net framework以外のランタイム入れずに
DirectXが使えるんでしょうか?
702デフォルトの名無しさん:2012/10/21(日) 10:37:34.15
そんなことでつまずいてて使いこなせるんか
703デフォルトの名無しさん:2012/10/21(日) 11:39:41.42
>>701
ほとんど人いないけど、こっちに誘導しとく

SlimDXについて語ろうぜ
ttp://toro.2ch.net/test/read.cgi/gamedev/1264902081/
704デフォルトの名無しさん:2012/10/21(日) 11:49:35.20
SlimDxはXパッドの入力が正しくないから捨てた
705デフォルトの名無しさん:2012/10/21(日) 12:36:28.19
最近プログラミングはじめたけど、色々自動化できてたのしいです
706デフォルトの名無しさん:2012/10/21(日) 12:46:58.92
>>705
例えば?
707デフォルトの名無しさん:2012/10/21(日) 13:30:53.48
例えば予め作っていおいたフォーマットで二分以内にレスするとか
708デフォルトの名無しさん:2012/10/21(日) 13:35:30.03
2秒以内だろ
709デフォルトの名無しさん:2012/10/21(日) 15:02:21.59
しかも遠隔操作で
710デフォルトの名無しさん:2012/10/21(日) 22:25:18.27
http://d.hatena.ne.jp/d-kami/20090705/1246826888
みなさんこの方法でデスクトップに文字表示されますか?
自分の環境(Windows7 64bit マルチモニタ)ではエラーなく動いたのですが、文字が表示されませんでした
背景の色は変えてみたので文字が見えなかったということはないと思います
何か原因分かりますか?
711デフォルトの名無しさん:2012/10/21(日) 22:29:01.98
>>710
windowsXPとその後ではOSのGUI周りの挙動が変わってるので
おそらくその方法だとwindowsXPだと表示されるけど・・・ってところかもね
712デフォルトの名無しさん:2012/10/21(日) 22:29:31.18
動かしてないけどフォント名半角になってるのが気になる
713デフォルトの名無しさん:2012/10/21(日) 22:31:20.44
>>712
それは修正してあるんじゃないの?
確かフォントねーよって例外が起きるはず
714デフォルトの名無しさん:2012/10/21(日) 22:44:21.19
フォントは色々変えてみましたがダメでした

>>711
そうなんですか
別の方法探してみます
ありがとうございました
715デフォルトの名無しさん:2012/10/21(日) 22:53:15.71
レイヤードウインドウっていうのがあるよ
716デフォルトの名無しさん:2012/10/22(月) 07:47:28.41
北朝鮮は19日、同国を批判するビラが韓国の領土から北朝鮮国内に散布された場合、韓国を砲撃すると警告した。

国営の朝鮮中央通信社(KCNA)が報じた。

韓国では、北朝鮮からの亡命者や人権活動家で構成するグループが
北朝鮮政府を批判するビラの散布を22日に計画している。

KCNAによると、北朝鮮は22日にビラが散布された場合、「予告なしに軍事攻撃を行う」と表明。
韓国との軍事境界線がある非武装地帯(DMZ)に近い観光地パジュを標的とすると明らかにした。

これを受け、韓国の金寛鎮国防相は19日、北朝鮮が韓国を攻撃した場合には反撃する方針を示した。
聯合ニュースが議会委員会での同相の発言として伝えた。

金国防相は「それが起きた場合は、攻撃への完全な対応を行う」と述べた。

韓国政府はビラの散布に関与していない。

北朝鮮の報道を受け、グループのリーダーは計画を変更せずに予定通り現地時間
22日午前11時半(0230GMT)に気球からビラを散布する意向を示した。

http://jp.reuters.com/article/JPNKorea/idJPTYE89I03Y20121019
717デフォルトの名無しさん:2012/10/22(月) 15:10:18.49
>>701
SharpDXって確か公式のドキュメントみたいなものが
皆無なんだよな
718デフォルトの名無しさん:2012/10/22(月) 16:04:28.20
フォントを変えるとListView等のコントロールの表示速度が
Meiryo UI 早い Segoe UI 遅い のですが
OSが日本語仕様のせいでしょうか?
それともどの国のOSでも同じでしょうか?
719デフォルトの名無しさん:2012/10/22(月) 16:10:31.67
http://www.natzworks.com/digital/2010/454.html
>Segoe UI は英字フォントのため、ファイル名やフォルダー名の日本語部分には、メイリオが使われる。
こんな記述があったので同じフォントを描画の際に使い続けられる場合と
英字と日本語で切り替える場合では実行速度は違うってことじゃないの?
日本語なしでやってみなよ
720デフォルトの名無しさん:2012/10/22(月) 16:22:37.64
メイリオでアプリ作ったら、メイリオが入ってないパソコンだとエラー出る?
721デフォルトの名無しさん:2012/10/22(月) 16:56:21.24
出るわけないだろjk
722デフォルトの名無しさん:2012/10/22(月) 17:00:27.80
間違ってると文句言われるけど、あってるフォントがない場合は
文句言わないでデフォルトフォントになるんじゃなかったっけ?
723デフォルトの名無しさん:2012/10/22(月) 17:28:07.88
条件に一番近いのが選ばれる
724デフォルトの名無しさん:2012/10/22(月) 17:31:23.92
wpfでプログラムしてますです。

テキストボックスとボタンのペアが並んでるアプリを作ってます。

----
[テキストボックス 1] 〔ボタン1〕
[テキストボックス 2] 〔ボタン2〕
[テキストボックス 3] 〔ボタン3〕
----

[テキストボックス 1]にフォーカスがある時、Enterを押すと、〔ボタン1〕を実行し、
[テキストボックス 2]にフォーカスがある時、Enterを押すと、〔ボタン2〕を実行し、
[テキストボックス 3]にフォーカスがある時、Enterを押すと、〔ボタン3〕を実行し、

……

このようなやり方はWindowsのUI的に標準的なやり方なのでしょうか?
もし、標準的なやり方であれば、どうやってやればいいでしょうか?

教えてくださいエロいひと


725デフォルトの名無しさん:2012/10/22(月) 18:09:55.52
Windows的にはフォーム1枚につきAcceptButton1つというのが基本だが
WebはSubmitが1ページに複数存在するのは普通だな
まあいいんでね?
726デフォルトの名無しさん:2012/10/22(月) 18:19:36.45
>>722
まじか、頭いいんだな
727デフォルトの名無しさん:2012/10/22(月) 18:30:43.47
>>719
日本語を含む文字列が原因だったみたいです。
ありがとうございました。
728デフォルトの名無しさん:2012/10/22(月) 20:50:03.25
いえいえ
729デフォルトの名無しさん:2012/10/22(月) 21:23:01.90
WinFormsの質問
ListViewのOnDrawColumnHeaderでヘッダを描画する場合に、DrawBackground()だけだとクリック時のへこみを描画できない
クリック時のヘッダ背景描画メソッドとかある?
それともDrawRectangleで影を書くみたいな方法しかない?(このやり方だと、Windowsのスタイル変更時が不安)
730デフォルトの名無しさん:2012/10/22(月) 21:44:57.13
DataGridViewを使おう
731デフォルトの名無しさん:2012/10/22(月) 22:07:11.95
Select文の結果をDataSetのDataTableに入れたいのですが、Selectで取得する項目が
動的に変わります。

こういう時、DataTableを作るには、コード上で一列一列作成していくしかないでしょうか。
Select文を元に一発で作る方法とかないでしょうか?
732デフォルトの名無しさん:2012/10/22(月) 22:14:12.23
DbDataAdapter.FillとかFillSchemaとかDbDataReader.GetSchemaTableとか
733デフォルトの名無しさん:2012/10/22(月) 23:06:32.07
>>732
ありがとうございます。
よくできてるなあ(しみじみ
734デフォルトの名無しさん:2012/10/23(火) 04:07:20.41
WebRequest/WebResponseクラスを使って
POSTメソッドによりフォームにデータを送信したいと考えています。
データの形式は「application/x-www-form-urlencoded」です。
formのinputタグの中身をname=value&…の形式でポストデータを作成するとき、
普通はsubmitの部分はsubmit=valueで含めないと思いますが
submitの部分をポストデータに含めないとうまくいかないサイトがあります。
何が原因で含めないとうまくいかないのでしょうか?
735デフォルトの名無しさん:2012/10/23(火) 04:50:25.75
サイトがその部分を見てるからだろう
736デフォルトの名無しさん:2012/10/23(火) 07:14:25.66
>>733
いえいえ
737デフォルトの名無しさん:2012/10/23(火) 13:05:49.68
setup.exeってよく見かけるのですが
何をやってるのでしょうか?

レジストリの設定、ソフトウェアのインストールをしているのでしょうか?
setup.exeの中に別のexeファイルいれて
それをインストールさせることは可能ですか?
教えてください
738デフォルトの名無しさん:2012/10/23(火) 13:11:54.79
C#と関係ないだろハゲ
739デフォルトの名無しさん:2012/10/23(火) 13:34:41.71
async/await便利すぎワロタ
ってかまじでC#最強だな、洗練されすぎててもう他の言語を使う気になれんわ
AndroidやるのにJavaやってると発狂しそうになる
740デフォルトの名無しさん:2012/10/23(火) 13:35:36.80
わかる
741デフォルトの名無しさん:2012/10/23(火) 13:58:08.70
助けて! ※1で作ったbitmapを 表示用にコピー(?) する時(※3)に
「指定されたパラメータが有効ではありません」とエラーがでます。
※1では作れたのに、※3ではエラーなのはなぜですかね?  解決方法を教えてください。

    private void button1_Click(object sender, EventArgs e)
    {
      Bitmap bitmap_out = new Bitmap(6376, 10805, System.Drawing.Imaging.PixelFormat.Format32bppArgb); //※1
      Bitmap bitmap_out2 = new Bitmap(6376, 10805, System.Drawing.Imaging.PixelFormat.Format32bppArgb); //※2
      Graphics graphics = Graphics.FromImage(bitmap_out);
      for (int i = 0; i < bitmap_out.Width; i += 10)
      {
        graphics.DrawLine(Pens.Black, i, 0, i, bitmap_out.Height);
      }
      if (this.pictureBox1.Image != null)
      {
        this.pictureBox1.Image.Dispose();
      }
      this.pictureBox1.Image = null;
      this.pictureBox1.Image = new Bitmap(bitmap_out); //※3 指定されたパラメータが有効ではありません
      graphics.Dispose();
      bitmap_out.Dispose();
    }
742741:2012/10/23(火) 14:04:15.10
>>741
※2 の行をコメント化すると ※3で アウトオブメモリー が出ます。
※2 をコメントにし、※1の 6376を 5376 にすると エラーが出ずに表示されます。

VS C# 2010 Expressです。

this.pictureBox1.Image = new Bitmap(bitmap_out);
とせずに、そのまま使用して Dispose() みたいなことができるといいのですが・・。
743デフォルトの名無しさん:2012/10/23(火) 14:04:21.63
疑問
・bitmap_out2は使われてないようだが・・・
・※3のところでなんでbitmap_outをベースにまたBitmapを作り直すようなコードを書いてるの?
744デフォルトの名無しさん:2012/10/23(火) 14:06:12.15
this.pictureBox1.Image = new Bitmap(bitmap_out);
これを
this.pictureBox1.Image = bitmap_out;
にして

bitmap_out.Dispose();
これを
//bitmap_out.Dispose();
でいいじゃん
745デフォルトの名無しさん:2012/10/23(火) 14:13:51.09
.netも一応ヒープとスタックの問題って存在するんだっけ?

>>741の場合
6376 x 10805 x 4byte = 275570720 (約263MB程度)
なのでいまどきのPCだとサイズ的には問題ないはずだが
アウトオブメモリー出るってことは・・・
746デフォルトの名無しさん:2012/10/23(火) 14:26:21.36
>this.pictureBox1.Image.Dispose();

これって問題ないんだっけ?
747デフォルトの名無しさん:2012/10/23(火) 14:30:11.45
>>745
32bitプロセスで260MBオーバーの連続したメモリを3つ確保するのは割と厳しい

>>746
次にOnPaintが走るまでにImageが差し替えられるなら問題ないはず
748デフォルトの名無しさん:2012/10/23(火) 14:30:57.39
たぶん
pictureBox.Imageは画像系オブジェクトの参照だから

Disposeはたぶんもってると思う

確か汎用なのでObjectかなにかになってたよね?
749デフォルトの名無しさん:2012/10/23(火) 14:33:58.43
      if (this.pictureBox1.Image != null)
      {
        this.pictureBox1.Image.Dispose();
      }
      this.pictureBox1.Image = null;
      this.pictureBox1.Image = bitmap_out;
    }
これで表示できました。
が、 >>741 の  ※2のコメントを外すと  Program.cs の
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());  //←ここでアウトオブメモリーが発生
}

タスクマネージャで test07.vshost.exe のメモリ使用量は 298.424K なので
大してメモリは使ってなさそうなのですが・・。
他のメモリを食いそうなアプリを起動してもしなくても状況は変わらずです。
750デフォルトの名無しさん:2012/10/23(火) 14:36:48.97
>>749
Form1.csのソース貼ってくれ
http://ideone.com/

自分では問題ないと思ってるとことでどうせ何かしでかしてるんだろうし
751デフォルトの名無しさん:2012/10/23(火) 14:39:06.19
IDEが悪さしてるみたいだね
IDEを終了してからexeだけ実行したら実行出来る
752デフォルトの名無しさん:2012/10/23(火) 14:43:33.75
IDEがーじゃなくてデバッグ向けと本番向けでうまくいくいかない
の差もあるんじゃないの?

でも部分的なコードでアプリが落ちるといわれても検証もできない以上は
あーそううですか・・・としか言えない
753デフォルトの名無しさん:2012/10/23(火) 14:44:55.42
実行したのはデバッグのexeだよ
754デフォルトの名無しさん:2012/10/23(火) 14:48:55.62
http://www.atmarkit.co.jp/fdotnet/dotnettips/410vshost/vshost.html
IDEが悪いじゃなくてxx.vshost.exeがそんな連続した巨大なメモリを
確保されることを想定してないってところかね?
755741 749:2012/10/23(火) 14:50:08.41
なんかコピペしたら変に改行が増えてしまいましたが。
http://ideone.com/RlQlN6

ちなみにnamespace がtest06で プロジェクトがtest07なのは
06で作成して保存しようと思ったら既にあると言われたので 07で保存したためです。

環境は C# 2010 Express 32bit XP  メモリ 2G です。


Dispose() が終わるまで処理を待機って 簡単に記述できそうなのか
現在 ↑これをググり中です。
756741 749:2012/10/23(火) 15:06:35.05
>>741 >>749 です。
プロジェクトプロパティの デバッグ-Release の
□ Visual Studio ホスティングプロセスを有効にする
のチェックを外してReleaseで実行したところ、エラー出ずに表示されました。
(ただ 数値を7000にすると やはりアウトオブメモリー)

チェックを付けたままReleaseで実行は デバッグ時と同様にエラーでした。
757デフォルトの名無しさん:2012/10/23(火) 16:03:46.85
NullReferenceExceptionが発生しました
758デフォルトの名無しさん:2012/10/23(火) 16:05:20.93
ぬるぽ
759デフォルトの名無しさん:2012/10/23(火) 16:55:17.77
DataGridViewで10×100のマスを作り、
その1000マスに入力された値をすべて外部ファイルへ保存して次回起動時も
表示されるようにしたいのですが、
どのようなやり方がスマートでしょうか。
760759:2012/10/23(火) 16:56:38.42
なお、DataGridViewに入力された値は処理に使用するので、
一旦変数を経由できるとありがたいです。
761デフォルトの名無しさん:2012/10/23(火) 17:37:42.01
>>759
ba-ka
762デフォルトの名無しさん:2012/10/23(火) 18:35:47.80
c#の正規表現のキャプチャしない書き方について教えてください
http://dobon.net/vb/dotnet/string/regex.html
上のサイトを見るとキャプチャしないグループの書き方は
(?:)と書いているのですが

(例)
href="hoge"

Regex(@"(?:href).*");
としてもhrefがキャプチャされてしまいます。

なぜでしょうか?
763デフォルトの名無しさん:2012/10/23(火) 18:44:58.42
>>762
baka ni ha muri
764デフォルトの名無しさん:2012/10/23(火) 19:00:36.80
>>762
どうぞ

正規表現道場 Part2
http://kohada.2ch.net/test/read.cgi/php/1348048723/

perl5互換です

ってコメント添えておけばいいよ
765デフォルトの名無しさん:2012/10/23(火) 19:13:27.76
>>9
はてなブックーマークをインストールし、C#関連の記事をブックマークする
ブックマーク件数が3件ぐらいから新着コンピューターITに載り始める

はてぶ
http://b.hatena.ne.jp/guide

このスレにブックマークさせたいC#記事のURLを貼り組織票を集める
766デフォルトの名無しさん:2012/10/23(火) 19:19:49.65
>>762
> Regex(@"(?:href).*");
> としてもhrefがキャプチャされてしまいます。
.*を別にグループ化してそれを取得すれば
767デフォルトの名無しさん:2012/10/23(火) 19:21:25.50
ブクマ乞食がこんなスレにまで
768デフォルトの名無しさん:2012/10/23(火) 19:21:33.70
どうせ過疎ってんだから誘導しないで答えてやれよ
わからないんだったら仕方ないけど
769デフォルトの名無しさん:2012/10/23(火) 19:22:20.56
以前ちょろっとやったきりでめんどくさいから誘導してるんだよw
770デフォルトの名無しさん:2012/10/23(火) 19:31:46.83
今PCの再構築中でIDE入ってないから>>762のところの
正規表現チェックツールあったの思い出したので使わせてもらった

よくわからないときは複数グループで切り刻めばいい


(href=")([^\s ]+)(")

これで
771デフォルトの名無しさん:2012/10/23(火) 19:34:07.37
あのチェックツール使えないよ
エラーで落ちまくりでチェックしてられない
自分で作ったほうが早い
772デフォルトの名無しさん:2012/10/23(火) 19:52:36.06
ここにいる人たちは正規表現はあまり使わないようですね
773デフォルトの名無しさん:2012/10/23(火) 19:54:03.64
日常的に使わないなあ

ほしい機能として入れちゃうとその後は触ることってほとんどないし
774デフォルトの名無しさん:2012/10/23(火) 20:09:05.22
C# ,NETで簡易ブラウザを作ったりhtmlを取得したりすることが簡単にできることが分かっているのですが
その取得したhtmlをテキスト処理を通じて解釈することはできますか
通常ならperlやらを使ってやるようなことですが、C#でもそう難しくないのかどうかを知りたいです。

具体的には、htmlを読み出す→そこから画像データを示すタグを抽出
→画像データを例えばそのときの時間の名前をつけて保存する (第1目標)
→それを1時間あるいは1日ごとに繰り返す(第2目標)
775デフォルトの名無しさん:2012/10/23(火) 20:11:15.31
>>774
余裕すぎるよ
776デフォルトの名無しさん:2012/10/23(火) 20:11:48.10
>>774
やり方は教えないけど、できる
777デフォルトの名無しさん:2012/10/23(火) 20:14:24.47
>>776
ケチ。4ね。
778デフォルトの名無しさん:2012/10/23(火) 20:14:33.46
>>774
webbrowserを内部で使えば簡単だよ
779デフォルトの名無しさん:2012/10/23(火) 20:30:30.62
>>775>>776>>778
サンクスです
メインの言語をどこに据えるか悩んでましたが
C#をがっつり勉強することにしました
780デフォルトの名無しさん:2012/10/23(火) 20:37:56.56
>>779
C#がっつりやっとけば
間違いないよ
781デフォルトの名無しさん:2012/10/23(火) 20:47:13.76
質問です。

visual basicのソースコードを開くと、下の警告欄に
「参照コンポーネント 'mscomctl' が見つかりませんでした。」
「タイプ ライブラリ "mscomctl" のラッパー アセンブリが見つかりません。」
と出てきて、ビルドを行おうとしても出来ませんでした。

どうすれば良いのでしょうか。

よろしくお願いします。m(__)m
782デフォルトの名無しさん:2012/10/23(火) 20:56:44.87
もしかしてXmlSerializerでEncodingプロパティをシリアライズできない?
5,6時間悩んでいるんだけどInvalidOperationExceptionがちょうどEncodingプロパティで出てどうにもならない
783デフォルトの名無しさん:2012/10/23(火) 20:59:51.27


            , '´  ̄ ̄ ` 、
          i r-ー-┬-‐、i
           | |,,_   _,{|
          N| "゚'` {"゚`lリ     ソース張らないか http://ideone.com/
             ト.i   ,__''_  !
          /i/ l\ ー .イ|、
    ,.、-  ̄/  | l   ̄ / | |` ┬-、
    /  ヽ. /    ト-` 、ノ- |  l  l  ヽ.
  /    ∨     l   |!  |   `> |  i
  /     |`二^>  l.  |  | <__,|  |
_|      |.|-<    \ i / ,イ____!/ \
  .|     {.|  ` - 、 ,.---ァ^! |    | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄l
__{   ___|└―ー/  ̄´ |ヽ |___ノ____________|
  }/ -= ヽ__ - 'ヽ   -‐ ,r'゙   l                  |
__f゙// ̄ ̄     _ -'     |_____ ,. -  ̄ \____|
  | |  -  ̄   /   |     _ | ̄ ̄ ̄ ̄ /       \  ̄|
___`\ __ /    _l - ̄  l___ /   , /     ヽi___.|
 ̄ ̄ ̄    |    _ 二 =〒  ̄  } ̄ /     l |      ! ̄ ̄|
_______l       -ヾ ̄  l/         l|       |___|
784515:2012/10/23(火) 21:02:50.86
http://www.vector.co.jp/soft/dl/winnt/prog/se278126.htmlのようなデバッグモニタツールがありますが
C#でOutputDebugStringを取得して表示させる方法が分かりません
どなたかアドバイスお願いします
785デフォルトの名無しさん:2012/10/23(火) 21:14:23.24
唐辛子は紀元前から朝鮮半島に存在した 唐辛子の起源は… 朝鮮日報が主張
http://engawa.2ch.net/test/read.cgi/poverty/1350992949/


韓国がまたぞろ妄言。

ワサビに続いて、今度は唐辛子を南米ではなく、韓国が起源だと唱え始めた。

朝鮮日報が「唐辛子は紀元前から朝鮮半島に存在した!」と記事を掲載。

どうやら、韓国人のソウル・フードであるキムチの材料になる唐辛子が
南米のインカやマヤ、アステカが原産では都合が悪いための歴史捏造のようだ。

もはや、「何をかいわん」状態なのだ。

http://www.excite.co.jp/News/column_g/20121020/Taishu_bnews367.html
786デフォルトの名無しさん:2012/10/23(火) 21:22:15.41
ネトウヨ脳の恐怖、まで読んだ。
787デフォルトの名無しさん:2012/10/23(火) 23:02:11.24
graphics.DrawRectangle(new Pen(Color.Gray, 1f), 0, 0, 100, 100);

こんな感じでただの四角を書くだけのことをやってるんですが、DrawRectangleって指定したサイズより大きく表示されるんですかね?
101x101の大きさの太さが1の線の四角形が表示されてしまうですが
788デフォルトの名無しさん:2012/10/23(火) 23:11:52.31
バウンディングボックス分でしょ。
通常、幅と高さは-1するが吉。
789デフォルトの名無しさん:2012/10/23(火) 23:13:58.92
>>787
引数が座標と幅や高さで扱いが変わるからそれで判断してね
790デフォルトの名無しさん:2012/10/23(火) 23:26:23.80
>>787
(0, 0)と(1, 1)の二つのピクセルを対角線とする矩形の大きさは、2x2ですよw
あとは帰納法で
791デフォルトの名無しさん:2012/10/23(火) 23:29:19.40
と思ったが、DrawRectangeが引数に取るのは矩形の幅と高さかw
ここにちょっとだけ解説があるね
http://msdn.microsoft.com/ja-jp/library/dd297678.aspx
792デフォルトの名無しさん:2012/10/23(火) 23:32:46.07
大きさ100pxの四角形に太さ1pxの枠線だから0.5+100+0.5=101なのでは
793デフォルトの名無しさん:2012/10/23(火) 23:32:49.03
危ない危ない
納得してしまっていた
794デフォルトの名無しさん:2012/10/23(火) 23:33:42.51
どういう挙動するか実際やってみればいいだろw
100x100のbitmap作って描画するとかさw
795デフォルトの名無しさん:2012/10/23(火) 23:34:20.76
どうやって101*101って分かったのか気になるな
数えたのか?
796デフォルトの名無しさん:2012/10/23(火) 23:40:52.27
うん
797デフォルトの名無しさん:2012/10/24(水) 00:26:26.72
webbrowserでいくつものサイトを自動で巡回して
htmlの情報を取得したい時に
ページの読み込み完了の判定ってどのようにやればよろしいですか?
798デフォルトの名無しさん:2012/10/24(水) 00:33:00.66
Navigatingでいくつ処理するかカウントして
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.webbrowser.navigating%28v=vs.80%29.aspx
NavigatedもしくはDocumentCompletedで終わった数を調べる
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.webbrowser.navigated%28v=vs.80%29.aspx

めんどくさいやって場合は
IsBusyを定期的にチェックして処理が終わったら次をやるとか
799デフォルトの名無しさん:2012/10/24(水) 00:34:48.38
>>798
どっちの方が早いですか?
800デフォルトの名無しさん:2012/10/24(水) 00:35:58.75
違いはないでしょw
ネットワーク経由で情報を取ってくる以上は
サーバーなどの送信次第
801デフォルトの名無しさん:2012/10/24(水) 00:42:50.59
こちらのブログに
http://yandyle.blog121.fc2.com/blog-entry-543.html

IsBusyは当てにならないと書いているのですがそうなのでしょうか?

///ページが読み込まれたら読み込みフラグをtrueにしておく
void BrowserTest_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
m_CompletedFlg = true;
}

//(1)読み込みフラグを一旦falseにする
m_CompletedFlg = false;

//(2)ログインページに移動
BrowserTest.Navigate("https://login.yahoo.co.jp/config/login?.src=www&.done=http://www.yahoo.co.jp");

//(3)ログインページの読み込みが終わるまで待つ
while (m_CompletedFlg == false)
//while (BrowserTest.ReadyState != WebBrowserReadyState.Complete || BrowserTest.IsBusy == true)
{
Application.DoEvents();
}

このようにした方がいいんですかね?
802デフォルトの名無しさん:2012/10/24(水) 00:44:44.82
>>782
Encodingにデフォルトコンストラクタが存在しないって時点で
803デフォルトの名無しさん:2012/10/24(水) 00:46:51.82
>>569にその辺のイベントを使ったコードがあるのでそれを参考にして
804デフォルトの名無しさん:2012/10/24(水) 01:23:37.54
805デフォルトの名無しさん:2012/10/24(水) 01:29:56.33
Encoding作る時の文字列だけシリアライズしとけばええが
806デフォルトの名無しさん:2012/10/24(水) 05:44:40.61
むしろコードページ番号じゃね
807デフォルトの名無しさん:2012/10/24(水) 06:17:15.14
>>782
失敗が再現できるコードを送れ
というかシリアライズできるのは自作クラスくらいじゃないの?
標準のクラスはたぶん例外でてできないはず
やろうとするならシリアライズ用のクラスにプロパティなどのコピーをとってからじゃないと
808デフォルトの名無しさん:2012/10/24(水) 08:00:48.21
クラス設計方法が未だによくわかりません。
以前作ったプログラムをの使う側のクラスを修正しようとすると、使われる側のクラスも大幅に修正しないといけないことがよくあります
その逆で使われる側を修正すると使う側まで修正するということがよくあります

クラスの設計について、どのように考えればいいのでしょうか?
809デフォルトの名無しさん:2012/10/24(水) 08:43:09.51
それはお互いのIFに依存してるのが問題なんだろう
IFを変更しなくてもいいように設計すればいい
IFを変更しなくてはならなくなるのはなぜか
途中で変数が増えただの手順が変わっただのするからである
途中で変数が増えたり手順が変わったりするのはなぜか
初めの見通しが間違っているからである
810デフォルトの名無しさん:2012/10/24(水) 10:02:03.34
表示させた玉を一定距離(300,300から500,300間)の間を移動させたいのですがどうすればいいですか?
811デフォルトの名無しさん:2012/10/24(水) 10:29:09.10
>>802
>>805
コンストラクタがなかったとは…
検索してもこういうことで悩んだという情報がないということは
みんなこういうのはすぐわかって文字列で保存しようと切り替えているのかな
無事解決しました。ありがとうございます
812デフォルトの名無しさん:2012/10/24(水) 10:32:37.54
>>810
ゲームループでググれ
813デフォルトの名無しさん:2012/10/24(水) 10:43:23.22
移動させたいだけならforループでもタイマーでも使って
一定間隔で座標を変更して再描画する

まじめにやりたいならWPF使うと幸せになれる可能性はなきにしもあらざるべけんや
814デフォルトの名無しさん:2012/10/24(水) 10:59:47.13
forループを使うんですね!
ありがとうございます!
815デフォルトの名無しさん:2012/10/24(水) 11:08:51.13
継承とインターフェース
意味わからない
816デフォルトの名無しさん:2012/10/24(水) 11:11:13.24
継承……クラスの機能を拡張したいときに
インターフェイス……これこれのメソッドは必ずもってますよという制約みたいなもん
817デフォルトの名無しさん:2012/10/24(水) 11:55:07.20
818デフォルトの名無しさん:2012/10/24(水) 12:02:05.30
>>817
うーん 色々難しそうです…
ありがとうございます
819デフォルトの名無しさん:2012/10/24(水) 13:07:43.00
TrackBarのようなコントロールで、二つの値を同時に扱えるコントロールは無いでしょうか?
820デフォルトの名無しさん:2012/10/24(水) 13:09:33.51
>>819
二つの値っていうのがわからん
821デフォルトの名無しさん:2012/10/24(水) 13:26:08.92
>>820
Valueが二つあるような物です
最小値と最大値をコントロールしたいのですが、TrackBarやscrollBarを二つ並べるのも見栄えが良く無いかなと
822デフォルトの名無しさん:2012/10/24(水) 13:28:18.69
自作すればいいんじゃね?

四角い枠の中をタップするとXYが取れるようなのがあればいいんでしょ?
823デフォルトの名無しさん:2012/10/24(水) 13:34:58.59
適当なとこクリックしたときの動作が直感的じゃなさそうだな
824デフォルトの名無しさん:2012/10/24(水) 13:39:14.47
ラベルを三つ使えば簡単
825デフォルトの名無しさん:2012/10/24(水) 13:50:49.27
素人はおとなしくあるもん使っとけ
副産物の処理で手に負えなくなるのがオチ
826デフォルトの名無しさん:2012/10/24(水) 13:53:29.99
それではステップアップできない。無理にでも自作すべき。
827デフォルトの名無しさん:2012/10/24(水) 13:55:39.20
まあ自作はやって見るべきだな

いきなり組み込みたいプロジェクトでやるんじゃなく
別のプロジェクト作ってそっちで単体実験すると
828デフォルトの名無しさん:2012/10/24(水) 13:57:35.53
PictureBoxで自作でもいいんだけどもね
e.Xの値を見るだけだし

AJAXならMultiHandleSliderがあるけど
http://www.atmarkit.co.jp/fdotnet/dotnettips/922aspajaxmultislider/aspajaxmultislider.html
829デフォルトの名無しさん:2012/10/24(水) 14:20:47.54
>>815
自分はこういう認識

◯継承は複数のクラスにたくさん機能をつけたいとき
継承はユーザーコントロールやFormを複数作るときにやったりする
インターフェイスで作るにはコード量が多すぎて面倒だから

◯インターフェイスは複数のクラスにちょっとだけ機能を足したい時
インターフェイスはA,B,C,Dという別々のクラスがあって、
それぞれからあるプロパティの値を取得したいなと思った場合
それぞれにインターフェイスをつけてやると同じ操作で取得できる

List<iHonmyo> list=new List<iHonmyo>();
list.Add((iHonmyo)a);
list.Add((iHonmyo)b);
foreach(iHonmyo h in list){}
830デフォルトの名無しさん:2012/10/24(水) 14:25:29.17
>>828
webbrowserを貼り付けてそれを流し込むかww
831デフォルトの名無しさん:2012/10/24(水) 14:35:13.55
SJIS、全角半角の混じった文字列の左に' 'を追加して固定長にしたいのですがどうすればいいですか?
832デフォルトの名無しさん:2012/10/24(水) 14:45:19.06
' '
これ何?
ちなみにS-JISを.netのテキスト系の読み込み機能使うと
usc-2っていう2バイトの内部文字コードに変換されるよ
stringもそうだし
833デフォルトの名無しさん:2012/10/24(水) 14:53:35.65
>>830
それやるなら自作の方が早くね?www
834デフォルトの名無しさん:2012/10/24(水) 16:30:58.90
単体exeよりWindowsサービスのほうがメリットってありますか?またはデメリットも
簡易WEBサーバみたいのを作り問題なく動いているのですがメリットがあるなら勉強がてらやりたいなと思い
835デフォルトの名無しさん:2012/10/24(水) 16:32:43.36
vs2010で他で作ったクラスを継承したい時って
どうやりゅの?
836デフォルトの名無しさん:2012/10/24(水) 16:32:47.20
int bb と string cc を持つクラス AA があります。

AA data1 = new AA();
: データを入れる

data1 を 文字の長さ順+intの降順にしたいのですが
どんな書き方をすればいいのでしょうか?
837デフォルトの名無しさん:2012/10/24(水) 16:39:30.69
>>834
まずコンソールアプリで作ってあとでサービスにすればいいよ。
838デフォルトの名無しさん:2012/10/24(水) 16:41:48.96
>>836
data1はただのintとstringもってるクラスじゃないか 並べ替えも何もないだろう
839836:2012/10/24(水) 16:52:33.12
AA[0].bb=1;
AA[0].cc="abc";
AA[1].bb=5;
AA[1].cc="de";
AA[1].bb=5;
AA[1].cc="xyz";

AA.sort(ccの長さ昇順,bbの降順);
AA.表示;

みたいなことをやりたいんです。
840デフォルトの名無しさん:2012/10/24(水) 16:58:42.94
839のAAは配列なの?List<T>なの?インデクサを持ったクラスのインスタンスなの?
841デフォルトの名無しさん:2012/10/24(水) 16:59:15.00
すこしはググレよカス
842デフォルトの名無しさん:2012/10/24(水) 17:02:25.08
>>841
なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
843836:2012/10/24(水) 17:07:00.32
すみません List<T> とかインデクサとか聞いたことなかったので出直します。
844デフォルトの名無しさん:2012/10/24(水) 17:07:04.75
>>842
調子乗んなハゲ
845デフォルトの名無しさん:2012/10/24(水) 17:09:04.37
やーい。はーげ、はーげ。
846デフォルトの名無しさん:2012/10/24(水) 17:10:25.40
>>839
Sort()
847デフォルトの名無しさん:2012/10/24(水) 17:13:17.89
そ〜と使ってね
848デフォルトの名無しさん:2012/10/24(水) 17:26:39.97
>>834
サービスなら誰もログインしてない状態でも動作し続けられる
849デフォルトの名無しさん:2012/10/24(水) 17:38:11.77
>>848
横だけどメリットってそれくらい?安定してるーとかは関係ないよね?
850デフォルトの名無しさん:2012/10/24(水) 17:39:10.99
>>848
うるせえハゲ
851デフォルトの名無しさん:2012/10/24(水) 18:26:38.70
可変長の二次元intが欲しいから

List<int>[,] hoge

ってしたんだけど、どうやってnew すればいいの? コンパイル通らん。
852デフォルトの名無しさん:2012/10/24(水) 18:28:40.59
どっちを多次元配列にするんだよw
853デフォルトの名無しさん:2012/10/24(水) 18:30:38.30
>>851
二次元配列+リストで三次元になっているが大丈夫か?
854デフォルトの名無しさん:2012/10/24(水) 18:39:14.00
んあ? そっか三次元になっちゃうのか・・

List<List<int>> hoge

こんな感じ?  ちょっとやってみる
855デフォルトの名無しさん:2012/10/24(水) 18:41:33.87
var hoge = new List<int>[10,10];
for(int i = 0; i < 10; i++)
 for(int j = 0; j < 10; j++)
  hoge[i,j] = new List<int>();

こうか?
856デフォルトの名無しさん:2012/10/24(水) 18:49:18.11
List<T>の配列なんて禍々しいものを生み出してはいかん
857デフォルトの名無しさん:2012/10/24(水) 20:37:15.43
子フォームにTransparencyKeyを指定して、透過下の親フォームの
ボタンとかを押せるようなしたいんだけど、そもそも透過も
できん。MDIでは無理なのか?透過色は白
858デフォルトの名無しさん:2012/10/24(水) 20:39:55.88
[ソース]Form1.cs
public partial class Form1 : Form
{
Form2 form2 = new Form2();

public Form1()
{
InitializeComponent();
form2.TopLevel = false;
form2.Parent = this;
form2.Show();
}
}
859デフォルトの名無しさん:2012/10/24(水) 20:55:23.77
>>857
透過は無理だと思うけどRegionで穴を空けることは恐らく可能。
まあ普通はそんなキモいUI使いたくないが。

っていうか、MDIClientにボタンがあるってふざけたUIだねw
860デフォルトの名無しさん:2012/10/24(水) 20:57:46.45
透過は完全な透明(0.0)じゃなければクリックは透過しないよ
あと細かくやりたければレイヤードウインドウでやるしかない
861デフォルトの名無しさん:2012/10/24(水) 21:03:55.17
[ソース]Form2.cs
private void Form2_Load(object sender, EventArgs e)
{
this.FormBorderStyle = FormBorderStyle.None;
this.Size = new Size(100, 100);
862デフォルトの名無しさん:2012/10/24(水) 21:05:32.55
>>857
カオス化したUIしか想像つかんなw
863デフォルトの名無しさん:2012/10/24(水) 21:06:59.97
Bitmap bmp = new Bitmap(@"form.bmp");
Color transColor = bmp.GetPixel(0, 0);
bmp.MakeTransparent(transColor);
this.BackgroundImage = bmp;
this.BackColor = transColor;
this.TransparencyKey = transColor;
}
864デフォルトの名無しさん:2012/10/24(水) 21:07:57.02
もくもくと貼ってるがここに貼りなおせ
http://ideone.com/
865デフォルトの名無しさん:2012/10/24(水) 23:47:41.75
この変数がどれだけメモリを使用しているか って調べる方法ある?
866デフォルトの名無しさん:2012/10/24(水) 23:52:09.18
>>865
ベーシックな方法だとsizeof。表面だけだけどね。
クラスが所有している参照を追跡してサイズ表示するのってできるんかな?
867デフォルトの名無しさん:2012/10/24(水) 23:56:12.47
おっと、勘違いしてた。
sizeofって参照型食わせれないんだね。うーん・・・。
868デフォルトの名無しさん:2012/10/24(水) 23:58:04.05
コンストラクタの使いどころがわかんない
869デフォルトの名無しさん:2012/10/25(木) 00:07:05.97
>>868
newするとき一回は使ってね?
870デフォルトの名無しさん:2012/10/25(木) 00:44:08.93
基底クラスに名前空間つける必要あるの?
871デフォルトの名無しさん:2012/10/25(木) 01:02:14.12
>>866
法律の話がしたけりゃ裁判所に行け
872デフォルトの名無しさん:2012/10/25(木) 01:09:16.60
ほう・・りつ・・??
873デフォルトの名無しさん:2012/10/25(木) 02:24:05.03
staticで宣言しないといけない変数って
例えばどんなの?
874デフォルトの名無しさん:2012/10/25(木) 02:26:19.97
>>873
変数が参照だと困る場合。
.net以外の言語と連携取る場合??
875デフォルトの名無しさん:2012/10/25(木) 05:33:45.54
分かんないなら答えなくていいんだよ
876デフォルトの名無しさん:2012/10/25(木) 08:38:05.85
テキストボックス等の勝手に出てくるスクロールバーの幅(横なら高さ)って環境で変わることってありますか?
877デフォルトの名無しさん:2012/10/25(木) 08:46:39.01
あるよ
878デフォルトの名無しさん:2012/10/25(木) 08:48:02.97
XPの頃は普通に画面の設定で変更できたな
879デフォルトの名無しさん:2012/10/25(木) 09:16:02.34
なんてこったい
880デフォルトの名無しさん:2012/10/25(木) 09:26:06.83
スクロールバーの幅(横なら高さ)って

SystemInformation.HorizontalScrollBarHeight
SystemInformation.VerticalScrollBarWidth

で取得すれば環境で変化しても問題ないですか?
881デフォルトの名無しさん:2012/10/25(木) 09:41:30.15
実行中に変更されることに目をつぶればね
882デフォルトの名無しさん:2012/10/25(木) 09:58:22.06
ありがとう

ListViewのスクロールバーの有無の確認の方法がわからず、ListViewの幅とヘッダ幅を比較して確認をとっていたのですが
うまくいかなかったのでスクロールバーの幅の取得方法を疑っていました

が、原因が別のところにあったみたいで、ユーザーがヘッダ幅を変更した場合に正確なヘッダ幅が取得できていなかったの原因だったみたいです

スクロールバーの有無の確認の方法がわかれば何も問題ないのですが、何か良い方法はありますでしょうか?
883デフォルトの名無しさん:2012/10/25(木) 10:09:29.00
ListViewスクロールバーの有無を確認していたコード

int count = listView1.Columns.Count;
int width = 0;

for (int i = 0; i < count; ++i) width += listView1.Columns[i].Width;

if (width > listView1.Width - 4) // スクロールバー有り
else // スクロールバー無し

ユーザーがヘッダ幅を変更した場合に正確な幅を取得できていなかった
884デフォルトの名無しさん:2012/10/25(木) 10:27:37.58
GetScrollInfoが成功するかどうかとか
885デフォルトの名無しさん:2012/10/25(木) 10:38:32.24
>> 884
ありがとう、ググってみます
886デフォルトの名無しさん:2012/10/25(木) 11:04:40.40
882ですが、なんかデバッグ時のみのバグっぽいです
ビルドしたほうは問題なく動くのでしばらく様子見してみます
お騒がせしました
887デフォルトの名無しさん:2012/10/25(木) 14:33:35.67
DataGridView使い辛いな
数値の二次元配列を表示させようと思ったけど、コラム名とか設定しないといけないし
まー適当な物入れて非表示にすりゃいいんだろうけど、余計な物大杉
もっとシンプルな物は無いですか?
888デフォルトの名無しさん:2012/10/25(木) 14:35:50.32
.NET的には二次元配列こそ余計なものなんで
889デフォルトの名無しさん:2012/10/25(木) 14:52:40.52
自作すればいい
890デフォルトの名無しさん:2012/10/25(木) 15:55:15.04
コントロールにケチ付ける前に自分の使い方の異常性を疑え
891デフォルトの名無しさん:2012/10/25(木) 16:32:20.92
極一部の希少種に合わせてられねーよ
892デフォルトの名無しさん:2012/10/25(木) 17:44:31.96
Formに複数のパネルを重ねて貼り付け使用するPanelをvisible=trueにし他をfalseにして画面遷移しています
ところが親コンテナが他のパネルになっていたりして見えなくなります
毎回Form1.Designer.csを弄るのも面倒なのですがIDEから親を指定できるのでしょうか
893デフォルトの名無しさん:2012/10/25(木) 18:00:18.19
>>892
右クリパネル選択か
ドキュメントアウトラインでパネル選択
894デフォルトの名無しさん:2012/10/25(木) 18:05:32.31
グローバルフックを使用して非アクティブ時にもキーを取れるように
したいのですがうまくいきません。どなたかわかる方おられますでしょうか?

<出来ていること>
 ・下記のアドレスの方法を使用してキーを取得することまで出来た

<出来ないこと>
 ・何度か実行すると突然キーが受け付けなくなる
 ・プログラムを再起動すると受け付けるが、何度かキーを押すと受け付けない
 ・Win7で300ミリ秒以内に返さないと受け付けなくなるとあったので、デリゲートの
 最初からCallNextHookExまでの時間を計測したが300ミリ秒を超えるものはなかった
 ※平均10ミリ秒以下

<その他していること>
 DirectShowを使用している

エラーにもならないのでまったく検討がつきません。よろしくお願いいたします。
895デフォルトの名無しさん:2012/10/25(木) 18:05:59.51
>>893
ありがとうございます
やってみます
896894:2012/10/25(木) 18:08:01.22
すいません、URL貼り付けてなかったです。

http://www.be-styles.jp/archives/2467

Win7のグローバルフックが効かない
http://nazochu.blogspot.jp/2011/08/windows7.html
897デフォルトの名無しさん:2012/10/25(木) 18:10:39.47
>>894
ショートカットキー経由で取得
898デフォルトの名無しさん:2012/10/25(木) 18:56:38.32
>http://www.be-styles.jp/archives/2467

糞コードだな
デリゲートをフィールドに持ってないからGCされる
899デフォルトの名無しさん:2012/10/25(木) 18:57:10.03
string a=""
みたいにstringの変数を初期化する必要ってあるの?
900デフォルトの名無しさん:2012/10/25(木) 18:57:24.73
いや誤解だった
スルーしてください
901デフォルトの名無しさん:2012/10/25(木) 18:59:36.34
>>899
変数は初期化しないと使えないわけだが。
フィールドの場合は暗黙的にデフォルト値(この場合はnull)で初期化される
902デフォルトの名無しさん:2012/10/25(木) 19:05:44.32
ここはソースをネタにして揚げ足取るスレじゃないんだが
903デフォルトの名無しさん:2012/10/25(木) 19:44:09.87
マルチスレッドプログラミングについて教えてください。
AというスレッドとBというスレッドがあり
Aでリストにアイテムを追加、Bでリストを参照します。
そこでBがリストを参照している間はアイテムの追加を待たせたいのですが
どうすればいいでしょうか?
参照側を優先したい感じです。
904デフォルトの名無しさん:2012/10/25(木) 19:46:01.91
秘密です
905デフォルトの名無しさん:2012/10/25(木) 19:47:00.84
>>903
lock
906デフォルトの名無しさん:2012/10/25(木) 19:47:35.11
ReaderWriterLockSlim
907デフォルトの名無しさん:2012/10/25(木) 19:52:14.13
ヤン坊マー坊天気予報みたいな言い方すんなw
908デフォルトの名無しさん:2012/10/25(木) 20:21:57.46
>>903です。
できました。ありがとー。
909デフォルトの名無しさん:2012/10/25(木) 20:25:50.02
大きい画像の表示とか、pictureboxの代わりに何使ってる?
910デフォルトの名無しさん:2012/10/25(木) 20:32:23.66
ウィンドウズフォーム
911デフォルトの名無しさん:2012/10/25(木) 20:34:22.51
formclosingでcloseResonが取れますが、
一旦cancel=trueでキャンセルすると
以降ずっとUserCloseになってしまいます。

これは仕様なのでしょうか?
検索したのですがバグとも仕様とも見つけられませんでした。
912デフォルトの名無しさん:2012/10/25(木) 20:51:25.25
>>911
app.configs
913デフォルトの名無しさん:2012/10/25(木) 22:48:28.52
>>911
確かバグ。
っていうか今検索したらトップの項目に答えが出てるじゃねえかw
本当に検索したのかよ

http://stackoverflow.com/questions/3631490/bug-in-formclosingeventargs-closereason
914デフォルトの名無しさん:2012/10/25(木) 23:42:27.54
丁寧な日本語の解説付きじゃないと即閉じなんだろwwwwww
915デフォルトの名無しさん:2012/10/25(木) 23:44:06.42
英語読めるかコードだけで把握できるレベルならこんなところで質問しねーよwwwwwwwwwwwwwwwwwwwwwwwww
916911:2012/10/25(木) 23:55:44.59
すいません英語読めなくて・・・
これはバグだからWndProc捕まえて判断しろって
ことでいいんでしょうか?
917デフォルトの名無しさん:2012/10/26(金) 00:29:33.74
低学歴でプログラミングやろうとするか?普通…
918デフォルトの名無しさん:2012/10/26(金) 00:30:15.19
継承うまくいってうれしい♪
919デフォルトの名無しさん:2012/10/26(金) 00:31:59.22
量産型パソコン少年だった俺も低学歴ですあg・・・。
920デフォルトの名無しさん:2012/10/26(金) 00:38:40.52
vs2010で フォームをデザインする画面の
スナップ線 (コントロールを自動的に揃えてくれるガイドみたいなやつ)
が表示されなくなってしまいました。

どうやって戻すのでしょうか?
921デフォルトの名無しさん:2012/10/26(金) 00:39:05.87
プログラミングにハマりすぎて低学歴です
922デフォルトの名無しさん:2012/10/26(金) 00:48:59.77
>>916
回避方法だけ書くと、OnFormClosingでe.Cancel = trueするとき、
FormのinternalなフィールドcloseReason の値をリフレクションを使って
CloseReason.Noneに書き換える。

試してないから本当にそれで大丈夫かどうかは知らない。
(2005の時代に試した時には上手くいった記憶はあるが...)

っていうか、そんな難しいこと書いてないから英語苦手でも気合で読めると思うが
923デフォルトの名無しさん:2012/10/26(金) 01:28:47.12
visualstudio2010で
一つのクラス(例えばclassA.cs)を作ってそのファイルをいろんなプロジェクトで継承して使いたい場合
どうすればいいですか?
ソリューションエクスプローラーでプロジェクト名を右クリック、追加、
既存の項目の追加でそのクラスを追加した場合は
それぞれのプロジェクトでclassA.csのファイルをもっちゃってだめです・・・
924デフォルトの名無しさん:2012/10/26(金) 01:32:23.18
リフレクションで書き換えるとか・・・
925デフォルトの名無しさん:2012/10/26(金) 01:45:51.83
そのクラスが単体で機能していると誰が把握できるの?
そのクラスが別のクラスを参照していた場合は?
もしあなたが言っているようなことができたとしても
結局ビルド時にdllが付加される
926デフォルトの名無しさん:2012/10/26(金) 08:06:48.23
単にソース共有ですむなら「リンクとして追加」でOK
927デフォルトの名無しさん:2012/10/26(金) 09:19:45.90
>>923
思いっきり勘違いしてるかもしれないけど、
プロジェクトにクラスライブラリーを追加して、
それを使うビルド毎に参照設定すれば良いんじゃないの?
928923:2012/10/26(金) 12:03:08.00
わけわからないことを言ってしまってすいません。
>>926の単にソース共有だけで大丈夫でした。
リンクとして追加の項目があったのがわかりませんでした。
ありがとうございました!!
929デフォルトの名無しさん:2012/10/26(金) 12:13:42.72
結局ビルド時にdllが付加される(どや?
930デフォルトの名無しさん:2012/10/26(金) 13:28:56.81
どうもこうもない
931デフォルトの名無しさん:2012/10/26(金) 13:51:15.10
> enum プロパティまたは空間プロパティをマップするには、DbModelBuilderVersion 'V5_0' またはそれ以降を使用してください。

Visual Studio 2010 + .Net 4.0 + Entity Framework 5.0で上記のようなエラーが出てしまいます。
DbModelBuilderVersion.V5_0_Net4は「 'V5_0' またはそれ以降」に含まれないのでしょうか?
また、.Net 4.5必須だったりしますか?

[DbModelBuilderVersion(DbModelBuilderVersion.V5_0_Net4)]
public class PrimaryContext : DbContext
{
//hogehoge
}

932デフォルトの名無しさん:2012/10/26(金) 14:39:44.10
同じくEntity Frameworkについてなのですが、DB側でDateTime型ではなくDate型にすることは出来ないのでしょうか?
933デフォルトの名無しさん:2012/10/26(金) 14:44:53.48
そういうことしちゃうと汎用性に欠けるからしないほうがいい
固有のアプリに鋭敏になるとデータベースである必要がなくなってくる
934デフォルトの名無しさん:2012/10/26(金) 16:16:47.07
>>933
日付でユニークにするとかは出来ないということでしょうか?
935デフォルトの名無しさん:2012/10/26(金) 16:56:26.57
>>932>>934
SQL Server 2008以降やMySQLなら↓でいけね?
.HasColumnType("Date")

あとユニークキーは internal sealed class Configuration : DbMigrationsConfiguration の中の
Seedメソッドで強引に作ってる。これが正解かは知らんがとりあえず動いている。
protected override void Seed(Axis.Models.Primary.PrimaryModelContext context) {
context.Database.ExecuteSqlCommand("CREATE UNIQUE INDEX /*省略*/");
}
936デフォルトの名無しさん:2012/10/26(金) 19:18:09.53
Linq to Xml とLinq to SQLの違いはなんですか?
Xmlじゃだめなんですか?
DBの方が優れている点はなんですか?
937デフォルトの名無しさん:2012/10/26(金) 19:19:31.02
データをキーで取り出したり挿入したり出来るところだろ
938911:2012/10/26(金) 20:50:38.89
>>922
リフレクション(?)を使うとReadOnlyでも書き換えられるんですね
試してみます!有難うございました。
939デフォルトの名無しさん:2012/10/27(土) 14:24:16.98
ウィンドウとか無視してとにかく画面の最前面に画像や文字を表示したい場合は何を使ったら実現できるかな?DirectXとか??
940デフォルトの名無しさん:2012/10/27(土) 14:27:27.18
最上層はDirectXでもだめ
WinAPIを使うしか無い
941デフォルトの名無しさん:2012/10/27(土) 15:04:19.89
C#ってそんな簡単なことも出来ないのか
942デフォルトの名無しさん:2012/10/27(土) 15:10:03.67
うむ
小回りは全然だよ
SendInputも無いしね
943デフォルトの名無しさん:2012/10/27(土) 15:10:37.71
WinFormsでTopMost=trueじゃいかんのか?
944デフォルトの名無しさん:2012/10/27(土) 15:11:59.91
三菱東京UFJ銀行のネットバンキングに偽画面  ウイルス感染の疑い\(^o^)/
http://engawa.2ch.net/test/read.cgi/poverty/1351290975/

コレに使うのか
945デフォルトの名無しさん:2012/10/27(土) 15:30:44.65
.NET Framework "Framework"
946デフォルトの名無しさん:2012/10/27(土) 15:33:25.04
この記事おかしいだろ
銀行が感染したみたいじゃん
947デフォルトの名無しさん:2012/10/27(土) 15:34:19.00
C#でもWinAPIは使えるんだからいいんじゃねえの
948デフォルトの名無しさん:2012/10/27(土) 15:45:03.55
ユーザーコントロール入れるとデザイナの更新が糞重くなるのを解消する方法はないですか?vs2010
949デフォルトの名無しさん:2012/10/27(土) 15:52:19.61
「入れる」とはどういう意味?
デザイナでフォームのクライアント領域上に置いたら、って意味で言ってるの名r
一般論を言えばそんな現象は起こらない。

VSのせいじゃなくてそのユーザーコントロールの問題じゃないのか
950デフォルトの名無しさん:2012/10/27(土) 16:41:45.18
既存のコントロール継承して DoubleBuffered = true にしただけの単純なものっすよ
951デフォルトの名無しさん:2012/10/27(土) 18:12:55.77
CPUを早くしろよ
952デフォルトの名無しさん:2012/10/27(土) 18:22:30.46
根性論みたいな対処は美しくないなあ
953デフォルトの名無しさん:2012/10/27(土) 18:28:06.31
じゃあそのコントロールのソースをアップしんさい
954デフォルトの名無しさん:2012/10/27(土) 18:50:35.99
>既存のコントロール継承して DoubleBuffered = true にしただけ

: UserControl → 継承したいコントロール
コンストラクタに DoubleBuffered = true; 追加しただけなんだけど

ソース貼らなきゃわからないの?
955デフォルトの名無しさん:2012/10/27(土) 18:54:38.72
それだけって言うのならコメントアウトなりデザインモード判定なり追加してみろよ
956デフォルトの名無しさん:2012/10/27(土) 18:55:14.61
低レベルな人の回答は必要ないっすよ
957デフォルトの名無しさん:2012/10/27(土) 19:00:21.96
使えない連中の回答待ってる間に自力で解決したからもう結構っすよ
958デフォルトの名無しさん:2012/10/27(土) 20:48:28.58
よかよか
959デフォルトの名無しさん:2012/10/28(日) 13:17:26.56
結局ナニが原因だったんだよ・・・
960デフォルトの名無しさん:2012/10/28(日) 13:23:53.14
VSの問題なら解決しようがない。
本当に解決したのなら、最初の想定どおり質問者の作ったコントロールの問題ということだろう。

っていうか、それは>>948みたいなガサツな文章を読んだ時点で予測はついた。
961デフォルトの名無しさん:2012/10/28(日) 14:22:42.94
はいはい顔真っ赤乙
ふぁっびょ〜〜〜〜〜ん
962デフォルトの名無しさん:2012/10/28(日) 14:28:48.66
んふふふふ・・・ハァイ
963デフォルトの名無しさん:2012/10/28(日) 14:44:37.34
>>960
救いようのない馬鹿だなこいつ
こんなのが回答者のレベルならこのスレ終わってるな
964デフォルトの名無しさん:2012/10/28(日) 15:49:34.55
中間テストが終わったからってはしゃぎ過ぎだぞ
965デフォルトの名無しさん:2012/10/28(日) 15:52:55.46
やだ、このスレ臭い・・・
966デフォルトの名無しさん:2012/10/28(日) 16:15:32.70
家へ帰れないのに風呂なんて入ってるわけねーだろ
967デフォルトの名無しさん:2012/10/28(日) 16:29:44.39
マジレスするとレイアウトパネル使いすぎなんじゃねーの
968デフォルトの名無しさん:2012/10/28(日) 16:32:34.30
もう聞いてねえからすっこんでて構わんぞ
969デフォルトの名無しさん:2012/10/28(日) 17:10:35.95
他アプリ含めたアクティブなプログラムの情報(実行ファイル名)取得するのって
どうすれば良いの?
970デフォルトの名無しさん:2012/10/28(日) 17:12:46.44
WMI
971デフォルトの名無しさん:2012/10/28(日) 17:20:18.70
wmic.exe process get name,workingsetsize,processid,executablepath,commandline
972デフォルトの名無しさん:2012/10/28(日) 17:32:16.54
こんなの仕事にしてんのは9割チョン
973デフォルトの名無しさん:2012/10/28(日) 17:34:23.87
シナチクとインド人
974デフォルトの名無しさん:2012/10/28(日) 17:39:09.28
ここの自称PGはニートだろ
975デフォルトの名無しさん:2012/10/28(日) 17:40:02.96
まーね
976デフォルトの名無しさん:2012/10/28(日) 17:46:38.76
>>968
ふぁびょんはすっこんでていいぞ
977デフォルトの名無しさん:2012/10/28(日) 17:47:37.95
Class1.Class2.Property = 1;

こういう場合、Propertyの変更をClass1のClass2のアクセサから知ることはできませんか?
Propertyが変更されたらClass1に実装したイベントを実行する、みたいなことをしたいんですが
978デフォルトの名無しさん:2012/10/28(日) 17:54:51.17
自動的にやる方法は今の所ないので
IPropertyChangedを個別に実装して対処する

ActionScriptは楽でいい
979デフォルトの名無しさん:2012/10/28(日) 17:58:40.77
class Class1{
 Class2 class2;

 public Class1(){
  ...
  class2.PropertyChanged += Class2PropertyChanged;
 }

 void Class2PropertyChanged(){ ... }
}

class Class2{
 public int Property{ get{ return property; }
  set{ if(property != value){ property = value; if(PropertyChanged != null) PropertyChanged(); } }
 }
 public event Action PropertyChanged;
}

なんかこんなかんじだっけ?
980デフォルトの名無しさん:2012/10/28(日) 18:08:33.10
規制早くあけろ!

>>979
winformで使えるようになったんだっけ?
981デフォルトの名無しさん:2012/10/28(日) 18:20:58.79
>>980
え、何が?
982デフォルトの名無しさん:2012/10/29(月) 00:57:17.54
>>978-979
回答ありがとうございます
どちらの場合も、すべての変更を検知したいプロパティのsetに同じイベントの起動をを記述しなければいけないんですね…
INotifyPropertyChanged インターフェイスの説明でもそんな感じなので、979さんのやり方でやってみようと思います
983デフォルトの名無しさん:2012/10/29(月) 14:15:29.11
984デフォルトの名無しさん:2012/10/29(月) 16:27:39.87
System.Net.Cookieクラスの二次元配列を作ろう以下のように書いたのですがうまくいきません
どのよう書けばCookieクラスの二次元配列を作ることができますか?教えてください

Cookie[][] cookie = {
              {new Cookie(), new Cookie()},
              {new Cookie(), new Cookie()}
             };
985984:2012/10/29(月) 16:34:33.73
すいません。自己解決しました
986デフォルトの名無しさん:2012/10/29(月) 19:08:05.45
987デフォルトの名無しさん:2012/10/29(月) 19:11:07.73
フリーのReflecterはもうないんですか?
988デフォルトの名無しさん:2012/10/29(月) 19:17:47.86
ILSpyあるだろ
989デフォルトの名無しさん:2012/10/29(月) 19:21:18.06
知らなかった
ありがとう
990デフォルトの名無しさん:2012/10/29(月) 19:53:36.80
自分のみで使う全部で1000行くらいのプログラムなんですが、未だに設計の仕方がわからず行き当たりばったりでコード書いてます
そのため、インスタンスの取得にバグがあってNull例外で怒られたり、一部変更し忘れたり、コードを何回も変更したりして正直うんざりします
設計について調べてみても抽象的に書いてあるところばかりで、いまいちどういう風に設計したらいいのかわかりません
少しでもバグ等を減らしたいので、設計のアプローチの仕方を教えてください・・・
991デフォルトの名無しさん:2012/10/29(月) 20:00:20.07
はいはい、釣りですね
992デフォルトの名無しさん:2012/10/29(月) 20:01:55.00
何度も書き直しながら覚えていくんだろ
うんざりならやめろよ
993デフォルトの名無しさん:2012/10/29(月) 20:02:08.76
そんなの言語に関係ないし
デザパタ本読んでデザパタ病に罹って治ったらできるようになる
デザパタ病に罹ったままだと単なる迷惑者になる
994デフォルトの名無しさん:2012/10/29(月) 20:39:44.19
たくさん書いてるとそのうちバグの少ない書き方になってくるよ

欲しい機能がネット上にありそうな気がしたらぐぐってソースコピペもいいかも
995デフォルトの名無しさん:2012/10/29(月) 20:49:40.10
慣れてない奴でも大きなコードを書けるコツは、
どんなに非効率でも気にしないで処理単位ごとにぶった切って全く別個に作ることだな。
共通部分があっても(メソッドにまとめられるならそれでいいが)コピペで構わない。
完全に別個に作ってる限りは個々がいくら汚かろうと大して問題にならない。
極力、プログラム内の変数にはその処理単位を超えさせない。
処理単位の間を超えられるのはファイルとデータベースのみ。
996デフォルトの名無しさん:2012/10/29(月) 21:38:48.31
bmp_moto を usingで使いたい & tryで読み込めないファイルはエラーにしたいんですがどうしたらいいですか?

 using (Bitmap bmp_moto = null)
 {
  try
  {
   bmp_moto = new Bitmap(openFileDialog.FileName); //'bmp_moto' は 'using 変数' であるため、割り当てることはできません。

  }
  catch (Exception ex)
  {
   MessageBox.Show(ex.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Hand);
   return;
  }
  Bitmap bmp_saki = new Bitmap(100, 100);
  using (Graphics g_base_small = Graphics.FromImage(bmp_saki))
  {
   int wari;
   int saki_width;
   int saki_height;
   wari = Math.Max(bmp_moto.Width, bmp_moto.Height);
   saki_width = (int)Math.Round(bmp_moto.Width * 100 / (double)wari);
   saki_height = (int)Math.Round(bmp_moto.Height * 100 / (double)wari);
   g_base_small.DrawImage(bmp_moto, new Rectangle(0, 0, saki_width, saki_height), new Rectangle(0, 0, bmp_moto.Width, bmp_moto.Height), GraphicsUnit.Pixel);
  }
 }
997デフォルトの名無しさん:2012/10/29(月) 21:46:38.86
唖然
998デフォルトの名無しさん:2012/10/29(月) 21:48:46.58
try
{
 using(Bitmap bmp = new Bitmap("...")){
  ...
 }
}
catch(hugahuga)

こんなんじゃねえの
999デフォルトの名無しさん:2012/10/29(月) 21:48:51.57
>>996
try { using (Bitmap bmp_moto = new Bitmap(略)) { bmp_motoを使う } } catch (略) { エラー }
または
Bitmap bmp_moto = null;
try { bmp_moto = new Bitmap(略); bmp_motoを使う; }
catch (略) { エラー }
finally { if (bmp_moto == null) bmp_moto.Dispose(); }
1000デフォルトの名無しさん:2012/10/29(月) 21:49:49.15
try_catchの中にusingを入れろ

>Bitmap bmp_saki = new Bitmap(100, 100);

ここで出る例外も拾えてお得
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。