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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 18:13:21 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

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

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

ふらっとC#,C♯,C#(初心者用) Part55
pc12.2ch.net/test/read.cgi/tech/1265288563/1

関連スレ
C#, C♯, C#相談室 Part55(実質56)
pc12.2ch.net/test/read.cgi/tech/1260111240/1

VB.NET質問スレ(Part33)
pc12.2ch.net/test/read.cgi/tech/1263738929/1

C++/CLI part3
pc12.2ch.net/test/read.cgi/tech/1206447234/1

477 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:48:33 ]
>>472
君は・・・世界が狭いようだな

478 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 17:54:40 ]
>>477
一般庶民の話をしてるんだよ

479 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:28:17 ]
C#はヴィジュアルスタジオ使うと
WindowsFormアプリケーションってやると
とっぱじめ最初にFormを継承したForm1が出てきて
それにボタンを貼り付けて、「はじめてのC#」とかいうメッセージボックスを出す

これだけのプログラムでも継承、カプセル、ポリモーフといったオブジェクト指向を使ってるな
初心が意識せずにオブジェクト指向できるようになってる言語?

480 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:31:33 ]
日本語でOK

481 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:32:05 ]
デザイナが勝手にやってるだけで全く使ってないだろ

482 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:32:30 ]
むしろ日本語がNGの人

483 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:36:51 ]
Visibleのtruefalseかちかちやるだけでメモリ食うのはなんで?

484 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:39:35 ]
どうして「メモリ食う」と分かる?
その観測方法がオカシイ可能性は疑ってみた?

485 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:49:48 ]
visual studioでbutton1とlabel1と↓作って
private void button1_Click(object sender, EventArgs e)
{
if (label1.Visible == true)
{
label1.Visible = false;
}
else
{
label1.Visible = true;
}
}
Windowsタスクマネージャ開きながらbutton1かちかち押すとメモリ使用量が増えるんだが



486 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:04:03 ]
再現できなかった。

487 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:04:35 ]
製作中のアプリの一部をクラスライブラリで分離する場合
完全に別プロジェクトでアプリプロジェクト->ライブラリプロジェクト(デバック)
の参照をつけてやったりするのかな?

488 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:26:21 ]
>>472
ばかだなぁ。なければ作ればいいじゃないか。
無知なお客さんを言いくるめるくらいワケないだろ。

‥‥ほんとうに生産効率はいいんだから。

489 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:37:42 ]
>>487
別プロジェクト以外ってことは、1つのプロジェクトでexeとdllの両方を出力とか?
普通の方法ではそんなことできないと思うけど

490 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:54:08 ]
普通はひとつのソリューションでやるわな。

491 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:02:36 ]
>>487
普通そうでしょ。
でもプロジェクト参照は循環参照不可だから、、
複雑なプログラムになってくると案外プロジェクトの切り分けが難しかったりする。

>>489
アセンブリが別とは言ってないんじゃない?

492 名前:487 [2010/03/12(金) 22:26:45 ]
>>491
最終的にアセンブリを一つにするかexeとdllに分けるかで
変わってくる感じですかね

493 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:37:35 ]
>>492
internalアクセス修飾を有効活用したいから、という、
人によってはちょっと不純に見えるかもしれない動機の場合もあったりする

494 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 02:28:12 ]
今独習C#を一通り読み終わって
C#でWEBアプリケーション作りたいのですがお勧めの本があれば教えてください
ttp://ascii.asciimw.jp/books/books/detail/978-4-7561-4999-2.shtml
上記URLのようなものはあるのですがどうも評判が悪いので・・・

また関連書籍にASP.NETが多いですが、ASP.NETの本≒WEBアプリケーションの本という認識であってますか?

495 名前:デフォルトの名無しさん [2010/03/13(土) 02:33:26 ]
WEBアプリケーションって自分ブラウザとかじゃなくブラウザ上で動くプログラムということでOK?



496 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 02:39:23 ]
>>495
自分ブラウザです
IEやfirefoxの簡易版を作りたいです。

497 名前:デフォルトの名無しさん [2010/03/13(土) 02:42:44 ]
それだったらc# WebBrowserでぐぐれば基本的なことは本買わなくてもできるよ

