[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 04/13 15:36 / Filesize : 249 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



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]; } }
}

今職場だから思い出して適当に書いてみたけどこんな感じ
何の変哲もない保持用クラス






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<249KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef