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


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

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



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

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

前スレ

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


2 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 18:47:58 ]
-----関連スレ

C#, C♯, C#相談室 Part53
pc12.2ch.net/test/read.cgi/tech/1245150671/

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

----参考サイト

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/

3 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 18:51:32 ]
乙です

4 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 18:58:56 ]


5 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 19:17:14 ]
でも、継承で組みあがってないと資産にならないし
拡張も難しくなるし。継承で組みあがってはじめてオブジェクト指向になるんじゃないんですか?
継承の作りどころがわからないとプログラミングがはじまってもいないと思うのですが、この壁を超えるにはどうすればいいんでしょうか

6 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 19:20:54 ]
継承が必要なときはね。ピーンとくるよ、

7 名前:デフォルトの名無しさん [2009/06/24(水) 19:26:03 ]
クラスの継承は使わずに、インターフェイスの継承だけで試しにやってみたらいいんじゃない
正しい使い方に矯正されるよ

8 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 19:26:20 ]
インターフェイスでたいていは間に合う。
最近のオブジェクト指向は継承より委譲と包含がトレンド。
そのうち風向きがまた変わるかもしれないけどね。

9 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 19:29:31 ]
違うよ。多態使ってはじめてオブジェクト指向のメリットがあるんだよ。
継承だけならオブジェクト指向以前の構造化プログラミングで十分。

10 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 19:31:12 ]
これってアレ?全力で間違ったことを言うとレスが必ず付くってやつ?



11 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 19:32:34 ]
前スレの実験だけど、1億回ループで101ms、ifだけを3倍にしたら171ms、
forの処理時間を差し引くとifが1億回で35msという結果になった。
使用したマシンはPen4/3GHzなんで、計算すると1回あたりほぼ1クロック。
データシート通りの結果になった。

12 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 19:47:13 ]
多胎はメリットの一つだろうが=じゃねえだろ

13 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 19:50:01 ]
コードの再利用やカプセル化なんてオブジェクト指向でなくてもきるからな。

14 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 20:57:26 ]
Windowsのサービスパックと.Netがインストールされているかどうかを
プログラムから調べる方法を教えてください。
検索しても「システムのプロパティを開いて」といった、人間の目で
確認する方法しかヒットしません。

今作っているアプリが.Net3.5を使っているのですが、.Netの入っていない
マシンで実行すると無反応になってしまい困っています。

15 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 21:01:21 ]
最初にシステムの状態をチェックして、
「.Netをインストールしてください」みたいなダイアログを出したいのです。

16 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 21:03:38 ]
>>15
インストーラーが自動でやってくれるよ

17 名前:デフォルトの名無しさん [2009/06/24(水) 21:05:34 ]
C#でCOM参照を可能にしたDLLを作ってExcel2002の参照に追加
関数を呼び出すと必ず実行時エラーになる
VC#2008で作ったCOMDLLはOfficeで使えないのかな?
ググっても解決法が見つからないっす

18 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 21:08:37 ]
>>16
インストーラーは使ってないです。
導入はexe単体をコピーするだけなんです。

>>17
使用者があんまり詳しくないので、できれば関連ファイルは
増やしたくないのですが。

ほかに方法がなければ、いずれかを検討してみます。

19 名前:14 mailto:sage [2009/06/24(水) 21:12:26 ]
とりあえず、mainの先頭にMessageBoxを入れたら表示されたので、
.Netがなくてもとりあえずプログラムはスタートはしているようです。

20 名前:14 mailto:sage [2009/06/24(水) 21:14:25 ]
ふと思いついたのですが、
アプリケーションの追加と削除の中の一覧を調べる
みたいな方法は避けた方がいいでしょうか?



21 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 21:15:51 ]
詳しくないなら、なおさらインストーラー作ったらいいじゃない
ランタイムなかったらそれも自動でインストールしてくれるし

22 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 21:18:04 ]
>>17
実行時エラーってその内容はどうなのよ

23 名前:14 mailto:sage [2009/06/24(水) 21:23:05 ]
>>22
exeのアイコンをダブルクリックすると、一瞬砂時計になるだけで
エラーも何も出ずに、すぐに終了してしまいます。

24 名前:17 mailto:sage [2009/06/24(水) 21:24:03 ]
>>22
実行時エラー '-2146234105(80131107)'
オートメーションエラーです。

だそうです。

25 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 21:34:24 ]
Excel2002ってアセンブリ読めるの?

26 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 21:45:13 ]
一応読める
ttp://msdn.microsoft.com/ja-jp/library/aa140056(office.10).aspx

27 名前:17 mailto:sage [2009/06/24(水) 21:53:06 ]
色々調べた結果、OfficeのバージョンとVSのバージョンによって
参照できたり出来なかったりするみたいですね

28 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 22:18:15 ]
>>14
レジストリ見れば.NETがインストールされてるか分かる。どこ見ればいいかはググれ

29 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 22:44:56 ]
ttp://www.atmarkit.co.jp/fwin2k/win2ktips/246checkvdnfw/checkvdnfw.html


30 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 22:57:54 ]
listBoxの最後の項目を抜き出すには、どのようにしたらよいですか?
listBoxの項目から、ランダムにひとつを抜き出すには、どのようにしたらよいですか?




31 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:00:39 ]
一つ目は抜き出せる?

32 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:04:31 ]
ListBox.Items.Countに項目数が入ってるだろ
つまり

33 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:15:48 ]
IndexOutOfBoundExceptionが出ちゃいます

34 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:18:57 ]
>>33
最後の値を取りたいんなら-1しないとダメだぞ

35 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:25:26 ]
1個目はできます。
listBox.SetSelected(1, true);
string s = listBox.Text;
MessageBox.Show(s);

最後の項目ということで、
listBox.SetSelected(ListBox.Items.Count, true);
としたら、
静的でないフィールド、メソッド、またはプロパティ 'System.Windows.Forms.ListBox.Items.get' で、オブジェクト参照が必要です
となってます。



36 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:32:07 ]
int[] array = new int[3];
のarray.Lengthは3だよな
このときarray[x]のxの取り得る範囲は?

37 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:38:20 ]
>>30
Randomオブジェクトでヘルプを検索

38 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:39:58 ]
1個目はlistBox.SetSelected(0, true);
です。

x 012です。

39 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:48:27 ]
テキストBOXに

textbox1.Text = "test\r\n"

と書き込んだ後に、表示しているテキストに
追加して文字列を入力したいのですが
消えてしまって、前の状態が保持できません。

40 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:54:52 ]
>>38
arrayをlistBox.Itemsに、LengthをCountに置き換えれば後は分かるな?

>>39
AppendText



41 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:58:23 ]
>>40

ありがとうございました。
できました^^

42 名前:14 mailto:sage [2009/06/25(木) 00:09:41 ]
>>28-29
ありがとうございます。
こちらでも、プログラムの追加と削除について調べているうちに、
レジストリから.Netの情報が直接取れそうだとわかったところでした。

43 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 00:14:47 ]
ありがとうございました。
listBoxできました。


44 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 06:05:56 ]
これをもっと簡略化して書くならどうしますか?

      if(File.Exists(file_name))
      {
        FileInfo fi = new FileInfo(file_name);
        if (fi.Extension == ".txt")
          return true;
        else
          return false;
      }

45 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 06:30:56 ]
三項演算子でも使って書けよ

46 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 06:40:12 ]
>>45
お手本をお願いします

47 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 06:46:20 ]
えええええええええええ

return str=="aaa" ? true : false;

みたいなの

48 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 06:51:02 ]
>>47
実例お願いします

49 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:02:43 ]
はい実例

return str=="aaa" ? true : false;

50 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:06:27 ]
return fi.Extension == ".txt";



51 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:07:45 ]
>>50
これだとファイルが存在しない場合エラーでますよ

52 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:10:25 ]
>>44
これを簡略化して書いてほしんです
誰もできませんか?

53 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:14:41 ]
できますよ

54 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:17:20 ]
>>53
ではお願いします

55 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:18:07 ]
やです

56 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:19:54 ]
>>51
そこは省略したんだけど、存在しない場合はreturnせずに続行でいいのか?

57 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:20:05 ]
>>55
テンプレ読んでください
同意できないならレスしないでください
邪魔なだけですから

58 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:22:41 ]
>>56
テキストファイルが存在するかどうかのチェックをするメソッド内の文なんです
最終的にboolを返すようにしてほしんですが

59 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:23:38 ]
少しは自分で考えろよ

60 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:28:52 ]
>>59
考えてここまで短くしました
先輩方ならもっと短く出来るのかなと思いましたが
どうやら無理っぽいですかね?

>>1「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
あと、これなんで、嫌なら来ないでください
私みたいな初心者煽ってても時間が勿体無いだけですよ



61 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:34:34 ]
>>60
いいえ可能です

62 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:37:44 ]
優しいの定義は人それぞれだしな。

return File.Exists(file_name) && file_name.EndsWith(".txt");

でいいな。

63 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:41:01 ]
何を言おうが所詮2ちゃん。
煽られるのが嫌なら、MSDN フォーラムでも行けよw

64 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:41:31 ]
>>62
すごいです。一行でできるなんて驚きです
この場合は三項演算子いらないんですね?

やっぱりできる人は口先だけじゃないですね
三項演算子とか言ってた人は結局無能の荒しと証明できたということですね

ありがとうございました。

65 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:43:31 ]
どういたしまして。

66 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:43:34 ]
>>63
2chだから許されるのと、貴方に良識がないのとは別問題ですよwww
バカはどこ言ってもバカ

できるひとはどこ言ってもできるんですよねー
こういう常識的なこともわからないで子供じみたことしか言えないなんて
無能のバカはどうしようもないですねw

67 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:45:06 ]
>>66
2chだから許されるのと、貴方に良識がないのとは別問題ですよwww
バカはどこ言ってもバカ

できるひとはどこ言ってもできるんですよねー
こういう常識的なこともわからないで子供じみたことしか言えないなんて
無能のバカはどうしようもないですねw

68 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:46:45 ]
コピペした時点で敗北宣言ととりました
わたしの勝ちですねw
バカを論破するなんて容易いわw

69 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:46:52 ]
煽られてんのにわざわざ答えを書いてやるって・・・。
おまえらってほんと優しいのなw

70 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:47:25 ]
論破()笑



71 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:48:21 ]
朝っぱらから暇なんだな
そろそろ出勤しろ

72 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:48:30 ]
>>62の方なら私の1000行のプログラムも100行ぐらいで書いちゃうんだろうな
しかもわかりやすく・・・・本当に実力のあるひとは違いますね

73 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:49:53 ]
実力のある人は既に書かれたものを探します
一番良いのは何も作らないこと

By CodeComplete

74 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:50:30 ]
>>72
無能自慢はしなくていいですよ

75 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:54:37 ]
>>73
これってほんと真理ですよねー
自分は探すのが下手なんだなー

76 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 07:55:40 ]
そりゃ無能でしょうからね

77 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 09:14:28 ]
みんな優しく答えてくれてるじゃないか。
次スレの>>1には
回答者を煽るような質問者は相手をしないようにしてください。
って追加しておくべきなんじゃね?

78 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 09:25:04 ]
なんとか.TXTってファイル名で試して見ろやw

79 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 09:28:05 ]
どっちかというと
バカは答えないように!
って加えたほうが適切だろ。

>>47とか>>49って
boolを返却するって事自体が理解できてないノリじゃん?

80 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 09:32:22 ]
47って?から後ろ要らなくね?



81 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 09:40:37 ]
>>79 の後半2行が云わんとしてるのは、まさにその事!

82 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 09:43:10 ]
;は要るよ

83 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 09:47:49 ]
あげ足取りは要らないけどね

84 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 09:48:23 ]
ソースの行数が少ないのとプログラマとして優秀なのは無関係だよなー

85 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 09:48:27 ]
>>47 >>49は if ((a > b) == true) とか書いちゃう人なんだろう。

86 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 09:52:53 ]
>>85
おっと、そういうコードを提示した>>44を忘れちゃいかん。

87 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 10:02:22 ]
>>44は質問者だから問題なし。
自分の書いたコードをちゃんと提示してるのだから立派なものだよ。

88 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 10:19:57 ]
自己弁護乙

89 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 10:24:19 ]
>>44はなかなかの釣り師だな

90 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 10:39:12 ]
そうだね^^



91 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 10:42:10 ]
>>47 >>49 さん、そんなに必死にならなくても。

92 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 10:47:10 ]
RegexでURLを取り出すためにサイトから正規表現コピペしてきたんだけどURLを拾えなかった
正規表現のエンジンってC#用とかJava用とかで別物なの?

93 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 10:48:54 ]
その正規表現を書け

94 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 10:51:18 ]
(https?:¥/¥/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)

95 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 10:52:34 ]
ネットに転がってるのはperl系のが多いね。
C#やJavaはposix系だったかな。
他にもunix系、GNU系とかいろいろある。

96 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 10:56:23 ]
\/\/

これじゃないの

97 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 11:11:46 ]
よく悩むんですが
フォーム上のボタンが押されるとファイルが読み込まれるというプログラムの場合

Formクラス上でファイルの有無をチェックすべきか
FileStreamなどを使ってファイル入出力するstaticなクラスで有無をチェックすべきか

どこでチェックするのが最適ですか?

98 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 11:13:57 ]
>>96
\取ったら出来ました

つ○飴ちゃん

99 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 15:39:10 ]
var x = new XElement("foo?", "bar");

上記のコードは例外を発生しますが、
Xmlに使えない文字をエスケープするにはどうしたらよいでしょうか?


100 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 15:51:25 ]
var x = new XElement(@"foo?", "bar");



101 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 16:18:38 ]
えっ?

102 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 16:33:27 ]
static class hogeB
{
  static public List<string[]> GetList()
  {
    List<string[]> data=new List<string[]>();
    return data;
  }
}

hogeAクラスでhogeBクラスより受け取ったdataの中身がからっぽなんですがなぜでしょうか?

103 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 16:35:08 ]
>>102
からっぽって?
要素数0のリスト返してるだけじゃん?

104 名前:103 mailto:sage [2009/06/25(木) 16:39:32 ]
すいません。受け取り側のプログラミングミスでした

105 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 17:35:54 ]
>>99
XMLに使えない文字と言っても要素名に使えない文字と普通のテキストノードに使えない文字は別だしな。
標準には禁止文字をエスケープする手法は特に定義されてないはず。
XmlSerializerは_xXXXX_形式でエスケープしてるけど。
ざっと見た感じ.NETの標準ライブラリではXMLの無効文字コレクションや判別メソッドは公開されてないなぁ。

106 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 19:04:28 ]
タイトルバーの最大化ボタンを消す方法を教えてください。
  MaximizeBox = false;
だと、押せなくなった色の薄いボタンが見えてるので、
これを完全に消したいのです。

107 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 19:07:47 ]
>>106
フォームのスタイルを変更する

108 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 22:06:55 ]
ちょっとちょっと回答者さんいないじゃん
早く帰宅して回答してよ

109 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 23:24:09 ]
TransparencyKeyを指定して不定形フォームはできたのですが、
それにドットごとに不透明度を変える方法を教えてください
argbでアルファ付きのBitmapは作れましたが、
BackgroundImageに入れてもアルファが効きません
Opacityだと全ドットの不透明度が同じになります

110 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 23:38:02 ]
C++/CLI VS2008ですが、WinFormはこちらで聞けと言うことなので。
Forms.Timerクラスの質問です。

Form上のボタンをクリックしたら1秒毎にメッセージ表示はできましたが、
タイマーイベントハンドラ関数からのFormクラスのメンバ関数の呼び方がわかりません。
”静的メンバ関数の呼び出し方がちがう”とのコンパイルエラーがでてしまいます。
どのように呼べばいいのでしょうか?




111 名前:デフォルトの名無しさん [2009/06/25(木) 23:39:36 ]
C++コンパイラが吐くエラーの話なんだからC++スレで聞け。

112 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 23:51:27 ]
>>109
無理
Regionでどうにかすれ

113 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 23:59:49 ]
>>112
Win32API呼んでも無理ですか?
Yahoo Widgetとかだとアルファ付きpng表示させるだけであっさり実現できるので
何らかの方法はあると思うのですが(Win32APIとか?)
そもそもRegion使っても不定形フォームができるだけで
フォームのドットごとの不透明度とはなんら関係ないと思いますよ

114 名前:デフォルトの名無しさん [2009/06/26(金) 00:12:49 ]
C++もC#もロクにできないのにC++/CLIなんかに手を出すな
あれは両方完璧に使える人が嫌々使う言語だ

115 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 01:13:37 ]
>>113
昔VC++でそういうウィンドウを作ったことあるな。
たしかWin32APIのUpdateLayeredWindow()てのを使った。
C#でやってる人もいるんじゃね?
とりあえずC#とUpdateLayeredWindowで検索してみるといいよ。
いい方法見つかったら教えてね(はぁと

116 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 07:36:33 ]
DataGridViewにデータを渡して表示する場合
データをどういう形式するのが一般的なのでしょうか?

