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


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

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



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

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

前スレ
ふらっとC#,C♯,C#(初心者用) Part36
pc11.2ch.net/test/read.cgi/tech/1232455653/l50


2 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:46:57 ]
うんこ

3 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:47:17 ]
C#, C♯, C#相談室 Part51
pc11.2ch.net/test/read.cgi/tech/1233757615/

WPF(XAML,XBAP,.NET3.5)GUIプログラミング
pc11.2ch.net/test/read.cgi/tech/1211453941/

初心者のためのプログラミング言語ガイド Part13
pc11.2ch.net/test/read.cgi/tech/1232286278/

4 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 23:48:05 ]
参考サイト。まずはここで検索してから。
www.google.co.jp/
msdn.microsoft.com/ja-jp/library/default.aspx
homepage3.nifty.com/midori_no_bike/CS/
www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
dobon.net/vb/dotnet/
jeanne.wankuma.com/tips/
www.labasp.net/CsharpNote/

5 名前:デフォルトの名無しさん [2009/02/08(日) 00:50:53 ]
質問があります。
Formにボタンを作り、それを押すと「終了しますか?」というロゴが出て
「はい」を選択するとプログラを終了、「いいえ」を選択すると
そのまま続行させるプログラムを書きたいのですが、
if文をどのように書けばこのように処理できるのでしょうか?

6 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 00:57:21 ]
void button1_click(object sender, EventArgs e)
{
if(MessageBox.Show("終了しますか",??.OkCancel) == DialogResult.OK)
this.Close();
}

こんなんだったと思うけど

7 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 01:04:43 ]
DialogResult result = MessageBox.Show("終了しますか?", "確認", MessageBoxButtons.YesNo);

メッセージボックスで押されたボタンによってresultの値が変わるので、
Yesのときはフォームを閉じ、それ以外のときは何もしなければいい。

if (result == DialogResult.Yes)
{
  Close();
}

でおk。

8 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 01:07:12 ]
メッセージボックスの返り値ならifよりswitchを勧める

9 名前:7 mailto:sage [2009/02/08(日) 01:08:16 ]
それから、条件式の中にMessageBox.Show()を突っ込むのはやめたほうが無難。
一概には言えないけどね……

10 名前:デフォルトの名無しさん [2009/02/08(日) 01:10:59 ]
なんでswitchのがいいの?



11 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 01:42:34 ]
それから、条件式の中にMessageBox.Show()を突っ込むのはやめたほうが無難。

これも知りたい

12 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 01:52:36 ]
Formsのイベントハンドラの中でMessageBox.Showを使うのが良くないというのなら分かる。
中でメッセージループを回す結果、イベントの処理中にもかかわらず
他のイベントが発生する可能性があるためという話だけど。

13 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 01:59:03 ]
じゃあどうすんの?

14 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:04:19 ]
確かにw

15 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:10:28 ]
タイマーイベントで使うと再入があるから問題が起きるが、
Form上のコントロールからのイベントならFormからフォーカス奪うから問題なし。
switch使えはエスパーするとYesNoCancelなどの3値型の場合かなぁ。
2値型ならifでいいと思うけど。

16 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:31:13 ]
結局、何の根拠もないってことか
自分の流儀ってならわかるけど、それを人に勧めるのはどうなのよ

17 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:35:16 ]
formのイベントでmessagebox中にタイマーイベントが発生した場合は?

18 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:37:49 ]
やってみな
発生しないから

19 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:38:05 ]
>>17
タイマーイベントが呼ばれる。
本当に再入注意ってだけ。そのタイマーイベントの中でメッセージボックスを呼ぶとかしたらw

20 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:38:14 ]
発生してそれで何か困ることがあるの?

起きて困るのは同じ種類のイベントが再入した場合だと思うのだけれど。



21 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:40:52 ]
>>18
発生しないんだ

>>19
呼ばれるんだ

>>20
>発生してそれで何か困ることがあるの?
このように今困ってる

22 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:48:42 ]
Windows.Form+Windows.Forms.Timerだと発生する。
VB6の頃は発生しなかったような記憶があるけど。

23 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:52:17 ]
private void timer1_Tick(object sender, EventArgs e)
{
   MessageBox.Show(”Take it easy !”);
}
ブラクラみたいな状態になる・・・

24 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:53:01 ]
閉じる確認のmessageboxを表示するようなメソッドを作ることはよくある手法でしょ
そのメソッドがユーザの動作で呼ばれることもあれば、
タイムアウトで呼ばれる事もあるでしょ

どうなんの?

25 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 02:55:55 ]
その場合は慎重に再入を避けるロジックを追加すればいいでない。
どちらかが終了確認に関する処理を始めたらもう一方はすぐに処理を終えるようにする。

26 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 03:02:48 ]
じゃあ結局、どんな場合でも回避する余地が必要なんじゃん
staticなクラスを作って、それで表示させてあげればいいだけだが

で、条件式の中にMesssageBoxをいれてはいけない理由と、
結果をswitchで判断すべき理由は?

27 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 03:06:10 ]
>>5
いちおう、本人がそこまで求めてなかろうが何だろうがこれも。
void button1_Click(...)
{
 this.Close();
}
void Form_FormClosing(...FormClosingEventArgs e)
{
 DialogResult result = MessageBox.Show(this, "終了しますか?", this.Text, MessageBoxButtons.YesNo);
 if (result != DialogResult.Yes)
 {
   e.Cancel = true;
 }
}

>>5
そのうち「フォームの[X]ボタンで閉じたら聞いてこなかったぞ?」という
問題に出くわすかもしれませんが、そのとき、Form.ControlBox = false に
する前にこれを思い出してください。

// でも確かFormClosingのキャンセル機能はバグがあるんだっけ?

28 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 03:10:34 ]
>>27
Xでもちゃんとイベントは発生してる。
FormClosingEventArgsに終了の理由(原因)を示す情報が入ってたと思うけど。

>>12はもう寝てるんじゃね?

29 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 03:11:36 ]
しかしclose時の確認ダイアログなんて何十年前からある命題なのに
その最適解が存在しないなんて何もは進歩してないんだな

30 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 03:12:04 ]
>>5の書き方だとDialog使わなくても良さそうな感じだけどな

ボタン押す → OKとCancelボタン付きForm表示 → それぞれのイベントハンドラ実行

って感じで



31 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 03:12:16 ]
>>28
>>12じゃなかった、>>7-8だ。俺も寝よ。

32 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 03:14:00 ]
CloseReason使うとわけわかめになるから極力使わない

33 名前:5 [2009/02/08(日) 04:45:06 ]
回答をくださった方々、本当にありがとうございました。
無事に追加できました。

>>27
ご丁寧にありがとうございます。
FormにFormClosingイベントを追加するにはどうすれば良いのでしょうか?

34 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 04:48:14 ]
Visual StudioのGUIエディターで
formを選択してプロパティウインドウのカミナリマークを押して探す

35 名前:5 [2009/02/08(日) 05:08:29 ]
>>34
ありがとうございます。
こういうメニューがあったんですね。
いつもはコンソールでプログラムを書いている為、分かりませんでした。

36 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 05:31:48 ]
ツール使ってないなら
form.Closing += (sender,e) =>{
 //処理を書く
};

こんなんでいい

37 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 10:59:23 ]
流れとは関係ないけど、
閉じるボタンでいちいち尋ねてくるなって感じる。
閉じるから押したんだよみたいな。
本当に閉じられたら困るときは別だけど

38 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 11:29:53 ]
>>977
ガッ

39 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 12:16:25 ]
if (MessageBox.Show("終了しますか?","",MessageBoxButtons.YesNo) == DialogResult.YesNo)
{
 if (MessageBox.Show("本当に終了しますか?","",MessageBoxButtons.YesNo) == DialogResult.YesNo)
 {
  if (MessageBox.Show("本当に終了しますよ?","",MessageBoxButtons.YesNo) == DialogResult.YesNo)
  {
   MessageBos.Show("じゃぁ終了します");
   return;
  }
 }
}

40 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:24:54 ]
それいいな
VSデバッグ時にアプリをバツボタンで終了させる間違って裏のVSまで押す時ある
デバッグを終了しますか?ってメッセージでるからはいって押すとVSが閉じるのが最初めちゃくちゃムカついた
VSもそれぐらいしつこいUIにしてほしい



41 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:30:43 ]
慣れたら連打するだけなんだから意味ないだろ。

それよりも「デバッグを終了しますか?」でいいえを押す事に慣れろ。

42 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:34:38 ]
>>39
コンパイルエラー
DialogResult.YesNo は存在しません。
MessageBos は存在しません。

43 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:42:29 ]
自作クラスですから

44 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:39:39 ]
class MessageBos:MessageBox

45 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:54:58 ]
保存しました って表示しといて保存してない方がシュールだ

46 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:03:52 ]
>>41
3回とも「しますか?」と「しませんか?」がランダムに入れ替わるようにして、
かつ[スタート]メニューに[今間違えて終わらせたプロセスを元に戻す]コマンドを
つけ、「元に戻しますか?」くらいやっとけば大丈夫だろ。


47 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:04:43 ]
[今間違えて終わらせたプロセスを元に戻す]はおもしろいな

48 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:12:19 ]
>>39
最後のメッセージは「運がよかったな。今日はMPが足りないみたいだ。」で。
[帰れよ]ボタンもいるな。

49 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:38:27 ]
再利用を考えるよりハードコーディングの方が動作は速いんですよね?

50 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:40:39 ]
概ね



51 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 19:21:46 ]
他のクラスのbool型変数が変わった瞬間に、
とあるForm1をClose()するにはどうしたらいいでしょうか?

52 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 19:26:30 ]
>>51
bool flag=true;
bool Flag{
get{return flag;}
set{〜}
}
じゃだめ?

53 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 19:29:58 ]
boolのプロパティを作成して変更時にClose()を呼ぶ

54 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 19:30:44 ]
リロードしてなかった
すまそ

55 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 19:30:49 ]
ナイスアドバイス!

bool flag=true;
bool Flag{     ←これから先もbool型変数があるクラスに書くの?
get{return flag;}
set{〜}
}

56 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 19:35:27 ]
>>55
うん
でset{〜}
にやりたい処理書けばいい
最初にflag=trueにしたりして
あとpublic付けるの忘れたFlagの方
いらないなら良いけど

57 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 19:36:34 ]
あ、すまん
set{
flag=value;
if(value==true){
//やりたい処理
}
}

58 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 19:37:20 ]
>>53
プロパティというのはクラス[デザイン]のプロパティ?

59 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 19:52:31 ]
>>51
他のクラスが何なのかによるけど、
少なくともForm1の状態変化に関する処理は、なるべくそのForm1に記述したほうがいいと思う。
なんで、他のクラスのboolがtrueになったらイベント発生させて、Form1の特定のメソッドを実行させる。
んで、そのメソッド内でCloseする。


60 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 19:59:47 ]
なぜだ・・・。getしてくれない。
デバックで見ても作成したメソッドに飛ばない



61 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:58:06 ]
>>59
×なんで
○なので

なぜ〜に見えるから最後まで読まないとわからないからね

62 名前:デフォルトの名無しさん [2009/02/08(日) 21:52:58 ]
Form1から呼び出した2枚目のFormをアクティブにしない
(常にForm1をアクティブにする)方法を教えてください。

63 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 21:57:03 ]
msdn.microsoft.com/ja-jp/library/system.windows.forms.form.showwithoutactivation.aspx

64 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 21:59:53 ]
全スレでも同じレスがあったと思うんだが

Form.ShowWithoutActivation

クリックされてもアクティブにならないなら
ContextMenuStrip あたり改造

65 名前:デフォルトの名無しさん [2009/02/08(日) 22:01:01 ]
>>63
どうやって使えば良いのかわからないんです。


66 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:01:08 ]
呼び出した後も絶対に2枚目をActiveにしたくないの?
それとも呼び出し時にForm1をActiveにしたいだけで、その後は2枚目がActiveになってもいいの?

後者なら2枚目が表示された段階で、呼び出し元がForm1なら、
Form1.Activate();すればいいだけじゃない?

67 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:03:49 ]
>>65
Form2 で override して true 返すだけだよ

68 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:04:20 ]
これ?
めんどくせーな

www.atmarkit.co.jp/fdotnet/dotnettips/494shownonactive/shownonactive.html

69 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:08:23 ]
>>63-67
ありがとうございました。

70 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:08:54 ]
>>68
ありがとうございました。



71 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:09:23 ]
>>68
実際にはインテリセンスが効くからあっという間にオーバーライドできる。
ov[space]showw[space] くらいタイプすればプロパティの形ができるから、
あとは戻り値をtrueに書き換えればおk。

72 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:21:36 ]
こういうのって、何で最初から設定できないんだろうな
TableAdapterのタイムアウト時間が設定できないとか、ほんと糞仕様だわ

73 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:27:05 ]
開発者も全部が全部必要な機能に気がまわんないだけ。
MS はまだフィードバック入れたら修正されるだけマシ。

74 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:29:23 ]
TableAdapter は別にしてこれ(ShowWithoutActivation)は実装上、互換性上
自然だと思う。細かい話をするとめんどくさいんでしないけど。

75 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:32:46 ]
人間だから仕方ない、放置より修正されるほうがマシ的な論議は飽き飽き。
最初から糞仕様には糞仕様と言い続けることが圧力になって反映されやすくなる。

76 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:02:19 ]
2chで騒いでも何にもならん。時間の無駄。
然るべき場所からフィードバックとして送らんと意味がない。

77 名前:デフォルトの名無しさん [2009/02/08(日) 23:11:16 ]
Expression Blend 2 欲しいよ。だれか、買って。SilverlightとC#でばりばりしたい。

78 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:19:08 ]
Web2とBlend2を2万円で買う方法を教えてください。

79 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:22:10 ]
評価版を仮想OSに入れてOS時間をストップさせるのはどうでしょうか

80 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:33:19 ]
amazonの新品を中古リストから買うとアカデミックが手続きなしでいきなり送られくるのは常識




81 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:34:49 ]
なら、尚更、人間だから仕方ない、フィードバック反映されるからマシ的な書き込みのほうが無意味だろ
何言ってるんだ?

82 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:37:24 ]
int型より小さいサイズの演算はint型に揃えられると書いてあるんですが、
uintの値を演算で使うとintにそろえられるんでしょうか?それともlongですか?

83 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:39:24 ]
>>81
それ書いたの俺じゃねぇし
どっちも無意味で程度の差などない。何言ってるんだ?

まぁ、俺もお前もスレチだな。

84 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:40:16 ]
blendはvistaとC#を戦略的に広めるためのものだからわざわざ買う必要ない
学生には配ってるし、知り合いいないのか?
使ってくれるだけでもうれしいはず。それで作ったアプリが宣伝になるからね。
俺はお金をもらわなきゃblendなんか使わない

85 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:43:42 ]
WPFとSilverlightの動作の重さには絶望した

86 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:43:57 ]
>>83
別にお前に対して言ってるわけじゃないんだが?
一方的にお前だけがスレチだな

87 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:48:09 ]
>>86
何言ってるんだ?

88 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:48:24 ]
Formアプリケーションを新規プロジェクトで作ったのですが、
このあと何ができるのか知るにはどうすればいいんですか?
置ける部品はリストにあるので置けばいいのはわかるんですが
その中の細かい動作のプログラムの部品の一覧はどうやってわかるんでしょうか?

89 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:49:52 ]
WPF,そんなに遅いのか?
DirectX使ってるってんで期待してたんだが

90 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:53:00 ]
今日K'sでOffice.macのアカデミックパケ見たら
「身分証の提示は一切必要ありません」って書いてあってワラタ



91 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:58:08 ]
配列を作るには

int []a = new int[10];

絶対こう書くしかないんですか?

int a[10];

こういう風にかけませんか?

92 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:59:04 ]
>>89
まあ、高機能な分、少々重い。

でも、たぶん、WPF に限らず .NET 全般の、初回起動時の遅さが一番でかくて、
後はそんなに気になるレベルじゃないと思う。

ただ、DirectX 使ってるからってゲームに使えると思っちゃダメ。


93 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:59:25 ]
マシンが遅いからいけないとか本末転倒なこと言い出すからやめろよ

94 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:00:04 ]
>>91
基本的に書けない。

unsafe な struct 内限定で、
fixed int a[10]; とは書けるけども、
これは基本的にネイティブとの相互運用専用。

95 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:01:31 ]
>>94
ありがとうございました。
変数の宣言はすべてnewをつけないといけないの大変じゃないですか?

96 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:01:44 ]
>>91
var a = new int[10]
が限界かな

97 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:03:04 ]
Formをダブルクリックして自動で作られたFormLoadを丸ごと削除したら
コンパイルできなくなりました。
一度自動で出来たメソッドをきれいになかったことにするには、後どこをいじればいいんでしょうか?

98 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:07:59 ]
>>87
お前に対してレスした記憶がないんだが?
何で突っかかってくるんだ?

99 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:13:27 ]


100 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:13:56 ]
>>95
変数は実体持たないただの入れ物。
new 付けてる方が本体。




101 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:14:58 ]
プロパティウィンドウのイベントマークをクリック
ドロップダウンのハンドラを削除

102 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:15:06 ]
>>95
仕様だから大変とは思わん

103 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:15:25 ]
入れ物を作ったあと、その変数に値を代入すれば
newがいらないってことですか?


104 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:15:30 ]
>>97
デザイン画面で、Form1 の [プロパティ ウィンドウ]->[イベント タブ]->[Load] に、Form1_Load があるから、それを消すとおk
もしくは、Form1.Designer.csを直接編集して↓の一行を削除。
> this.Load += new System.EventHandler(this.Form1_Load);

105 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:20:38 ]
>>101
thx。しかし項目になにもないんですけど、
手動で削除するのはもう無理ですか?
新しくプロジェクトを作ってイベントから削除したらコードからも消えてました。
間違ってコードから消した場合、すでに大量に中身を書いていたらもうお手上げなんでしょうか?

106 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:21:20 ]
>>104
それですどうもです!

107 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:24:36 ]
ここはコード エディタで変更しないでください。と書いてありました。
今後気をつけますthx

108 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:28:10 ]
コードとデザイナを切り替えるたびに5秒前後PCが固まるんですが、
これは許容範囲ですか?みなさんどのぐらいかかりますか?
PenD3.2*2 Mem3.3BG です。

109 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:30:49 ]
>>108
とりあえずスタートページOFF
ついでに、スタートアップのコンテンツをダウンロードする間隔もOFF

110 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:39:05 ]
こりゃVSをゲストOSで使うのは無理っぽいですね



111 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:40:24 ]
>>103
そりゃ、だって、
var a1 = new int [10];
var a2 = a1;
は合法なわけで。

112 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:48:17 ]
構造体にメソッドが入れられると書いてあるんですが、
もしかしてCの構造体とは別物と考えたほうがいいんでしょうか?

113 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:49:54 ]
>>112
DateTimeの定義をたどってみてみるといいよ
構造体なんだけど、クラスのようでもあり、メソッドらしきものもある


114 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:55:21 ]
>>88をお願いします。
ストップウォッチを作りたいんですが、時間が来たら音で知らせる物にしたいんです。
音を出すの部分はどうやってコードにするんですか?
キリがないと思うので一覧のある場所を教えてほしいです。

115 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 00:57:04 ]
>>114
ttp://www.codepanic.net/cs.html

116 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:02:12 ]
おーありがとうです。
組み合わせて頑張ってみます!

117 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:05:32 ]
>>95
そんなあなたにはVisual Basicをおすすめします。Dim a(9) As Integer

118 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:11:17 ]
>>117
どう考えても、DelphiかC++/CLIのほうがいいだろ
C#はDelphiのぱくりだし、ぱくりというか設計者が同じか。
今となってはマイナーなC#よりC++/CLIのほうが将来的に役立つ。

119 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:12:46 ]
どう考えても、F#のほうがいいだろ 
C#はDelphiのぱくりだし、ぱくりというか設計者が同じか。 
今となってはマイナーなC#よりF#のほうが将来的に役立つ。 