498 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 03:25:09 ]
>>496
それってデスクトップアプリというんだよ
WEBアプリはブラウザをクライアントとするものだから
まったく別物

499 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 04:07:21 ]
たとえば、何の前置きもなしに「WEB開発」って言われたら、
WEBアプリを作るって解釈しておk?
面接でそういう質問があったんだけど。

500 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 04:23:41 ]
>>499
そうだね
JAVA,javascrpt,HTTP,Perl,RCFの知識があるのかってことになる

501 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 05:35:47 ]
どこから突っ込めば

502 名前:デフォルトの名無しさん [2010/03/13(土) 05:52:56 ]
WEB開発って面接官もへぼいな
WEBに関係することって
・クライアント(webブラウザー)そのもの
・クライアント上で動くスクリプトなど
・サーバー側
大きく分けてもこんな感じだしなあ
ものすごく範囲は広いよ
さすがに最近はhttpのプロトコル処理関連まで作るなんてのはないだろうけど

503 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 06:13:25 ]
その面接官は多分ホームページ作ったことあるか聞いてたんじゃないかな

504 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 09:27:23 ]
いいかげんスレチだけどwebってwwwの略なんだから
全てクライアント上で動作する物はwebアプリとは言わないだろ基本的に
その面接官もwebを理解してるのかあやしいがweb開発なんて言ったら
重箱の隅から隅まで含まれるぞ

505 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 09:30:09 ]
phpくらいしかできないよ



506 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 09:57:46 ]
十分だよ

507 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 10:00:49 ]
つまりズブの素人ってことだよ
言わせんな恥ずかしい(AA略

508 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:18:40 ]
こんなスレみるんじゃなかった・・・
ヤホーの知恵袋にでもいってくりゃよかった

なんかゴメン

509 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:27:00 ]
つうか、たまたまだろ
平日に仕事しながら見てるやつて結構とレベル高いと思うけど?

510 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:34:33 ]
日本語のレベルが低いですね

511 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:37:26 ]
ちっ、うっせーな

512 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:38:33 ]
うっ、ちっせーな

513 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:43:30 ]
ちっ、ちっせーな

514 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:37:35 ]
C#だとCの供用体みたいなのをつくるときって
unsafeつかわないと無理?

515 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:40:49 ]
StructLayoutとFieldOffsetだけで一応作れるけど
今時共用体とかないわー



516 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:57:01 ]
日本語のレベルが低いって、ふだんはC#で他人と会話しているのか?

517 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:03:51 ]
は?

518 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:25:17 ]
ここは普段他人とはなさずに一日中PCの前でプログラム組んでるオタが来る場所だから
日本語をまともに話せない人がいても仕方ない

519 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:37:35 ]
>>516
if (This.Seiyoku >= 95) {
 This.Hand.GetTimpo();
 for (int i = 0;i < 2000;i++) {
  This.Hand.Up();
  This.Hand.Down();
 }
 this.Say("あああああ───────");
}

520 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:49:42 ]
MessageBox.Show("ふぅ・・・");

521 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 15:38:49 ]
2000も要らんだろ。


522 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 15:50:02 ]
細胞が壊死するぞ。

523 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 15:50:47 ]
C#を猛プッシュしてるキチガイうぜー

524 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 15:51:42 ]
おまえらは4でじゅうぶん

525 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:15:33 ]
C#はWindowsのGUIアプリを作るっていう非常に限定された状況でのみ
CやC++より優秀



526 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:18:48 ]
あと初心者にはかなり使いやすい

527 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:49:14 ]
>>519
ウィルスコード確認しました

528 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:07:20 ]
>>526
それはC#のメリットというよりVC#環境限定の話だろ
最初にインテリセンス体験したとき開発者マジキチって思った

529 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:14:36 ]
スニペットのせいで構文覚えられない初心者が多発、という弊害がもれなく付いてくるけどなw

530 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:15:01 ]
ただの補完なら大概の言語で使えるけどね

531 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:16:54 ]
構文を覚える必要はない

532 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:24:03 ]
構文は自然と覚えるものだと思うが

533 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:36:34 ]
構文と言うよりも単語が覚えれないかな

534 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:36:59 ]
スニペットなんてただの初心者騙しの鬱陶しい機能にしか思えないけど、
あんなの活用してる人いるのか

っていうかPEZみたいな名前が気に入らん。
ラムネ菓子かっ

