1 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 14:57:21 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part43 pc12.2ch.net/test/read.cgi/tech/1248573707/
592 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 12:26:27 ] var x = new Hoge(); // Hogeの実体を作り,紙xにその住所を書く foo(x); // 紙xに記されている住所を新しい紙yに書き写してfooに渡す Console.WriteLine(x.Value);//100が出力される void foo(Hoge y) { //この時点でxとyは別の紙だが書かれている住所は同じ y.Value = 100; // yに記されている住所をもとにHogeの実体を探し,Valueプロパティに100を代入する y = new Hoge(); // yに書かれている住所を消しゴムで消して新しく作られたHogeの実体の住所を書く y.Value = 200; // 初めに作られたHogeには影響しない } 説明するのは難しいなあ
593 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 12:33:57 ] >>587 その例で言うとですね、変数rと変数rowには同じobjを指し示すアドレスが入っています。 だからrow.XXXXX を変更すると r.XXXXX も同じように変更される(ように見える)のは貴方が 認識しているとおりです。 ただし、変数rの実体と変数rowの実体は別物です。ここに注意しましょう。 だから変数rowそのものの値を書き換えてしまうと、もはや「rowが示す先のobj」と「rが示す先 のobj」は別物になってしまうんです。 あくまで、「rowが示す先のobjの内容をrが示す先のobjに代入」しなければいけません。 で、そういう場合のために通常Copy()メソッドが用意されていたりするんですが、もし無ければ 自分で全要素コピーする必要があります。ディープコピーとかで調べてみて下さい。
594 名前:デフォルトの名無しさん [2009/09/08(火) 12:52:49 ] >>581 まじすか! ありがとうございます。
595 名前:デフォルトの名無しさん [2009/09/08(火) 15:04:47 ] BeginInvoke, EndInvokeを用いたスレッドからの例外について質問です。 以下のプログラムにて、BeginInvokeによって呼び出されるDoWork内の例外を、メインスレッドで キャッチしてやるにはどうしたらいいのでしょうか? Main()内のEndXXX呼び出しでキャッチ出来ると思っていたのですが、どうやら駄目なようです。 改行が多すぎると怒られたので、プログラムは次のレスに貼ります。
596 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:07:08 ] static IAsyncResult BeginXXX(AsyncCallback cb){ Action f = DoWork; return f.BeginInvoke(cb, null); } static void EndXXX(IAsyncResult ar){ AsyncResult res = (AsyncResult)ar; Action del = (Action)res.AsyncDelegate; del.EndInvoke(ar); } static void DoWork(){ throw new System.Exception("例外っす"); } static void Main(string[] args){ AsyncCallback cb = (ar) =>{ try{ EndXXX(ar); } catch (Exception ex){ Console.Write(ex.Message); } }; BeginXXX(cb); Console.ReadKey(); }
597 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:29:04 ] 何故メインスレッドでcatchしなければならないのか
598 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:34:22 ] コールバックではなく、メインスレッドでEndXXXを呼び出せばいい
599 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 16:22:36 ] >>574 できました。 これを見る前に、自分で考えたので、一日かかっちゃいました。 すこしロジックが違いますが、これで動くようです。 ありがとうございました。 string[] dislikeitems = {"にがうり","ゴーヤ","あんまん"}; string[] menuitems = {"肉まん","あんまん","ピザまん","茄子","ゴーヤいり卵焼き"}; string favoritemenu = ""; bool favorite; foreach(string item in menuitems) { favorite = false; foreach(string dislikeitem in dislikeitems) { if (item.Contains(dislikeitem)) favorite = true; } if (favorite == false && !favoritemenu.Contains(item)) favoritemenu = favoritemenu + item + "\r\n"; } MessageBox.Show(favoritemenu); >>576 キャメルケース? 調べてみます。 >>577 LINQは、まだ使ったことがないので、これを機会に勉強します。 ありがとうございました。 …あ。でもこれって、ゴーヤいり卵焼きも入っちゃいますよ。 と、585さんもおっしゃってました…。 >>586 そうか、その手があるか。って、そうじゃなくって。 LINQでゴーヤいり卵焼きをのぞく方法も教えてください。
600 名前:595 mailto:sage [2009/09/08(火) 16:26:42 ] 失礼しました、デバッグ環境だとcatchしてもコードは停止するのですね…。 ちゃんとメインスレッドでcatchしてるようです。
601 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 19:07:08 ] してねーだろw 何が起こってるか理解しろよ。
602 名前:577 mailto:sage [2009/09/08(火) 19:16:34 ] >>599 ゴーヤを外すなんてけしからん!真夏には必須だ! string[] menuitems = { "肉まん", "あんまん", "ピザまん", "茄子", "ゴーヤいり卵焼き" }; string[] dislikeitems = { "にがうり", "ゴーヤ", "あんまん" }; var diffSet = from x in menuitems where dislikeitems.All((y) => !x.Contains(y)) select x; string favoritemenu = string.Join("\r\n", diffSet.ToArray()); MessageBox.Show(favoritemenu);
603 名前:デフォルトの名無しさん [2009/09/08(火) 19:32:01 ] InfoPath2007とC#の組み合わせで開発をしています。 入力した文字列をSQLのWhere句に入れて、 取得された結果を動的にドロップダウンリストに入れたいのですが、 テキストボックスには結果が返ってくるのですが、 ドロップダウンリストは変化がありません while (myReader.Read()) { this.MainDataSource.CreateNavigator().SelectSingleNode("/my:travelRequest/my:d取引先名", NamespaceManager).SetValue(myReader.GetString(0)); ←こっちがドロップダウン this.MainDataSource.CreateNavigator().SelectSingleNode("/my:travelRequest/my:d取引先_担当者", NamespaceManager).SetValue(myReader.GetString(1) + " / " + myReader.GetString(2)); ←こっちがテキストボックス、結果返ってくる } すみません、どなたか教えてください。
604 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 19:54:51 ] >>601 どういう意味で?
605 名前:デフォルトの名無しさん [2009/09/08(火) 20:01:19 ] なんで トライ、キャッチなんだよ。 エラーとサクセスみたいなのでいいだろうが。
606 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:02:41 ] >>601 msdn.microsoft.com/ja-jp/library/d14azbfh.aspx この話でしょ。
607 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:03:18 ] は?
608 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:05:01 ] >>605 ダサい。
609 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:24:20 ] エラー投げるんだからキャッチで良いんじゃない。
610 名前:601 mailto:sage [2009/09/08(火) 20:24:48 ] 言葉足らずだったかな。 >ちゃんとメインスレッドでcatchしてるようです。 ここに対して言った。
611 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:27:01 ] VS2005、C#なんですが pictureBoxの画像をマウスドラッグでgoogleMapのように滑らかにスクロールさせる方法ってありますか? またはこのような実装を行う方法ってありますか?
612 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:27:01 ] >>596 >Action f = DoWork; >return f.BeginInvoke(cb, null); へえ、こんな風にかけるんか
613 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:29:58 ] >>612 俺もC#勉強中でこの書き方は初めて見た。 一般的にはどうかくんだろう。誰か教えて。
614 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:39:00 ] >>613 マルチスレッドのやり方は幾つかあるし正着ってのはないんじゃないかな。 デリゲートに包むってのはそのうちの一つに過ぎないわけで。
615 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:40:25 ] >>613 非同期デリゲートでググれ ちなみに、silverlightではサポートされてないので、 コンパイルエラーにはならないが、実行時にエラーが出るので注意
616 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:58:28 ] >>614-615 ガイドサンクス
617 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 22:02:52 ] >>576 キャメルケース。パスカル方式のことでしたか。了解しました。 string[] menuItems = {"肉まん","あんまん","ピザまん","茄子","ゴーヤいり卵焼き"}; ってことですね。 っていうか、なんでそう書かなかったんだろ。 ふだんはそう書いているんですが。 >>602 LINQの一端に触れた気がします。 fromとかinとかwhereとかselectというのが、LINQの書式なのですね。 まだ充分じゃないですけど、foreachをネストする書き方にくらべて、圧倒的にスマートなことはわかりました。 ありがどうございます。
618 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 22:06:36 ] Camel形式とPascal形式は違う camelCase PascalCase
619 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 23:51:21 ] >>603 コードが読みにくい。 まさか実際のソースもそんな書き方して無いよね? 趣味で作ってるのならいいんだけどさ。 で、問題の方だけど、ドロップダウンリストに値を設定してるところがダメなんじゃない? InfoPathは使ったこと無いからよくわからないけど。
620 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 00:48:01 ] >>618 一応、これも書いておかないと Upper Camel = Pascal Lower Camel = 狭義のCamel
621 名前:デフォルトの名無しさん [2009/09/09(水) 09:22:35 ] Bitmap BmpBuf = new Bitmap("C:\\2008052314460001.jpg"); Picture1.Image = BmpBuf; 画像が表示されません
622 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 09:29:10 ] そうか
623 名前:デフォルトの名無しさん [2009/09/09(水) 09:35:56 ] せめてヒントだけでも ><。。
624 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 10:20:41 ] もうimagelocation でやれwwwww
625 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 10:41:29 ] >>621 デバッグしてそこ実行時にBmpBufが有効か見てみたか? Picture1ってどのコントロール?
626 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 10:42:26 ] "C:\\2008052314460001.jpg" を @"C:\2008052314460001.jpg" こうしたい
627 名前:デフォルトの名無しさん [2009/09/09(水) 10:48:28 ] >>625 BmpBufはnullでなくサイズプロパティは読み込んだ画像のサイズでした >>626 あーそういう意味だったのか @使います
628 名前:デフォルトの名無しさん [2009/09/09(水) 10:50:00 ] >>625 Picture1はPictureBoxです
629 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 10:53:33 ] それはちゃんとFormに貼り付けられてるのか 何かのコントロールの後ろに隠れてないか サイズが0,0になってたりFormの表示範囲外にいってたりしてないか
630 名前:デフォルトの名無しさん [2009/09/09(水) 11:18:33 ] >>629 もう一度一から貼り直してやってみます コードは間違ってはいませんよね? 再描画されないかもしれないのはおいといて
631 名前:デフォルトの名無しさん [2009/09/09(水) 11:23:00 ] >>630 うまくいきました!! デザイナのコードが壊れてたみたいです
632 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 11:23:16 ] >>611 paintでGraphicsのDrawImage使うといい。
633 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 12:12:39 ] C++のデザパタに片足突っ込んだ程度の経験なんですが、 今回.NET Framework 4.0が面白そうな事になってるのを聞き及び、C#に手を出してみようかと思っています。 C#のオススメの教本とかあったら教えてもらえませんでしょうか?
634 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 12:20:31 ] .NET4ってそんなに面白そうなフィーチャーあったっけ DLRやPLINQなんか.NET触ったことない人には全く分からないだろうし
635 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 12:27:34 ] >>632 ドラッグ中MouseMoveイベントで毎回それやってpictureBoxリフレッシュすると滑らかにならず・・・
636 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 12:49:42 ] >>635 どんな環境でどうやってんの? こっちで試す限りでは普通になめらかに動くよ。 Bitmap毎回作ってるとか?
637 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 13:43:13 ] >>636 よっぽどでかくなきゃそれでもまぁいけると思うぞ Disposeしてなさそうだけど(Disposeいるっけ?)
638 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 20:31:59 ] breakについて教えてください。 for (int i = 0; i < 10; i++) { foreach(string line in lines) { if {//条件。 break; } } } で、ifの条件が一致したとき、この位置にbreakを書くと、foreachは終了しますが、外側のforは終了しません。 どこに書けば、外のforも終了できますか?
639 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 20:36:37 ] for (int i = 0; i < 10; i++) { bool exit = false; foreach(string line in lines) { if {//条件。 exit = true; break; } } if (exit) break;//外のforを抜ける } もしくは, for (int i = 0; i < 10; i++) { foreach(string line in lines) { if {//条件。 goto EXIT; } } } EXIT:
640 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 20:40:30 ] >>639 ラベルに命令はんないといけないから EXIT:;じゃね?
641 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 20:43:09 ] そうだけど後にステートメントが続くならセミコロンは普通書かない
642 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 20:47:43 ] >>641 コンパイル通るの? 前ここではまったんだけど
643 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 20:48:38 ] 別のアプローチとしてはforを別の関数に切り出してreturnで抜けるというのもある。
644 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 20:53:44 ] >>642 通る例 EXIT: Console.WriteLine(x); } 通らない例 EXIT: } とにかく後にステートメントがあればいい。セミコロンだけの場合は空のステートメントがあるとみなされる。
645 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 20:55:44 ] >>644 じゃあ>>639 は嵌るべ
646 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 22:03:03 ] >>639 thanks.
647 名前:デフォルトの名無しさん [2009/09/09(水) 23:37:40 ] C♯で拡大鏡はできますか?
648 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 23:49:15 ] うん
649 名前:デフォルトの名無しさん [2009/09/10(木) 00:27:42 ] とあるクラスにA1〜A5というプロパティがあるんですが 配列のindexのように参照する方法はあるでしょうか?
650 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 00:34:43 ] ない
651 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 01:17:53 ] >>649 A1〜A5の型が同じなら、とあるクラスにインデクサを実装すればいい。 まぁ、こんな事するんじゃなくてA1〜A5を格納するAってリストを作るべきだ。
652 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 01:58:11 ] .netってスタティックリンクライブラリって使えないの? DLLは作れるみたいだけどLibファイルのようなものは作れないのかな
653 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 02:00:44 ] 必要ないだろ
654 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 02:05:08 ] 作れるよ
655 名前:デフォルトの名無しさん [2009/09/10(木) 06:30:54 ] >>648 どんなメソッドを使えばできますか?
656 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 07:33:35 ] Graphics.CopyFromScreen
657 名前:デフォルトの名無しさん [2009/09/10(木) 12:06:35 ] 重大ニュース スレは★30までいく 【国際】 中国 「IT製品、ソースコード開示せよ」…日本側が撤回求めるも、予定通り実施へ★4 tsushima.2ch.net/test/read.cgi/newsplus/1252535413/ 「ソースコード開示せよ」…中国が外国企業に要求 pc11.2ch.net/test/read.cgi/prog/1221835452 23 :名無しさん@十周年:2009/09/10(木) 02:28:25 ID:UeD78g5r0 李鵬が言ってた、20年後に日本なんてなくなるって、こういう事か。 40 :名無しさん@十周年:2009/09/10(木) 02:35:03 ID:BKKfZepB0 トヨタがプリウスで儲けれるのも来年までなんだね。 鳩山幸さんはサイエントロジーというカルトと関係があるという噂があります。 an ★tikimchi.see★saa.net/art★icle/127578850.html ↑ 日本アンチキムチ団 鳩山幸さんの旧姓が不明だそうですよ。 764 名前:可愛い奥様[] 投稿日:2009/09/06(日) 01:04:07 ID:/WrcABwtO 北海道苫小牧在住の者ですが、老人ホームで暮らす朝鮮人のお婆ちゃんから聞いた話です。 幸夫人のごお父様は中国人ではなく、キム・ジョンウォン(漢字不明)という朝鮮北部出身の貿易商だったようです。 戦後は日本に渡り、幸さんが渡米するまでは神戸の商社に勤めていたようです。 キムさんは幸さんが渡米した直後、北海道室蘭に引っ越し、貿易商を営みながら総連支部の設立に尽力されたと話しておりました。 中国語・英語・ロシア語がお上手だったようですね。 【ファーストレディー】鳩山幸をウォッチするスレ 2 hideyoshi.2ch.net/test/read.cgi/ms/1252279762/
658 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 14:33:30 ] >>652 ILMerge を使えば、複数のアセンブリを一つにできる。
659 名前:デフォルトの名無しさん [2009/09/10(木) 15:20:01 ] DataRowの各項目はキャストしないとobject型のようなんですが、 if (rowA["HOO"] == rowB["HOO"]) みたいな比較は、右辺左辺両方が同じ型?(stringとかint)であることが事前に分かって いれば、キャストせずに比較しても正しい比較結果が得られますでしょうか?
660 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 15:23:42 ] 得られません。常に参照比較になってしまいます。 Object型のままで値を正しく比較したければEqualsメソッドを使います。
661 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 20:50:57 ] プロセスの終了について質問があります。 写真をまとめてみたいと思って、 string[] files = Directory.GetFiles(@"c:\photo", "*.jpg"); foreach(string file in files) { photoProcess = new Process(); photoProcess.StartInfo.FileName = file; photoProcess.Start(); } Thread.Sleep(1*60*1000); if (! photoProcess.CloseMainWindow()) {photoProcess.Kill();}photoProcess.Close();photoProcess.Dispose(); とやって見たところ、開いて1分待つところまではよいのですが、最後に閉じるのが1枚だけで、あとのウィンドウは開いたままになってしまいます。 こういう場合は、どうやればぜんぶのウィンドウを一括してクローズできるか、ご教示いただけないでしょうか。
662 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 20:51:47 ] >>652 csc.exe /target:module ちなみに Q. Visual Studio 開発環境でこのコンパイラ オプションを設定するには A. Visual Studio 開発環境では、モジュールの作成はサポートされていません。
663 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 20:54:39 ] >>661 各Processオブジェクトを配列にでも突っ込んで、 終わるときはそれらを順にCloseMainWindowしてけばいい >>662 moduleもダイナミックリンクだぜ
664 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 20:55:39 ] >>661 関連づけされてるアプリ次第。別々にプロセスが立ち上がるなら、 ここのプロセスをそれぞれ閉じるしかないよ。
665 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 21:06:46 ] 終了もforeachすればいいのかなとは漠然と思うのですが、この方法でcloseするにはそれぞれのプロセス名を知る必要があって、それを取得する方法がわからずにおります。 >>663 オブジェクトを配列につっこむ方法を教えてください。 >>664 プロセスを取得してってこと? プロセス名だと、ファイル名まではわからないんじゃなかったでしたっけ? ペイントだと、mspaint.exeとか?
666 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 21:10:00 ] >>665 違う。アプリによっては、ひとつのプロセスで複数のウィンドウを開く形になる。 たとえば、デフォルト状態の Explorer とかね。 その場合、最後とのプロセスを殺せば、勝手にまとめて死んでくれるってわけ。 #「ここのプロセス」は「個々のプロセス」ね。
667 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 23:13:46 ] >終了もforeachすればいいのかなとは漠然と思うのですが、この方法でcloseするにはそれぞれのプロセス名を知る必要があって、それを取得する方法がわからずにおります。 なんためにphotoProcess変数を使ってるんだ? 同じことを配列(まあListとかのがいいけど)に入れる形でやればいいだけだろ?
668 名前:デフォルトの名無しさん [2009/09/10(木) 23:14:57 ] >>656 これは画面キャプチャだね。 これで取得したオブジェクトを拡大させるってこと? やはり難しそうだなぁ。
669 名前:デフォルトの名無しさん [2009/09/10(木) 23:48:01 ] 仮想リストビューに1000件くらいのアイテムを表示して 一件ずつループ処理でsubitemを書き換えてリストビューのRefreshメソッドを実行するのですが 書き換えた内容が描画されない 表示するアイテムリストとアイテムはそれぞれ専用のクラスを作って管理してて、 書き換え後にアイテムのクラスを見るときちんとデータが入ってる どんな原因が考えられる?
670 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 23:52:09 ] ListView.RetrieveVirtualItemはちゃんと発生してますか?
671 名前:669 mailto:sage [2009/09/10(木) 23:56:05 ] >>670 発生しておりまする リストビューが表示されたときにはCSVから読込まれたデータが 表示されてる状態
672 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 00:13:36 ] 微妙に671の回答がずれてる気がしないでもない Refreshしたときに、RetrieveVirtualItemがちゃんと表示領域分発生してるんだね?
673 名前:669 mailto:sage [2009/09/11(金) 00:22:03 ] ステップインで確認したらちゃんと発生してますよ てか、RefreshでRetrieveVirtualItemが発生しないことってあるのん?
674 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 00:34:28 ] 確認だよ確認 質問者の画面は見れないんだから で、RetrieveVirtualItemで生成するListViewItemにはちゃんと変更後のデータ入れてる?
675 名前:669 mailto:sage [2009/09/11(金) 00:41:30 ] 入ってますよ
676 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 00:43:39 ] ちなみにBeginUpdateとEndUpdate使っても駄目そうですか?
677 名前:669 mailto:sage [2009/09/11(金) 00:56:49 ] だめでした やろうとしてる編集を最初からCSVにしておくと 読み込むときにきちんと描画される 只単にアイテムを編集しただけでRetrieveVirtualItemでやってることは 最初に読込むときと全く同じなんだけどな なんか足りないのか
678 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 01:07:45 ] >>667 できました。ありがとうございます。
679 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 01:08:24 ] コード見ないと分からんね
680 名前:669 mailto:sage [2009/09/11(金) 01:14:53 ] private void listView1_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e) { if (0 <= e.ItemIndex && e.ItemIndex < ItemList.Count) { e.Item = ItemList.Items[e.ItemIndex]; } } private void button1_Click(object sender, EventArgs e) { foreach (Item item in ItemList.Items) { item.SetResult("○"); listView1.Refresh(); } } コードこんだけ
681 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 01:29:03 ] listView1.Refresh();をループから出す
682 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 01:36:07 ] 起きてる人ー みんなでH-IIBロケットの打ち上げを見守ろう! 2時ごろ打ち上げだよ! www.jaxa.jp/countdown/h2bf1/live/h2bf1_300k_j.asx
683 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 02:47:38 ] 板違い。 まぁ、俺も別のとこで打ち上げ見てたけどね。
684 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 08:18:35 ] .asxとか死ねよと
685 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 09:43:30 ] 設定ファイルを作ってそこから設定を読み込もうとしています 設定ファイルはこんな感じです #setting.txt #aの値を書き込んでください a=1 #bの値を書き込んでください b=hoge #cの値を書き込んでください c=hoge hoge #(#以外でも構いません)で始まる行はスキップ、それ以外の行は=の右辺を取得して変数に代入 このような場合はどうすればいいのでしょうか
686 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 09:51:04 ] string line; に対して、 line[0] == '#' line.Split('=')[1] か、正規表現使うか。
687 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 09:52:57 ] >>685 iniファイルを連想した。 あれのコメントは;だったが。 もし、iniファイルで…ということならWin32APIを呼び出せばOK
688 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 09:58:29 ] フォーマット変えていいならXMLを使うことを強くお勧めする XmlSerializerとか使えば一瞬でできる
689 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 10:23:27 ] >>680 Item型は?
690 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 10:38:53 ] >>686-688 アドバイスを参考に調べてみます ありがとうございました
691 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 11:35:54 ] 【国際】 中国 「IT製品、ソースコード開示せよ。情報漏洩はないから」…日本側が撤回求めるも、予定通り実施へ★5 ttp://tsushima.2ch.net/test/read.cgi/newsplus/1252552869/
692 名前:669 [2009/09/11(金) 12:50:04 ] Itemクラス class Item : ListViewItem { string _columns[] = new string[3]; public Item(string[] columns) { _columns = columns } public Column0 { get { return _columns[0]; } } public Column1 { get { return _columns[1]; } } public Column2 { get { return _columns[2]; } } } 今職場だから思い出して適当に書いてみたけどこんな感じ 何の変哲もない保持用クラス