120 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:14:29 ]
(´・∀・`)… どう考えても、JScript.NETのほうが  



121 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:17:34 ]
C#はなんでこんなにマイナー言語なんだろうなぁ

122 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:17:58 ]
WPFとかがC++/CLI絶対対応しないからしょうがなくc#やってんじゃないの?
で結局WPFが糞だったみたいなw

123 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:20:17 ]
普通にVBかC++でよかったよな
C#は中途半端
騙された

124 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:20:19 ]
Delphiは良い言語だと思うが、会社がころころ変わって行く末が不安だ

125 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:20:52 ]
最初は低レベルな所をやって基本を固めるべき。
MSILしかありえんだろw

126 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:22:27 ]
ニーモニックをマスターすれば、オブジェクト指向はマスター出来たも当然ですか?

127 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:23:36 ]
>>124
Delphi Prismは機会があれば使ってみたいけど、その機会が(ry

128 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:27:39 ]
言語選定に関しては顧客の意見が優先されることもあるからな
普段、Windowsの仕様をボロクソに言うクセに、開発言語はMS製にしろという矛盾

129 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:33:03 ]
つかC#はdelphiそのもの

130 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:38:21 ]
frameworkもvclそのものだよな



131 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:43:56 ]
>>125
人はそうやって挫折しますw

132 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:52:11 ]
Objectってvoidのようなものですか?

133 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:52:36 ]
いいえ

134 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:53:02 ]
ということにしたいのですね。

135 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:55:38 ]
C++のスレでC++は重いからアセンブラが必要とかいってるんだけどwww
C#って勝ち組じゃね?

136 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:57:02 ]
だってObjectに一度する必要なくないですか?
どういうときに使うんですか?

137 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:58:17 ]
んで、C++とC#はどっちが思いっていってた?

138 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:59:55 ]
ある意味勝ち組

139 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 02:00:05 ]
>>136
一度ってどういうことよ
条件があとからどんどん変わっていったら誰も正確な意見なんていえないぜ

140 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 02:01:52 ]
一度というか型がわからないからObjectにするんですよね
で後でstringにするみたいな
Objectはどう必要なんですか?



141 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 02:05:07 ]
じゃあvoidとの違いを教えてください

142 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 02:05:45 ]
もしかして、void*のようなものと言いたかったんじゃないの?

143 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 02:10:52 ]
>>140
型がわからないんじゃなくて、どんな型でも入れられるようにobject
クラスの状態などが変化した場合、それに応じてコントロールを変化させたいような場合、
そのクラスにコントロールのポインタを格納できれば便利でしょ

144 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 02:19:35 ]
C#でもあるっちゃあるな
unsafe
{
   void* p = stackalloc byte[100];
}


145 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 17:57:40 ]
VS2010からC++が0xになるみたいですが、C#にはなにか追加されないんですか?

146 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:04:48 ]
>>145
C# 4.0でググレ。

147 名前:デフォルトの名無しさん [2009/02/09(月) 18:05:04 ]
A 変数a =(A)b
ってなんぞ。わけわかめです New使うのと、左辺の変数に右辺の値を入れるくらいしかわからんのです。

148 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:06:44 ]
こんなところでアホ晒しとらんと勉強しなはれ

149 名前:デフォルトの名無しさん [2009/02/09(月) 18:18:30 ]
どこ勉強すればいいかわからないです。
何で検索すればでてきます?カッコでキーワード?囲う意味がわからない

150 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:38:34 ]
>>147 cast



151 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:48:55 ]
クラスを継承した時に基本クラスのコンストラクタに引数がある場合はどうすればいいですか?

152 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:50:40 ]
>>149

ttp://msdn.microsoft.com/ja-jp/library/ms173105(VS.80).aspx

153 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:51:24 ]
あと、静的コンストラクタがよくわからないんですが、
一つのクラスにインスタンスコンストラクタと静的コンストラクタがある場合
インスタンスを作ったら両方よびだされるってことですか?

154 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:53:46 ]
>>153
質問する前にできる事は一度自分で試してみたほうが勉強になると思います。


155 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:56:52 ]
すいません。一通り入門書を読まないとコンパイルまで行かないような気がして。すいません

156 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 19:10:02 ]
using System;
namespace HogeHoge
{
class Test
{
static int i;

static Test()
{
i = 100;
Console.WriteLine(@"staticコンストラクタ i={0}", i);
}
public Test()
{
Console.WriteLine(@"コンストラクタ1 i={0}", ++i);
}
public Test(string str)
{
Console.WriteLine(@"コンストラクタ2 i={0}", ++i);
}
}
class Program
{
static void Main(string[] args)
{
Test t1 = new Test();
Test t2 = new Test(@"test");
Console.ReadLine();
}
}
}

157 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 19:37:14 ]
ありがとうございます!
t1の後ろにもConsole.ReadLine();を入れて静動両方のコンストラクタが呼ばれているのが確認できました。
しかし、これがうまくコンパイルできませんお願いします
class Test
{
static int i;
static Test() {
i = 100;
Console.WriteLine(@"staticコンストラクタ i={0}", i);
}
public Test() {
Console.WriteLine(@"コンストラクタ1 i={0}", ++i);
}
public Test(string str) {
Console.WriteLine(@"コンストラクタ2 i={0}", ++i);
}
}
class test2 : Test {
test2()
: base(str) { }
}
class Program {
static void Main(string[] args) {
Test t1 = new Test();
Console.ReadLine();
Test t2 = new Test("test");
Console.ReadLine();
test2 t3 = new test2("test");
Console.ReadLine();
}
}


158 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 19:41:27 ]
>しかし、これがうまくコンパイルできませんお願いします

たぶんこういう発言している間はあなたはプログラミングに向いていないと思います。

159 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 19:58:08 ]
アイちゃんが終わっちゃう

160 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 19:58:45 ]
うはまじごめん誤爆



161 名前:デフォルトの名無しさん [2009/02/09(月) 20:16:55 ]
>>150 ありがとう。アイちゃんには難しすぎた;;()内の型にデータを変換できるって適当に覚えちゃっていいのかな

162 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 20:57:21 ]
C#ってなんで流行ってるの?
ソースコード見られちゃうのに。

それと、C#で書いたコードは、
PHPみたいに、WEB上だけで動かせられるの?

つまり、ソースコードを見られないで運用する、って意味だけど。
それがC#.NETなの?

163 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:00:05 ]
なにを言っているのかね君は

164 名前:デフォルトの名無しさん [2009/02/09(月) 21:01:12 ]
おいらはVS2005でC#使うからー
C#以外でも動作するの?まあ、デザインはJavaとHTML使ってるけど

165 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:13:40 ]
デザインはJava(笑)

166 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:27:51 ]
>デザインはJava
これは流行る


167 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:30:07 ]
javafx script だったりして(笑

168 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:38:33 ]
デジャバ

169 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:06:57 ]
baseの使い方わかる方はいませんか?
157です。

170 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:11:12 ]
>>169
どこでどんなエラーになるかまで書かないと
自前でコンパイルまでしてくれる人はあんまりいないよ。
おそらくコンパイルエラーのメッセージがそのまま答えなのだろうけど。



171 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:32:51 ]
>>157
> test2 t3 = new test2("test");
これがどのコンストラクタを呼んでるのか考えてみろ

172 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:44:21 ]
PHPだってみられちゃわないか?

173 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:44:27 ]
class test2 : Test {
test2( string str ) : base(str) { }
}



174 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:59:01 ]
引数がどうしても渡せません
string a = new string("test");
test2 t3 = new test2(a);
どこがだめですか?

175 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 01:00:26 ]
大事なことなので2回言います
>どこでどんなエラーになるかまで書かないと 


176 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 01:35:31 ]
str2は現在のコンテキスト内に存在しませんです。
class BASE
{
public BASE(string str)
{
Console.WriteLine(str);
}
}
class TEST : BASE
{
public TEST(string str)
: base(str2)
{
}
}
class Program
{
static void Main(string[] args)
{
string str = "abc";
TEST t3 = new TEST(str);
Console.ReadLine();
}
}

177 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 01:46:00 ]
public TEST(string str2) : base(str2) { } 


178 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 01:48:27 ]
おーできました!ありがとう!

179 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 04:21:09 ]
デリゲートがよくわからないんですが、
イベントハンドラをまとめたクラスを作ってイベントに対応させるように使えばいいんでしょうか?
それとも個々にイベントハンドラをクラスに混ぜて使っていくものなんでしょうか?

180 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 05:17:59 ]
WPFとFormアプリって何が違うんですか?



181 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 05:26:57 ]
何が違うか・・というか、完全に別物。

182 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 06:14:21 ]
GUIエディターがFormなみになったらWPF使おうと思ってるけど
いつなるの?

183 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 06:50:56 ]
Form並ってどの辺を指して言ってるの?
SP1で改善されたが、それでも不満ならBlend使うかVS2010待つかしかないだろうね。

184 名前:デフォルトの名無しさん [2009/02/10(火) 07:12:56 ]
Visual StudioのGUIデザイナからFormBorderStyle.FixedSingle;を追加するにはどうすれば良いのでしょうか?

185 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 07:18:12 ]
フォームを選択して、プロパティ ウィンドウのFormBorderStyleをFixedSingleに設定するだけ

186 名前:デフォルトの名無しさん [2009/02/10(火) 07:51:17 ]
>>185
ありがとうございます。

187 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 08:28:28 ]
>>162
欠点差し引いても言語仕様がいいから。

ソース見られちゃうってのでいうと、JavaScript とか Flash だってそうだし。

PHP みたいなのの .NET 版は ASP.NET。
ASP.NET と比べたら PHP はかわいそうな子。

188 名前:デフォルトの名無しさん [2009/02/10(火) 08:42:00 ]
そんなこたーねーよ。
アメリカ軍とベトコンくらいの違いだろ

189 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 08:49:17 ]
逆に言えば.NETソフトをぱくって.NETソフト作ってもソースが丸見えだから
パクッたかどうかもバレバレ
パクられて困ってるなら訴えればいい

190 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 08:57:05 ]
難読化 訴訟コスト

巷のフリーソフトウェアは難読化とかしてるのかね
商用でもWebベースでなければ難読化必須な気がするが



191 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 09:14:49 ]
知られたらやばいぐらいのアルゴリズムなら特許取るんじゃね?
それ以外で難読化が必要なケースが思い浮かばないんだけど

つか.Net以外でも実行ファイルをリリースする時点でアルゴリズムも見ようと思えば見れるし


192 名前:デフォルトの名無しさん [2009/02/10(火) 09:17:47 ]
PHPよくわかんないけど、PHPもイベント駆動型で書けるの?

193 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 09:19:53 ]
有料のツールなら安価なやつでもデコンパイルできなくなったよ

194 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 09:31:57 ]
デコンパイルできないってどういうこと?
難読可って名前を分かりにくくするぐらいしかやってなくて
リフレクションでぶっ壊れるイメージしかないけど

195 名前:デフォルトの名無しさん [2009/02/10(火) 09:34:46 ]
文字列を暗号化でもしたんだろうか

196 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 10:06:08 ]
CLI 的には C# とかではどうやっても無理な識別子やコードは
確かに使えるけども

197 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 10:51:06 ]
自分が書いたコードを見られるのはちょっと恥ずかしいというのはある

198 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 11:48:26 ]
listboxのClearSelected( )についての質問です。
コンパイルを終えて、実行するとエラーが起きてしまいます。
listboxの項目を何も選択していないのにClearSelected( )をするのはダメなのでしょうか?

199 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 11:53:52 ]
質問です。
プロパティの中で、自身の名前(プロパティ名)を取得することってできますか?
調べましたがわからなかったため、方法があれば教えてください。よろしくお願いします。


200 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 12:21:47 ]
>>198
そんなことはないよ。
InitializeComponent()より前で呼んでるんじゃない?



201 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 12:54:19 ]
outとかref修飾子ってどういう時に使うんですか?

202 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 12:58:45 ]
>>201
MSDNに書いてあるから嫁よ

ttp://msdn.microsoft.com/ja-jp/library/t3c3bfhx(VS.80).aspx

203 名前:デフォルトの名無しさん [2009/02/10(火) 14:01:10 ]
Labelやメニューバーなど、Fontを変更させない場所にメイリオ等を使った場合
FontがインストールされていないXPや2000ではどのFontで表示されるのでしょうか?

204 名前:デフォルトの名無しさん [2009/02/10(火) 14:07:57 ]
YAHOO!「みんなの政治工作」
seiji.yahoo.co.jp/

大江康弘? 誰? 高橋千秋?? 知らない。どちら様ですか? 
そんな民主党のマイナー議員の皆様が激しく高得点。
そもそもどこの選挙区で何の実績を挙げてるのかすらよく知らん。誰かちゃんと全部知ってる? 
そんな人が70人通りかかって69人も支持。嘘だろー。
それに何か10,259件も誰かのコメントに支持したり反対したりしている。
何この超絶ヒマそうな民主党支持者。わけわかんない。一時間ほど経過したところ、
評価数がさらに増えて10,289件になっている。見て回った中では最高得点のクリッカーだ。
懸命にクリックしているのだとすると腱鞘炎まっしぐらだし、
スクリプトだとするとBOT使いは死ねという話である。おとなげない。

ヤフーが捏造した政党支持率 自民3% 民主76% 共産6% 社民3% 新党日本4% 国民新党2% 公明1%
quizzes.yahoo.co.jp/quizresults.php?poll_id=7186&wv=1
アンケート操作疑惑
wiki.livedoor.jp/ahoo_question/d/FrontPage

205 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:16:59 ]
これだとnodeがnullになるのですがこれはD&Dの時にtreeviewにフォーカスがない
からなのでしょうか?。またどうやったらD&Dしたノードを調べる事ができますか?。

private void treeView_sites_DragDrop(object sender, DragEventArgs e)
{
TreeNode node = treeView_sites.GetNodeAt(e.X, e.Y);
}


206 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:22:37 ]
クライアント(TreeView)のXYに変換しないとだめじゃないかな?
PointToClient とかで。

207 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:25:10 ]
TreeView.ItemDragでも使った方が面倒な事考えなくていいから楽だと思うよ

208 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:28:22 ]
Form1が他のFormが最前列にあって視覚的に見れないときは、
TopMost = trueにすればよいですが、
TopMostみたいにずっと最前列じゃなくて、後ろのFormをクッリクした時みたいに、
FormにあるBottomを押したときに最前列にする方法はありませんか?

209 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:32:36 ]
APIのSetWindowPos呼ぶとか

210 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:35:12 ]
>>206-207
ありがとうございます。
PointToClientで解決しました。

ノードの移動も追加するつもりでいますのでItemDragでも色々と試してみます。



211 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 15:04:14 ]
listboxがありまして、listbox_SelectedIndexChangedの動作のなかで
listbox.SelectedItem.ToString( )を使っています。
listboxの項目を選択した状態で、他の場所からlistbox.ClearSelected( )を行いました。

すると実行時に、listbox.SelectedItemが未定義になってしまいます。
別にlistboxの項目をクリックした分けでもないのに、選択解除をしたせいで、
listbox_SelectedIndexChangedの動作に入ってしまってエラーを起こしてしまいます。
お力添えお願いします。

212 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 15:12:09 ]
>>211
MSDN嫁

ttp://msdn.microsoft.com/ja-jp/library/system.windows.controls.primitives.selector.selecteditem(VS.80).aspx

213 名前:デフォルトの名無しさん [2009/02/10(火) 15:18:54 ]
C++のソースをC#に書き直しているんですが,
STLのmapのように入れ子にできて一意の値が代入できるコンテナってC#にありますか?

214 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 15:22:21 ]
あります。

215 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 15:22:57 ]
>>214
どれですか

216 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 15:32:05 ]
Dictionaryのことか?

217 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 15:39:03 ]
>>216
ありがとうございます
使ってみます

218 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 15:49:30 ]
>>212
ありがとうございます。
選択されていなかったらnullを返す。
未定義ってことは他に原因があるのでしょうか?

219 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 15:54:17 ]
Windowsフォームのクラス(ClassA : System.Windows.Forms.Form)では
thisの型はForm型?それともClassA型?

220 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 17:40:23 ]
Form型クラスの中にForm型をnewで生成することはできますか?



221 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 17:44:53 ]
うん

222 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 17:56:08 ]
>>219
つ this.GetType()

223 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 18:04:39 ]
俺も難読化に興味ある。
現状ではDLLを暗号化しておいて、実行時にネイティブコードを呼び出して
デコード→読み込みみたいな感じにしてる。
Reflectorだけでは解析不可だけど、ちょっと詳しい人なら簡単に突破される。

将来的には
ネイティブの実行ファイル起動→スプラッシュロゴ表示(.Netの遅い起動対策)
→裏でマネージコードをデコード&exeの起動
みたいな事ができないかと考えてる。

224 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 18:16:12 ]
ぼくのHelloWorldも難読化したほうがいいですか

225 名前:デフォルトの名無しさん [2009/02/10(火) 19:48:02 ]
Managed D3Dスレに誰もいないのでこちらで質問させていただきます
C#でD3D上にUI作るにはどういった方法がありますか?

226 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 20:14:05 ]
D3Dか、俺もやってみたいな

227 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 20:29:56 ]
俺がやってる方法は通常のアプリと同じ様にコントロールをつけて、
OnPaintイベントでD3D描画。これだけで3D表示とコントロールは共存できる。
ツールとかならこれでいーんだろーけど、ゲーム等、リアルタイムで
アニメーションさせる場合とかは一考が必要。
ただD3Dのパフォーマンスをギリギリまで求めると
コントロールのレスポンスが悪くなる。作るものに応じて何通りか試すといいかと。

228 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 20:40:54 ]
完全に自前でフレームワーク作るのが普通
各コントロールは自作のMyControlクラスを継承して,
それぞれOnRenderをオーバーライドして描画するとかWinFormsっぽくするとそんなに難しくない

229 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 20:40:56 ]
>>218
ListBox.ClearSelected()を見たほうがいいかもね。

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
ListBox ctl = (ListBox)sender;
if (ctl.SelectedIndex == -1)
{
label1.Text = "Cleared!";
}
else
{
label1.Text = ctl.SelectedItem.ToString();
}
}


230 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:41:34 ]
配列の要素数や、ArrayListの要素数など、
0以上の数値にしかなり得ないような数値の返り値がintなのはなぜでしょうか?
uintであるべきではない理由があったら教えて下さい。



231 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:44:39 ]
統一した方が便利だから
intに最適化されてるから
符号なし数値型はCLS非準拠だから

232 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:48:41 ]
むしろ「わざわざ」uintにする理由がないからだと思うんですが。。
「わざわざ」uintなんぞにしちまったらintと演算するごとに(以下略

233 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:51:19 ]
常識的に考えて、MaxValue個以上の要素を持つArrayListなんて使わないから実用上の問題もないしねぇ

234 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:54:34 ]
クラスライブラリでは基本的に符号なし整数型を公開したらダメ
サポートしてない言語がありうるから
CLSは言語間の相互運用性を確保するための仕様

235 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:56:05 ]
なに#define DEBUGって
コンパイルするとき選べるDebug Releaseの選択とはまた違うのか

236 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:57:03 ]
素早いレスありがとうございます

CLS非準拠というのは理解できました。
intの最適化されているというのは、これだけの情報では検索範囲が広すぎて
どういう意味なのかがわかりませんでした。
よろしければ、何がどのように、何に対して最適化されているのか、補足いただけないでしょうか。
また統一したほうが便利というのは、
このような要素数を格納するような変数はこれまでintを使用していたので、
仮に-1などの要素数が代入されエラーが発生する可能性を許容しても、
変数としてintを利用することの便利性のほうが勝るということでいいでしょうか?

>>232
uintを宣言した段階で正数しか入らないということが、
クラス設計上わかりやすいのではと思いました。
例えば配列のindexをプロパティで入力してもらうとき、intだと負数の入る余地があり、
実際に数値を判断して例外なりを出す必要があるのではと思ったということです。

237 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:05:29 ]
randは速度重視で正確なんでしょうか?
それとも偏って使い物になりませんか?

238 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:07:22 ]
>>235
いわゆるプリプロセッサシンボルというやつ。用途はググれ
プロジェクト構成でDebugを選ぶと自動的にDEBUGは定義されるから#define DEBUGは書く必要ない
プロジェクト構成で設定している意味がなくなるからむしろ書いてはいけない
>>237
なにか問題が出たらそれから考えればいいだろ

239 名前:225 [2009/02/10(火) 23:09:26 ]
自前でコントロール作成ですか・・・
にほんご入力とかも、必要があれば自分で実装しないといけないのかしら

240 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:11:12 ]
>>238
なるほどthx



241 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:12:12 ]
>>194
なぜかはよくわからん。
エラーメッセージがアバウトすぎるので。
アンチILDASMオプションのようなものがある難読化ツールはいくつかあるよ
高価な奴だと、難読化したままデバッグ可能なものも

242 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:17:31 ]
int型の動的配列をもっとも速く処理できるクラスは何ですか?

243 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:30:24 ]
>>242
クラスではないし、拡張は出来ないが
>>144 が最速

244 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:39:16 ]
>>237
普通に使う分には十分なばらつきだけど
暗号化に使えるぐらいのやつが欲しいなら
System.Security.Cryptography.RNGCryptoServiceProvider

245 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:44:02 ]
>>243
拡張?サイズ変更できないってことですか?
工夫が必要なんでしょうか?素人が速くするのは無理くさいです。

246 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:46:17 ]
List<int>で困ってから考えたら
結構速いよ

247 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:46:26 ]
素人は普通にやってろ

248 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:48:51 ]
>>245
たかが配列でそんなにパフォーマンスおちないと思うよ
別のところが原因じゃね?

249 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:49:19 ]
どなたか>>236おねがいします。

250 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:51:03 ]
>>249
前半

int型で処理するのが一番早い

後半

>>234



251 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:52:39 ]
>>242
何をどう「速く処理」したいのかによる。
コレクションクラスってのは、それぞれ一長一短があるから、
わざわざあんなにたくさん用意してあるんだよ。

252 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:01:00 ]
C#は速いと聞いたので今あるソフトをC#でどのぐらい速度速くできるかにチャレンジしてます
動的配列に入れたい数はとりあえず28M個とかです。
C++ではvectorでやってるんですが、入れるだけでもものすごく遅いです。この量かint64MAX値まで格納できて速いのがいいです。

253 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:03:45 ]
>>250
ありがとうございます。

>int型で処理するのが一番早い
これはどこから得られたデータですか?
もしご存じでしたらお教えくださらないでしょうか。

なるほど、ということは、>>234に関して、これを前提で考えると、ulongやuint等は
基本的に速度も遅いし、特に使用するメリットが無いし、
今までの使われてきた経緯からなるべき使用すべきではないという理解でいいでしょうか?

何度も質問して申し訳ないですが、よろしくお願いいたします。

254 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:04:14 ]
vectorの代わりはList<T>でどうぞ

255 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:05:46 ]
>>254
thx変わりになるものなのか
>>246
すまんねListと聞いただけで拒否反応してしまったすまん。

256 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:25:51 ]
>>253
IL 上は signed も unsigned もマーク程度で実質あまり変わらん。
むしろ native int や unsigned int32 が多いから早いとはいえないというか
言語が変換命令入れる必要があったりするわけだけどそれが重いか
といわれると別に。

というか int しかない言語も存在したり CLS にない理由がいくつかある
わけだが一言で言うとだな、ゼロ以上「だけ」の特殊な状況での型分け
なんていらん。コレクションのインデクサにしたって Length 以下も駄目
だろ。

257 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:25:59 ]
測ったわけじゃないけど,uintでも扱いは全く同じだから演算そのものの速度は変わらないと思うよ
どうせフレームワークのメンバで公開されてるのはほとんどintなんだから
uint使ったらオーバーフローとか気にしないといけないからかえってわかりづらい
利便性という意味での最適化

258 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:42:42 ]
>>256
なるほど、所詮入れる箱としての変数なので、正数だからという区別がある必要はないということですね。
だったらなぜuintなぞがあるのか聞きたい気もしますが、これはMSにしかわいらないことですしね。

>コレクションのインデクサにしたって Length 以下も駄目だろ。
0以下、Length以上が駄目ですね。ただ、0以下が駄目なことは変数の型から理解できるのではと思ったということです。
ありがとうございました。

>>257
なるほど、過去の遺産や他の言語の整合性との観点や、
過去からの流れがあって、正数だけに限定するとかえって混乱が発生し、
逆に利便性が低下するので問題が発生するということですね。
もしuintなどが過去からあって利用されていたら配列の要素数にuintが変えるような
言語が普通だったのかななどと想像すると、どちらがいいのか考えさせられますが、
お話を聞いて納得できました。
ありがとうございました。

259 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 01:49:43 ]
>>258
冷やかすわけじゃないけどちょっと大げさに考えすぎなんだと思うよw
「なぜ」なんていったって別にそんな深い理由があってuintを避けてる、
とかじゃ全然ないと思うよ。

単にあえて符号無しの型を使う理由がないから、っていうだけのことでしょ。

8bitや16bitの時代なら符号なしの型にも存在意義があったと思うけど、(例えば50,000までの
インデックスを表す変数のために32bit使うのは馬鹿らしいから)32bit以上になっちゃったら
存在意義は薄い、そんだけのことだと思うよ。

260 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 01:58:25 ]
その理屈でいうとuintでもいいし、もっと言えばlong、decimalでもいいじゃん



261 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 02:05:31 ]
boolもいらないよな。0か1でいいから。

262 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 02:13:12 ]
利便性の制約のためだと思ってた

263 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 02:19:55 ]
Javaにはunsignedがない。.NETにはJ#がある。ってのが簡単な理由じゃあるまいか。

Z80の相対ジャンプにはキャリーフラグでの条件ジャンプはあったが、オーバーフロー
(パリティ)フラグによるものはなかった、とか
一般にキャリーを見るよりもオーバーフローを見る方が1ビットだけコストが高い、とか
ヲタッキーな遠因を語ってもいいけどね。

264 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 02:22:37 ]
>>191
プログラムに特許ってあるの?

265 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 02:24:53 ]
>>263
あと、VBも忘れちゃいかん。

言語・ライブラリではきちんと使い分けているC++でも、
intだけで全部済ましているプログラム見てorzとか良くあるから、
全部intにしているのはかえっていいと段々思うようになった。

266 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 02:30:10 ]
>>264
残念ながら、計算方法(アルゴリズム)に特許が認められてしまっている。
ソフトウェア特許と呼ばれるやつ。

有名だったGIFでは、圧縮アルゴリズムLZWに特許がかかっており、
特許料を取るとまくし立てられたので、自前実装も軒並み消えた。
個人・フリー相手にそこまでやかましいのは最近見なくなったけど。

267 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 02:41:56 ]
特許は足手まといでしかない

268 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 02:47:51 ]
特許そのものは足手まといとは言わないけど、
計算に関しては、回路配置利用権とかみたいに別方式を作ったほうが良かったと思う。

269 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 02:52:07 ]
okwave.jp/qa4512997.html
特許には関わりたく無いと思った

270 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 02:57:44 ]
現代において、コンピュータに関しての基本的すぎる事柄の特許ってのは、
基本的に大企業が互いに牽制しあうためのものだから、
特許権が行使されず誰にも害悪のないことがほとんど。

たまに、一太郎アイコンの松下みたいに勘違いしたのが出てくるけど。



271 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 03:11:25 ]
マイクロソフトに数千億円の支払い命令が下りたmp3の機能のやつは、1ソフトにつき使用料0.3円だべ?
逆にそのぐらい払わないと経済がまわらなくね?と思った
電化製品だって作るのに部品買わなきゃいけないのにソフトは人件費だけってんだから全く足引っ張ってないと思う

272 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 03:21:52 ]
MP3くらいだったら特許でもそうでなくても作ったところでお金が回る仕組みがあるべきだと思う
(と同時に、LAMEやx264のようなフリーソフトが見逃されている現状は嬉しい)が、
バルーンヘルプのようなものまで特許になるのは勘弁してくれ。

273 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 03:22:02 ]
ウザいのはソフト公開すると必ず著作権法違反だとか基地外みたいな奴らが大量にメールが送ってくることなんだよな
アイコンがアウトだとか、その機能は許可をとっているのでしょうかとか、ただちに販売を停止しないのなら法的手段に訴えますとか。
エロサイトのポップアップ支払命令とかわらん、全然関係ない完全な第3者なのが超ウケル


274 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 10:47:22 ]
>>266
GIF の騒ぎは、別の優れた形式を普及させるためだった、とも言われてるね。

275 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 11:25:21 ]
PNGだってGIFのアルゴリズム使えれば
もっと圧縮率高められたんだろ

276 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 11:36:27 ]
>>273
wwwww

GPL教とオープンソース教も嫌いだな〜

277 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 12:50:26 ]
>>260
消極的理由はあるんだよ。
だから、「あえて」特定の型を選択する積極的理由がないなら
一番汎用性が高い型をデフォルト的に選択するのは当然のことじゃないか。

>>261
そんなわけないだろ。
言ってる意味がわからない。

278 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 13:06:59 ]
賛同するかどうかはともかく言ってる意味くらいわかるだろ

279 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 13:17:10 ]
積極的な理由以外を理由と認めないのは悪い癖だな

280 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 13:47:47 ]
>>273
マジで?俺が公開しているソフトは今のところその被害ない。
大量にって、ホントにアウトな著作権法違反したんじゃなくて?



281 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 14:02:26 ]
「販売」って言ってるから業者さんなんでしょ。
ある程度大手ならさもありなんだと思うよ。
どの業界でもクレーマーって実際多いから。
ゴネ得狙いの奴もいれば、「環境浄化運動」やってる更年期のオバチャン的な
頭がオカシイ奴もいる。

282 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 14:59:29 ]
>>220の質問ですけど、

Form型フォーム1に、Form型フォーム2を引っ付けることは可能でしょうか?
できれば場所移動は連動可能で、フォーム2の上にある上のバーを消したいです。


283 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 15:01:59 ]
そういうのは普通フォームでは実装しない。

284 名前:デフォルトの名無しさん [2009/02/11(水) 16:08:23 ]
>>283
仕方なくフォームを使ったとして、
Dockなどで連携できないでしょうか?

285 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 16:10:23 ]
Dock ってのがドッキングウィンドウを指してないなら・・・

イレギュラーなことをするには、それなりのコストが必要ってことだな。

286 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 16:11:21 ]
MagicDockみたいなのを想定してる?

287 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 16:16:23 ]
VisualStudioみたいなドッキングウィンドウを実現したいと思っているなら、
それは一筋縄ではいかない。
DockPanel Suiteか何か使わないと。
sourceforge.net/projects/dockpanelsuite/

288 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 16:17:21 ]
>>286
MagicDockというのが調べても分からなかったのですが、
たぶん名前からしてそんな感じだと思います。

289 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 16:21:52 ]
>>281
あー、納得。某ゲーム会社大手で指四本のキャラが身体障害者団体から
クレームくるからと差し替えになってたな。

>>282
ボーダースタイルとかTopLevelとか単語超うろ覚えで申し訳ないんだけど、
その辺いじればFormをコントロールのように扱えたと思う。
あと、リージョンとかいじれば2ドット四方のFormとか作れる。

290 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 16:24:46 ]
>>287
ありがとう。でも英語苦手です。



291 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 16:25:47 ]
>>288
いずれにせよ、質問は自分の思ってることが読み手に正確に伝わるように書いてくれ。
自覚がなさそうだが、君の書く文章は読み手の視点で文章推敲できない奴の典型。

292 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 16:30:14 ]
>>290
せめてダウンロードはしてみたのか?

293 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 16:41:08 ]
>>291
今後気をつけます。

>>292
ダウンロードしましたが、使い方が難しそうです。

294 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:39:11 ]
絶対反省してないw

295 名前:デフォルトの名無しさん [2009/02/11(水) 18:11:19 ]
教えてください。
C#(2005Express)で簡単なWindowsアプリケーションを作っています。
Formが1つと、Message用のLabelが1つ、
NowLoadingをイメージしたアニメーションGIFを表示するPictureBoxが1つあります。

解決したいのは、Form_Loadイベント内で色々処理を行っている間に、
アニメーションGIFが止まってしまっている問題です。
色々処理を行っているのを示すために、アニメーションGIFを表示しているのに、
すべての処理が終わってからアニメーションが開始されてしまいます。
以下ソースです。

* PictureBoxのImageは、プロパティで指定しています。
* Sleep処理は、色々な処理の代替です。
---
private void Form1_Load(object sender, EventArgs e)
{
this.Refresh();

// Wait 5000 ms
System.Threading.Thread.Sleep(5000);
label1.Text = "5000ms...";
this.Refresh();

// Wait 8000 ms
System.Threading.Thread.Sleep(8000);
label1.Text = "8000ms..."; //ここからアニメーションが開始されます。
}
---

よろしくお願いいたします。

296 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 18:19:45 ]
別スレッドで処理するか、DoEventsでも呼ぶかして
メッセージを処理できるようにしないと描画されるわけがないよ。

297 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:43:45 ]
windowsフォームの位置をLocationなどで設定することは可能ですが、
windowsフォームの位置を取得するにはどのようにしたら良いでしょうか?

298 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:46:52 ]
設定の逆をやればいいんじゃね?

299 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:51:37 ]
位置設定を
Form1.Location = new Point(100, 100); とすると
設定は・・・

300 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:52:37 ]
>295
public partial class Form1 : Form
{
delegate void ThreadMethodDelegate( );
ThreadMethodDelegate thrd;
public Form1( )
{
InitializeComponent( );
}
private void Form1_Load( object sender, EventArgs e )
{
thrd = new ThreadMethodDelegate( ThreadMethod );
thrd.BeginInvoke( new AsyncCallback( CallbackMethod ), null );
}
public static void ThreadMethod( )
{
System.Threading.Thread.Sleep( 5000 );
}
private static void CallbackMethod( IAsyncResult ar )
{
MessageBox.Show( "ワーカー終了" );
}
}



301 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:52:47 ]
イベントって難しいですよね?
何をどこに書いたらいいのか分からん。

302 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:58:22 ]
そうですね。勉強しましょう。

303 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:58:23 ]
むずかしくないよ

304 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:22:20 ]
BeginInvokeしたらEndInvokeしろよ

305 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:44:44 ]
でもデリゲートやイベントってC#の上位の機能の中では一番難しいところだと思う

306 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:49:41 ]
いま「ポインタは難しい」とか真顔で言われたときと同じくらい当惑しています。

307 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:52:24 ]
C++ の関数ポインタは今でも当惑するけどね。特にメンバ関数のそれ!

308 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:00:39 ]
あれはとっととbindしてfunctionに放り込むに限る。
これで、マルチキャストにならない以外C#のデリゲートと同じ感覚にできる。

309 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:05:30 ]
デリゲートは型,イベントはメンバ(プロパティみたいなもの)
意味わからないだろうけど,ただこれだけのことなんだよ
まあ慣れてきたらそのうちわかる

310 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:23:35 ]
Formアプリでフォームが真中に来るようにするにはどうすればいいんですか?
WPFはまん中にくるのでそういう風にしたいです



311 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:24:30 ]
>>310
フォームのプロパティにあるだろ

312 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:44:11 ]
>>309
でも実行される関数のポインタが格納されてるだけって考えるほうが簡単だし

313 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:45:53 ]
あっそ

314 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:46:55 ]
だから実行される関数のポインタを格納する「型」なんだよ

315 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:46:56 ]
お前の感想なんかどうだっていいんだよ

316 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:02:23 ]
まとめて相談スレへお引き取りください

317 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:03:38 ]
C#と直接関係の無い話なのですが・・・

Vista VS2005C#でWebアプリWebサービスを作っていたのですが、
自分のマシンのIIS上にそれらを配置した場合、キャプチャする事は出来無いのでしょうか・・・?IPが同じだとダメなのでしょうか・・・?
MicrosoftのNetworkMonitorを使ってみたのですが、拾えていません。
一応別のマシンのIISに入れた場合は見ることが出来たのですが・・・
デバッグする為に同一マシン内で動作させられたら楽なのになと思いまして。

スレ違いだったらすみません、無視して下さい。

318 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:06:30 ]
どっかで見たな。ループバックしろ、ってのが回答だったような。

319 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:06:49 ]
俺は答えられんけど、無視されたらスレ違いかどうかわからなくね?w

320 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:21:34 ]
>>311
違くて、デザイナの中央に配置して作業しやすくしたいだけです



321 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:22:11 ]
>>318
なるほど。
loopbackを使う方法が使えないので、
同一IPのキャプチャはおそらく無理という事ですよね。
ありがとうございました。

>>319
他のスレに書こうか迷ったんですが、とりあえずレスをいただけそうなここにしましたw
もらえなければ何時間か試して諦めようと思ってたんでw

スレ汚しすいませんでした、ありがとうございました。

322 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:24:12 ]
あとはプロキシかますくらいかね。

323 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:26:12 ]
windowsフォームをShow( )して開いている間、
常時メソッドを実行し(呼び出し)続けることは可能ですか?

324 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:26:44 ]
ローカルにあるIISに接続するのに、IPでアクセスするのと、
localhostでアクセスするのと挙動が違うんだぜ

325 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:27:48 ]
>>323
タイマ
Application.Idleイベント

326 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:28:19 ]
>>323
何がやりたいのかわからないけど、無理。

327 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:37:57 ]
NumericUpDownコントロールのボタン部分の横幅を大きくするにはどうしたらいいんですか?

328 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:40:23 ]
できないので、自分でそれっぽいコントロールを作ってください。

329 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:45:17 ]
無理です。
サンプルください

330 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:48:13 ]
Labelコントロールの文字の周りの余白がでか過ぎるんですが
もっと文字にフィットした枠にはなりませんか?
ラベルどうしを近づけたいんですが、隠れるんです



331 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 00:13:36 ]
AutoSizeがfalseになってないか?

332 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 00:15:37 ]
なってないです

333 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 00:18:10 ]
フォントを設定したとき他のパソコンにそのフォントが入っていないと表示されないんでしょうか?
自分のパソコンでしか使わないのですが、気になったので教えてください

334 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 00:19:21 ]
表示されない。代わりに代用のフォントが選ばれるけど、たいてい汚い。

335 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 00:33:09 ]
>>320
オプション-環境-全般-ウィンドウ レイアウト-マルチ ドキュメントで
それで駄目ならデザイナを自作しましょう。

336 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 00:33:19 ]
>>330
背景色は透過にした?
まあ君がやりたいことと違うかもしれんが。

337 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 00:58:26 ]
>>335
タブ付きドキュメントは外せないのであきらめますthx

338 名前:デフォルトの名無しさん [2009/02/12(木) 01:00:00 ]
google geocoding api使って下のようなミニプログラムを書いているのですが、
下のtextの中にどうしても文字化けした文字列しか出てこず、詰まってます。

どこが悪いかわかる方教えてください。

using System.Net;
using System.Text.RegularExpressions;

func hoge()
{
string str = string.Format("maps.google.com/maps/geo?q={0}&output=xml&hl=ja&key=", "tokyo%20tower");
string strAddress = "";
WebRequest req = HttpWebRequest.Create(str);
WebResponse res = req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream(),Encoding.UTF8,false);
try
{
string text = sr.ReadToEnd();
Match adres= Regex.Match(text, "<address>.*</address>"); // 住所が入っている。。。が文字化け。
if (!adres.Success) return "";
strAddress = adres.Value.Substring(9, adres.Length - 19);
}
finally
{
sr.Close();
}
return strAddress;
}


339 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 01:17:31 ]
>>333
PrivateFontCollectionクラスを使えば再配布可能なFontファイルを同梱して
未インストールでもそのアプリケーションだけで使える

340 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 01:20:52 ]
エンコードし直さなくてもいいんだっけ?



341 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 01:21:47 ]
text/xml; charset=Shift_JIS
返してるから
StreamReader sr = new StreamReader( res.GetResponseStream( ), Encoding.GetEncoding( "Shift_JIS" ) );
にしたら読めたよ

342 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 01:32:53 ]
>>336
Backcolorでなしがないです

343 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 01:48:55 ]
これどうしてだめなんですか?
private System.Windows.Forms.Label Hour;

long tick=DateTime.Now.Ticks;
DateTime d = new DateTime(tick);
Hour.Text = d.Hour.ToString;

344 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 01:50:52 ]
インスタンス

345 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 01:51:52 ]
Hour.Text = d.Hour.ToString;

Hour.Text = d.Hour.ToString();

346 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 01:52:17 ]
括弧かな。エラーの場所やメッセージもあげといて
Hour.Text = d.Hour.ToString(); 


347 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 01:52:30 ]
できました!ありがとう!

348 名前:デフォルトの名無しさん [2009/02/12(木) 02:23:10 ]
地上波デジタルのコピーガードを除去するプログラムを作成したいのですが
参考になるサイトとかありますか?

349 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 02:27:53 ]
コントロール作成以外からのスレッドからアクセスされましたというエラーで途中で止まってしまいます
どう書けばいいでしょうか

private void Set_Click(object sender, EventArgs e)
{
 flagThread = !flagThread;
}

bool flagThread = true;

private void Form1_Load(object sender, EventArgs e)
{
 Thread thread_TimeUpdata = new Thread(new ThreadStart(TimeUpdata));
 thread_TimeUpdata.Start();
}

private void TimeUpdata()
{
 while (flagThread)
 {
  long tick = DateTime.Now.Ticks;
  DateTime d = new DateTime(tick);
  Hour.Text = d.Hour.ToString();
  Minute.Text = d.Minute.ToString();
  Second.Text = d.Second.ToString();
  Thread.Sleep(300);
 }
}

350 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 02:30:37 ]
原則的にGUIを生成したスレッド以外GUIはいじれない
その上で構造を考え直してみよう



351 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 02:30:53 ]
>>348
www.marumo.ne.jp/db2007_b.htm#25
ARIB STD-B25 仕様確認テストプログラム

そこに書いてあるように、0.2.2が最新。
C#じゃないとか贅沢は言わないように。

352 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 04:46:42 ]
もうだめです。教えてください

bool flag = true;

private void Set_Click(object sender, EventArgs e)
{
  if (flag)
  {
   flag = false;
  }
  else
  {
   flag = true;
   Thread thr_Time = new Thread(new ThreadStart(delegate()
    { this.Invoke((MethodInvoker)delegate()
     { TimeUpdata(); });
    }
   }

   thr_Time.Start();
  }
}

private void TimeUpdata()
{
 long tick = DateTime.Now.Ticks;
 DateTime d = new DateTime(tick);
 Hour.Text = d.Hour.ToString();
  Minute.Text = d.Minute.ToString();
  Second.Text = d.Second.ToString();
}

353 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 04:55:35 ]
>>352
www.atmarkit.co.jp/fdotnet/dotnettips/312ctrlinvoke/ctrlinvoke.html

354 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 05:10:09 ]
thx
なんでこんなに難しいんですか?
すごい基本的な機能だと思うんですが、いきなり挫折しそうなんですが・・・


355 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 05:20:41 ]
基本的な機能使えないのにスレッド作成してるんですか・・・

356 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 05:21:13 ]
System.Windows.Forms.Timerを使う or
別スレッドからGUIにアクセスするときはControl.Invokeする癖をつける

357 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 05:30:50 ]
タイマー!ありがとう

358 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 07:40:43 ]
NumericUpDownコントロールから値を取り出すにはどうすればいいんですか?

359 名前:338 [2009/02/12(木) 07:54:04 ]
>>341
ありがとう。読めました。
Googleがshift_jis返すとは思ってませんでした。
韓国で試したらまだハングル部分が文字化けするけど。

360 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 08:51:59 ]
>>358
確か、Valueプロパティとかあったはず

>>359
普通にブラウザから叩いたら、UTF-8でくれたよ?



361 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 09:31:56 ]
Accept-Encoding

362 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 10:34:25 ]
簡単にSleepする方法はありますか?

363 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 10:36:11 ]
ちょっとおたずねしますが

テキストエリアとその中に書いた文章を「送信ボタン」を押すことで
サーバーに送信するサイトがあるとします。

そのサーバーに対して
C#で作ったアプリのテキストボックスに文章を書いて
C#で作った送信ボタンを押して

WEBサイト上と同じ結果を得れる方法を探しているのですが

それについて詳しいサイトとか
ご存じの方いませんか。

364 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 11:04:39 ]
効果音を付ける時、音のファイルをプログラムに埋め込むにはどうすればいいんでしょうか
なるべく実行ファイルはシンプルにしたいんです

365 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 11:10:20 ]
りそーす

366 名前:デフォルトの名無しさん [2009/02/12(木) 11:28:00 ]
>>364
www13.plala.or.jp/kymats/study/MULTIMEDIA/PlaySound_file_rsc.html

367 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 11:45:16 ]
thx!

368 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 13:02:17 ]
>>363
C# Postで検索するとぽろぽろでてくるよ

369 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 14:26:53 ]
>>368
ありがとう〜!

370 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 14:51:07 ]
>>362
つドリエル



371 名前:デフォルトの名無しさん [2009/02/12(木) 15:42:09 ]
固定メッセージをソース内で宣言して、グローバルで使い回したいのですが
何かいい方法はないでしょうか?

#define TEST_MESSAGE "テスト"

みたいな書き方をしたかったのですが、上手くいきません
どこからでも参照できるグローバルのような方法はないんでしょうか?


372 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:44:22 ]
>>371
リソース

373 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:44:58 ]
363が「さっぱりわからないから教えてくれ」ってなりそうな予感

374 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 16:00:42 ]
プロセッサ数を取得するにはAPI使わないと無理?


375 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 16:06:22 ]
System.Environmentにあった気がする。調べてみて

376 名前:374 mailto:sage [2009/02/12(木) 16:09:12 ]
>>375
ありがとう
Environment.ProcessorCount
でできました。


377 名前:デフォルトの名無しさん [2009/02/12(木) 16:16:00 ]
VisualStudio2008、.Net Framework3.5を使ってます。

FormにDataGridViewを表示しています。
セルの中に改行があるときに改行されて表示させるために、WrapModeをDataGridViewTriState.Trueにしました。
すると、改行が含まれているセルは改行位置で改行されるようになったんですが、
改行が含まれていないセルや、表示しきれない行まで、折り返し改行されるようになりました。

改行コードでのみ改行して表示させることは不可能なのでしょうか?

378 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 16:23:36 ]
falseにすればいいんじゃ?

379 名前:377 [2009/02/12(木) 16:30:48 ]
>>378
WrapModeにDataGridViewTriState.Falseを設定すると、
折り返されなくなりますが、改行コード(\r\n)での改行もされなくなってしまうんです。



380 名前:デフォルトの名無しさん [2009/02/12(木) 17:15:51 ]
>>372
ありがとうございます。できました



381 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 17:36:54 ]
>>379
「何の」WrapModeをDataGridViewTriState.Trueにしたんだよ

382 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:25:26 ]
配置する文字列内の改行コードの有無をみて、改行コードがあった場合は WrapModeを trueにして、 なければfalse とか。
wrapmodeに関わらず改行すればいいのに、変な仕様だね。

383 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:22:21 ]
質問です。
VS2005で作成した自作クラスのドキュメントを作りたいのですが、
クラスのメソッドやプロパティや、可能ならコメントを抽出して
一覧表示してくれるような機能、アドイン等はありますか?
よろしくお願いします。

384 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:29:21 ]
>>383
NDOC

385 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 21:11:08 ]
あるいは、sandcastle + それ使うツール
sandcastle 単体はカスタマイザビリティはすごいから
慣れればいいんだけどまぁ取っ掛かりはあれなので

386 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 21:59:13 ]
WindowsのGUIのまともなアプリを作るのに
向いてるのって、

(1)VB2007
(2)VB.NET
(3)VC
(4)VC++
(5)C#

この5つ?

JAVAもいいかと思ったんだけど、Windowsアプリを
作るには向いてないの?V2Cみたいのでも
いいと思ったんだけど。

387 名前:359 [2009/02/12(木) 22:00:26 ]
>>360
ブラウザで叩くとUTF8って出るからEncoding.UTF8って指定したんだが、
それだと文字化けしてしまいます。で、341の言うように
Encoding.GetEncoding( "Shift_JIS" )とすると読めるんだが、他国の住所は
文字化けしてしまう。UTF8のままでとってくる方法はない?


388 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:01:42 ]
>>387
>>361 は調べた?

389 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:05:11 ]
>>386
WPF

390 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:06:46 ]
WPFは重い・・・



391 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:08:29 ]
WPFって結局C# or VBじゃね。
ところでVB 2007だとウィルスバスター2007なんだが。

392 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:11:45 ]
>>386
Delphi

393 名前:387 [2009/02/12(木) 23:03:05 ]
>>388
POSTやPUTでAccept-Charsetとかを指定する例はぐぐれたのだが、GETで指定する方法がわからない。
どうすればいい?


394 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:06:55 ]
>>393
msdnよめカス

395 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:17:41 ]
文字列の前にある@ってなんですか?

396 名前:デフォルトの名無しさん [2009/02/12(木) 23:25:52 ]
>>394
msdnのどこ読んだらいい

397 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:27:25 ]
>>395
\がそのままか、エスケープ文字になるか。

398 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 23:28:27 ]
>>396
HttpWebRequest

399 名前:デフォルトの名無しさん [2009/02/12(木) 23:55:24 ]
読んでいろいろ試してみたがよくわからんかった。
req.Accept="utf-8" とか?
今日はあきらめてもう寝ます。


400 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:02:06 ]
あたまわるすぎる



401 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:13:52 ]
試しにググったら一発でサンプルコード出てきたけど
自分で解決しようって気概は感じられないなw

402 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:14:44 ]
まあ、そんなのがあったらここで聞く前にググっている罠。

403 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:42:51 ]
>>399
HttpWebRequest.Headers プロパティ
WebHeaderCollection クラス

404 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:15:48 ]
HttpWebRequest.UserAgent = "Mozilla/5.0";
でいけたよ

405 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:47:56 ]
グループボックス内の座標を押したクリックイベントはどうやって作ればいいですか?

406 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:56:34 ]
>>405
1.デザイナでグループボックスを選択
2.プロパティウィンドウのイベントタブをクリック
3.イベント一覧からMouseDownをダブルクリック

407 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:02:30 ]
グループボックスにマウスダウンがないんです!

408 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:09:41 ]
たぶんBrowsableがfalseになってるから表示されない
groupBox1.MouseClick += (sender, e) => { Console.WriteLine(e.Location); };
こんな感じでいけるよん

409 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:18:15 ]
senderっていうのはcontrolが格納されていて、eはクリックイベントがわかるような物が入ってるんですか?
クリックイベントに既に飛んでるのにその引数にイベントが渡されててもメソッドの中で使う機会なくないですか?


410 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:22:34 ]
ToString時に書式を変更するにはどうすればいいんでしょうか
int a = 1;
string str = a.Tostring();
でstrの中身が常に2桁にしたいんです、この場合"01"にしたいんです



411 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:33:23 ]
>>410
string str = a.ToString("D2"); 


412 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:34:25 ]
>>409
日本語でおk

413 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:39:20 ]
ありがとう!

414 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 02:50:42 ]
>>407
ああ、ごめん

private void groupBox1_MouseDown(object sender, MouseEventArgs e)
{
処理
}

適当に↑のようなイベントハンドラ作ってFormのLoadイベントかどっかに

groupBox1.MouseDown += new EventHandler (groupBox1_MousDown(sender,e);

って書いとけば追加される

415 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 03:00:57 ]
>>414
なるほどありがとうございました

416 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 05:52:15 ]
Device()の行でメソッドは戻り値の型を持たなければなりませんとエラーが出るんですがどうすればいいですか?

public class DirectSound : Form
{
 Device dsDevice = null;
 SecondaryBuffer secBuff = null;
 dsDevice = new Device();
}

417 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 05:56:27 ]
すいません、関数に入れるのを忘れました。

418 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 06:28:44 ]
今度こそわからないです。コメントの行が両方ともエラーが出てしまいます。
上コメントは静的でないフィールドメソッドでオブジェクト参照が必要ですとでてしまします。
下コメントは最も適しているオーバーロードメソッドには無効な引数が含まれています。と出ます。
これはなにがいけないんですか?

public class DirectSound {
  Device dsDevice = null;
  SecondaryBuffer secBuff = null;
  BufferDescription desc = new BufferDescription();
  public void PlaySound(string strPath) {
   dsDevice = new Device();
   //desc.Flags = BufferCaps.ControlPan | BufferCaps.ControlVolume | BufferCaps.ControlFrequency;
   //dsDevice.SetCooperativeLevel(this, CooperativeLevel.Normal);
   secBuff = new SecondaryBuffer(strPath, desc, dsDevice);
   secBuff.Play(0, 0);
  }
  public void StopSound() {
   secBuff.Stop();
  }
}

419 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 07:39:28 ]
アプリケーションのアイコンは替えられたんですが
フォームの左上にあるアイコンはどうやってかえればいいんですか?
リソースの追加はしました。

420 名前:デフォルトの名無しさん [2009/02/13(金) 08:34:56 ]
>>404
ありがとうございます。いけました。
UserAgentをブラウザと同じにすればいいんですね。
勉強になります。

ちなみにurlに与える引数を output=xml から output=kml でも回避できました。
kmlならshift_jis許さないみたいです。




421 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 12:01:41 ]
>>418
↑ BufferDescription.Flagsでググると
↓ thisはちゃんとControlになってる?
>>419
フォームのプロパティグリッドにIconって無い?

422 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 15:07:42 ]
C#Expressで勉強中です。

現在時刻を返す関数って
名前空間 Microsoft.VisualBasic モジュール DateAndTime の Now()
しか見当たらないのですが・・・
なんかMicrosoft.VisualBasicをusingするのが嫌なんですけど
他にありますか?


423 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 15:09:07 ]
System.DateTime.Now

424 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 15:11:04 ]
>>422
まずググレ
話はそれからだ

425 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 15:19:01 ]
みなさんありがとうございます。
HELPでSystem.DateTime.NowがHitしないのは何故なんですかね??


DelphiのHelpも酷い酷いといわれていたが、それ以下かも。
次からはググってから質問します。


426 名前:デフォルトの名無しさん [2009/02/13(金) 15:19:54 ]
検索にはGoogleを使うといいよ

427 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 15:23:57 ]
最近のはf1押しても見当違いのメンバのが出てくるの多いな

428 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 15:56:58 ]
>>409
例えば、複数のコントロールのクリックイベントを1つのハンドラで処理できる。
そういうとき、どいつがクリックされたのか区別するという使い方ができる。

429 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 17:47:48 ]
>>428
答えになってない

430 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 17:50:34 ]
つーか、質問がおかしいし。

> senderっていうのはcontrolが格納されていて、eはクリックイベントがわかるような物が入ってるんですか?

前者はその通り。後者はイベントの引数。

> クリックイベントに既に飛んでるのにその引数にイベントが渡されててもメソッドの中で使う機会なくないですか?

イベントが渡されるわけではないので、その質問は成り立たない。



431 名前:デフォルトの名無しさん [2009/02/13(金) 17:54:04 ]
C#をやり始めてログの出力処理を作成しました
処理自体はできたのですが、ログに出力メソッドやイベントを埋め込みたいと思っています
System.Reflection.MethodBase.GetCurrentMethod().Nameを使えば取得できるようなのですが
ログの出力メソッド内で、呼び出し元のメソッドを取得する方法なんてあるでしょうか?

呼び出し元の方で引数に入れて出力・・・というのはできたのですが
ログ出力関数内に、呼び出し元メソッドの取得処理を入れておけば便利だと思いまして
宜しくお願いします



432 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 17:55:48 ]
スタックトレース

433 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 17:58:13 ]
      _______                     __
    // ̄~`i ゝ                    `l |
    / /        ,______   ,_____    ________  | |  ____ TM
   | |     ___ // ̄ヽヽ // ̄ヽヽ (( ̄))   | | // ̄_>>
   \ヽ、   |l | |    | | | |    | |  ``( (.  .| | | | ~~
      `、二===-'  ` ===' '  ` ===' '  // ̄ヽヽ |__ゝ ヽ二=''
                         ヽヽ___//   日本
  _____ _____  ______  _______
  |  ウェブ  | | イメージ | | グループ | | ディレクトリ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       .___________________
      |help site:msdn.microsoft.com/ja-jp/library │・検索オプション
      └──────────────────┘・表示設定
         | Google検索 | I'm Feeling Lucky |  ・言語ツール
          ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ○ウェブ全体から検索 ◎日本語のページを検索

これが最強の検索方法な

434 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 17:59:56 ]
今の Google には IFL ボタンなんてありませんが?