535 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:44:48 ]
>>534
PEZさんディスってんじゃねー



536 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:46:51 ]
楽できるなら楽したらいいと思う
いまさら a += 3 を a = a + 3 って書きたいひとはおらんじゃろ

537 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:46:58 ]
プロジェクト内だけのスニペットは便利だったりする

538 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:53:09 ]
>>536
おまえはおれを怒らせた

539 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 18:19:07 ]
昔はprop->のproperty作成とかやってたな。
private変数作ってから、crtl+r, ctrl+eのリファクタの方が便利だと知ってからは使わなくなった。

540 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 20:33:49 ]
よく入力するパターンは自分で定義して使ってるな

dw: Debug.WriteLine( );
eh: (_sender, _e) => { };

とか

541 名前:デフォルトの名無しさん [2010/03/13(土) 20:53:42 ]
>>475
なにこのコード
なんでusing使ってるの?
俺がC#触ってない間になんかあったのか

542 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 20:55:57 ]
どれぐらい使ってなかったんだ

543 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 20:59:54 ]
IDisposable

544 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 21:00:20 ]
>>541
button1.Click += (sender, e) => MessageBox.Show("こんなのもできるよ");

545 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 21:01:47 ]
using構文はC#1.0当初からある構文だが
強いて言うなら>>541が触ってない間に>>541からC#の記憶が飛んだんじゃないか



546 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 21:50:11 ]
最初から知らなかっただけだろう


547 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:00:41 ]
2.0からだと思ってた俺