List<string[]>のようなデータ形式をforeachなので一つ一つ
x,yでセルを指定してデータを入れているのですが
どうも非効率的というか、処理も遅いような気がします

よろしくお願いします

117 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 08:46:31 ]
BindingSourceをバインディング

118 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 09:33:03 ]
手抜きだけど、匿名型のシーケンスをDataSourceに入れてAutoGenerateColumns=true

って、DGVで出来たかな

119 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 12:32:06 ]
>>115
WinFormsとUpdateLayeredWindowは相性が悪い。
上手くやる方法があるんだったら、俺も教えてほしいぐらいだ。

WPFなら簡単にできるので、
WPFに移行する事をお勧めするよ。

120 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 12:48:20 ]
dataGridView1.CurrentCell.ColumnIndex

ヘッダ選択されているときも値が0なんだよな
-1とかにしてくれればいいのに面倒だな



121 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 13:12:52 ]
C# 2.0
WindowsFormで質問です。

DataGridViewを作成し、カラムが何もない状態で動的に行列を追加しようとしています。

DataGridViewColumのオブジェクトインスタンスを生成し列追加を行った後
DataGridViewRowを同じDataGridViewに追加しようとすると

DataGridView コントロールの列のうち少なくとも 1 つにセル テンプレートが指定されていません。
というエラーが実行時に発生します。

この現象を回避するにはカラムにあるセルテンプレートに何か入れてやればいいと思うのですが、
どのように設定してやればいいのか分からない状態です。
回避策やヒントになるサイトなどありましたらお教え願えませんか?

122 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 14:47:30 ]
dgvはほんとわかりにくい

123 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 14:50:06 ]
>>121
どんなコード書いたの?行列の追加はたったこれだけだよ。
いちいち型とか指定しなくても、枠だけはすぐに作れるはず。

dataGridView1.Columns.Add("name1", "title1"); //列の追加
dataGridView1.Columns.Add("name2", "title2"); //列の追加
dataGridView1.Columns.Add("name3", "title3"); //列の追加
dataGridView1.Rows.Add(3); //行の追加

124 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 14:59:13 ]
VSの機能で国際化してみたのですが、これだけではダイアログなどのデザイナで文字列を設定できないものに対して国際化できなかった。
それで言語別に自分でリソースファイル足したのですが、自分で足したファイル(全言語分がメインアセンブリ内に……)とデザイナが自動で作ってくれる言語別のDLLファイル(こちらはサテライト)が別々になってて気持ち悪いのでこれらをまとめる方法が知りたいです

125 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 15:15:38 ]
>>123
こんなコードです
変数定義はループの外で定義してあります

for(int i=0; i< data.Lenght;i++)
{
col = new DataGridViewColumn();
col.HeaderText = data[i].Name;
col.Tag = data[i].Key;
dgv.Columns.Add(col);
}

for(int i=0; i< datas.Lenght;i++)
{
row = new DataGridViewRow();
row.HeaderText = data2[i].Name;
row.Tag = data2[i].Key;
dgv.Rows.Add(row);

126 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 15:25:16 ]
dvg..ColumnCount=data.Length
foreach (Data d in data)
{
dvg.Columns[idx].Name = d.Name;
dvg.Columns[idx].Tag=d.Key
idx++;
}

127 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 15:27:47 ]
>>126
なるほど
グリッドに追加させたカラムに関しては勝手にテンプレートが適用されるという解釈ですか?

128 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 15:44:03 ]
どうかな

129 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 17:17:28 ]
>>125

>>121 で、警告されたエラー そのまま でしょ。
>DataGridView コントロールの列のうち少なくとも 1 つにセル テンプレートが指定されていません。

col のCellTemplateプロパティが設定されていないから。
DataGridViewTextBoxCell とか使いたいセル形式を指定してやれば、いいんじゃない?

MSDN見れば、そっくりのコードが例にでてると思うけど…

つか、普通こんなやり方するよりDataTable作って、DataSourceにぶち込んでやるのが
一番、手っ取り早いし、一般的なやり方ではないの?


130 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 18:04:35 ]
こんにちわ




131 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 20:09:52 ]
Visual Studio 2008を使っていると、たまにソリューション構成のところがグレーアウトして
Debug/Releaseが選択できなくなるんですが、その条件がよくわかりません。
どういう場合に選択できなくなるんでしょう?

132 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 21:37:31 ]
>>131
デバッグ中とか。裏でアプリが動きっぱなしになってないか?

133 名前:131 mailto:sage [2009/06/26(金) 23:50:02 ]
>>132
Visual Studioを一旦終了して開き直しても変わりません。
オプションを開いて「ビルド構成の詳細を表示」をチェックするとDebugが選べるようになるんですが、
こんな深いところにある設定を無意識にうっかり変えてしまう可能性は低いと思います。
もしかしてキーボードショートカットや、ツールバーのアイコンから設定が変更できたりするんでしょうか。
とくにカスタマイズはしていません。

134 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 23:51:45 ]
裏でアプリが動きっぱなしになってないか?

135 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 06:21:54 ]
C#8 EE
クラス名にマウスポインタあわせると簡単なTIPSが表示されるけど
あれを日本語にできないんでしょうか?
前は日本語表示されてたはずだけど、3.5日本語Languageインストールされているのに
英語のまま

136 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 06:22:47 ]
パッチがあとから出てるから探してみて

137 名前:135 mailto:sage [2009/06/27(土) 06:40:48 ]
お願い検索キーワード教えてください

スニペット c# 2008 日本語化

で検索してもみつからない

138 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 06:48:23 ]
スニペットじゃなくてインテリセンス…

139 名前:135 mailto:sage [2009/06/27(土) 06:57:07 ]
>>138
一発で見つかりましたwお手数かけました!

140 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 09:59:32 ]
TestDriven.net で最後に実行したテストを再実行するショートカットってない?




141 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 11:58:34 ]
newキーワードが適用できる型と出来ない型ってどう違うの?

142 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:02:06 ]
どんなんを指してるのか分からんが
コンストラクタを公開してないとか

143 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:05:06 ]
動的生成させたいかどうか

144 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:13:20 ]
もっとやさしくおしえて^^

145 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:21:48 ]
アホには無理

146 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:24:47 ]
オブジェクトになるやつとならないやつ

147 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:26:54 ]
もっとやらしくおしえて^^

148 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:27:43 ]
>>142-143
うまく説明できないけれど・・・
VisualStudioでnewとスペースの後に何か文字を入力すると候補が出てくるけど
適当に選んで ( を入力しても引数とかの表示のポップアップ出てこなくて
MSDNでその型名検索してもどこがnewできる型と違うのか良く分からないので
そういうのをC#使って調べるにはどうしたらいいのかな、的なことです

149 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:28:13 ]
調教が必要なやつと必要ないやつ

150 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:31:43 ]
コンストラクタを公開してるかどうか



151 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:33:09 ]
抽象クラスかどうか

152 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:34:01 ]
>>148
class CannotCreat { CannotCreat(){} }
こういうことだ。

153 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:35:05 ]
静的クラスかどうか

154 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:37:08 ]
>>148
MSDN メンバ一覧を見る。
例えばSystem.Net.HttpWebRequestクラスならコンストラクタに鍵のアイコンがついてる。
つまりコンストラクタがpublicじゃないからnewを呼び出せない。
System.Drawing.Imageクラスならそもそもコンストラクタが一覧に載っていない。

それから、クラスの解説の構文にabstract classかstatic classとあればそもそもそれのインスタンスは作れない。

155 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:39:49 ]
鍵のアイコンとかアイコンの意味の一覧ってある?
探してるんだけど見つからない。

156 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:40:38 ]
ある。ないわけがない。

157 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:46:43 ]
ならば提示して見せよ

158 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:48:07 ]
msdn.microsoft.com/en-us/library/y47ychfe.aspx

159 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:51:38 ]
型とクラスの違いをおしえてくさい

160 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:52:54 ]
名前



161 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:53:27 ]
>>154
このページの一番下の明示的インターフェイスの実装っていうのアイコンが鍵マークだからnewを使えないってこと?
明示的〜のところが空欄な時も無理、と
ttp://msdn.microsoft.com/ja-jp/library/system.net.httpwebrequest_members(VS.80).aspx
GetType( 型名 ) っていうのだとIsAbstractっていうのはあったけどIsStaticっていうのはないからこれでは無理なのかな

162 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:55:16 ]
>>158
ありがとうございます。

163 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 13:00:15 ]
どうやらコンストラクタが何か分かってないようだが

164 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 13:00:52 ]
>>161
一番したのは鍵じゃなくない?
インターフェースのマークだと思うけど。
もちろんインターフェースはnew出来ないけど。
>>154が言っているのは一番上の鍵の付いたコンストラクタだと思うんだけど。

165 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 13:02:59 ]
>>164
あ、なるほどorz
プロテクトコンストラクタっていうのの下が隙間相手たから他のところ探してました

166 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 13:06:39 ]
msdn.microsoft.com/ja-jp/library/y47ychfe.aspx
ja-jpにしてみた

昔はコンストラクタをインストラクターとよく言い間違えてたな

167 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 13:07:43 ]
コンストラクタがわかってないならオブジェクトもわかってないな

168 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 13:09:43 ]
やべぇ。鍵マークはprivateだと思ってたよ。protectedだったのか。

169 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 13:23:27 ]
>>163,167
うん多分良く分かってない・・・
なんとなくnewが使えるのはクラスだけっぽい気がしてきたけど
GetTypeメソッド使ってnewがその型に使えるかどうか調べたい時は
IsClassとIsPublicがtrueで、IsAbstractとIsInterfaceとIsEnumがfalseの奴を選んであげればいい、のかな・・・?

170 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 13:33:53 ]
ん? コーディング時じゃなくて実行時に知りたいってこと?



171 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 13:42:09 ]
>>170
実行時というか、論理的?に調べるというか
MSDNでそう書いてあるから、じゃなくて、ちゃんとプログラムとして実行してみて
この型はこうなってるからnewが使える、使えない、みたいな感じのことができるようになっておきたいなと・・・
いまだとちゃんとnewが使える理由理解してないから

172 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 13:55:03 ]
newは「使える/使えない」じゃなくて「使わなきゃいけない/省略してもいい」かどうかって
視点で見た方がいいかもよ。

173 名前:デフォルトの名無しさん [2009/06/27(土) 13:56:27 ]
簡単だ
newするスコープからアクセス可能なコンストラクタが存在する
かつ、抽象クラスでも列挙型でもない

174 名前:デフォルトの名無しさん [2009/06/27(土) 14:00:26 ]
訂正
列挙型はnewできる
というか値型の場合はコンストラクタの有無にかかわらずnew可能

175 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 14:26:36 ]
そういうのって後で自然に分かってくると思うんだが

176 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 14:32:20 ]
>>171
もういいよ。C#の文法を勉強したくないということだけはよく分かった。

177 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 14:48:13 ]
>>171
まず、newは

・ 値型のデフォルト値の作成(例:new int(),new BindingFlags())
・ コンストラクタの呼び出し(例:new StringBuilder())

の2つの用途で使える事を押さえておく必要がある。

前者は引数なしのnewで値型なら必ず使えるし、参照型では絶対に使えない。

後者は、値型なら引数1個以上、参照型なら引数0個以上のnewで、
コンストラクタが定義されていれば使えるし、定義されていなければ使えない。

ただし、使えるといってもどこからでも使えるわけではなく、
例えばアクセス修飾子がprotected(鍵マーク)ならnewする型の内部と、その派生クラスの内部でしか使えない。

このあたりはメソッドやプロパティと同じ仕組みなので、newだけ特別という事は無い。
これで理解できないなら、C#を基礎から学び直せ。

178 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 14:51:40 ]
あと、インターフェイスは参照型だが、コンストラクタを定義できないので
newできない、という事になるが、
例外として、COM関連のインターフェイスはnewできるものもある。

(例:Microsoft.Office.Interop.Excel.Application)

たぶんCoClass属性のおかげだと思うが、
俺もよくわかって無いので自分で調べてくれ。

179 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 14:54:27 ]
簡単には、GetConstructorしてpublicなやつがとれるかどうか。
Reflecterで調べてもいいけど。
※ただしそれが絶対というわけではない。

まあ普通はMSDNとかドキュメントで仕様を見なきゃいけないんだけどね。
まあ確認したいってことなら。


180 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 14:55:42 ]
ところで全然関係ないけど、インターフェイスのnewを普通のコードでサポートしたいことがあった。
※単に文法的な話なだけだが。




181 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 15:09:30 ]
>>173,177
あ、列挙型にnewを使う時は引数を指定できない=1番目の定数の作成に固定されてるから
VisualStudioで型名の後に(を入力しても何もポップアップされなかったのか!そんなの当たり前だから表示するはずないだろ的な。
つまりVisualStudio自体はちゃんとnewの後に来てもおかしくない型名だけ表示してくれてたんだ
やっとちょっとすっきりした、ありがとう

>>176
ごめん

182 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 15:26:10 ]
> VisualStudioで型名の後に(を入力しても何もポップアップされなかったのか!

ん?列挙型でも(の後にポップアップが出てくるぞ?

例えば、 enum A{} なら

new A(

と入力した直後に

A.A()

とポップアップする。(引数0個のnewが使えますよ的な意味で)

183 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 15:35:50 ]
>>182
あれ、Intとかだとそうなるけど、列挙型だと俺のとこではならない・・・
例えば上で出てる
System.Reflection.BindingFlags a = new System.Reflection.BindingFlags
まで書いて(入力しても無反応
VisualStudio2008のSP1当ててるから最新のはずなんだけども

184 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 15:42:18 ]
>>181
VC#のインテリセンスはお利口だから使える候補だけ出てくれるよ。
出てくれない時はほとんどの場合自分のミス。
ほとんどっていうか今までにインテリセンス様が間違った事がないけど、たまーにあるらしいっていうのも聞いたことある程度。

185 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 15:55:15 ]
さすがインテリ

186 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 16:21:46 ]
>>184
VS2008だと、拡張メソッドがらみでジェネリック引数制約が複雑に混ざるとダメだね
VS2010なら大丈夫なんだけど

187 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 16:32:34 ]
また重くなりそう

188 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 18:50:31 ]
.NET 3.5 SP1の入った環境で、コンボボックスに
AAA
BBB
CCC
というデータが入ってる時、キーボードの「A」を押すと自動的に「AAA」が選択されるという
ショートカット(?)機能を止めたいのですが、どのプロパティを書き換えればいいのでしょう?

189 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 19:01:53 ]
>>188
ああ、それね。以前オレも同じ問題に突き当たって結局解決できなかったから、
コンボボックスのプルダウンが表示されていない状態のときは履歴を削除するかたちで対応した。

正しいやり方を知ってる人があれば教えてほしい。

190 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 19:12:06 ]
KeyPressでHandledしてしまえばいいかも



191 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 19:52:02 ]
正確には覚えてないんだけど、
親フォームのKeyPreviewをtrueにして、親のKeyDownイベントで現在の値を保存、
コンボボックスのSelectionChangeCommittedで保存しといた値を再設定してやるんだったかな。
なんかそんな方法で擬似的にキーボードショートカットが使えないように
見せかけた覚えがある。
ちゃんと動くようになるまで、かなり試行錯誤した覚えが。

192 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 19:55:30 ]
>>190
KeyPressだとたぶん手遅れになる。やるとしたらKeyDownじゃないかな。

193 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 20:25:23 ]
>>192
全角文字でも頭出しできるんだぜ?

194 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 20:43:28 ]
>>191
うーむ。もうちょっと確かな情報だとありがたい
>>192,193
違うんだな。KeyPressのイベントのあとで補完作業が行われるんだ。だから困る。

195 名前:デフォルトの名無しさん [2009/06/28(日) 01:50:16 ]
アクセス装飾子と「override」(もしくは「virtual」など)の順番って、
「(アクセス装飾子) override」が一般的なのかな?
俺はoverrideの方を最初に持ってくる方が好きなのだが、
エディタが自動的に上記の順番に変えちゃうことがあるし、
解説サイトとかでも同じようにやってるので、何か意味があるのだろうか

196 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 01:59:47 ]
>>195
まあ、順序にそれほど深い意味はないと思うけど、
「他の人とそろってる」ってのは大事。
そういう意味では、エディタの言うこと聞いとくのが一番。

「自分はこっちの方が好き」とかいう理由で順番変えない方がいい。
解説サイトも Visual Studio のデフォルトに合わせてるだけだと思う。


197 名前:デフォルトの名無しさん [2009/06/28(日) 02:24:27 ]
>>196
なるほど
エディタに変更されるたびに自分流に書き換えるのは非効率的だし、
統一という意味でも、エディタの方に合わせておいた方がよさそうだ
アクセス装飾子を先に書くようにするよ
サンクス

198 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 10:11:30 ]
コンボボックス内のリストボックスに LB_FIND が来るんで、
そいつを無視するんだったかな・・・。

デフォルトでは大文字小文字を無視するんで、LB_FIND の代わりに
LB_FINDEXACT でごにょごにょした記憶があるな・・・。