435 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 18:01:10 ]
eには使う機械があるものが入ってる
senderはあまり使う機会がない

436 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 18:04:14 ]
GoogleのTopページなんて見る機会まずないから知らんかったw

437 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 18:14:37 ]
>>409
OnClickのeは確かに意味がないよ。
一方たとえばKeyDownイベントなら、eがなければどのキーが押されたか分からない。

あとは、EventArgsに意味があるイベントと意味のないイベントのときに、
EventArgsのありなしで区別したほうがいいかどうかを、
public delegate void EventHandler<TEventArgs>(
Object sender,
TEventArgs e
)
where TEventArgs : EventArgs
というジェネリックなdelegateの存在を踏まえつつ考えればいいのではないか。


438 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 18:33:03 ]
>>436
ツールバーにインクリメントサーチが付いてないブラウザなんていっぱいあるからいつもトップから検索してるよ

439 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:37:19 ]
internalキーワードを実感するために紹介されている記事をみてデバッグすると
エラーが表示されるらしいのですが何故か自分ではエラーが再現出来ません
普通にプログラムが立ち上がってしまいます
> ttp://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_003/cs2_003_03.html
> このソースをビルドすると、11行目で「'Sample003DLL.Class2.sample1()' はアクセスできない
> 保護レベルになっています。」というエラーになる。
他にもvisual studio 2008 ドキュメントのC# リファレンスにあるinternal キーワードの説明にある使用例も
エラーにならないんですがどういうことなのかよく分かりません 
> この例には、Assembly1.cs および Assembly2.cs という 2 つのファイルがあります。1 つ目のファイルには、
> 内部基本クラス BaseClass があります。2 つ目のファイルでは、BaseClass のインスタンス化が試行されますが
> エラーになります。
-----------------------------------------------
// Assembly1.cs
// Compile with: /target:library
internal class BaseClass
{
public static int intM = 0;
}
-----------------------------------------------
// Assembly1_a.cs
// Compile with: /reference:Assembly1.dll
class TestAccess
{
static void Main()
{
BaseClass myBase = new BaseClass(); // CS0122
}
}
-------------------------------------------------
エラーが出る方が普通なんですか?

