1 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 10:15:52 ] (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。 前スレ C#, C♯, C#相談室 Part51 pc12.2ch.net/test/read.cgi/tech/1233757615/ Visual C# 2008 Express Edition 日本語版 www.microsoft.com/japan/msdn/vstudio/express/vcsharp/ その他テンプレ>>2-5 くらい
515 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 12:03:16 ] >>506 webBrowserだけじゃなくて IE6のそのものが、ずっと真っ白のままで表示されないことがあるんだが・・・ AVGのリンクスキャナを停止してからは少しマシになったかも? 普段はChromeを使っているから見なかったことにしてるけど。
516 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 14:18:15 ] >>506 とおんなじコードで試してみたけど、 何度やっても問題なく表示されるな。 環境はXPProSP2、IE6、VS2008Pro
517 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 14:49:26 ] webBrowser1.BusyがTrueのときそうなるんじゃないか?
518 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 15:58:51 ] >>515 ウィルス対策ソフトは切ってます。 >>516 ほんの2日ほど前まで私もその環境でしたが、なぜか動きません。 XPProSP3、IE8、VS2008Exにしましたが、改善はありません。 >>517 ちょっと見てきます。
519 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 16:02:12 ] 取り敢えず514な System.Windows.Forms.WebBrowserはコントロール上に乗って無くても大丈夫なように作られてるけど一応
520 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 16:23:25 ] >>517 ■PG public Form1() { InitializeComponent(); Console.WriteLine("IsBusy:" + webBrowser1.IsBusy); webBrowser1.Navigate("about:blank"); webBrowser1.Navigate("www.yahoo.co.jp/ "); Console.WriteLine("IsBusy:" + webBrowser1.IsBusy); } ■出力 IsBusy:False 'Test.vshost.exe' (マネージ型): 'C:\WINDOWS\assembly\GAC\Microsoft.mshtml\7.0.3300.0__b03f5f7f11d50a3a\Microsoft.mshtml.dll' が読み込まれました IsBusy:False ■結果 画面まっ白 >>514 LoadイベントでやってもThread.sleep(5000)をnavigateの前後に入れてもまっ白になることが多々ありました。
521 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 18:07:17 ] Shownを使え
522 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 22:09:23 ] IE でダメなら、WebBrowser でもダメだろよ。
523 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 22:32:09 ] ReadStateがcompleteになるまで待ったほうがいいんじゃないかな?
524 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 22:49:46 ] ContextMenuStripに追加したToolStripMenuItemの DropDownItemsに追加したToolStripMenuItemのイメージ余白の消し方を教えてください。 1階層目はShowImageMarginをFlaseにすれば消せるのですが 2階層目以降のToolStripMenuItemは余白が出たままになってしまいます…。
525 名前:デフォルトの名無しさん [2009/05/22(金) 01:41:24 ] >>313 さんのMecabの返り血をAnisで受けると文字化けするんですけど、 文字化けしない方法をどなたか教えてください orz
526 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 01:44:57 ] キャー!
527 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 01:46:46 ] PtrToStringAuto だとどうなる?
528 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 02:00:25 ] >>527 こんななりました。。 ?慣???麩????????????弊(ry
529 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 02:26:54 ] Shift_JIS(CP932)をUTF-8と誤認識してるんじゃね。
530 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 03:09:18 ] 俺はこれでできた [DllImport("libmecab.dll")] extern static int mecab_new2(string arg); [DllImport("libmecab.dll")] extern static IntPtr mecab_sparse_tostr(int m, byte[] str); [DllImport("libmecab.dll")] extern static void mecab_destroy(int m); int mecab = mecab_new2(""); this.textBox2.Text = Encoding.Default.GetString(Encoding.Convert(Encoding.UTF8, Encoding.Default, Encoding.Unicode.GetBytes( Marshal.PtrToStringUni(mecab_sparse_tostr(mecab, Encoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes( this.textBox1.Text))))))).Replace("\n", "\r\n").Replace("\r\r\n", "\r\n"); mecab_destroy(mecab);
531 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 06:06:52 ] これはひどいコード・・・
532 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 06:24:15 ] なんのためのマーシャリングなのかって感じだな
533 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 14:52:19 ] printPreviewDialog1.Bounds = this.Bounds; printPreviewDialog1.ShowDialog(); こう書いても何故かthisと重なって表示してくれない 大きさは反映されるのに位置が自動的に決定されてしまう 解決方法知ってる方いたら教えてください
534 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 15:08:59 ] ウィンドウの初期位置を指定するプロパティがあるからそれをManualだったかなんかにする
535 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 15:32:25 ] PrintPreviewDialogにStartPositionプロパティは無いみたいです
536 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 15:40:11 ] .NET Framework クラス ライブラリ PrintPreviewDialog..::.StartPosition プロパティ
537 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 15:49:14 ] インテリセンスに出ないので無いと思ってましたが頑張って手打ちしたら出来ました ありがとうございました
538 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 15:55:42 ] >頑張って手打ち ワロタ 気持はわかる
539 名前:デフォルトの名無しさん [2009/05/23(土) 18:31:31 ] >>424 クソワロタ
540 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 01:39:48 ] 笑い事じゃねえよ!
541 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 11:01:56 ] いや、声出して笑っちゃったよw ユニークな仕事だなw
542 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 12:58:03 ] たぶん日本で唯一だy。食いっぱぐれなくていいな。
543 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 14:30:22 ] \拍手を打つ仕事があるときいてやってきました/
544 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 16:14:58 ] ListBoxの、選択されたアイテムを囲っている破線を消したいのですが可能でしょうか? なぜか一瞬だけ、選択していないアイテムに破線が出るので消したいと思っています
545 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 16:45:38 ] >>544 独自描画にすれば消せるんじゃないかな。
546 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 10:30:51 ] その破線はキーボードフォーカスの存在を見せるためにある。 勝手に消されると状況によってはユーザーが混乱すると思うが それでもいいなら>>545 の言うようにオーナードローしては。
547 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 20:30:10 ] label.Text = "Value: "; このようなValueを表示するラベルを貼りました。 スペースの後に増減する数字を代入していくのですが、どうやるのがいいのですか? "Value: "が無い場合は単純で、 labal.Text += i.ToString(); でよかったのですが、、
548 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 20:45:57 ] >>547 labal.Text += i.ToString(); = labal.Text = labal.Text + i.ToString();
549 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 20:49:05 ] >>547 string.Format
550 名前:デフォルトの名無しさん mailto:sage [2009/05/29(金) 22:01:44 ] if(i==0) label.Text = "Value: 0" else if ....
551 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 17:38:53 ] コンストラクタ名のとこにクラス名書かなきゃならないという無様な仕様は 未来永劫そのままなの?
552 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 17:59:09 ] そりゃ、そんな根幹にかかわるところ変更はできないだろ。 嫌なら新しい言語作るしか。
553 名前:デフォルトの名無しさん [2009/05/30(土) 18:11:25 ] 不自然かもしれないけどC++やJavaで十分に受け入れられてるからな はじめの頃のC#ではキーワードを少なくすることが重視されてたみたいだし
554 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 18:23:57 ] Javaの、ソースファイル名とpublicクラス名を同じにしとかないとエラーだよーん。 の舐めた仕様よりはマシになってるとは思う。
555 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 18:34:15 ] >>551 同感。同じことを2度書くのは無駄だよな もう.ctorでいいのに
556 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 18:39:31 ] まあ、元々がC++プログラマーを逃がさないようにする目的があったから、 あの構文は変えようがないでしょ。 C# 開発者的に、C++ との互換性重視しすぎて失敗したなぁと思う部分もちらほらあるみたいなんで、 今よりさらにもうちょっと .NET が普及したら、その辺りなおした新言語を作るのもありかもしれないけど。
557 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 18:43:24 ] Font Font = new Font
558 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 18:44:46 ] >>557 var Font = new Font();
559 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 18:45:32 ] newはインテリセンスがなきゃ発狂する構文だが、あるから我慢できるレベル。 var使う事自体が冗長
560 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 18:50:41 ] >>559 いやー、var は要るよ。 宣言と代入は分けたい。 new なくすとすると、例えばどういう構文? C++ のスタック割り当て時みたいに、クラス名() だけとか?
561 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 18:53:18 ] Python みたいに font = Font() とか書けたら嬉しさのあまり自決する
562 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 18:55:01 ] >>561 それはなぁ、型名と同じ名前のプロパティ定義できる C# だと文法的にあいまいになりそう。
563 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 18:57:39 ] 後からの拡張とか考えると、new とか var とかの構文解析の起点になる部分は削らない方がいい。 font = Font() なんて認めたら、多分、後から機能足せなくて泣く。
564 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 19:13:55 ] 結局コンストラクタの構文は無駄?必要?
565 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 19:16:03 ] >>561 それ出来るとIntelliSenseの暴発を招くから、今の型推論によるvarでの定義がバランス的にちょうどいい。
566 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 19:16:07 ] 今のC#の方向性考えると必要。 C#の原型とどめないような改変が許されるんなら別にどっちでも。
567 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 19:19:12 ] キーワードconsを導入すれば万事解決
568 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 19:31:22 ] ぶっちゃけなれればどうでもいい
569 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 19:50:07 ] >>565 同感、C#は強く強くインテリセンスを意識した文法であって欲しい。 でないと、今のライブラリでさえ全体を憶えきれないのにこういうサポート外されたら気絶する。
570 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 21:19:51 ] 何でPythonがはやってるんだ? 前に来た時はDが話題だったような…
571 名前:デフォルトの名無しさん [2009/05/30(土) 22:39:22 ] 個人的にはもう少し型を意識したJavaScriptのような言語がはやって欲しいな。
572 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 22:43:12 ] >>571 JavaScriptは十分はやってるだろ
573 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 22:47:18 ] PowerShellいいぞ。PowerGUIのコード補完との相性もかなり良好。 $a = [xml]"<data>foo</data>" $a. で候補にdataが出てくるんだぜ。 ソースコードじゃなくプロンプトで実行しながらじゃないと駄目だけど。
574 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 23:02:46 ] 「C# .NETアプリケーション開発 徹底攻略 C# 3.0/.NET Framework 3.5対応」 という本で、FormのLoadイベントはコンストラクタ完了よりも先に実行される(ことがある?) とか書かれてるんだけどほんとにあるの? どうもこの本思い込みで書いてるような部分も見られてちと怪しんだが…
575 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 23:31:51 ] InitializeComponents で子コントロールにプロパティを設定する際に、子から 親フォームが呼ばれてLoadされることが危惧されている。
576 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 23:38:37 ] そのフレームワークいいのかな 設計が甘いのでは?
577 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 23:44:14 ] 甘いねぇ。
578 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 23:47:51 ] >子から親フォームが呼ばれてLoadされる ってどういう状態かわからん…
579 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 23:49:48 ] んーマルチスレッドと例外絡みのこと書いてあるとこもでたらめだしなー
580 名前:デフォルトの名無しさん mailto:sage [2009/05/30(土) 23:51:20 ] ちゃんと引用したらいいと思うよ
581 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 00:11:54 ] >>574 うろ覚えだけど、 Win32だと、CreateWindow()内で、WM_CREATEを直接呼び出してたような気がする (CreateWindow()の復帰値はWM_CREATEの復帰値に依存する) なので、 - C#のFormのコンストラクタ内で内部的にCreateWindowの呼び出しを行う - FormのLoadはWM_CREATEに相当する の2つの条件が成り立てば >FormのLoadイベントはコンストラクタ完了よりも先に実行される は、成り立つかもしれない
582 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 00:19:12 ] 子が初期化待たないで親を Visible = true したら起きた。 でも、普通しねえよなぁ、こんなことwww
583 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 00:19:31 ] >>581 そんなこと考えるまでもなくマネージドだけで成立するよ、意味があるかどうかは別として public class Form1 : Form { public FFFF() { Ctrl ctrl = new Ctrl(); this.Controls.Add(ctrl); ctrl.Do(); Debug.WriteLine("Ctor"); } protected override void OnLoad(EventArgs e) { Debug.WriteLine("OnLoad"); base.OnLoad(e); } } public class Ctrl : Control { public void Do() { Form form = this.FindForm(); if (form != null) form.Show(); } } 相互参照はやっかいだね
584 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 00:22:05 ] namespace WindowsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); MessageBox.Show("end of init"); } private void timer1_Tick(object sender, EventArgs e) { Visible = true; } private void Form1_Load(object sender, EventArgs e) { MessageBox.Show("Form.Load"); } } } でタイマのintervalは1。
585 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 00:31:27 ] その前に コンストラクタでこんなことしていいんか
586 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 00:38:47 ] そもそもそんなこする方がやばいんだから しないように修正するべきだろう。
587 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 00:39:33 ] フォームをNewしたらいきなり表示されるとか、冗談ではないわ。
588 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 00:46:51 ] しないように済む方法を指導しないテキストがクズだな。
589 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 00:46:50 ] 引用した方がいいんだが、何せ立ち読みで読んだだけなんで、すまんね。 しかし、デリゲートの非同期実行でEndInvokeせずに、なんと例外が無視されてしまうのだ!! みたいなこといって、非同期実行するメソッド内で即座にコントロールにInvokeして、これで例外をとれる っておまえそれ非同期実行の意味全然ないだろうがよとか、こんなの見るとなんか書いてあることが信用できない。
590 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 01:04:13 ] あー、エスパーすると、非同期実行すると例外取れないから同期しましょう、 と書いてあるのか?
591 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 01:11:44 ] そういうこと
592 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 01:17:58 ] その本でスレッド周りに何書いてあるのか、ちょっと気になってきたww
593 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 01:39:23 ] 意外と好評な書評も。 mag.autumn.org/Content.modf?id=20090526140144
594 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 02:11:24 ] んー今はどうかわからんけど、 Formは2回以上ShowDialogすると動作保証されない だった気がするけどな。 ナレッジに出てなかったっけな…
595 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 07:20:32 ] C#で複数接続ができるサーバーを作成しているのですが、多くの接続を受け付けると、 「転送接続からデータを読み取れません: ブロック不可のソケット操作をすぐに完了できませんでした。」 というエラーが出て、例外が発生してしまいます。 誰かこのエラーの解決方法をご存じないでしょうか? よろしくお願いします。
596 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 07:30:32 ] XPのコネクション制限に引っ掛かってるとか。
597 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 07:48:28 ] >>596 XPのコネクション制限には引っかからない程度でも発生するんですよね… # 10本くらいConnectが発生すると5本目くらいからエラーが発生→例外→…という感じで
598 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 09:22:23 ] サーバOSやTCP/IP Pacherとかで制限ない状態で試してみれば?
599 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 09:51:46 ] その前にプログラムを
600 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 13:22:18 ] 自分以外のコネクションが5〜6個あるんでしょ?
601 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 14:13:55 ] VistaSP2と2008サーバでは撤廃されたっていうからXPでもパッチこないかな・・・ いやがらせとして残されたりして。
602 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 14:15:20 ] >>593 これWM_CREATE代わりなんだ、確かにShowDialogするごとに呼び出されるね、名前が悪いよな。
603 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 12:05:26 ] C#というか.netで使える rubyでいうところの,Narray pythonでいうところのNumPy のような配列の形で演算してくれるクラスライブラリはありますか?
604 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 12:21:34 ] >>603 コンセプトがまるで違うけれども、あえて言えばLINQがそのような処理を担当するライブラリと言えるかと思われます。 だけれども、そういう操作そのものを求めるとちょっと、というかまったく違うものかも やりかたとしては二つのシーケンスを一つのシーケンスにまとめる、そこに select なりで全体に演算を施す、といった具合。
605 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 12:46:05 ] 数値演算ライブラリが欲しいと言ってるのに、linq挙げるってのはないだろw でも、.NET向けってのは商業ものしか知らんわ。 BLAS系の.NETバインディングは探せばありそうだけど。
606 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 12:53:14 ] >>603 詳細はまだ調べてないけど、.NET で線形代数を助けてくれるライブラリなら Math.NET があるみたい。 mathnet.opensourcedotnet.info/
607 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 13:01:57 ] >>605 そうですか?むしろ汎用度の高いライブラリだと思うんですけどね。 自分は今は線形代数周りは全部LINQで構築してしまいましたけど
608 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 13:04:41 ] そもそもLINQってのはテクノロジー()笑の名前であって、ライブラリの名前ではないと思うんだが。
609 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 13:04:55 ] LINQのコンセプト、モナドと抽象線形空間の相性がいいというか…… 実数上の線形空間はもちろん、複素数でも有限体でもいけるし、いっそ関数を基底とかも。 まぁなんかそんな感じてす
610 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 13:15:52 ] LINQは集合演算 mapもあるしリスト演算(コンベア的な)もつかえるし そういういみじゃん
611 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 13:26:56 ] LINQtoObjectによる各種演算処理からLINQtoSQL or LINQtoXMLと次々と同一コンセプトでつながっていくのも気持ちいいしね。
612 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 18:04:30 ] 列挙型を含んだクラスをシリアライズしようとすると 例外が発生してしまいます。 ↓こんな列挙型です。 public enum ActionType { [XmlEnum(Name = "Single")] One, [XmlEnum(Name = "Double")] Two, [XmlEnum(Name = "Triple")] Three } なにか方法などありますでしょうか?
613 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 18:10:14 ] 例外の詳細ぐらい書けよ
614 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 18:15:12 ] IXmlSerializableを実装しろ
615 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:20:33 ] アンマネージコードからコールバックされるマネージコードで例外をアンマネージ側に 漏らしたくない場合は以下のMyCallBackのような処理であってる? public delegate bool CallBack(); [DllImport("hoge.dll")] private static extern int Hoge(CallBack callback); static void MyCallBack() { // このメソッド内で発生した例外を hoge.dll に漏らしたくない RuntimeHelpers.PrepareConstrainedRegions(); try { // hoge } catch (Exception e) Console.WriteLine(e); } } static void Main() { Hoge(new CallBack(MyCallBack)); }