199 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 00:35:36 ]
初歩的なことですみません。
pictureBoxを配置し、イメージを表示したとき、
そのイメージのパスを取り出すには、
なんとしたらよいでしょう?
MessageBox(pictureBox.ImageLocation);
がNullなのです。


200 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 00:48:03 ]
そのプロパティはLoad使ったときしか使えない

>Load メソッドを呼び出すと、ImageLocation プロパティが上書きされ、メソッド呼び出しで指定された URL が ImageLocation に設定されます。



201 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 00:49:17 ]
明日の6/29(正確には今日ですが)に、衛星を使って採取された世界中の標高データが無料で
公開されるとのことです。

【社会】人工衛星を使ってかき集めた、世界の「標高データ」を無料公開
tsushima.2ch.net/test/read.cgi/newsplus/1246160564/

そこで早速この標高データを使ってプログラムを組んでみようと思っています。

データは"GeoTIFF"というTIFF画像ファイルの拡張版フォーマットで提供されるようです。
標高データに加え、そのマップの経度・緯度情報といった付加的なヘッダが付け足されたのが
"GeoTIFF"らしいです。
※GeoTIFFに関して詳しくは→trac.osgeo.org/geotiff/

C#でこのGeoTIFFを読み込みたいのですが、なにか便利なメソッドやライブラリはありますか?
GeoTIFFに対応していなくてもTIFFファイルやTIFFファイルのヘッダを読み込めるメソッドが
あれば是非活用したいです。

202 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 00:51:15 ]
>>201
そもそも.NET クラスライブラリがTIFFを読めるわけだが?
ただ抽象化されていて、各画像フォーマットごとの詳細なメタデータが取れたかどうかは定かではない。

203 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 00:53:34 ]
ついでに「詳しくは」って出したサイトに libgeotiff って書いてあるのが見えないのか?

204 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 02:07:34 ]
>>200
thanks



205 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 11:06:50 ]
広告だと思う
203までが

206 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 15:04:41 ]
フォームにパネルとエディットボックス類を配置し、
パネルにDirectXで編集画面を描画しています。
パネル上に描画されているオブジェクトを選択している状態で Del キーを押すと
そのオブジェクトを削除 とやりたいのですが、
そうするとエディットボックス上の文字を削除するときの DEL と区別ができません。
パネルにフォーカスを設定できればすぐに解決できるのですが...
どうすればうまく解決できるでしょうか?


207 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 15:25:57 ]
無理やり設定すれば取れないこともない。

208 名前:206 mailto:sage [2009/06/29(月) 22:58:04 ]
自己解決しました。

編集用のパネルMouseDownしたときに this.ActiveControl = null にしてエディット系のフォーカスを外し、
フォームの KeyPreview を true にして、フォームのKeyDown イベントで、
アクティブコントロールが null かつ Del キーがおされたときに
オブジェクトを削除するようにしました。


209 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 23:03:09 ]
VS2008 C#にてExcel(2003もしくは2007)を起動して表を作成しています。
C#からExcelを起動した時のみ、有効にしていたExcelアドインが使えなくなっていま
す。
Test1.xlaというアドインを事前に有効にしておき、手動でExcelを起動すると、
Test1.xlaの中にあるマクロは関数の一覧画面に表示されていて問題なく使えるので
すが、
C#からExcelを起動するとアドイン自体は有効であると表示されているにも関わら
ず、
関数の一覧画面に表示されず使えなくなってしまいます。
セキュリティは低に設定しても同じでした。

Excelのオブジェクト生成は以下のように普通のことをやっているつもりです。
Excel.Application app = null;
Excel._Workbook wb;
Excel._Worksheet st;
try {
app = new Excel.ApplicationClass();
wb = (Excel._Workbook)(app.Workbooks.Add(Missing.Value));
st = (Excel._Worksheet)wb.ActiveSheet;
以降の処理で線引いたり値を張り付けたりです。

Excel起動時にアドインをチェックして、app.Workbooks.Open(アドイン名,…)を実行
すれば関数の一覧画面に出てくるのですが、
原因が分からないので、この対処で問題ないのか不安です。
どなたか原因と正しい対処をご存じないでしょうか?

210 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 00:11:09 ]
>>208
>>207で答えてるのに事故解決化よ



211 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 00:40:31 ]
コンソールアプリでアプリが終了したときに飛んでくるイベントとか無いですか?

212 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 00:43:40 ]
>>211
全てのオブジェクトが開放されてるのにどうやってイベントよこすんだ?

213 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 00:58:30 ]
ああ、207って206へのレスだったんですね


214 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 01:15:24 ]
>>210
>>207って答えてるうちに入るんだw

215 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 04:08:44 ]
>>211
デストラクタ

216 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 10:04:27 ]
>>214
これでわからなければさらに聞けばいいだけ

217 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 10:05:20 ]
まあ実際にコード書いてみてうまくいったのを確認してから>>207書いたのだが

218 名前:201 mailto:sage [2009/06/30(火) 14:01:39 ]
>>203
> ついでに「詳しくは」って出したサイトに libgeotiff って書いてあるのが見えないのか?

ftp://ftp.remotesensing.org/pub/geotiff/libgeotiff/libgeotiff125.zip

↑のファイルの中身を見てみたのですが、見あたるのは *.c ファイルと *.h ヘッダファイルだけでした。
GCC用のプログラムのようにも見えるのですがこれらをC#で使うことは可能でしょうか?

219 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 14:12:57 ]
>>218
ヒソヒソ、アホは無視したほうがいいですよ

220 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 14:22:54 ]
>>218
libgeotiff をDLLとしてビルドして、それをC#から使えばよいのでは?



221 名前:201 mailto:sage [2009/06/30(火) 14:36:40 ]
CのプログラムをVisual Studio .NETでDLLコンパイルし、生成されたDLLファイルをC#のプロジェクトで使う
という技は聞いたことはあるのですが実際に試したことはまだ一度もありません。
初心者向けのプログラムの本にもDLLとしてビルドしてそれを他のプロジェクト中で使うという
方法を説明したものは見あたらないのですが、そういった技を解説してくれているサイトというのは
無いでしょうか?できるようになったら応用がきく気がします。

222 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 15:37:14 ]
必要なソースやヘッダを含んだVC++プロジェクトをつくる
(プロジェクトを作るときのウィザードで、ダイナミックリンクライブラリ)を選択しておく。

もしくは、適当に空っぽのプロジェクトをつくって必要なファイルを追加し、
VC++メニューからプロジェクト→プロパティ→構成プロパティ→構成の種類でDLLを選択する。

マクロ
#define DLL_EXPORT(type) extern "C" __declspec(dllexport) type __cdecl
をどこかに追加し、公開したい関数をとにかく

DLL_EXPORT(関数の戻り値の型) 関数名(引数リスト)

という形にする。(h も c/cpp も両方)
たとえば元の関数が
int hoge(const char *s) と宣言されていれば
DLL_EXPORT(int) hoge(const char *s) としておく。これで関数が公開される。

ビルドする。

DLLできる。

dependency walker というフリーソフトに突っ込んで、
意図した名前の関数が公開されているか見る。

まずはここまでだな。


223 名前:デフォルトの名無しさん [2009/06/30(火) 16:51:44 ]
クラスからフォーム1のインスタンスを作製し
そのフォームからクラスのメゾッドにアクセスしようとすると
「静的でないフィールド、メソッド、またはプロパティ 'Test()' で、オブジェクト参照が必要です」
とエラーがでてメゾッドを実行できないのですが、何が間違っているのでしょうか?


224 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 16:52:54 ]
インスタンス.Test()ってやってる?
クラス名.Test()じゃなくて

225 名前:223 [2009/06/30(火) 17:04:42 ]
ありがとうございます。
クラス名.Test()しておりました・・・そのせいですね。。
しかし、あるソフトのプラグインを作りたくてやっていたのですが
インスタンス名がわかりません・・・


226 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 17:08:44 ]
そりゃあそのソフトのプラグインの説明書に出てると思うぞ・・・

227 名前:223 mailto:sage [2009/06/30(火) 17:11:38 ]
ご親切に大変ありがとうございました。
もう一度よく調べてきます。


228 名前:201 mailto:sage [2009/06/30(火) 18:36:13 ]
>>222
ありがとうございます。早速試してみます。

229 名前:デフォルトの名無しさん [2009/06/30(火) 23:02:43 ]
複数のPrintDocumentの出力結果をマージする方法とか無いですか?
要するにPrintジョブをまとめたいだけなんですけど。


230 名前:デフォルトの名無しさん [2009/07/01(水) 01:13:27 ]
オブジェクト指向言語の場合、フローチャートじゃなくて何が使われるんですか?



231 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 01:40:01 ]
UML

232 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 01:45:36 ]
UML

233 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 02:39:45 ]
UML = Ultra Man Leo

234 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 02:49:00 ]
VS2005 でツリービューを作成しているのですが「+」をクリックした時だけ
では無く、「+」の隣にある文字列がクリックされた時にもNodeを展開するには
どうすればよいでしょうか?

235 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 04:04:16 ]
>>231-233
ありがとうございます。勉強してみます。


236 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 04:06:40 ]
どういたしまして

237 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 06:32:00 ]
>>234
NodeMouseClickでTreeNode.Expand

238 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 09:49:46 ]
>>226面白い事言うね

239 名前: [―{}@{}@{}-] デフォルトの名無しさん mailto:sage [2009/07/01(水) 10:08:29 ]
C#でCompactFrameworkの書籍やサイトでお勧めってありますか?

240 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 10:42:15 ]
こっちで聞け
pc12.2ch.net/test/read.cgi/tech/1244882261/



241 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 11:07:09 ]
BinaryWriterでbyteを書き込むとAnyCPUとx64でコンパイルしたプログラムで結果が違うことがあるんだが・・・なぜ?


242 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 11:08:13 ]
>>237
ありがとうございました。

243 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 11:09:43 ]
>>241
エンディアンの違いじゃね?

244 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 11:37:02 ]
LargeIcon、オーナードロー状態のListViewでアイテム毎の描画エリアの大きさ変更するにはどうしたらよい?
LargeImageListのImageSizeを弄ると大きさが変わるみたいだが指定した数値になるわけじゃないので厳しい。
LVS_OWNERDRAWFIXEDはReportViewじゃないと使えないので駄目。

245 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 11:39:31 ]
>>241
C#でおk

246 名前:234 mailto:sage [2009/07/01(水) 11:42:36 ]
>>237
NodeMouseClickイベントの中で次のコードを書いたところ
「+」の隣にある文字がクリックされた場合には、正常に
展開・縮小をする事が出来る様になったのですが、
逆に「+」がクリックされた時には、正常に展開・縮小をする事が
出来なくなってしまいました。

※不正な挙動を細かく言いますと、縮小中のノードの「+」部分を
マウスでした状態(左ボタンを押しっぱなし)では展開され、
マウスを放すと縮小されてしまいます。

⇒次に続きます。

247 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 11:43:20 ]
>>241
元のデータは同一なの?
x86もやってみた?

248 名前:234 mailto:sage [2009/07/01(水) 11:43:32 ]
private void tvTop_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
 Point pntMouseClick = new Point();
 pntMouseClick.X = e.X;
 pntMouseClick.Y = e.Y;
 tvTop.SelectedNode = tvTop.GetNodeAt(pntMouseClick);

 //ノードが展開されていない場合には展開する。
 if (!(tvTop.SelectedNode.IsExpanded))
 {
   //選択されたノードを展開する。
   tvTop.SelectedNode.Expand();
 }
 else
 {
   //選択されたノードを折り畳む。
   tvTop.SelectedNode.Collapse();
 }
}

どうすれば「+」がクリックされた時にも「隣にある文字列」
がクリックされた場合にも意図した動きをする様になるでしょうか?

249 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 11:52:49 ]
TreeView.HitTestでどこクリックされたか調査

250 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 18:14:53 ]
Windows の標準操作から外れるアクションになるのはお勧めできないけどな



251 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 18:53:19 ]
Formの最大化ボタンを押したらフルスクリーン表示に切り替えるコードの実装を書いてるんだが、
ウィンドウスタイルを設定するときにIntPtrがオーバーフローを起こすようで、
元に戻したらウィンドウのシステムアイコンが左右逆になっちゃって笑えるぜw

あとひと踏ん張り……。

252 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 19:57:28 ]
いじり方間違っている感がするけどそれはそれとして
なんでその処理でウィンドウスタイルなんかいじってる
んだ?

253 名前:sage [2009/07/01(水) 20:49:14 ]
ダウンロードしたフリーウェアのプログラムに自分で作ったプログラムを追加しましたが自分のプログラムの所だけ
実行してくれません。express editionのソリューションエクスプローラで自分のプログラムは追加
出来た様に見えるのですが。D&Dしてリビルドしました。何か他にやる事がありますか?
自分のプログラムの部分は今はhello worldにしてあるので間違っては無さそうですが。

254 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 20:56:01 ]
エスパーが必要だな。
それか、そのフリーウェアの作者に聞いたら?

255 名前:デフォルトの名無しさん [2009/07/01(水) 20:56:20 ]
まずはC#の入門書を買ってこようか

256 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 20:58:50 ]
253です。プログラムに追加ではなくプログラムが入っているプロジェクトに入れました。

257 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 21:00:03 ]
とりあえずそのフリーウェアをさらしてみたら

258 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 21:07:29 ]
スタートアッププロジェクトの設定ができてないんじゃ

259 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 21:10:55 ]
プロジェクトに追加したんじゃなくて、単に同じVSで開いただけなんだろうw

260 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 21:15:54 ]
ArrayListyからList<>に入れ替えてForEachするのと
ArrayListでforeachするのってどっちがいいの?



261 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 21:16:33 ]
誰か訳してくれ

262 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 21:19:02 ]
入れ替えるだけ無駄

263 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 21:19:18 ]
Which is good as for doing foreach with the replacement with List<>
from ArrayListy, doing ForEach, and ArrayList?

264 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 21:20:24 ]
英語でおk

265 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 22:32:38 ]
English will do.

266 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 22:49:40 ]
>>252
フレームが残っているとフルスクリーン時に全画面に描画ができないから。
C++から移植したのでウィンドウスタイルを直接APIで書き換えていた。
.NET上でもいじれるんじゃないかと気づいたので、明日書き換えてみよう。


267 名前:234 mailto:sage [2009/07/01(水) 23:26:24 ]
>>249
遅くなりましたがお陰様でやりたい事が実現出来ました。
どうもありがとうございました。

268 名前:デフォルトの名無しさん [2009/07/02(木) 06:08:31 ]
型付データセットを使ったアクセス型のデータベース
でソフトを作っていますが、テーブルを増やすことに
なりました。新たにテーブルを増やすともう一度データベース
を構築しなくてはならないので、他のテーブルとのリレーション
はないことから、別のデータベースファイルを作成し
別個にデータベースを構築しようと思っています。

ひとつのソフトでいくつものデータベースファイルを
読み込むような構成としても大丈夫なものでしょうか。


269 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 07:13:05 ]
別に OK だけど、
「テーブルを増やすとデータベースを構築しなくてはならない」ってのは、意味不明。

そんなん、クエリーひとつ流すだけだし。まさか、リードオンリーで使ってる
わけでもあるまい?

270 名前:252 mailto:sage [2009/07/02(木) 10:51:49 ]
>>266
なんとなくやっぱりな感じだけど…
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/199fullscreen/fullscreen.html
もとが C++ らしいし WM_SYSCOMMAND 周りの話はいいよな

ちなみにスタイルいじりは SetWindowLongPtr じゃなく、
CreateParams をオーバーライド、UpdateStyles でやるのが正道。



271 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 11:44:31 ]
C#でデータベースにアクセスする方法で、本だとデータソースの追加って奴使う方法が載ってます。
ネットだとそれせずにソース上で全部記述して処理する方法をよく見るんですけど、
この2つの方法って利点弱点ってあるんでしょうか?
こっちの方法はやめとけってのあったら教えて下さい。
データソースの追加って奴の方が楽なように感じられないでもないような気も。
DBMSはSQL ServerとAccess両方使う予定です。

272 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 11:47:12 ]
データソース使うと便利なメソッドとかあるからプログラミングが楽だけど
動作が重いってイメージ
オレは初心者だから、上級者から見ればたぶん違う

273 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 11:47:57 ]
スクリーンショット何枚も撮って貼り付けるよりコード示す方が手っ取り早い

274 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 11:52:35 ]
>>270
なるほど……。参考になる。ありがとう。
URLの記事は知らなかったけど、ウィンドウスタイルを書き換えるのをやめてFormBorderStyleを変更するようにした。
コードが簡単になったし、変な動きも止まった。

でもフルスクリーン時にマウスクリックをすると挙動がおかしくなる。
テクスチャの描画(Direct3D)をするとフルスクリーン/ウィンドウの切り替えができない、
など色々とおかしいところがあるのでまだ調整中。

275 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 12:41:21 ]
>>274
Direct3D?そっちかよ
その場合は D3DPRESENT_PARAMETERS 変えて Reset だろ
User32 まわりの機構を使わないで