440 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:44:20 ]
>>439
DLLにしてる?



441 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:45:15 ]
UdpClientのラッパ作ってみたんですが、添削おねぎします

ttp://www3.uploda.org/uporg2014382.cs.html

442 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:51:22 ]
勝手に文字列にされたらこまるとか
このクラスの利用者がエラー処理できないとか
バインドするインターフェイスが選べないとか

443 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:55:14 ]
自作の通信ソフトのサーバとクライアントにに組み込む目的で作りました
Receive用スレッドの終了方法がこれでよいかどうかわかりません

444 名前:439 mailto:sage [2009/02/13(金) 21:54:52 ]
>>440
DLLにしたらエラーでました。
csファイルだとエラーが出なくてDLLにするとエラーが出るのか
勉強になりました。ありがとう

445 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 22:27:31 ]
c#でグローバルIPアドレスを取得したいのですがわからないです。
どなたか方法わかる方いませんか?

446 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 22:38:25 ]
わざわざ「グローバル」なんて言ってるから意味違うのかもしれないけど、
自分のIPアドレスを取得したいと素直に解釈するなら
msdn.microsoft.com/ja-jp/library/system.net.networkinformation.ipaddressinformation.address.aspx

447 名前:デフォルトの名無しさん [2009/02/13(金) 22:53:13 ]
モジュール起動中は電源オプションを変更する方法を探してるんだけど
↓以外に良い方法知ってる人いませんかね?
msdn.microsoft.com/ja-jp/library/cc440889.aspx

448 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 23:01:53 ]
>>445
www.dyndns.org/cgi-bin/check_ip.cgi
こういうのを見に行くとか。

449 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 23:49:14 ]
>>447
2000/98以降
SetThreadExecutionState( state )


450 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 00:59:55 ]
>>445
UPnPが有効ならSOAPで取りに行く方法もある



451 名前:450 mailto:sage [2009/02/14(土) 01:01:02 ]
ちなみにNATの場合ね

452 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 02:43:48 ]
>>449
ありがと

453 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 14:33:09 ]
ファイル移動について質問です。
File.Move(from, to);
するときに、同名のファイルが空ったら上書きしたいです。
File.Copyなら、
File.Copy(from, to, true);
で上書きできますけど、Moveには、trueがないみたい。
こういう場合には、どうするんですか?
コピーして削除? 削除してからコピー?
なにかスマートな解決方法があったら教えてください。

454 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 15:15:15 ]
2.0以降ならReplaceでいいんじゃないの?
1.xの場合はdestinationのファイルのディレクトリでファイル作成が禁止されている
場合に備えて、

(1) 一旦destと同じディレクトリにdestと別名tempでsrcをmove
(2) destを削除
(3) tempをdestにリネーム


455 名前:447 [2009/02/14(土) 16:29:18 ]
APIってあんまり使う機会無いんだけどAPIクラス作って置いた方が便利だよね?

456 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 16:39:35 ]
そういえばVistaでWin32APIに置き換わる新しいAPIを作るって話はどうなったんだろう?
たしかWInFXが.NET Framewo3.0になって・・・その後は?

457 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 17:04:02 ]
>>456
7の次に期待しようではないか。

458 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 17:27:11 ]
>>454
なるほど。サンクス。


459 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 17:30:36 ]
そういうことをやると、空き容量は十分あるはずなのに、ファイルが移動できない!
とかクレームしてくる奴が・・・

460 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 17:58:28 ]
ttp://blog.hobbystock.jp/report/images/tp0108/014.jpg
お美しい・・・



461 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 18:02:52 ]
>>457
Win7でも実装されずなのか・・・

462 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 18:18:18 ]
>>460
完全にスレチだが・・ドロッセルお嬢様ついに発売されるのか。
おしゃれユニットとか付属するのか気になる。

463 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 20:28:53 ]
現在スパイウェアを作成してるんですが
感染者のファイルを盗み取りたいと思っていftpにアップロードを考えました
しかし、ftp接続をするとWindowsXPのファイアーウォールが作動します
これを迂回する方法を考えるのも面倒なので
指定したアップローダに投稿しようとしたところ
こちらはファイアーウォールが作動しませんでした
こんなテキトーなセキュリティーでよいのでしょうか?
exeを踏ませたらもうこちらの思い通りに操作できると考えてよろしいですか?