548 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:03:58 ]
>>512
(´;ω;`)

549 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:10:03 ]
2.0からだろ

550 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:12:35 ]
>>544
ラムダ士気って便利だよね。

551 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:14:10 ]
ちょっと教えてください
文字列が入ったリストデータをTreeViewに表示する場合

TreeViewを継承した自作クラスにリストデータを直接読み込んで表示するようなメソッドを作るべきか
TreeViewのNodesに追加する処理をForm1でするべきか

どちらがいいのでしょうか?

552 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:17:31 ]
その程度なら後者

553 名前:デフォルトの名無しさん [2010/03/13(土) 23:23:28 ]
>>551
どっちでもいいんじゃね?
なんでもかんでもFormに書くのもあれだし継承してあれこれ作れるならそういう練習を兼ねて別途設計してもいいだろうし

554 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:28:22 ]
練習も兼ねて自作クラス作ってみようと思います
ありがとう

555 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 01:10:52 ]
うむ



556 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 03:31:22 ]
フォームアプリで処理内容を表示したいのですが
Form1の処理内容ならtextboxなどに表示すればいいですが
form1でインスタンス化したオブジェクト内部の処理内容を表示したい場合
どうすればいいでしょうか?

557 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 03:54:06 ]
オブジェクトに処理状況を返すメソッドを作って
Form1から非同期で動かして定期的に処理状況を調べる

558 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 07:39:47 ]
非同期・・・ちょっと難しそうですね・・・
諦めます

559 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 09:42:11 ]
なんでも試してみるもんさ

と、偉大なゲイは言いました

560 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:00:47 ]
もしくはそのオブジェクトに textbox なりを教えてあげて、
オブジェクト内部の処理が終わったら textbox に直に書き換えてさせてしまうとか。

他との兼ね合いがないなら、自分はそうする。

561 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:01:51 ]
BackgroungWorker使えばそこまでめんどくもないと思うんよ

562 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:43:11 ]
スレッドの扱いやすさ考えるとBW使うのめんどくさくてね・・・

563 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:43:44 ]
>>556
>>558のように言ってるって事は、恐らくその「オブジェクト」の処理は
UIと同じスレッドで動くってことなんだろうから、
それなら単純にその「オブジェクト」のクラスに〜Changed系のイベントを実装して、
Formの方はその〜Changedイベントで表示内容を更新すればいいんだよ。

それが面倒で、かつ更新するコントロールの数が少ないなら、
Formにタイマくっつけてタイマのイベントで表示内容を更新してもいい。

何か難しく考えすぎてないか?

564 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:09:23 ]
ですね

565 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:45:49 ]
>>563
>>560
なるほど、イベントは自前で作った事ないからやってみてもいいかも
簡単なのはtextboxの参照渡すのがいいですね

検討してみます
ありがとうございました



566 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:59:28 ]
なんか初心者が間違った知識を覚えるのをほっとくのも気が引けるんで一応突っ込むけど、

>簡単なのはtextboxの参照渡すのがいいですね
こういうやり方は普通は邪道とされている。
馬鹿だと思われたくなければやっちゃダメ。

これがダメな一番の理由はそんなことをしちゃうとそれぞれのクラスの
役割分担が明確じゃなくなるから。

TextBoxの更新を担当するのは、その持ち主であるFormであるべきだとは思わない?
他のオブジェクトがTextBox更新しちゃうのなら、Formの役割って一体何よ。

567 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:08:52 ]
それは設計によるとしか言いようがない。

568 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:21:32 ]
ただ機能的要件が果たせさえずればOK、と思いつくままにTextBoxの参照を
渡すような馬鹿で間抜けな行為を「設計」とは言わない。

569 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:22:43 ]
まぁそれをいっちゃうとMVCとかObserverとか面倒なので

570 名前:デフォルトの名無しさん [2010/03/14(日) 14:29:27 ]
まあtextboxもクラスだからついついやりがちだけど所詮はGUI部品だからなあ
一番いいのはデリゲートだっけ?

571 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:34:01 ]
563の言うようにするかなあ
その処理オブジェクトは、進捗を公開するかしないかを決め、
GUIオブジェクトは、それを見るか見ないか自由にする

572 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:50:30 ]
前に別スレッドからメインのFormに貼ってあるtextboxにログを吐く方法を聞いたときに
作ったのならあるわ

Form1.cs
codepad.org/1Hh4f1Od

hoge.cs
codepad.org/qwrtJJFk

hoge.csは自分でクラスを作ってコード張ってくれ
Form1.csの方はtextboxをDock=Fillで張ってスクロールバーを表示しておけばいいか
あとshownで表示させてるのでイベントハンドラ追加してからコード貼ってくれ

573 名前:デフォルトの名無しさん [2010/03/14(日) 14:51:23 ]
hogeクラスはスレッド起動部分を書いてないけど移植前の方では動いてるので問題ないと思う。

574 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:06:30 ]
PInvokeでもつかえば

575 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:08:59 ]
P無しで



576 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:10:45 ]
ほうピンボケを

577 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:13:03 ]
関数名をhogehogeにするつもりがhogehoeになってたw

hogehoeは本当はスレッド起動をさせる関数なんだけどその辺は端折ったw

578 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:23:18 ]
訂正版
codepad.org/9LRQpsMq

579 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:56:25 ]
codepad.org/xOdJsJie
こんな感じで遊んでたんだがApplication.DoEvents入れて経過を分かるようにすると
スレッドの動作が変わった感じなんだが何が変わったんだろう。

Application.DoEvents無し->適度に3スレッドの出力が混じる

Application.DoEvents有り->最初の一回だけ起動した順に結果がでるけど2回目以降は後で起動したスレッドだけ?やってる感じ

580 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 15:58:05 ]
100x3は多いので10x3に絞ってみた
Application.DoEvents有り
[ 0000 ] 0
[ 0001 ] 0
[ 0002 ] 0
[ 0002 ] 1
[ 0002 ] 2
[ 0002 ] 3
[ 0002 ] 4
[ 0002 ] 5
[ 0002 ] 6
[ 0002 ] 7
[ 0002 ] 8
[ 0002 ] 9
[ 0001 ] 1
[ 0001 ] 2
[ 0001 ] 3
[ 0001 ] 4
[ 0001 ] 5
[ 0001 ] 6
[ 0001 ] 7
[ 0001 ] 8
[ 0001 ] 9
[ 0000 ] 1
[ 0000 ] 2
[ 0000 ] 3
[ 0000 ] 4
[ 0000 ] 5
[ 0000 ] 6
[ 0000 ] 7
[ 0000 ] 8
[ 0000 ] 9

581 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 17:43:05 ]
あるインスタンスが同じクラスの別のインスタンスに影響を与えるのは悪いことですか?

582 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 17:45:05 ]
たとえば、Form1の中にButton1とButton2があったとして
Button1.Clickを、Button2のサイズとか名前とかを変える
みたいなイベントにしたら、Button1はButton2に影響を与えてるけど
これっていけないことなの?

インスタンスはすべて独立させたほうがいい
みたいなこと書いてたんだけど

583 名前:デフォルトの名無しさん [2010/03/14(日) 17:47:20 ]
>>582
ケースによるんじゃない?

584 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 17:57:33 ]
そんなこと真面目に聞いてたら無効にしたボタンは二度と有効にできないな
どこでそんなこと言ってたのか興味あるから教えて欲しい

585 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:05:47 ]
Button を継承した Button1 のメソッドで Button2 をいじったらだめだろうけど
実際いじってるのは親の Form なんだから、 Button1 が Button2 に影響を
与えてるわけではない



586 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:10:43 ]
>>556の話はインスタンス化したオブジェクト内部なんで
関係としては>>572>>578>>579あたりのコードのような状態だからなあ

buttonが直接外の何かに影響するってことは標準ではなくて
イベントハンドラを登録して処理は別途書くよね

587 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:12:54 ]
「影響」というのがメソッド呼び出しの事をさしているのであれば、(それ以外にありえないと思うけど)
影響を与えるなというのはメソッド呼び出しするな、と同義になるわけで、
じゃあprivateなメソッドだけを持つ自律的なクラスだけでコードが書けるのかと。

まあ、要するに愚問過ぎるw

>>585
いや意味わからないしw

588 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:48:37 ]
はぁ〜い
ちゃぁ〜ん

589 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:48:40 ]
アプリ起動時にフォームとフォーム内のコントロールが
ちゃんと表示されてからプログラムが実行されるようにしたい
shownでもフォームが表示されただけでコントロールが
ちゃんと表示されない状態で実行されるのですが
なにか良い方法はないでしょうか?

590 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:52:11 ]
ない。

591 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:54:39 ]
Application.Idleが近いかねぇ

592 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:54:51 ]
ままっままま、まじっすか

593 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 18:58:10 ]
あるあるよ

594 名前:デフォルトの名無しさん [2010/03/14(日) 19:00:40 ]
WebBrowserだとnavigatedイベントなんてあるけどそれと似たようなのって聞いたこと無いな

595 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:03:10 ]
普通はフォームが表示される前に
事前処理を終了させるのかな
他の言語でもこんな感じ?



596 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:04:28 ]
言語の問題じゃなくてWindowsの問題だと思うけどなw

597 名前:デフォルトの名無しさん [2010/03/14(日) 19:07:45 ]
Formが表示されてからしばらく何か動くのであればshownのタイミングで
Form全体のコントロールを触れないようにして処理した後ユーザーが触れるようにするとか

ちなみにやり方に普通はないよ

ユーザーがフリーズしたんじゃないの?とか
表示されたので触っていいと思ったけどなんか触ったらおかしくなった・・・とか
そういうのを回避できてればいいと思うよ

598 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:13:58 ]
activateかなんかなかった

599 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:20:26 ]
shownだとユーザーがフリーズしたと思われそうだなー
loadイベントで処理する方がマシか

600 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:23:43 ]
うん

601 名前:デフォルトの名無しさん [2010/03/14(日) 19:28:16 ]
>>599
Loadでやるにしてもスプラッシュウインドウでも出しておかないといらちにはあれだぜ

いらちをだますには適度なタイミングでちびちび変化を見せてあげるほうがいい

602 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:29:39 ]
ほとんどビョーキ

603 名前:デフォルトの名無しさん [2010/03/14(日) 19:31:25 ]
>>602
病気だけどそんなのはいえないしねえw

604 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:31:47 ]
いやShownでちゃんと表示されてるはずだし。
でなきゃ"Shown"って名前が嘘になっちゃうし。
何がしたくて何を言ってるのかサッパリ意味がわからんな。

605 名前:デフォルトの名無しさん [2010/03/14(日) 19:34:57 ]
>>604
FormのShownでしょ
確かに上に乗ってるコントロールはFormのコンストラクタでできてるので
問題はないけどshownの段階ではForm上にのってるコントロールのどれかが
何かしら動いてる?から今回の質問なわけでしょ・・

まあ自分のアプリの処理のタイミング調整でなんとかなりそうだけど



606 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:38:41 ]
>>605
ごめん真面目に何言ってるのか理解できん。
っていうか、それ>>589が言ってることと明らかに違わないか?w


607 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:51:19 ]
>>601
イラチのおれはスプラッシュウィンドウなんて表示しなければ
もっと起動早いだろって思う

608 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 19:52:05 ]
d.hatena.ne.jp/gsf_zero1/20100215/
これじゃね

609 名前:589 mailto:sage [2010/03/14(日) 20:00:28 ]
>>608
おお、まさしくこれだ
ありがとう

610 名前:デフォルトの名無しさん [2010/03/14(日) 20:01:35 ]
え・・・そんな基本的な話だったの?

611 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:08:12 ]
>>608
ブログ主はなんか勘違いしてるな
Appliation.DoEvents()って、そんなもので自分のいってる問題が
本当に解決してると思ってるのかw

悪いけどおめでたすぎるわ。

612 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:09:57 ]
>>611
ではズバリ教えて

613 名前:589 mailto:sage [2010/03/14(日) 20:13:33 ]
Application.DoEvents()すげーー

ループ処理の中に記述しただけで
今までListViewが随時更新されずに、処理後結果が一気に表示されてたのに
リアルタイムで再描画してるーーー

これをあっちこっちに入れるとしあわせだな

614 名前:デフォルトの名無しさん [2010/03/14(日) 20:14:31 ]
でもそれやると処理が遅くなるけどね

615 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:18:38 ]
>>612
OnShown()なりOnLoad()なりでApplication.Idleとかに紐付けするのが
正攻法だとは思う。

内緒だが、同じことを簡単にやる方法としてはthis.BeginInvoke()を使う、
なんて手もあったりする。

まあ、これってそもそも下らない問題意識だと個人的には思うけどね。

>>589
Application.DoEvents()なんか必要もないのに(必要な場面がそうあるとも思えんけど)
VB厨って言われるよ。

それはともかく、明らかに悪い作法だ。



616 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:22:16 ]
DoEventsはおかしな動作する元だからな

617 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:22:44 ]
DoEventsやるとメッセージ処理されるから順番が逆になったり弊害が出る

618 名前:589 mailto:sage [2010/03/14(日) 20:24:43 ]
え・・・

WEBからファイル落とすときにフリーズ状態になるので
Application.DoEvents()で描画更新されるようになったんだけど

本当は非同期でやるべきなんだおろうけど

619 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:28:15 ]
>>618
そう端的に言って努力の方向が間違ってるよ。

620 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:31:19 ]
WebからファイルってAsyncあるだろーが

621 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:46:33 ]
>SystemException は、ユーザープログラムで回復できる致命的ではないエラーが発生した場合に、共通言語ランタイムによってスローされます。

とのことだが、キャッチして回復しようとすると「CA1031汎用的な例外をキャッチすんな」って怒られるんですけどどうしろと
HAL9000もバグっちゃうよ

622 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 21:01:25 ]
ああ、もうSystemExcpetionとかApplicationExceptionとか過去の話だから

623 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 21:05:39 ]
俺の問題解決にはすべて非同期プログラミングの習得するか否かにかかってるとみた
私はあえてこの高度なアルゴリズムに挑むことにする
すべてはより高度なアプリを開発するために

624 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:08:51 ]
Console.WriteLine("{0}",intA)
この書式をtextBoxに表示するのに利用するにはどうすればいいですか?

625 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:10:38 ]
String.Formatとかどう?



626 名前:デフォルトの名無しさん [2010/03/14(日) 23:13:41 ]
intA
これって文字通りintの変数?

だったら
textBox1.Text += intA.ToString();

とか

textBox1.AppendText(intA.ToString());

とか

数字の出力パターンを変えたい場合はintA.ToString("0000")
とかすればいいよ

この辺は調べて

627 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:47:39 ]
>>625
これこれ、こういうのがほしかった
ありがとう

628 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 00:30:11 ]
クラスが10個ぐらいになるともうわけわかめ
UML導入するか

629 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 00:33:13 ]
UMLでどうにかなる問題じゃないだろ
10個程度のクラスの相関を把握できないでどうするよ

630 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 02:22:09 ]
わけ分からない→じゃあUMLだ、という発想がイミフ。
これまでドキュメントとか無かった現場なんだろか。

631 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 03:25:13 ]
そうだよ

632 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 03:27:51 ]
ユーザーが数字ではなく文字を入力した場合のエラーの取得はこういう感じでいいのでしょうか?
それともUserInputクラス内ではtry文を使わないでProgramクラスだけでやったほうがいいんでしょうか?
 public class UserInput
 {
  public int Input()
  {
   int a = 0;

   try
   {
    a = Int32.Parse(Console.ReadLine());
   }
   catch (Exception e)
   {
    throw e;
   }

   return a;
  }
 }

633 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 03:28:32 ]
>>632の続き
 class Program
 {
  static void Main(string[] args)
  {
   UserInput ui = new UserInput();
   try
   {
    int b = 0;
    b = ui.Input();
   }
   catch (Exception e)
   {
    Console.WriteLine(e);
   }
  }
 }

634 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 04:54:15 ]
>>632
catch { throw; }

とか何がしたいんだか分からんw

635 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 05:52:59 ]
(゚∀゚)



636 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 05:53:23 ]
右から左に受け流したいんだろう

637 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 06:49:17 ]
左から右へ受け流すのはゆるさないからなw

638 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 11:59:14 ]
わざわざコケさせなくてもTryParseとかあるし

639 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 12:10:41 ]
例外ロンダリングだよ。

640 名前:デフォルトの名無しさん [2010/03/15(月) 13:41:01 ]
入力された文字が数字だけかどうかって面倒なら
Convert.ToInt32(textBox1.Text)
とかやってtry catchで判断すればOKだよ

641 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 13:58:55 ]
try catchなんてするくらいならTryParseでいいだろ
って話だ

642 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:14:23 ]
TryCatchなんかでやってたらエラー時のスタック解析の時間とか入れたら劇遅になるじゃねぇか



643 名前:632 mailto:sage [2010/03/15(月) 14:23:37 ]
すいません、これは単純なモデルで表現したくてやったので
この場合だとTryParseを使ったりすればいいですが

本当に聞きたかったのは
ファイル入出力時のエラーや、WEB操作時のエラーや
オブジェクトがnullだったりなど、Formとは別のクラス内部のエラーが
あった場合に別クラスの内部で例外処理をするのか
Form上で例外処理をするのかがよくわからないんです
一般的にどういうやり方をするのか聞きたかったのですが
うまく説明できなくてすいません

644 名前:デフォルトの名無しさん [2010/03/15(月) 14:26:32 ]
.net時代のエラー処理ってやつですかね?

C/C++時代だと暴走の元なのでポインターがnullかどうかチェックしたりとかやってたようなのをどうしてるのか?
ってところ?

645 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:29:44 ]
例外もみ潰しても続行できるなら内部で処理
できないなら外に投げる



646 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:38:08 ]
お前らって例に噛み付くよね。
例えばの話に本気になってどうするの。

647 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:44:48 ]
一事が万事という
小事に本気になれない奴がどうして大事に本気になれようか

648 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:50:34 ]
(^ω^;)

649 名前:632 mailto:sage [2010/03/15(月) 15:05:46 ]
>>644
多分そういう感じです

例えばフォーム上であるクラスのメソッドを呼び出して
nullが返ってくる場合もあるし、例外で投げられる可能性もあります

ResCollection thread_Honbun=bbs.ReadRes(url); ←例外がでる可能性

thread_honbunを利用 //←nullで例外がでる

なぜこういう質問するかというと
別クラス内部でいくら例外処理をしたところで
結局利用する側のformでやはり同じような例外処理を
しなければならないのでみなさんはどうしているのかと思いまして

650 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 15:14:43 ]
まずnullをなるべく返さない所から始めたらいいと思うよ。

651 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 15:32:36 ]
>>649
CodePlexで他人の書いたコード(なるべくメンバーの多い奴がいい)でも読んでみるといいよ
うんこ漏れそうなくらいtrycatch使いまくりだから

例外は昔の言語のnullチェックとエラー値チェックの代替機能なんだから
エラーチェックそのものをを省くための手段じゃないのよ
目的にしているのはエラーに対して画一的に対処できることね

例えばWin32APIにはnullを返すものもあれば、INVALID_HANDLE_VALUEを返すものもあるし
E_OK、E_SUCCESSなんてのを返すのもある
これら全部例外として括ってしまおうって趣旨だから

652 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 15:37:53 ]
うんこは漏れない。

653 名前:632 mailto:sage [2010/03/15(月) 15:42:58 ]
つまりちゃんとデータを返すかもしくはエラーを返すかの
2通りにするほうがいいということかな

確かに今のソースはnullかどうかをform側でも別クラスでも
条件分岐で何重にもやっている状態でしかもやってない場合もあったりと
かなりごちゃごちゃしてます
C#しかやったことないけど、自分は古いやり方をしていたということなのかな

他人のコード見て勉強してみます
どうもありがとう

654 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 15:56:14 ]
エラーコードを例外に置き換えるリファクタリングを思い出した

655 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:02:52 ]
この辺か

Replace Error Code with Exception
tp://www.refactoring.com/catalog/replaceErrorCodeWithException.html

Replace Exception with Test
tp://www.refactoring.com/catalog/replaceExceptionWithTest.html



656 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:06:21 ]
これはうんこ漏れるわ

657 名前:デフォルトの名無しさん [2010/03/15(月) 16:06:58 ]
まあ続行しても意味がないようなところで出るエラーはtryで拾ってもいいんじゃねーの?とか思うけどな
コストがかかるとか言っても継続できねーんだからいいだろうと・・・

658 名前:デフォルトの名無しさん [2010/03/15(月) 16:30:09 ]
テーブル 部
コード 名前
01   営業部
02   開発部

テーブル課
部コード 課コード 名前
01    01    第一営業
02    01    第一開発

テーブル社員
部 課  名前
01 01  山田太郎

といった データ構造で
社員をDataGridViewにデータバインドで表示する場合、
DataGridViewComboBoxColumを用いて課を表示することはできるでしょうか?
部テーブルは一意キーなので表示できますが
課テーブルは複数キーですので無理ですか?
型付データセットを使っているので、手動で余計なカラムを増やしたくなく、
リレーションをComboBox側のデータバインドでやってしまいたいっていう考えです。
どなたか回答お願いします。

659 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 17:03:22 ]
DBで取ってきてるなら
部と課をくっつけた一意な文字列のカラムも加工して取ってくるようにして、
課のキーではなくそれにバインドさせたら駄目だっけ?

660 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 18:41:16 ]
>>572
>>578
>>579
デリゲート使うと非常に便利ですね
参考にさせていただきます
ありがとうございました

661 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 19:59:42 ]
C#はプロパティがめっちゃ便利だな

変数に代入するのと同時に処理ができるってのはすばらしい
C言語だと同じようなことをどうやってたんだろうな。
Privateとかないからポインタを引数にとって参照私とかやってたんだろうか。

662 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:04:52 ]
C#を作った人物って
Delphiを作った人と同一人物なの?

663 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:07:13 ]
普通にgetter/setterじゃないのか
JavaやC++は今でもそうやってるだろ

664 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:16:09 ]
プロパティなんて無い言語のほうがおかしくて、
無いJava, C++, Perl, Rubyが同化してるとだけ言っておこう

C#との類似性がよく指摘されるVisual Basic, JavaScriptにはプロパティが存在する
あとPHPにもプロパティがある

665 名前:デフォルトの名無しさん [2010/03/15(月) 20:19:45 ]
>>664
古い言語にそんなこといっても仕方ないと思うけどw



666 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:43:28 ]
>>662
たしかそう

667 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:44:48 ]
>>666
Rubyは新しいぞぞ

668 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:50:30 ]
Jeffrey Richterだったと思うけど、プロパティなんてイラネって意見の人もいるんだよね。
俺は同意できんけど

669 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:54:02 ]
リッチャーの本大量に持ってるのに・・・
捨てっかな

670 名前:デフォルトの名無しさん [2010/03/15(月) 20:56:23 ]
でも結局は言語作ったおっさんの思想<多く使われる言語ってことなんだよな
>>664がプロパティ無いって言語は設計も古いし今となってはそれほど拡張もされてないような物だし

C#もそこそこ年数たったけどVBのよい部分は引き継いでるので似てても不思議ではないし

671 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 21:00:10 ]
>>662
アンダース・ヘルスバーグのことか?

672 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 21:18:13 ]
>>664
そういう歴史を無視した発言はゆとりだから?






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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