276 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 12:51:25 ]
>>274
デバイスの再設定/モニターの解像度の変更はそのとおりだけど、
描画対象のウィンドウのフレームを変更してあげないといけない。
理由は上に書いたとおり。

これまでの変更で大体動くようになってきたけど、
フルスクリーン表示にするモニターに別のアプリのウィンドウがあるときに、
画面をクリックするとフォーカスを失っちゃうんだよなぁ。
どうもほかのウィンドウのほうが上側に来ているような気がする。
(DirectXでフルスクリーン描画するとほかのウィンドウの描画内容無視して描いてしまう)

277 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 12:52:31 ]
>>275の間違いだた。

278 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 14:23:13 ]
Web表示で困ってます。
Webブラウザで、URLを開くには、
webBrowser.Navigate(URL);
では読み込みずみのhtmlファイルを開くには?
string htmlfile = "<html><body>〜〜〜</body></html>"
みたいなのを表示するにはどうしたらよいですか?


279 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 14:29:13 ]
DocumentTextかDocumentStream

280 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 14:30:09 ]
>>272
動作が重いとなると痛いですね。
今ある本が平成14年のVisual C#.NETによる実践データベースプログラミングってかなり古い本なんで新しいの買って勉強してみます。



281 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 15:22:18 ]
>>276
やっと話が見えてきた
WM_SYSCOMMAND SC_MAXIMIZE いじってると思うけど
そのあと元処理につないで、つまり base.WndProc して
最大化させればいい気がする


282 名前:デフォルトの名無しさん [2009/07/02(木) 15:26:18 ]
画像ビューアの読み込み部分なんですが、
public Image Load(string filePass)
{
Stream fs = new FileStream(filePass, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
BitmapDecoder bf = BitmapDecoder.Create(fs, BitmapCreateOptions.None, BitmapCacheOption.Default);

Image image = new Image();
BitmapSource bsource = bf.Frames[0];
image.Source = bsource;
image.Width = bsource.PixelWidth;
image.Height = bsource.PixelHeight;
Console.WriteLine("{0}", bf.CodecInfo.FileExtensions);
//fs.Close();

return image;
}
このソースだと読み込んだファイルはオープンされたままで、
例えば名前の変更とかができません。fs.Close()をつけるといいのですが
それだと画像が表示されなくなってしまいます。
よそ様の作られたアプリだと開いたファイルに対して問題なく操作できるので、
そういった挙動にしたいのですが、どうすればいいでしょうか。

283 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 15:32:18 ]
普通はImage.FromFileとかで一気にImageオブジェクト作ってんじゃねえの

284 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 15:39:09 ]
そりゃImage違いだ。
System.Windows.Controls.Imageの話だろ。

285 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 15:43:45 ]
解説

デーコーダの作成後に bitmapStream を閉じる場合は、OnLoad キャッシュ オプションを使用します。既定の OnDemand キャッシュ オプションは、ガベージ コレクタでビットマップが必要とされ、クリーンアップが処理されるまで、ストリームへのアクセスを維持します。

286 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 15:54:32 ]
>>285
おお、BitmapCacheOption.DefaultをBitmapCacheOption.OnLoadにすることで望みの動作になりました。
ありがとうございます。素で見逃してた恥ずかしい
でもDefaultとOnLoadの違いってなんでしょう?どちらもイメージ全体をメモリ上に置くみたいなので
Defaultでもいいように思えますが。

287 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 16:02:08 ]
>>286
ドキュメントが悪い。
enum BitmapCacheOption {
Default = 0,
OnDemand = 0,
OnLoad = 1,
None = 2,
};


288 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 16:04:51 ]
mono のソースによると:
namespace System.Windows.Media.Imaging {

public enum BitmapCacheOption {
OnDemand,
OnLoad,
None,

Default = OnDemand,
}

}


289 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 16:13:43 ]
>>287-288
そうだったのか…

290 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 16:22:06 ]
横からだけどOnDemandってどゆこと?ドキュソみてもよくわからん



291 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 16:44:57 ]
>>279
できました。ありがとう。


292 名前:デフォルトの名無しさん [2009/07/02(木) 16:55:26 ]
>>271
データソースの追加だと型付データセットができる。
これで、テーブル名をプロパティのようにアクセスできる。
作成にとても楽だけどわけわからんコードがたくさん生成
されるのでコード単位での操作は難しい。

293 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 17:23:28 ]
webBrowserでクリックしたとき、クリックしたURLを取得するには、どうしたらよいでしょう?
マウスクリックイベントをイベントフラグとして登録するとかですか?


294 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 17:38:10 ]
>>292
参考にさせてもらいます。
ありがとう。

295 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 20:56:43 ]
質問です

dataGridView1[1, 1].Style.BackColor = Color.Red;
などで塗りつぶしたセルを元の状態に戻すにはどうしたらよいでしょうか?

dataGridView1.DefaultCellStyle.BackColor = Color.Empty;
dataGridView1.RowHeadersDefaultCellStyle.BackColor = Color.Empty;
を試しましたが無理でした

dataGridView1[1, 1].Style.BackColor = Color.Empty;
とすればできるのですが表のすべてのセルを一気にデフォルト色に変えたい場合のよい方法が
あれば教えてください

296 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 21:03:21 ]
個別の設定の方が優先されるのは当たり前だろ、と
素直に一つずつ設定しる

変更したセルをListとかに保存しといてそれだけ元に戻す、とかの実装はどうか

297 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 01:23:20 ]
すれ違いかもしれないですが一つ質問があります。

C# or VB.net で開発したアプリはRefactorとかいうツールを使うと
簡単にコードが見られてしまいますが、
このツールを使用し逆アセンブルをしたとしてもコードの中に入れている
コメントは相手には見られないと考えても良いでしょうか?

298 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 01:24:42 ]
そんなに時間かからないからさ
自分でやってみな

299 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 01:27:50 ]
>>298
自分でやてtみて逆アセンブルは出来ましたが、
コメントは見えませんでした。

という事でコードは簡単に相手に見えてしまうが、
コメントは逆アセンブルをする悪い人にも見えない
という考えが正しいかご教授下さい。

300 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 01:40:38 ]
コメントが見られる事はないよ
ソースコードも自分が書いたそのものではなく
できる限り復元してみただけのもの



301 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:08:52 ]
>>300
ありがとうございます。
安心しました。


因みにですが、もう一つだけ質問させて下さい。
Visual Studioのアイテムボックスの右上にある「小さく注射器のアイコン」は
.Net Frameworkに用意されていますか?

自動で伸縮する奴です。
常に表示されているとウザイので、このアイコンがもし.Netに用意されているのであれば
必要な時のみ呼び出す事が出来て非常に便利だと思うのですが。

302 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:20:48 ]
注射器って、、、これ押しピンだろう
標準には無いかな、SP1のMFCにはあるが。

303 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:27:26 ]
>>302
.Netじゃ用意されてないんですね。
実現するにはどうすればよいでしょうか?

304 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 03:49:39 ]
自分でかけよ…

305 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 10:07:16 ]
>>304
用意されているのならそれを使いたいのです。

306 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 10:38:55 ]
フリーのと有料のがあった気がする

307 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 10:41:36 ]
>>305
MFCも.NET Frameworkも基本的にはライブラリなので、
ライブラリではないアイコンなんかのリソースはあまり重視されないし、記事も多くない。
インストールフォルダやDVDの中を探してあるならそれを使えばいいし、無いなら自分で探せばいい。
自分で考える前に人に聞くな。

308 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 11:06:37 ]
アイコンそのものじゃなくて、アイコンの機能というか自動で伸縮する
機能が欲しいってことじゃないのかな?

どっちにしても「自分で書けよ」って話になるけど。

309 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 11:08:31 ]
>>308
ズバリその通りです。

>>306 >>307
>>308さんのおっしゃった事そのものです。

いずれにしても、.Netではその押しピン機能は用意されていないのですね。
残念ですが自分で1から作成します。


310 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 11:14:27 ]
ドッキングウィンドウでぐぐれよ



311 名前:デフォルトの名無しさん [2009/07/03(金) 11:16:02 ]
そういうのは抵レベルなところからフレームワーク組むことになるから大変だよ
サードパーティーのコンポーネント使ったほうがいいよ

312 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 11:23:04 ]
>>311
金が掛かる。


>>310
ぐぐってみます。

313 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 11:26:56 ]
>>308,309
押しピン機能? いったい何のことだ。
さっきから要領の得ない会話をしているように思うんだが、オレの理解力が無いだけなのか。
押しピンで表現されるツールチップアイコンの機能といったら、通常は「ウィンドウを常に手前に表示」だと思うんだが?

それともドッキング可能なペインのこと言ってるのか?

314 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 11:46:26 ]
正確な名前は知らんけど、押しピンアイコンをクリックすると、
ウィンドウが自動的に隠れるのを一時的に止めることができる。

315 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 12:08:32 ]
VisualStudio2008のC#のIDEで逆アセンブリウィンドウを出す方法を教えてください。

VS2005の場合ならmsdnに書いてあったんですが、2008ではメニュー構成が変わったのか
探し方が悪いのか、見つけることができません。
ttp://msdn.microsoft.com/ja-jp/library/a3cwf295(VS.80).aspx

ヘルプに「逆アセンブリウィンドウ」という項目はあるのですが、クリックしても
「インデックス エントリのトピックがありません」というエラーが出ます。

316 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 12:13:02 ]
とりあえず「プッシュピン」らしい

317 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 12:28:33 ]
>>315
右上にその他のバージョンについてはってあるだろ、まあこのページは中身同じだけど。
> デバッガは動作中であるか、中断モードである必要があります。
はおk?

318 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:13:37 ]
>>317
ちゃんと[デバッグ中]にはなっているんですが、
メニューに[逆アセンブリ]が出てきません…

何か手順が違うんでしょうか…
ttp://windyakin.if.land.to/src/up38_1372.png

319 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:15:36 ]
>>317
あ、使っているのはstandardエディションです。

320 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:20:35 ]
Express Editionって書かれてるように見えるが…?



321 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:24:27 ]
>>320
最初Expressを使っていたんですが、そのあとStandardを買って上書きで入れました。
タイトルバーがExpressのままなのは謎なんですが、
もしかして、原因はここらへんにあるんでしょうか。

322 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:30:27 ]
上書きなんてできたっけ…?
一旦全部アンインストールしてインストールし直せ

323 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:30:56 ]
とりあえず起動してるのはExpressだな

324 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:39:53 ]
Visual StudioとVisual Studio Expressは別のアプリだから上書きでは入らないと思うぞ。
すなおにExpressをアンインストールしる。

325 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:43:59 ]
買ったのはStandardのアップグレード版です。
最近になってExpressからでもアップグレードできるようになったと
MSのページに書いてあったので入れてみたんですが、
一度消さないとダメなんですか。やってみます。

326 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:58:23 ]
アップグレードってのはライセンス上のものであって
アプリケーションの上書きインストールとは関係ない

327 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 14:13:48 ]
>>325
ExpressからアップグレードできるのはProfessional版だけじゃなかった?

328 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 14:15:34 ]
もうその手の嘘はいいよ

329 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 14:37:23 ]
StandardとEEは別アプリ
併用可能だから上書きとか無理
EEはスタートメニュー直下にあるけどStandardはMicrosoft VisualStudio 200Xの下にできるだろ?

330 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 14:40:39 ]
アンインストールも必要ないよ
別の場所にアイコンあるの気がつかずにEE起動してるだけだろう
ってもうアンインストールしちゃったかな



331 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:27:51 ]
C#のGUIエディタで、

パネル上にエディタ等があるとして、そのエディタを移動させようとして
カット&ペーストすると、エディタのイベント情報がすべてなくなりますよね。
イベントをすべて保持したまま親コントロールだけをかえたい場合はどうすればよいですか?
コントロールをコピペしてもイベントがリセットされない方法はありませんか?

332 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:28:52 ]
気付かずExpress使い続けてるような奴はそもそもStandard買う意味ねーな

333 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:35:16 ]
>>331
親変えるだけならドラッグでよくね?

334 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:39:33 ]
買ったのに使ってなかったとかワロテマウwww

335 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 17:11:22 ]
>>331
ドキュメントアウトラインのツリーでドラッグして動かす。
やってみたら目からウロコ。

336 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 20:04:51 ]
standard買うやつってなんなの?
MFCいらなきゃEEじゃないの?


337 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 20:14:10 ]
>>336
えっ?

338 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:40:12 ]
WM6でFTPクライアントクライアントを作ってるのですが
WindowsMobileのFormってサイズ指定しても反映しないのですか?
TCPListenerとかでFTP部分は書けたのだけど、情報少なくて四苦八苦してます
CompactFrameworkの話はスレ違いかな?

339 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:48:46 ]
Windows.Formsの話も本来はスレ違いな気がするのでいいんじゃないでしょうか。

>>338の質問も、言語がC#だろうがVBだろうがIronPythonだろうが、一字一句
違いませんよね?でもそれはCompact Frameworkだからではありません。

340 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 06:34:57 ]
>>338
>WindowsMobileのFormってサイズ指定しても反映しないのですか?
現状はしない。ある意味ウィンドウシステムじゃないから。
FormのSizeはCompactFrameworkではサポートしていない。(ヘルプのバージョン情報参照)



341 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 11:14:42 ]
>>340
ありがとう。ヘルプを頼りにしてみます

342 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 13:39:27 ]
MFCとC#Formってどっちが速度速いですか?
最近MFCは何やっても動作がカクカクで嫌になってきたんですが
C#Formで作っても動作はかわらないですか?


343 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 13:40:08 ]
accessにデータを追加する時
com = new System.Data.OleDb.OleDbCommand("insert into table111(code,name) values(222,'あああ')", conn);
は出来るのに
int aaa = 222;
string bbb = "あああ";
com = new System.Data.OleDb.OleDbCommand("insert into table111(code,name) values(aaa,bbb)", conn);
だと出来ません。valuesの後()の中は変数ではいけないのですか?


344 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 13:44:57 ]
パラメタライズドクエリとか調べれ

345 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 13:53:20 ]
>>343
変数の名前だけ渡したってしょうがないだろ。
そのままやるならstring.formatをかける。
ただしそれではSQLインジェクションを本質的に防げないから、>344になる。

346 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 13:55:00 ]
>>344,345
ありがとうございます。
パラメタライズドクエリ、SQLインジェクション調べてみます。

347 名前:デフォルトの名無しさん [2009/07/04(土) 17:38:12 ]
クラスやメソッドごとに辞書形式で利用方法や利用例を記載した本はないでしょうか。
和書でも洋書でもいいです。金額も問いません。


348 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 17:42:57 ]
APIのオフィシャルリファレンスですら上下刊で1600ページくらいあって、それでも網羅し切れていないというのに

349 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 17:45:08 ]
地球の資源がヤバい

350 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 17:51:17 ]
本は更新できないんだと思い知ってリファレンスブックの類を買うの止めたな。



351 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 17:54:53 ]
MSもCランタイムライブラリみたいに各ページに用例をつけてくれればいいのに、とは思うね。
MSDNのクラス自体の説明文では何がなにやら分からないことが結構ある。

352 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 17:58:15 ]
昔に比べりゃ大分マシにはなってるけどな〜。
msdn.microsoft.com/ja-jp/library/ath1fht8.aspx

書く方もおっついてないんだろうなあ。

353 名前:デフォルトの名無しさん [2009/07/04(土) 18:56:15 ]
ご回答ありがとうございます。
紀伊国屋書店のHPに
bookweb.kinokuniya.co.jp/htmy/0470472057.html
がありました。
この本はいかがでしょうか…。
業務プログラム構築に支障のない程度のクラスの説明があれば買いたいですが、
立ち読みができないのがつらいです。
英文を読むのは苦じゃないのでアメリカに行きたいくらいですが、
割が合わないかもしれず、お金もありません。

354 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 20:29:18 ]
緑のバイクさんの数値/文字列の場所に

>文字列の検索 (一般)
>文字列の検索 (正規表現)
>文字列の置換 (一般)
>文字列の置換 (正規表現)

とありますが、一般と正規表現の違いはなんですか?
正規表現でやったほうが効率がいいってことですか?

355 名前:デフォルトの名無しさん [2009/07/04(土) 20:42:54 ]
正規表現はパターンマッチング
一般は特定文字列

356 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 21:42:32 ]
>>353
入門書を選ぶならいいが、実務で使うとなると、もはや紙の本なんか役に立たん
msdnを読め

357 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 23:08:53 ]
ビルドのプラットフォームの項目にAny CPUしか選択肢が無いのはEEだからなのでしょうか?

358 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 23:18:08 ]
うん

359 名前:デフォルトの名無しさん [2009/07/05(日) 00:31:36 ]
オプションで
ビルド構成の詳細を表示
だったかな

360 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 02:52:26 ]
そっちはDebug/Releaseじゃないか?
AnyCPUはEEじゃなくても新規作成ししたプロジェクトならそうじゃないかな。
AntCPUの下の構成マネージャーから自分で追加する。