464 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 20:44:17 ]
Windowsファイアウォールはこっちから出ていく分に関しては素通し。
FTPでもパッシブ接続なら発動しないと思う。
だから、今でもサードパーティでファイアウォールアプリを作る需要があるわけ。

465 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 20:53:50 ]
XPのファイアウォールってアウトバウンドにルールを設定できないのが致命的なんだよ。
その辺がおまけのファイアウォールの出来だよ。
だからファイアウォールのアプリを別に入れないといけないわけだよ。

Vistaになってようやくアウトバウンドのルールを設定できるようになったので
OSのファイアウォールだけでもちゃんと設定すれば結構使えるようになったと思う。

466 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 21:57:46 ]
>>457,461
そうなの?

467 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 22:17:32 ]
>ftp接続をするとWindowsXPのファイアーウォールが作動します
こんなあほなこと言ってる奴のスパイウエアにひっかる奴って

468 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 22:21:10 ]
日本語もまともに書けない奴は煽る資格ないな

469 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 22:41:00 ]
あほの作ったスパイウエアだけにタスクバーに出るんじゃないの


470 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 23:16:59 ]
初心者乙



471 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:36:04 ]
ftpのしくみも知らない上級者怒ってんね

472 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:37:57 ]
日本語でOK

473 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:47:03 ]
本当のあほはどっちなのやら…

474 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 13:18:54 ]
イベントログの情報を取得したいと思っています。

System.Diagnostics.EventLog[] eventLogs
= System.Diagnostics.EventLog.GetEventLogs();

でアプリケーション、システムといった各ログは取得できることは
分かったんですがそれぞれのログに登録されているイベントソースの
一覧の取得方法がわかりません。

System.Diagnostics.EventLog.SourceExists(string)

なメソッドがあるんでソース一覧も取得可能だとは思うんですが。
知っているかたがあれば教えてください。

475 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:17:18 ]
MSはSDKにWin32ヘッダのC#用クラスを付けとけばいいのに

476 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:20:20 ]
イラネ

477 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:23:04 ]
それをやったら.NETの意味がなくなるからな
何でWin32ネイティブにしないの?という話になる

478 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:25:41 ]
C#で作れるところに意味があるんじゃねーの?
もうC++とかやるきねーよ

479 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:26:33 ]
そうそう特殊なことやらなきゃ、API なんて使わんし。

480 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:34:14 ]
別にDllImportの宣言自体はそんなに面倒なものでもないしな
PInvokeは,その周辺の考慮事項が恐ろしく面倒
C++/CLIにしたからといって改善されるものでもない



481 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:34:36 ]
compactにはあまりにもないものが多すぎて
APIに頼らざるを得ないケースが頻発
デフォルトで付けといてもらった方が便利だね

482 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:37:01 ]
しかしめんどくさいのは定義が一意に定まるわけでもないことか
使いやすいようにいじれるのがいいからコードのデータベース化みたい
なのがいいんだよな

483 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:42:23 ]
>>481
そう思う奴が多数なら、そこにビジネスチャンスが生まれるはず・・・なんだけどな

484 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:46:10 ]
移植性が悪いからcompactではわざわざ削ってるんだろ
それをMS自らもっと移植性の悪い方法で提供してどうする

485 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:50:52 ]
>>480
DllImport自体はともかく、定数の定義がむちゃくちゃ多いやつとか
超しんどいのは確か。
最近IMM関連いじっててそう思った。

486 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:52:46 ]
ヘッダからDllImport 宣言に変換してくれるツールがあるじゃん・・・

487 名前:デフォルトの名無しさん [2009/02/15(日) 14:53:57 ]
あるフォームのDataGridViewの1行(1レコード)に入力されている値を、自作のクラスに渡そうとしています。
自作クラスはSystem.Windows.Formsを使わないので、出来ればDataGridViewRow型ではなく
別の型で渡したいと思っています。

今は渡し元フォームの方で、DataGridViewRowから1セルずつ値を取り出して、arrayにstringで入れて、
そのarrayをクラスに渡しています。

一応これで値を渡せてはいるんですが、DataGridViewRowから、
なんらかの「データの集合体」の変数を取り出す簡易な方法が他にあれば、教えてください。

488 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:56:23 ]
考え方が逆だ
「データの集合体」をDataGridViewにバインドするんだ

489 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 15:09:09 ]
>>488
ありがとう、DataRow型で取り出して渡せました。

490 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:26:09 ]
これを↓
www.woodensoldier.info/soft/AlarmTimer.htm

www.red-gate.com/products/reflector/
このReflector使ってきちんと起動するまでにいきたいんですが、
エクスポートして.cs吐かせてそのままデバッグしても警告やエラーが出ます。直せる人いませんか?



491 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:28:36 ]
>>490
エラーが出るケースもあるけどそれすら直せないなら向いてない

492 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:31:14 ]
こんなもん自分で作った方が早いような…

493 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:31:22 ]
詳しい話は

C#, C♯, C#相談室 Part51
pc11.2ch.net/test/read.cgi/tech/1233757615/216

以降を見てね

494 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:35:35 ]
>>491
向いてないのは分かってるんで、直せないですかとお願いしてるんです。

>>492
作ってくれるならお願いします

495 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:37:57 ]
直せます。で?

496 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:38:31 ]
自分でやる気ないんなら板違いだから、有償で誰かに頼みな


497 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:39:39 ]
>>495
直してうpお願いします

498 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:42:02 ]
>>497
嫌です。

499 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:42:54 ]
そもそも、そのアプリが逆アセOKか、ソースの公開OKか、とか
そういうこともわからんし。

著作権法違反とかで捕まりたくないし。

500 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:43:33 ]
どんな複雑な物かと思ったら…



501 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:44:19 ]
では直してくれそうなスレありますか?

502 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:45:02 ]
シラネ

503 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:48:26 ]
作者に連絡とってソース売ってもらうのが正攻法じゃねーかな
逆コンパイルじゃねーけど

504 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:49:25 ]
>>503
そだね。

505 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:50:10 ]
ということで、この話は終了で。オツカレサマー

506 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 17:02:27 ]
作者だけど直してやれば

507 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 17:05:10 ]
>>506
お前が作者なら、お前がソース公開すればすむこと。

508 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 17:11:28 ]
>>479
長時間作業させるアプリケーションなんて特殊じゃないだろ

509 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 17:14:20 ]
>>508
なんの話?

510 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 17:24:36 ]
上でも出てたみたいだけどOSのスリープ殺すのにはAPI必要でしょ
それ以外だって特殊なアプリケーションじゃなくてもAPI必要な場面はあるでしょ
.netにないのがそもそもおかしいというのは別の話で



511 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 17:27:35 ]
ファイル一覧のソートについて質問があります。
ファイルの一覧を、アクセスタイムの新しいものから順番にソートして配列に入れたいです。
アクセスタイムを得るには、
File.GetLastAccessTime(file);
で、ファイル名を得るには、
string[] files = Directory.GetFiles(@"C:\temp", "*.txt");
です。
目的のファイルの一覧を、アクセスタイムの新しいものから順番にソートして配列に入れるには、どうしたらよいでしょう?
うまくふたつをつなげられないで困っています。
ご指導お願いします。


512 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 17:29:42 ]
配列に入れてからソートすれば良いのでは無いでしょうか?

513 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 17:33:26 ]
OS のスリープ殺す、なんてのは特殊だと思うけどな。

514 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 17:45:22 ]
>>511
LINQ使えば簡単。
Directory.GetFiles(@"C:\temp", "*.txt").OrderBy(file => File.GetLastAccessTime(file)).ToArray();

515 名前:490 mailto:sage [2009/02/15(日) 18:08:11 ]
ボクのはまだですかwktk

516 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 18:11:09 ]
>>515
その話題は >>505 で終了しました。またのお越しをお待ちしております。

517 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 18:11:54 ]
今日中がいいので、それは無理・・・
だれかおねがいします><

518 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 18:13:16 ]
>>514
それだと、古い順に並んでしまうだろう。
OrderByの代わりにOrderByDescendingを使わないと。

519 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 18:17:38 ]
>>514
おお、ありがとうございます。
なにか方法がありそうと思っていましたが、スマートです。
早速試してみました。
string[] files = Directory.GetFiles(@"C:\temp", "*.txt").OrderBy(file => File.GetLastAccessTime(file)).ToArray();
foreach (string file in files)
{list = list + file + "\r\n";}
MessageBox.Show(list);
なんかこれだと、まだabc順になっているようです。
なにか方法が違ってますか?


520 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 18:36:52 ]
失礼。ごめんなさい。できました。
>>518
おっしゃるとおり、OrderByDescendingでできました。
大感謝です。




521 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 19:02:02 ]
OrderByとOrderByDescendingの違いは正順、逆順だけなんだけど、アルファベット順になる理由はなんだったの?

522 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 19:25:19 ]
今ぼくの進めてくれてらっしゃる方いますか

523 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 19:26:25 ]
>>522
>>474 ですか?

524 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 19:29:05 ]
>>474 は、イベントソースの一覧を取得する方法はなさげなので、
SourceExists() でやってるように、レジストリから取ってくるしかないのでは?

525 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 19:56:22 ]
>>523
>>490です

526 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 19:59:01 ]
>>525
それは終了らしいので、途中まで調べましたが止めておきます。

527 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 20:04:50 ]
>>526
ではここに再開を宣言します。
どうぞよろしくお願いします

528 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 20:06:13 ]
        iイ彡 _=三三三f           ヽ
        !イ 彡彡´_ -_=={    二三三ニニニニヽ
       fイ 彡彡ィ 彡イ/    ィ_‐- 、   ̄ ̄ ヽ     し  ま
       f彡イ彡彡ィ/     f _ ̄ ヾユ  fヱ‐ォ     て  る
       f/ミヽ======<|-'いシ lr=〈fラ/ !フ    い  で
       イイレ、´彡f        ヽ 二 _rソ  弋_ { .リ    な  成
       fノ /) 彡!               ィ     ノ ̄l      .い   長
       トヾ__ら 'イf     u    /_ヽ,,テtt,仏  !     :
       |l|ヽ ー  '/          rfイf〃イ川トリ /      .:
       r!lト、{'ー‐    ヽ      ´    ヾミ、  /       :
      / \ゞ    ヽ   ヽ               ヽ /
      ./    \    \   ヽ          /
   /〈     \                 ノ
-‐ ´ ヽ ヽ       \\     \        人


529 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 20:08:04 ]
ほんとに今日だけはお願いしますOTZ

530 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 20:10:19 ]
なんのためにそれが必要なのか、わかりやすく説明してみれ。



531 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 20:34:21 ]
>>490のは、何に躓いたのかさっぱり分からないけど、普通にできたよ。
もちろん差し上げてもいいんだけど、

| このソフトはフリーソフトウェアです。
| 配布、転載は原則自由です。
| ただし、中身の一部もしくは全部を改変して配布、掲載をする事は禁止します。

って書いてあるので、作者の許諾を明示的に取ってきてください。
つーか、なぜ作者にくれと言わないのか?

532 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 20:38:52 ]
>>506で作者が登場している!ちょうど良いぞ!w

533 名前:デフォルトの名無しさん [2009/02/15(日) 20:46:39 ]
最近仕事でC#を使うことになりました。
Webの開発です。
皆さんに聞きたいのですが、匿名メソッドというのは
どういうケースで使いますか?

www.atmarkit.co.jp/fdotnet/csharp20/csharp20_05/csharp20_05_02.html
↑@ITで匿名メソッドについて載っていますが、どういうものかは理解できました。
しかしこれってWebアプリの開発とかでどういうケースで使うのかなと。。
使用ケースが分かっていません。
あまり使うことが無いものなのでしょうか?

534 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 20:50:36 ]
また、2ちゃんねるで宿題頼んでる奴がいるのかw

535 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 20:51:42 ]
イベントハンドラーに適当なテスト用のメソッド入れたいときとか、
LINQ でとか。

536 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 21:07:21 ]
最近仕事でC#使うことになったが、匿名メソッドやラムダ式は使いたい気持ちをぐっとこらえてる
ほかの人が見たときに読みづらいだろうからな

537 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 21:33:52 ]
>>531
エラー出ましたよね?直したとこ教えてくだされば><
それだけでいいんです

538 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 21:35:31 ]
どこでどういうエラーが出たか書けよ

539 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 21:41:33 ]
とにかく、処理内容を指定して渡すという状況でのみ使用すべきで、メソッドに名前を付けて
定義する必要がなくなるズボラ推奨機能という考え方はすべきでない。具体的には、LINQと、
処理の流れの文脈的にそこに直書きされるべきコールバックとか。

LINQが一番重要。
例:
int a[]=new int[]{3,7,2,4,8,1,9};
int b=a.First(i=>i<3);
みたいな。これは匿名メソッドをラムダ式で書いているけれど、
int b=a.First(delegate(int i){return i<3});
も可。でも、LINQなら上の書き方に慣れるべき。iに対して型推論が効くからね。

後者は例えば、UIと別スレッドのメソッド中でUIスレッドで実行されるべき処理をInvokeに
渡す場合とか。あと、WaitHandle使って非同期でコールバックが呼ばれる処理を同期処理に
する場合にコーディング上も同期処理の如く書く事ができて見易い。こういった場合、
その記事に書いてある、ローカル変数に匿名メソッド内からアクセスできるというのは超重要な
ポイントになる。

最後に、UIのイベントハンドラをコードで追加する時、超短いコードの場合は
ズボラに匿名メソッドを使ったりするけれど、これは悪い例であまりやるべきではない。
例:this.Button1.CLICK+=delegate{MessageBox.Show("Clicked!!")};

540 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 21:42:10 ]
自己解決しますた。

簡単じゃねーかよ、こんぐらいさっさと説明しやがれバカども



541 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 21:44:44 ]
警告 1 デザイナは 247 行のコードを処理できません。

base.FormBorderStyle = FormBorderStyle.FixedDialog;

メソッド 'InitializeComponent' 以内のコードは、デザイナによって作成されたので手動では変更できません。
変更を削除して、デザイナを再度開いてください。 C:\Documents and Settings\●●●●●\My Documents\Reflector\Disassembler\AlarmTimer\AlarmTimer\FormMain.cs 248 0

警告 2 デザイナは 113 行のコードを処理できません。

base.FormBorderStyle = FormBorderStyle.FixedDialog;

メソッド 'InitializeComponent' 以内のコードは、デザイナによって作成されたので手動では変更できません。変更を削除して、デザイナを再度開いてください。
C:\Documents and Settings\●●●●●\My Documents\Reflector\Disassembler\AlarmTimer\AlarmTimer\FormOption.cs 114 0

エラー 3 型または名前空間名 'WsLib' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
C:\Documents and Settings\●●●●●\My Documents\Reflector\Disassembler\AlarmTimer\AlarmTimer\FormMain.cs 10 11 AlarmTimer

警告 4 この参照を解決できませんでした。アセンブリ "WsLib" が見つかりませんでした。アセンブリが間違いなくディスクに存在することを確認してください。
コードにこの参照が必要な場合、コンパイル エラーが発生する可能性があります。 AlarmTimer

警告 5 参照コンポーネント 'WsLib' が見つかりませんでした。


この5つっす

542 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 21:56:22 ]
で、>>530 への回答は?

543 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 21:56:58 ]
簡単だ。エラー3をよく読め。そして考えろ。

544 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 21:58:06 ]
お前ら頭悪いよな

545 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:03:40 ]
>>543
不足してるらしいです、でも意味わかりません

546 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:04:51 ]
カワイソス(´・ω・)

547 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:07:57 ]
頭が不足してるのか、かわいそうに

548 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:09:59 ]
>>545
意味がわからなかったらググったりして調べればいいじゃないか

549 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:11:50 ]
それがめんどくせーから聞いてるんだろうが! バカジャネーノ

550 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:18:13 ]
dllがないってことかな



551 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:18:48 ]
面白いからもっとやれwww

552 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:26:11 ]
できました! ありがとうございました。
これで明日の課題提出に間に合います!

553 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:33:36 ]
ソース盗用がバレて遡及的に単位取り消し/停学ですね、わかります

554 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:35:58 ]
自分のおべんきょ用です

555 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:54:12 ]
C#って初心者向けの言語ですか?

556 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:55:41 ]
>>555
向け、かはわからないけど、初心者でも十分理解できると思います。

557 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 23:00:27 ]
向けかといわれると確かにまぁ違うよな
向いているかといわれると大丈夫なんじゃないぐらいではある

558 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 23:01:13 ]
実際に初心者が使えるかどうかはともかく,言語のスタンスとしては初心者向けではないな
どっちかというと既に他のが使える人が便利に使える言語というコンセプト

559 名前:デフォルトの名無しさん [2009/02/15(日) 23:06:56 ]
C#のstringには、MFCのCString::Right(n)のように、
末尾からのn文字を抽出するメソッドはないのでしょうか。
ない場合、全体の文字数を取得して、全文字数とnを使って、Substringするという回りくどいやり方しかないのでしょうか。

560 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 23:11:16 ]
ない
回りくどいって言ってもstr.Substring(str.Length - n)とするだけのことだろ



561 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 23:11:40 ]
ない
どうしても嫌なら拡張メソッド作ったら

562 名前:559 mailto:sage [2009/02/15(日) 23:15:36 ]
ありがとう。
回りくどいとけなすつもりはなかった。
今は反省している

563 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 23:30:44 ]
どうしても欲しければMicrosoft.VisualBasic.Strings.Right……。

564 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 23:33:59 ]
C#のstringはLengthを取得するのにコストがかかるわけじゃないのでSubstringでの切り出しでいいんだよ。

565 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 01:21:10 ]
Substringは範囲外の切り出しでエラーになる。
これを使いにくいと思ったことはあるな。

"abcde".Substring(3, 10) で "de"
"abcde".Substring(8, 2) で "" が欲しいケースは多いよ。


566 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 01:33:31 ]
まぁはじめは実際なんでないんだろうなぁとは思った。
たぶん忘れたかなんか事情があったんだろうなと思って
おくことにした
Substring は境界絡んでくるとうざいんだよなー

567 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 01:38:13 ]
>>565
2つ目の引数は文字数なのに結果の文字列に含まれる文字数がそれ以下だとおかしいだろ。

568 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 01:49:36 ]
拡張メソッドが便利だな
public static string Subst(this string str, int start, int length) {
 if (str == null) return null;
 if (start < 0) { length -= start; start = 0; }
 if (start >= str.Length) return "";
 if (str.Length < length + start) length = str.Length - start;
 return str.Substring(start, length);
}
public static string Subst(this string str, int start) {
 if (str == null) return null;
 if (start < 0) start = 0;
 if (start >= str.Length) return "";
 return str.Substring(start);
}


569 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 15:38:09 ]
イベントの質問です。

windowsフォームなどのボタンなどを付けて、ダブルクリックした場合、
イベントを自動生成して、 Windows フォーム デザイナで生成されたコードの中に
イベントを登録したり、処理(ハンドラ?)のプログラムを書く場所を作ってくれますが、
イベントの引数やインスタンスの定義はどこでしてくれてるのですか?


570 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 15:43:12 ]
***.Designer.cs

***はフォーム名



571 名前:デフォルトの名無しさん [2009/02/16(月) 19:07:05 ]
@IT .Net Tipsの
リストビューに画像をサムネイルで表示するサンプルを使おうとしています。
URL (ttp://www.atmarkit.co.jp/fdotnet/dotnettips/336listviewimage/listviewimage.html)

Formに直接リストビューを貼り付ければ、希望通りの動きをしました。
が、FormにTabControlを張り付けて、TabPageの2ページ目以降にリストビューを貼ると、
タブをクリックしてTabPageを表示しようとするとエラーが発生してフォームが終了し、
Program.csのApplication.Run(new Form1());でブレークしてしまいます。
エラーの内容は、
System.ArgumentException: 使用されたパラメータが有効ではありません。
   場所 System.Drawing.Image.get_Width()
   場所 System.Drawing.Image.get_Size()
   場所 System.Windows.Forms.ImageList.CreateBitmap(Original original, Boolean& ownsBitmap)
   場所 System.Windows.Forms.ImageList.CreateHandle()
 (以下略)
です。

タブページの1ページ目や、Formに直接だと表示されるしエラーもでないんですが、
これは何が原因なんでしょうか?

572 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 20:26:07 ]
イベントハンドラの for の最後の

> thumbnail.Dispose();

これかな。消してみな。

573 名前:571 [2009/02/16(月) 20:49:54 ]
>>572
ずばりでした! 動きました!
ありがとう。
ちょっとソース詳しく読んで、なぜだか考えてみます。

574 名前: mailto:sage [2009/02/16(月) 21:00:20 ]


