1 名前:デフォルトの名無しさん [2010/02/04(木) 20:32:55 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part54 pc12.2ch.net/test/read.cgi/tech/1264236247/ 関連スレ C#, C♯, C#相談室 Part55(実質56) pc12.2ch.net/test/read.cgi/tech/1260111240/ WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5 pc12.2ch.net/test/read.cgi/tech/1261879110/
261 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 01:35:00 ] >>248 >>256 問題にしてるちらつきのレベルが全然違う話をしても意味ないよ。 大体今時液晶ディスプレイばかりなんだからティアリングの様子も変わってるし。
262 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 01:37:18 ] >>261 基本的な仕組みはかわってないよ 液晶だってPC側から貰った映像を元にピクセルを操作してるんだし
263 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 01:38:45 ] CRTの走査と液晶の表示じゃ元は同じでも表示のしくみが全然違うから。
264 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 02:35:19 ] 脊髄で話を飛躍させるなw 問題はプログラムミスによるチカチカだろ
265 名前:チカ [2010/02/18(木) 02:54:37 ] 気軽に私の名前を呼ばないでくれる?
266 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 03:20:35 ] >>245 とりあえずやっつけで 元のまんま適当にいじった ttp://77c.org/d.php?f=nk12758.zip これでとりあえずどうだろ?
267 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 05:33:02 ] >>260 >>245 こんな感じのでもいけるはず (デザイナでDoubleBuffered=trueに) ttp://77c.org/d.php?f=nk12759.zip ついでにロジック部分もいじってみた ・計算と描画を分離して、計算はタイマーで実行 ・計算部分を整理 >>266 > int res = BitBlt(dc, 0, 0, Convert.ToInt32(width), Convert.ToInt32(height), dc, 0, 0, SRCCOPY); これって何か特別な意味あるの?
268 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 06:37:51 ] validateの範囲を最小限にするとか
269 名前:245 mailto:sage [2010/02/18(木) 07:18:39 ] >>266-267 おお!ありがとうございます!! まったくちらつきませんね ヌルヌルです これで心置きなくぐるぐるできます
270 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 09:04:42 ] 液晶がどうの言っていたバカはどこ行った
271 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 09:09:58 ] ん、誰か呼んだ?
272 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 10:03:50 ] この場合、バカなのはvsyncがどうのって言ってたほうだろw
273 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 10:21:52 ] こういう視覚効果はWPFが強いな。 ttp://www7a.biglobe.ne.jp/~fbsoft/test/miku2.xaml ttp://www7a.biglobe.ne.jp/~fbsoft/test/miku1.xaml ttp://www7a.biglobe.ne.jp/~fbsoft/test/BinaryStar.html 画材や画像はニコ方面からの拾い物なので早めに消す。
274 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 10:26:02 ] ぶらくら? 問題が生じたので WPFを終了しますとか何とかいっておわった 俺死ぬの?
275 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 10:31:08 ] 死ぬだろうな。
276 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 10:33:27 ] >>274 上2つはルーズXAMLで.NET3.0以上が必要、 3つめはSilverlight3が必要かもしれない。 いずれもスクリプトだけでアセンブリさえ使ってない。
277 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 10:37:31 ] Google Chrome でもSilverlight動くんだな。知らんかった。
278 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 11:03:31 ] >>267 帰り値を受け取ってるところ? それともBitBlt使ってるところ?
279 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 17:20:34 ] 例えば、System.Xml.XmlReaderクラスはabstractで定義されてるのに XmlReader.Create()メソッドでXmlReaderクラスのインスタンスが作られるってのは いったいどういうことなのでしょうか?
280 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 17:27:58 ] 抽象のCreateってC++見たいだな
281 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 17:38:14 ] 実際には中でXmlReaderの派生クラスのインスタンスを作って返してる staticメソッドを使ったファクトリメソッドパターンってやつ
282 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 17:44:45 ] >>281 やはり内部で派生クラス作ってるんですか コンストラクタから作るのじゃなければ、言語規約としては矛盾しないのかな… デザインパターンの知識ってこういうとこでも役に立つんですね、勉強してみます
283 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 17:47:29 ] >>282 c#は本筋で関係してそうなクラス(Objectなど)以外にxxBaseとか元になってる似たような 名前のもあるしReaderが作ってことは内部でxxReaderを使ってるってことだしねえ
284 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 17:48:18 ] >Readerが作って Readerが名前に使われてるって
285 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:18:51 ] C#というよりVisualStudioの話になるんですが、 同一ソリューションの中の 複数プロジェクト(アプリケーション)の 同時デバッグってどうやるんですか?
286 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:22:19 ] 開発環境のデバッグ機能って使ったこと無い
287 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:23:55 ] System.Diagnostics.Debugger.Break()とか
288 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:25:13 ] msgboxとprintfしか使ったこと無い
289 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:28:25 ] ご冗談を
290 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:29:06 ] >>286 どうやってデバッグやられているんですか?
291 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:30:59 ] ソースをプリントして脳内で追う
292 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:54:26 ] dynamic myClass = IronPythonなどでクラスを表すオブジェクト; dynamic myClassObj = new myClass(); //エラー C#ではdynamicにnew使えないのはなんで? dynamicの仕組み上は可能なはずだけどどういう意図で制限してるんだろ
293 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 18:54:56 ] ソリューションのプロパティでマルチスタートアップ
294 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 19:01:54 ] >>292 DLRのdynamicがC#のクラス用でないというだけ。
295 名前:292 mailto:sage [2010/02/18(木) 19:19:56 ] >>294 たとえばSilverlight4ではこんなことができる HtmlPage.Window.Eval("function f() { alert('エラー'); }"); dynamic func = HtmlPage.Window.GetProperty("f"); func(); もちろんHtmlPage.Window.GetProperty("f")の戻り値はデリゲートじゃなくて変なラッパーだけどちゃんと動く よく考えたら、C#ではnewの右は型名と決まってるから>>292 をやろうとしたら文法に手を入れないといけなくなるね
296 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 19:23:40 ] >>295 分かってるなら聞くなよ。 わざわざ書き込みに来て何がしたいんだ?
297 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 19:48:29 ] >>293 おー、素晴らしい。 ありがとうございます。
298 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 21:36:07 ] .NETで作ったソフトって配布するとVisual Studioを登録した名前がバレちゃう?
299 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 21:44:51 ] >>298 pdbファイルののフルパスが入ってることがあるから気になるならオプションで外しておけばいい。
300 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 21:52:05 ] アセンブリ情報の中に著作権者は含まれるが、デフォルトで設定されるのは会社の方だけだったかな
301 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 22:14:23 ] >>292 これはだめ? dynamic myClassObj = Activator.CreateInstance(((object)myClass).GetType());
302 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 22:15:55 ] DllImportで引数がC/C++でLPCSTR/LPCWSTRの型の関数を使う時にC#側ではstringとして宣言してるんだけど C/C++ではNULLを渡す場面が発生するみたいで、C#も同様にnullを引数に入れるとコンパイル時にエラる。 どうやって同様の値を表せばいいの?
303 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 22:17:57 ] >>301 それだとDLRの仕組みが考慮されない >>302 IntPtr.Zero
304 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 22:20:55 ] (string)IntPtr.Zeroが変換エラー
305 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 22:27:33 ] string として宣言せずに、IntPtr として宣言しとけばいいだけ。
306 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 22:28:13 ] どうもありがとう!
307 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 06:36:13 ] いえいえ。次回のお礼時は贈り物をよろしくね。
308 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 10:55:03 ] えっ 昨日も贈り物送ったんだけど届いてない?
309 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 11:48:27 ] 独自パケットを使った通信で パケットの中身をXMLにして XmlSerializer使ってらくに通信したいんですけど 参考サイトとかないですか
310 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 11:50:45 ] >>309 わけた方がいいんじゃねーの? 通信で送受信する内容はメモリにおいて置けるし XmlSerializerの方はMemoryStreamで読み書きできるはずだし
311 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 12:04:07 ] ・・・ 参考サイトとかないですか!
312 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 12:07:22 ] そもそも独自パケットなんてできるのか?
313 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 12:41:33 ] 独自パケットといってもTCP/UDPの上に載せる部分を独自にしたいだけです。 var ns = new NetworkStream(new TcpListener(11111).AcceptSocket()); var obj = new XmlSerializer(typeof(Packet)).Deserialize(ns); こんな感じでやってみると、Socketが閉じるまでシリアライズし続けるみたいなので。 こういうことをやる楽な方法はないかなと思いまして。
314 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 12:43:24 ] >>310 見落としてました。 やっぱりいったんメモリに溜めてからですかね。 うーん。
315 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 13:07:07 ] Girl nagisa = new Girl("凪沙", 13, 148.0F, 43.0F, Attribute.Twintail | Attribute.Magical); while(true) nagisa.Insert(new Stick(Material.Hard));
316 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 13:08:53 ] ↑は面白いと思ってやってるらしい
317 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 14:27:07 ] 素直にWCF使えばいいのに
318 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 15:09:18 ] 何でわざわざ自作すんのかねぇ
319 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 15:50:23 ] WCF試してみます。
320 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 16:33:55 ] お礼くらい言え
321 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 16:49:36 ] お礼は三行以上でお願いします
322 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 16:59:52 ] あ り が とうございません
323 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 17:29:22 ] WCFってさぁ
324 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 17:50:38 ] WCF地味に凄いんだよな。 地味なんだけど。
325 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 19:26:32 ] WCF自演乙
326 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 21:40:36 ] 人工知能かよ WCFすげえなおい
327 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 21:43:33 ] expressだと使えない・・・。
328 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 22:00:10 ] VWD2008Expressなら使える
329 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 22:03:35 ] Express使うならVC#よりもVWDの方がいいよ VC#からテンプレート抜き出せばVC#のスーパーセットになる
330 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 22:42:29 ] VWDええの? ASP.NETやる時だけ使ってて、C#はVC#EX使ってたよ。
331 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 23:28:43 ] プロジェクトとアイテムのテンプレートをVC#から持ってくれば VWDでWinFormsもWPFもコンソールも使えるようになるよ
332 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 01:07:31 ] Windows Formに数個のRadioButtonと1個のButtonを並べておいて、 適当なタイミング(例えばButtonのクリックイベント)でButtonのEnabledをfalseにすると、 (たぶんTabOrderが一番若い)RadioButtonのClickイベントがクリックしてもいないのに 発火するようなんだけど、これバグでなければどう理解したらいいんだろう?
333 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 01:18:26 ] Enableとかしなくても貼り付けてフォーム表示するだけで普通に発生するね ラジオチェックしてボタンをEnable=falseにしたらチェックの入ってるラジオのクリックイベントが発生したわ クリックなんか使わないから初めて知った・・・
334 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 01:24:56 ] ラジオボタンにフォーカスが移る=クリック扱いのようだな カーソルキーでぐりぐりとフォーカス移動させるとクリックイベント発生しまくる
335 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 01:51:25 ] >>334 なるほど。 でもTabキーでフォーカス移動したときには発生しないようだし、 なんだか妙な仕様に感じるなあ。 しかし、AutoCheckをtrueにできない用途(通信がらみとか)だと、Clickイベントを 使わざるを得ないわけでこういう仕様は困るなあ。 MouseClickを使えってことなのか。 でもそれだとSpaceキーとか拾えないしなうーん。
336 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 07:59:45 ] ボタンにフォーカスがあるのにEnterキーでクリックにならない。 で、カーソルキーを← →と押して、フォーカスを一端外してまた戻してやると なぜかこんどはEnterが使えるようになる。 .Netのコントロールはなんかおかしい。 そんなんプログラマが意識しなくてもデフォルトでそうなってくれてるもんだよな。
337 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 08:24:29 ] 確かにEnterキーでクリックイベントは起きないな > で、カーソルキーを← →と押して、フォーカスを一端外してまた戻してやると > なぜかこんどはEnterが使えるようになる。 でもこれは再現しない Enterじゃなくてスペースキーなら使えるよ 結局、フォーカスが移るのは関係なくて、ラジオボタンの○が◎になったときに クリックイベントが発生してるみたいだから、別に問題ないじゃん タブで移動やEnterで○のままならクリックしてないのと同じだし カーソル移動やスペースで◎になるならクリックしたのと同じだし
338 名前:デフォルトの名無しさん [2010/02/20(土) 11:08:51 ] え?
339 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 11:25:12 ] >329,331 bluewatersoft.cocolog-nifty.com/blog/2009/05/visual-web-deve.html プロジェクトに関してはこういう記載ありましたが、 テンプレートの抜き出しとは何をすれば良いのでしょう
340 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 12:42:54 ] 何をすれば良いのでしょう
341 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 14:26:48 ] comboBox1.Items.Add("hoge"); comboBox1.Text = "HOGE"; とすると Text の値が "hoge" の方になってしまうのですが、 大文字・小文字を区別して"hoge"が選択されないようにするには どうしたらいいでしょうか?
342 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 14:39:31 ] >>339 Program Files\Microsoft Visual Studio 9.0\Common7\IDE\VCSExpress\ItemTemplates\1041フォルダを ドキュメントフォルダのVisual Studio 2008\ItemTemplates\Visual Web Developperにコピー 同様にItemTemplatesのところをProjectTemplatesに読み替えてコピー WPFアプリケーションのプロジェクトはちょっとだけvstemplateファイルを弄らないといけなかったような気もする
343 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 14:41:37 ] 内部で LB_FINDSTRING してるところを無視する。
344 名前:デフォルトの名無しさん mailto:sage [2010/02/20(土) 15:21:34 ] 無視するんですね
345 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:22:29 ] C++/CLIでC/C++の標準ライブラリをラップに包んでC#で利用しようとしているのですが C#で利用できる名前空間をC++/CLIで定義するにはどうすればいいか教えてくだされ。
346 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:24:56 ] C++のスレの範囲じゃないの
347 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:27:39 ] そもそもC#からC++製のマネージドなアセンブリ使う場合/clr:pureでコンパイルしないと使えないんじゃないか?
348 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:29:15 ] >>345 普通にC++の名前空間にする >>347 そんなことはない
349 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:30:45 ] >>348 どうもありがとう!!できました!!!! >>346 C#から参照してるからC#関係あるだろうが適当な事いうな分からないなら黙ってろクズ >>347 知ったかぶりはやめましょうね^^
350 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:32:51 ] TcpClient使ってアクセスしてるならWebAPIの使い方聞いていいって事になるな。 こいつはこじつけが楽でいい。
351 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:33:25 ] そうだね^^
352 名前:345 mailto:sage [2010/02/21(日) 15:35:13 ] >>349 成りすましはやめてください。
353 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:35:48 ] C#使って351を殺す方法を教えてくださいもOKだね
354 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:37:38 ] 多分同一人物だろうけど、勝手に「自己解決しました。」って発言するやつとか>>349 みたいなのがいるからこの板もIDつきにして欲しいな。
355 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:41:17 ] 何度も却下されてるから考えるだけ無駄
356 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:42:33 ] 「なりすましされたくなければ鳥付けて質問しろ」 と次から書いとけ。
357 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:44:13 ] ム板の花だから
358 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 15:56:06 ] >>353 回答したら、幇助になる可能性はあるけどな。
359 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:01:31 ] 動的に生成したPanelにラベルやらピクチャーボックスやらを載せているんですが、 panel.MouseClick += panelClick; とした場合には、パネル上の他のコンポーネント(ラベルやらピクチャーボックス) がクリックされた場合は反応しませんよね。 上に載っているラベルとかも含めてパネルがクリックされたら反応させるってことできませんか?
360 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:02:40 ] そっちのイベントをPanelのイベントに関連づければいい。
361 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:03:08 ] 鳥つけるのもいいけど、ここをよく利用する人にとっても面倒だしなあ ましてや2ch利用者の多くはテンプレ読まないの多いのにそんなルール 作っても・・・とか思うわ IDつけてくれとかどこかに要望だしてやってくれるのかな?
362 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:04:12 ] >>359 panelってむき出しになってる部分あるの?
363 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:05:12 ] >>360 関連付けってなんです? panel.MouseClick += panelClick; label.MouseClick += panelClick; pictureBox.panelClick += panelClick; みたいなことをしろってことですか?
364 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:06:58 ] >>363 うん。
365 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:07:04 ] >>362 あります パネルの部分をクリックすると反応します >>363 は panel.MouseClick += panelClick; label.MouseClick += panelClick; pictureBox.MouseClick += panelClick; でした
366 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:09:08 ] >>364 わかりました、そうします ありがとうございました
367 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:09:34 ] >>365 デザイナーが用意するイベント処理関数はいかにも・・という名前付くけど 実際のところは共通の処理にしても問題ないよ ただそうなると実際どのコントロールでイベントが発生したかわからなくなるので コントロールのNameで工夫するかTagがあいてるので識別に使うとかすれば いけるでないの?
368 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:27:32 ] >>367 こういうときはその方法(NameかTagで区別する)が定石なんですか? private void panelClick(object sender, MouseEventArgs e) という関数で sender instanceof Panel ってやれるといいんですがinstanceofないんですね sender.GetType().ToString() == "System.Windows.Forms.Panel"だといけそうですが ちょっと冗長ですよね
369 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:31:07 ] as
370 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:36:47 ] >>368 上にでてる >panel.MouseClick += panelClick; >label.MouseClick += panelClick; >pictureBox.MouseClick += panelClick; こういう共通関数で処理する場合 object senderで送られてくるのはpanelだけじゃなくなってるので どこかで識別しないとたぶんキャストでこけるよ panel.MouseClick += panelClick; panel.Tag = 1; label.MouseClick += panelClick; label.Tag = 2; pictureBox.MouseClick += panelClick; pictureBox.Tag = 3; といった感じで識別コードでも用意して int ControlCode = (int)sender.Tag;
371 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:41:36 ] >>370 一部訂正 private void panelClick(object sender, MouseEventArgs e) { int ControlCode = (int)sender.Tag; //どのコントロールから来たか判断 //instanceofの代わりにキャストすればいい Panel panel = (Panel)sender; } それかイベントハンドラの入り口だけはきっちりわけちゃって そこから共通の処理関数を呼び出すとか private void panelClick(object sender, MouseEventArgs e) { Panel panel = (Panel)sender; commonfunc(panel.hoge1,panel.hoge2); } //labelやpictureBoxも同じようにする
372 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:44:57 ] >>370-371 Tag使ったほうが比較も早そうですね ありがとうございます
373 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:47:46 ] >>372 Tagはobjectなんでなんでもぶら下がるからいいよ〜
374 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:48:09 ] TagなんてVB6かよ・・・
375 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 16:52:28 ] >>374 グローバルでフラグ持ったりするよりはいいんでないの? 他にコントロール間の関連付けとかいい方法あったっけ?
376 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 17:12:32 ] そもそも、まとめてやりたいはずだったのに、わざわざ区別するのもわからん。 それなら、別のイベントプロシージャでやればいいんじゃね? で、わざわざTagなんぞ使わなくても、is なり == なりで判定すればいいだけ。
377 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 17:12:40 ] >>374 C#って過去の言語の寄せ集めみたいな設計だから Java臭がしてVB6.0臭がするC/C++ぽい言語ってところだよ
378 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 17:45:34 ] それ言い始めたら代入文(=)って全てFORTRAN臭がするってことになるしな。 「・・・かよ」は罵倒にすらならないね。
379 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 17:48:02 ] キチガイが来ました−。
380 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 18:51:25 ] お前のDNAから猿臭がする
381 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 19:44:39 ] MemoryStream ms = new MemoryStream(); XmlTextWriter xtw = new XmlTextWriter(ms, Encoding.UTF8); xtw.WriteStartDocument(); xtw.Formatting = System.Xml.Formatting.Indented; xtw.WriteStartElement("HAGE"); xtw.WriteElementString("HOGE","HOGE"); xtw.WriteEndElement(); xtw.WriteEndDocument(); で、msにXMLを書き込めると思ったら書き込めないんです 何か間違ってるんでしょうか・・・。
382 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 19:48:17 ] XmlWriterをClose/Flushしてない
383 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 19:54:27 ] Tagは便利だけど、これはどうなんだ?って思いながら使ってる。 もっとスマートな方法ないのかね。
384 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 20:01:22 ] Dictionaryなり使って外から管理する手もある
385 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 20:03:16 ] >>383 ないんじゃね? 2ch専ブラのスレ覧のタブ部分とListViewの連動とか スレッドのタブ部分とブラウザー部分の連動はTag使った方が スマートにかけるし、動的生成でとちらない限りはバグを仕込まないしねえ
386 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 20:04:22 ] >2ch専ブラのスレ覧のタブ部分とListViewの連動とか >スレッドのタブ部分とブラウザー部分の連動はTag使った方が >スマートにかけるし、動的生成でとちらない限りはバグを仕込まないしねえ これは割りと見慣れてるGUIの実装の例ってことで・・
387 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 20:19:07 ] 専ブラの例なら、データ構造内に持つのが素直じゃね?
388 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 20:28:26 ] >>387 内部構造は別途持つよ 最終的なそれぞれのリンクの話 目印つけたりして判断ロジック入れるのもいいけど 動的にオブジェクト作るときは関連については全部 わかってるんだから、イベント受けた側で条件式使 わないで何をすればいいかわかるようにすればいい controls.Addでの関連(表示だけの関連) 上panel <-Button 下panel <-ListView Button.Tag └ListView.Tag └内部のデータ構造への関連 ListView └ListViewItem.Tag └内部のデータ構造への関連 内部のデータ構造 ・・・・ こうすればキャスト数回ですぐに処理可能になる
389 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 20:49:05 ] ごめん。全然意味がわからん。
390 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 20:51:44 ] 俺は28%ぐらい理解した
391 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 21:01:19 ] そもそも動的にパネルを生成するのはいいとして、その上のコントロールまで 動的に生成する、などという泥臭いやり方に問題があると思うんだけどね。 上にのっけるコントロールの種類や配置を状況によって変える必要がある、 とかでなければ、UerControlを使うべきじゃないのか。
392 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 21:41:59 ] Tag使うくらいならIExtenderProvider
393 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 22:14:10 ] >>392 やるじゃん
394 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:13:44 ] TcpListenerが気がついたら破棄されてるんですが何ででしょう・・・orz 変数としてはずっと保持してるはずなんですが・・・意味がわからん
395 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:20:23 ] 変なことしてるからだろう
396 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:21:59 ] 設定画面用のフォームを作成してXMLファイルから設定を読み込み。 メニューから設定画面を呼び出すと1度目は表示されるのですが2度目からは破棄されたオブジェクトとなってしまいます。 FormをClose()しているのですがClose()すると破棄されてしまうんでしょうか?
397 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:25:37 ] フォームが閉じると、オブジェクト内で作成されたすべてのリソースが閉じ、フォームが破棄されます。
398 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:25:39 ] うん。
399 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:36:28 ] ああ・・・そうだったんですね・・・orz 1から作り直してきます
400 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 00:33:34 ] モードレスならHideでも行けるぜ
401 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 00:40:15 ] C#って画像を任意の三角形で切り抜いて表示とかできる?
402 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 00:44:31 ] できる
403 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 00:45:17 ] unsafe使わないと遅い
404 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 01:15:28 ] 例えば単にClip領域を設定して描画するだけの話で、そう遅いとも思えんけどね。
405 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 03:54:01 ] >>391 まあサンプルが2ch専ブラの話だしねえ 既存の2ch専ブラを模倣するとそういう実装になるってことじゃないの?
406 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 08:44:15 ] // Form: DoubleBuffered = true private void Form1_Resize(object sender, EventArgs e) { this.Invalidate(); } Image im = Properties.Resources.画像; FontFamily fontf = new FontFamily("Times New Roman"); StringFormat stringf = new StringFormat(); private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; using (GraphicsPath path = new GraphicsPath()) using (Brush ib = new TextureBrush(im)) { path.AddPolygon(new[] { new Point(200, 50), new Point(50, 250), new Point(250, 250) }); path.AddString("Drawing", fontf, (int)FontStyle.Bold, 72, new Point(0, 0), stringf); float sc = this.ClientSize.Width / 300.0f; path.Transform(new Matrix(sc, 0, 0, sc, 0, 0)); g.SmoothingMode = SmoothingMode.AntiAlias; g.Clear(Color.Black); g.FillPath(ib, path); }}
407 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 09:05:55 ] >>406 そのコードは何をしたいんだ
408 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 09:11:51 ] >>401 への回答だろ。流れ的に
409 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 10:31:07 ] >>406 アンカーくらいつけろよ、くちべた君(笑)
410 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 11:58:37 ] 必死に考えて、ケチつける所が「アンカー付いてない」だけなんてwww
411 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 12:11:54 ] しかも「くちべた君」w
412 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 12:16:59 ] C##
413 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 12:27:08 ] >>401-408 で何事か起きたわけでもないのに>>409 でなぜ罵倒に至ったのか…
414 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 13:19:07 ] >>406 やってみたらできました ありがとうございます
415 名前:デフォルトの名無しさん [2010/02/22(月) 16:01:42 ] C#初心者です。 以下のようにタイマー割り込みが来るたびに newでインスタンスを上書きするような記述はおかしいでしょうか? なんかどんどん処理が重くなってる気がするんですが・・・ 原因がここじゃないかと思って質問しました。 よろしくお願いします。 class hoge1 { public hoge1(int i) { //コンストラクタ } } class hoge2 { timer割り込み() { myHoge1 = new hoge1(i); i++; } hoge1 myHoge1; int i=0; }
416 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 16:04:24 ] >>415 そのnewをやめて軽くなるならそれが原因じゃね?
417 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 16:15:00 ] DisposeやFinalizeがあるクラスでなければ、 ほとんど問題にならないと思うよ。
418 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 16:17:40 ] 何がどれぐらい重くなるのかも調べずに「気がする」って言われてもなぁ
419 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 16:17:49 ] ほとんど問題にならないと思うよね。
420 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 17:01:54 ] 問題は毎回 new する必要が本当にあるのかどうか
421 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 18:02:57 ] 普通に考えると、この程度で体感できるほど重くなる筈がない。 勘違いか見当違いの所探してるだけだろ。
422 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 18:33:36 ] へえ
423 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 18:35:44 ] 別の場所かコード端折ったとこに原因があるか
424 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 19:11:50 ] newしてるクラスがかなり小さく、かつ内部でアンマネージ捕まえてたりすると重くなるかも
425 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 20:41:19 ] たしかに
426 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 22:41:00 ] 適当に重くなったときにCGに強制回収させてみて、それっから処理が軽くなったら・・・とかで調べてみるとか
427 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 05:18:54 ] >>408 >>406 だけ見ると>>401 が試行錯誤してコード書いたけどうまくいかなくて質問 来た様にも見えるしなあ 結論とすれば>>409 のいうことだよ
428 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 07:22:45 ] くちべた君(笑) これははやるかもしれん
429 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 19:21:55 ] 某フォーラムで提供されているライブラリー(mmf.codeplex.com/releases/view/40043 )を使って、 メモリーマップドファイル版のListのジェネリッククラスを作った。 www6.atpages.jp/~autonomydoll/object/files/VaribleList.zip 15MBのテキストファイルで実験したら、31MBぐらいディスクスペースを消費して、プロセスのワーキングセットが80MBを超えた。 おまけに、読み終わるまで3分近くかかって、使い物にならない。 構築がこれよりも早いデーター構造はない?
430 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 19:28:28 ] CLRでファイルマッピングがサポートされるのはV4からだっけ? どういう構造のライブラリーか知らないが、普通にP/InvokeでファイルマップのAPIを使うと、 ネイティブのViewからマネージドメモリへマーシャリングが起きると思うんだけど。
431 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 19:44:04 ] SQL Server Compact Editionでも使えばと言いたくなるのだけれど
432 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 23:32:17 ] 自宅でgoogleで「C#」で検索してもCしかかからないんだけど 会社で検索するとちゃんと出る… なんか設定とかあるのかねこれ
433 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 23:43:30 ] アドレスバーにq=C%23って出てるか?
434 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 00:37:45 ] 他のキーワードとあわせてC#検索したらその後からC#単独で検索しても 引っかかるようになった。 どんなロジックなんだgoogle… >>433 出てるよー
435 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 01:50:33 ] FILE_ATTRIBUTE_TEMPORARY指定の一時ファイルを使って、 擬似MemoryStreamを作ったことならある。
436 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 01:55:40 ] >>429 よく見てないがそれ以前にシリアライザなんか使ったら遅いに決まってる。
437 名前:デフォルトの名無しさん mailto:sage [2010/02/25(木) 12:50:48 ] >>434 普通に前回までの検索結果が反映されてただけじゃないの?
438 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 22:31:57 ] >>430 P/Invokeってそんなにコストがかかるの? ライブラリーのソースを調べたら、思いっきり使いまくってるんだが・・・
439 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 22:41:59 ] P/Invokeのセキュリティチェックと、場合によってマーシャリングはそれなりにコストはかかるが、 メモリマップした後の単なるポインタアクセスじゃそんなの関係ないからそう影響はない。 もちろん、例えばタイトなループ内でP/Invokeを繰り返したら影響はでかい。 それとは別に、カーネルモードへの移行が必要となるようなAPIでは、 P/Invokeとは関係なくかなり負荷が高い。 カーネルオブジェクトの操作する場合など。
440 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 22:44:20 ] セキュリティチェックを省いたり、bittableなやり取りだけになるように工夫すれば、大した負荷はない。
441 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 22:44:23 ] メモリーマップドファイルて普通の業務アプリ使ってて何に使うのかぱっとおもいつかん・・ DBとかだと有効かもしれんが普通DB使うだろうし・・・ ん〜・・・ だれかおいしい使い道教えてくれ
442 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 23:16:01 ] >>441 エディターの類。 巨大なファイルもファイルマッピングで編集すると、効率がいいらしい。
443 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 23:34:08 ] 巨大なファイル使う時ぐらいでしょ。 業務アプリでは考える必要ないと思う。
444 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 23:34:25 ] プロセス間である程度大きいデータを共有したいときとか。 で、かつ、ファイルやDBとか使えないときに使ったことがある。
445 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 23:48:51 ] どなたかDelphi使いでC#に乗り換えた方いますか? DelphiでのTGraphicControlみたいに簡単にグラフィック系のコンポーネントを作るには C#だとなんてクラスを使うんですかね? C#でメータとかグラフとかのコンポーネントを作りたいんだけど・・・
446 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 23:50:51 ] WPFつかえばらくちんぽんで出来るYO!
447 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 23:53:45 ] Controlから直接派生してOnPaintをオーバーライド まあWPF使えばコード一行も書かずに何でも描けるけどね
448 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 00:01:16 ] あら、即効で・・・ WPFですか。 ちょっと勉強してきます。 ありがとうございます。
449 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 00:23:36 ] >>442-444 サンクス なるほど・・・勉強になった
450 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 01:13:25 ] SqlCommandにパラメータ付のSQL文を設定した場合、プロファイラでトレースすると exec sp_executesql N'SELECT * FROM TAB WHERE COL = @VAL',N'@VAL char(1)',@VAL='a' 上記のような文字列(上記は例)が取得できます。 この文字列をプログラム上からログに落としたいと思っています。 どうにかして文字列を取得することはできないでしょうか? SqlCommandのパブリックなメンバでは取得できないので リフレクションとか使えば取得できるかと思ったのですが、 この文字列を保持しているプライベートなプロパティが見つかりませんでした。
451 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 02:14:01 ] むしろSQLクライアントでログ取ればいんじゃね? 少なくともOracleのにはあったハズ
452 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 08:56:17 ] パケットキャプチャすればいいよ
453 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 11:43:51 ] 俺はparametersを自力で展開してたけど、いいやり方あるのかな Nullの扱いと’のエスケープをちゃんとすればログのSQLをコピペして使えたけどどうなんだろう
454 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 13:29:17 ] オレもいい案があれば知りたい
455 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 18:57:02 ] bool createPanel(){ ... bodyLabel.Text = "テスト"; bodyLabel.Width = this.Width - 20; bodyLabel.BorderStyle = BorderStyle.FixedSingle; ... panel.Controls.Add(bodyLabel); return panel; } こういう関数を繰り返し呼び出して、 出来たパネルを、別のメインとなるパネルに縦に並べていっているんですが、 メインパネルのサイズ以上に並べたあたりから(メインパネルはAutoScrollをtrueにしてあります) bodyLabelの見た目の長さが違ってくるんですが、なぜでしょう? 見た目としては↓みたいな感じです。 [テスト ] [テスト ] [テスト ] [テスト ] [テスト ] デバッガで止めてみると、bodyLabel.Widthの値自体は同じものでした。
456 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 19:41:08 ] きちんと切り抜きして出直し。 boolのControlsプロパティにAdd? 問題はpanelの方だろさ。
457 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 19:51:39 ] >>456 すいません bool createPanel(){ Panel panel = new Panel(); Label bodyLabel = new Label(); ... bodyLabel.Text = "テスト"; bodyLabel.Width = this.Width - 20; bodyLabel.BorderStyle = BorderStyle.FixedSingle; ... panel.Controls.Add(bodyLabel); return panel; } パネルとパネル上のラベルは関数内で生成してます。
458 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 19:56:42 ] >>457 ふざけてるのかw
459 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 20:02:22 ] >>458 え、なんでしょう?まじめなつもりです
460 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 20:13:40 ] これ、コンパイル通るのか?
461 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 20:18:14 ] どうやったらコンパイル通るんだろう using bool = System.Windows.Forms.Panel;は通らないね Panelは質問者自身が作ったクラスで、boolへの暗黙の型変換演算子をオーバーロードしてるのか
462 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 20:33:18 ] あああすみません、今気付きました; 関数の戻り値のほうですか もちろんboolではなくてPanelです
463 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 23:29:59 ] うん、で、panelのプロパティ設定には問題ないのか?という話。
464 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 00:03:14 ] というかまあ、問題が再現可能なコードを書いてそのままコピペしてない時点で、 言っちゃ悪いけどもう「問題」は質問者自身の問題解決能力にあることがはっきりしてる。 こういう人ってどういう思考回路してるんだろう。 マジで理解不能。
465 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 01:14:54 ] 多分だけど、まるごとコピペすることが手抜きに思えたりするんじゃない? だから手動でわかりやすく抜粋しているつもりなんだよ。 はた迷惑だけどね。
466 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 10:59:02 ] 抜粋じゃなくて隠蔽だけどな
467 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 13:21:57 ] .NET 2.0のlistviewで質問です。 View=Details、オーナードロー、仮想モード、MultiSelect=true、HideSelection=falseにしています。 カラムをクリックしたらソートするようにしてるんですが、選択行が変化しません。 たとえば3行目が選択されていたとして、ソートの結果3行目のデータが2行目に移動しても 相変わらず3行目のみ選択された状態になります。 このあたりの処理も何となく自分でやらなきゃとは思うんですが、どうしたらいいでしょうか?
468 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 14:49:58 ] オーナードローなんだから自分で描画が必要でしょう。 OnDrawColumnHeader、OnDrawItem、OnDrawSubItemのイベントを自分で記述する。
469 名前:467 mailto:sage [2010/02/28(日) 15:10:36 ] >>468 それらのハンドルは記述していて、ソートを行わなければ正常に表示されます。 問題は、ソート後に描画しようとしているデータがソート前に選択されていたかどうかを どうやって知るか、ということだと思うんですが。
470 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 15:11:11 ] オナニードロー
471 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 15:33:11 ] >>467 それはオーナードロー関係ないんじゃねーの? ソートをかけるタイミングで行の位置じゃなく選択行のデータを覚えてて ソート後にそのデータに対して選択をセットする・・・とかだろ
472 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 15:34:53 ] VirtualModeの場合、 まず、各アイテムの選択状態も自分で保持しておく必要がある。 で、ソートが終わった後でそれに従ってSelectedIndicesをクリアして追加したりする。
473 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 15:59:24 ] SubItemごとに固有のtag値を持って描画時に判断すればいいんじゃないのか?
474 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 16:12:32 ] ソート前のSelectedItemsから項目コピーしといて、 ソート後にSelectedIndices.Clearして、Itemsの各itemを コピーしといた項目にあるかどうかContainsしてSelectedIndices.Add じゃないかなー?試してないけど。
475 名前:467 mailto:sage [2010/02/28(日) 17:09:14 ] >>471-474 ありがとうございます。 なるほど SelectedIndicesがポイントですね。 ちょっと試してみます。
476 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 00:07:41 ] Assertに引っかかるとダイアログが出る。 だが、そのダイアログが大きすぎで画面からはみ出てしまう。 このままじゃあ、ボタンすら満足に押せないんだが、どうにかする方法はない?
477 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 00:19:11 ] ARIのどれかキーボードで押せばいいんじゃね
478 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 00:56:19 ] 出力するメッセージを減らす
479 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 01:51:37 ] なんでAssertでそんな膨大なメッセージが要るんだ…
480 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 04:17:51 ] >>479 普通にAssertさせたら、ものすごい行数のスタックログが表示されて…以下略
481 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 07:35:13 ] ダイアログにフォーカス映してCtrl+C
482 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 21:29:24 ] mouse enterで設定したテキストを表示させたいんだけど、その表示のさせ方が、htmlでいうaltタグとか画像のtitleタグ みたいに説明を出したい。
483 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 21:30:41 ] ああ途中送信してしまったわかりにくい説明で申し訳ない
484 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 21:33:38 ] ToolTip
485 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 21:49:29 ] ありがとう
486 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 22:52:20 ] WCFのシリアライズ便利だな XmlSerializerよりもずっと使いやすい
487 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 23:15:13 ] >>486 プロレス団体みたいな名前がついた技術は今だにまったく使ったことないやw XMLシリアル化と比べて特にどんな点が便利なの?
488 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 23:18:16 ] 教えない♥
489 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 23:41:16 ] プロパティだけではなくフィールドもシリアライズ可 メンバや型がpublicでなくてもいい Dictionaryもおk 循環参照対応 速い軽い SerializableAttribute, ISerializableにも対応 欠点 XMLのフォーマットはほとんど制御できない。既存のXML文書の読み取りには使えない。
490 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 23:42:38 ] 連続して申し訳ない。 Accessと繋いでデータグリッドビューにデータを表示させてる。 データセットでselect * fromテーブル名 でやってるから主キーまでdgに表示されちゃうんだよね。 編集の時に主キーが一致するものを・・・にしてあるから主キーは絶対取得したい。けどdgにはでてこないでほしい・・・ あとでボタンを押したら選択されてる行の中身を全部からにしたいんだけどうまくいかない。 currentRowsさん調べたけどわからなかった。
491 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 23:43:37 ] 要するにSoapFormatterの出力を普通のXMLに変更したようなもんか
492 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 23:50:34 ] >>490 デザイナでデータソース設定してないの? 列の編集とかできるのに どうしてもコードでやらなきゃ気が済まないってんならLoadイベント辺りでDataGridView.ColumnsからRemoveすればいいけど 現在行とか使うならデータソースにはBindingSource使うのがベター
493 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 23:55:42 ] >>489 なるほど。 型がpublicでなくてもいいのは魅力かも。 XMLSerializerだと、設定値を保存するための他からは用のないインナークラスを publicにする必要があったから。 バージョントレランスはどうなのかね。 メンバーが増えたり減ったりしてもそのまま読めるんだろうか。
494 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 23:57:59 ] 何をシリアライズするかはあくまで明示的に決めるのでXmlSerializerに近いかな 型にDataContract属性を付けた場合はDataMember属性が付いたメンバ(private可)だけがシリアライズされて DataContract属性を付けない型についてはパブリックメンバのみがシリアライズされるようになってる
495 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 00:04:02 ] >>492 dg部分は他人が作ったんだけどめちゃくちゃなソース書いてて、ソース書けないのにデザイナ使わずに設定してた。 removeタメしてみます。感謝。
496 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 00:24:58 ] >>493 とあるゲームで使ってるけど、増えても減っても大丈夫だよ。 ないバージョン→あるバージョンの場合は、エラーにならないが追加されたフィールドは初期値 なので自分で初期化しないと駄目。 特に a= new hoge()とか書いているやつは、newされていないので自分で生成する必要がある。 今OS再インスコしたばかりで手元にないけど、確かデシリアライズされた時に呼ばれるメソッドが あるのでそこで初期化すればいい。 あるバージョン→ないバージョン シリアライズされたフィールドは無視してくれる。 特に処理必要なし。
497 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 00:26:44 ] ごめん、WCFのシリアライズじゃなくて.Netのシリアライズの話だったorz
498 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 06:24:13 ] Webプログラムしか経験がなく動画処理に手を出してみたくてC#はじめました ttp://support.microsoft.com/kb/436361/ja これを見てソースをコピペして適当な動画にさしかえて実行したところ 音声がなるのみで映像がでてきませんでした 何を追加したらよいのでしょう? コメントもないし何をしてるかよくわかりませんが 一応実行できるソースをいただければ後は頑張って調べてみたいと思うので どうかよろしくお願いします しかしMSDNのドキュメントは読みづらいですねIDE(VC#)も使いにくいし・・・ なれるまで時間かかりそうorz
499 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 06:41:24 ] MSDNが読みづらいってのは同意するけど、VS以上のIDEって存在するか?
500 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 08:30:41 ] 月蝕
501 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 09:00:39 ] eclipse も VS も似たようなもんだと思うけどなぁ。 シコシコ書くなら emacs ちゃん!
502 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 09:35:05 ] >>498 うちはXPだけど、再生するファイルを以下にしてちゃんと表示された objMC.RenderFile( @"C:\WINDOWS\clock.avi" ); //このファイル何のためにあるんだろ 映像codecの問題じゃないかな その映像が出ない動画、エクスプローラからダブルクリックで表示される?
503 名前:デフォルトの名無しさん [2010/03/03(水) 09:37:42 ] >>502 windows98くらいからの名残じゃなかったっけ? //このファイル何のためにあるんだろ システムフォルダに結構昔からの名残があったりするよ
504 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 10:29:44 ] Win3.1のVideo for Windowsにもあったな。
505 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 13:33:08 ] >>496 それは問題ないとは言わないだろうw XmlSerializerやDataContract(WCF)では中身を丸々保存するんじゃなくて 外から見て書き写すので実装がごっそり変更されてもかまわない
506 名前:498 mailto:sage [2010/03/03(水) 16:57:24 ] レス遅れてすみません。 >>502 さんのファイルにしたら再生することができました。 他のaviで試してみたところ正常に動作したので 最初に実験に使ったファイルがmpgだったのがいけなかったようです。 コーデックはffdshowが使われているようです。 wikipediaの説明を見るかぎりコーデックが入ってればなんでも再生できそうな雰囲気だったのですが、 何か勘違いしているのかもしれません。 再生できましたのでソースの意味をこれから調べてみたいと思います。 レスいただいた方ありがとうございました。 ちなみに普段使ってるのはEclipseです。 似たようなもんなんですけど何かが違う・・・ 何がおかしいのかよくわからないけど細かいところで違和感が・・・ とそんな感じです。
507 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 22:21:12 ] ボタン押したらパネルのbackground imageを無くして初期状態にしたんですがどうすればいいでしょうか
508 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 22:38:11 ] したんだったらそれでいいじゃないか したいんだったらnull入れとけ
509 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 07:54:54 ] メモ帳なんかで保存しないで閉じた時になるようなサウンドなんですが こういうWindows専用のプログラムって Windowsフォルダ内にそういうファイルがあると踏んでプログラムするもんなんでしょうか?
510 名前:デフォルトの名無しさん [2010/03/04(木) 07:58:48 ] >>509 あれはwindowsのシステムサウンドを鳴らしてるだけでしょ windows システム サウンド とかでググルとわかるよ
511 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 08:33:00 ] >>510 ありがとうございます 鳴らすための専用のプロパティまで用意されていたんですね 簡単に鳴らすことができました
512 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 00:52:45 ] >>511 それぞれの時に鳴る音はWindowsの設定で変更できるよ
513 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 05:18:19 ] 普段まったく見えないコンポーネント群の中で どれがどういう奴か網羅してるサイトとかってある?
514 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 06:19:50 ] > 普段まったく見えないコンポーネント群 ってなんだよ?
515 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 08:57:49 ] .NETでコンポーネントっつったらIComponent継承してる奴全部だと思うけど 全部網羅してる奴なんてMSDN以外にないだろうな
516 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:11:43 ] 正規表現で、 Hoge(Hoge(Hoge("unko","unko2"),"hogehoge"),"syobo-n") みたいのを解析したいとしたらHoge(xxx,xxx)のような感じでかつなかにHoge(xxx,xxx)を含まないものでマッチさせて、 それを取得するとともに適当な文字、たとえば###にReplaceしてその上の階層をマッチさせて…みたいな感じになるのかの. まんどくせorz
517 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:12:12 ] WPFのコンポーネントはIComponent使わないよ
518 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:15:48 ] >>516 一番いいのは解析しなくて済む方法を考えることだお
519 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:21:15 ] >>516 ちゃんとソースコードの解析とかDSLとかやりたいんだったら 伝統的なコンパイラ製作の手法を使ったほうがいいよ C#ならGPPGとか使ってパーサを生成する
520 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:21:17 ] こんなの解析したとしてもしれてるだろ
521 名前:デフォルトの名無しさん [2010/03/05(金) 10:22:11 ] >>516 こちらへ 正規表現 Part6 pc12.2ch.net/test/read.cgi/tech/1241537764/ c#の独自の機能ってわけじゃないので
522 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 10:51:58 ] 入れ子のある構造は正規表現向きじゃないな
523 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 11:38:15 ] >>514 ツールボックス右クリック アイテムの選択で出てくるリストで チェックされて無いやつ全部
524 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 11:43:44 ] MSDN以外にあるわけねえだろ
525 名前:デフォルトの名無しさん [2010/03/05(金) 11:45:33 ] なんかでるなあ グレーアウトというか半透明で後ろの色と重ねてあるというか・・・そんな表示で 部品の名前見てるとVB6.0時代の名残?
526 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 11:58:23 ] 引数の形式を>>516 の(再帰, "文字列")に限るなら (?<id>[\w\W]+)\((?<r>.*),"(?<str>[^"]*)"\) で最長一致でキャプチャしてrについて繰り返せばいけそう 一般的にやるのは.NETの正規表現だけではたぶん無理
527 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 13:28:13 ] .NETにはじめから付いてるコンポーネントの中でデフォルトで ツールボックスに表示されてないものは実際あんまり使うことないと思うよ VB6っぽいのはたぶん.NETじゃなくてCOMのコンポーネント COMの方はどうしてもというわけでなければなるべく使わない
528 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 15:53:32 ] >>527 乗り物全集の中で、デフォルトが自家用車だらけなのに 裏ではこっそり1輪車からアポロとか回天とかあったらさ・・・ 必死なときは回天使ってみたい場合もあるじゃん 知らなきゃ自動車を容器で包んで見た目潜水する特攻≠自沈機械つくらなきゃならん
529 名前:デフォルトの名無しさん [2010/03/05(金) 15:56:14 ] 何が言いたいかわかりにくいよw 理解したけどw
530 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 17:16:04 ] で、誰もメンテできない、糞アプリが出来上がると
531 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 18:26:00 ] System.Drawing.BitmapをDIBSectionみたいにピクセルにポインタで 高速にアクセスしたいんですけどどんな感じで実現できますか。 ゲームで利用するためにαブレンドとか加算合成とかを実装したいです。
532 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 18:59:21 ] LockBitsでググれ でもどっちにしろGDI+でゲーム作るのはやめたほうがいいと思う DirectXやWPF使えば全ての努力が虚しくなるくらいの圧倒的な速度が簡単に得られる
533 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 19:03:08 ] LockBitsしてBitmapDataに書き込みしてUnlockBitsで書き戻し ただしコピーが入る WPFでPixelShader使った方が早いかも知れない
534 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 19:47:14 ] なるほどやっぱりメモリ直接触れないのがネックですね。 WPFってコントロールをXML経由で制御するイメージがあって 遅いと思い込んでたんですけどちょと試してみようかな… C++ではDIBSection使ってたからDirectXはちょっと今更感が… ありがとうございました。
535 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 20:54:30 ] WPFもDirectXベースだからな αブレンドや加算合成などは自分では一切実装せずに全てハードウェアに丸投げするのが基本
536 名前:516 mailto:sage [2010/03/05(金) 22:40:20 ] いろいろレスあり。 正直ANTLRでも使いたいところだけど、ほんの一箇所の機能のためにランタイムDLLがいくつも増加するのがなぁ…
537 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 00:19:13 ] 字句解析 & 構文解析は書いてみると想像してるより結構簡単だから 限定された部分だけなら自前で書いちゃうのもありだと思うよ。
538 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 00:32:22 ] 今の時代PCでもCPUとメモリのリソースが滅茶苦茶多いしブーストラップの必要も全くないから 字句解析と構文解析なんてあんまり神経質にならなくても適当な資料当たって組めば良いと思うよー
539 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 00:38:32 ] ANTLRはランタイムライブラリの出来が悪いんだよなあ Ironyなんか面白そう
540 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 01:59:45 ] GDI+はラスタオペレーションなくなったのか 殺してやる
541 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 05:17:04 ] >>540 つうほうしました
542 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 11:24:10 ] 時代はピクセルシェーダだよ WPFはもちろんSilverlightでもサポートされてる
543 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:19:54 ] やっぱWPFやんなきゃダメだな orz
544 名前:デフォルトの名無しさん [2010/03/07(日) 00:30:38 ] C#の文法的なことを聞きたいのですが、 Button のClickイベントにプラスするdelegateの匿名メソッドの中でthisって書いてもこのthisはButtonでなくFormをさすんでしょうか? ちなみに、Form1の中にButton1があり、Form1.cs(class名:Form1)のファイルに書いています。
545 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 00:32:49 ] うん JavaScriptとは違うというかJavaScriptが異端
546 名前:544 mailto:sage [2010/03/07(日) 00:35:47 ] >>545 ありがとうございます。 JavaScriptだと逆の結果になるんですね。 とりあえず、C#の場合はFormをさすということがわかり、ありがたいです。 結構長い間疑問だったんで・・ありがとうございました。
547 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 08:30:37 ] >>546 >C#の場合はFormをさすということがわかり ちょっと違う >>544 の例としてはそうだけどね 正確には今コード書いてるクラスのことになる IDEでコード書く場合はFormクラスを継承したForm1にコードを書くことが多いので thisがForm1をさしてるけど buttonを継承したクラスを作ってその中でthisを使えば buttoを継承したクラスをさす class MyButton : Button { public MyButton() { //この場合はMyButtonのこと this.size = new Size(120,30); } }
548 名前:544 mailto:sage [2010/03/07(日) 16:24:51 ] >>547 どうもありがとうございます。今書いてるクラスが主?っていうかthisの主体になるんですね。 よ〜く、わかりました。勉強になりました。ありがとうございました。
549 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 19:48:15 ] クラスというよりはインスタンスだな staticメソッドでは使えないから
550 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 22:48:55 ] ちょいと質問 SELECT Format([日付テーブル]![日付],"yyyy/mm/dd") AS 年月, スケジュール.タイトル, スケジュール.メモ帳 FROM スケジュール ORDER BY Format([日付テーブル]![日付],"yyyy/mm/dd"); これC#で使いたいんだけど、yyyy/mm/ddのところどう書いたらちゃんと動いてくれる?
551 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 23:42:30 ] >>550 LINQでってこと? これでいける。 using (var context = new MyDBDataContext()) { var rows = context.Order .Select(r => string.Format("{0:d}", r.transactTime)); foreach (var row in rows) Console.WriteLine(row); }
552 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 23:45:40 ] >>550 これC#というよりSQLだよね FROMに指定されてないテーブル参照してるよ 使ってるDBとエラーメッセージくらい書こうね あと自動で作成されたSQLそのまま使うより もう少し簡潔にした方が良いよ
553 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 01:37:00 ] そうか、春休みか。
554 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:35:42 ] なぜかMSDNの字が小さく変更されたような
555 名前:デフォルトの名無しさん [2010/03/09(火) 13:10:44 ] ライトウェイトがすばらしい
556 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:42:17 ] ・構造体では、インターフェイスを実装できます。 なんか意味あんのかなこれ
557 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:43:42 ] なぜ意味が無いと思ったのか聞きたい
558 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:31:51 ] IComparable<T>とかIEquatable<T>とかは知らないうちに恩恵にあずかってる
559 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:38:10 ] 1/1 Type.GetTypeで希望のTypeを取得出来なくて困っています。 取得したいTypeはアプリケーションのプロジェクトとは違う、 ライブラリ用プロジェクトで作成されたアセンブリ内のclassのものです。 アプリケーションのプロジェクトにて、ライブラリ用の プロジェクトをインポートして使用しています。 テストコードでは下記のようにしてみました。 System.Reflection.Assembly asm = System.Reflection.Assembly.LoadFrom( "Lib.dll" ); var _targetType = typeof( KML.FileFormat.PseudoXML.ASDASD ); Type _type = Type.GetType( _targetType.FullName, true, false ); 症状は TypeLoadException が発生します。
560 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:41:17 ] 2/2 そこで、アセンブリ名を指定して Type _type = Type.GetType( _targetType.FullName + ",Lib.dll", true, false ); とした場合は、GetType内で、 System.IO.FileNotFoundException: ファイルまたはアセンブリ 'Lib.dll'、またはその依存関係の 1 つが読み込めませんでした。 との事、なので Type _type = Type.GetType( _targetType.FullName + @",C:\aa\bb\cc\Lib.dll", true, false ); とし、アセンブリへのフルパスを指定した場合は、 System.IO.FileLoadException: 指定されたアセンブリ名またはコードベースは無効です。 となり、いずれも目的を果たせませんでした。 ITMediaやリフレクションの記事を掲載しているブログなどは、 簡単に実現できるような感じで書いているのですがなかなか上手くいきません。 どなたか問題点をお教えいただければ幸いです。 よろしくお願いします。
561 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:43:35 ] 作業環境は、 OS:VISTA32bit VisualStudioC#2008ExpressEdition 対象フレームワークの設定は3.5です。
562 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:45:49 ] 何をしたいのか分からん アセンブリを動的ロードするならAssembly.GetTypeとか使えばいい
563 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:53:48 ] 最終的にやりたいことは設定ファイル(text)に基づいて、 指定のclassをインスタンス化する事です。 その前段階で指定したclassのTypeが必要なようですので、 Type.GetTypeで得ようと試みていたところです。
564 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:57:36 ] > その前段階で指定したclassのTypeが必要なようですので、 そのTypeはLoadしたAssemblyオブジェクトからAssembly.GetType等で取得するもの
565 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 18:00:50 ] どうでもいいけど 1/1、2/2じゃなくて1/2、2/2じゃないのか?
566 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 18:14:51 ] >>562 >>564 ご指摘ありがとうございます。 Assembly.GetTypeで上手く取得できました。 >>565 たしかに・・・。 申し訳ない。
567 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 23:22:48 ] > その前段階で指定したclassのTypeが必要なようですので、 くそわろた。
568 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:50:15 ] 1/1,2/2が地味にきくわ
569 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 14:30:19 ] すみません。質問です。 XMLの件なので、こちらで聞くか迷ったんですが、こちらでお願いします。 weather.livedoor.com/forecast/rss/warn.xml 上記のXMLを解析しようと思い、Byte配列に受信しました。 そのByte配列をEncoding.UTF8.GetCharsに入れてやるとエラーになります。 原因を調べると、「〜で質問してみましょう」の「質」の字が e8 0d 0a 35 61 38 0d 0a b3 aa となっており、「質」の字の間に改行コード(0d 0a)とよくわからない文字列(35 61 38)が入っていました。 (ちなみに「質」はUTF8でe8 b3 aa) XMLの処理は初めてなので、よくわかっておりません。 こういった経験や、対処された方がおられましたらいい対処法をご教授ください。 環境は.NetMicroFramework、VisualStudio2008Express、WindowsXPProです。
570 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 14:56:31 ] >>569 Byte配列に格納する時点で失敗してる可能性が大。
571 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:19:35 ] これで問題なく読めることが分かる。 using System; using System.Xml; class Program { static void Main() { var xrdr = XmlReader.Create("weather.livedoor.com/forecast/rss/warn.xml "); var xdoc = new XmlDocument(); xdoc.Load(xrdr); xdoc.Save(Console.Out); }}
572 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:37:17 ] 35 61 38 -> 5a8 -> 1448 TCPのデータ長がこんなんだっけ?
573 名前:デフォルトの名無しさん [2010/03/10(水) 15:40:56 ] 受信の際のエンコードはxmlの中にかかれてるので自動で認識した後 勝手にucs-2に変換されてない? xmlとかの問題じゃなく文字コードの扱いを分かってないような
574 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:50:52 ] すみません。 エラーが出たURLは weather.livedoor.com/forecast/rss/earthquake.xml こっちでした >>570 ちょっと調査してみます。 >>571 丁寧にコードまで書いていただきありがとうございます。 一度Byteに格納しないほうがいいんですかね。 ネットワークが不安定なので、一度ローカルに持って行きたかったんです・・・ >>573 ありがとうございます。 正直文字コードの扱いよくわかってないです。 ローカルにByte配列で持ちたかったので、こういう形になっています。
575 名前:デフォルトの名無しさん [2010/03/10(水) 15:52:28 ] >上記のXMLを解析しようと思い、Byte配列に受信しました。 Byte配列に受信しました。 この部分のコード晒せる?
576 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:55:18 ] バイト配列取得以降の問題かもしれない。 Socketクラスを参考にしていた場合、そのサンプルはバグというか不親切。 do { bytes = s.Receive(bytesReceived, bytesReceived.Length, 0); page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes); } をUTF8に変更しただけじゃダメ。これは多バイト文字の途中だろうとお構いなし。 文字の境界を判断するか、それとも全部バッファに取ってから変換する必要がある。
577 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:01:22 ] あ、 0d 0a 35 61 38 0d 0a の理屈が付かないからそれは無いか・・・
578 名前:デフォルトの名無しさん [2010/03/10(水) 16:02:19 ] >>577 うむ エスパーしてもしかたないので >>575 なんだよw
579 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:03:04 ] WebClient.DownloadDataあたりだったら問題ないのかしらん
580 名前:デフォルトの名無しさん [2010/03/10(水) 16:05:10 ] >>579 というか通信にしろファイルにしろエンコード指定しておけば指定したエンコードで読み込んだあと ucs-2に勝手に変換してくれるはずなんだけどな・・・
581 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:10:56 ] >>575 そのままコピペなんで無駄なコードあるかもしれませんが・・・ 一番下のwhile文で1024バイトずつ読み込んで、大きな配列につないでます。 String Server = "weather.livedoor.com"; String URI = "/forecast/rss/earthquake.xml"; const Int32 HttpPort = 80; const Int32 BufferSize = 1024; using (Socket requestSocket = ConnectSocket(Server, HttpPort)) { String request = "GET " + URI + " HTTP/1.1\r\n"; request += "Host: " + Server + "\r\n"; request += "Connection: Close\r\n"; Byte[] requestData = Encoding.UTF8.GetBytes(request); Byte[] recBuffer = new Byte[BufferSize]; Byte[] recBufferFull = new Byte[BufferSize * 100]; requestSocket.Send(requestData, requestData.Length, 0); DateTime timeoutAt = DateTime.Now.AddSeconds(30); while (requestSocket.Available == 0 && DateTime.Now < timeoutAt) { System.Threading.Thread.Sleep(100); } Int32 bytesRead = 0; Int32 bytesReadBefore = 0; while (requestSocket.Poll(10 * 1000000, SelectMode.SelectRead)) { Array.Clear(recBuffer, 0, recBuffer.Length); bytesRead = requestSocket.Receive(recBuffer); if (bytesRead == 0) { break;} recBuffer.CopyTo(recBufferFull, bytesReadBefore); bytesReadBefore += bytesRead; }
582 名前:デフォルトの名無しさん [2010/03/10(水) 16:15:56 ] Socketとかhttpの練習とか学習? 単純にrssリーダーぽいことができればいいとかなら WebClientでデータとってきてxmlに投げるとかすればいいだけだよ
583 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:24:36 ] 応答のHTTPヘッダがなんて言ってるのかも気になる
584 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:33:30 ] >>582 WebClientググったら便利そうですね。 ただ、MicroFrameworkにはないみたいなので、同じような機能のライブラリ提供している方がおられるので、それを利用してみたいと思います。 もしくはHttpWebRequestでいいんでしょうか? >>583 HTTP/1.1 200 OK\r\nDate: Wed, 10 Mar 2010 07:24:48 GMT\r\nServer: Apache/1.3.41 (Unix) mod_perl/1.30\r\nPragma: no-cache\r\n Cache-Control: private\r\nVary: User-Agent\r\nContent-Type: text/xml; charset=utf-8\r\nConnection: close\r\nTransfer-Encoding: chunked\r\n\r\n4ac\r\n ヘッダのstring変換後はこんな感じです。
585 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:35:04 ] chunked
586 名前:デフォルトの名無しさん [2010/03/10(水) 16:36:45 ] >>584 ここのサンプルコードを書き換えたけど問題なく受信できたな dobon.net/vb/dotnet/internet/downloadusesocket.html codepad.org/NVeXkER1 最後のtextboxだけ用意してくれ
587 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:41:33 ] 0d 0a 35 61 38 0d 0a は長さ5a8バイトということか
588 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:42:11 ] >>585 でFAじゃまいか こういうのは透過的に扱ってくれるライブラリ使わないと面倒くさいね
589 名前:583 mailto:sage [2010/03/10(水) 16:42:17 ] >>585 ああやっぱり
590 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:46:10 ] >>586 丁寧に書いてもらってありがとうございます。 MicroFramework用に変更して使ってみます。 >>587 どうやらそうっぽいです・・・そのバイトずつわけて受信すればいいんですかね? >>588 chunkedググってみます
591 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:49:22 ] HTTP/1.1 は chunked で送られてくるからめんどくさいよね
592 名前:デフォルトの名無しさん [2010/03/10(水) 16:49:38 ] >>590 いや・・・ データ本体がそのサイズってことだろ >>586 で受信したテキストデータ HTTP/1.1 200 OK Date: Wed, 10 Mar 2010 07:46:23 GMT Server: Apache/1.3.41 (Unix) mod_perl/1.30 Pragma: no-cache Cache-Control: private Vary: User-Agent Content-Type: text/xml; charset=utf-8 Connection: close Transfer-Encoding: chunked 4ac [rssの一つ] 5a8 [rssの一つ] 5a8 [rssの一つ] 以下略 こんなパターンでくるのか
593 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:52:33 ] もうこの程度ですら自力で実装するのを億劫に感じててヤバイ
594 名前:デフォルトの名無しさん [2010/03/10(水) 16:54:02 ] >>593 そりゃIDE+VC#って人間を退化させるよ パソコン上でIMEになれてしまって咄嗟に漢字がかけない感覚に似てる
595 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:55:45 ] MicroF/WはCompactF/WよりさらにAPIが少ないの?
596 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:59:00 ] >>591 そうなんですか。勉強になります。 >>592 書いていただいたソースは、1024バイトずつ受信してて、resSizeが0になったら受信終わりですよね? どうやってデータ本体毎にわけるのかよくわからないです。 いただいたソースだと4acとか5a8のような不要な情報も入りそうな気がするのですが。
597 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:59:56 ] >>595 そうです。かなり少ないです。 しかも英語ページしかないのでなかなかとっつきにくくて・・・
598 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:01:17 ] >>592 一部訂正 HTTP/1.1 200 OK Date: Wed, 10 Mar 2010 07:46:23 GMT Server: Apache/1.3.41 (Unix) mod_perl/1.30 Pragma: no-cache Cache-Control: private Vary: User-Agent Content-Type: text/xml; charset=utf-8 Connection: close Transfer-Encoding: chunked 4ac [4acバイト分のデータ(文字コードはどれか不明)] 5a8 [5a8バイト分のデータ(文字コードはどれか不明)] 5a8 [5a8バイト分のデータ(文字コードはどれか不明)] 以下略 5a8 [5a8バイト分のデータ(文字コードはどれか不明)] 0 最後は0で終わってる こんなパターンでくるのか
599 名前:デフォルトの名無しさん [2010/03/10(水) 17:04:56 ] >>596 いやそんなに難しくないでしょ 4ac 5a8でバイト数(文字数?)を見て行けばいいだけだし 0d0aは単なる改行コードだしね >>586 のコードをMicroじゃないFrameworkで動かしてみて受信データを見てみなよ
600 名前:デフォルトの名無しさん [2010/03/10(水) 17:06:20 ] 面倒なんでcodepad使わせてもらった codepad.org/hXtU8pZp
601 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:08:29 ] 流れぶった切ってちょい質問 struct A { int x; int xsize; } int sx = 0; List<A> alist = new List<A>(); alist.ForEach(delegate(A a) { a.x = sx; sx += a.xsize; } こういう感じで、構造体リストのある項目を全書き換えしたいんだけども、 forループするしか手はない? いちいちコピー&書き戻しが発生するからできればしたくない・・・
602 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:12:38 ] >>599 全部受信してからそれ毎に区切っていく感じでいいんですね。 それなら簡単そうです。 ちょっとFramework変えてやってみます。 ありがとうございます。
603 名前:デフォルトの名無しさん [2010/03/10(水) 17:51:06 ] >>601 どこかで見た流れだ
604 名前:デフォルトの名無しさん [2010/03/10(水) 17:52:37 ] ふらっとC#,C♯,C#(初心者用) Part56 pc12.2ch.net/test/read.cgi/tech/1267348401/356- こっちだった
605 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:10:11 ] まだ効率だけにこだわっているのか
606 名前:601 mailto:sage [2010/03/10(水) 18:10:45 ] いや別にループ怖いって話じゃなくてwww 構造体コレクションの実体に直接アクセスしたいってだけ
607 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:11:03 ] そっちはループ処理したくないというアホ こっちは多分一時コピー(ry var tmp = alist[i]; // tmpを変更 alist[i] = tmp;
608 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:16:55 ] なんで構造体なんだ? クラスにしちゃえばいいじゃない
609 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:35:40 ] 仕方なく構造体のコレクションを使うときに 効率は別にしてもなんか気持ち悪いのはよくわかる
610 名前:601 mailto:sage [2010/03/10(水) 18:49:47 ] >>608 実体コピー前提の使い方するから>構造体な理由 むしろ間違って参照渡ってしまった時のバグが怖い >>609 そう 値型専用のコレクション操作メソッドとか用意されてないかと思って聞いてみた
611 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:37:42 ] 無限ループって怖くね?(棒読み)
612 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 21:47:24 ] >>610 delegate void RefAction<T>(ref T arg); static void ForEach<T>(this IList<T> source, RefAction<T> action) { for (int i = 0; i < source.Count; i++) { var item = source[i]; action(ref item); source[i] = item; } } 効率は知らん
613 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:12:02 ] そんなことするくらいなら、(サイズが確定した時点で)配列にして普通にfor使う方がまし var array = list.ToArray(); for(int i=0; i<array.Length; i++) array[i].x = 10;
614 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 00:40:16 ] >>602 いまさらだけど、 チャンクのサイズを見て、そのサイズ分読む チャンクのサイズが0なら終わり という風にしたほうが楽だし速いよ
615 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 00:42:56 ] wavファイルを数値データとして見たいのですがどうすればいいですか?
616 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 00:43:48 ] 大して難しいフォーマットじゃねえし www.kk.iij4u.or.jp/~kondo/wave/ でも読め
617 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 16:09:08 ] VC#に、クラスとか関数の関連を表示するナビとかハイパーリンクとかの機能ありますか? いわゆるなんちゃってフローチャート的なやつ
618 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:23:17 ] よくわからんが IDE の話か? VisualStudio のクラスビューとかのことかね?
619 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:28:56 ] クラス図(クラスとか関数の関連を表示するやつ)と、流れ図(フローチャート)は全く別物だが。 クラスビューにはリンク機能は無いけど。一度使ってみれば。
620 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:31:54 ] HSPみたいなもの言ってるのでは
621 名前:デフォルトの名無しさん [2010/03/12(金) 17:35:50 ] フローって作れるか? VC++だったら確か関数の上で右クリックすると関連が見得たりしたけど VC#の場合基本ネームスペース、クラス、メンバ関数とか なのでそんなフローが必要になることってあんまり無いような
622 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:26:25 ] TextBoxを普段非表示にしておいて、マウスオーバーで表示されるようにしたいんだけども Hide()使うとイベント受けてくれない 何かいい手はありますか?
623 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:27:30 ] 表示位置覚えといて親コンテナのマウス移動で表示するかどうか決めるとか?
624 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:28:26 ] >>622 透明にすればいいんじゃない
625 名前:デフォルトの名無しさん [2010/03/12(金) 19:31:30 ] >>624 textboxは透明にするのは難しいんじゃないかな? なんかこのスレかふらっとC#でバックカラーとかをいじっても透明にできなかった とか書き込みがあった記憶が
626 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:33:03 ] GDI+を使えばいいと思うよ
627 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:27:14 ] 今日気がついたんだけど、Windows Form上のコントロールのアプリケーション設定 (プロパティバインディングって言った方がいいのかな)ってローカライズに 対応してないのかな。 何が言いたいかというと、FormのLanguageで設定する各言語ごとに プロパティバインディングされたプロパティのデフォルト値を設定する方法がないものかと。 とりあえずリソースと同じようにSettings.settingsをコピーしてSettings.en.settings とかやってみたがダメだった。
628 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:38:29 ] >>622 普通に誰でも思いつく泥臭い法でいいんじゃない? つまりFormのMouseMoveイベントでマウスの座標を監視して、(hideしてある) TextBoxの場所にマウスポインタが来たらShow()すると。
629 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:36:28 ] 同じ座標に無地のピクチャーボックスを置いて そっちでイベントを受け取ってみるとか
630 名前:622 mailto:sage [2010/03/12(金) 23:35:19 ] WPFのトンネルイベントみたいなのがあるかと思ったらそんなことはなかったぜ!と言う事かあ 見た目だけじゃなく存在自体が消えてしまうのは何とかならないのかなあ>Hide()
631 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 23:38:19 ] >>630 Visible=false;
632 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:13:56 ] 派生クラスで適当に幾つかオーバーライドするだけじゃないの とりあえず、OnPaint, OnMouseEnter(OnMouseHover), OnMouseLeave あたり もしかしたら、OnPaintBackground も必要かも
633 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:26:36 ] マウスオーバーでテキストボックス出てくるとか使いにくすぎるw どういう使い道なんだ
634 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:31:33 ] >>622 作ってみた。でもかなり対症療法的なコードなのであまり真に受けない方がいいかも。 class TextBoxEx:TextBox { private bool SuppressesPaint { get; set; } private bool mIsTransparent = false; private bool IsTransparent { get { return mIsTransparent; } set { if (value != mIsTransparent) { mIsTransparent = value; if (IsTransparent) { SetVisibleCore(false); SuppressesPaint = true; SetVisibleCore(true); } else { SuppressesPaint = false; SetVisibleCore(false); SetVisibleCore(true); } } } }
635 名前:634 mailto:sage [2010/03/13(土) 00:32:35 ] protected override void OnMouseEnter(EventArgs e) { base.OnMouseEnter(e); IsTransparent = false; } protected override void OnMouseLeave(EventArgs e) { base.OnMouseLeave(e); IsTransparent = !Focused; } protected override void OnEnter(EventArgs e) { base.OnEnter(e); IsTransparent = false; } protected override void OnLeave(EventArgs e) { base.OnLeave(e); IsTransparent = true; }
636 名前:634 mailto:sage [2010/03/13(土) 00:34:10 ] protected override void WndProc(ref Message m) { const int WM_PAINT = 0x000F; const int WM_NCPAINT = 0x0085; switch (m.Msg) { case WM_PAINT: case WM_NCPAINT: if (SuppressesPaint) return; break; default: break; } base.WndProc(ref m); } } - 以上 -
637 名前:634 mailto:sage [2010/03/13(土) 00:50:28 ] 親がアクティブじゃない時の挙動がおかしいな。 コントロール関係はいろいろ面倒臭いなやっぱりw 思いもよらないところに落とし穴が潜んでたりするし。
638 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 01:15:19 ] VC#に最初から入ってるコントロールはイベント処理が微妙なのが多い気がする。 やりたいことがなかなかできなくて、結局自前でフラグ立てながら状態遷移を管理するハメになったり。
639 名前:デフォルトの名無しさん [2010/03/13(土) 07:05:42 ] 配列構造体で、 struct vector { public int x; public int y; } private void method{ vector[,] point = new vector[100, 100]; for (int i = 0; i < 100; i++) { for (int j = 0; j < 100; j++) { point[i, j].x = i; point[i, j].y = j; } } } private void exchange() { } このプログラムで、exchangeでmethodで定義したpoint[,].xを使いたいですけれども、どうすればいいんだ
640 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 07:14:17 ] 無理だろ。引数で渡すとかスコープを変えるとかせんと。
641 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 08:09:02 ] 関数の戻値か同じクラス内ならメンバーに持てばいいだろ。 private vector[,] method() { : return point; }
642 名前:デフォルトの名無しさん [2010/03/13(土) 11:23:51 ] それじゃまだ実現不可能。
643 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:27:49 ] 一応>>634 がいい奴だってことはわかった
644 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:48:19 ] 認識しないからといってインデントに全角スペースを使う男の人って…
645 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:57:19 ] >>644 やめて〜!!
646 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:03:13 ] 2ちゃんねるではよく使うなぁ
647 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:16:55 ] 全角スペース便利 みんなこれからもどんどん使おうね
648 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:17:39 ] むしろ2ちゃんだと先頭の半角とかは無視されなかった?
649 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:54:23 ] 無視はされない。datでもcgiでもちゃんと残っている
650 名前:デフォルトの名無しさん [2010/03/13(土) 13:02:08 ] codepadとか使えよ codepad.org/ C#は選択肢にないけどCにしておいて右下のRun Codeのチェックはずしてsubmitボタン押すだけじゃねーか codepad.org/HfKzapzv
651 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:02:29 ] 2ちゃんビューワとかブラウザで見ると無視されるな
652 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:14:46 ] 通常WWW UAは連続するホワイトスペースは一つの半角スペースに置き換えて表示するからね こういった利用者が書式を指定できない掲示板では仕方がない
653 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:19:46 ] preタグを認識してくれればいいんだけどな
654 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:58:19 ] nbsp使えよ
655 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:18:37 ] nbsp使ったら、>>レス番 でポップアップしたときに nbspって文字列でてこなかったっけ?
656 名前:655 mailto:sage [2010/03/13(土) 16:19:39 ] でてきませんでした。
657 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:44:27 ] test \s \t %89 test test
658 名前:デフォルトの名無しさん [2010/03/13(土) 17:44:29 ] C#4.0も良いけど、C#からC++のクラスや関数をC++/CLIを経由すること なしに簡単に(透過的に)呼び出せるようにしてほしい。 C++/CLIなんていらない。文法がややこしくなるだけだ。VC++は .Net Frameworkと同じインターフェースをもったNativeなGUI ライブラリの開発に専念してほしい。 C++0xが正式に確定していない現在、動きがとれんだろうけど 以上の事をMSがやってくれたらC#を使う気になる。
659 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:46:58 ] 使わなくていいよ。
660 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:49:08 ] >>658 使う気になるとか C#しか使えない人に失礼だろw
661 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:57:45 ] そんなに使いたくないなら使わなければいいのに 他にも選択肢はあるよ
662 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:11:53 ] 自分の好みやわがままで言語を選べるなんて、ずいぶんと恵まれた職場だな
663 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:19:57 ] >662 それなんの社畜自慢?
664 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:27:50 ] 一生その職場にいて自分だけがメンテするならなんでも選べます
665 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:34:30 ] 既存のシステムがあったら大きく外れられないだろ というかコンベンションというかガイドラインくらいどこにでもあるだろw
666 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:36:56 ] うちはむしろ特別な事情(ユーザーの指定とか旧環境との兼ね合いとか) がないかぎり Windows アプリは C# にするってことにしたけどな
667 名前:デフォルトの名無しさん [2010/03/13(土) 18:38:19 ] 制約なければwindowsはc#で書きたいなあ 部分的にC/C++は入れたとしてもGUIはC#だわ
668 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:42:36 ] 「チッ.NET入れるのかよ」 というお客様も最近は減ってきました
669 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:44:21 ] Vista以降で入ってるしね。
670 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 19:41:48 ] とりあえず、意味不明のダイアログを表示して落ちるのもアレなので、 .NETが必要だというメッセージを表示するぐらいの配慮はするべき。
671 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 19:44:11 ] デフォルトで出る様になってなかったっけ? ただ英語なのでアホは読んでくれない
672 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 19:46:47 ] 確かにあれはいただけないな
673 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 19:52:50 ] まあバイナリを裸で配布するのは邪道、っていう前提に立ってるんでしょう。 イストーラで配れと。 それにしても、.NET Frameworkは単独でアンインストール可能なわけだから、 そういうケースをもう少し想定すべきとは思うけど。
674 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:07:38 ] ちっ、うっせーな
675 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:04:13 ] うっ、ちっせーな
676 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:08:52 ] C++のクラスとか旧時代のゴミ持ち込むなよ
677 名前:デフォルトの名無しさん [2010/03/13(土) 23:54:40 ] C#もろくに使えねぇ癖に 黙ってろカス
678 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 01:59:46 ] 反省してまーす
679 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 02:10:53 ] >>617-621 クラスやそれ以上の粗さ(アセンブリなど)でよければ、 Visual Studio 2010の依存関係グラフというやつで、図にしてくれるぞ。 www.microsoft.com/japan/msdn/vstudio/2010/product/architecture_new.aspx
680 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 03:12:02 ] doxygenもいいぞ
681 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 07:10:37 ] コンボボックスのドロップダウンリスト部で右クリックが押されたことを検知するには どうしたらいいでしょうか? MouseClickやMouseDownで見張っていても呼ばれないようです
682 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 07:25:31 ] そんなマニアックなイベントは無いと思う 一番簡単そうなのはドロップダウン部分のウィンドウハンドルを NativeWindowに食わせることかなぁ ハンドルはGetComboBoxInfoで取れる
683 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 08:32:47 ] 2010またソリューションとか変わるんだよな… 2008と混在できるけど、いまやってるプロジェクトまわりのやつは皆が2010に切り替えるまで2010でいじれないよね。 依存関係グラフで見たいのあるけど、なんかうまいやりかたある?
684 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 08:33:39 ] >>682 ドロップダウン部分をサブクラス化してメッセージを自前で処理ですか・・・ ちょっと敷居が高そうですが頑張ってみます ありがとうございました
685 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:05:03 ] そんなアメリカンなUI、使う方にも敷居が高そうだ。
686 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:43:24 ] >>679 2010か
687 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 21:45:42 ] Visual C# ExpressEditionのエディタで、 半角スペースを可視化する設定はありませんか?
688 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 21:50:36 ] >>687 編集→詳細→スペースの表示 ショートカットはCtrl+R→Ctrl+W
689 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:00:28 ] >>688 ありがとうございます。 続いて質問ですが、半角スペースと全角スペースを区別する方法はありませんか? 見た目の幅が微妙に違うだけで、一目で判断するのは難しいのですが
690 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:17:13 ] >>689 微妙っていっても表示される点の位置がずれるのでそれで区別しかないと思う。 インデントをタブにして普段は半角スペースを入れない方が判りやすいと思うんだけどね。
691 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:19:48 ] 全角が混ざったかわからないときはプロジェクトで考えるより 普通のテキストとみたてて置換した方が早くない?
692 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:23:42 ] 全角を気にしないというのはどうか?
693 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:26:18 ] 開発環境が何かしらないけど スペースの可視化くらいできるだろ
694 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:26:58 ] って上に書いてあったか
695 名前:689 mailto:sage [2010/03/14(日) 22:36:44 ] 皆様回答ありがとうございます。 >>690-692 辺りを参考に、使い勝手を試しながら使いやすい設定を探していこうと思います。
696 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:43:42 ] まあリテラル文字列中以外は、全角スペースは勝手に半角に修正されるんですけどね 違ったっけ。
697 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 13:30:35 ] 全角スペースも空白として扱われる、だろう
698 名前:622 mailto:sage [2010/03/15(月) 16:17:26 ] >>634 亀ですがありがとう 参考にさせてもらいます