361 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 02:55:27 ]
ってAnyCPUのほうも「ビルド構成の詳細を表示」をオンにしないと
変更できないね、すまん。

362 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 03:09:29 ]
Environment.NewLineの中身を判別することは出来るのでしょうか?

363 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 03:29:36 ]
テキストファイルについて教えてください。

あるロガーが掃き出すテキストファイルに「1AH」(CTRL+Z)が含まれて
いるのですが、1AH以降を取り除くにはどうすればいいでしょうか?
コマンドプロンプトでテキストファイルをバイナリモードでコピーするという
方法で除去できましたが、C#に用意されている機能で除去できないかと
考えています。

よろしくお願いします。

364 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 07:56:35 ]
>>362
stringなんだからLengthやIndexOf使えば調べられるが

>>363
IndexOfとSubstring
\xとか\u

365 名前:デフォルトの名無しさん [2009/07/05(日) 08:46:20 ]
今、VS2008をインストールしていますが、
VB6.0も使用するにはどのような環境にすればよいでしょうか。

366 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 08:50:18 ]
古い方を先にインストールってのが基本だが

367 名前:デフォルトの名無しさん [2009/07/05(日) 09:02:51 ]
>>366
ありがとうございます。
ということは、VB6.0を別途購入し、
VS2008アンインストール
⇒ VB6.0インストール
⇒ VS2008インストール
の流れでいいでしょうか。

368 名前:デフォルトの名無しさん [2009/07/05(日) 09:04:07 ]
よく見る、
"object sender, EventArgs e"
とはどういう意味ですか?

369 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 09:07:10 ]
>>367
うん
今時VB6なんか売られてるかどうかしらんけど

370 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 09:16:25 ]
>>368
メソッドの引数

はともかくとして
イベントが起こったときに呼び出されるメソッド(イベントハンドラ)に推奨されてる引数の形式
第一引数はobject型 イベントを起こしたオブジェクトが入る ボタンクリックならButtonオブジェクト
第二引数はEventArgsかその派生型 イベント特有の情報が入る MouseDownなら押下されたマウスのボタンや位置の情報
EventArgsは特有の情報がないときに使われる



371 名前:デフォルトの名無しさん [2009/07/05(日) 09:16:34 ]
>>369
ありがとうございます。
そのとき、VB2008とVB6.0が併存できるようにすることは可能でしょうか。
何度も質問ですみません。

372 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 09:25:03 ]
365・367と同じ質問に見えるが、VS2008とVB2008EEとVB6を入れたいってことなのか?
まあ全部できるけど

373 名前:デフォルトの名無しさん [2009/07/05(日) 10:10:56 ]
>>372
VC#と、
VB2008と、
VB6.0で開発を行う可能性があるので、
同じPCに入れておきたいんです。

374 名前:デフォルトの名無しさん [2009/07/05(日) 11:06:17 ]
>>370
ありがとうございますっ!

375 名前:デフォルトの名無しさん [2009/07/05(日) 11:08:51 ]
>>370
"e"はどういう意味なんだろ。
今まで意識したことなかった。

376 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 11:22:29 ]
名前付けのガイドラインに真っ向から反するよな
eventArgsでいいじゃねえか

377 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 11:24:44 ]
本当の名前は eの後ろにつくから、とか

378 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 11:30:04 ]
> パラメータ名と型を見ただけでパラメータの使用法が判断できるような名前にする
がパラメータのガイドラインだが
イベント引数はパラメータ名いらないのよね 型で判断するもんだから

379 名前:デフォルトの名無しさん [2009/07/05(日) 11:35:00 ]
MSDNで"eventArgs"を調べたけど、
意味がさっぱり分りません。
使用するときはあるのでしょうか(-_-;)。

380 名前:デフォルトの名無しさん [2009/07/05(日) 11:36:37 ]
>>378
すみません、イベントハンドラの引数が2つあるということですかね?



381 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 11:49:14 ]
>>378
誤解していたわ。良く分かった。

382 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 11:54:51 ]
>>380
なにを378に聞いてるのかよくわからんが
イベントハンドラの引数は普通2つ、senderとe
イベント引数は一般にeの方だけ指す、と思う

383 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 11:58:44 ]
たとえば「int a, String b」ってのは、int型の変数a、string型の変数bって意味だ。
intとstringは型、aとbは変数名。これはわかるよな?

同じように「object sender, EventArgs e」ってのはobject型の変数sender、EventArgs型の変数eってこと。
なんで「e」なんてわかりにくい名前に決めたのかは不明だが、何か歴史があるんだろうなあ。

384 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 12:05:02 ]
>なんで「e」なんてわかりにくい名前に決めたのかは不明だが、

それを話してたんじゃないの?

385 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 12:36:05 ]
int iと同じで、型の頭文字じゃない?設計者がすげー年輩でFORTRANを意識したとか。

386 名前:デフォルトの名無しさん [2009/07/05(日) 12:42:35 ]
>>383
なるほど!分かりやすい説明感謝です。
"eventArgs e"とは別の引数が使われるケースもあるのかなぁ。
見たことない(+_+)。

387 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 12:47:43 ]
>>376
ヘルプからして e だもんなぁ。

>>379
イベントハンドルデリゲートで特化した場合に使う。
例えば MouseEventArgs では、
マウスのどのボタンが押されたか
マウス ボタンが押されて離された回数
マウス ホイールの回転回数を表す符合付きの数値
マウス イベント生成時のマウスの位置
などが入っている。
つまり、むっちゃ重要で使いまくり。
EventArgs は単に基本クラス。

388 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 12:59:07 ]
とりあえず例外キャッチしようとして
catch(Exception e)って書いて
「既に定義されています」って言われるとイラッと来る。

389 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 13:02:12 ]
だからExceptionはexにする
もうそういうふうに指が動くようになってる

390 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 13:02:15 ]
例外はexでキャッチするようにするといいよ



391 名前:デフォルトの名無しさん [2009/07/05(日) 13:02:51 ]
静的メソッドとインスタンスメソッドのちがいはなんですか?
いろんなHPを読んでもイメージがさっぱり掴めません。

392 名前:デフォルトの名無しさん [2009/07/05(日) 13:04:55 ]
catch(Exception ex)
ってどういう命令なのですか?

393 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 13:05:53 ]
命令じゃない。例外ハンドラ。

394 名前:デフォルトの名無しさん [2009/07/05(日) 13:12:19 ]
EventArgs
ってどう読むの?「イベントオーギュス」?

395 名前:デフォルトの名無しさん [2009/07/05(日) 13:13:29 ]
「catch」だけのときと
「catch(Exception ex) 」のときで、処理はどう変わるの?

396 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 13:17:23 ]
イベントアーグス

397 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 13:18:05 ]
いい加減一度死んでから入門書買いに行け。

398 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 13:26:43 ]
Argsはargument(アーギュメント)の複数形argumentsの略。略するのはC言語の名残
無理に発音するならアーギュスだけどみんな好き勝手に読んでる
JISでは読み方は規定してなかったよね?

399 名前:デフォルトの名無しさん [2009/07/05(日) 13:26:49 ]
>>397
それは言い過ぎ…

400 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 13:27:52 ]
お次は
なんで例外は変数はeやexと分かりにくい名前をつけるの?
xxExceptionでいいじゃないかとかいった質問がきそうだな。



401 名前:デフォルトの名無しさん [2009/07/05(日) 13:28:35 ]
>>391
生成しなくても使えるのが静的
生成してできたものがインスタンス

402 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 13:29:56 ]
そんなの

非常に狭い部分でしか使わない変数に名前を考えるのが面倒くさい

でいいじゃん

403 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 13:32:40 ]
>>391
静的クラスはプログラムの実行開始時に自動的にインスタンスが一つ作られる。
だからいつでもすぐに使うことができる。早くて便利。ソースも少しだけすっきりする。
だけど開放することはできないからあんまり巨大な静的クラスは作らない方がいい。

404 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 13:36:43 ]
クラスじゃなくて静的メソッドといってるっぽいよ。

難しく言えばメソッドに暗黙のthisを渡すかどうかの違い。

405 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 13:38:49 ]
別に、自分で
(object obj, EventArgs evags)
とか、好き勝手に書き換えてもいいんだぜ?ローカルな変数名なんだから。

406 名前:ちら裏 mailto:sage [2009/07/05(日) 13:42:37 ]
>>391
イメージは自分で作るものだからなぁ。

俺のイメージだと、
クラスってのはクラスローダが自動的に作った「設計図オブジェクト」のシングルトン
インスタンスで、そのメソッドとメンバ変数が静的になるのは、「自動的」に作られた
「シングルトン」だからなだけ。
このイメージの利点は、クラスとインスタンスを同じ仕掛けとして認識できること。
そういう糖衣構文だと思ってる。あくまで個人的に。

407 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 13:47:39 ]
>>406
Smalltalkのクラスはメタクラスのインスタンスである、とかの話に似てるな
正直よくわかってないけどw

408 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 14:13:33 ]
>>391
staticメソッドというのは、実態はただの関数だ。それがクラス定義のスコープの中にあるだけ。
インスタンスを作らないと原則呼び出せない通常のメソッドとは全然違う。

>>406
クラスがオブジェクトの設計図というのは間違ってないが、シングルトン関係ない。
クラスを判子と例えるなら、インスタンスは判子を押したここの契約書だ。

409 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 14:28:31 ]
>>408
いや、静的にということは、この場合ではクラスメンバにアクセスするときに同じ
インスタンスにアクセスすることを要請している、これはシングルトンが保証して
いるわけだからメチャ関係ある。
インスタンス化しないで使える(==自動的)、メンバが静的(==シングルトン)。

410 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 14:46:08 ]
イメージ的にはシングルトンインスタンス
Hoge hoge = Hoge.getSingleton();
のインスタンスメンバは、クラスメンバであるかのように使える事と同じイメージ。



411 名前:デフォルトの名無しさん [2009/07/05(日) 14:51:48 ]
シングルトンって何?

412 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 14:53:42 ]
>クラスメンバであるかのように
class Hoge {
public static int id;
public static void func() {...}
}
を Hoge.id とか Hoge.func() とするように

class Hoge {
public int id;
public void func() {...}
public static Hoge getSingleton() {...}
}
で、先の hoge だと hoge.id とか hoge.func() と書けるという意味ね。

413 名前:デフォルトの名無しさん [2009/07/05(日) 14:53:52 ]
>>391
が段々混乱しているかもしれないな…。
本よりも高度な説明が繰り広げられているから…。

414 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 14:55:22 ]
概念的な話まで持ち込むのはオーバーじゃねえの
使い方だけ説明しておけばいいだろ

そのうち分かるようになる

415 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 14:58:12 ]
>>411
>シングルトンって何?
ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3
設計だと頻出単語というか常識レベル。

416 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 15:05:54 ]
概念の話は難しいかもしれないな。
クラスもオブジェクトと考える言語の系統と、C++のようにそう考えない系統があって
C#やJavaはその中間的な感じなんだよね。
静的クラスをシングルトンと考えるのは前者。
C#はクラスローダレベルで見ると前者っぽいけど基本的な考え方は後者に近い。

417 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 15:13:50 ]
C++とC#で違うんだよな。
C#のほうがより厳密なんだっけ?
C++はどちらでも使いようが可能なんだよな
切り替えて使うときどうしても混乱してしまう。

418 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 15:33:38 ]
タイヤキの型とタイヤキ
の説明でいいんじゃねぇの

419 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 15:41:34 ]
入門段階だとその考え方のほうが無難だな。
型は初めからそこにあるものってことで、
静的メソッドは型とともにはじめからそこにある。
リフレクションやらstaticイニシャライザのことはしばらく置いておこう。

420 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 15:42:42 ]
クラスとインスタンスの違いなら、それでいいんだけど。
クラスメソッドとインスタンスメソッドの違いだからなぁ。



421 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 15:46:03 ]
具体的にどぞ

422 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 15:49:37 ]
タイヤキの型に付いてるボタンとタイヤキについてるボタン

423 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 16:04:21 ]
もうそれでいいよ
俺はタコヤキの型に付いてるタコとタコヤキに入っているタコだし

424 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 16:29:29 ]
タコヤキは人間が回してやらないと丸くならないぞ。クラスと考えるには不完全だ。

425 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 16:33:30 ]
408だが、クラスオブジェクトがJavascriptやSquirrelみたいに
ファーストクラスオブジェクトならばそう言えないことも無いかもしれないが、
(特にSquirrelのクラスオブジェクトはまさに雛形的な動作をするようにできている。
 メンバ変数の初期値を決められるだとかインスタンス初期化は
 クラスオブジェクトのテーブルからのベタコピーだとか)

しかし、JavaやC#は専用の名前空間があって基本的に上書きはできない。
またインスタンス化やシングルトンの概念と関係なくWin32Apiのラッパとして仕方なく
staticメソッドとして定義していかないといけないことが頻繁にあるので、
(C#はグローバルな関数が書けない)
そういう考え方は頷けないものがある。

426 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 16:33:32 ]
自動でひっくり返すのもありますぅー

427 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 16:35:30 ]
静的クラスを作るとその静的クラスの中で自分自身を呼び出す
なんてパラドキシカルな手段が講じられるようになるんだよね。
初めてその概念に触れたときは理解するまで時間がかかったw

428 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 16:39:30 ]
自分自身を呼び出すリカーシブプロシージャなんてアルゴリズムの基本じゃん
情報系の勉強してれば必ず出てくる
どうやって実装するかは処理系によって変わるけど

429 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 17:41:35 ]
>>427
なんか面白そうなんで、いっちょ実例を教えてくだされ

430 名前:デフォルトの名無しさん [2009/07/05(日) 18:44:08 ]
初心者板とは思えない…。
で、、、、静的メソッドって結局なんなんだろう。



431 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 18:46:23 ]
ここは初心者向けにえらそうなこと言うためのスレだから。

432 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 19:11:28 ]
子供は無邪気に「宇宙ってどれくらい大きいの」とか難しいこと聞くからなぁ。

433 名前:デフォルトの名無しさん [2009/07/05(日) 19:12:52 ]
みんなはjavaの経験もあるの?
わたしはCobolerからC#への転身なので全く何も分からないよ(-_-;)。

434 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 19:20:00 ]
HSPからC#に来ました 他の言語 シラネ

435 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 19:28:32 ]
質問があります。
リストからgetfilesを取得して、deletefilesを取り除いて、重複をのぞいてリスト化するには、どうしたらよいでしょう?
次のようにしてみたのですが、
string[] deletefiles = {".cs","(2)","zip","cab"};
string[] getfiles = {"txt","jpg"};
string[] files = Directory.GetFiles(@"C:\Documents and Settings\username\Recent", "*.lnk");
string text = "";

foreach(string file in files) {
foreach(string deletefile in deletefiles) {
foreach(string getfile in getfiles) {
if (file.ToLower().Contains(getfile.ToLower()) && !text.Contains(file)) {if (!file.ToLower().Contains(deletefile.ToLower())) text = text + file + "\r\n";
}}}}

○のみを抽出したい。
2009/07/04 19:41 597 01.txt.lnk ○
2009/07/02 11:48 573 124642979292o.jpg.lnk ○
2009/07/04 22:22 482 1553ea4.jpg.lnk ○
2009/07/01 00:55 567 2009_0701twitter.txt (2).lnk
2009/07/01 00:49 567 2009_0701twitter.txt.lnk ○
2009/07/04 17:32 750 Program.cs.lnk
2009/07/02 17:33 579 SimpleBrowser.lnk

なのに、出力結果には、
Program.cs.lnk
が含まれたりします。
アドバイスお願いします。


436 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 19:39:20 ]
静的メソッドからフィールドにアクセス出来ない理由がようわからん(´・ω・`)

C++ならできたはずだが・・・

437 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 19:48:39 ]
>C++ならできたはずだが・・・ 
いや、それはない。
まあ引数にthisを渡すなら出来なくはないけどね。

438 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 20:00:11 ]
>>435
ステップ実行してみたら?

439 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 20:03:58 ]
>>435
読ませる気無いだろこのコード

処理を二回に分けて考えたほうがいい
List<string>でも用意しておいて
まずfilesの中からgetfilesを持っているのをList<string>に格納する
その後そのListからdeletefilesが含まれているのをtextに追加していく

そういう処理のチェーンを簡単に書けるのがLinq

440 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 20:04:04 ]
>>436
インスタンスメンバにアクセスできたら、静的メソッドじゃないじゃん。
静的メンバってのは、そのクラスの全インスタンスで共有されるんでしょ。



441 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 20:06:21 ]
(´・ω・`)ヤダ