575 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 21:05:46 ]
>>573
これ読みながらやるような初心者にはわからん可能性が高い気がするけど
ヒントだけ。
ようするにTabPage2 に移動したことによってこのイベントが呼ばれる段階で
ハンドルが作られていない(可能性がある)のが問題。
その状況だと初期化が遅延されちゃうみたいだな。んで、表示されたときに
初期化が始まって、そのときに追加された Bitmap を参照しようとするけど
すでに破棄済みだからアウトになる、と。

576 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 21:41:34 ]
もっと単純に言えば、使い終わっていないものをDisposeしちゃダメってことだ。

577 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 07:52:38 ]
もっと単純に言えばDisposeは使うなってことだ

578 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 07:53:43 ]
それ、違うから。

579 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 08:07:41 ]
おいおい

580 名前:デフォルトの名無しさん [2009/02/17(火) 13:31:01 ]
HTTPのHEADメソッドを送信するにはどうすればいいでしょうか?
WebClientにもWebRequestクラスにもそれらしいメソッドはありませんでした。
もしかしてSocketクラス使わないとだめでつか?



581 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 13:39:14 ]
HttpWebRequest.Methodプロパティ?

582 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 14:06:14 ]
複数のフォルダに写真を整理していて、そのなかにある特定の日付(たとえば3月)の写真だけを抜き出したいと思っています。

string[] files = Directory.Getfiles("c:/photo", "*.jpg", SearchOption.AllDirectories);

string list = "";
foreach(string file in files) {list = list + file + "\r\n";}
MessageBox.Show(list);
とやって、いま、次のようなリストを入手しました。
このうち3月のみを取り出すのはどうしたらよいでしょう。
いちばん簡単なのは、*の部分に書くことかと思い、
string[] files = Directory.Getfiles("c:/photo", "200803*.jpg", SearchOption.AllDirectories);
としてみましたが、フォルダ名とファイル名にわかれていて結果は空になってしまいます。
あと、3月以前(01、02)とする方法もあわせて教えてください。

c:/photo/20080407eventname/photo.jpg
c:/photo/20080401eventname/photo.jpg
c:/photo/20080317eventname/photo.jpg
c:/photo/20080310eventname/photo.jpg
c:/photo/20080304eventname/photo.jpg
c:/photo/20080303eventname/photo.jpg
c:/photo/20080224eventname/photo.jpg
c:/photo/20080203eventname/photo.jpg
c:/photo/20080127eventname/photo.jpg


583 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 14:38:22 ]
>>581
これでいけました。ありがとうございました

String url = "pc11.2ch.net/tech/dat/1234017654.dat";
WebRequest webreq = HttpWebRequest.Create(url);
webreq.Method = "HEAD";
HttpWebResponse webres = (HttpWebResponse)webreq.GetResponse();
WebHeaderCollection webheadcol = webres.Headers;
String ltime = webheadcol.Get("Last-Modified");
Console.WriteLine(ltime);


584 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 15:05:13 ]
>>582
パス名の文字列を正規表現で分解して年と月を別々に取り出す
あとは大小比較で絞込み

Regex r;
r = new Regex(@"(\d{4})(\d{2})\d{2}eventname", RegexOptions.IgnoreCase);
Match m;
m = r.Match(@"c:/photo/20080407eventname/photo.jpg");
if (m.Success) {
String year = m.Groups[1].Value;
String month = m.Groups[2].Value;
Console.WriteLine("{0}年{1}月", year, month);
}


585 名前:デフォルトの名無しさん [2009/02/17(火) 15:25:58 ]
ファイル名の禁則文字を制御したいと思っています
やりたいことは「\/:*?"<>|」の文字があったら「""」で置き換えることです

Strings.Replaceでひとつひとつチェックすることぐらいしか思いつかないのですが
もう少しスマートな処理方法があれば教えて下さい

586 名前:デフォルトの名無しさん [2009/02/17(火) 15:34:22 ]
C# 2.0でDouble型のデータを文字列に変換するときの質問です。

通常
double a = 1.1;
a.ToString();
//結果="1.1"

のようになるのですが
以下の場合の解決を行いたいです。

double b = 0.000097;
b.ToString();
//結果="9.7E-05"  期待したい結果は "0.000097"

この結果を通常の10進数の表記を行いたいのですが
ToStringメソッドの引数に
"0.0000000"や "0.#############"
などを渡せば期待しているとおりの文字列を受け取ることができます。

しかし、小数点以下の部分が何桁になるかわからない場合、この表記であれば文字数を超えた部分が無効になると思います。
(例えば b.ToString("0.000")は"0.000"になる)

0.##...#を最大桁数分用意すればいいのかもしれませんが・・・・
何か綺麗な方法というのはないのでしょうか?

587 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 15:38:41 ]
decimalにキャストするとか。

588 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 15:40:41 ]
>>585
String.Replaceでなく、Regex.Replaceを使えば一度に変換できる


589 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 15:42:28 ]
>>586
string.Format

590 名前:デフォルトの名無しさん [2009/02/17(火) 15:43:33 ]
>>588
調べてみます。ありがとうございましたー



591 名前:586 [2009/02/17(火) 15:58:27 ]
レスサンクスです。

>>587
最悪その方法もありかなと考えているのですが・・・

>>589
型式指定子などヘルプ参考に使って試してみたんですが・・・
うまいこと行きませんでした…orz

型式指定子の横に数値をつければうまくはいくのですが、その横の数値に当たる部分が動的なため決められないのです。
(といっても結局Doubleの上限下限までではありますが・・・)

592 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 16:31:12 ]
string型の変数で絶対パスを指定してプログラムで背景を変えたいのですが、どのように記述すればよいでしょうか?
参考ページが見つからず困っています。

593 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 16:32:39 ]
>>592
背景って何だ?

594 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 16:40:23 ]
BackGroundImageの事とかじゃね?
Formの背景とか??

595 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 16:41:03 ]
datTable.Columns.Add("dat1", GetType(Int32));

のGetType(Int32)の箇所でコンパイルエラー('int' は '型' ですが、
'変数' のように使用されています)が出てしまいます。
構文が間違ってるでしょうか?
すみませんが、ご教授ください。

596 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 16:41:09 ]
>>593
BackgroundImageのことです。
普段はフォームのほうでフォルダを指定して画像を指定していたのですが、
月ごとに画像を自動で変えるためプログラム内で処理しようかと思いまして。

597 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 16:43:47 ]
>>596
BackgroundImage = new Bitmap(xxx);


598 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 16:48:15 ]
string[] data= new string[12];

for (int i=0;i<12;i++)
{
string[i] = string.format("C:\Image\{0}.jpg", i.ToString() );
}

LOADトカの処理で

int index = DateTime.Now.Month - 1;
Hoge.BackgroundImage = Image.FromFile( data[index] );


こんなイメージなの・・・か?

599 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 16:49:38 ]
全部ロードする必要なくないw

600 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 16:50:43 ]
>>595
その場合、""でくくるかtypeof使うんじゃないの?



601 名前:デフォルトの名無しさん [2009/02/17(火) 16:53:50 ]
>>599
い・・・いらないねw orz

602 名前:592 mailto:sage [2009/02/17(火) 16:58:25 ]
>>597さんのソースで無事表示できました。
皆さんありがとうございます。

603 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 17:01:07 ]
>>600
レスどうも。
たしかに、Type.GetType("System.Int32")と書くとうまく行くんですが、
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=39332&forum=7&5
このページで、GetType演算子(ttp://msdn.microsoft.com/ja-jp/library/tay4kywk(VS.80).aspx)
を使う方がよいとあったのもので。書式はあってると思うんですが。


604 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 17:06:08 ]
>>603
お前は何を言っているんだ・・・

605 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 17:07:58 ]
それはVBの話で、C#での対応する演算子はtypofです。
Type.GetType(ほにゃらら)ってメソッドの書式でしょ?
あるいは、Int32.GetType()でも可、かな?

606 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 17:10:19 ]
>C#での対応する演算子はtypofです。
typoだな

607 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 17:10:38 ]
('A`)ワロス

608 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 17:12:03 ]
>>604
すみませんw
Type.GetTypeメソッドとGetType演算子は別物ですよね。
んで、前者を使って文字列で型を指定するとうまく行くのですが、
後者をGetType(Int32)のように書いてもうまく行かなかった。という状況です。
ちなみに、>>600さんのご指摘通り、typeof(int)でうまくいきました。
ありがとうございました。

609 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 17:14:03 ]
>>605
('A`)
VBでしたね。すいません。ありがとう。

610 名前:605 mailto:sage [2009/02/17(火) 17:22:58 ]
まさにtypoだな。って何で俺が落ちをつけにゃならん。



611 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 17:25:02 ]
>>584
早速ありがとうございます。
c:/photo/20080317eventname/photo.jpg
c:/photo/20080310eventname/photo.jpg
c:/photo/20080304eventname/photo.jpg
c:/photo/20080303eventname/photo.jpg
の行を抜き出したいのです。
そのためには、どう絞り込めばよいでしょう?


612 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 17:27:18 ]
めんどくせえ
Regex.Match(path,"200803[0-9]{2}").Success
がTrueになるやつ

613 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 17:32:32 ]
フォームの背景でなくて、デスクトップの背景だったら?


614 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 17:35:25 ]
>>613
Win32APIのSystemParametersInfo使うだけじゃない?

615 名前:580 [2009/02/17(火) 18:15:57 ]
using System;
using System.Net;

class Test
{
public static void Main()
{
for (int i=0;i<10;i++) {
String url = "pc11.2ch.net/tech/dat/1234017654.dat";
WebRequest webreq = HttpWebRequest.Create(url);
webreq.Method = "HEAD";
HttpWebResponse webres = (HttpWebResponse)webreq.GetResponse();
WebHeaderCollection webheadcol = webres.Headers;
String ltime = webheadcol.Get("Last-Modified");
Console.WriteLine(ltime);
}
}
}

これで二周回ったところでGetResponse()メソッドが返ってこなくなるんですが、何がいけないのでしょうか?
2chのサーバーの設定の問題でしょうか?

616 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:35:41 ]
XmlSerializer.Deserialize で、<Version>1.003</Version> をデシリアライズして
あるクラスの Verion クラスのプロパティに入れたいと思っているのですが、
0.0 というバージョンが格納されてしまいます。
Version クラスはデシリアライズできないのでしょうか?

617 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:39:01 ]
>>615
サーバ関係ないみたいよ。
うちでも同じようになったし、自宅鯖に向けてもおなじ。
3回目のリクエスト自体来ていない。

618 名前:617 mailto:sage [2009/02/17(火) 18:44:19 ]
たぶん同時接続数の制限が別のとこにあるんだと思うよ。
ちゃんと終了処理すればいいんじゃないかな。
ためしに毎回Abortしたら止まらなくなった

619 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:46:58 ]
>>615
HttpWebRequest..::.GetResponse メソッドの説明

Close メソッドを呼び出して、ストリームを閉じて接続を解放する必要があります。
この操作を行わないと、アプリケーションで接続が不足することがあります。


620 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 19:08:55 ]
>>617
>>619
どうもありがとうございます。
リクエストのAbort()、レスポンスのClose()
どちらかを使えば、上手く動作するようになりました。
あと、デフォルトで2になっていた同時接続数の制限は
System.Net.ServicePointManager.DefaultConnectionLimitの
値を変えることで取り除くことができました






621 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 19:11:41 ]
いやそれは変更するな

622 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 19:57:12 ]
韓国は我ら優良種である日本国民に、管理運営され、はじめて未来を見ることができるのである。
その事実を無能なる韓国人どもに思い知らせ、我が日本領土である竹島を取り返すべくただいまより攻撃にでる

愚かなる韓国人に対し、再び裁きの鉄槌を振るう時が来た!
      /⌒ヽ
      ( ^ω^)/ ̄/ ̄/
      ( 二二つ / と)
      |   /  /  /
       |    ̄| ̄ ̄

攻撃:(p)dokdo.andu.hanafos.com/sign/
サイトで右側を選択すれば竹島は日本の領土!

作戦指令本部:(p)takeshima.2ch.net/test/read.cgi/news4vip/1234862529/

623 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:45:53 ]
Microsoft.Samples名前空間って、自作アプリに自由に使って、配布してもライセンス違反になりませんか?

Microsoft.Samples.DirectX.UtilityToolkitとか
Microsoft.Samples.ServiceHosting.AspProvidersとか
Microsoft.Samples.Workflowとか

624 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:49:46 ]
>>612
ありがとうございます。できました。


625 名前:デフォルトの名無しさん [2009/02/18(水) 01:51:16 ]
Image img;
using (WebClient wc = new WebClient())
using (Stream st = wc.OpenRead("適当な画像のURL"))
  img = Image.FromStream(st);
img.Save(@"z:\test.jpg");

Image img;
using (Stream st = new FileStream(@"適当な画像のパス", FileMode.Open))
  img = Image.FromStream(st);
img.Save(@"z:\test.jpg");
という2つのコードで、前者は正常に実行できるのに対し、後者は
System.Runtime.InteropServices.ExternalException(Message="GDI+ で汎用エラーが発生しました。")
という例外が発生します。
なぜ前者の場合は正常に実行出来るのでしょうか?

626 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 02:35:43 ]
>>625
いろいろややこしいことがあるみたい
www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=15772&forum=7&6

以下で回避が可能
Image img;
using (Stream st = new FileStream(@"inputFile.jpg", FileMode.Open)) {
  img = new Bitmap(Image.FromStream(st));
}
img.Save(@"outputFile.jpg");


627 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 03:01:42 ]
>>926
レスありがとうございます。
対応策は検索して把握してはいたのですが、
先の2つのコードの根本的な違いが気になったのです。

628 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 04:35:45 ]
>>627
このあたりかな
support.microsoft.com/kb/814675/en-us

ファイル以外のストリームには言及がないのでなんともいえないけど
少なくともファイルは特別に意識していて、ファイルから生成した
ストリームについてはそれを破棄するとイメージにアクセスできなくなるのが
仕様みたい

629 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 04:45:29 ]
Image も IDisposable だから

using (WebClient client = new WebClient())
using (Stream stream = client.OpenRead(uri))
using (Image image = Image.FromStream(stream))
{
image.Save(path);
}

の方が良くないか?

630 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 05:35:25 ]
>>625
かなりヤケクソ気味の対処法。
class ForwordOnlyFileStream : FileStream {
  public ForwordOnlyFileStream(string filename, FileMode filemode)
     : base(filename, filemode) { }
  public override bool CanSeek { get { return false; } }
}

Image img; 
using (Stream st = new ForwordOnlyFileStream(@"適当な画像のパス", FileMode.Open)) 
  img = Image.FromStream(st); 
img.Save(@"z:\test.jpg"); 




631 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 09:27:28 ]
>>630
素直に一旦MemoryStreamにコピーしろよって話だな

632 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 13:07:07 ]
C#2.0で質問です。

継承元のpublic設定されたメソッドやプロパティを、
継承先のクラスで隠蔽して、利用させたくないんですが、
new privateしても表示されてしまうのですが、これを隠す方法はないですか?

633 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 13:12:12 ]
ありません

634 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 13:27:06 ]
そういう事をしたくなったってことは設計がおかしい証拠だぬ

635 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 13:27:21 ]
(ω・ )ゝ なんだってー
継承元でprotectedにして、継承先でpublicにするとかするしかないのか・・
ありがとう

636 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 13:36:07 ]
>>634
工エエェェ(´д`)ェェエエ工工
確かに無理矢理流用しているから、おかしくなってるきがする。
設計を見直してみるお
ありがとう

637 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 13:40:36 ]
インターフェイスならメンバ隠して実装できるよ

638 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 13:42:37 ]
正直いつも似たような機能作る時に
インターフェイス使うかベースクラス継承してオーバーライドで使うか迷ってる俺がいる


639 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 13:45:36 ]
そこは普通に「似たような機能」クラスを作って包含するのが
一番素直で融通が利く

640 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 13:55:05 ]
>>639
なる。
凝りすぎもダメなのか



641 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 14:07:11 ]
>>637
ありがとう。

インターフェースでMethod()を定義して
public class MyBsdeClass : IInterface
 public void Method()
などでMethodの処理を書いた基底クラスを作って、
これをさらに継承するということですね。ちょっと試してみます。

ただ、異なる型にまたがって継承させて利用するメソッドではないので、
やはり設計を見直してみようと思います。

642 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 14:17:41 ]
それじゃダメ
基底クラスでもMethodを明示的実装しないといけない

643 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 14:28:42 ]
>>642
ありがとう
こんな感じでインターフェースを継承した基底クラスのメソッドに処理を書くってこと?

interface IInterface //■インターフェース
 void Method();

public class MyBaseClass : IInterface  //■基本的な処理を記述した基底クラス
 public void Method()
 {
  //処理を実装
 }

public class MyClass : MyBaseClass //■継承先



644 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 14:34:26 ]
違うこうするんだよ
public class MyBaseClass : IInterface { void IInterface.Method() { ... } }
public class MyClass : MyBaseClass, IInterface { void IInterface.Method() { ... } }
これで基底クラスの実装は呼べなくなる

645 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 14:51:09 ]
>>644
あんたすごいな
643じゃないけど少し知識増えたわ
おれもまだまだだな、、、

646 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 15:07:08 ]
キャストすると呼べるけどね。
is-aの関係が壊れているならそこを修復するのが先な気がする。
implements ... の関係とis a ... の関係は全く別物なんだから、どこかで怪我しそう。

647 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 15:13:58 ]
>>644
ありがとう。
試してみました。
確かにMyBassClassのMethod();でなく、MyClassのMethod()のほうが実行されますが、
Method();そのものが見えなくなるわけじゃないので、
自分の目的とはちょっと違う感じです。

実験した感じだと、動作としてはインターフェースにしなくともnew public void Method()すれば、
単純な基底クラスのメソッドの実装は呼ばれないと思うのですが、何か他の利点があるということですか?

648 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 15:23:05 ]
単純にnewで隠した場合は基底クラスにキャストすれば基底クラスの実装を呼べる
>>644だとMyClassのインスタンスをMyBaseClass, IInterfaceどちらにキャストしても
MyBaseClassのMehodの実装は呼べないよ
もちろん((IInterface)(MyBaseClass)).Methodでも同じ

649 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 15:27:47 ]
え、MyBaseClassにキャストしてからIInterfaceにキャストしても駄目なの?知らなかった・・・


650 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 15:27:51 ]
>>648
ああ、なるほどそういうことか!!
確かにそういうのが必要なときには便利ですね!

私も設計を見直して、基底クラスをいじったら、いい感じになってきました。
ありがとー



651 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 15:35:37 ]
あれ、そういう事なら、要はvirtualメソッド使えば良いって単純な話では?

652 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 15:40:15 ]
Form1にあるチェックボックスとかのGUIを
Form1.cs以外のxxx.csとかから操作したいんだけど
どうすればいいんでしょうか?

653 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 15:44:24 ]
コントロールのアクセスレベルを変えればできるけど褒められたやり方じゃないな
何の目的でそのチェックボックスがあるのか考えるんだ
その"目的"に対して,Form1にプロパティやメソッドを定義するべき
基本的にコントロールは外に出さない

654 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 16:15:52 ]
ループ内でCheckBoxで選択された機能だけを使いたいのですが、今はこんな形で処理しているんですけど、
for(){
  if(A) A();
  if(B) B();
  if(C) C();
  if(D) D();
}

ABCが30くらいに増えて遅くなってので、最初にチェック判別して必要な機能だけループ内で使用できるよう、

if(A)
if(B)
if(C)
if(D)
for(){
  B();
  D();
}

の形にしたいのですがどうすればいいの?

655 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 16:24:26 ]
>>654
それは単純に処理が多くなって遅くなってるのでは?
if文処理がどのくらいの比重を占めてるのかは分からんが。

処理を委譲してチェック外したらヌルオブジェクトに切り替えるとか

656 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 16:28:27 ]
速い遅いの問題なら
bool a = Aの式; bool b = Bの式; //c,d同様
for() { if (a) A(); if (b) B(); //c,d同様
が速いと思う
forの中を綺麗にしたいなら
var list = new List<Action>();
if (A) list.Add(メソッドAの名前); if (B) list.Add(メソッドBの名前);
for() { foreach (var action in list) action(); }
とか考えられなくはないけど

657 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 16:53:05 ]
           _
        ∠_)
   ∧_∧.  /
  ( ・∀・) /
 ⊂    つ
   人  Y  ∧_∧∩ ・・・
  し (_)  ( ´∀`)/
             /←>>655


658 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 16:59:04 ]
>>628
リンクありがとうございます。
取りあえず仕様でどうしようも無いという事ですか。
でもなんでこんな仕様なんだろ。
>>630
なるほど、CanSeekをfalseに固定するだけでも解決出来るんですね。
もしかしてWebClientが大丈夫なのはそれがあるのかな。