442 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 20:10:47 ]
>>440
それじゃ静的メソッド内で一時的に変数に値を保存しておきたいときとかどうするの(´・ω・`)?

443 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 20:12:38 ]
>>442
静的メソッドでそういうのするのは極めて不穏だが
静的フィールドに格納すればいい

444 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 20:23:51 ]
>>442
状態を保存したいなら
引数で渡すようにするか、静的メソッドやめてインスタンス変数に格納しろよ。

445 名前:デフォルトの名無しさん [2009/07/05(日) 20:29:31 ]
状態持っちゃって呼び出す度に結果が変わったりしたら実質的に静的とは呼べない

446 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 22:08:32 ]
>>403
でたらめ言ってんじゃねー


447 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 22:10:07 ]
>>445
状態を持たないという意味で用いられる用語は「静的」ではなく「純粋」。

448 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 22:19:05 ]
なんだそれ


449 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 22:19:16 ]
>>446
C#2008の仕様ではインスタンス化のタイミングは定義されてないけど、
現実には実行開始時でいいんでないの?
そういうツッコミじゃなくて?

450 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 22:22:23 ]
失礼します
C#で帳票作成するとき皆さんどうしてますか
グレープシティーのActiveReportsですか
それともクリスタルレポートですか
それともSQLSERVERについてるレポーティングサービスですか
それともジャイブレポートですか
それともExcelとかPDFにはいてます?
無料ならPDFなんですかねえ?

どうなんでしょう
お勧めありますか



451 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 22:25:26 ]
iText で PDF 作ってる。

452 名前:デフォルトの名無しさん [2009/07/05(日) 22:31:57 ]
>>446
初めてそのクラスを使おうとしたときに静的メンバが初期化されることが多い
言語仕様上は、「使う前には初期化されていることが保証されている」だけ

453 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 22:32:15 ]
>>449
そもそもインスタンスなんて作られない。
それとも別のものをインスタンスと言ってるのか?
Typeとか?

454 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 22:37:16 ]
>>450
ReportingServiceはお勧めしない。
素直にActiveReports使った方が良い。

455 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 22:52:00 ]
静的クラス
ttp://msdn.microsoft.com/ja-jp/library/79b3xss3.aspx

456 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 23:21:11 ]
ActiveReports買いたいけど会社が買ってくれないので
itext調べてみます く^^

457 名前:デフォルトの名無しさん [2009/07/06(月) 04:11:13 ]
vc#保存したやつ開けないんだけど、なぜだorz

458 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 15:09:02 ]
>>435>>439の方針で匿名メソッドでやってみた。かなりきもくなった。

// OKワードのどれかを含む要素を配列strsから取り出すメソッド
string[] selectOK(string[] strs, string[] OKwords)
{
return Array.FindAll(strs, delegate(string s) {
return Array.Exists(OKwords, delegate(string word) {
return s.IndexOf(word, 0) >= 0; }); });
}

// NGワードのどれかを含む要素を配列strsから取り除くメソッド
string[] deleteNG(string[] strs, string[] NGwords)
{
return Array.FindAll(strs, delegate(string s) {
return Array.TrueForAll(NGwords, delegate(string word) {
return s.IndexOf(word, 0) < 0; }); });
}



string[] deletefiles = {〜};
string[] getfiles = {〜};
string[] files = Directory.GetFiles(〜);

files = selectOK(files, getfiles);
files = deleteNG(files, deletefiles);

459 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 20:32:51 ]
Array.HogeHogeなんていう化石メソッドの嵐やるぐらいならLINQで書こうよー

460 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 20:34:17 ]
LINQおそいじゃん



461 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 20:51:36 ]
え?

462 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 20:59:27 ]
LINQ書く奴ってなんでテスト端折る奴ばかりなんだ?

463 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 21:01:44 ]
え?

464 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 21:05:25 ]
Recentの中身なんて10000ファイルあるわけでもなし。

465 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 21:25:07 ]
>>460
5〜10%のロスを遅いとは言わない。

466 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 21:28:55 ]
その遅さは致命的だな。

467 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 21:31:24 ]
一体何ファイル処理するおつもりで。
500万ファイルくらいかな?

468 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 21:55:25 ]
>>466
うん、致命的だから使わなければいいと思うよ
俺は10%の高速化より、コーディング時間1/3の方を取るけど

469 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 21:58:25 ]
テストまで1/3にしないでください。

470 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 22:02:29 ]
LINQは書きやすいけどデバッグしづらいよ
皆どうしてんだろ



471 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 22:17:24 ]
お前ら初心者用スレで何の話してるの?
本職はマ板にでも消えてくれ。

472 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 22:21:56 ]
は?

473 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 22:31:52 ]
ん?

474 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 22:33:28 ]
こ?

475 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 22:33:53 ]
お?

476 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 22:39:50 ]
ち?

477 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 23:53:56 ]
>>470
具体的には何が問題になってます?

478 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 00:03:12 ]
forループを逆アセンブルしたら、まずいきなりループの終わりにジャンプして、
そこでカウンター値をチェックしてからループの入口にもう一度ジャンプして
1回目の処理を開始するというコードになってて吹いた。
てっきり、もっと効率のいいコードを吐いてるもんだと思ってたのに。

479 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 00:22:34 ]
>>478
ILの出力であればそんなもんでは、CPUごとのカスタマイズはJITの仕事だし

480 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 00:29:45 ]
コードは完成してからベンチしろー。
完成前にあれこれ考えるな時間の無駄だー。

ってスティーブ・マコネルが言っていたよ。

不必要な高速化にかまける馬鹿が多いってさ。
だったらその時間使ってテストしろボケ。



481 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 00:30:21 ]
たしかに、アセンブラのLOOP命令は基本的にループの終わりでECXをチェックするから、
JIT通すと最適化されるんかな。

482 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 00:32:44 ]
色々なCPUに対応するには、不用意に情報を取り除きすぎないようにしないと、高速化のヒントまで削ってはダメだからな

483 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 01:07:51 ]
return return;
のようなことはできないの?

484 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 01:09:41 ]
意味が分からない

485 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 01:19:24 ]
リンダリンダみたいな感じ?

486 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 01:33:30 ]
Return to Myself しない、しない、ナツ

487 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 01:37:57 ]
return @return;
なら記述可能だな ただのネタだが

488 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 12:18:01 ]
アセンブラならできるけどC#なら無理だな。
そういうスパゲッティコードを書きたいならC、C++使え。

489 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 12:44:21 ]
>>487を見て意味がわかった
>>488を見て再びわからなくなった

490 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 14:32:44 ]
C#のバージョンについて教えてください。

ttp://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/
ここからC#をダウンロードしました。
これは特定のバージョンのコンパイラなのでしょうか?
それともどこかで設定できるのでしょうか?

またバージョン間の互換性はどうなっていますか?
1.0用のソースは2.0と3.0で、2.0用のソースは3.0でも問題無くコンパイルできるのでしょうか?

自分でも調べてみましたがコンパイラのバージョンなどがヒットしてしまいよくわかりませんでした。
よろしくお願いします。



491 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 14:49:41 ]
C#と.NET Frameworkとで二つの側面があるが

C#は今のところ後方互換性はほぼ完全に取れてる
マルチバージョン対応なC#コンパイラは今のところ存在しないけど、
後方互換によって新しいコンパイラは古いバージョンのソースコードをコンパイルできる

.NETの標準ライブラリもソースレベルではまず問題ない Obsoleteになったのもあるけど廃止になったのは記憶にない
.NETは1.x系と2.0/3.0/3.5系(と今ベータ中の4.0)がある 3.0/3.5は2.0の追加ライブラリ的存在
VC#2008は開発ターゲットに.NET 2.0/3.0/3.5を選択できる

C#3.0は.NET3.5と同時公開だが、C#3.0コンパイラで.NET2.0の開発もできる(というかVC#2008がそうやってる)
ただラムダ式みたいな言語の機能はそのまま使えるが
System.Linq名前空間下のクラスとかは.NET3.5で追加されたライブラリなので.NET2.0開発時には使えない

492 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 16:29:57 ]
詳しい説明、どうもありがとうございました。
とてもよく理解できました。

493 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 17:10:13 ]
使用しているパソコンのCPU使用率を取得するためにはPerformanceCounter以外にも方法はありますか?

494 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 17:12:13 ]
めんどくさい。ない。

495 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 22:07:00 ]
WMI 使って Win32_Processor クラスの LoadPercentage 取って来れないかな?
めんどくさい。だな。

496 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 02:10:39 ]
TypeBuilder.DefineProperty で動的にプロパティを生成しているのですが、

[Description("アアア")]
public int MyProp{ ... }

や、

[Category("イイイイ")]
public int MyProp {...}

などの属性をつけたいときはどうすればよいのでしょう?


497 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 05:31:27 ]
SetCustomAttribute

498 名前:デフォルトの名無しさん [2009/07/09(木) 07:13:45 ]
panelコントロールとgroupboxコントロールに違いに、
「キャプションを表示するかどうか」
という内容がありますが、
どういう意味でしょうか?
ラジオボタンを配置してもラベルは表示されますし、
「キャプション」が何を指すかが分かりません(+_+)。
よろしくお願いします。

499 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 08:44:12 ]
GroupBoxそのもののTextプロパティを表示するエリアがあるかどうか

グループで括ると左上に名前が出るだろ

500 名前:デフォルトの名無しさん [2009/07/09(木) 08:47:07 ]
>>496
まだやってんのか
いい加減そんな不毛なこと止めてグリッド使ったらどうだ



501 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 12:30:14 ]
>>497
どうもありがとう!!

>>500
グリッドだとだめなんですよ.グリッドでプロパティグリッドを代用しようとすると、
列方向にプロパティ一覧(列によって型が異なる)、行方向に、オブジェクト一覧みたいなかんじになりますよね。

編集するオブジェクトはつねに1つでいいんです。
そうすると、常に1行で、編集可能なプロパティの数だけ列が存在する事になってしまいますよね(ヘッダ除く)。
オブジェクト1個に対して20のプロパティが存在するなら、
1行20列(ヘッダ除く)のとても使いにくいデータグリッドになります。

この場合、20行1列にしたい(ヘッダ除く)

グリッドの、行と列の機能を入れ替えられれば良いんですが、


502 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 12:31:04 ]
C#の勉強をちょっとしてみたいのですが、
まずはじめに、何と、何と、何を
ダウンロードすればいいですか?

503 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 12:33:59 ]
VisualStudio 2008 Express EditionとVisualStudio 2008 Express EditionとVisualStudio 2008 Express Edition

504 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 12:35:31 ]
それはwindows2000でも動くのですか?

505 名前:デフォルトの名無しさん [2009/07/09(木) 12:39:12 ]
2000とか話にならない
最新のバージョンの.NETを使って作られたアプリケーションを動かすことすらできない

506 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 12:41:54 ]
ネタでなくて、マジで2000だと開発できないの?

507 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 12:44:08 ]
ネタではなくて、マジでサポート切れのOSで何しようって言うの?


508 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 12:44:22 ]
できるよ

509 名前:デフォルトの名無しさん [2009/07/09(木) 12:46:07 ]
.NET2.0までなら2000でも可能だけど旧バージョンの無料のVS2005は提供終了
XPを買うか、VS2005を買うか、テキストエディタとSDKで頑張るか

510 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 12:46:18 ]
>>508
2000の場合は、何をダウンロードすればいい?



511 名前:デフォルトの名無しさん [2009/07/09(木) 12:57:59 ]
Visual Studio 2005 ExpressのCDイメージは落とせるみたいだね

www.microsoft.com/japan/msdn/vstudio/express/maninstall/


512 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 13:18:32 ]
>>509
2008の一番グレードの低いやつは無料でゲットできなかったっけ?

513 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 13:20:46 ]
できるよ

514 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 13:23:48 ]
できるけど2000(笑)にはインストールできない

515 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 13:30:43 ]
>>496, >>501

SourceObjectからTypeDescriptor.GetProperties()でプロパティ記述子リストを取得。
名前を第一列に、値を第二列にバインドすればいいんじゃ?

WPFでなら軽く作ったことがあるがそこまで難しくないし、というか知識ゼロからTypeBuilderの方がよっぽどきつい。


516 名前:501 mailto:sage [2009/07/09(木) 14:31:11 ]
ん?それってもしかして
第1列はすべて読み取り専用文字列にして、
第2列は、行によってチェックボックスだったり、コンボボックスだったり、
テキストエディタだったり、というふうにできるということですか?
だとすれば次につくるエディタはぜひそれでつくりたい。。。。

P.S
とりあえず、動的なクラス+プロパティ生成によるプロパティグリッドの利用は、
これでほぼ思い通りにできるようになりました。どうもありがとう

517 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 15:01:07 ]
>>503
VisualStudio 2008 Express Editionなんて無いよ

518 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 15:12:23 ]
>>517
MSも各製品の総称として使ってるよ

519 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 15:25:16 ]
一連の流れを見てたらゲシュタルト崩壊してきた

520 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 15:41:14 ]
できるないないあるよ



521 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 18:25:41 ]
最後のsが抜けてるとかスペースが足りないとかってレベルの揚げ足取りじゃない?
正確な製品名は
○ Visual Studio 2008 Express Editions
× VisualStudio 2008 Express Edition
らしいから
www.microsoft.com/japan/msdn/vstudio/express/

522 名前:デフォルトの名無しさん [2009/07/09(木) 18:25:58 ]
Windows XP
Visual Studio 2005 Professional Edition

.Net Framework 3.0を使いたいので
ttp://msdn.microsoft.com/ja-jp/library/cc825663.aspx
を参考に
Windows Vista™ および .NET Framework 3.0 ランタイム コンポーネント用 Microsoft® Windows® Software Development Kit

Visual Studio 2005 extensions for .NET Framework 3.0 (Windows Workflow Foundation) - 日本語
をインストールしたのですが、
vs2005で.NET 3.0でビルドする方法がわかりません。
教えてください。

523 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 18:29:16 ]
止めてくれ。精神を害しそうだ。

524 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 18:33:54 ]
>>522
.NET 3.0で開発するためにVS 2008が発売されてるんだ。経緯を考えてくれ。
Hackすればできないことはないという記事を見かけたことはあるが非常にお勧めしがたい。

525 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 18:59:12 ]
メッセージについて勉強中。

PeekMessageでメッセージを受信したらTranslateMessageとDispatchMessageを
セットで呼んでおくのがお約束、みたいな解説を見たんだけど、
自前で処理するだけのユーザー定義メッセージにはどちらも必要ないよね?
まだ理解が浅いおかげて、今ひとつ確信が持てないんだけど。

526 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 19:31:29 ]
>>525
普通はWndProcをoverrideするだけで十分。

527 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 19:55:33 ]
>>526
あ、なるほど。言われてみればそうですね。

528 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:38:59 ]
>>522
.NET 3.0は単なる追加ライブラリだから
参照の追加で必要なアセンブリ参照するだけ。

WPFのデザイナが使いたいとかならそのページにあるように
もう提供されてないから無理。

529 名前:デフォルトの名無しさん [2009/07/10(金) 08:35:34 ]
>>524, >>528
レスありがとうございます。

>.NET 3.0は単なる追加ライブラリだから
>参照の追加で必要なアセンブリ参照するだけ。

そういうことだったんですね。
勘違いしてました。ありがとうございました。

530 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 15:24:20 ]
enumにintしか入らないのがむかつく



531 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 15:28:34 ]
こらえてくだされ

532 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 15:43:12 ]
>enumにintしか入らない
?????

533 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 15:46:59 ]
整数型と言いたいんじゃないのか。たぶん。

534 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 15:48:35 ]
mscorlibのmsってなんですか?

535 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 15:51:06 ]
マイクロソフト

536 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 15:54:21 ]
MicroSoft COmmon language Runtime LIBrary
でmscorlib

537 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 17:07:36 ]
core library かとおもってた

538 名前:デフォルトの名無しさん [2009/07/11(土) 17:46:59 ]
はじめまして。
スプリットコンテナーですが、
上下の分割はできないのでしょうか。
ご存知の方、よろしくお願いします。

539 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 17:49:43 ]
Orientationプロパティ

540 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 18:02:12 ]
>>536
mscorlibのCORは、CLRの初期の名称だったComponent Object Runtimeの略。

もちろん、次世代COMとして名前も中身もCOMの影響を受けていて、その思想は現CLRに受け継がれている、
というようなこと、何の本で読んだか思い出せないけど。



541 名前:デフォルトの名無しさん [2009/07/11(土) 18:38:39 ]
上、下、左、右、中央にpanelを置いており、
全てにスプリッターを入れたけど、
1つしか動いてくれません(+_+)。
何かコツはありますか?

542 名前:デフォルトの名無しさん [2009/07/11(土) 18:40:00 ]
>>539
ありがとうございますっっっ!!!!!!!!!!!!!!!!!

543 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 19:38:05 ]
>>541
いきなり5分割じゃなくて上中下の3分割から練習する

544 名前:デフォルトの名無しさん [2009/07/11(土) 23:30:08 ]
>>543
ありがとうございます。

545 名前:デフォルトの名無しさん [2009/07/11(土) 23:39:40 ]
treeviewを作っています。
ノードを選択したとき、初期設定では青色に反転しますが、
反転しているときに、文字が縦に中央揃えになっていません。
この縦位置を中央に指定する方法があれば教えていただけないでしょうか。

546 名前:デフォルトの名無しさん [2009/07/12(日) 01:12:59 ]
sxa

547 名前:デフォルトの名無しさん [2009/07/12(日) 01:43:45 ]
>>546
何の意味ですか…?
教えてください。

548 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 03:03:53 ]
勝手にくるくる動いたらウザくない?

549 名前:デフォルトの名無しさん [2009/07/12(日) 13:00:08 ]
vsのツールウィンドウみたいに、
画面の左右にタブを出して自動的に隠すことってできますか?

550 名前:デフォルトの名無しさん [2009/07/12(日) 13:26:29 ]
docpanel suite



551 名前:デフォルトの名無しさん [2009/07/12(日) 13:52:28 ]
>>550
C#のクラス?

552 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 13:57:59 ]
ぐぐれ

553 名前:デフォルトの名無しさん [2009/07/12(日) 14:21:55 ]
>>552
ググったけどなかった。

554 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:35:36 ]
一番上に出るじゃないか

555 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:35:39 ]
>>553
うそつき

556 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:40:05 ]
最悪w

557 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:43:17 ]
>>553
うそつき

558 名前:デフォルトの名無しさん [2009/07/12(日) 14:45:32 ]
すみません。ありました。
yahooで見ていました。

559 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:46:27 ]
死罪

560 名前:デフォルトの名無しさん [2009/07/12(日) 14:49:26 ]
店舗月の売上一覧を作りたいと思っています。
DBから固定項目を単票形式で見栄え良く表示させるには、
何が一番適しているでしょうか。
datagridviewでしょうか。



561 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:53:52 ]
SQL

562 名前:デフォルトの名無しさん [2009/07/12(日) 14:55:13 ]
>>561
SQLそのものが表示コントロールになるの?

563 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:55:28 ]
ExcelとAccess

564 名前:デフォルトの名無しさん [2009/07/12(日) 14:58:38 ]
既存のC#アプリのpanel内に新たに表示させなければいけないんです。

565 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 15:00:47 ]
じゃあDataGridViewで良いんじゃないかな

566 名前:デフォルトの名無しさん [2009/07/13(月) 20:35:02 ]
DataGrid にはカラム名の上に、CaptionText という
タイトル名を表示するエリアがあったのですが
DataGridView にそれらしきプロパティが見つかりません。
DataGridView では CaptionText に相当する機能は切捨てられたのでしょうか?
よろしくお願いします。

567 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 18:09:07 ]
DataGridは複数の階層状テーブルを表示する機能があったから必要だったけど
DataGridViewは単一テーブル表示になったから不要になった

568 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 19:39:56 ]
>>567
そういう経緯があったんですか
ありがとうございます

569 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 09:34:20 ]
Application.Idleにイベントハンドラを登録してディスプレイの毎フレームごとに処理を行うように
作っているところなのですが、
アプリケーションがアクティブなときは問題ないものの、(毎秒60回呼び出される)
アクティブでなくなったときは20フレーム程度まで落ちてしまいます。
これを回避する方法はありませんでしょうか?

570 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 09:46:21 ]
>>569
呼び出す方法を変える



571 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 09:54:37 ]
>>570
呼び出す方法を変えるとしたら、どのような方法が挙げられますか?

572 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 10:26:24 ]
>>571
タイマーを使うとか、きっちり画面に同期させたいならDirectXを使うとか

573 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 10:57:12 ]
>>572
タイマーでは50ms程度の精度しか出ないので60フレーム(16ms)レベルの処理では使えません。

ずばりDirectXを使用しているプログラムです。
リフレッシュレートが60Hzを超えているディスプレイでも秒間60フレームを維持できるようにしようと考えています。

DirectXのフレーム同期では、結果としてリフレッシュレートに同期することになると思うのですがいかがでしょうか。

574 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 12:19:33 ]
>>573
APIで用意されているタイマーには種類がいくつかあって、約55ms間隔のもあるけど
もう少し速い約16ms間隔というのもある。

で、DirectX使ってるのに同期すると困るの?

575 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 12:49:46 ]
その手のリアルタイム処理は標準的なメッセージループと相性があまりよくない
だからそこ弄るか素直にそういうことやってるの使うと吉

576 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 13:14:11 ]
時間測って、必要に応じて中で何度か更新処理だけ繰り返せばいいだろ
描画のタイミングさえあっていれば、更新処理自体は別に等時間間隔で呼び出す必要はないんだから

577 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 13:44:12 ]
質問内容については自己解決しました。
アクティブでないときに50msのウェイトをかける処理が残っていただけでした。

>>574
興味深いですね。そのような精度のタイマー(System.Timer)があるんですね。
System.Threading.Timerとは使い方が微妙に違うようです。
今回は結果として必要なくなったのですが、また必要になったときに詳しく調べてみることにします。
どうもありがとうございます。

578 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 13:54:13 ]
>>576
ほかのウィンドウメッセージと同期的に動かさないといけないので、(フルスクリーンモード切替とか)
他のスレッドを立ててまわすのはまずいんです。

まあ、やってできないことはないんですけどね。

579 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 19:07:57 ]
WebBrowser.NavigateToString メソッド が使いたくてソリューションエクスプローラー参照の追加で
PresentationFrameworkを追加し、namespace WindowsFormsApplication1内に
using System.Windows.Controls;
と記述しても
「'System.Windows.Forms.WebBrowser' に 'NavigateToString' の定義が含まれておらず、
型 'System.Windows.Forms.WebBrowser' の最初の引数を受け付ける拡張メソッドが見つかりません
でした。using ディレクティブまたはアセンブリ参照が不足しています。」
とエラー表示されて使用出来ません
同じ名前空間とアセンブリのWebBrowser.Navigate メソッドは問題なく使えるのですが
設定の仕方が間違っているのでしょうか?

580 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 19:27:11 ]
System.Windows.Controls.WebBrowser使わないと駄目だぜ
でWinForm上で表示するならSystem.Windows.Forms.Integration.ElementHostが必要



581 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 19:45:35 ]
つかHTMLを表示したいだけならSystem.Windows.Forms.WebBrowserでもDocumentTextとか使えば良いんだが…

582 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 20:30:56 ]
>>578
自前でループ書き、メッセージ処理はApplication.DoEventsで処理させるというのはどう?

583 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 20:48:33 ]
>>580
System.Windows.Forms.Integration.ElementHostが必要ということでまだそれを理解するには時間がかかりそうです
勉強してみます ありがとうございました

>>581
.WebBrowser1.DocumentText = "test";
と書いて表示する事が出来ました
ヘルプから調べられるWebBrowserメンバでtextとかstringで検索しても出てこなかったので
あることすら知りませんでした ありがとうございました



584 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 22:17:21 ]
Windows.Formのクラスが

Form1.cs
Form2.cs
Form3.cs



とあってそれらフォームのタイトル、Textを取得することはできますか?
リフレクションでクラス名は取得できたんですが。
そのクラス名からActivator.CreateInstance()してTextも取れるんですが、
どうにも遅いです。
簡単に速い方法があったら教えてください。

585 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 22:21:55 ]
ありません
そんなものが必要になること自体間違っています
まずは考え方を矯正しましょう

586 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 22:51:13 ]
初心者がリフレクションを使う場合、本当は必要ないことがほとんどだ。

587 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 00:09:53 ]
あらかじめ(静的に)FormのタイトルとTextを格納したデータを持てば?

588 名前:デフォルトの名無しさん [2009/07/16(木) 00:14:51 ]
if(hoge==null){return}
if(hoge!=null){...}
nullチェックってどっちがいいんでしょうか?好みでいいんですね?

589 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 00:24:43 ]
>>588
nullかどうかの問題じゃなくて、
if-else は短い方から書けっていう格言があったりする。

590 名前:デフォルトの名無しさん [2009/07/16(木) 00:28:35 ]
APIを利用する為にテキストボックスに入力されたテキストを
constにする必要があるんですがどうすれば良いでしょうか?



591 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 00:29:50 ]
>>589
ありがとうございます。
そんな格言があるんですね。いつも長い方から書いていた。この場合は前者を使用すべきですね。

592 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 01:01:03 ]
>>590
ちょっとそのAPIのDllImportしてるところ書いてみろ

593 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 01:19:10 ]
>>592
DllImportしてるなんて微塵も書いてないが…

594 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 01:26:37 ]
じゃあどうやってAPI呼んでるんだ?

595 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 01:39:01 ]
「APIを利用」とは何の事だよ

596 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 02:13:15 ]
LoadLibraryとGetProcAddressをDllImportして
関数ポインタにMarshal.GetDelegateForFunctionPtr使ってデリゲート取得してAPI呼んでるとか?

597 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 02:27:35 ]
>DllImportしてるなんて微塵も書いてないが
で、してるの?してないの?

598 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 02:43:36 ]
APIを常人とは違う意味で使っているに10ゲイツポイント

599 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 03:35:54 ]
APIと言っただけで、Win32APIと言った訳ではないしね

600 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 05:39:31 ]
それがどうした



601 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 08:00:39 ]
>>598
a πとか?

602 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 08:39:34 ]
>>597
俺にきくな

603 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 11:09:05 ]
>>600>>602
何で一々噛みついてんの?

604 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 18:04:11 ]
APIはDLLだけだと思ってる人があらわれた!

605 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 18:12:03 ]
あらわれなくていいよ

606 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 18:43:42 ]
>>590は現れろよ

607 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 18:45:37 ]
もう逃げたってば

608 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 19:30:34 ]
WebAPIの類とか・・・
そんでもTextBox.Textがほにゃららの件は意味分からんけど

609 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 19:35:39 ]
const char*の引数を持つAPIに
stringを渡したいけどどうすればいいかと
聞いてるだけとか

んで書き込んだ直後に解決してほったらかし

610 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 19:36:51 ]
593が要らん突込みをしなければこんな伸びなかったな。



611 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 19:47:33 ]
みんなこれくらいなら答えられそうだと思っててうずうずしてるんでしょ

612 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 22:54:46 ]
C#ってフリーの開発環境あるんですか?

613 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 22:55:58 ]
まずフリーの意味をだな

614 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 23:02:00 ]
>>612
MONOというものがあるので使ってみたら?

615 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 23:21:31 ]
フリーの開発環境・・・VisualStudioExpressEditionとSharpDevelopがあるが。

616 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 00:15:33 ]
emacsでいいよ

617 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 00:17:44 ]
へぼすぎて却下

618 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 00:52:15 ]
emacsって、慣れてる人には良いんだろうけど、
とても俺には向いてない。

619 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 01:39:12 ]
スクリプト言語ならともかくC#でemacsはかえって損だろw

>>603
どのあたりが噛まれてるんだ?
一方的におまいがプッツンしてるようにしかみえん



620 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 02:01:20 ]
>>619
>どのあたりが噛まれてるんだ?
>一方的におまいがプッツンしてるようにしかみえん
↑こういうのが 噛みつく って言うんじゃね?
おまいもプッツンしてるようにしかみえん



621 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 02:49:05 ]
いいからもう失せろよゴミ君

622 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 05:41:04 ]
>>621
プッツンしてるの?

623 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 06:35:32 ]
してないよチンカス君

624 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 06:51:44 ]
「プッツン」って懐かしいなw

625 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 06:56:10 ]
グリコが作ってるプリンだっけ

626 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 08:49:52 ]
それプッチンや

627 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 09:03:57 ]
>プッツン・ゴミ君・チンカス君
言葉の選び方が古臭いのは何でだろう。書いてる人の年齢が気になるw

628 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 09:35:04 ]
IDありなら真っ赤な奴がいるな
単発のフリもしてそうだな

629 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 11:30:48 ]
今、入力チェックの勉強中。
Validatingでやるのがいいようだけど問題もいろいろあるみたいで悲しい。
いまいちValidatingが発生する条件が分からん。
TextBox1にいてフィールド移動するとなぜかTextBox5のValidatingが発生したりする・・・
その時はTextBox5でエラー値入れてESCキャンセルでTextBox5のValidatingをスキップするようにしてTextBox1にフォーカス移動してる。
スキップはここ参考にした。www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=29042&forum=7
で、TextBox1からフィールド移動するとなぜかTextBox5のValidatingが発生・・・
VS2003だけど古いから変なのかな?
マシン古いからVS2003でも遅いぜよ(Delphi2007はさくさく動いてるけど)

630 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 12:40:20 ]
>>629
リソースファイルをエディタで書き換えると、コントロールとイベントハンドラの
関連付けがおかしくなるよ。
そういう変なことはやってないと言い切れるなら、あとは…

別のテキストボックスへ移る時、キーボード操作(Tabキーなど)とマウスの時とで
イベントの発生する順序が変わるってのがある。
ttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.validated.aspx



631 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 15:13:10 ]
XmlDocument doc = new XmlDocument();
doc.LoadXml("file.xhtml");

こんな感じで、DOCTYPE宣言のあるxhtmlを読み込んでみたんですが、
たかだか4kくらいのファイルでも1分はかかってしまいます。
こういう仕様なのでしょうか。


632 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 15:33:24 ]
外部エンティティとか使ってない?

633 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 16:33:00 ]
>>630
> リソースファイルをエディタで書き換えると、コントロールとイベントハンドラの
それは触ってない、っていうかC#始めたばっかりで
リソースファイルが何なのか分からなかったり。

> 別のテキストボックスへ移る時、キーボード操作(Tabキーなど)とマウスの時とで
> イベントの発生する順序が変わるってのがある。
その情報は見つけて問題ないようにはしたんだよねー

なんとなくこれと同じ感じなのかなって気が。
www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=22041&forum=7
仕様なのか・・・ ウヒー

634 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 18:50:08 ]
>>633
仕様じゃしょうがないよね。
イベントの発生順序はコントロールできないから、
グローバル変数に状態を覚えておいて
自前で制御ってのはよく使う手。

635 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 18:57:43 ]
>>632
使ってないですー


636 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 19:07:54 ]
>>635
DOCTYPE宣言でttp://のDTD読み込んでないの?

637 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 23:08:32 ]
[DllImport("ws2_32.dll", CharSet = CharSet.Unicode, SetLastError = true, CallingConvention = CallingConvention.StdCall)]
static extern Int32 recv(
Int32 s,
IntPtr buf,
Int32 Len,
Int32 flags);

こんな風にしてDLLを直接呼び出すんだけどwsock32.dllの方も同時に使いたい場合はどう書けばいいの?
例えばwinsock32の方はrecv1でws2_32の方はrecv2で呼び出せるようにしたい

直接呼び出すことに意味のあるプログラムなんで、他に便利なクラスがあるだろとか
片方だけ使えとかそういうのは無しの方向でお願いします

638 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 23:20:27 ]
[DllImport("wsock32.dll", CharSet = CharSet.Unicode, SetLastError = true, CallingConvention = CallingConvention.StdCall)]
static extern Int32 recv1(
Int32 s,
IntPtr buf,
Int32 Len,
Int32 flags);

[DllImport("ws2_32.dll", CharSet = CharSet.Unicode, SetLastError = true, CallingConvention = CallingConvention.StdCall)]
static extern Int32 recv2(
Int32 s,
IntPtr buf,
Int32 Len,
Int32 flags);

639 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 23:22:03 ]

[DllImport("wsock32.dll", CharSet = CharSet.Unicode, SetLastError = true, CallingConvention = CallingConvention.StdCall, EntryPoint="recv")]
static extern Int32 recv1(
Int32 s,
IntPtr buf,
Int32 Len,
Int32 flags);

[DllImport("ws2_32.dll", CharSet = CharSet.Unicode, SetLastError = true, CallingConvention = CallingConvention.StdCall, EntryPoint="recv")]
static extern Int32 recv2(
Int32 s,
IntPtr buf,
Int32 Len,
Int32 flags);

640 名前:637 mailto:sage [2009/07/17(金) 23:22:37 ]
自己解決した



641 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 23:23:20 ]
>>639
その通りでした。どもども

642 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 23:28:01 ]
クラス分けるとかって手もあるけどな

643 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 00:31:37 ]
AutoElipsis = trueの時にテキストの省略された部分が
...ではなく…になるのは日本固有の領土ですか?

644 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 00:40:12 ]
>>643
フォントの問題では?
欧文フォントだと「…」のグリフが、 ... のように下のほうに点が配置されているのはよくあるよ。
実際、MS Sans Serif、TahomaやSegoe UIとかの歴代の欧米のUIフォントも軒並みそうなっている。

645 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 00:50:21 ]
とりあえず「日本固有の領土」と関係ないのは確かだw

646 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 01:32:11 ]
MS-IMEの変換候補でも下の方に小さい点が並んだやつが出てくる
まぎらわしいからやめてほしいんだが

647 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 02:35:20 ]
>>481
簡単にいってよー
プロばかりじゃないんだよー

648 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 02:56:53 ]
>>647
JITに任せておけば勝手に上手い事やってくれる。 これだけ頭に入れときゃおk

649 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 08:09:13 ]
>>643
同じ約物であっても言語によって組み方が変わるのはよくあること。

650 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 19:25:57 ]
Winsockで作ったSOCKETをSocketクラスに割り当てることって出来ますか?



651 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 19:34:24 ]
>>650
「割り当てる」ってなにをすること?

652 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 20:16:55 ]
「SafeFileHandleを引数に取るFileStreamコンストラクタのようなもの」のソケット版が欲しいということだろう。

653 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 20:46:16 ]
List<string> hogeA の中身

c:\temp\01.dat
c:\temp\02.dat
c:\temp\03.dat
c:\temp\04.dat
c:\temp\05.dat


List<string> hogeB の中身

01.dat
03.dat
05.dat


hogeAのうち、hogeBに含まれない
c:\temp\02.dat
c:\temp\05.dat
を残し、これをあらためてhogeAとしたいです。

これを実現するにはどのようにプログラムを組めばよろしいでしょうか?

654 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 20:49:53 ]
1. hogeA の要素を列挙する
2. 各要素が hogeB に含まれているか判断する
3. 含まれていなければ、 hogeC に追加
4. これを繰り返す
5. hogeC を hogeA に設定

655 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 20:50:28 ]
hogeB に含まれてたら、hogeA から削除、って方がわかりやすいね。

656 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 20:57:53 ]
LINQ に Except ってのがあるよ。
ufcpp.net/study/csharp/sp3_stdqueryo.html#set

657 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 20:59:01 ]
2重のfor文を回す必要があるというわけでしょうか?

658 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 21:01:20 ]
>>657
突き詰めればその通り。
List<T>.ExistsとかEnumerable.Exceptで見た目上のループは減らせるけどな。

659 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 21:03:31 ]
この辺の繰り返し処理はプログラミングの基本の基本。便利なライブラリの機能に
お任せしちゃうのではなく、一度は自分で実装してみることをお勧めするよ。

660 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 21:24:42 ]
そして一度実装したあとは、ライブラリの機能のほうを使うようにすべき、だね。



661 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 22:47:22 ]
バーで繋いで正規表現にする方法もあるな。あまりお勧めは出来ないが。



662 名前:653 mailto:sage [2009/07/19(日) 23:08:25 ]
removeAllメソッドを使って除去しようと試みました。

for (int i = 0; i < hogeB.Count; i++){
 hogeA.removeAll(
  delegate(string s)

 );
}

663 名前:653 mailto:sage [2009/07/19(日) 23:10:26 ]
失礼、途中で投稿してしまいましたorz・・・

removeAllメソッドを使って除去しようと試みました。

for (int i = 0; i < hogeB.Count; i++){
 hogeA.removeAll(
  delegate(string s)
   {
    s == @"c:\temp\" + hogeB[i];
   }
 );
}

ただこれだとコンパイル時にエラーが発生してしまいました。
どこか書き方に間違いでもあるでしょうか?

664 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 23:16:01 ]
エラー読めよ

665 名前:653 mailto:sage [2009/07/19(日) 23:20:54 ]
最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。
匿名メソッド' から 'System.Predicate<string>' に変換できません。
割り当て、呼び出し、インクリメント、デクリメント、および新しいオブジェクトの式のみがステートメントとして使用できます。

表示されているエラーはこの3つでした

666 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 23:22:06 ]
匿名メソッドの戻り値が明示されていない
returnをしてないし

667 名前:653 mailto:sage [2009/07/19(日) 23:38:18 ]
>>666
そういうことでしたか( ̄□ ̄;)!!

for (int i = 0; i < hogeB.Count; i++){
 hogeA.removeAll(
  delegate(string s)
   {
    if ( s == @"c:\temp\" + hogeB[i] )
     return true;
    else
     return false;
   }
 );
}

で、ひとまずはビルドは通ったようです。
これで様子を見てみます。
ありがとうございました。

ちなみにこれよりもっとスマートな記述方法はあると思いますか?
ベースは C#2.0 + .Net Framework2.0 ということで。

668 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 23:39:51 ]
.NET 2.0はともかく、C#2.0はもう捨てようよ。

669 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 23:40:28 ]
return (s == @"c:\temp\" + hogeB[i]);

670 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 23:41:36 ]
3.0
removeAll( (s)=>(s == @"c:\temp\" + hogeB[i]) );



671 名前:653 mailto:sage [2009/07/19(日) 23:48:52 ]
>>669
あ、そんな略記があったのね(;^ω^)

>>668
>>670
それが持ってるのがVS2005なもんで(´・ω・`)・・・

672 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 23:49:55 ]
略記って……
おまえが勝手に複雑に書いてるだけだろ……

673 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 23:50:59 ]
低品質なスレですね

674 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 01:37:43 ]
>>671
2005 でも LINQ 使えるようにできるだろ

675 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 01:39:09 ]
すまん LINQ じゃなくてラムダ式か

676 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 01:43:14 ]
>>674
2008で.NET 2.0対象のときでもラムダ式を含むC# 3.0の構文が使えるということとごっちゃにしていない?

677 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 02:12:31 ]
>>671
Expressでいいからとっとと2008にすべき

678 名前:653 mailto:sage [2009/07/20(月) 02:12:39 ]
>>674
2005じゃλは使えない気が(;・∀・)・・・

679 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 02:18:56 ]
hogeBのループはforじゃなくてforeach使うべきだね

680 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 02:27:11 ]
JITなんだジットってもー
地頭か?何だ?簡単に頼むよ



681 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 02:47:26 ]

λ......        ザッザッザッ… λ......       λ......λ......         λ......       λ......
     λ......            λ......λ......         λ......       λ......
樹     λ......      λ......            λ......λ......         λ......       λ......
海  λ......                  λ......λ......         λ......       λ......
←       λ......          λ......λ......         λ......       λ......
                λ......λ......         λ......       λ......
    λ......       λ......        λ......         λ......       λ......  λ......トボトボ
                              ザッザッザッザ…