659 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 17:14:20 ]
なんでかって言われたらメモリ節約するためって答えになる
631で言われてる通りシークできないストリームなら内部でMemoryStreamに一旦コピーする

660 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 17:59:44 ]
>>651
そうなんです
それでいいんだけど、設計見直したらすっきりして、逆に実装が難しいと思ってた機能を
うまく盛り込むことができますた おまいらありがとう



661 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 20:34:41 ]
Visual C#でログイン認証が通らず、クッキーが取れないサイトがあったのでいろいろ
調べているのですが、Perlでは認証が通ったのでクッキーを見てみると"httponly"という
のがありました。これが原因だとするとVisual C#ではお手上げなんでしょうか?


662 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 20:37:33 ]
通信プロトコルの勉強をしろ

663 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 20:42:43 ]
>>661
ワロタ

664 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 20:46:49 ]
>>661
問題なし

665 名前:デフォルトの名無しさん [2009/02/19(木) 11:38:07 ]
C# 2.0Winアプリで質問です。

マルチスレッドでの変数のロック処理について教えてください。

メインスレッドと別のスレッドで処理を行って、
別スレッドで受けたデータをメインスレッドで画面に表示せています。
その時、Listオブジェクト変数を使用してデータを処理しようとしているのですが
このような感じのいいのかが不安なので質問させていただきました。

現在やっている処理は

1.メインスレッドでList変数初期化
2.別スレッドを開始

3.別スレッドでデータをList変数にデータを入れる。(ひたすらスレッドタイマ内でADDし続ける)

5.メインスレッドで一定時間ごとにのデータを画面に表示させる。
6.メインスレッドでListのデータをクリアし、一定時間が経過するのを待つ。(5に戻る)

上記の処理だけを考えた場合、このときList変数をLockしようとしているのですが、ロックするタイミングは

3のデータを入れる時
6のデータをクリアするとき

でよいのでしょうか?

それとも

5のデータを表示させる時(5〜6の間)もロックをする必要があるのでしょうか?

よろしくお願いいたします。

666 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 12:01:49 ]
後者

667 名前:デフォルトの名無しさん [2009/02/19(木) 13:21:46 ]
>>666
ありがとうございます。

ということはとにかく 別スレッドで操作される可能性のある変数を使う場合必ずロックする感じですか…
ありがとうございました。

668 名前:デフォルトの名無しさん [2009/02/19(木) 20:54:04 ]
時間のかかる処理のところで
Application.DoEvents();
をはさんで処理してるんですけど、
たまにこの命令で応答なしになってずっとかえってこなくなります。

回避方法や代替方法などありませんでしょうか?


669 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 20:54:59 ]
BackgroundWorker使う

670 名前:668 [2009/02/19(木) 20:55:01 ]
VisualStudio2008をつかってます。



671 名前:669 mailto:sage [2009/02/19(木) 20:56:06 ]
既に回答しました

672 名前:デフォルトの名無しさん [2009/02/19(木) 20:57:05 ]
>>669
ありがとうございます。
それでやってみます。


673 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:10:30 ]
.NET Framework 3.5 Service Pack 1

インストールしようとしたら、

「この製品はWindows2000にはインストールできません。
どうしてもインストールしたかったら、XP以上にアップグレードしてください」

ってメッセージが出てきたんだが、どうすればいい?

674 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:12:08 ]
もう答えを知ってるじゃないか

675 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:13:02 ]
どうしたい?
1. XP入れる。
2. .NET Framework 2.0 SP2でお茶を濁す。

676 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:15:36 ]
>>673
C#3.0やLinqを使いたいだけなら、MONOという手もなくはない

677 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:18:05 ]
3.C#を諦める。GAME OVER

678 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:19:07 ]
ゲームだったのかぁぁ

679 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:34:13 ]
small basicというものを入れようとしたら、

「.NETを入れてください」

というメッセージが出てきて、それをいれようとしたら
2000ではダメだ、といわれた。

small basicは2.0 SP2でも動くのかなぁ?

680 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:37:36 ]
MS製の教育用のやつ?
Small BasicはWPF使いまくってるから古い.NETやMONOでは絶対動きません



681 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:43:12 ]
>>680
そしたらXP購入コースかなぁ

682 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 22:53:08 ]
WPFはVistaにしとけ
Vista動かないならWPFなんかどうせまともに動かん
Small Basicにはそんな価値は全く無いけど
C#使うならXP以降でないと話にならない

683 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 00:48:53 ]
「部長!うちのVB6製品もそろそろ.NETに移植しないとやばいです」
「そうだな。だがうちの製品の顧客はNT4と2000もいるから、.NETとやらは平気なのか?」
「そんなやつらは旧バージョンを引き続き保守してお使いいただきましょうよ」
「じゃあお前2本分働け」
がーん。

684 名前:デフォルトの名無しさん [2009/02/20(金) 01:14:55 ]
Visual C# 2008について質問です。
メーラーを作っています。
設定を簡単にするために、Outlook Expressのsmtpサーバー、Port、ID、Passwordの4項目を引き継ぎたいです。
どこに格納されていて、どう読めばいいか、教えてください。


685 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 01:21:02 ]
世のメーラーでOutlookの設定を自動で使える奴ってあるの?

686 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 01:26:51 ]
Thunderbirdのソース読めばいいよ

687 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 01:29:50 ]
無理だろ
そんなのが取得できたら勝手にメール読み放題ウイルスとか作れちゃうじゃん

688 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 01:36:05 ]
いやいや
他のマシンの設定情報読んだり書き換えたりするわけじゃないんだから

689 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 01:39:34 ]
女子高生エロエロ動画.avi                                         .exe
とか実行しちゃったらやばいんじゃん?

690 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 02:10:45 ]
パスワードデコードできたらヤバイねw



691 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 02:37:41 ]
アセンブリのあるディレクトリのURI形式じゃない普通のパスを取得する標準的な方法ってありますか?
とりあえず、文字列処理で
System.Reflection.Assembly.GetExecutingAssembly().CodeBase.Substring(8).Replace('/','\\').Replace("WMPEmitMiku.DLL","");
ってやってるんですが、何ともダーティーで。

692 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 03:14:08 ]
  string path = System.Reflection.Assembly.GetExecutingAssembly().Location;
  string dirpath = new FileInfo(path).DirectoryName;
  Console.WriteLine(path);
  Console.WriteLine(dirpath);


693 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 06:21:11 ]
Outlook Express 使ってないから知らんけど、Protected Storage に入ってるんじゃね?

codezine.jp/article/detail/147?p=1

smtp とかその辺は、レジストリにありそう。

694 名前:691 mailto:sage [2009/02/20(金) 09:08:44 ]
>692
LocationプロパティはMSDNにマニフェストがどうちゃらと書いてあって良く分からなかったのですが
UNCパスが取れるのですね。助かりました。ありがとうございます。

695 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 11:04:15 ]
C#2.0で Socket.BeginConnect メソッドを使ってサーバに接続しています。

上記メソッドを使う時にタイムアウトの時間を指定とかできないんでしょうか?
接続に失敗したとき AsyncCallback で指定した部分に来るのが遅すぎるのでちょっと困っているのですが・・・

補足:
System.Net.Sockets.SocketException:
接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。
または接続済みのホストが応答しなかったため、確立された接続は失敗しました。

この情報を早く取得してタイムアウトエラーを出したいのです。

696 名前:デフォルトの名無しさん [2009/02/20(金) 12:29:53 ]
みなさんありがとうございました。
リンク先をたどってHideSeek(シェアウェア)を試して、パスワードを含むOutlookExpressの設定データを読めることはわかりました。読めるだけでテキスト書き出しはできないです。
フリーでは、Protected Storage PassViewというのがあるらしい。そのひとつのmailpv.exeを使ったら、簡単にテキスト書き出しもできるので、これを使ってProcess(mailpv.exe)とかもありかもなと思いました。
気軽に「こんなソフトありませんか?」ならこれで終了です。

おっしゃるとおり、Protected Storageに入っているようです。
これは既存のプログラムやC++なのですが、C#の方法は?
C++だと、
PStoreCreateInstance = (TPStoreCreateInstance)
GetProcAddress(hDll,"PStoreCreateInstance");
と書くところを、C#で書ければいいのかなと思うのですが、で、どう書きゃいいんでしょう?

まずは、Windows\System32\Pstorec.dllを参照に追加して。
としようとしたら、「C:\Windows\System32\Pstorec.dllへの参照を追加できませんでした。ファイルがアクセス可能で、有効なアセンブリまたはCOMコンポーネントであることを確認してください」とかいわれてます。


697 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 12:35:36 ]
アンマネージDLLの呼び出しで検索したらヒントになるかも

698 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 12:49:16 ]
pinvoke.net/
こういうサイトがあってPstorec.dllもリストされているんだけど、そのAPIは検索しても出てこないね。
まだ完全網羅はされていないのかな。

699 名前:デフォルトの名無しさん [2009/02/20(金) 13:52:01 ]
コードでリソースに新規文字列と値を追加、削除、編集するような処理はないでしょうか?
作成したSQLServerへの接続文字列を追加し、グローバル的に使いたいのですが・・

もしくは他にいい方法があるようでしたら教えて下さい


700 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 15:30:47 ]
class グローバル変数{
  public String 接続文字列1 = null;
  public String 接続文字列2 = null;
  …
  public String 接続文字列100 = null;
}



701 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 15:32:02 ]
修正
public static String 接続文字列1 = null;
おれとしたことが

702 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 16:01:44 ]
>>700
クラスですか
ちょっとそっちでやってみます

ありがとうございました

703 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 16:24:36 ]
スタックオーバーフロー起こすのでスタックサイズを大きくしたいのですがどうすればできますか?

704 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 16:26:02 ]
>>703
プログラムを書き換える

705 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 16:28:13 ]
>>699
リソースは知らんけど、設定なら簡単に編集できるんだけどなぁ。2008でね。
追加、削除はしらない。

706 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 16:42:16 ]
>>699
接続文字列程度なら暗号化して適当な設定ファイルにでも書き込むってのは?
ウチは大体XMLでやってるけど

707 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 16:43:01 ]
Byte配列の中身を検索したいんだけど便利な関数ってありますか?

708 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 16:45:12 ]
どう検索したいんだ…
普通にループで見て回るとかじゃなくって?

709 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 17:16:42 ]
文字列で"テキスト"を検索するみたいに、
16進の"0x01 0x02 0x03 0x04"をまとめて検索できないかと思って・・・

710 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 19:43:15 ]
前スレで見事に同じ質問を見たな




711 名前:デフォルトの名無しさん [2009/02/20(金) 19:51:37 ]
VisualStudio2008でApplication.DoEvents();を使うと応答ナシになって帰ってこない時が
あるので、使わない方法を調べてるんですけど、以下のようなコードだと実行すらされて
いない感じなんですけど、原因わかりますでしょうか?


private IEnumerable<int> SiteCheck(WebBrowser webBrowser, string url)
{
webBrowser.Navigate(url);

while (webBrowser.ReadyState != WebBrowserReadyState.Complete)
{
yield return 100;
// Application.DoEvents();
// ThreadSleep(100);
// これとおなじ
}
}


712 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 20:00:06 ]
yieldはforeachをサポートするために使うもの。DoEventsの代わりではない。
タイマイベントでforeach (var dummy in SiteCheck(browser, url)) ;
とかしたら動くかもしれないけどかなり変態的な手法なのでお勧めできない。

713 名前:712 mailto:sage [2009/02/20(金) 20:04:00 ]
訂正
タイマイベントでforeachはおかしいな
IEnumerator<int> state;
void Start() { state = SiteCheck(browser, url); timer.Start(); timer.Interval = 100; timer.Tick += timer_Tick; }
void timer_Tick() { state.MoveNext(); }
あえてやるならこんな感じかな

714 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 20:18:21 ]
その昔、yield という API があってな・・・ Win16 の頃か・・・

715 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 21:16:26 ]
DBにあるCLOB型カラムのデータをoledbを使用してstringで取得したいと考えていますが、
「データ型はサポートされていません」とのエラーがでて上手くいきません。
oledbではCLOB型の取得を行えないのでしょうか。
----環境----
DB:Olacle10g
.NET:3.5
----ソース----
OleDbCommand command = new OleDbCommand("select clobColmun from clobtable", connection, transaction);
OleDbDataReader dr = command.ExecuteReader();
if(dr.Read())
・・・


716 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 21:19:58 ]
ODP.NET 使え

717 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 21:22:49 ]
oledb clobでググれば情報はいくらでも見つかる

oledbでclobが扱えないんじゃなくて、
select使ってstringでとろうとするのが無理

718 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 21:24:23 ]
>>716
現状システム全体がOLE DBで動いているため、
この部分のみODP.NETを使うというのは厳しい状況です・・・

719 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 21:33:16 ]
>>717
if文以降でOleDbDataReader#GetBytes()でバイト配列を取得→stringへ変換という処理を想定していたのですが、
例外は以下の行で発生しているため、原因が特定できずに困っています。
OleDbDataReader dr = command.ExecuteReader();

>select使ってstringでとろうとするのが無理
という事は
OleDbCommand command = new OleDbCommand("select clobColmun from clobtable", connection, transaction);
の行自体に問題があるのでしょうか。

先ほどからググり続けているのですが、ピンとくるヒントが中々見つかりません・・・



720 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 22:16:00 ]
OracleならSQL内でTO_CHARできないの?



721 名前:デフォルトの名無しさん mailto:sage [2009/02/20(金) 22:44:44 ]
>>719
検索すると似たような質問があるね。BLOBの質問だけど
202.218.219.160/bbs/phpBB/viewtopic.php?topic=22005&forum=7&start=0

結局
>BLOB 型だと PL/SQLパッケージを使用する以外に方法が無かったかも知れません。
とかいってて、うまく解決できてないみたい

722 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 03:15:09 ]
ググったり色々試してみましたが現時点では出来ないに近い判断を下すしかないようです
一部できそうな内容も見つかりましたが、現状の問題の解決には至りませんでした
ありがとうございました


723 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 03:34:45 ]
>>695
基本的にできないよ

724 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 06:07:34 ]
System.Diagnostics.FileVersionInfo.GetVersionInfo で取得出来ないバージョン情報はどうやって取得すればいいんでしょうか?
例えば、火狐のBuildIDとかです
WinAPIなら取得出来るんですけど・・・

725 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 11:23:00 ]
>>724
ならAPI使えばいんジャマイか

726 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:21:39 ]
int a = new int();
a.ToString;

(new int()).ToString;
とかくことはできますか?

727 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:25:31 ]
何故自分で試してみない

728 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:25:46 ]
できるけど0.ToString();と同じだよ

729 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:26:24 ]
書ける

730 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:29:43 ]
この場合どうやってインスタンスにアクセスするんですか?
デリゲートがなければ行方不明になる書き方のようなきがするんですが



731 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:31:24 ]
usingは名前空間を省略するできるようにするためにあるんですよね?
Dispose() メソッドが呼び出されるように書く為とはどういうことですか?

732 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:37:24 ]
>>730
アクセスできない
実際行方不明になる
>>731
using (Bitmap bmp = new Bitmap(width, height)) { bmpに対する処理 }
と書くとスコープを抜けたときに自動的にbmpがDisposeされる
たまたま同じusingキーワードを使ってるだけで全くの別物

733 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:38:01 ]
名前空間省略に使うusingとDisposeの方は全く別物
ttp://msdn.microsoft.com/ja-jp/library/yh598w02(VS.80).aspx

using(obj)
{
ウントカカントカ
}

って書くとスコープを抜けるときにDisposeを呼ぶ。
ダック…ではなかったような気がする。

734 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:44:59 ]
ありがとうです。
それってDisposeを呼べば済むことじゃないんですか?
わざわざ紛らわしい名前を付けてまで自動的に呼ばれるようにする理由はなんですか?

735 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:46:16 ]
>>733
thx読んできます

736 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:46:58 ]
Disposeって書きたくないから
スコープを分離するため

737 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:48:12 ]
>>734
Disposeを呼ぶときはかならずこういう風に書く必要がある
try { objを使う } finally { obj.Dispose(); }
こうしないと例外が発生したときにDisposeが呼ばれない
毎回こんなの書くのは面倒だから

738 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:49:01 ]
しかしまあ確かに別の機能をなんで同じ名前にしたのかは謎だわな・・・

739 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 12:51:25 ]
>>737
なるほど、deleteをデストラクタに書くようなものですね。
理解できましたありがとうございました。

740 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 13:16:54 ]
C++って例外の時デストラクタ呼ばれたか?



741 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 13:25:04 ]
その点については、C++/CLIはとっても楽。

742 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 13:45:00 ]
>>725
API使おうと思ってググってみると頭おかしいんじゃないかって人のページに当たるので躊躇ってました
昨日からC#触り始めましたがC++先にやったからなのか痒いところに手が届かないことがしばしばありますね
C#はもうちょっと時間が経ったあとにやってみます
ありがとうございました

743 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 14:38:53 ]
>>740
れる。

744 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 16:18:42 ]
というか finally が仕様にないので呼んでくれないと
駄目という大前提が


745 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 16:20:22 ]
finallyも必ず呼ばれる保証は無かったりする

746 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 16:24:55 ]
public bool this[int cols, int rows] { get; set; }
このthisはどういう意味なんですか?
bool型変数thisの動的配列ってことですか?
動的でいいんでしょうか?

747 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 16:26:30 ]
>>746
indexer

748 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 16:26:49 ]
それはインデクサ

get;set;ってあるとこからプロパティだと推測しろ

749 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 16:27:57 ]
>>745
StackOverflowExceptionがそうなのだけど、
CLR2.0からはcatchも出来なくなったからもうどうでもいい。

750 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 16:31:29 ]
CriticalFinalizerObject使うのが確実らしいよ



751 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 16:45:46 ]
まあ、例外処理は、正規のロジックを分離するのが本分であって、予想外の事態に対処するってのは
使い方が違うからねえ。

752 名前:デフォルトの名無しさん [2009/02/21(土) 17:11:22 ]
WebClientクラスのUploadFileメソッドはファイルのみFTPに転送できて、フォルダは転送できないのでしょうか?
フォルダを転送するにはどんな命令を使えばいいですか?

753 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 17:13:43 ]
UploadFolder

754 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 17:20:49 ]
ありがとう
インデクサわかりました
クラス = {1,2}
としてあればインデクサで指定してある方法で代入とかできるんですね
でもフィールドが2つあったらどっちに代入されるんですか?

755 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 17:26:08 ]
それはコレクション初期化子といって,インデクサとは関係ない
var list = new List<int> { 1, 2 }; は
var list = new List<ind>(); list.Add(1); list.Add(2);と同じ

756 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 17:27:04 ]
だから、thisという特別な名前しかインデクサには使えないのさ。

757 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 17:33:05 ]
わかりました。インデクサって中でフィールドに代入する実装を書かなきゃいけないんですね
一番上のフィールドに自動的に入るとかかと思いました。ありがとうございました

758 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 17:43:42 ]
>>757
ひょっとして、プロパティに関して自動プロパティしか知らない?
堅気のプロパティを知ってから自動プロパティを使った方が良いよ。
public int A{get; set;}
みたいなのしか書いた事ないなら、
private int a;
public int A{get{return a;} set{a=Value;}}
をまず知っておくべき。

759 名前:デフォルトの名無しさん [2009/02/21(土) 18:02:08 ]
>>753
WebClient wc = new WebClient();
wc.UploadFolder(?);
としようにもUploadFolder自体がWebClientの定義に含まれていないとエラーが出たんですが、どういうことですか?

760 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 18:05:17 ]
フォルダはアップロードとかいう類のもんじゃない
FTPならMKDコマンドか、WebClientで使えるのかな



761 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 21:08:28 ]
環境はVisualStudio2005です。
ジェネリックコンテナのListやDictionaryで、
C++のstlにあるfront()やback(),
リバースイタレータの機能ってどうやって使うのでしょうか。

762 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 21:13:52 ]
Dictionaryには順番という概念がないので無意味
リンクリストはLinkedList<T>
逆順に列挙するにはforeach (var item in ((IEnumerable)list).Reverse())のようにする(LINQ)

763 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 21:23:22 ]
ふむふむ。Dictionaryてハッシュなのですね。
C#で二分木に相当するコンテナってのはあるんでしょうか。

764 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 21:24:51 ]
iterableじゃなくてenumerableで、概念上はforeachの中身は各要素に対して一回だけ
実行されて順番は未定義、foreachの中身は可換な操作のみ可、であるはずなのに、
何故かEnumerable.Reverse()がある不思議。実用上は仕方がない事とは言え。

俺としては、本当に順番は未定義にして、foreachの中身が可換な操作の場合のみ結果が
定義されるとした上で、並列実行なんかをサポートしてくれた方が嬉しいんだが・・・

まあ、内部的にIEnumeratorのMoveNext()使っている限りはどうしようもない望みなわけだが。

765 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 21:37:50 ]
SortedDictionaryとかは内部的に二分木のはず。


766 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 21:46:12 ]
>765
おお、ありがとうございます。
でも、先頭要素や末尾要素の取得が出来ません。
MSDNみてるとExtensionのメソッドというので取得できるみたいですが・・・
msdn.microsoft.com/ja-jp/library/ms132262.aspx

このExtensionのメソッドってどうやれば使えるのでしょうか。
インテリセンスでは出てこないので、何かしなきゃいけないみたいで・・・。

767 名前:764 mailto:sage [2009/02/21(土) 21:48:25 ]
そういえば、Enumerable.Reverse()の実装をリフレクタで見てみたら、一度全部列挙して
配列にコピーする鬼実装になっていたような気がする。LinkedListが泣いている・・・


768 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 21:48:56 ]
SortedListはインデックスで要素取得できるからそんなのいらない
Reverseなどはusing System.Linq;をファイルの先頭に追加すると使えるようになる

769 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 21:51:26 ]
>767-768
(;´Д`)もしかして、stl使ったほうがよさげ?

770 名前:764 mailto:sage [2009/02/21(土) 21:59:10 ]
>766
「拡張メソッド」の訳をさぼったっぽい。
System.Linq.Enumerableクラスの一連のメソッドは第一引数が
this IEnumerable foo
ってなっていて、実際にはIEnumerableを実装しているクラスノインスタンスメソッドのように
使える。C++のSTLで言う「アルゴリズム」みたいなもの。IEnumerableを実装していればみんな
同じ事ができる。ただし、内部的にIEnumeratorを使った列挙にまで落とし込まれるので、
>>767
に書いたみたいに順序付けられて先頭と末尾を持つコンテナの特性は活かされない。

>>768
SortedListはインデックスがある分、要素の追加がO(n)かかる。

実は、本当の意味での二分木ってないんだよね。

SortedDictionary:内部構造は二分木なのにバイナリサーチがない(あれば先頭、末尾を
取得するメソッドがなくても最悪O(logN)で先頭、末尾に辿り着ける)
List, SortedList:バイナリサーチあり。ただしインデックスを持っているので追加、削除
にO(N)かかる。

orz

俺は、スキップリストを自分で実装して二分木の代わりに使っている。確率的アルゴリズムで
もって局所的な操作を行っても平衡二分木状である事が保障され続けるナイスなデータ構造。



771 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 22:15:06 ]
Microsofot公式の本でも紹介されていたけど、
WintellectがいろいろSTL風のコレクションを作っているらしい。
ttp://d.hatena.ne.jp/shintaro/20080128

772 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 22:17:51 ]
あ、SortedDictionaryのバイナリサーチがないってのは、IEnumerableに対する
System.Linq.Enumerable.First拡張メソッドを使っても二分木構造が活かされないって意味ね。
キーが既に含まれているかどうかのバイナリサーチは(拡張メソッドじゃなくて)クラスのメソッド
として実装されている。でも、それじゃ役に立たない場面が多い。


773 名前:763=766=769 mailto:sage [2009/02/21(土) 22:27:41 ]
皆さんありがとうごさいます。
拡張メソッドも、STLもC#2.0では使えないようなので、
今ある機能で間に合わせることにしました。
先頭要素の取得は↓のような感じで。

SortedDictionary<Key, Value>.Enumerator e = contaner.GetEnumerator();
e.MoveNext();
return e.Value;

でも、なんかもやもやする・・・

774 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 22:32:56 ]
あ、SortedList.Enumeratorの実装次第では、System.Linq.Enumerableクラスが
拡張メソッドとして提供するFirstメソッドは高速(少なくともO(log N)、最初のノードを
内部で保持していればO(1))である可能性があるね。その代わりLastは内部で全部列挙
しやがるんだろうなあorz

775 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 22:35:03 ]
>>773
大丈夫、拡張メソッドFirstの内部実装はそれだ。で、Lastの内部実装は>>774だ。
でも、そんなにSTLやアルゴリズムが好きなら、LINQ to Object(さんざん出ている
System.Linq.Enumerableクラスが提供する拡張メソッドのことね)は確実に
気に入ると思うよ。まだまだ足りない物は確かに多いんだけど。

776 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 22:52:57 ]
LINQ to Objectは気にいりそうな気がしますが
VS2008からみたいなので諦めます。

でもListの末尾要素を順序探査して拾うってのは、
ちょっとひどいような(;'A`)

将来的には改善されるとは思うので、
LinqがあるVS買ったら書き換えるようにします。

777 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 23:09:02 ]
>>773
ねえ、それで、「順序に関する」最初の要素ってちゃんと取得できてる?
気になってリフレクタでSortedDictionaryの実装を見てみたんだけど、
内部でTreeSet<T>っていうinternalクラスを使っているのね(赤黒平衡木っぽい)。
で、GetEnumeratorするとこのTreeSetのGetEnumeratorに丸投げされて、
ResetしてMoveNextしてCurrentを参照するとルートノードが返される実装になって
いるっぽいんだが。

このTreeSet<T>をpublicにしてくれれば>>773のもやもやも解消するだろうになあ。
これはモノホンの平衡二分木になっている。それで、
InOrderTreeWalk(TreeWalkAction<T> action)
ってメソッドがあって、どうやら、条件式によって[a,∞)の形の区間を指定してその区間
に含まれる最初のノードを探索してくれるみたい。ただし、結局逆順の探索は実装されて
ない。orz.

>>776
Express Editionは無料ですよ。確か2005と共存もできるし。とりあえず入れて見たら?
業務での開発?

778 名前:777 mailto:sage [2009/02/21(土) 23:11:09 ]
あ、問題ないみたいだ。ごめん。左に左にと進みながらスタックにpushしている。

779 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 23:18:51 ]
>777
趣味の開発なのですが、Expressエディションだと
クラスデザイナが使えないようなので手をだしてません。
リファクタ機能とクラスデザイナの使い心地試すのを
第一優先でC#に手をだしてるものでして・・・。


780 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 23:42:46 ]
Expressにリファクタ機能ないんだ!!



781 名前:デフォルトの名無しさん mailto:sage [2009/02/21(土) 23:49:43 ]
あるよ

782 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:18:03 ]
手元のC#2008EEだと、
リファクタ(R) → 名前の変更, メソッドの抽出
しかないな。
インテリセンスはちゃんと効くけど

783 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:27:48 ]
Enumerableの実装がどうこうとか言っている暇があったら、
自分で(拡張メソッドを)オーバーロードすればいいのに

まあ、これくらい標準で用意してくれという意見なら賛成するが

public static ListEx {
  public static T First<T>(this IList<T> list) { return list[0]; }
  public static T Last<T>(this IList<T> list) { return list[list.Count - 1]; }
  public static IEnumerable<T> Reverse<T>(this IList<T> list) {
    for(int i = list.Count - 1; i >= 0; i--) yield return list[i];
  }
}

784 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:32:56 ]
拡張メソッド使えるなら、全部あるよ。
msdn.microsoft.com/ja-jp/library/system.linq.enumerable_members(VS.95).aspx

785 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:43:57 ]
>>782
それだけあれば十分じゃね?
つか、それしか使ったことない気がする

786 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:51:09 ]
>>784
そうじゃなくて、IEnumerable<T>を想定した(汎用的で効率の悪い)実装ではなく、
IList<T>、etc. 専用に効率の良い(かもしれない)実装**も**用意してくれという話

てか、最初の単語くらいは見てくれよw

787 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 06:25:47 ]
>>783
もちろんそれで良いんだけど、まさに、「標準で用意してくれ」って意見なんだよね。
それと、SortedDictionaryだと>>773みたいに列挙の必要はないのにEnumerator
をとることになって格好悪い。

具体的には、IEnumealeは順序を保証しない列挙に特化(Reverse, First, Lastなし, その代わり
foreachの並列実行サポート)して、IOrderedEnumerableみたいなインタフェースを追加する。

こいつには順序に従った区間(-∞,a]と等価なbool値デリゲートおよび探索開始ノードを取るLast,
順序に従った区間[a,+∞)に等価なbool値デリゲートおよび探索開始ノードを取るFirst, 及び順序に
従って前方、後方に移動できるIOrderedEnumeratorを与えるGetOrderedEnumeratorメソッドが
あって、順序があって先頭・末尾があるコレクションはこいつで表現される。そんでもって標準で
拡張メソッドで``アルゴリズム''を提供する。これが一番みんなが幸せになれるんじゃないかな。
LINQに慣れると、標準での汎用的なインタフェースへの拡張メソッドの提供という事の便利さが
身に染みる。

>>771も気になるけれど、IEnumerable<T>, IList<T>, ICollection<T>インタフェースへの
拡張メソッドによる実装なので、ツリー状の構造を活かしたバイナリサーtはなくって、IList<T>
のインデックスベースのバイナイサーチしかないみたい。それはそもそもList, SortedListにはある
以上魅力に乏しいよなあ。


788 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 06:48:47 ]
ああ、IOrderedEnumeratorなんて作らなくても、ノードを与えて、前方、後方のノードを取得する
forward, BackメソッドをIOrderedEnumerableに含めれば良いのか。ますますSTLっぽくなってきた。

インタフェースの設計って難しいなあ。だから標準で(略)

789 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 11:15:26 ]
実際FirstとかElementAtとかToArrayなんかはIList<T>の場合は特別扱いされるから
余計な心配はいらないよ
ソース読めばわかる

790 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 11:25:41 ]
各要素の値を見る必要のないメソッドはすべてIList<T>に対して特別に最適化されてるみたい



791 名前:787 mailto:sage [2009/02/22(日) 12:52:08 ]
どうにかして欲しいのはSortedDictionaryやLinkedListなんだ〜〜〜。
と叫んでみる。順序と特別な探索の方法を持つデータ構造を活かす汎用的な
(C++の``アルゴリズム''的な)方法がないんだよ。
 
IList, IList<T>だったらそりゃ特別扱いもされているし、>>783のコードでも、
>>771のライブラリでも良い。
 
ただ、>>773のFirst()のコードは>>778によって、ルートからの探索でO(logN)で先頭ノードに
辿り着くので二分木の構造は結局活かされるみたいね。これはLINQの実装そのものだからLINQ
でも同じ。

792 名前:デフォルトの名無しさん [2009/02/22(日) 13:32:49 ]
いまcsvを読んでDataGridViewに表示しています。
さらに、csvのある項目から文字列を複数個生成し、それをArrayListに入れています。
そのArrayListをさらにFormのメンバ変数のArrayListに入れています。

「DataGridViewの1行のデータ」を使用するときは、表示されている情報のほかに、
上記のArrayListの文字列も使いたいのです。
今は選択された行のindexから、メンバ変数のArrayListからその行のArrayListを取り出して使っています。

これで動いているのでいいんですが、
たとえばDataGridViewの1行に直接不可視のカラムでArrayListを追加できれば、メンバ変数で別途管理しなくてもすむと思うんですが、
DataTableのColumnのAdd()で指定するDataTypeにはArrayListがありません。

こんなように、DataGridViewには非表示で、1レコードに紐付けて管理したいListやCollection等があった場合、
みなさんどう管理しますか?

793 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 16:19:20 ]
Tag

794 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 16:54:16 ]
PropertyGridと同じように普通にBrowsableAttributeが使えると思うんだけど、
そういうことじゃないのかね。

ほとんどDataGridView使ったことないもんで勘違いだったらすまんが。。

795 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 19:00:45 ]
Visual C# Expressをインストールしました。
MS-DOSで.csファイルをコンパイルしようとしたけど出来ませんでした。
Pathが通っていないからだと思い、csc.exeを探したのですが見当たりませんでした。

796 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 19:03:37 ]
それなら多分 .NET Framework を入れるだけでよかったのかも
PATH は \WINDOWS\Microsoft.NET\Framework\v2.0.50727

797 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 19:06:42 ]
Visual Studio Toolsのコマンドプロンプトからやってみて

798 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 19:08:50 ]
>>795
%frameworkdir%\%frameworkversion%にある
そんな環境変数見当たらなければ、%windir%\Microsoft.NET\Framework\v2.0.50727

799 名前:デフォルトの名無しさん [2009/02/22(日) 20:26:57 ]
XMLで出力されるドキュメントコメントをHTML形式とかで見るいいツール知らないでしょうか。
ndocとかいうのがぐぐるとひっかかったのですが、 2008では使えないみたいで。


800 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 20:32:56 ]
Sandcastleとか



801 名前:デフォルトの名無しさん [2009/02/22(日) 20:32:59 ]
オナこいてる方も、女とやってる方も教えてくんろ

他アプリケーションのコントロールのハンドルを取得して、
そいつにPostMessageなんぞ使って、
要するにそのアプリをコントロールしたいんだわ

ところが、
SunAwtFrame
ってウインドウクラスのコントロール達の
ハンドルが取得できないどころか探せすらできない。
Spy++で見ても親ウインドウしか見つからない・・・。
これってJavaのクラス?
なんか良い方法はないでしょうか?

802 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 20:34:40 ]
ほぼsandcastle一択。
素のままで使うのは大変なのでsandcastle help file builderをフロントエンドとして使うのが良い。

803 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 20:37:03 ]
javaのコントロールってウィンドウハンドル持ってないんだっけ?
それならウインドウの中身を一枚の絵として描いてるだけなんだからどうしようもない

804 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 20:39:30 ]
同じようなもので、IE のウィンドウがある。あれも一枚絵。

だけど、IE のウィンドウについては IHtmlDocument インターフェイスが用意されてる。
Java(Awt) に同じようなものがあるかは知らん。

805 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 21:23:46 ]
>>798
というか今いれてという話なら 2008 じゃないかって気がするから
v3.5 の下だと思う > csc.exe

806 名前:797 mailto:sage [2009/02/22(日) 21:25:33 ]
無視すんなコラ

807 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 21:25:46 ]
よくわかってない人が来ました。

808 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 21:30:55 ]
>>806
たしかVC++以外のエクスプレスには無かったはず。

809 名前:デフォルトの名無しさん [2009/02/22(日) 21:34:33 ]
>>803,804

おまえらありがと
ちょっくら違う手を考えてみる

810 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:14:59 ]
>>802
質問者じゃないけど、これ知らなかった
今インストールして試してみたが、便利だな
利用させてもらうよ



811 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:25:01 ]
>>810
コンソール版も同梱されているので、VisualStudioの外部ツールに
タイトル:Sandcastle Help File Builder
コマンド:C:\Program Files\EWSoftware\Sandcastle Help File Builder\SandcastleBuilderConsole.exe
引数:$(ProjectDir)$(TargetName).shfb
"出力ウィンドウを使用"にチェック
"起動時に引数を入力"にチェック
って感じで登録しておくと便利。

812 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:27:43 ]
すげえええええええ

813 名前:799 [2009/02/22(日) 22:54:53 ]
>>800, >>802
sandcastle使ってみました。
感動した。

ありがとうございます。


814 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:59:13 ]
SandCastle使うと自分が適当に作ったライブラリが標準のライブラリと対等に見える不思議。
PresentationStyleはvs2005にするとMSDNと似たフォーマットになるよ。


815 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:22:45 ]
C#2.0で質問です
親 ClassA→ClassB→ClassC 子
とクラスを継承していて、ClassCはインスタンスも生成でき、ClassCからの継承も可させたいけど、
ClassBやAから継承したクラスを作らせたくないようにしたり、直接、ClassBやAのインスタンスを
生成させたくない場合はどうすればいいですか?

クラスライブラリとして公開したいので、ClassCは自由に利用してもらいたいのですが、
ClassBとClassAは非公開にしておきたいのですが、どうすればいいでしょうか。



816 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:27:14 ]
AとBをinternalにして、C をpublicにすればいいんじゃね?

817 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:29:31 ]
そう思ったんだけど、
アクセシビリティに一貫性がありません。基本クラス 'ClassA' のアクセシビリティはクラス 'ClassB' よりも低く設定されています。
ってエラーで弾かれるのです(´;ω;`)ブワッ



818 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:32:03 ]
AやB自体のアクセスレベルはpublicのままで
コンストラクタをinternalにする
.NET Frameworkのクラスでは多用されてるやり方

819 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:51:58 ]
なるほど、そんなやり方があったんですね
ただ、それだとインスタンスが生成できないというだけで、
継承はできるので、継承元クラスのProtectedのメソッドが見えてしまったり、
インテリセンス(?)にIDE上ででてきてしまったりしますよね。
なるべく余計な情報を出したくないんですが、無理なら仕方ないのかな。

820 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 01:05:20 ]
>>819
そもそも、それならClassAもClassBも必要ないはずだと思うんだけど。
全部ClassCに書けばいいじゃん。
派生できないベースクラスなど何の意味があるの?

ClassCという型の存在を隠したまま、そのインスタンスをClassAとして使わせたい、
ってのならよくわかるし方法もあると思うんだけど。



821 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 01:10:17 ]
共通して利用する処理を基底クラスに書いておくってのは普通にないか?
クラスライブラリごとに開発チームが違うような場合
最も表面的なところしか見せたくない場合もあると思うんだが

822 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 01:19:29 ]
うんだから派生クラスを隠したいというのなら話はわかるけど……、
と言ってるんですが。

823 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 01:30:17 ]
継承を使わないで、委譲させればいいんじゃないかな?

824 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 01:36:23 ]
いや基底クラスの関数群はそのチームでしか必要ないクラスだから
派生クラスだけ公開したいという場合もあるんじゃないか?

825 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 04:08:32 ]
ドスプロントでコンパイルしようと思って、Path通そうとしたら、
C:\Program Filesの中にcsc.exeが見当たらなくて焦った。
C:\WINDOWSの中にあったのね。

826 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 07:51:09 ]
ドスプロントとかいつの時代だよ

827 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 07:52:34 ]
Win7にも絶賛登載中ですが

828 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 07:53:08 ]
>>821
そういう場合、お作法としては、移譲、
要するに、ちょっと面倒だけどメンバーとして持って、
ClassA a;
void Foo() { a.Foo(); }
とする方がいいということになってる。


829 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 07:55:26 ]
>>826
PowerShell が .NET に依存してて、
.NET が GUI 機能に依存してるから外すに外せないらしいね。
.NET Framework の GUI 外したバージョンも作って欲しいんだけどなぁ。

830 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 08:12:22 ]
コマンドプロンプト仕えよ



831 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 08:17:41 ]
このスレ的にMonoってどうなの

832 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 08:22:54 ]
スレちがい

833 名前:デフォルトの名無しさん [2009/02/23(月) 09:47:12 ]
.NET Framework単体での質問スレが見つからなかったのでこちらに質問させて下さい。

.NET Framework Version 3.5 の新機能
msdn.microsoft.com/ja-jp/library/bb332048.aspx

にある

> Socket 名前空間に対する機能強化の一環として、一連のクラスが新たに追加されました。

とは具体的にどのクラスを差すのでしょうか?

834 名前:デフォルトの名無しさん [2009/02/23(月) 13:37:43 ]
C#でWiiリモコンの制御ってどうやるんですか?
参考になるサイトなどお教えください


835 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 17:30:24 ]
>>834
まずはリモコンの素材について学んで来い
そしたら教えてやる

836 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:38:58 ]
新しいものに対する拒否反応以上ではないような気がするな。
一度XAMLなしで簡単なプログラムを書いてみるといいよ。
やってる途中でバカバカしくなるから。

837 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:39:45 ]
>>836
すまん、誤爆

838 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:49:42 ]
気にするな
理解した
向こうにレスする必要なし

839 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:31:13 ]
>>834
Managed Library for Nintendo's Wiimote でぐぐれ。

840 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:38:38 ]
DataGridViewにて困っております。
バインドしたDatatableのデータを更新すると、
グリッドの方にも反映されますよね?
その時のセルを取得したいのですが、
CellValueChangedイベントで拾えませんでした。
何か方法よいありますでしょうか?



841 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:44:39 ]
>>839
ジョークだと思ったら本当にあるのなw

842 名前:デフォルトの名無しさん [2009/02/23(月) 23:59:13 ]
>>840
rowdataboundイベントでe.rows.cellsとかで取得できないの?

843 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:09:52 ]
>>841
日本だとMS製品と水と油な感じの派閥でも、
海外では.NETに前向きな雰囲気。
Wiimote以外にも、iPhoneで.NET(Mono)使うとか普通にやられてる。


844 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:11:24 ]
>>842
DataGridViewには該当するイベントはないですね。
似たイベントを探しましたが、見あたりませんでしたorz

845 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:14:15 ]
BindingSource_EndEdit()

CurrentCell

この辺

846 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:19:20 ]
>>845
確認してみます。

847 名前:デフォルトの名無しさん [2009/02/24(火) 00:22:15 ]
> 834
このページにのってる
www.kosaka-lab.com/tips/

質問する前にググれよ






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

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

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