682 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 02:49:36 ]
>>679
どうして?

>>681
ちょっwwwww

683 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 09:25:26 ]
C#2,0捨てようとかアホか。
ラムダ式なんて無理に使う必要ねーよ。

684 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 10:15:07 ]
ラムダ式をありがたがる心理って簡潔至上主義だと思ってるが、どうなんだろ。
簡潔さ以外にメリットある?
そして簡潔さによる保守性低減のトレードオフって収支は本当にプラス?

685 名前:デフォルトの名無しさん [2009/07/20(月) 10:21:06 ]
>>684
2chスレのラムダ支持層レベルだとトレードオフにはならないね。
無駄に使いたがる印象しかない。

686 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 11:39:29 ]
>>684
遠く離れたところに1行関数を作って呼ぶよりも、ラムダにしたほうが簡潔で保守性は良くなるね。

それ以上に凝るのは趣味の世界だね〜。

687 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 11:40:53 ]
>>684
その場に処理書かないとかえって見づらい場合ない?

1・2行だけDispatcher.Invokeしたいときとか、
変換テーブル作りたいときとか。

要するに↓みたいな。

Dispatcher.BeginInvoke(() => { OutputText.Text = hoge; });

var table = new Dictionary<string, Func<int, int>> {
 { "TypeA", x => x * x },
 { "TypeB", x => Math.Abs(x) },
...

688 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 11:43:01 ]
LINQ の仕組みにはラムダ必須だし、

あと、ローカル変数をキャプチャしたい場合、
ラムダ(というか匿名デリゲート)がなかったら
わざわざinnerクラス1個書かなきゃいけなくなるしねぇ。


689 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 11:48:18 ]
>>686
デリゲート使えば遠くに関数作る必要はない。

690 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 12:07:54 ]
匿名メソッドで済むって話でそ。
まあ最初からラムダが使えれば匿名メソッドはあんまいらんけど。
濫用するような話とはまた別ね。




691 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 12:18:38 ]
あー、() => {} 構文じゃなくて delegate(){} 構文使うのじゃダメかって話か。

あれもでも、C# 開発者曰く
「ラムダを先に導入してたらdelegate構文なんて用意しなかった」
って言ってるしなぁ。


692 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 12:29:58 ]
{}で囲めばラムダでも複数のステートメントもreturnも書けるから実際匿名メソッドは要らない
匿名メソッドの唯一のメリットはパラメータを省略できることだけど、
それだけのために表記のゆらぎを許す価値があるかどうか

693 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 12:37:41 ]
そのうちMSがガイドラインで何か言い出すんじゃないかと思ってる

694 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 12:44:38 ]
λ式のトレードオフを語っている割に、デメリットが出ていない気がw

695 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 12:47:32 ]
delegateより視認しにくいくらいじゃねえの

696 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 12:56:09 ]
言語の方向性として、関数型を取り入れていくよと明言されてるわけで
わかりにくいとかいうのは無意味だな

697 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 13:12:06 ]
構文の親和性の低さによる視認性の悪さもあるけど
引数の型を省略できることの分かりづらさってのはどうなの。

698 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 13:12:59 ]
いずれにせよ、初心者用スレで延々と語る話じゃない。

699 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 13:31:53 ]
キャプチャ周りの罠は初心者も気をつけるべきだろ

700 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 14:07:20 ]
保守性下がるので業務では使えない。



701 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 14:29:34 ]
保守性下がるのでC#は使えない。

702 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 14:50:59 ]
ラムダ厨はテスト端折るので一緒に仕事したくない。

703 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:00:41 ]

462 名前:デフォルトの名無しさん[sage] 投稿日:2009/07/06(月) 20:59:27
LINQ書く奴ってなんでテスト端折る奴ばかりなんだ?

469 名前:デフォルトの名無しさん[sage] 投稿日:2009/07/06(月) 21:58:25
テストまで1/3にしないでください。

702 名前:デフォルトの名無しさん[sage] 投稿日:2009/07/20(月) 14:50:59
ラムダ厨はテスト端折るので一緒に仕事したくない。






余程な職場環境におかれておられる様で
無様で惨めだな

704 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:07:01 ]
職場とか業務でどうとか言われてもねえ…。
ここ初心者スレだし、「そうですか。おつかれさまです」としか言いようがないな。

それともあれか?報われないのを褒めて欲しいのか?
そういうのはマ板でやってくれよ。

705 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:08:26 ]
3.0仕事で導入してるのってどんぐらいなんだろうな
今はまだ2.0のほうが意思合わせ楽そうだけど

706 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:13:06 ]
>>704
どこの初心者スレも似たようなもんだけどな
javaスレとか

明らかに底辺ドカタのストレス発散場になってる
そんなことをしていてもお前の暮らしは向上しないのにな

707 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:19:57 ]
独立すりゃいいのに

708 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:22:04 ]
ラムダスレとか建てても、結局初心者スレを荒らしに来るから意味なし。

709 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:28:41 ]
弱い者達が夕暮れさらに弱い者をたたく構図ですね、わかります。

710 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:41:38 ]
c#はまだおわらんよ!でもVCのほうも同じぐらい力入れてくれるとありがたいです;;



711 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:43:42 ]
C#でWindowsコンポーネントを使わないUIってどうやったら作れますか?
情報が載ってる本かサイトを教えてもらえると嬉しいです。
例えば、Mac風デザインのような感じです。

712 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:49:45 ]
>>711
GUI ツールキットを使うことになるんだろうけど、あんまりないなぁ。
Qt は使えるんだっけ。

713 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:51:32 ]
WPFだろ
デザインは自由自在

714 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 16:02:31 ]
WPFってガワ部分は変えられないんですか?

715 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 16:05:14 ]
ガワ?

716 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 16:13:32 ]
最大化や閉じるボタンなどがある枠です。
その内側では何でもできそうな感じで、かなり素晴らしいのですが。

717 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 16:13:43 ]
ウィンドウの枠を非表示にしてそれっぽいのを自分で描く

718 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 16:16:47 ]
>>717
なるほど。WPFをMSサイトで勉強してきます。
参考になりました。ありがとう。

719 名前:デフォルトの名無しさん [2009/07/20(月) 17:10:08 ]
入門書でC#の基礎文法を一通り勉強しました。
しかし、今までスクリプター(Perl, JavaScript, Ruby)で、
GUIアプリケーションの制作経験は皆無であるため、
Visulal Studio でGUIアプリケーションを作る方法がよく理解できません。
何となくならいじれるのですが、体系的に勉強するにはどうするのがオススメでしょうか?

720 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 17:14:19 ]
>>719
畳の上の水泳より、下手でもとにかく水の中で泳ぐほうが学習効率高いんじゃない?
GUIは特にそうだと思うけど。
(必要なら)体系的学習は後追いでもできるし。



721 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 17:22:27 ]
>>720
入門書は全てcsc.exeを使ってコンソールで作業していたので、
まずは、チュートリアル的なサンプルアプリケーションを何個か作りたいんですよね。

広く浅くでいいので、VSおよびGUIアプリ制作を把握したいのですが、
MS公式の解説書は何だかMSDNチュートリアル同様で、入門の入門という感じだし、
他の入門書は、VSについてほとんど書かれていないしで困っています。

訳分からなくてもとりあえず慣れるがベストなのかなぁ? やはり。


722 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 17:31:14 ]
フォームに手当たり次第にコントロール貼りまくって適当に連動させてごらんよ
方向性は決めなくていいから

723 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 17:36:17 ]
どのコントロールでどんなことができるか、を一通り確認するくらいかなぁ。

具体的な実装は、システム要件に応じて考えるし。

724 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 18:04:40 ]
>>721
C#でcsc.exeを使わせる入門書って、なんて悪書?

725 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 18:11:30 ]
MSの公式解説書だろ
C#できると言ってcsc.exe使えないなんて話もあるまい

726 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 18:23:13 ]
>>724
独習C#です……。プログラミングC#は、最初からは敷居高いかなと思って。

727 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 20:06:49 ]
cscのオプションなんて覚えてもいないぜ。


728 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 21:31:56 ]
>>726
あーあ、かっちゃったかw

729 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 21:33:18 ]
あんなもん立ち読みでいいのに

730 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 23:47:04 ]
泳げないやつは沈めばいい



731 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 23:53:31 ]
プログラミングC#が敷居高いって絶対読んでなさそう
GUIオンリーだった俺はRonRやってるがスクリプトわけわかめw

732 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 01:34:19 ]
delegateとかもうちょっと綺麗に実装出来なかったのかね

733 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 02:06:53 ]
例えばどういう風に?

734 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 02:30:50 ]
例えばキーワードを省略してdelにするとか

735 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 02:47:47 ]
delだとdeleteの略みたいになるから却下

736 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 03:10:41 ]
もうちょっと綺麗に実装 → 省略してdelに

wwwwwwwwwwwwwww

737 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 03:38:19 ]
俺の知ってる英単語を使ってくれ
デレゲートなんて意味がわからんわ

738 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 03:54:37 ]
普通にクラスポインタみたいなのを残せばいいのに
なんでいちいち全部の関数のdelegateを定義して呼ばないといけないんだ

739 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 04:28:36 ]
>>735
じゃあdeleで

740 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 05:28:15 ]
tsun-dele



741 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 08:26:30 ]
tsun-delete

742 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 08:35:08 ]
>>738
FuncとかActionがあるけど

743 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 09:49:41 ]
>>734
キーワードの省略は最悪。
Unix 系のライブラリとか、ときどき見れたもんじゃないのがある。

C# は省略形のキーワード1つもないでしょ。

>>738
型安全性のため。

744 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 14:15:48 ]
タイプセーフはデリゲートの目的であって理由じゃない

そうなると別にどういう構文でもタイプセーフなら良いことになるでしょ
実際にそうなってるしね

745 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:28:29 ]
複数のファイルを連結する方法を教えてください。
下記のようなことって、C#だとどう書くんですか?
ひとつひとつFile.ReadしてFile.Writeしないとだめですか?
copy file01.txt+file02.txt+file03.txt+file04.txt newfile.txt


746 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:45:26 ]
C#で製品を作ってる会社はexeを暗号化してるんでしょうか?
ソースコード丸見え・・・

747 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:47:34 ]
>>745
File.ReadAllText()で読んでFile.AppendAllText()で追加してけば楽なんじゃない
使ったことないけどw

748 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:48:12 ]
今時はライセンスで縛るから丸見えでもどうでもいいのです
難読化くらいはしてるかもね

でも初心者には関係ないよ
お前のコードなんてわざわざ見る気にもならないからね

749 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:53:53 ]
>>747
やっぱりそれしかないんだ…。
配列に配列を追加するにはどうしたらよいですか?
copy file01.txt+file02.txt+file03.txt+file04.txt newfile.txt
string[] keywords = File.ReadAllLines("file01.txt");
keywords = keywords + File.ReadAllLines("file02.txt");
keywords = keywords + File.ReadAllLines("file03.txt");
keywords = keywords + File.ReadAllLines("file04.txt");
とかで追加できるんですか?


750 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:55:06 ]
どの言語でも初心者が一番初めに気にする所だよな。
「ゲームは作れますか?」と「中身の暗号化できますか?」は。

少なくともそんなことを聞かなきゃ分からない内は全く関係のない話だ。



751 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:56:33 ]
>>749
配列ってさあ

string[] strArray = new string[]{ "aaaaa" , "bbbbb" , "ccccc" }

こう書けるのは分かる?






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

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

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