5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

C♯, C#相談室 Part32

1 :デフォルトの名無しさん:2006/06/10(土) 19:10:30
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C♯相談室 Part31
http://pc8.2ch.net/test/read.cgi/tech/1145075577/

過去スレは>>2-5あたり。

2 :デフォルトの名無しさん:2006/06/10(土) 19:11:02
Part30 http://pc8.2ch.net/test/read.cgi/tech/1141448072/
Part29 http://pc8.2ch.net/test/read.cgi/tech/1138925245/
Part28 http://pc8.2ch.net/test/read.cgi/tech/1134514022/
Part27 http://pc8.2ch.net/test/read.cgi/tech/1131544541/
Part26 http://pc8.2ch.net/test/read.cgi/tech/1127063469/
Part25 http://pc8.2ch.net/test/read.cgi/tech/1122352650/
Part24 http://pc8.2ch.net/test/read.cgi/tech/1117631000/
Part23 http://pc8.2ch.net/test/read.cgi/tech/1112968209/
Part22 http://pc8.2ch.net/test/read.cgi/tech/1109630502/
Part21 http://pc5.2ch.net/test/read.cgi/tech/1106490240/
Part20 http://pc5.2ch.net/test/read.cgi/tech/1103005153/
Part19 http://pc5.2ch.net/test/read.cgi/tech/1100240847/
Part18 http://pc5.2ch.net/test/read.cgi/tech/1096112588/
Part17 http://pc5.2ch.net/test/read.cgi/tech/1091284402/
Part16 http://pc5.2ch.net/test/read.cgi/tech/1087297504/

3 :デフォルトの名無しさん:2006/06/10(土) 19:11:35
Part15 http://pc5.2ch.net/test/read.cgi/tech/1083066815/
Part14 http://pc5.2ch.net/test/read.cgi/tech/1076933504/
Part13 http://pc2.2ch.net/test/read.cgi/tech/1071663456/ (ログ行方不明)
Part12 http://pc5.2ch.net/tech/kako/1066/10660/1066038651.html
Part11 http://pc5.2ch.net/tech/kako/1061/10612/1061262958.html
Part10 http://pc5.2ch.net/tech/kako/1051/10518/1051842450.html
Part9 http://pc2.2ch.net/tech/kako/1039/10396/1039646808.html
Part8 http://pc3.2ch.net/tech/kako/1032/10324/1032488831.html
Part7 http://pc3.2ch.net/tech/kako/1027/10275/1027531796.html
Part6 http://pc3.2ch.net/tech/kako/1022/10222/1022257078.html
Part5 http://pc3.2ch.net/tech/kako/1019/10195/1019533942.html
Part4 http://pc.2ch.net/tech/kako/1016/10165/1016597767.html
Part3 http://pc.2ch.net/tech/kako/1009/10094/1009473982.html
Part2 http://pc.2ch.net/tech/kako/1002/10024/1002468050.html
Part1 http://pc.2ch.net/tech/kako/977/977112364.html

4 :デフォルトの名無しさん:2006/06/10(土) 19:12:07
Visual C# 2005 Express Edition 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

MSDNライブラリ
http://msdn.microsoft.com/library/ja/

MSDN2
http://msdn2.microsoft.com/ja-jp/library/default.aspx

5 :デフォルトの名無しさん:2006/06/10(土) 19:12:39
ふらっとC♯(初心者用) Part8
http://pc8.2ch.net/test/read.cgi/tech/1148310124/

関連スレとしてあげておくべきだったかな

6 :デフォルトの名無しさん:2006/06/10(土) 20:35:56
乙……だが微妙なスレタイだな
検索の便宜というのは分かるが

7 :デフォルトの名無しさん:2006/06/10(土) 23:02:30
ついでに C丼

8 :デフォルトの名無しさん:2006/06/11(日) 02:37:08
C++のSTLのmapみたいなやつのC#版ありませんか?

9 :デフォルトの名無しさん:2006/06/11(日) 02:38:02
みたいなやつ

10 :デフォルトの名無しさん:2006/06/11(日) 02:40:24
1個目が検索キーで2個目が実態のリストでにてござる
ござらぬか?

11 :デフォルトの名無しさん:2006/06/11(日) 02:41:33
Hashtable or Dictionary<TKey, TValue>

12 :デフォルトの名無しさん:2006/06/11(日) 02:44:31
>>11
かたじけない

13 :996:2006/06/11(日) 08:16:22
byte[]からstringはうまくいきました。ところでbyte[]からint[]とかchar[]とかも
あるんでしょうか?使う予定はありませんが。

14 :デフォルトの名無しさん:2006/06/11(日) 09:07:11
byte[] から string にするときに Encoding クラスを使ったのならば
Encoding クラスのほかのメンバも見とけよ

15 :996:2006/06/11(日) 09:47:40
>>14
ありがとうございます。char[]はできるけどint[]は無理ってことですね

16 :デフォルトの名無しさん:2006/06/11(日) 09:52:21
>>15
・・・

17 :デフォルトの名無しさん:2006/06/11(日) 09:56:08
文字エンコーディングと int[] にどんな関係があるんだろ
UTF-32 とかか?

18 :デフォルトの名無しさん:2006/06/11(日) 10:24:55
数値の文字列("123456")を数値としてintに入れたいのかな?
しかしそしたらなぜ配列なのかが分からんしな・・・

19 :デフォルトの名無しさん:2006/06/11(日) 11:15:29

char* cp = (char*) 1;
ってコードみたけどそういう人かもしれん。


20 :デフォルトの名無しさん:2006/06/11(日) 19:07:54
VC#2005EE 使ってますが、標準のADOでPostgreSQLに接続はできないのでしょうか?
どこからかODBCドライバをDLしてくるものなのでしょうか

21 :デフォルトの名無しさん:2006/06/11(日) 19:37:46
ADO じゃなくて ADO.NET な。
標準クラスライブラリから接続するなら ODBC とか使わないと駄目だね。

マネージドプロバイダなら、
ttp://pgfoundry.org/projects/npgsql
LGPL だそうだが。
あと有料のもある。

22 :デフォルトの名無しさん:2006/06/11(日) 22:43:14
setが2つあってその差分の集合
あるいは両方にあるものの集合とか関数一発でとれませんか。
javaのcollectionみたいな。
setはなさそうなのでICollectionになるのか

23 :デフォルトの名無しさん:2006/06/11(日) 23:06:08
なんで一般名詞を使わず set とか言うんだろうな
C# では set はプロパティのアクセサだっつの

取りあえず .NET 2.0 の標準ライブラリの中では無いよ

24 :デフォルトの名無しさん:2006/06/11(日) 23:13:36
List<Hoge> a,b があったとして a.FindAll(b.Contains) とか a.RemoveAll(b.Contains) とか

25 :デフォルトの名無しさん:2006/06/11(日) 23:27:40
>>24
ありがとう。がIListとかICollectionには適応できんのか。

26 :デフォルトの名無しさん:2006/06/12(月) 01:55:29
>>25
自分でstaticな関数を作った方が楽だと思う。
たいした難易度でもないのだし。

27 :20:2006/06/12(月) 05:32:11
>>21
ありがとうございます。
早速ためしてみます

28 :デフォルトの名無しさん:2006/06/12(月) 13:26:09
    ∩
    | |
    | |
    | |
    | |
    | |
    | |  / ̄ ̄ヽ やばーい
    | |/  /| |      この言語すごい神ー
    (・ω・)ニニニニニニニニ⊃
       //  | |
     //    | |
   //      | |
 //        | |
とノ         と ノ 

言語というかVisualStudioと.NetFrameworkが神な感じだけど

29 :デフォルトの名無しさん:2006/06/12(月) 15:20:10
デバックモードの出力と、リリースコンパイルされたものの出力が違うのだが、
こういう時ってどうしたらいいのですか?

周りにはとりあえず、デバックコンパイルのものを渡しているのですが・・・。

30 :デフォルトの名無しさん:2006/06/12(月) 15:22:38
同じならばなんでモードを切り替える必要があるのかと。

31 :デフォルトの名無しさん:2006/06/12(月) 15:46:39
何のためのリリースモードなのかと・・・

32 :デフォルトの名無しさん:2006/06/12(月) 15:54:12
何の出力か書いてないからわからないが、デバッグビルドとリリースビルドで異なるとすると、
System.Diagnostics.Debugでログを書いてるとか、[Conditional("DEBUG")]を使ってるとか
#if DEBUG Then とやってるとかこんなところか。
DEBUGビルドだとコンパイル時の最適化とJIT時の最適化の両方をOFFにするから相当パフォーマンスが悪い。

33 :デフォルトの名無しさん:2006/06/12(月) 15:57:29
PHPではApache+MySQLでデータベースプログラミングができましたが、
C#でこのようなデータベースプログラミングをするには、どのようにしたらいいのでしょうか?

34 :デフォルトの名無しさん:2006/06/12(月) 16:04:12
でーたべーすぷろぐらみんぐ ってなに?

35 :33:2006/06/12(月) 16:09:15
書き方が悪かったかもしれません(汗
ただ単にデータベースにアクセスして、テーブルを作成したりデータを読んだり書いたりするだけです。

36 :デフォルトの名無しさん:2006/06/12(月) 16:10:45
ADO.NET
Express Edtionだとちと使いにくいかもしれない。

37 :29:2006/06/12(月) 16:13:15
>>32
そのようなデバック関係のことはやっていません。
アルゴリズムの結果が違うようです。

VS.net上のリリースコンパイルで起動したときは問題ないのに、
単独で起動すると結果が違ってくるのですよね。

なにかこっそりと発生している例外があるのかもしれませんが・・・。
そういうのも含めてデバックするにはどうしたらいいのですか?

>>33
つ http://www.atmarkit.co.jp/fdotnet/vs2005db/index/index.html



38 :33:2006/06/12(月) 16:19:06
>>36-37
サーバーはSQLServerを使わないといけないのでしょうか?
Apacheサーバーを使いたいのですがよくわかりません。
VB6ではできたはずなんですが。

39 :デフォルトの名無しさん:2006/06/12(月) 16:22:53
ぽかーん。

40 :デフォルトの名無しさん:2006/06/12(月) 16:28:47
>>38
ApacheとMySQLの区別が付いてないようだがMySQLを使いたいなら、
ADO.NET - .NET Framework ODBC Provider - MyODBC で接続が一般的かな。
他にも方法はありそうだが調べないとわからない。

初心者用のふらっとC#に移ったほうがいいかもしれんね。

41 :33:2006/06/12(月) 16:30:33
>>40
ふらっとに行ってきます^^;

42 :デフォルトの名無しさん:2006/06/13(火) 03:08:33
>>38
これだけ意味分からんのもめずらしい。

43 :デフォルトの名無しさん:2006/06/13(火) 08:28:28
string[ , ] str = {
  {"hoge" , "12" , "55"} ,
  {"foo" , "6" , "33"} ,
  {"bar" , "31" , "41"}
};

こんな二次元配列があったとして2列目の項でソートしたい場合どうすればいいでしょうか。
以下のようにソートしたいのです。

string[ , ] str = {
  {"foo" , "6" , "33"} ,
  {"hoge" , "12" , "55"} ,
  {"bar" , "31" , "41"}
};


44 :デフォルトの名無しさん:2006/06/13(火) 10:23:02
多次元配列は滅べ。
しかも文字列なのに数値でソートかよ。

45 :デフォルトの名無しさん:2006/06/13(火) 11:14:34
>>43
自力でソート

46 :デフォルトの名無しさん:2006/06/13(火) 11:23:00
ワロス

47 :デフォルトの名無しさん:2006/06/13(火) 11:42:52
質問。
構造体は既定のコンストラクタが作れず、
引数ありのコンストラクタを使わずに
そのまま宣言した場合は各メンバをそれぞれ初期化しないといけないよな?

でも、

Point p = new Point();

Console.WriteLine( p.X );


これで動くのはなぜ???

48 :デフォルトの名無しさん:2006/06/13(火) 11:58:06
>>43
ジャグ配列ならIComparer<string[]>実装してArray.Sortで簡単


>>44
>そのまま宣言した場合は各メンバをそれぞれ初期化しないといけないよな

んにゃ。既定のコンストラクタはコンパイラが作る。
そいつでフィールドは既定値で初期化される

49 :デフォルトの名無しさん:2006/06/13(火) 12:00:59
>>48
あ、本当だ。
自分で作った構造体の既定のコンストラクタを呼んだときはちゃんと初期化されてる。
頭が混乱していたのがすっきりしたよ、thx。

50 :デフォルトの名無しさん:2006/06/13(火) 12:46:50
>>48
> IComparer<string[]>実装して
そこは匿名メソッドと洒落込むところじゃね?

51 :デフォルトの名無しさん:2006/06/13(火) 14:59:02
>>44
クラスを作って、それをリストで管理した方が楽だよねぇ・・

52 :デフォルトの名無しさん:2006/06/14(水) 00:12:06
汎用的なデリゲートをいちいち定義するのめんどくない?
void Action<T>の他にobject返却値付とかあればいいのに。

53 :デフォルトの名無しさん:2006/06/14(水) 08:23:27
Func<T>
Func<T1, T2>
Func<T1, T2, T3>
Func<T1, T2, T3, T4>
ってのが追加される予定じゃなかったっけ

54 :デフォルトの名無しさん:2006/06/14(水) 08:40:52
>>53 おなじようなのVoid用とReturn用と定義した。

55 :デフォルトの名無しさん:2006/06/14(水) 13:23:37
EventHandler<T>を知ったときちょっと感動した。

56 :デフォルトの名無しさん:2006/06/14(水) 14:18:51
ListBoxのItemsにクラスAを入れると
クラスAのToStringの結果がListBoxに表示されますが
これをクラスAのToString以外に変更するにはどうすればよろしいか?
たとえばクラスAのGetValueの結果を表示する。

57 :デフォルトの名無しさん:2006/06/14(水) 14:25:55
DataSource 使うなら DisplayMember で特定のプロパティにできるな

58 :デフォルトの名無しさん:2006/06/14(水) 15:07:30
webページ上からHTMLのソースをリッチテキストに表示したいのですが
Socketクラスのどのメソッドを使えばよいでしょうか

59 :デフォルトの名無しさん:2006/06/14(水) 15:11:03
TCP/IP 喋れるならどれでも良いが、HTML から RTF に変換するのが死ねそうだな

60 :デフォルトの名無しさん:2006/06/14(水) 15:11:43
と思ったがHTMLじゃなくてそのソースか。
ていうかなぜSocket使うんだ?

61 :デフォルトの名無しさん:2006/06/14(水) 15:16:47
>>60
そうです、HTMLのソースです
C#2003初心者なもので
Socketでいけると思ったのです
Socketにはそんなもの無いのでしょうか。

ヒントだけでもいただけないでしょうか

62 :デフォルトの名無しさん:2006/06/14(水) 15:21:56
DOBON.NET .NET Tips - ファイルをダウンロードし表示する
http://dobon.net/vb/dotnet/internet/webclientopenread.html


63 :デフォルトの名無しさん:2006/06/14(水) 15:24:13
Socket は IP 通信の最も低レベルのクラス。
つまりラップされてないので HTTP を喋る必要がある。
で、その上に TcpClient があって TCP/IP 通信用のクラス。
更にその上に WebRequest(HttpWebRequest)/WebResponse(HttpWebResponse) があって、
最上位に WebClient がある。
後者になるほど HTTP 扱う上で手軽になるが細かい操作ができなくなる。
.NET 2.0 で WebClient は無闇に拡張されたけど。

64 :デフォルトの名無しさん:2006/06/14(水) 15:25:44
>>62
助かりましたありがとうございます
今度からはもう少し調べてから質問しにきます

65 :デフォルトの名無しさん:2006/06/14(水) 15:29:21
>>63
いろいろ試してみます
ちょうど手元にC#でTCP/IPプログラミングという本があるので使ってみます。&弄って慣れてきます。

66 :デフォルトの名無しさん:2006/06/14(水) 15:56:43
文字コードとか気をつけないとダメだよ。

67 :デフォルトの名無しさん:2006/06/14(水) 16:01:05
>>66
了解です
上記のサイトにも書いてありましたのでじっくりやります。

68 :デフォルトの名無しさん:2006/06/14(水) 17:38:38
C#というわけではないんだけど、VSのソリューションファイルとかのXMLファイルプロトコルってどこかにあるんでしょうか?
内部解析したい。

69 :デフォルトの名無しさん:2006/06/14(水) 17:48:22
Visual C# 2005 Express に特化した質問で申し訳ないです。

1.TreeViewではその項目を複数選択することはできないのでしょうか?
  VC#のソリューションエクスプローラもTreeViewではないかと思うんですが、
  ここでは、CTRL+クリックで複数が選択できます。
  このような選択はユーザーには開放されていないのでしょうか?

2.richTextのプロパティで設定したフォントは表示用のようで、入力する
  時のフォントはここで設定したものではないようです。どこで設定する
  のでしょうか?


70 :デフォルトの名無しさん:2006/06/14(水) 17:56:45
>>69
> 1.TreeViewではその項目を複数選択することはできないのでしょうか?
コモンコントロールの TreeView じゃサポートされてないはず。
独自実装した TreeView 似のコントロールは探せばあるんじゃないか。

> 2.richTextのプロパティで設定したフォントは表示用のようで、入力する
>   時のフォントはここで設定したものではないようです。どこで設定する
>   のでしょうか?
意味不明だが多分あのバグの事なんだろう。
ttp://www.google.com/search?num=100&hl=ja&lr=lang_ja&oe=utf8&q=richtextbox+arial
SendMessage をコンストラクタ辺りで書いてるのも多いが、正しくは HandleCreated イベントで書くべき処理だな。

71 :デフォルトの名無しさん:2006/06/14(水) 18:07:03
>>70
ぐおーー、すばやい反応ありがとうございます。
TreeView に似ているだけの自前なんですね・・・orz
現状、チェックボックスを出して変わりに対応しているんですが
探してみます。

フォントはなるほど Arialになってしまっているのですね。
完全にバグですね。

重ねて、情報ありがとうございました。


72 :69:2006/06/14(水) 18:32:30
むぅ、リンク先に習って、RichTextExクラスを作ってみましたが、
ぜんぜん変わりませんでした。

それと、KeyPressイベントでSelectionFont を設定しなおすのも
やってみましたが、変わりませんでした。

private void richTextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
richTextBox1.SelectionFont = richTextBox1.Font;
}
ブレイクかけて SelectionFont が Arial になっているか見たのですが、
ちゃんと MSゴシック 9 でした・・・症状が違うのかな?

73 :デフォルトの名無しさん:2006/06/14(水) 20:23:28
C#でSAPI使ったことある人いる?
参考にしたトコおせーて

74 :デフォルトの名無しさん:2006/06/14(水) 21:36:25
>>68
つttp://msdn2.microsoft.com/ja-jp/library/0k6kkbsd(VS.80).aspx

VS 2003の話だったらごめん。

75 :デフォルトの名無しさん:2006/06/14(水) 23:05:20
お世話になります。
ネットワーク上の共有フォルダにexeファイルをおいてそのプログラム中で同じフォルダにあるファイルにアクセスしたいのです。
自分の存在するフォルダ名を取得するにはどうすればいいでしょうか?


76 :デフォルトの名無しさん:2006/06/14(水) 23:09:17
>>74 MSBuildまで考えてなかった・・・というかそりゅーしょんとかとMSBuildの関係はいかに?
VS2005のコンパイルはMSBuildによって行われてる?

77 :デフォルトの名無しさん:2006/06/14(水) 23:22:09
>>75
Application.StartupPath
これでOK?

78 :デフォルトの名無しさん:2006/06/14(水) 23:50:53
>>76
.slnはXMLにあらず。.vbprojとか.csprojがMSBuildのXML形式。
なので、ソリューションを読み込んで、そこからプロジェクトごとにMSBuildを起動してるのだと思う。

79 :デフォルトの名無しさん:2006/06/14(水) 23:54:52
ウエブページをデザインして作りたいのですが(初めてです)
IISではなくアパッチ使いたいのですが、できるのでしょうか?
イントラがIISを使えないという糞なのでちょっと困ってます。

80 :デフォルトの名無しさん:2006/06/14(水) 23:59:37
>>78
なるほど。んでもなんでslnはxmlでないんでせう?

81 :デフォルトの名無しさん:2006/06/15(木) 00:17:12
>>77
でけた。ありがとー

82 :デフォルトの名無しさん:2006/06/15(木) 00:19:13
>>79
Mono とか使えばホスト可能なはずだが
IIS 使えない環境で ASP.NET はどうかなー

83 :デフォルトの名無しさん:2006/06/15(木) 00:34:47
CGIでexe起動とか。

84 :デフォルトの名無しさん:2006/06/15(木) 00:48:47
>>71
正確にはバグじゃないがまぁそれはいい
2.0だとLanguageOptionのプロパティがないか?

85 :デフォルトの名無しさん:2006/06/15(木) 11:31:26
MenuStripでメニューを作っているのですが、
ToolStripItemの中にAvailable == false の項目があると、一番下に見えない項目があるかのように振舞ってしまいます。
表示直後は問題ないのですが、カーソルを一番下に動かすと各項目がずれて表示されます。

 ContextMenuStrip menu = new ContextMenuStrip();
 ToolStripItem item;
 item = menu.Items.Add("Item A");
 item = menu.Items.Add("Item B");
 item = menu.Items.Add("Item C");
 item = menu.Items.Add("Item D");

のようなコードがあったとき、
 item.Available = false;
をA〜Cの下に書くと問題が発生します。Dの下に書いても問題は起こりません。

これを回避したいのですが、どうすればよいのでしょうか。


86 :デフォルトの名無しさん:2006/06/15(木) 11:32:38
ざわ…
 ざわ…

87 :デフォルトの名無しさん:2006/06/15(木) 11:50:24
ぱっと見て「○○だなぁ」と思うコード

88 :デフォルトの名無しさん:2006/06/15(木) 13:35:24
こういうのってAvailableでなきゃいけないもんなの?Visibleとかじゃダメなの?

89 :デフォルトの名無しさん:2006/06/15(木) 13:38:31
試したが Visible でも症状は同じ
バグと言っていいだろうが、まあ微妙にキモいコードだな

90 :デフォルトの名無しさん:2006/06/15(木) 14:15:14
>>85
以前に同じような症状で悩んだけど、
結局フィールドでmenuitemを持っといて
RemoveとInsertで回避するしかなかった記憶がある


91 :88:2006/06/15(木) 15:05:11
ドキュメソトには

 Available プロパティは、Visible プロパティとは異なります。Available が ToolStripItem を
 表示するかどうかを示すのに対し、Visible は ToolStripItem およびその親を表示するかどうかを
 示します。

って書いてあるけど、意味がよくわかんね( ゚д゚)、

92 :デフォルトの名無しさん:2006/06/15(木) 15:45:59
超初心者でごめんなさい
数値の取得は出来ているのですが、これをTextBox1に反映させるためにはどうしたらいいでしょうか。
private void comboBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
try
{
System.Net.WebClient wc = new System.Net.WebClient();
System.IO.Stream st = wc.OpenRead("http://pc8.2ch.net/test/read.cgi/tech/1149934230/");
System.IO.StreamReader sr = new System.IO.StreamReader(st,System.Text.Encoding.GetEncoding("Shift-JIS"));//文字エンコーディング
Console.WriteLine(sr.ReadToEnd());
st.Close();
}
catch
{
}
}
}

93 :デフォルトの名無しさん:2006/06/15(木) 16:00:45
いやそりゃ TextBox1 の Text に設定すれば良いんじゃね?

94 :デフォルトの名無しさん:2006/06/15(木) 16:13:33
言い方がまずかったでうs
TexBox1に数値をいれてやりたいのですがそのやり方がわからないのです

95 :デフォルトの名無しさん:2006/06/15(木) 16:19:28
示されたコードのどこに数値が含まれてるのかさっぱり分からないんだが……ブラフのコード?

96 :デフォルトの名無しさん:2006/06/15(木) 16:22:54
>>95
ビルドすると出力のデバッグのとこのログに数値が出てきてしまいます。

97 :デフォルトの名無しさん:2006/06/15(木) 16:25:46
いやだから TextBox1 の Text に設定すれば良いんじゃね?
これとオマイの言ってることのナニがちがうのかを説明してみそ

98 :デフォルトの名無しさん:2006/06/15(木) 17:27:43
謎の数値を受信しちゃったのか。やばいゾ。

99 :デフォルトの名無しさん:2006/06/15(木) 17:28:43
>>92
数値をTextBox1に反映させるのは非常に難しい技術です(´・ω・`)
Tagに入れるしかありません・・・・

100 :デフォルトの名無しさん:2006/06/15(木) 17:51:29
ジェネリックの型制約で、オペレータ(+−など)が使えることを
条件にすることはできる?
ただ単にdoubleとintどっちでも使えるメソッドを作りたいだけなんだが

101 :デフォルトの名無しさん:2006/06/15(木) 18:16:27
無理

102 :デフォルトの名無しさん:2006/06/15(木) 18:30:42
不便だよなぁ

103 :デフォルトの名無しさん:2006/06/15(木) 19:38:12
C++ みたいに、複数の実体を生むわけじゃないから、
static である operator はジェネリックなコード中では使えないのよね。

IAddable だの IAbelGroup だのを継承して
virtual Type Add(Type) を実装しておけば
a + b が a.Add(b) に展開される、
みたいな仕様を追加しないと駄目なんじゃないかと。

104 :デフォルトの名無しさん:2006/06/15(木) 23:15:12
.NET Micro Framework Platform
http://www.aboutnetmf.com/entry.asp

105 :デフォルトの名無しさん:2006/06/15(木) 23:35:22
>>103
それよりもinterfaceにstaticメソッド書けるようにしてほしいよ。
それだけでいい

106 :デフォルトの名無しさん:2006/06/16(金) 00:04:28
>>105
それだとジェネリックな動作できなくね?

それ抜きにしても interface に static メソッドかけるようにはして欲しいけど。

107 :デフォルトの名無しさん:2006/06/16(金) 01:32:52
↓のMSDN Magazineの2005年3月のやつなんだが、
ここに出てくる非同期例外ってどういう意味?
現在のスレッドとは別のスレッドで発生する例外という意味ではないようだけど・・・。

https://www.microsoft.com/japan/msdn/msdnmag/issues/05/03/TokenPrivileges/default.aspx

108 :デフォルトの名無しさん:2006/06/16(金) 07:39:59
いつ起こるかわからない特殊な例外ではないか?
フォーム起動中にOnLoad中に非同期デリゲートでネットワーク処理をしつつ、フォームに結果を表示し、(結果表示にはInvokeを使用)

Showの次の実行文でThreadをPriorityをNormalより低く作ってスタートすると起動中のフォームが固まる現象にあったのですが
誰か原因がわかる人いますか?
NetworkForm f = new NetworkForm();
f.Show();
LowPriorityThread t = new LowPriorityThread();
t.Start();
みたいな

109 :69:2006/06/16(金) 16:54:01
RichTextBoxで、「あああいいいうううえええおおお」と
表示するとき、あああは黒で、いいいは赤で〜みたいに
色変更するにはどうしたらいいのでしょうか?
.FontColor だと、全部同じ色になるし、SelectionColorでは
なにも変わらないし・・・TextBox ではどうですか?


110 :デフォルトの名無しさん:2006/06/16(金) 17:07:20
SelectionColor はその名の通り Selection の色を決定するんだから、まず選択しろ。

111 :デフォルトの名無しさん:2006/06/16(金) 17:09:02
>109
SelectionColorに指定したいColor設定でいいと思うよ。
反映されないなら、選択範囲間違ってない?

112 :69:2006/06/16(金) 17:22:33
なるほど・・・たしかに SelectionColor ですから、そうですね。

では、Textに放り込んであるテキストの任意範囲の色を変える
のではなく、これからAppendする文字の色を指定することはで
きないんでしょうか?


113 :69:2006/06/16(金) 17:27:40
m(_ _)m できました。

114 :69:2006/06/16(金) 18:11:19
>>72 ですが、KeyDownイベントでは SelectionFont はまだ MS ゴシック
なのですが、TextChanged イベントが入ったときには Arial に変わって
います。当然、KeyPress,KeyUpイベントでもすでに Arialに変わってしま
っていることまでわかりました。
さて、どこのイベントで、SelectionFont を再設定すればいいでしょうか?
あ、もちろんdwLangOptions &= ~IMF_DUALFONTをほどこした、
RichTextExクラスを使っての話でした。 FrameWork2.0ではこのあたり
挙動が変わっているんでしょうか?

115 :69:2006/06/16(金) 18:42:07
# 連投もうしわけありません

苦肉の策で
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
 int pos = richTextBox1.SelectionStart;
 richTextBox1.Select(0, richTextBox1.SelectionStart);
 richTextBox1.SelectionFont = richTextBox1.Font;
 richTextBox1.Select(pos, 0);
}
なんてやってみたら入力フォントはArialでなくなったけど、
画面がぁ〜選択、解除が見えてみっともない・・・


116 :デフォルトの名無しさん:2006/06/16(金) 18:43:10
自分で作ったほうが早いと思うよ

117 :デフォルトの名無しさん:2006/06/16(金) 18:47:21
BeginUpdate/EndUpdateは無かったっけか
逐一の画面の再描画を抑止する方法が何かしらあったはず

118 :デフォルトの名無しさん:2006/06/16(金) 18:50:52
つかフォントが Arial になる問題は既出の方法で解決できるんだから
それができてないのはなんかコードに問題があるんだろ

119 :69:2006/06/16(金) 19:01:55
既出の方法って、こういうクラスから呼んでフラグおとせっつうやつだよね。
ぜんぜん通用せんのですよ。

public class RichTextEx : RichTextBox
{
private const uint IMF_DUALFONT = 0x0080;
private const uint WM_USER = 0x0400;
private const uint EM_SETLANGOPTIONS = (WM_USER + 120);
private const uint EM_GETLANGOPTIONS = (WM_USER + 121);


[DllImport("user32.dll", EntryPoint = "SendMessageA")]
private static extern uint SendMessage(IntPtr hWnd, uint wMsg, uint wParam, uint lParam);

public RichTextEx()
{
uint dwLangOptions = SendMessage(this.Handle, EM_GETLANGOPTIONS, 0, 0);
dwLangOptions &= ~IMF_DUALFONT;
SendMessage(this.Handle, EM_SETLANGOPTIONS, 0, dwLangOptions);
}
}


120 :69:2006/06/16(金) 19:05:02
>>116
そのくらいの技量があればそうするのですが・・・orz

121 :デフォルトの名無しさん:2006/06/16(金) 19:07:42
それじゃその後でハンドルの再作成が行われたら終了だが。

122 :デフォルトの名無しさん:2006/06/16(金) 19:09:37
>>114
>RichTextExクラスを使っての話でした。 FrameWork2.0ではこのあたり 
>挙動が変わっているんでしょうか? 

既に誰か答えてたと思うが、.NET 2.0ならこれで解決。
uint opt = (uint) richTextBox1.LanguageOption;
opt &= ~((uint)RichTextBoxLanguageOptions.DualFont);
richTextBox1.LanguageOption = (RichTextBoxLanguageOptions) opt;



123 :69:2006/06/16(金) 19:20:17
>>122
これが見つけられませんでした。

ばっちりでした。

ありがとうございます。 感謝。

124 :デフォルトの名無しさん:2006/06/16(金) 20:46:54
これは覚えとこう・・・
ありがたやありがたや・・・

125 :デフォルトの名無しさん:2006/06/16(金) 22:25:46
DataGridで列幅を指定したのですが,ヘッダーを非表示にしたら設定が反映されません。ヘッダーを出したら、空白と一番上の線が邪魔になります。
どうすればいいでしょうか?
どなたか教えて下さい。

126 :デフォルトの名無しさん:2006/06/17(土) 00:07:35
ふらっとC♯(初心者用) Part8
http://pc8.2ch.net/test/read.cgi/tech/1148310124/174

174 名前:デフォルトの名無しさん[] 投稿日:2006/06/16(金) 23:13:30
DataGridで列幅を指定したのですが,ヘッダーを非表示にしたら設定が反映されません。ヘッダーを出したら、空白と一番上の線が邪魔になります。
どうすればいいでしょうか?
どなたか教えて下さい。

127 :デフォルトの名無しさん:2006/06/17(土) 01:08:58
RichTextBoxでTextの選択状態を調べると日本語入力が確定してしまう問題って
何とかなりませんかね?
SelectionLengthをApplication.Idleで購読しているのですが。
Idle時に1文字でも選択しているかしていないかを取得するだけでよいのですが。

128 :デフォルトの名無しさん:2006/06/17(土) 01:19:16
IME 系の API かメッセージで入力中かチェックするかフラグ立てるかするってのは?

129 :デフォルトの名無しさん:2006/06/17(土) 01:42:16
あるライブラリでprivateなアンマネージドDllを使用して機能を実現しているのですが、
ライブラリの中にリソースとしてアンマネージドDllを埋め込んで、そのDllを呼び出す。様なことをしたいです。
インストーラを作らないで簡単に配布できそうなので一体化させたいのですが
リソース中のDllをファイルとして展開しないでそのまま実行する方法はありますでしょうか?



130 :デフォルトの名無しさん:2006/06/17(土) 11:36:00
>>126
意味不明の書き込みするな( ゚д゚)、

131 :デフォルトの名無しさん:2006/06/17(土) 11:42:40
マルチ死ね

132 :デフォルトの名無しさん:2006/06/17(土) 11:49:35
>>129
>リソース中のDllをファイルとして展開
これで事前バインディングできんの?
jarファイルみたいなのほしいな。

133 :デフォルトの名無しさん:2006/06/17(土) 13:27:23
型初期化子でリソース読み込んでdllをファイル化していけるはず。
Jarみたいなのっていえば、ResourceWriter辺りを使うのかな?
どこかにJarファイルっぽく使ってるサンプルとかってありますかね?

134 :デフォルトの名無しさん:2006/06/17(土) 13:48:47
TreeViewの背景イメージを設定する方法ってありませんか?

135 :デフォルトの名無しさん:2006/06/17(土) 14:07:10
つILMerge
アンマネージDLLはできたんかな

136 :デフォルトの名無しさん:2006/06/17(土) 17:03:16
「マルチ」とかいう書き込みをうざがる奴、死ね( ゚д゚)、

137 :デフォルトの名無しさん:2006/06/17(土) 23:29:23
文字列をgraphic上に描画したときの描画幅と高さを返す関数が
あったと思うんだけど、調べても出てこないorz
ご存知の方、教えてください

138 :デフォルトの名無しさん:2006/06/17(土) 23:36:06
RichTextBox で、任意の位置をSelectして、
ScrollToCaret();すると、その位置にキャレット
が移動しますが、スクロール位置がテキスト
ボックスの最上位になります。
これを、テキストボックスの中央の行に選択
位置を持っていくようなキャレット&スクロール
はどのように実現するのでしょうか?


139 :137:2006/06/17(土) 23:39:12
あー見つかった
自己解決しました

140 :デフォルトの名無しさん:2006/06/17(土) 23:39:42
>>137
Graphics 調べれ

141 :デフォルトの名無しさん:2006/06/17(土) 23:57:05
138 ですが、SendMessageで解決しました。

142 :デフォルトの名無しさん:2006/06/18(日) 15:50:51
1.やりたいこと
 System.Collections.GEneric.List<T>というのを使いたい
 (C#コンパイラをバージョンアップしたい?)

2.結果
 コンパイルエラーとなります。

3.やったこと
 ・調査
   ジェネリクスというのが比較的新しい機能なので使えないのかなと考えました。
 ・DL&インストール
   .netframeworks2.0 というのとSDK2.0 というのを入れてみました

4.問題?
 VSのヘルプ→バージョン情報を見ても上手くバージョンアップ
 されていないのかなと思います。

Microsoft .NET Framework 1.1 バージョン 1.1.4322 SP1
Microsoft Visual C# .NET 69504-335-0000007-18510

143 :デフォルトの名無しさん:2006/06/18(日) 15:53:07
VS2003 は .NET 1.1 専用。
VS2005 が .NET 2.0 専用。
と言う事で VS2005 入れろ。Express Edition なら無料で MS から落とせる。

144 :142続き:2006/06/18(日) 15:54:10
ソースコードとエラーは以下の通りになります。

private void btnAPInfo_Click(object sender, System.EventArgs e)
{
  List<FileInfo> fileList = GetFileList();
}

private List<FileInfo> GetFileLilst()
{
  処理
}


無効なトークン '<' が クラス、構造体またはインターフェイスのメンバ宣言で使用されています。
無効なトークン '>' が クラス、構造体またはインターフェイスのメンバ宣言で使用されています。
クラス、構造体またはインターフェイスのメソッドには戻り値の型が必要です。


初心者であまり分かってなく申し訳ないのですが、
どなたか分かる方教えて下さればありがたいです。


145 :142:2006/06/18(日) 15:56:12
すばやいレスありがとうございます。2005入れるしかないですか。
お金が無い・・・・ orz


Express Edition というのを試してみます。ありがとうございました!


146 :デフォルトの名無しさん:2006/06/18(日) 17:00:02
Express Editionで十分だ。買う必要ないだろ

147 :デフォルトの名無しさん:2006/06/18(日) 18:51:30
テンプレ

1.やりたいこと

2.結果

3.やったこと

4.問題?


148 :デフォルトの名無しさん:2006/06/18(日) 19:28:55
>>147
結果が来る位置がおかしいよw
ふらっとスレにあったこんなのは?

・何をしたいのか
 ・〜〜みたいな、は使わない
 例:ContextMenuStrip で右クリックメニューを出すとき、イメージ表示領域を消したい。
・何をしたのか
 ・コードをずらずら書かない。書くなら必要最小限
 例:ContextMenuStrip の ShowImageMargin を false にしたら一階層目は消えた。
・何が駄目なのか
 ・エラーメッセージがあるなら書く
 例:しかし二階層目以降が消えない。解決方法はないか。

149 :デフォルトの名無しさん:2006/06/18(日) 21:59:13
ThreadPool.QueueUserWorkItem にてつらつらと数十個(不定)のスレッドを起動し
全てのスレッドが終わるまでメインスレッドを待たせたいのですが、どんな方法が
最もスマートでしょうか?

スレッドを起動するたびに待機用変数をインクリメントして、それぞれのスレッドの
終了時に待機用変数をデクリメントして、メンスレッドでは無限ループで待機用変数が
0になるのを待つ。
と言う方法が思いついたのですが、わざわざスレッドを使う割にはCPUリソースが非常に
もったいない気がします。

150 :デフォルトの名無しさん:2006/06/18(日) 22:06:30
ManualResetEvent 使えば?

151 :デフォルトの名無しさん:2006/06/19(月) 00:38:15
>>149
void ThreadFunc{
HONYARARA
if(interlockdecrement(threadRemain)==0){
manualEvent.Set();
}
}
void ActivateAndWaitThreads(){
for(int i=0;i<ThreadNum;i++){
threadRemain++;
new ThreadStart(new Thread( ThreadFunc));
}
manualEvent.Wait();
}
こんな感じ?すげぇてきとうなのでよろ。

152 :デフォルトの名無しさん:2006/06/19(月) 17:19:26
public class Class1
{
public Class1()
{
static void Main(string[] args)
{
System.Console.WriteLine("Hello World!");
}
}
}
このコードをコンパイルすると、
CS1513}が必要です
CS1022型、名前空間の定義、またはファイルの終わりが必要です
って言うエコンパイルエラーが出ます。
どこが間違っているのでしょうか?
どうしたらいいでしょうか?

153 :デフォルトの名無しさん:2006/06/19(月) 17:21:50
3 行目

154 :デフォルトの名無しさん:2006/06/19(月) 17:23:31
↑失礼しました。解決しました

155 :デフォルトの名無しさん:2006/06/19(月) 17:24:19
>>153
ありがとうございます。^^

156 :ババル:2006/06/19(月) 20:36:47
世の中にはVSC#.NETというGUIで作れるものがあるのですが
それを使わずにあえてコード記述して作るという行為には
何の利点があるのでしょうか?

157 :デフォルトの名無しさん:2006/06/19(月) 20:41:59
馬鹿著んコードで出来ないきめ細かな制御

158 :デフォルトの名無しさん:2006/06/19(月) 20:45:05
教育的利点。
csc.exeの使い方、参照・リソースの追加、その他の仕組みを理解するきっかけになる。


159 :デフォルトの名無しさん:2006/06/19(月) 22:30:05
http://kasarfa.com/modules/php/bbs/ubbs/image/1149740930.gif

VisualC#
WindowsXP2
WordObjectLibrary11.0を使用しています。

どこが間違っているのでしょうか。
最小構成でソースを作ってみました。

宜しくお願いします。

160 :デフォルトの名無しさん:2006/06/19(月) 22:39:34
>>159 色使い

161 :デフォルトの名無しさん:2006/06/19(月) 22:48:22
それだな。間違いない。

162 :デフォルトの名無しさん:2006/06/19(月) 23:04:25
>>159
よーわからんが
Type.Missingのかわりにnullをいれたら?

163 :159:2006/06/20(火) 09:11:59
>>160
色違いって・・・

>162
サンクスコ、やてみる。

164 :デフォルトの名無しさん:2006/06/20(火) 09:12:27
色違いじゃない、色遣いだ!!!!!!!!!!!!!!!!!!

165 :159:2006/06/20(火) 09:23:49
>>164
えぇっ、(・д・)

166 :デフォルトの名無しさん:2006/06/20(火) 11:19:11
.NET Framework2.0からmysqlを利用するには
どういったライブラリがありますか?
公式のConnector/.NETはFramework1.1にしか
対応していないようなのです
ODBCのものもいくつか有志で出ているようですが
どれを使えば安全なのかわかりません

167 :デフォルトの名無しさん:2006/06/20(火) 11:22:20
安全を担保するのが 2ch のレスか……。

168 :159:2006/06/20(火) 11:38:58
>>167
ワ炉ータ。

169 :デフォルトの名無しさん:2006/06/20(火) 12:43:32
>>165
よーするに

「見にくいんだよヴォケがぁぁぁ!!」

と言ってるものかと。

170 :デフォルトの名無しさん:2006/06/20(火) 12:45:33
>>169 いや、色のあまりのセンスのなさがプログラムのセンスのなさを体現してるのかと

171 :159:2006/06/20(火) 12:52:52
そんなに見づらい?
ってか、皆さん、僕みたいに、背景をブルースクリーンにしないの?

172 :159:2006/06/20(火) 12:54:50
ってか、キーワードの色を黄色とするのは普通だと思うけど、
まぁ確かに文字をピンクにするのはどうかとも思う。
でも、そこらへんは個人の裁量だと思うお。

っていうか、センスある?ない?ってそんなこと聞いてる
わけちゃうし。かんべんしてや。

173 :デフォルトの名無しさん:2006/06/20(火) 13:55:43
背景は黒でしょ

174 :159:2006/06/20(火) 13:59:31
>>173
ワードの世界では、背景を黒にすることを、
BlueScreenをTrueにする、っていうらしいですよ、奥さん。

175 :デフォルトの名無しさん:2006/06/20(火) 14:02:19
RichTextBoxを簡単なエディタとして使っていますが、
現在のカーソルの桁と行を知る関数などは用意されて
いないようで、いまは行数は
 string s = richTextBox1.Text.Substring(0, richTextBox1.SelectionStart);
 int idx=0;
 int line = 0;
 while ((idx = s.IndexOf("\n", idx)) >= 0)
 {
  idx++;
  line++;
 }
みたいにしているんですが、テキスト後半になると重くなり
あまり良い方法ではないと思います。
なにかよい方法があれば教えてください。


176 :159:2006/06/20(火) 14:14:31
>>175
話をそらさないで!

177 :175:2006/06/20(火) 14:25:32
まったく別人なんでそらすもなにも・・・

178 :デフォルトの名無しさん:2006/06/20(火) 14:27:49
>>159 花にか勘違いしてるのかね?

179 :159:2006/06/20(火) 14:52:00
>>178
>>176は僕ではありません!!

ってか、困ってます。このバグが直らないと、
今日、出張先から帰れないよ・・・。しくしく。

ちなみに、今、岩手の花巻。家は、和歌山。

180 :デフォルトの名無しさん:2006/06/20(火) 14:55:46
>>159
目が疲れた。謝罪と賠償を

181 :デフォルトの名無しさん:2006/06/20(火) 14:59:06
どこでえらーでたのか、COMのエラーコードは何だったのかぐらい書きナ晴れ

182 :159:2006/06/20(火) 15:05:14
button1をクリックして、検索を実行したら、
GIFファイルに示す箇所で、GIFファイルに示すようなエラーがでました。
エラーが出たのは、GIFファイルが示す箇所です。
このエラーがCOMのエラーコードだったかは定かではありませんが、
とにかく、グーグルで検索してもほとんど引っかからないので、
情報が少なすぎて、自分では解決できません。

助けてください。

183 :デフォルトの名無しさん:2006/06/20(火) 15:06:59
HRESULTからの例外 ほにゃららって書いてあるんだからそのエラーコード調べて濃いツーの

184 :デフォルトの名無しさん:2006/06/20(火) 15:09:08
>>159
本人証明したいならsageんな!
もしくはトリップつけろ

185 :デフォルトの名無しさん:2006/06/20(火) 15:10:20
ぐは!
ここageてもID出ねーのか。
スマソ

186 :デフォルトの名無しさん:2006/06/20(火) 15:13:31
以下、トリップつけて粛々と調べたことを書け。さもなくば回答は得られんであろう。

187 :デフォルトの名無しさん:2006/06/20(火) 16:06:27
>>175
GetLineFromCharIndex がある

188 :187:2006/06/20(火) 16:09:43
と途中送信しちゃった
で、.NET 2.0 なら GetFirstCharIndexFromLine を使えば良い
それ以前だと EM_LINEINDEX だったかを使う事になるな

189 :175:2006/06/20(火) 16:22:05
>>188
うれしい!!ありがとう、爆速になりました。
どういうソースなったか、いちおう置いておきます。
 int line = richTextBox1.GetLineFromCharIndex(richTextBox1.SelectionStart);
 int column = richTextBox1.SelectionStart - richTextBox1.GetFirstCharIndexFromLine(line);
 line++;
 column++;
ありがとうございました。m(_ _)m


190 :159:2006/06/20(火) 16:56:24
>>183
>HRESULTからの例外 ほにゃららって書いてあるんだからそのエラーコード調べて濃いツーの

さっぱりわからないのです。
何をどこを調べれば手がかりがつかめるのかすらわからなくて・・・。

191 :デフォルトの名無しさん:2006/06/20(火) 17:08:19
>>190
まんま、HRESULT 0x800706f7 でぐぐるだけでも
情報あるけどそれとは違うの?

192 :デフォルトの名無しさん:2006/06/20(火) 19:36:32
ぐぐればそのまんまでてくるぞ。
マイクロソフトの解決法ヘルプも

193 :159:2006/06/20(火) 19:45:53
ぐぐるってなんですか?

194 :デフォルトの名無しさん:2006/06/20(火) 19:52:42
とりっぷつけろよぼけ

195 :デフォルトの名無しさん:2006/06/20(火) 20:03:55
ちらっとgoogleってみたが、OfficeのGUID地獄なのか。MS自身が看板製品でこれをやるのか(笑
本物の159がまだいるかどうかはわからないが、こういう質問をする時は、
もともとは動いていたコードが現地で動かなくなったとかそういう情報があればアタリが付けやすい。
excel 5.0 は入れて無くてもVS6が入ってるPCには登録されてるのは確認した。


196 :デフォルトの名無しさん:2006/06/20(火) 20:35:39
つんでれだなおまいら。

197 :デフォルトの名無しさん:2006/06/20(火) 22:17:03
アプリケーションを開発していくとき何かノートとかに記述したりしますか?

僕は普通のノートに記述しているのですが、ほかの人はどうしていますか。

マジレスを希望しています。

198 :デフォルトの名無しさん:2006/06/20(火) 22:30:07
>>197
プロジェクトごとに「メモ.txt」というテキストファイルを用意して、
気が付いたことを何でも書き込んでいく。
紙媒体は使わない。

199 :デフォルトの名無しさん:2006/06/20(火) 22:30:32
>>197
基本的にはメモ帳や秀丸やWORDとかEXCEL
明らかにアイデアを出すための物で何度も走り書きするものはとりあえずその辺にある紙の裏
大体まとまったら電子化して紙は破棄

ノートに記入するのは主に会議の議事録の為のメモ書だけだな


200 :デフォルトの名無しさん:2006/06/20(火) 23:19:38
配列の一部分だけを関数の引数として簡単に渡す方法ある?
Cだったら、&buffer[8]とかやって、呼び先で8バイト目以降にアクセスさせることができたんだけど。
初心者なんで、unsafeやらfixといったややこしいことは避けたいっす。

201 :デフォルトの名無しさん:2006/06/21(水) 00:07:45
>>197
・Wikiたてて皆でごちゃ書き
・ホワイトボードにごちゃ書き
・ソースにコメント
で足りてるかなぁ個人的に。
手元に紙はおいてあるけど、落書き帳にしかなってない。

202 :デフォルトの名無しさん:2006/06/21(水) 00:43:19
>>200
C#でそういう場面がどれだけあるかが疑問。
ちと困っている事例を挙げてほしい。

Cにしても、&buffer[8]な渡し方だと、
NULL終端になっているなり、別引数で長さ与えるなりしなきゃいけないわけだけど、
C#で前者はなさそうだし、
後者のように長さも与えるメソッドなら、普通はオフセットも与えられるでしょ。
byte[] buffer, int offset, int countの3つか、
ArraySegment<byte>をとるオーバロードがあるはず。
自作メソッドだとしたら、おとなしくオーバロード版を作るべし。

203 :200:2006/06/21(水) 01:25:29
>>202
今困っているのは、暗号処理なんです。
結構でかいbyte配列のbufferの一部に対してのみ暗号化したいんです。
暗号化関数はDLLという形で提供されていて、ソースを見ることもいじることはできません。
その暗号化関数はencrypto(dst, src, size)という形のみで、
オフセットの指定ができるオーバロードが無いんです。
この関数を呼ぶためだけに、暗号化したい領域(←結構でかい)をコピーした配列を
わざわざ用意したくもないですし…。

204 :デフォルトの名無しさん:2006/06/21(水) 01:36:31
>>203
うーん…
実際にコピーして試してみて、本当に問題が生じた?
せいぜい元配列より小さいsizeの大きさしかコピーされないんだよ?

205 :デフォルトの名無しさん:2006/06/21(水) 02:30:32
DLL製造元にごるあする以外ないだろ。
っていうか、それマネージドのメソッド?
結構でかい対象を暗号化するのに配列丸ごとしかないってのは
もともと想定する使い方がちがったりしないのか…?

206 :デフォルトの名無しさん:2006/06/21(水) 02:31:34
そうそうもうひとつ、
お前の言う結構でかいとはどのくらいだ?


207 :デフォルトの名無しさん:2006/06/21(水) 03:23:35
byte[] b = new byte[n];
Buffer.BlockCopy(src, srcoffset, b....
で"encrypto"すりゃいいじゃないか

208 :159 ◆WA92CiqsoY :2006/06/21(水) 09:22:59
すみません。トリップつけました。

209 :デフォルトの名無しさん:2006/06/21(水) 09:25:08
まだいたのか。いい加減家に帰れ

210 :159 ◆WA92CiqsoY :2006/06/21(水) 09:26:12
結局、バグが直らずに、まだ東北にいます・・・

211 :159 ◆WA92CiqsoY :2006/06/21(水) 09:39:48
http://www.tech-archive.net/Archive/VC/microsoft.public.vc.atl/2004-06/0367.html
http://www.nifty.com/webapp/digitalword/word/030/03046.htm

うーん。うーん。

212 :デフォルトの名無しさん:2006/06/21(水) 09:43:32
>>210
単純に検索して
http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B292744
とか、
http://support.microsoft.com/?scid=kb;ja;315155&spid=3040&sid=449
なんかはみたのかい?

213 :159 ◆WA92CiqsoY :2006/06/21(水) 09:51:53
>>212
神ですね。

214 :159 ◆WA92CiqsoY :2006/06/21(水) 09:56:56
遅延バインディングで解決できそうである、という解決方法は、
実は以前から他の方にご指摘いただいていたのですが、
正直、検索機能を適正に実行するためだけに、
遅延バインディング(Creatobject)にするのは、
コードを作成する際の便宜を考えるとあまりに代償が大きくて、
やりたくありません。
こんなこというと怒られそうですが、
だって、検索機能でしょ!くぅ〜

215 :デフォルトの名無しさん:2006/06/21(水) 10:24:41
ま、どうするかは、君が考えることなので置いといて、
散々昨日からぐぐれ、検索しろといわれて>>212にURL
貼ってもらうまでそこにたどり着けないプログラマって
のは、いかがなものか・・・それもオフィシャルな情報
すら・・・ま、いいが。

216 :183,192:2006/06/21(水) 10:33:49
あえていわなかったが>>212のページは具具って5秒で見つけたんだが・・・・
もういい。かえれ。

217 :デフォルトの名無しさん:2006/06/21(水) 10:51:03
以後、かまって君はスルーヨロ

218 :159 ◆WA92CiqsoY :2006/06/21(水) 11:19:19
僕は、グーグルに800707F5って入力することしか
できませんでした。ほんとうに、すみません。

219 :デフォルトの名無しさん:2006/06/21(水) 12:14:31
死ねば良いんじゃないかな^^

220 :159 ◆WA92CiqsoY :2006/06/21(水) 12:14:57
>>219
(・ω・)

221 :159 ◆WA92CiqsoY :2006/06/21(水) 12:15:34
Before (-_-)
After (・∀・)

222 :デフォルトの名無しさん:2006/06/21(水) 15:29:03
なにこの構ってちゃん

223 :デフォルトの名無しさん:2006/06/21(水) 16:56:33
すいませんADO.NETなんですが
DataTableにExpressionプロパティ入りのDataColumnを追加して、
SqlDataAdapter.Updateしたら、
「Expression列のReadonlyを変更できませぬ」という
例外が出ました。
そうはいってもExpression列のReadOnlyはデザイナ上でだってfalseには
できません。
この列以外は全部ソーステーブルと1対1です。
どこをどうしたらいいんでしょうか。

とりあえず、書き込み前に自分でいろいろいじってみたんですが
DataColumn.ColumnMapping をあとからコード上でHiddenにしたら通るようになりました。
これでいいんでしょうか?いいんだとしたら、これをデザイナ上で設定
するにはどうすればいいですか?

自問自答みたいになってますがおながいします。



224 :223:2006/06/21(水) 17:12:35
すみません間違えました。ColumnMapping をHiddenにしても
解決してませんでした。自分が「更新」ボタンを押してなかっただけの
ようです。
ひきつづき>>223の解決方法をおながいしますorz


225 :デフォルトの名無しさん:2006/06/21(水) 18:54:50
http://pc8.2ch.net/test/read.cgi/db/1104630889/

226 :デフォルトの名無しさん:2006/06/21(水) 22:23:19
PropertyGridの縦の分割線?の位置を、コントロール作成時に設定する方法ってありますか?
入力する方を広くしたいのですが、ご存知の方いましたら教えてください。

227 :デフォルトの名無しさん:2006/06/21(水) 23:36:56
キーを動的決められるように設定を永続化したいのですが、
.Netクラスライブラリでそのまま使えるような
XmlSerializerでシリアライズ可能な永続化オブジェクトクラスはないですか?
データ構造はkey, valueのタプルで両方文字列でOKなんですが NameValueCollectionみたいな感じで。

ApplicationSettingsBaseで動的にキーを追加できて、好きなファイル名で保存できればよいのですが・・・
もしくは、ApplicationSettingsBaseなどで動的にキーを追加することはできますか?



228 :デフォルトの名無しさん:2006/06/22(木) 00:46:58
>>227
System.Collections.Specialized.StringDictionary



229 :デフォルトの名無しさん:2006/06/22(木) 12:04:01
>>228
Directry系はXMLへのシリアライズが不可なのでDataSet/DataTableを使うしかなさそう。
DataSetのSettingの初期値の生成はIDEがサポートしてないので自分でなんとかしなきゃいかんのが大変。

230 :159 ◆WA92CiqsoY :2006/06/22(木) 13:03:10
(・ω・)

231 :231 ◆Ci3UmwhFqY :2006/06/22(木) 14:04:02
Excel 5.0ライブラリって、
エクセルのどのバージョンに入っているものですか?

232 :デフォルトの名無しさん:2006/06/22(木) 17:30:34
>>230
まだ帰れないのか(w

233 :231 ◆Ci3UmwhFqY :2006/06/22(木) 17:36:50
>>232
どうしてばれた?

234 :159 ◆12k2cDk1bk :2006/06/22(木) 18:04:00
えっと、とりあえず、
エクセルをアンインストールしてみたり、
ワードを再インストールしてみたり、
してるけど、まだうまくいかんと、
さっき、OSの再インストールをクライアントと一緒に始めた。

○rz。。

235 :デフォルトの名無しさん:2006/06/22(木) 18:25:22
そんな解決方法じゃちょっとしたきっかけでまた動かなくなるんじゃないの?
諦めて遅延バインディングにしろよ

236 :デフォルトの名無しさん:2006/06/22(木) 18:52:44
COMを参照設定すると、COM InteropのDLLが出来るのだが、これの作り直しはやってる?
これが最初に作られたときの環境がExcel 5.0の古いtypelibで、
その時のDLLをいつまでも使ってたら正しい環境に持っていっても直らない。

237 :デフォルトの名無しさん:2006/06/22(木) 19:40:45
ttp://www.uploda.org/uporg423346.png.html

上記のようなリストボックスを作成するにはどうすればいいのでしょうか?
具体的には「複数項目を複数列に表示させるが、選択は一行ごと」というデータベースみたいなものです。

できるだけ調べてみたのですが、listBoxのMultiColumnだと列ごとに選択できてしまい、使えませんでした。

238 :デフォルトの名無しさん:2006/06/22(木) 19:48:38
>>234
冷静になれよ
遅延バインディングにすれば解決するんだぞ
問題が再発するたびにクライアントに「OS再インストールしてネ」って言うのか

239 :デフォルトの名無しさん:2006/06/22(木) 19:59:25
>>237
それListView

240 :デフォルトの名無しさん:2006/06/22(木) 20:03:42
>>236
IDEで再ビルドすると、最新のにならなかったっけ?

241 :デフォルトの名無しさん:2006/06/22(木) 20:09:54
UserControl継承してコントロール作ってるんだけど
コントロールが破棄されたときに実行したいコードは
どこに書いたらいいの?


242 :デフォルトの名無しさん:2006/06/22(木) 20:11:10
Dispose(bool)をオーバーライドか
Disposedイベントじゃね?


243 :デフォルトの名無しさん:2006/06/22(木) 20:17:44
>>242
ども。了解

244 :237:2006/06/22(木) 21:20:42
>>239
ありがとうございます
検討違いだったようでお恥ずかしいです;

245 :デフォルトの名無しさん:2006/06/22(木) 22:31:12
>>238
爆笑w
こんなに笑ったのは久しぶり。

246 :デフォルトの名無しさん:2006/06/22(木) 23:31:23
ピクチャボックスに表示されている画像で、クリップ領域に表示されている部分だけを習得するにはどうすればいいですか?

247 :デフォルトの名無しさん:2006/06/23(金) 06:32:29
listView.SelectedItemsで取得したアイテムを簡単に扱うにはどうすればいいのでしょうか?

ListView.SelectedListViewItemCollectionに格納するまではわかったのですが、どこのサンプルコードもforeachを使ったものばかりでした。
配列に格納したりなどして、もっと簡単に扱えないでしょうか?

248 :デフォルトの名無しさん:2006/06/23(金) 06:41:08
SelectedListViewItemCollection は十分簡単に扱えると思うが。
簡単ってのはどんなんだよ。

249 :247:2006/06/23(金) 07:13:42
>>248
インデクサ等を使って断続的に処理したいんです

foreachだと連続した処理に限定されてしまうので…

250 :デフォルトの名無しさん:2006/06/23(金) 07:24:54
インデクサ使えるし。

251 :247:2006/06/23(金) 07:47:13
>>250
そうなんですか!?

私の勘違いだったようです
すいませんでした

252 :デフォルトの名無しさん:2006/06/23(金) 10:48:53
xmlを次のように処理してエラー表示を出したりしているのですが、
LineNumberがコメントあたりでずれてしまいます。
どうも、コメント行の次にNodeType.Textがきたとき、そのValueに
前の行のコメントの改行がくっついてきているようで、そのあたりで
ずれるのかな?と思うのですが、対策が取れずに困っています。
textreader = new XmlTextReader(file_name);
textreader.WhitespaceHandling = WhitespaceHandling.None;
textreader.WhitespaceHandling
reader = new XmlValidatingReader(textreader);
reader.ValidationType = ValidationType.Schema;
reader.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);
while (reader.Read())
{
 if (reader.NodeType == XmlNodeType.Element)
{
    ・
 }
 ・
}
private static void ValidationCallBack(object sender, ValidationEventArgs e)
{
 log.message(reader.LineNumber , e.Message);
}


253 :252:2006/06/23(金) 11:04:27
なんとなく、見えてきたのですが、これはどうしようもないのかな?
下のような書き方をしたとき、コメント行と次のテキスト行は同じ行として
カウントされているようですね。
1 <tag ...>
2  <!--コメント-->
3  これはテキストとして扱う
4 </tag>

    ↓

1 <tag ...>
2  <!--コメント-->\r\nこれはテキストとして扱う
3 </tag>

このように処理されるために、以後こういう書き方のあるところは全部
1行づつずれていってます・・・・
これの解決法って・・・

254 :252:2006/06/23(金) 11:41:41
>>253 は勘違いみたいだ・・・orz
じゃあ、どこでずれてるんだ・・・

255 :252:2006/06/23(金) 11:52:16
すみません、LineNumberはあっていました。
私の勘違いです。


256 :159 ◆12k2cDk1bk :2006/06/23(金) 12:34:32
遅延バインディングって、
Ctrl+スペース押しても、変数名とかが
自動的に補完されてくれませんよね。

257 :デフォルトの名無しさん:2006/06/23(金) 13:01:17
>>256
C♯ での遅延バインディングって
IntelliSense 使うようなものだったっけ?

VB と違って Reflection API 使って
呼び出す必要があったと思うが。

258 :159 ◆12k2cDk1bk :2006/06/23(金) 14:10:36
IntelliSense が使えなくなるんですよ、遅延バインディングだと。
まったくやっかいな問題です。

259 :デフォルトの名無しさん:2006/06/23(金) 14:29:14
嵐としてNGID推奨

260 :デフォルトの名無しさん:2006/06/23(金) 14:33:35
もう岩手に骨をうずめろ。

261 :デフォルトの名無しさん:2006/06/23(金) 14:35:30
>>259
この板IDないぞ

262 :159 ◆12k2cDk1bk :2006/06/23(金) 14:38:16
もうやめようよ、もう関西に帰ってきたし。
ってか、担当者代えられた、そんだけだけど。

263 :デフォルトの名無しさん:2006/06/23(金) 17:12:18
<?xml version="1.0" encoding="shift_jis"?>
<data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="base.xsd">
というように始まるxmlファイルを下のようなプログラムで読むとき、xsdを読んでくれないのですが、
ほかに何を設定しないといけないのでしょうか?
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;
settings.XmlResolver = resolver;
XmlReader reader = XmlReader.Create(file_name, settings);
while (reader.Read())
{...}


264 :デフォルトの名無しさん:2006/06/23(金) 17:25:01
XmlSchemaValidationFlags.ProcessSchemaLocation は?

265 :263:2006/06/23(金) 22:28:10
>>264
なぜ、この大事なものに気がつかなかったのでしょう・・・orz

ありがとうございました。スカッと解決しました。

266 :デフォルトの名無しさん:2006/06/24(土) 19:17:41
ListViewのオーナドローで
ListViewItemStates Selectedフラグってアイテムが選択されてなくても
立ってるんですけどそういうものでしょうか?
ListViewItemStates を信用していいのか不安になってきた。

267 :デフォルトの名無しさん:2006/06/24(土) 22:43:26
2次元配列で、行を配列として取り出したり、列を配列として取り出すには
そういう取り出し方を持つ独自のクラスを作るしかないですかね?

やりたいことは、intの2次元配列のある行または列について
intの1次元配列を引数にもつ既存のメソッドに渡したいのですが。

268 :デフォルトの名無しさん:2006/06/24(土) 23:07:24
削除依頼が出ている方のスレに書き込んでいた・・・。(泣

改めて質問です。
LAN内のPCからグローバルIPを取得する何かいい手はないのでしょうか?

269 :デフォルトの名無しさん:2006/06/24(土) 23:56:26
>>268
名前ランにfusiana・・・

270 :デフォルトの名無しさん:2006/06/25(日) 00:04:59
>>267
多次元配列を使わない、これが最大のコツだ。

271 :eAc1Aag185.osk.mesh.ad.jp:2006/06/25(日) 00:09:29
>>269
まぁ暇だから別良いんですけど

272 :デフォルトの名無しさん:2006/06/25(日) 00:10:30
>>270
うーん、完全に行と列が対等なのになあ。

273 :デフォルトの名無しさん:2006/06/25(日) 00:18:35
>>272
メモリの配置上、行と列をコスト的に対等に扱う事はできない。

274 :266:2006/06/25(日) 01:08:28
原因がわかりました。
HideSelectionをfalseにするとStateに常にSelectedが立つようです。

275 :デフォルトの名無しさん:2006/06/25(日) 01:56:41
>>274
ほんとだ。これは気持ち悪い動作だな。
e.Item.Selected は正しい値を返すようだが。
MSDN フォーラムのフィードバックに投げた方が良いかも。

276 :デフォルトの名無しさん:2006/06/25(日) 02:59:29
ぬるぽって、JavaのNullPointerExceptionのことだけど
.NETではNullReferenceExceptionじゃないですか。
アンチJavaな.NETユーザーでもぬるぽって使ってますか?

277 :デフォルトの名無しさん:2006/06/25(日) 03:04:10
マ板に行け。

278 :デフォルトの名無しさん:2006/06/25(日) 11:31:28
ぬるり

279 :デフォルトの名無しさん:2006/06/25(日) 12:49:36
>>278
カ゚ッ

280 :デフォルトの名無しさん:2006/06/25(日) 12:54:05
>>276
real worldで「ぬるぽ」なぞと言う奴がいたら、切る

281 :デフォルトの名無しさん:2006/06/25(日) 13:44:17
real worldで切ったら、逮捕される。

282 :デフォルトの名無しさん:2006/06/25(日) 15:00:16
ぬるふぉ

283 :デフォルトの名無しさん:2006/06/25(日) 15:58:53
ぬるり。
ttp://hongliang.seesaa.net/

284 :デフォルトの名無しさん:2006/06/25(日) 18:25:37
ぬふぅ

285 :デフォルトの名無しさん:2006/06/25(日) 20:40:18
とうとうC++で
char[]
って書いてしまった

286 :デフォルトの名無しさん:2006/06/25(日) 20:41:15
あるあるw

287 :デフォルトの名無しさん:2006/06/25(日) 21:20:47
俺も俺もw

288 :デフォルトの名無しさん:2006/06/25(日) 21:23:25
>>285
別におかしくないけど

289 :デフォルトの名無しさん:2006/06/25(日) 21:45:21
おっかしぃいいいいいいいいいいいいいいいい

290 :デフォルトの名無しさん:2006/06/25(日) 22:04:21
void f(char[]);
C++で正当な関数宣言。

291 :デフォルトの名無しさん:2006/06/25(日) 22:08:10
そうだね

292 :デフォルトの名無しさん:2006/06/25(日) 22:14:02
int main(int argc, char *argv[])
だしな。

293 :デフォルトの名無しさん:2006/06/25(日) 22:45:43
それは違うだろ

294 :デフォルトの名無しさん:2006/06/25(日) 23:56:58
StatusStrip について質問です。
ToolStripComboBox を配置したのですが、
・コンボボックスの高さを変更するにはどうすればよいのでしょうか。
 AutoSize = false で ToolStripComboBox.Height プロパティを変更しても変化がありません。
 (あるいは、StatusStrip の上端とコンボボックスの間に空間を空けるにはどうすればよいのでしょうか。)
・ドロップダウンのデフォルトの方向を上方向にするにはどうすればよいのでしょうか。

295 :159 ◆12k2cDk1bk :2006/06/26(月) 10:37:15
みんながワードエクセルをを使っているのに、
なぜか、ワードエクセルのインストールCDが一枚しく、
特にボリュームライセンスが用意されているなどの特段の事情がない場合、
みなさんだったら、どうしますか?

1.責任者に、ライセンスを取得するよう進言する。
 (ただし、ボーナスが減額されたり、印象を悪くする可能性がある)
2.看過する。
3.自腹でライセンスを購入する。
4.自腹でライセンス付きパッケージを購入する。

296 :デフォルトの名無しさん:2006/06/26(月) 10:42:45
しつこいバカが沸いた場合どうする?

1.無視する

297 :159 ◆12k2cDk1bk :2006/06/26(月) 12:20:27
>>296

そんな冷たいこと、いってくれるなよ、ボケが。

298 :デフォルトの名無しさん:2006/06/26(月) 12:48:19
>>297
真性か・・・見ててカワイソス

299 :159 ◆12k2cDk1bk :2006/06/26(月) 12:56:26
皆様、ごめんなさい。
つまらないことはもうやめます。

先日、会社の部長にリストラを宣告されて
イラだってました・・・。すみません。

300 :デフォルトの名無しさん:2006/06/26(月) 13:08:16
>295
5.自腹で電話してチクル。


301 :デフォルトの名無しさん:2006/06/26(月) 17:57:14
ホスト名からIPAddress インスタンスの生成がしたいのですが、

IPAddress address = Dns.Resolve("google.com").AddressList[0];

とすると、

'System.Net.Dns.Resolve(string)' は古い形式です:

と警告が出ます。
IPv6対応関連かなぁと思うのですが、正しい方法はどのようにすれば
いいか誰か教えてください。

302 :159 ◆12k2cDk1bk :2006/06/26(月) 18:01:21
>>301
DNSは古い形式だよ。

303 :デフォルトの名無しさん:2006/06/26(月) 18:05:14
ErrorProvider.IconをSYstemIcons.Errorにしたら、
直径32ピクセルの巨大しいたけが表示されるようになってしまいました。
直径16ピクセルのプチしいたけを表示したいのですが
大きさの指定ってどうすればできますか?



304 :デフォルトの名無しさん:2006/06/26(月) 18:08:39
>>302
thx!!
「DNS 古い形式」 で検索したら出てきたよw

305 :デフォルトの名無しさん:2006/06/26(月) 20:58:55
>>301
なぜリファレンスを見ない?

306 :デフォルトの名無しさん:2006/06/26(月) 21:14:45
>>303
user32.dllからアイコン抜いてリソースにつっこむ。
そしてSystemIcons使ってますって顔をする。

307 :デフォルトの名無しさん:2006/06/26(月) 21:31:06
>>295
OpenOfficeを使う

308 :デフォルトの名無しさん:2006/06/27(火) 02:11:54
駆け出しのPGです。
VC#とVC#データベース関連書籍で良いのがあったら
教えて下さい!

309 :デフォルトの名無しさん:2006/06/27(火) 02:48:02
カットシステム
 .NETフレームワークのためのC#システムプログラミング
技術評論社
 パーフェクトC#
 VisualC#.NETによる[基本]データベースプログラミング

・・・と、自分が持ってるものを挙げてみる。
実際には立ち読みして良さそうのを探した方がいいんじゃないかと思う。
人によって読みやすい/読みにくいあるし。

自分はオライリーの本が苦手

310 :デフォルトの名無しさん:2006/06/27(火) 02:52:38
309>有難うございます。

311 :デフォルトの名無しさん:2006/06/27(火) 07:15:42
>>308
標準 C#入門 ってやつがなかなか良かった。

あと、ADO.NETなら
黄色くて厚い プログラミング ADO.NETってやつが良い感じ。

312 :デフォルトの名無しさん:2006/06/27(火) 08:32:32
ExplorerのD&Dエフェクトみたいに、透明度を中心から外にかけて高くするように
描画するにはどのようにすればよいのでしょうか?

313 :デフォルトの名無しさん:2006/06/27(火) 10:01:43
力技なら
・テンプビットマップに描画
・SetPixelAlphaでグラデ似なるようにアルファ値設定
・BitBltで転送
かな

ビットマップ同士のアルファブレンドとか南下で競うなきもするけど見つからん買った

314 :159 ◆12k2cDk1bk :2006/06/27(火) 12:58:29
>>307
それも一応考えてみたけど、
一応はOOoにもWordObjectLibraryに相当するホスト可能性があるけど、
今までの開発資産をある程度失うことを考えるとどうしても・・。
昨日、担当者にゆってみたよ。
「ライセンスパッケージ」を買っておくれよ、と。
そしたら、
「しばらく考えさせてください」といういつもの答えが返ってきた。

315 :159 ◆12k2cDk1bk :2006/06/27(火) 12:59:43
>>313
http://www.google.com/search?hl=ja&lr=&ie=UTF-8&oe=UTF-8&num=50&q=LockBits

316 :デフォルトの名無しさん:2006/06/27(火) 13:16:05
ODBCのSQLTablePrivilegesを使いたいのですが
system.data.odbcから生ハンドルをとるには
どうするのでしょうか?

317 :デフォルトの名無しさん:2006/06/27(火) 19:54:21
質問させてください。
.NetFramework1.1で以下のような処理を書いていましたが、2.0のTableAdapterで同じような処理を行なう方法はありますでしょうか?
DataSetのdsはリレーションを張った状態でparenttableとchildtableがあり、conはsqlConnectionでdaParent,daChildはそれぞれのテーブル用のDataAdapterです。

con.Open();
try
{
SqlTransaction tr= con.BeginTransaction();
daParent.SelectCommand.Transaction=tr;
daParent.InsertCommand.Transaction=tr;
daChild.SelectCommand.Transaction=tr;
daChild.InsertCommand.Transaction=tr;
try
{
daParent.Update(ds.parenttable.Select("","",DataViewRowState.Added));
daChild.Update(ds.childtable.Select("","",DataViewRowState.Added));
tr.Commit();
}
catch(Exception ex)
{
tr.Rollback();
}
}
finally
{
con.Close();
}

FillをTransactionScopeで囲んでしまえばそれで良い気もするのですが、自動昇格して分散トランザクションになってしまいます。
同じコネクションで処理してしまいたいのですが、方法がいまいち判りません。
良い方法がありましたら、お教え願えませんでしょうか。
よろしくお願いいたします。

318 :デフォルトの名無しさん:2006/06/27(火) 21:37:12
TreeViewコントロールにて、任意のノードを選択する方法を教えてください。
よろしくお願いします。

VS 2003 Fra1.1

319 :デフォルトの名無しさん:2006/06/27(火) 21:40:01
SelectedNode

320 :デフォルトの名無しさん:2006/06/27(火) 21:41:06
>>319
すいません、SelectNodeの後を教えて下さい。

321 :デフォルトの名無しさん:2006/06/27(火) 21:42:54
なんでマニュアルを読まないんだ?

322 :デフォルトの名無しさん:2006/06/27(火) 21:47:03
>>317
別に 2.0 で BeginTransaction が Obsolete になったわけでもないと思うが……。

323 :デフォルトの名無しさん:2006/06/27(火) 22:19:10
>>317
明示的にDTCを抑制するなら接続文字列にEnlist=falseをつければいいのだが、
なぜ317のケースで自動昇格するのか疑問。
Open Close の間でTransactionScopを開始してるとかしてないだろうか?

324 :デフォルトの名無しさん:2006/06/27(火) 22:28:32
テーブルアダプタにコネクション明示的に設定してるか?


325 :デフォルトの名無しさん:2006/06/27(火) 22:38:17
英語でプログラミング勉強スレ

http://academy4.2ch.net/test/read.cgi/english/1151414777/l50

326 :デフォルトの名無しさん:2006/06/28(水) 00:25:09
MDIで、ある子フォームを最大化しているときに
別の子フォームをActivateでアクティブにすると、
一瞬、通常サイズの子フォームが見えるんだけど、これってうまい回避策はない?
Ctrl+TABで切り替えるときはこんな現象は起こらないんだが。

考えてみた方法は、アクティブにする子フォーム以外を非表示にするやり方。
こういう逃げ方でなく正攻法があれば教えてほしい。

327 :デフォルトの名無しさん:2006/06/28(水) 00:52:01
>>313
グラデになるようにアルファ値設定で描画するまではいいのですが
描画先のフォームがうまく透過になりません。
Bitmap alphaBlendedImage = new Bitmap(bounds.Width, bounds.Height);
//・・・・GetPixelしてSetPixelのアルファ値変更・・

Form f = new Form();
f.TransparencyKey = SystemColors.Control;
f.Size = alphaBlendedImage.Size;
f.BackgroundImage = alphaBlendedImage;
f.Show();
フォームの裏にある背景とブレンドしたいのですが
透過色であるControlとブレンドされてしまい、うまくいきません。
このような要求を実現するためのどこかポインタを教えていただけるとありがたいのですが。

328 :デフォルトの名無しさん:2006/06/28(水) 00:53:56
レイヤードウィンドウみたいなことをしたいのか?

329 :デフォルトの名無しさん:2006/06/28(水) 01:35:32
メモ
半透明の色または透過色のイメージは、Windows フォーム コントロールでは背景イメージのようにはサポートされません。


330 :デフォルトの名無しさん:2006/06/28(水) 10:01:32
>>322,323,324
今色々試して理解が進みました!ありがとうございます。
DataAdapterで作成していたものをTableAdapterで作成する方法を
知りたいのですが、1.1ではコネクションをIDE上で明示的に同じものを
指定していたものを、2.0ではそれが無くなったのでいまいちピンと来て
いませんでしたので、よって、コネクションに対する処理を全く記述せず、
以下のように書いていました。
using (TransactionScope ts = new TransactionScope())
{
tableAdaperParent.Update(ds.parent);
tableAdaperChild.Update(ds.child);
ts.Complete();
}
全てのTableAdapterのconnectionに同じコネクションを指定してうまくいきました。

SqlConnection con = new SqlConnection(Properties.Settings.Default.DBConnectionString);
DSTableAdapters.ParentTableAdapter tableAdaperParent = new DSTableAdapters.ParentTableAdapter();
DSTableAdapters.ChildTableAdapter tableAdaperChild = new DSTableAdapters.ChildTableAdapter();
tad.Connection = con;
tas.Connection = con;
using (TransactionScope ts = new TransactionScope())
{
con.Open();
try{
tableAdaperParent.Update(ds.parent);
tableAdaperChild.Update(ds.child);
}finally{
con.Close();
}
ts.Complete();
}

331 :デフォルトの名無しさん:2006/06/28(水) 10:06:21
ばたばた書いたので日本語変ですいません・・・

332 :デフォルトの名無しさん:2006/06/28(水) 17:24:38
教えてください。
pageloadに以下のような処理でxmlデータを返すaspx 「test.aspx」を作成しました。

Response.ContentType="application/xml";
Response.Write("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
ds.WriteXml(Response.OutputStream,XmlWriteMode.IgnoreSchema);

これを独自の拡張子、例えば「test.axml」のような形で呼び出すことは可能でしょうか?


333 :デフォルトの名無しさん:2006/06/28(水) 17:28:27
必ず特定の型のオブジェクトがソースとなるイベントを表すため、
下記のように、イベントハンドラの第一引数をobject以外の型にしました。

delegate void MyEventHandler(MyClass sender,EventArgs args);

しかし、.NetFrameworkでは、イベントハンドラの第一引数は必ずobjectとなっています。
ということは、このような使い方には何か問題があるのでしょうか?

334 :デフォルトの名無しさん:2006/06/28(水) 19:09:22
別に。
ガイドラインに従ってないってだけ。
拡張性には劣るだろうが、ま、気にしないなら別に良いんじゃね。

335 :デフォルトの名無しさん:2006/06/28(水) 19:28:29
正規表現のパターンマッチによって得られたGroupsの要素を
列挙するにはどう書けばいいんでしょうか?

336 :デフォルトの名無しさん:2006/06/28(水) 20:14:42
>>330
デフォルトだとConnectionプロパティがprivateになってるから見つけにくいですな。
外部キーが設定された親子テーブルをまとめて処理してくれる仕掛けが欲しいことろです。
NSDNに複数テーブルの更新例が載ってますがめんどい・・

337 :デフォルトの名無しさん:2006/06/28(水) 20:16:41
Nintendosoft Developer Network

338 :デフォルトの名無しさん:2006/06/28(水) 20:27:07
>>335
foreach( Group g in groups)

339 :デフォルトの名無しさん:2006/06/28(水) 20:42:43
>>338
ども

340 :デフォルトの名無しさん:2006/06/28(水) 21:18:19
c#でエクセルのシートの行を丸ごと削除することは可能なのでしょうか?
VB.NETとは結構構文が違うので、うまくいきません。。

341 :デフォルトの名無しさん:2006/06/28(水) 21:30:58
VB できるならそっちでやっとけ。
C# じゃ面倒なだけだ。

342 :デフォルトの名無しさん:2006/06/28(水) 23:05:55
>>341
そんな言い方するほど面倒くささは変わらないと思うが。

343 :デフォルトの名無しさん:2006/06/28(水) 23:16:06
refとType.Missingをつらつら書かなきゃいけないだけだよな。

344 :340:2006/06/29(木) 00:56:18
Type.Missingがポイントですね。
ありがとうございます。
何か原因わかってきました。

345 :デフォルトの名無しさん:2006/06/29(木) 01:24:44
>>363
それよりもTransactionを見せてほしい。
昇格サポートしてなきゃ分散トランザクション強制かよ。


346 :デフォルトの名無しさん:2006/06/29(木) 01:25:22
>>336だよばかぁ


347 :デフォルトの名無しさん:2006/06/29(木) 01:42:51
Jana Doe Styleみたいな3分割のパネルをもったアプリを作りたいんですが、
どのようなコントロールを使うといいですか?
SplitContainerを使うと2分割はできるようなんですが。

348 :デフォルトの名無しさん:2006/06/29(木) 01:44:55
SplitContainerの片方のパネルにもう一つSplitContainer
それくらい思いつけ。

349 :デフォルトの名無しさん:2006/06/29(木) 07:35:23
>>34
それをやったら4分割になってしまったんですが

350 :デフォルトの名無しさん:2006/06/29(木) 07:43:31
両方のパネルに SplitContainer してないか?

351 :デフォルトの名無しさん:2006/06/29(木) 07:49:37
うんこStyleユーザの知能が知れるな

352 :デフォルトの名無しさん:2006/06/29(木) 10:17:52
>>349 そんな業があるのなら俺が知りたい

353 :デフォルトの名無しさん:2006/06/29(木) 10:59:29
>>350
すんません、できました。


354 :デフォルトの名無しさん:2006/06/29(木) 20:21:48
コンソールアプリで、C#のコードを入力するとそれを実行するアプリを作ろうと思ってるんだけど
System.Reflection.Emitにあるクラスを駆使してできるかなぁって思ってたら
C#のコードを解析する方法がわかんない。
どうすればいいんすか?

// コード

string input = Console.ReadLine();

AppDomain domain = AppDomain.CurrentDomain;
AssemblyBuilder assemblyBuilder = domain.DefineDynamicAssembly(new System.Reflection.AssemblyName("TempAssembly"), AssemblyBuilderAccess.Run);
ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule("TempModule");
TypeBuilder typeBuilder = moduleBuilder.DefineType("TempClass");
MethodBuilder methodBuilder = typeBuilder.DefineMethod("TempMethod", MethodAttributes.Public, typeof(object), new Type[0]);
ILGenerator ilGenerator = methodBuilder.GetILGenerator();

// この辺でinputを解析する必要があると思うんだが、わからない。
// ↓の使い方もあまりよくわかってない。
// ilGenerator.Emit(OpCodes.Ret);

Type type = typeBuilder.CreateType();

object obj = Activator.CreateInstance(type);
MethodInfo methodInfo = type.GetMethod("TempMethod");

Console.WriteLine(methodInfo.Invoke(obj, null));


355 :デフォルトの名無しさん:2006/06/29(木) 20:23:40
Microsoft.CSharp

356 :354:2006/06/29(木) 20:26:50
ちなみに、入力したコードの戻り値がvoidだった場合のことは今のところ考慮してないんで。

やっぱ、inputをMSILに解析する処理を全部自分で作ってilGenerator.Emitを呼び出す必要があるのか・・・?
そしたらさすがに諦めるか・・・。

357 :354:2006/06/29(木) 20:31:05
>>355
それって、CodeDomを使うってことだよね?
CodeDomとSystem.Reflection.Emitを組み合わせることってできるの?
俺の認識だと、CodeDomはソースコードをコンパイルしてアセンブリを出力するためのものだと思ってるんだけど違うのかな。

358 :デフォルトの名無しさん:2006/06/29(木) 20:34:21
調べてから聞いてんのか?


359 :デフォルトの名無しさん:2006/06/29(木) 20:35:31
つかC#のコードなんだろ? ならCodeDOMだ。

360 :354:2006/06/29(木) 20:36:02
>>358
ごめん、一応調べてから聞いた。
ただ、俺には少し難しくて>>357のような認識に行き着いた。

361 :354:2006/06/29(木) 20:37:28
調べたってのは、最初の質問をするよりも前の話ね。

>>359
もうちょい頑張って調べてみる。
dクス。

362 :デフォルトの名無しさん:2006/06/29(木) 20:40:14
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/100compile/compile.html

363 :316:2006/06/29(木) 20:56:06
すいません、これむりなの?
ODBCのSQLTablePrivilegesを使いたいのですが
system.data.odbcから生ハンドルをとるには
どうするのでしょうか?

364 :354:2006/06/29(木) 20:58:37
俺の今まで辿った流れを言うと、
1.System.Reflection.Emitを駆使してやろうとした。
2.C#コードの解析方法わかんねー!ってなって、CodeDomを駆使してやろうとした。
3.アセンブリが出力されるのか・・・、やっぱ1でやりたいなって思って今に至る。
ちなみにCodeDomを駆使してやろうとしたときのコードが↓。

string input = Console.ReadLine();
StringBuilder sb = new StringBuilder();
sb.Append("using System;");
sb.Append("namespace test");
sb.Append("{");
sb.Append("public static class TestClass");
sb.Append("{");
sb.Append("public static object TestMethod()");
sb.Append("{");
sb.Append("return" + input);
sb.Append("}");
sb.Append("}");
sb.Append("}");
StringReader sr = new StringReader(sb.ToString());
Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.OutputAssembly = @"C:\test.dll";
parameters.GenerateInMemory = false;
parameters.TreatWarningsAsErrors = false;
CompilerResults result = provider.CompileAssemblyFromSource(parameters, sb.ToString());
if (result.Errors.Count == 0)
{ // 実行 }

このコードとさっき晒したコードをうまく組み合わせればいいのか・・・?

365 :デフォルトの名無しさん:2006/06/29(木) 21:00:21
>>364
おいおい、Emit でやっても結局は Assembly だぜ。

366 :デフォルトの名無しさん:2006/06/29(木) 21:04:42
CompileAssemblyFromSource
このメソッド名をみて疑問に思わなかったのかお前は。


367 :デフォルトの名無しさん:2006/06/29(木) 21:05:22
じゃねーわりい勘違いw

368 :354:2006/06/29(木) 21:15:54
>>367>>365のこと?

>>366
それ以外のメソッドを使うってこと?
最初、Parseメソッドを使えばアセンブリ出力しないでできるのかな?と思ったんだが
なんかParseメソッドはオーバーライドされてなくてNotImplementedExceptionだかがスローされた。

369 :デフォルトの名無しさん:2006/06/29(木) 21:24:42
MicrosoftもParseを実装していてくれれば自分がAntlrで苦しむこともなかったのに・・・

370 :デフォルトの名無しさん:2006/06/29(木) 21:28:45
ファイルに出力しないのは CompilerParameters.GenerateInMemory だな。
未実装だが。

371 :354:2006/06/29(木) 21:29:21
なんか勘違いしてたかも。
CompilerParametersのOutputAssemblyを設定しないで、
GenerateInMemoryにtrueを設定してやれば
ファイル出力はされずメモリに格納されるっぽい???



372 :354:2006/06/29(木) 21:30:02
>>370
うお、まじっすか orz

373 :354:2006/06/29(木) 21:50:19
ででででできたお!!
みんなdクス!!

string input = Console.ReadLine();
StringBuilder sb = new StringBuilder();
sb.Append("using System;");
sb.Append("namespace Temp");
sb.Append("{");
sb.Append("public class TempClass");
sb.Append("{");
sb.Append("public object TempMethod()");
sb.Append("{");
sb.Append("return " + input + ";");
sb.Append("}");
sb.Append("}");
sb.Append("}");
Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.GenerateInMemory = true;
parameters.TreatWarningsAsErrors = false;
CompilerResults result = provider.CompileAssemblyFromSource(parameters, sb.ToString());
if (result.Errors.Count == 0)
{
Assembly assembly = result.CompiledAssembly;
Type type = assembly.GetType("Temp.TempClass");
Object obj = Activator.CreateInstance(type);
MethodInfo methodInfo = type.GetMethod("TempMethod");
Console.WriteLine(methodInfo.Invoke(obj, null));
}

1+1って入力したら2ってちゃんと帰ってきたぞwwwww

374 :デフォルトの名無しさん:2006/06/29(木) 23:48:56


375 :デフォルトの名無しさん:2006/06/30(金) 00:51:51
俺も昔簡単なC#インタプリタ作ったが(もちろんCodeDOM使って)、
初めて動いたときは感動した。

376 :デフォルトの名無しさん:2006/06/30(金) 09:14:47
cのmemcmpはc#だと何ですか?
Array,Bufferあたりだと思ったけど見当たりません。単に
byte[] a, b;
if(a.Length == b.Length){
  for(...){
    if(a[i]!=b[i]){
      return false;
ができればいいのですが。

377 :デフォルトの名無しさん:2006/06/30(金) 10:01:00
>>376
それでいいんじゃない?
何を問題にしているか分かんないからこれ以上答えらんない。

378 :デフォルトの名無しさん:2006/06/30(金) 10:13:38
>>376
C#というか.NET Frameworkには実装されてないので自分でやらないと駄目

379 :デフォルトの名無しさん:2006/06/30(金) 10:19:11
>>377 無限ループ

380 :デフォルトの名無しさん:2006/06/30(金) 10:32:43
単純にArray.CopyToかCloneでいけるんとちゃうの?

381 :376:2006/06/30(金) 11:13:24
標準ライブラリにはありませんか。なんで用意されてないんだろう。

382 :デフォルトの名無しさん:2006/06/30(金) 11:14:27
アフリカでは良くあること

383 :デフォルトの名無しさん:2006/06/30(金) 12:25:52
あるあるあるある。

384 :デフォルトの名無しさん:2006/06/30(金) 13:40:39
>>373
で、メモリ内に生成したアセンブリのアンロードはどうする?

385 :354:2006/06/30(金) 14:31:05
>>384
メモリ内に生成されてるんだからGCがちゃんと回収してくれるでしょ。
別にアンマネージリソースじゃないから、明示的に何かしてやる必要なくない?
まぁ、CSharpCodeProviderはIDisposable実装クラスだから、ちゃんとDisposeかけてやる必要あるか。

386 :デフォルトの名無しさん:2006/06/30(金) 14:39:58
VC#2003 で質問です。
http://msdn2.microsoft.com/ja-jp/library/ty48b824.aspx
にあるネットワーク トレースを構成する を行ないたいのですが
うまくログファイルが作られません。
App.Config を追加して、上記URLにある内容を貼りつけ、DEBUGビルド
するだけでは駄目でしょうか?


387 :デフォルトの名無しさん:2006/06/30(金) 15:41:36
richTextBoxを使って簡単なテキストエディタを作成しています。
秀丸のように、左側に行番号を表示したいのですが、どのような
方法で実現できるでしょうか? やってみたことは次の2つです。
1) テキストに line.ToString().PadLeft(5) +":" など頭につけて、
 richTextBox.のTextにいれた。
 行番号が編集できてしまうし、行を追加したとき、行番号が増えない・・・
 あたりまえだ・・・orz
2) richTextBoxの左に幅の狭いTextBoxを置き、ここに行番号を
 表示させた。
 いまく、richTextBoxの現在の行頭番号が取得できないのと、
 スクロールしたときなどのイベントが取れないし、そのつど、
 TextBox の行番号文字列を作成しなおすので処理が重くて
 使い物にならない・・・
なにか、よい方法をご教授してください。

388 :デフォルトの名無しさん:2006/06/30(金) 16:17:12
>>370-372
少なくとも手元にある.NET2.0では
static void Main(string[] args) {
CompilerParameters cp = new CompilerParameters();
cp.GenerateInMemory = true;
cp.GenerateExecutable = false;
cp.ReferencedAssemblies.Add("System.dll");
CompilerResults cr = CodeDomProvider.CreateProvider("csharp").CompileAssemblyFromSource(cp, @"public class A { public static int F() { System.Console.WriteLine(""1234567890""); return 12345; } }");

Assembly a = cr.CompiledAssembly;
Type t = a.GetType("A");
MethodInfo m = t.GetMethod("F");
Console.WriteLine("return: {0}", m.Invoke(null, null));
Console.ReadLine();
}
が普通に動作したが…

>>385
ロードしたアセンブリそのものはGCの対象外。
>>354がやりたいことが、大して大きなアセンブリ動的生成でないならば、
あとかたつけはあまり考えなくとも良いけど、
サーバのような長命アプリでユーザからの入力に応じて最適化されたアセンブリを生成するとかいうなら、
アプリケーションドメイン分けしてアンロードするしかないかと。
どのコストがどの程度かは実際やってみないとなんとも。

>>384へのレスが的外れ気味なのを見ると、
すまんがちょっと全体的に知識不足な感が否めない気がする。

389 :デフォルトの名無しさん:2006/06/30(金) 19:03:20
>>388
> が普通に動作したが…
アセンブリファイルはテンポラリフォルダに作成されるんだ。
わざと間違ったコード書いて CompilerResults の出力見ればコンパイルのコマンドオプションごと取得できるから分かる。
まあコンパイラ(csc.exe)が対応してないんだからどうしようもないんだが。

390 :354:2006/06/30(金) 20:33:44
>ロードしたアセンブリそのものはGCの対象外。
GCの対象外か。アプリケーションドメインがアンロードすればメモリ上のアセンブリは削除される?

>大して大きなアセンブリ動的生成でないならば、 あとかたつけはあまり考えなくとも良いけど、
いや、俺はその辺ちゃんとやりたい。

>全体的に知識不足な感が否めない
うん、俺あんま詳しくない。

Assembly assembly = result.CompiledAssembly;のCompiledAssemblyで
現在のAppDomainに対してアセンブリをLoadするみたいだけど、
AppDomainが終了するとメモリ上のアセンブリも削除されるんなら
ここで別のAppDomainにLoadするようにすれば解決ってことだよね?

391 :354:2006/06/30(金) 20:37:28
あれ、なんか違う。
不要になったらAppDomainをアンロードする処理が必要なのか。
その辺の処理の仕方も調べとかないと。

392 :デフォルトの名無しさん:2006/06/30(金) 20:52:21
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=30695&forum=7
AppDomain との絡みはこの辺が参考になるかもしれん

393 :354:2006/07/01(土) 03:59:33
なんかよくわからなくなってきた。
つーか、CompilerParametersのGenerateInMemoryにtrueを設定すると、
CompileAssemblyFromSourceを実行しただけでアセンブリがロードされるぞ・・・。
これって別のAppDomainにロードするのは無理ってことじゃまいか?

394 :デフォルトの名無しさん:2006/07/01(土) 06:52:57
別 AppDomain でコンパイルすれば良かろう

395 :354:2006/07/01(土) 16:53:50
それだと、コンパイル処理を行うクラスを作成して、
そのクラスは別アセンブリに切り離して、
そんで別AppDomainにそのアセンブリをロードして、コンパイル実行ってなるんだよな。
そこまでやるのはちょっと。。。

しょうがない、俺のやりたいことだとアセンブリのアンロードしなくても全く支障ないし、諦めるか・・・。
みんな色々ありがと

396 :デフォルトの名無しさん:2006/07/01(土) 20:42:23
な、何を言ってるんだ?


397 :デフォルトの名無しさん:2006/07/01(土) 20:44:44
つうか>>392のリンクにあるような方法で出来るだろ。


398 :デフォルトの名無しさん:2006/07/01(土) 20:50:51
VC#2005の質問です。
webBrowserを使うとページによっては
Flashがうざいんですけど一時的に消す方法ないですか?

399 :デフォルトの名無しさん:2006/07/01(土) 21:42:06
MSHTMLでゴリゴリやれば可能だけれどもWebBrowserでは無理じゃないかな

400 :398:2006/07/01(土) 22:33:33
>>399
やっぱり無理ですか。
レスありがとうございます。

401 :354:2006/07/02(日) 01:15:16
>>396
別AppDomainで処理をするには、その処理を含んでいるアセンブリそのものを
別AppDomainにロードする必要があると思っているんだけど、違うやりかたがあるの?

>>397
リンク先のケースだと、プラグインの動的読み込みだから、アセンブリがファイルとして存在するんだよね。
でもコンパイルしたときにメモリ上に出力する場合って、それと同時にAppDomainにロードされちゃうみたいだから・・・。
コンパイルしてファイルに出力すれば済むんだけど、それはやりたくないのでどうにも。

402 :デフォルトの名無しさん:2006/07/02(日) 01:34:59
いったいどこを問題にしてるわけ?

>別AppDomainで処理をするには、その処理を含んでいるアセンブリそのものを
>別AppDomainにロードする必要があると思っているんだけど、違うやりかたがあるの?
そのとおりだけどそうすればいいだけで別に困らんと思うが?

>リンク先のケースだと、プラグインの動的読み込みだから、アセンブリがファイルとして存在するんだよね。
だからファイルからロードする代わりにコンパイルするんだろ?

何か問題があるわけ?
※そりゃ多少は面倒は増えるが。


403 :デフォルトの名無しさん:2006/07/02(日) 01:37:10
今までやってることはほとんどそのままで、
実行するときに別AppDomainでやればいいってだけだと思うんだが。


404 :354:2006/07/02(日) 02:02:57
>>402
ファイルからロードするなら、>>392のリンク先のやりかたで別AppDomainにロードできるけど
コンパイルしてメモリ上に出力する場合は、それができないじゃん。
そうすると、コンパイル自体をまず別AppDomainで行う必要があると。
んで、>>395にも書いたとおり、そこまでするのはちょっとなぁってこと。
そこまでっていうのは、アセンブリのアンロードをしたいという理由で別DLLを用意するということね。

405 :デフォルトの名無しさん:2006/07/02(日) 02:30:27
なあ、どこまで分かってるんだ?
なんで別AppDomainでコンパイルするためだけに別DLLを用意する必要があるんだよ。


406 :デフォルトの名無しさん:2006/07/02(日) 15:43:34
>それだと、コンパイル処理を行うクラスを作成して、
>そのクラスは別アセンブリに切り離して、
>そんで別AppDomainにそのアセンブリをロードして、コンパイル実行ってなるんだよな。
なんで別アセンブリにしなきゃならないと思ったんだ?


407 :デフォルトの名無しさん:2006/07/02(日) 22:40:25
>>401
メモリ上にコンパイルをするにしても、一時ファイルできちゃうみたいだし、
使用後のリソースを片つけるという意味では、その一時ファイルも消さないといけない。
おとなしくファイルにコンパイルした後、ロードしたほうがいいのでは?

>コンパイルしてファイルに出力すれば済むんだけど、それはやりたくないのでどうにも。
これの根拠は?
>>390でも
>>大して大きなアセンブリ動的生成でないならば、 あとかたつけはあまり考えなくとも良いけど、
>いや、俺はその辺ちゃんとやりたい。
と、いってるのに、>>395では諦めるといっている。

基本的に、脳内の思い込みで制限を課しているのがほとんどだと思うのだが。
本当にちゃんと根拠があるわけ?

408 :354:2006/07/02(日) 23:16:12
んー、既にAppDomainにロードされているアセンブリを他のAppDomainにロードしようとしたら
うまくいかなかったから、てっきり別にアセンブリ(DLL)を用意する必要があると思ってたんだけど違うのか・・・?

>>407
>と、いってるのに、>>395では諦めるといっている。
いや、当初はまさかアンロードのために別DLLを用意する必要があるとは思わなかったんだ。(これが勘違いだったようだが。)


結局、別DLLを用意せずに、ある処理を別AppDomainで実行するためにはどうしたらいいの?orz

409 :デフォルトの名無しさん:2006/07/03(月) 00:11:31
>うまくいかなかったから、てっきり別にアセンブリ(DLL)を用意する必要があると思ってたんだけど違うのか・・・?
どうやってみてどううまくいかなかったんだ?
常識的に考えてそんな制限あったら使いもんにならんだろうが。


410 :354:2006/07/03(月) 00:55:13
>>409
以下のようなコードを記述して、tempDomain.AssemblyLoadイベントのハンドラにブレークポイントを張ったんだが
ハンドラが実行されることはなかったので。根本的に間違ってるかも。

// CSharpExecuter.Programクラス
static void Main(string[] args)
{
AppDomain mainDomain = AppDomain.CurrentDomain;
AppDomain tempDomain = AppDomain.CreateDomain("Temp");
string input = Console.ReadLine();
StringBuilder sb = new StringBuilder();
sb.Append("using System;");
sb.Append("namespace Temp");
sb.Append("{");
sb.Append("public class TempClass");
sb.Append("{");
sb.Append("public object TempMethod()");
sb.Append("{");
sb.Append("return " + input + ";");
sb.Append("}");
sb.Append("}");
sb.Append("}");
Assembly loadAssembly = tempDomain.Load(Assembly.GetExecutingAssembly().GetName());
Test test = (Test)loadAssembly.CreateInstance("CSharpExecuter.Test");
Assembly assembly = test.CompileAssemblyToMemory(sb.ToString());
Type type = assembly.GetType("Temp.TempClass");
Object obj = Activator.CreateInstance(type);
MethodInfo methodInfo = type.GetMethod("TempMethod");
Console.WriteLine(methodInfo.Invoke(obj, null));
AppDomain.Unload(tempDomain);
Console.ReadLine();
}

411 :354:2006/07/03(月) 00:56:30
続き

// CSharpExecuter.Testクラス
public Assembly CompileAssemblyToMemory(params string[] source)
{
using (Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider())
{
CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.GenerateInMemory = true;
parameters.TreatWarningsAsErrors = false;

CompilerResults result = provider.CompileAssemblyFromSource(parameters, source);
if (result.Errors.Count == 0)
{
return result.CompiledAssembly;
}
else
{
string message = string.Empty;
foreach (CompilerError error in result.Errors)
{
message += error.ErrorText + "\r\n";
}
throw new ApplicationException(message);
}
}
}


412 :デフォルトの名無しさん:2006/07/03(月) 02:10:54
C#にYaccみたいな構文解析のソフトってありますか?

413 :デフォルトの名無しさん:2006/07/03(月) 02:24:55
ANTLR

414 :デフォルトの名無しさん:2006/07/03(月) 02:39:22
>>410
おまえがメソッドのマニュアルすらちゃんと読めてないことは分かった。
…ていうかおまえドメインの扱いまったく理解してないだろ。

現在のドメインと対象のドメインでそれぞれどう動いているか、
対象のドメインから何を返してよくて何を返したらだめか、
アセンブリのロード等を行った場合に返ってくるのは
現在のドメインのアセンブリか、対象ドメインのアセンブリか、
その辺ちゃんと理解しないと無理だぞ。


415 :デフォルトの名無しさん:2006/07/03(月) 02:48:36
いくつかヒントを言っとく。

AssemblyはMarshalByRefじゃないからドメインまたがって参照は返せない。

>>410のコードだとコンパイルしてる型はMarshalByRefじゃないから
やっぱりドメインをまたがっては返せない。
もちろんその前にお前が対象ドメインで操作してるつもりのアセンブリは
実際には現在のドメインのアセンブリだから対照ドメインでコンパイルはできてない。
また>>411からは分からないが、CSharpExecuter.TestがMarshalByRefじゃなければ
対象ドメイン内でコンパイルなどできない。
まあその前にインスタンス返そうとした時点で例外になると思うが。

TempClassをMarshalByRefにしてドメインをまたがって参照を取得するか、
CSharpExecuter.Testでメソッドの実行まで行って結果をもらうだけにしないと、
対象ドメインで実行することはできない。

Activator.CreateInstanceは当然ながら現在のドメインにインスタンスを
作成するし、そもそもアセンブリを現在のドメインに呼んでしまったら意味ないし。



突っ込みどころ満載過ぎて、もう、どうしようもないな…


416 :デフォルトの名無しさん:2006/07/03(月) 03:03:01
ああ、
>TempClassをMarshalByRefにしてドメインをまたがって参照を取得するか
て書いたけど、この場合はインターフェイスとか用意しといて実装して
インターフェイスで受け取るようにしないとだめだな。
※MarshalByRef派生の基底クラスやデリゲートでもまあいいかもしれんが。
でないとTempClassのアセンブリを現在のドメインに読む必要ができてしまう。


417 :デフォルトの名無しさん:2006/07/03(月) 05:06:20
オレが↑を理解できないことはわかった。

418 :412:2006/07/03(月) 05:42:40
>413
thx!!

419 :デフォルトの名無しさん:2006/07/03(月) 12:38:39
RichTextBoxをユーザーの操作を一切受け付けくない用途に使いたく
ReadOnlyにしていますが、マウス操作ができてしまい困っています。
カーソルについては KeyDownEvent でe.Handled = true;で禁止できま
きた。しかしマウスについてはどうしても禁止できず、マウスで範囲指定
して、スクロールもできてしまいます。
なんとかすべての操作を禁止させたいのですが、方法はありますか?


420 :デフォルトの名無しさん:2006/07/03(月) 14:11:40
読み込んだHTMLファイルのタグを全て除去したいのですが
よい方法はありませんか?

421 :デフォルトの名無しさん:2006/07/03(月) 14:37:35
>>419
ならLabelとか使えばいいんじゃん?

422 :デフォルトの名無しさん:2006/07/03(月) 14:38:34
>>420
「<」と「>」で囲まれた部分を削除すればいいんじゃん?

423 :デフォルトの名無しさん:2006/07/03(月) 14:57:40
>>419
RichTextBoxを継承してWndProcオーバーライド
マウス系のメッセージを握りつぶせ

424 :デフォルトの名無しさん:2006/07/03(月) 16:59:30
>>419
自己レスになります。
フォーカスのEnterイベントで他のコントロールに
Forcusすることで解決しました。


425 :デフォルトの名無しさん:2006/07/03(月) 17:01:08
>>421
Labelとか、TextBoxでは機能不足で、
RichTextBoxでないと表現できない
ものなのでしょうがないんです。

426 :420:2006/07/03(月) 17:14:38
ありがとうございます。
textBox2.Text = textBox1.Text.Replace("<.+?>","たぶ");
のようにして、HTMLタグを"たぶ"と変換してみたのですが
変換されずそのまま表示されてしまいます。
”<”と”>”の位置を探して位置を指定して削除する方法で行うのでしょうか?

427 :デフォルトの名無しさん:2006/07/03(月) 17:20:42
>>426
Regex.Replace(textBox1.Text, "<.+?>", "たぶ");
じゃ、だめ?


428 :420:2006/07/03(月) 17:30:28
ありがとうございます!!
うまく動作できました!!感謝!

429 :デフォルトの名無しさん:2006/07/03(月) 20:49:57
やはり最後はRegexなわけだな。

ところで、みんなRegexは何て発音してる?
俺は基本「れげっくす」で、
心に余裕があるときは略さず「れぎゅらーえくすぷれっしょん」て読んでる。
人に話したことは無い。

430 :デフォルトの名無しさん:2006/07/03(月) 20:52:43
れじっくす

431 :デフォルトの名無しさん:2006/07/03(月) 20:56:07
れぐいーえっくす

432 :デフォルトの名無しさん:2006/07/03(月) 21:05:21
れぐえっくす

433 :デフォルトの名無しさん:2006/07/03(月) 21:10:48
せいきひょうげん

434 :デフォルトの名無しさん:2006/07/03(月) 21:42:51
>>429
つまらんネタふるなハゲ

435 :デフォルトの名無しさん:2006/07/03(月) 21:47:26
りじぇっくす

436 :デフォルトの名無しさん:2006/07/03(月) 22:11:35
エグいっす

437 :デフォルトの名無しさん:2006/07/04(火) 10:07:00
DataGridで、カラム(ヘッダというのかも)と、データ部で、
alignmentを変えるにはどうすればいいでしょうか?
具体的にはカラムは中央寄せで、データは右寄せにしたいと思っています。
環境はWindows2000、.Net Framework1.1 VC#2003です。

438 :デフォルトの名無しさん:2006/07/04(火) 16:35:59
C#でお絵かきソフトって作れますか?

439 :デフォルトの名無しさん:2006/07/04(火) 16:36:14
コンパイラの警告 (レベル 1) CS1911 に関する質問です。

class C {
delegate void D();
delegate IAsyncResult BeginDelegate(AsyncCallback callback, object o);
delegate IAsyncResult Continuation(AsyncCallback continuation);
static Continuation MakeContinuation(BeginDelegate d) {
return delegate(AsyncCallback callback) { return d(callback, null); };
}
IEnumerator<Continuation> F() {
D d1 = delegate() { };
yield return MakeContinuation(d1.BeginInvoke); // ここで警告
// 以下、EndInvokeなど
}
// その他、イテレータの駆動メソッドなど
}

のようなものを作っています(↑のものは実際のものをかなり簡略化)。
コンパイルすると、「d1.BeginInvoke」の部分で、

匿名メソッドまたは反復子から、
'base' キーワードをとおしてメンバ 'C.D.BeginInvoke(System.AsyncCallback, object)' へアクセスすると、
確認不可能なコードを生じさせます。
含んでいる型のヘルパ メソッドにアクセスを移動することを考慮してください。

のような警告が出ます。
おそらくどこかに隠れたbaseがあるのだと思うのですが、どこにあるのでしょうか。
一応、Reflectorなどでも確認したのですが、見当たりません。
よろしくお願いします。

440 :デフォルトの名無しさん:2006/07/04(火) 17:03:56
>>438
http://www.gotdotnet.com/japan/student/column/moredotnet/moredotnet1.aspx

441 :439:2006/07/04(火) 17:07:25
自己解決しました。

BeginInvokeはvirtualだった…

442 :デフォルトの名無しさん:2006/07/04(火) 17:09:52
カンマ区切のエクセルのデータを配列に格納したいのですが
カンマ区切でデータを分割するにはどうすればいいですか?

443 :デフォルトの名無しさん:2006/07/04(火) 17:14:10
string.split(new char[] {','})

444 :デフォルトの名無しさん:2006/07/04(火) 17:42:35
ほんとうにそれだけで大丈夫かな?
"\123,00の品物",ごご,がが とかだと問題でるやろ

445 :デフォルトの名無しさん:2006/07/04(火) 17:47:32
Microsoft.VisualBasic.FileIO.TextFieldParserクラス

446 :デフォルトの名無しさん:2006/07/04(火) 19:35:01
>>438
君が大したプログラマだったら、Photoshopに負けないものを作れるかもしれない。
君が大したことないプログラマだったら、Microsoft ペイントに負けないのが関の山
かもしれない。

447 :デフォルトの名無しさん:2006/07/04(火) 19:36:05
C# だと速度的な観点から言えば Photoshop には勝てない気が。

448 :デフォルトの名無しさん:2006/07/04(火) 19:40:32
Photshoptと同じようなもの作ってもなぁ・・・

449 :デフォルトの名無しさん:2006/07/04(火) 19:59:34
ttp://www.eecs.wsu.edu/paint.net/index.html
.NETでペイントソフトっていうとこれかなぁ
一部ネイティブらしいけど

450 :デフォルトの名無しさん:2006/07/04(火) 20:00:18
MATLABみたいに画像処理できるの作ってよ
できればGUIで

451 :デフォルトの名無しさん:2006/07/04(火) 20:16:17
なぜそこでMATLABが

452 :デフォルトの名無しさん:2006/07/04(火) 20:19:55
MATLABおもすれー(^ω^;)

453 :デフォルトの名無しさん:2006/07/04(火) 20:24:22
>>449
初めて見たけど、素直なインターフェースで良さげなソフト。

454 :デフォルトの名無しさん:2006/07/04(火) 20:46:40
ちょっと前使ってたがレイヤーも使えるしそこそこいい
けどやっぱダメだ

455 :デフォルトの名無しさん:2006/07/04(火) 20:52:15
GimpShop よりも明らかに使いやすいな

456 :デフォルトの名無しさん:2006/07/04(火) 20:53:07
>>448
Photoshop並のものを作ってシェアウェアで公開しても誰も買わないだろうな
P2Pのせいかソフトウェアは無料が当たり前
一般人は「パソコン使う仕事は全部虚業」って考えが多くなってて困る

457 :デフォルトの名無しさん:2006/07/04(火) 20:54:30
ケータイアプリはゴミでも金取れるけどな

458 :354:2006/07/04(火) 23:19:47
>>449
確かPaint.NETは学生がMSのアドバイスを受けながら開発したものなんだよな。
使ってみたことあるけど、グラデーションのかけかたがわかんなかった。(用意されてないのか?)

459 :デフォルトの名無しさん:2006/07/04(火) 23:20:32
うはww名前消し忘れたwwwwww

460 :デフォルトの名無しさん:2006/07/06(木) 14:54:24
DateTimePickerには9998/12/31までしか設定できないみたいですが
どうしてDateTime.MaxValue(9999/12/31) を設定できないんでしょうか。
回避するにはどうしたらいいでしょうか?



461 :デフォルトの名無しさん:2006/07/06(木) 16:17:56
>>460
その頃にはゴキブリが地上を支配しているから、台所行って頼むしかない。

462 :デフォルトの名無しさん:2006/07/06(木) 17:28:56
PictureBoxに表示した背景画像の上に、
スプライトのように、一部透明な画像を表示したいんですが
どうしたらいいでしょうか?

透過色指定したPNGファイルで、MakeTransparent(〜); を呼び出しても、
PictureBoxのBackgroundColorの色が表示されてしまい、
BackgroundColorを透過色にしても(当然ながら)ダメでした。

463 :デフォルトの名無しさん:2006/07/06(木) 19:07:12
背景画像とやらに直接描画する

464 :デフォルトの名無しさん:2006/07/06(木) 19:13:47
レイヤードウィンドウを使う

465 :デフォルトの名無しさん:2006/07/06(木) 23:16:16
テキストファイルの指定した行のみ読み込む方法はありませか?

466 :デフォルトの名無しさん:2006/07/06(木) 23:19:25
StreamReader で目的行まで空読み

467 :465:2006/07/06(木) 23:26:58
あっ!!そうか!ありがとうございました!

468 :デフォルトの名無しさん:2006/07/06(木) 23:29:14
えぇぇぇぇぇぇ

469 :デフォルトの名無しさん:2006/07/07(金) 17:50:21
うるせーよ。どっかいけw

470 :デフォルトの名無しさん:2006/07/08(土) 03:22:24
ドライバフック型COMポートラインモニタ COMTOOL
ttp://www.vector.co.jp/soft/winnt/hardware/se365661.html

上記のようなラインモニタを作成したいのですが、
SerialPortクラスで実現可能でしょうか?
http://msdn2.microsoft.com/ja-jp/library/system.io.ports.serialport.aspx


471 :デフォルトの名無しさん:2006/07/08(土) 09:10:12
Visual C# .NETでForm2のオブジェクトのプロパティをForm1に
表示するにはどうすればいいんだぜ?

472 :デフォルトの名無しさん:2006/07/08(土) 09:21:10
textBox.Text=form2.HogeProperty.ToString();


473 :デフォルトの名無しさん:2006/07/08(土) 09:45:27
PropertyGrid

474 :デフォルトの名無しさん:2006/07/08(土) 18:54:49
マルチページのTIFFを表示して印刷するアプリを作ってるんだが、
上手くいかなくて困っている。

Image#FromFileでファイルを読み込むとファイルがロックされてしまう。
仕方がないので以下のようにしたら、今度はアクティブなフレームを切替える
ところでGDI+のエラーが出てどうにもならない。
FileStream fs = new FileStream("hoge.tif");
Image img = Image.FromStream(fs);
fs.Close();
// 別のボタンのイベントでアクティブなフレームを切替える

どうにかして、ファイルをロックせずに、マルチページTIFFを読み込んで
ページの切替えを自由自在にやる方法はないもでしょうか?

475 :デフォルトの名無しさん:2006/07/08(土) 19:01:37
GDI+のエラーって?

476 :デフォルトの名無しさん:2006/07/08(土) 19:38:02
一旦ファイルを MemoryStream に読み込んでそれから Image つくれ。
// 最近減ったなこの質問

477 :デフォルトの名無しさん:2006/07/08(土) 21:21:59
文字列から数値に変換しようとして悩んでいます。
Int.Parse("255");
などの数字文字列は問題なく変換されますが、
Int.Parse("ff");
などの16進の文字列は変換できないようです。こういう場合どうするのが良いのでしょう?
Convert などは駄目みたいですね。

478 :デフォルトの名無しさん:2006/07/08(土) 21:30:18
Convertにもオーバーロードがある
Int32.Parseにもオーバーロードがある

479 :デフォルトの名無しさん:2006/07/08(土) 21:31:23
VS2005なんですが
Form1のメニューバーの「バージョン情報」から
Form2(バージョン情報のウインドウ)のウインドウを開くにはどうしたらいいんでしょうか?

480 :デフォルトの名無しさん:2006/07/08(土) 21:35:10
>>478
どもです。見つかりました。

念のため回答を書いておきます。
Int32.Parse("FF", System.Globalization.NumberStyles.AllowHexSpecifier));
これで 255 を取り出せます。

481 :デフォルトの名無しさん:2006/07/08(土) 21:41:15
>>479
Form2 を作って ShowDialog すればいいんじゃね?

482 :デフォルトの名無しさん:2006/07/08(土) 22:25:11
>>481
できました
ありがとうございました

483 :デフォルトの名無しさん:2006/07/08(土) 23:12:56
Windows.Forms.Form が表示された直後に1回だけ呼ばれるイベントってないですかね?
Load は表示される前だし。

Activate でフラグを立てて2度目移行は反応しないってのを考えたけど、それ意外にある?

484 :デフォルトの名無しさん:2006/07/08(土) 23:36:37
フラグじゃなくてイベントハンドラそのものをさっぴいとけ

485 :デフォルトの名無しさん:2006/07/09(日) 00:02:48
WebBrowser.Navigate("〜〜〜〜");
で表示させたURLから移動したことを検出するにはどのような操作をすればいいんでしょうか?

486 :デフォルトの名無しさん:2006/07/09(日) 00:37:53
Shown

487 :470:2006/07/09(日) 02:55:42
Serialクラスははずれっぽい
フックを使うのかな。。


488 :デフォルトの名無しさん:2006/07/09(日) 03:06:03
>>476
よくある質問だったのかorz
ありがとう。多分これでできそう。

489 :デフォルトの名無しさん:2006/07/09(日) 04:27:22
>>442
http://www.vipper.org/vip287428.pdf.html
pass:csv

この状態遷移で処理すれば読み込める

490 :デフォルトの名無しさん:2006/07/09(日) 07:23:54
Excel互換のCSV処理なら、Microsoft.VisualBasic名前空間のTextFieldParser関数を使う。
配列にデータを放り込む程度なら、5,6行もコード書けば終わる。

491 :デフォルトの名無しさん:2006/07/09(日) 12:53:54
>>483
「表示された」という現象はソフトの操作者が認識する。
よって、そんなイベントはありえない。

492 :デフォルトの名無しさん:2006/07/09(日) 12:58:25
>>491 あほす

493 :デフォルトの名無しさん:2006/07/09(日) 13:52:59
>>491
あきれた

494 :491:2006/07/09(日) 15:07:38
だって、そうじゃんよ(・∀・)

いくらシステムの方で「表示されました」って主張したって、
実際にディスプレイを見ている使用者の目に映っているとは限らない。

495 :デフォルトの名無しさん:2006/07/09(日) 15:11:09
だれが、使用者の目に映ったかイベントをハンドルしたいといってるのかと


496 :デフォルトの名無しさん:2006/07/09(日) 15:14:15
とりあえず >>486 を百億万回読み直すように >>491

497 :491:2006/07/09(日) 15:29:35
>>495
でもそうゆうことになっちゃうじゃんよ結局。
それで漏れは「無理だ」といったわけ。

>>483は、表示される前では意味が無く、
表示されてから行いたい処理があるからこそ
「表示された直後」のイベントが欲しいと言ってるんだろ?

一般に表示を担当するスレッドの優先率は低いから
実際に表示されるタイミングは、システムの処理状況しだいで
変わるじゃんよ。おまけにビデオカードやディスプレイなんかの
ハード的な条件も加わるだろ?
実際に使用者の目に映るまでには、いろんなボトルネックがあるわけ。

だから、いくらシステムが「表示しました」なんて言い張ったとしても
そのタイミングで実際にユーザが「見えている」とは限らないでしょ。
それでも「見えてから」行わないと意味の無い処理をしたいと
>>483は希望してるんだと漏れは考えたわけよ

わかった?


498 :デフォルトの名無しさん:2006/07/09(日) 15:36:17
>>497 あほすぎて付き合う気にも慣れん。
クライアントのいったことを脳内解釈して希望と全然違うシステム作って俺は間違ってないとふんぞり返りそうな奴だ。

499 :491:2006/07/09(日) 15:43:09
>>498
あくまでもありうる解釈として厳密に言ってみただけだよ。
実際の開発現場での実践論を話してるわけじゃない(・∀・)
ジョークが通じない奴だなおまいはw

500 :デフォルトの名無しさん:2006/07/09(日) 15:47:59
>>497 ここまで必死なのに・・・・

501 :デフォルトの名無しさん:2006/07/09(日) 15:49:55
>499
冗談だったのなら>494の段階で言うべきだったな。
あそこで頑張っちゃったからもはや取り繕えない。まぁ、ID変わるまで
黙ってろってこった。

502 :491:2006/07/09(日) 15:50:52
>>500
へ?(・∀・)
>>497のどこが必死に見えるの?w

503 :491:2006/07/09(日) 15:54:27
>>501
>>494は別に頑張ったわけでもないし
必死なわけでもないんだけどなぁ・・・ww
IDも表示してないし(・∀・)

504 :デフォルトの名無しさん:2006/07/09(日) 15:57:22
>>503 いいよ。もう。おマイ必死すぎ。

505 :デフォルトの名無しさん:2006/07/09(日) 15:58:59
なんか必死な人がいるスレはここですか?

506 :デフォルトの名無しさん:2006/07/09(日) 16:00:06
>503
ああ、間違った。ここはID表示なかったね。良かったじゃないか。
オレは冗談だと分かってたのでドーデモいいのだが、それを逆手に取るのも
2ちゃんってもんだろ?それにイチイチ反論するってのが馬鹿なのよ。
無視してればそれこそ>491-492が冗談のわからない馬鹿として見られたのに、
>494で、「ああ、馬鹿にされるのもしょうがないか」と思わせたね。

関係ない話題なんで、オレはもう書かない。

507 :デフォルトの名無しさん:2006/07/09(日) 16:03:06
痛々しいスレッドはここですね

508 :491:2006/07/09(日) 16:03:20
ちょっ、まいったなぁw

ちょっとした揚げ足取りみたいな言い返しって
普通の生活の中でよくやるじゃんよおw
>>491もそんな感じで言っただけじゃんか
おまいらそうゆうことしないの?(・∀・)

509 :デフォルトの名無しさん:2006/07/09(日) 16:03:34
>>503
あくまでもありうる解釈として厳密に言ってみただけだよ。
実際に>>491が必死かどうかを話してるわけじゃない(・∀・)
ジョークが通じない奴だなおまいはw


510 :デフォルトの名無しさん:2006/07/09(日) 16:06:55
ここは>>491が冗談のつもりで言ってそれに一応突っ込んだ人に対してそのジョークさ加減を必死に説明するスレになりました。

511 :491:2006/07/09(日) 16:07:26
>>506
>>494にしたってただの「返し」のつもりだったんだけどな・・・w ま、いいや(・∀・)

512 :デフォルトの名無しさん:2006/07/09(日) 16:08:02
>508
打たれ弱いな。お前にお笑いはムリだ。

513 :デフォルトの名無しさん:2006/07/09(日) 16:08:39
言い訳がましいw

514 :デフォルトの名無しさん:2006/07/09(日) 16:10:21
>509
コピペ乙

515 :デフォルトの名無しさん:2006/07/09(日) 16:10:32
なんだか小学生が失敗したときに「わざとだよ」と開き直るのを見た気分。
「もういいんだよ」と優しい言葉をかけてやろうではないか皆の衆。

516 :デフォルトの名無しさん:2006/07/09(日) 16:11:28
おまえもな


517 :デフォルトの名無しさん:2006/07/09(日) 16:14:18
>>512

518 :デフォルトの名無しさん:2006/07/09(日) 16:15:42
そんなにリロードしてサーバに負担をかけるんじゃない。
日曜日の夕方だ。もっと有効な時間活用をしろ。


オナニーとか。

519 :デフォルトの名無しさん:2006/07/09(日) 16:16:31
>515
>491はなにか失敗したの?

520 :デフォルトの名無しさん:2006/07/09(日) 16:17:21
>>518
オカズが無い.............orz

521 :デフォルトの名無しさん:2006/07/09(日) 16:30:48
おまいら何かやなことでもあったの?(・∀・)

522 :デフォルトの名無しさん:2006/07/09(日) 16:37:05
ああ、ウザイ奴を掲示板で見かけてな。

523 :デフォルトの名無しさん:2006/07/09(日) 17:26:46
>>491
.NET Framework2.0からShownイベントというものが用意されたんだよ。
ドンマイ。

524 :デフォルトの名無しさん:2006/07/09(日) 18:09:19
IEの選択範囲を自作アプリのtextBoxにD&Dって出来ないですかね?

525 :デフォルトの名無しさん:2006/07/09(日) 18:20:22
できるよ。

526 :デフォルトの名無しさん:2006/07/09(日) 18:22:59
質問です
ウィンドウハンドルってIntPtrにしなくていいんでしょうか?
サンプルだとintだったりlongだったりするんだけど

527 :デフォルトの名無しさん:2006/07/09(日) 18:40:17
intはやめておけ。ウィンドウハンドルはWin64だと64ビットになるから。
だからと言ってlongにするとWin32ではなんとなく無駄な気がする。

528 :483:2006/07/09(日) 18:45:07
>>491さんが人気者になってたんで、ちょっとレスしづらかったですがw、

>>486さんありがとう。



529 :524:2006/07/09(日) 18:46:29
>>525
よければ詳しくお願いします。

530 :デフォルトの名無しさん:2006/07/09(日) 18:55:02
>>527
Win64だとintは64bitではないのか?


531 :デフォルトの名無しさん:2006/07/09(日) 19:04:52
32bitでも64bitでも int は Int32 で long は Int64 だ

532 :デフォルトの名無しさん:2006/07/09(日) 19:09:56
C# でゲーム作成って、はやるのかって思った

533 :デフォルトの名無しさん:2006/07/09(日) 19:17:11
流行るの?

534 :デフォルトの名無しさん:2006/07/09(日) 19:17:27
http://www.exconn.net/Blogs/team01/archive/2005/11/25/5188.aspx
ここによれば
>もしかして32-bit 整数の演算も64-bitレジスタ上で行っていたりして。
と書いてありますね

535 :デフォルトの名無しさん:2006/07/09(日) 19:22:51
>>532
相変わらず.Net Framework入れてないユーザーが多い点を除けば結構便利

536 :デフォルトの名無しさん:2006/07/09(日) 19:56:35
Vistaは最初から.NetFramework入るんですか?

537 :デフォルトの名無しさん:2006/07/09(日) 20:02:36
RichTextBoxで、ある文字列を検索して色をつけたいのですが、どうすればできますか?
検索はFind()で出来ますが、「色をつける」が分かりません。

538 :デフォルトの名無しさん:2006/07/09(日) 20:05:16
SelectionColor

539 :デフォルトの名無しさん:2006/07/09(日) 20:24:39
>>538
ありがとうございます。
Find()で範囲をSelect()し、SelectionColorでうまくできました。

しかし、それではカーソル位置が変わってしまいます。
もともとの選択位置にカーソルを戻す場合はどうすればよいのでしょうか?


540 :デフォルトの名無しさん:2006/07/09(日) 20:30:20
何を呼んだ結果カーソル位置が変わったかは分かってるよな?
その逆をやれば良いだけだ。
プロパティとメソッド一覧を穴の開くほど見ろ。

541 :デフォルトの名無しさん:2006/07/09(日) 20:48:10
>>523
>>497をよく嫁

542 :デフォルトの名無しさん:2006/07/09(日) 21:16:23
やだよバカ

543 :デフォルトの名無しさん:2006/07/09(日) 21:39:52
>>529

this.textBox1.AllowDrop= true;

#####

private void textBox1_DragDrop( object sender, DragEventArgs e )
{
 if( e.Data.GetDataPresent( DataFormats.Text ) )
 {
  string droppedText = (string)e.Data.GetData( DataFormats.Text );

 }
}


544 :デフォルトの名無しさん:2006/07/09(日) 21:40:03
>>541
>>497は長いから10行で書き直せ

545 :デフォルトの名無しさん:2006/07/09(日) 21:41:33
10行も長い、俺は3行以上は読めない

546 :デフォルトの名無しさん:2006/07/09(日) 21:47:05
>>541
本人乙。

547 :524:2006/07/09(日) 21:55:17
>>543
早速試してみましたが出来ませんでした・・・。
textBox.Text = (string)e.Data.GetData( DataFormats.Text );
なども試してみましたが、カーソルの表示が駐車禁止みたいなマークのままです。

548 :デフォルトの名無しさん:2006/07/09(日) 22:06:21
D&D そのものが分かってないようだな。
ちょっと調べればサンプルとか出てくるだろ。

549 :デフォルトの名無しさん:2006/07/09(日) 22:11:50
>>544-546
粘着乙
何かやなことでもあったの?おまいら(´・ω・`)

550 :デフォルトの名無しさん:2006/07/09(日) 22:16:54
>>548
http://www.google.co.jp/search?hl=ja&num=100&q=%43%23%20%44%26%44%20%74%65%78%74%42%6f%78&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja&safe=off

551 :デフォルトの名無しさん:2006/07/09(日) 22:34:07
>>536
これまでWinFXと呼ばれていたものが、.Net Framework3.0と名称が変わり、これは、
Vista標準搭載。3.0の正体は.Net Framework2.0+αらしい。


552 :526:2006/07/09(日) 22:49:38
[DllImport("user32.dll")]
private static extern System.IntPtr FindWindow(string lpClassName, string lpWindowName);

FindWindowで目的のウィンドウが見つからなかったら0が帰ってくるらしいんで
if(hWnd == (IntPtr)0)で見つからなかった場合の処理してるんだがおかしい?

553 :デフォルトの名無しさん:2006/07/09(日) 22:52:20
IntPtrの静的メンバに

554 :デフォルトの名無しさん:2006/07/09(日) 22:54:03
とりあえず IntPtr.Zero を使え

555 :524:2006/07/09(日) 22:54:06
ドラッグでファイルパスを取得して、そのファイルを開くのは出来ますが、
IEから選択範囲を取得するのは無理って事なんですかね?

556 :526:2006/07/09(日) 23:00:06
>>553-554
サントス!

557 :デフォルトの名無しさん:2006/07/09(日) 23:00:50
>>555
おまいにゃ無理なんだろうな

558 :デフォルトの名無しさん:2006/07/09(日) 23:26:19
>>555
できる事です

559 :デフォルトの名無しさん:2006/07/10(月) 00:02:52
>>555
少しは公開されているソース読むとかしろよ
できてるものがあるんだから...

560 :デフォルトの名無しさん:2006/07/10(月) 00:10:02
>>555


561 :デフォルトの名無しさん:2006/07/10(月) 00:11:07
Referer 情報を保持したいのですが
HttpWebRequest.Referer プロパティってどのように設定すればいいんでしょうか?

562 :デフォルトの名無しさん:2006/07/10(月) 00:16:31
どのようにと言われてもサンプルのようにとしか。

563 :デフォルトの名無しさん:2006/07/10(月) 00:18:16
文字列を代入するんだよ、そんなことも分からないんじゃプログラムを作るのはやめたほうがいい

564 :デフォルトの名無しさん:2006/07/10(月) 00:24:50
IntPtrってcでいうchar*、int*、void*とかのの総称でしょ?
名前からするとint*みたいな。
しかもなぜかISerializable。

565 :デフォルトの名無しさん:2006/07/10(月) 00:30:33
>>562
サンプルなんてありました?

CとPHPとアセンブラくらいしかやったことないので
まだオブジェクトっていう考え方よくわかってません・・・・

HttpWebRequest.Refere= "http://hoge_nurupo.com";
とこんな感じに指定はできないんではないですか?

566 :デフォルトの名無しさん:2006/07/10(月) 00:32:59
クラス、インスタンス、オブジェクトの関係を学んでください。

ふらっとC♯(初心者用) Part8
http://pc8.2ch.net/test/read.cgi/tech/1148310124/

567 :デフォルトの名無しさん:2006/07/10(月) 00:40:36
>>566
どうもです
逝ってきます

568 :デフォルトの名無しさん:2006/07/10(月) 02:16:57
初歩的な質問ですがお願いします。

TabPageの派生クラスを作成しTabControlに追加したいのですが
デザイナで追加したTabPageの型をコードのほうで変更するやり方だと
デザイナで「変数が割り当てられていません」というエラーが出てデザイナが使用不能になってしまいます。
独自に作成したコントロールをデザイナで使用するためにはどうしたらよいのでしょうか?

569 :デフォルトの名無しさん:2006/07/10(月) 02:42:55
>>557-560
うざい
まともの答えれないなら書き込みするなよ
ゴミ以下だな

570 :デフォルトの名無しさん:2006/07/10(月) 03:33:39
>>569
今日は「ゴミ以下」が多いから気にするな

571 :デフォルトの名無しさん:2006/07/10(月) 06:47:58
すでに夏厨の季節か

572 :デフォルトの名無しさん:2006/07/10(月) 07:16:56
>>564
どっちかというとそういう名前の整数型と言う方が近いかもしれない。
Cでいうところのintptr_t。

573 :デフォルトの名無しさん:2006/07/10(月) 09:53:59
C#で明示的にSSEとかのSIMDを利用することってできますか?

574 :デフォルトの名無しさん:2006/07/10(月) 11:30:48
>>568
designの方のコードはいじらないで、まず派生クラスをつくってからコンパイル。
すると、ツールボックスに自作のコントロールが出てくるから、
それをポトペタ。


>>555
>>543に加えて
private void textBox1_DragEnter( object sender, DragEventArgs e )
{
 if( e.Data.GetDataPresent( DataFormats.Text ) )
  e.Effect = DragDropEffects.Copy;
 else
  e.Effect = DragDropEffects.None;
}



575 :デフォルトの名無しさん:2006/07/10(月) 11:56:11
TextBox.OnPasteをオーバーライドしてWndProcから呼ぶようにしたら、
貼り付け後のアンドゥができなくなってしまいました。どうしたら
いいですか?
OnPasteでは、貼り付け可能な文字かどうか判断して
SelectedTextを更新しているだけです。

576 :OnPasteって:2006/07/10(月) 13:43:32
すいません、下のソースを丸写ししててオーバーライドだと思ってました。
首吊ってきます。
ttp://jeanne.wankuma.com/library/maxbytelengthtextbox/source.html

577 :デフォルトの名無しさん:2006/07/10(月) 15:59:49
Problem
フォームに動的にコントロールを追加したい
ボタンのクリックイベントハンドラで以下のコードで実現できるが
この方法では作成したコントロールを別の場所から制御できない

Button btn = new Button();
//プロパティをいろいろ設定
this.Controls.Add(btn);

//この後ハンドラのブロックを抜けるためbtnはGCの対象になり、
//アクセスできなくなる

メインフォームクラスでprivate変数を持てばそれを通して別の
場所からもアクセスできるが、それではコントロールを数十個
追加するなどすれば破綻してしまう

578 :デフォルトの名無しさん:2006/07/10(月) 16:03:49
>>577 根本的にC#を判ってないと思う。
何で破綻するのか3行で書いてみ?

579 :577:2006/07/10(月) 16:10:45
はい
public class Form1 : Form
{
  private void button1_Click(object sender, EventArgs e)
  {
    Button btn = new Button();
    //btnのプロパティを設定
    this.btn = btn;
  }
  private Button btn;
}

これでインスタンス変数btnを通してあとからでもButtonをいろいろといじれる
でも、このままではButtonは一個しか増やせない。3個にしようと思えば
その分インスタンス変数を増やさないといけなくなる

あ、Buttonを格納できるコンテナを使えばいいのかな?

580 :524:2006/07/10(月) 16:13:54
http://msdn2.microsoft.com/ja-JP/library/za0zx9y0.aspx
ここを参考に無事出来ました。
ファイルのドロップで開く「DataFormats.FileDrop」は知っていたので
「DataFormats.Text」もインテリセンスで知って、真っ先に試してみたのですが、
何故か上手くできなくて、違うやり方があるのか無理なのかと思っていました。

581 :524:2006/07/10(月) 16:23:02
>>574さん、レスありがとうございました。

582 :デフォルトの名無しさん:2006/07/10(月) 16:28:02
>>579
最初に必要なだけ並べておいて全部Hide()
必要になったらShow()じゃダメ?


583 :デフォルトの名無しさん:2006/07/10(月) 16:53:21
>>579
this.Controls.Addしたんだから
this.Controlsの中に入ってるじゃんよーw
もっと単純にかんがえようよ(・∀・)

584 :583:2006/07/10(月) 16:58:55
インデクサ使えるよな・・・
(Button)this.Controls[n]でOKだよな・・・

585 :579:2006/07/10(月) 17:11:07
いいんです…
僕は頭が悪いんですから…
もういいんです…
ありがとうございました…

586 :デフォルトの名無しさん:2006/07/10(月) 17:14:15
>>585
お前は頭が悪いのか?
つまり>>582>>583を見ても解決できなかったということか?
もし解決できたんなら、それでいいじゃないか。
みんな、そうやって知識を蓄えて成長するんだよ。
解決できなかったなら頭悪い死ね。

587 :デフォルトの名無しさん:2006/07/10(月) 17:34:07
慰めてるのかけなしているのか

588 :デフォルトの名無しさん:2006/07/10(月) 17:44:33
Problem
TabControlのラベル部分の背景色を変更したい
TabControlのImageListプロパティを設定することで
ラベル部分にアイコンを表示することは出来るが、
背景色や文字色は変更できない

589 :デフォルトの名無しさん:2006/07/10(月) 17:58:38
>>588
ttp://dobon.net/vb/dotnet/control/tabownerdraw.html

590 :デフォルトの名無しさん:2006/07/10(月) 18:16:17
Click Event とかで特定の Tab を開かせるのは
どうやればいいですの

591 :デフォルトの名無しさん:2006/07/10(月) 19:06:04
>>590
意味ワカンネ

とりあえずTabControlなら
SelectedIndex やSelectedTab で設定できるけど。

まさかヘルプ読めば書いてあって気違いでも分かるような
超低能な質問するわけないよね?


592 :デフォルトの名無しさん:2006/07/10(月) 20:18:02
ピクチャーボックスにDrawRectancleした四角形をスムーズに移動させたいです。
いまは、前の位置を背景色で塗ってから新しい位置に四角を書いています。
もっとよいやり方があったら、ヒントをお願いします

593 :デフォルトの名無しさん:2006/07/10(月) 20:25:34
それでいんじゃね

594 :デフォルトの名無しさん:2006/07/10(月) 20:26:45
>>592
結局はそれと同じだけど、
http://msdn2.microsoft.com/ja-jp/library/ms172506.aspx
これは使ってる?

595 :592:2006/07/10(月) 21:03:45
いえ、使っていません
一気に1000個描画してから切り替えているようですが、移動させると考えると、その都度切り替えるということですかね?


596 :588:2006/07/11(火) 01:55:42
>>589
へぇぇオーナードローってのがあったんだ
勉強になりますありがとうございます

597 :デフォルトの名無しさん:2006/07/11(火) 02:36:38
Formのサイズを定数で指定したいです
InitializeComponent()の中でthis.Sizeなどをいじっても
いつのまにか初期設定にリセットされています
InitializeComponentのコメントにも

「デザイナサポートに必要なメソッドです。このメソッドを
コードエディタで変更するな」

と書かれています

かといってFormクラスのコンストラクタで

InitializeComponent();
の直後にサイズを変更するコードを書くのは
サイズの設定をわざわざInitializeComponentの中と外の
二箇所で指定することになりスマートじゃないです

598 :デフォルトの名無しさん:2006/07/11(火) 02:57:07
>>597
デザイナでサイズ指定しなきゃ良いじゃん

599 :デフォルトの名無しさん:2006/07/11(火) 03:05:46
作業ディレクトリの指定に関する質問です。

fileOpenDialogで実行ファイルまでのパスを取得した後に
Process.Start()で実行しようと思っています。
この際に実行ファイルがあるディレクトリをWorkingDirectoryにしたいのですがどういう方法があるでしょうか?
実行ファイルまでのパスから取得する方法はあるのか、或いはfileOpenDialogする際に取得する方法があるのか、
また他の方法があるのか教えてください。

600 :599:2006/07/11(火) 03:13:17
訂正:fileOpenDialogじゃなくてOpenFileDialogの間違いです

601 :デフォルトの名無しさん:2006/07/11(火) 06:31:12
System.IO.Path

602 :597:2006/07/11(火) 09:29:02
>>598
どういうこと?
デザイナでFormのSizeを0,0に設定するってこと?

603 :デフォルトの名無しさん:2006/07/11(火) 09:39:24
コンストラクタでやれ

604 :デフォルトの名無しさん:2006/07/11(火) 10:03:11
>>602
デザイナで好みのサイズにしたら、あとはサイズ変更しなきゃいいんじゃないの?
あとはFormBorderStyleを固定(Fixidが付いてるやつ)にして
MaximizeBoxにFalseを設定すりゃ、実行時もサイズは変更できないよ。

でも、直接いじったからって初期設定にいつの間にかリセットなんてされないはずだが・・・?
そのFormは継承Form?

605 :デフォルトの名無しさん:2006/07/11(火) 10:33:16
定数てのがミソなんでせう。

606 :デフォルトの名無しさん:2006/07/11(火) 10:42:39
SizeにしてもLocationにしてもコンストラクタ内で再設定しても
プロパティ自体は新しい値を保持するけど、実際に表示された
ときに、反映されるとは限らない。実際はデザイナの設定の
とおりに表示される場合がほとんど。
コントロールの表示属性を変更するような処理は
コンストラクタの中で書いちゃいけないのは常識。
Loadイベントの中で行うべし。

607 :デフォルトの名無しさん:2006/07/11(火) 10:43:34
>>597は「定数」の意味を理解していないに100ペソ
もしくはオレ流定義をしているに100ペソ

608 :デフォルトの名無しさん:2006/07/11(火) 10:45:26
>>597
ところで、「定数」はどこに定義してるの?

609 :デフォルトの名無しさん:2006/07/11(火) 10:50:21
デザイナでセットしても実行時にどっかでそれをセットしてるんだから祖こんところを調べろよ。

610 :デフォルトの名無しさん:2006/07/11(火) 12:06:37
System.Type A と System.Type B を与えられたときに、
「A から B に変換可能か?」という判断と
「可能ならば変換する」という処理をしたいんですが、
どうすればいいでしょうか?

Type は In32 とか Single とか基本的なクラス
のみでいいんですが。


611 :デフォルトの名無しさん:2006/07/11(火) 12:20:27
>>610
int とか float の相互の型変換は、C# 自体がその機構持ってるわけじゃなくて、
単にそれらの数値型に implicit なキャスト operator が実装されてるだけだった気が。
うろ覚えだから違うかもしれないけど。

なので、型変換可能かどうかという判断をするメソッドはないんだけど、
GetMethods とか使って、implicit キャストが実装されてるかどうかを検索すれば
多分可能だと思うけど、なんかそもそもの設計が変な気もする。

612 :デフォルトの名無しさん:2006/07/11(火) 13:02:06
>>610
「変換可能」の定義が曖昧
実数型を整数型にキャストして小数点以下が落ちるのは「変換可能」なの?
有効桁数を超えるキャストをして丸められたりするのは「変換可能」なの?
パターンを考えないと意図しない結果になると思うよ

613 :デフォルトの名無しさん:2006/07/11(火) 13:08:58
動的に数値型の型が不明っていうのはどういう場合なんだ?

614 :597:2006/07/11(火) 13:34:18
>>604
いいや勝手に書き換えられてるよ
ただ初期設定に書き換えられるというのは勘違いだったみたい
以下再現法
VC2005なんだけど
普通にWinアプリプロジェクト作成して、
デフォルトで作成されてるFormのInitializeComponent()の中
で、例えばFormのClientSizeが決定されたあとでそのForm.ClientSize
を使って別のコントロールのSizeを決定したくても、デフォルトで
作成されるFormの初期化では、例えばFormにButtonが一個
あるだけだと以下のようになっている。

//button1
this.button1.Size = new Size(30,30);
//Form1
this.Size = new Size(300,300);
で、これを以下のように変更する
//Form1
this.ClientSize = new Size(300,300);
this.button1.Size = this.ClientSize;
これでbutton1のサイズがFormのクライアント領域に合わされる
で、この後例えばFormのNameプロパティを変更したりすると、
なぜか上記のコードの変更が勝手に書き換えられる
以下のようになってしまっていた
//button1
this.button1.Size = thisl.ClientSize;
//Form1
this.ClientSize = new Size(300,300);
//あれここに書いていたはずなのに上に移動してしまっている
このままコードを実行すると、画面一杯になったButtonが一応表示される
しかし、例えばFormのSizeを400,400に変更したりすると、
Buttonは300,300のままで変化しない

615 :デフォルトの名無しさん:2006/07/11(火) 13:41:17
プロパティ変更してるじゃん……

616 :デフォルトの名無しさん:2006/07/11(火) 13:48:33
InitializeComponentはデザイナ用のコードなんだから当たり前
何のためにpartialになってると思ってんだ

617 :デフォルトの名無しさん:2006/07/11(火) 14:08:52
>>614
それ、>>597でやろうとしてることと違うじゃん。結局なにがしたいの?
定数で指定したいとか言ってたのに定数が見当たらないけど?
>>616も言ってるけど、InitializeComponentってのはデザイナ用のコードなんだ、
直接いじったあとに、デザイナーで何かしらいじれば、
デザイナがInitializeComponent内のコードを再び書き直すよ。

618 :デフォルトの名無しさん:2006/07/11(火) 14:19:07
617に書き忘れたけど、
ボタンのサイズをフォームと同じにしたいんなら
ボタンのDockプロパティにFillを設定してやれば解決だよ。

619 :デフォルトの名無しさん:2006/07/11(火) 14:29:39
要するにフォームの起動時の位置と大きさを設定したいなら
Loadイベントでやれってこった
保存するときはRestoreBounds を使えってこった

620 :デフォルトの名無しさん:2006/07/11(火) 14:49:05
>.NET Framework 2.0 の Form オブジェクトに RestoreBounds プロパティが追加されました。
>これは、フォームが最小化または最大化しているときでも、通常表示状態のフォームの位置とサイズを保持する Rectangle 型を返すものです。

うお、知らなかった。
今まで最小化最大化時は保存しないってことにしてたよ……

621 :デフォルトの名無しさん:2006/07/11(火) 15:02:00
オレ流コーディングを見せ付けるスレはここですか?

622 :デフォルトの名無しさん:2006/07/11(火) 15:04:42
>>619
コンストラクタのInitializeComponentの後の方が良くない?
StartPositionをCenterScreenにしてLoadイベントでSizeを変更すると画面中央にならないよ。

623 :デフォルトの名無しさん:2006/07/11(火) 16:35:38
>>619
オレも知らなかったよー
今まで
---
this.Opacity = 0;
this.WindowState = FormWindowState.Normal;
---
の後にサイズと位置を保存していた・・・

624 :デフォルトの名無しさん:2006/07/11(火) 16:39:29
でもさぁ、RestoreBounds ってどうゆうとき使うの?
最小化や最大化しちゃった後でもシステムが記憶してるじゃない

625 :デフォルトの名無しさん:2006/07/11(火) 17:07:17
最小化・最大化するとWidthやHeightの値はそれに合わせて変更される
その状態で元のサイズを知る方法が今まではAPIしかなかった

どういうときにつかうかといえば、フォームのサイズを記憶する必要があるソリューション
最大化のWidth/Height/Left/Topを保持し、次回起動時にそれを設定したら、最大化を解除しても画面いっぱいのままでしょ
それを防ぐには本来のサイズを保持して、最大化・最小化のステートとは別にしておく必要がある

つか少しは考えろよ

626 :デフォルトの名無しさん:2006/07/11(火) 17:10:16
デレツン

627 :デフォルトの名無しさん:2006/07/11(火) 17:16:11
構造体のEmptyフィールドって、
public static readonly StructA Empty = new StructA();
とすればいいの?

628 :デフォルトの名無しさん:2006/07/11(火) 17:25:41
Xpマシンに.NET2003(C#)で作ったAP入れて動かしてるんだけど、
ごく稀にForm上に設置した特定のラベルコントロールが赤×表示されてしまう
事があります(赤×表示=ラベル一杯にバッテンが赤線で表示される)。
Webで調べたんだけど、日本サイトでは何も見つからなくて、海外サイトでは
何やら同様の現象について議論は交わされてるんだけど、はっきりとした
原因・解決策が載った所に行き着きません。。。
どなたか経験者・有識者の方、アドバイス下さい。

629 :デフォルトの名無しさん:2006/07/11(火) 17:30:27
>>628
そのコントロールのPaintで失敗してるんじゃないかな


630 :デフォルトの名無しさん:2006/07/11(火) 18:20:41
>>629
返信ありがとうございます。
確かにPaintに失敗してるとは思うのですが、原因と解決策がわからんのです。
再現も出来ないんで、五里霧中状態です。。。

631 :デフォルトの名無しさん:2006/07/11(火) 18:32:30
>>630
そうですか。としか言いようがないが。

ソースか実行ファイルうp

632 :デフォルトの名無しさん:2006/07/11(火) 18:46:56
>>628
あー、それ俺も Release バージョンでよくなる。
なにか例外が発生しているようで例外ダイアログボックスが出るんだけど、
そのダイアログ上のコントロールも全部赤×で表示されてるので詳細がわからない。
Application.Run を try ... catch ... で囲ったり AppDomain.CurrentDomain.UnhandledException を
設定たりしてるけどトラップされていない模様。
一度それが発生するとメニューバー・ツールバー・ステータスバーなどが赤×で表示される。

再現方法もわからないしなんの解決にもなってないけど報告まで。


633 :デフォルトの名無しさん:2006/07/11(火) 18:48:14
>>627
new する必要もない。
構造体なら宣言だけしとけば自動的にインスタンスが作られる。
// new で初期化するのとじゃちょっと意味合いが変わったような希ガス

634 :デフォルトの名無しさん:2006/07/11(火) 18:50:35
サスペンドから戻った時に、

System.NullReferenceException:
 オブジェクト参照がオブジェクト インスタンスに設定されていません。

てな実行時エラーを出す常駐ものがあって、なんとなくFormに貼り付
けたタイマーあたりでエラーが起きてるぽいんだけど、サスペンド対応の
定石みたいなものってあったりする?いったんタイマーを停止させない
といけないとか。

635 :デフォルトの名無しさん:2006/07/11(火) 19:32:28
VC#2005 Expressでプロパティウィンドウの下に
説明が表示されるじゃないですか。
何かの拍子でこれが消えて項目だけになるのですが、
なにか解決方法とかってあるのでしょうか?

636 :デフォルトの名無しさん:2006/07/11(火) 19:39:15
>>635
あーなるなる。2003の時もそうだった。
消えるというか説明の領域が最小になるんだよね。
その都度領域を広げなおすしかないんじゃない?
そんなに手間でもないしね。

637 :デフォルトの名無しさん:2006/07/11(火) 19:48:08
>>634
何となくとか言わず原因を追及しろよ。

サスペンドや休止はハードウェアやドライバの依存が強くて困るんだよな。

638 :デフォルトの名無しさん:2006/07/11(火) 19:49:29
>>636
ステータスバーとプロパティウィンドウの間にカーソルを持って行くと
カーソルが境界線っぽい形になるけど
何故か摘もうとすると矢印状態に戻って上手く摘めません

で、今さっき、右クリック->コマンドにチェックを入れたら
コマンドの領域と一緒に説明パネルが出てきました
前はその辺りを弄っても変化なしだったような気がするけど
一応解決なのかな?

639 :デフォルトの名無しさん:2006/07/11(火) 20:05:52
VC#EE重くない?タイプしていっても表示が追いついてない感じ

640 :デフォルトの名無しさん:2006/07/11(火) 20:14:55
いや、全く

641 :デフォルトの名無しさん:2006/07/11(火) 20:18:28
重い。
がしかしそれは私の環境が貧弱なせいなのは明らかだ orz

642 :624:2006/07/11(火) 20:51:40
>>625
あ、そうか。 ありがとね(・∀・)

643 :デフォルトの名無しさん:2006/07/11(火) 23:23:00
C#ってアロー演算子ある?

644 :デフォルトの名無しさん:2006/07/11(火) 23:27:11
そんなもの、あろうはずもなく。

645 :デフォルトの名無しさん:2006/07/11(火) 23:35:54
>>643
あるおー

646 :デフォルトの名無しさん:2006/07/11(火) 23:56:02
どっちですかー

647 :デフォルトの名無しさん:2006/07/12(水) 00:01:04
言語仕様読めよ

648 :デフォルトの名無しさん:2006/07/12(水) 00:47:34
ねーよ

649 :デフォルトの名無しさん:2006/07/12(水) 00:47:42
ヒント:読めない事情がある

650 :デフォルトの名無しさん:2006/07/12(水) 01:15:23
メンバにアクセスするには "." を使う。

ポインタが使えるのはunsafeコードだけ。
ポインタには->演算子が使える。

いじょ。

651 :デフォルトの名無しさん:2006/07/12(水) 03:00:24
おk、把握した

652 :デフォルトの名無しさん:2006/07/12(水) 08:16:45
なつかしいな ->演算子
Cやってた頃よく使ったなぁ・・・

653 :デフォルトの名無しさん:2006/07/12(水) 13:39:25
>>631
> >>630
> そうですか。としか言いようがないが。
> ソースか実行ファイルうp

返事遅れましてすいませぬ。
ソースですが、内容を以下に簡単に書きますと、
@Form上にLabel生成(サイズ、色等以外のプロパティはほぼデフォルト)
 ※InitializeComponentsで。
AFormLoadイベント時に、Labelのtextプロパティに外字をコードで設定
といったところです。他のLabelコントロールと違うのはAの処理くらいで、
それ以外では特に操作・描画は行っていません。。。


654 :デフォルトの名無しさん:2006/07/12(水) 23:59:15
構造体に関する質問です。

public struct ST
{
 int Val
}

public class TestApp
{
 public static void Main()
 {
  ST s;
  s.Val = 1;
// 代入
  object o = s; // --- (A)
  // 関数の引数 object として渡す
  Func(s);
 }

 public static void Func(object o)
 {
  // -- (B)
 }
}

上記 (A) で構造体 ST の実態 s を object の参照 o に代入した場合に
BOX化というのが行われるとあるのですが、objectの参照に何が入るのかがわかりません。
構造体 ST をラップした無名のクラスのインスタンスとかが生成されるのでしょうか?
また、上記 (B) の個所で Main の構造体の実態 s は変更不可なのでしょうか?

655 :デフォルトの名無しさん:2006/07/13(木) 00:04:53
何と言われてもオブジェクトはオブジェクトだよ。ボクシングされた。
ローカルスコープで宣言された値型は値がスタックという領域に取られる。
参照型は参照がスタックに、値はヒープに取られる。
ボクシングされると値のコピーがヒープに作られ、その参照がスタックに残る。
アンボクシングされるとヒープからスタックに値が再びコピーされる。

> また、上記 (B) の個所で Main の構造体の実態 s は変更不可なのでしょうか?
無理だね。
やりたきゃ ref/out を使うんだが、まあそう言う場合大抵は構造体を使うべきところじゃない場面だ。

656 :デフォルトの名無しさん:2006/07/13(木) 00:49:22
>>655
よくわかりました。ありがとうございます。
>>654の場合 (A) が実行されるとスタック上の s と o が参照するヒープ上のインスタンスが存在して
これらは、まったくの別物って考えなんですね。

逆に、(A) の後に
ST s2 = (ST)o;
を実行した場合、スタック上に値 s2 が確保されて o が参照するヒープ上のインスタンスの
内容をコピーするということになるんですかね?

しかし、値のコピーをヒープに作って、その参照を保持なんて器用なことをしているとは・・・
C#・・・あなどれん・・・


657 :デフォルトの名無しさん:2006/07/13(木) 05:22:10
>>656
MSDNぐらい見なさいよ
http://msdn2.microsoft.com/ja-jp/library/25z57t8s.aspx
http://msdn2.microsoft.com/ja-jp/library/b95fkada.aspx

658 :デフォルトの名無しさん:2006/07/13(木) 08:35:38
漏れ、構造体って最初の頃は使ってたけど、
今は全然使わなくなったな。
構造体でできることはすべてクラスでできるし、
さいしょは構造体として設計しても
結局、「クラスにしときゃよかった」ってことになる
ことが多くて、今じゃさいしょからクラスにしている。

659 :デフォルトの名無しさん:2006/07/13(木) 09:07:14
Cのときしか使ってない

660 :デフォルトの名無しさん:2006/07/13(木) 09:13:08
>>658
レベルが上がってくると最適化で必要になる。

661 :デフォルトの名無しさん:2006/07/13(木) 09:13:44
漏れはあえて区別してる orz


662 :デフォルトの名無しさん:2006/07/13(木) 09:14:06
俺が低レベルだとーぷんすかぽんぽんっ!

663 :デフォルトの名無しさん:2006/07/13(木) 09:52:28
萌えた

664 :デフォルトの名無しさん:2006/07/13(木) 10:38:35
俺は変数3つぐらいの構造体をよく使うな

665 :デフォルトの名無しさん:2006/07/13(木) 11:16:27
ベクトルとかは構造体にしてる


666 :658:2006/07/13(木) 11:19:00
>>660
漏れ、レベル下なのかよ・・・orz

667 :デフォルトの名無しさん:2006/07/13(木) 11:29:34
その最適化でどれだけスピード上がるのかと。その部分案マネージにしたほうが委員ジャマイカ?

668 :デフォルトの名無しさん:2006/07/13(木) 11:31:18
結構変わるぜよ

669 :デフォルトの名無しさん:2006/07/13(木) 11:47:30
>>667
レベルが上がってくると高速化以外の最適化も必要になる。

670 :デフォルトの名無しさん:2006/07/13(木) 11:57:07
メモリ?

671 :デフォルトの名無しさん:2006/07/13(木) 11:58:02
>>667
stringを連結しまくるのじゃなくてStringBuilder使うとかなり速くなるだろ。

スタックに積まれるのも重要ではあるんだが配列時のほうがクリティカル
になりやすくこっちのが重要。

意味的には既定動作がコピーというのは値として扱うのに向く。


672 :デフォルトの名無しさん:2006/07/13(木) 12:25:14
そしてジェネリックじゃないコレクションに巨大な構造体を大量に…
なんてのがあった。
高速化のためだそうだw

673 :デフォルトの名無しさん:2006/07/13(木) 12:28:11
>>671 あまりそういうところでクリティカルになったことなかったけれど今度試してみるわー

674 :デフォルトの名無しさん:2006/07/13(木) 15:36:42
メンバ変数の数というか、トータルバイト数が4とか8以下の物で、
仮想関数絶対使わない確証あるときだけ構造体にしてる。
他はクラス。

>>672
速度比較検証でもしてやったらいいんじゃないか?

675 :デフォルトの名無しさん:2006/07/13(木) 16:01:21
ジェネリック使ったほうが速いよね・・・

676 :デフォルトの名無しさん:2006/07/13(木) 16:06:50
>>672
具体的に何をしてるかわからないとコメント出来ないね。

677 :デフォルトの名無しさん:2006/07/13(木) 16:42:18
>>675
えっと、でっかい構造体 HugeStruct とかがあったとして、

HugeStruct[] a = new HugeStruct[N];
a[0] = new HugeStruct();
HugeStruct b = a[0];

だといちいちでっかいデータのコピーがあって糞重たいはず。

要素として object 型を取るような非ジェネリックコレクション(例えば System.Collections.ArrayList) 使う場合、

ArrayList a = new ArrayList();
a.Add(new HugeStruct());
a[0] = new HugeStruct();
HugeStruct b = (HugeStruct)a[0];
だと、いちいち boxing, unboxing、キャストが必要だから、その分遅い。

ジェネリックコレクション使えば、boxing, unboxing、キャストが不要な分だけは早くなる。

678 :デフォルトの名無しさん:2006/07/13(木) 16:43:25
あっ、>>677 の最後の行、
ジェネリックコレクションでも boxing, unboxing はなくならないか。

679 :デフォルトの名無しさん:2006/07/13(木) 16:48:05
なくなるよ。

680 :デフォルトの名無しさん:2006/07/13(木) 17:00:06
ジェネリックコレクションって内部でキャストしてるんじゃないの?

681 :デフォルトの名無しさん:2006/07/13(木) 17:02:01
>>679
じゃあ、糞でかい構造体に対して、ジェネリックな
ArrayList<HugeStruct> とか使うと非ジェネリック ArrayList 使うよりやばい?

682 :デフォルトの名無しさん:2006/07/13(木) 17:03:58
コレクション自体をCloneする場合以外は別にboxingなんてないほうがいいに決まってるだろ

683 :デフォルトの名無しさん:2006/07/13(木) 17:05:19
ブラウザでリンク先が指定されているボタン等を、自分のアプリにドロップされた時に
そのリンクの文字列(例えば "http://2ch.net")を取得したいんですが、
どうすればいいんでしょうか。


684 :デフォルトの名無しさん:2006/07/13(木) 17:10:14
>>680 キャストしないですむようにコードを生成するんだよ。
>>681 頻繁にソートと化するのなら関係あるかもしれんね。試したことナイから知らん。

685 :デフォルトの名無しさん:2006/07/13(木) 17:25:41
>>683
OK in English

686 :デフォルトの名無しさん:2006/07/13(木) 17:33:58
>>683
エスペラント語でおk

687 :デフォルトの名無しさん:2006/07/13(木) 17:36:02
まずボタンをドロップどうやってするのかとこ一時間

688 :683:2006/07/13(木) 17:36:50
そんなにおかしな日本語だったかなぁw

リンク先が指定されているボタン等を、webブラウザ上からから自分のアプリに
ドラッグ&ドロップされた時に ・・・

ということでお願いします


689 :デフォルトの名無しさん:2006/07/13(木) 17:37:19
単純に、値の意味を持たせたい時に構造体にすると思うが。

690 :デフォルトの名無しさん:2006/07/13(木) 18:31:05
>>680 >>681
調べてみたらジェネリック用にILを拡張してるようで、
ILレベルで<T>のまま情報を保持しててJITで型ごとに別のネイティブコードを生成してるようだ。
確かに馬鹿でかいValueTypeだと非ジェネリックコレクションよりやばいかも知れない。
マニュアルのこの記述には従ったほうがいいかもしれんね。
>struct 型は、通常、四角形の座標や在庫品目の特性など、関連のある変数の小さなグループをカプセル化するために使用します。

691 :デフォルトの名無しさん:2006/07/13(木) 19:26:35
http://msdn2.microsoft.com/ja-JP/library/b5bx6xee.aspx
>ArrayList よりも安全であるだけでなく、
>特にリスト項目が値型のときには処理時間が大幅に縮小するリストを作成できます。

692 :691:2006/07/13(木) 19:34:52
文脈を間違えた
馬鹿でかい値型だと遅くなるよ、当たり前だけど

693 :デフォルトの名無しさん:2006/07/13(木) 20:20:08
>>683
>>687

694 :デフォルトの名無しさん:2006/07/13(木) 21:54:18
屏風の虎を捕まえろって言われたときに、
それではまず虎を屏風から追い出してください、って言うのと似てるね




695 :デフォルトの名無しさん:2006/07/13(木) 21:57:01
       ,′ 
       l   ファイル名を日付順で取得する方法を
        ',   教えておくれよ。にょろ?
        〉
        l          _ノ
        \ ___ノ` ── ′
         {/
            ______
         _.:.:´:.:.:.:.:.:.:.:.:.:.:.:\
       /.:/.:/ ヽ:.:.:i:.:.:.:.:.:.ヽ
       {:.:/:./     l:.:.j:.:.:.:.:.:.:.
       ∨!/  ⌒  |:./:.:|:.:.:.:.:
        |′  ● jイ:.:.:.|__:.:.:
        |! r‐‐v (_) |:.:.:.| }:.:.
        ハヽ ノ   |:.:.:.|ノ:.:.:
        (` = -r-rム:.:.:|:.:.:.:.:
        ト、  | / | |:.:.∧:.:.:.:
        |:.:.:T7_/_,j .|:./  ヽ:.:.


696 :デフォルトの名無しさん:2006/07/13(木) 21:59:26
>>693
ん?「ボタン」がわからないのか?それとも「ドロップ」がわからない?

697 :デフォルトの名無しさん:2006/07/13(木) 22:00:57
>>695
取得してからソートじゃだめ?

698 :デフォルトの名無しさん:2006/07/13(木) 22:03:48
>>695
なんのためにDateTime構造体に<演算子や>演算子があると思ってるのよ
プンプン


699 :デフォルトの名無しさん:2006/07/13(木) 22:05:42
>>696
どっちも単体ではよく分かるんだが、組み合わせると途端に難解になるな

700 :デフォルトの名無しさん:2006/07/13(木) 22:06:43
>>698
比較演算以前に DateTime は IComparable だから……

701 :デフォルトの名無しさん:2006/07/13(木) 22:20:46
>>699
もっとわかりやすく言わないとダメだと思う

だから>>696氏ねwww

702 :デフォルトの名無しさん:2006/07/14(金) 00:46:27
MacみたいなButton,Radioボタンコントロール知りませんか?

有料でも可っす

703 :デフォルトの名無しさん:2006/07/14(金) 08:22:45
UseControlから自分で作れ

704 :デフォルトの名無しさん:2006/07/14(金) 11:25:41
Mac使えば

705 :デフォルトの名無しさん:2006/07/14(金) 11:29:19
Mac風なVisualStyle使えば

706 :デフォルトの名無しさん:2006/07/14(金) 11:33:40
Vista使えば

707 :デフォルトの名無しさん:2006/07/14(金) 11:36:18
>>696のセリフ笑えるw

708 :デフォルトの名無しさん:2006/07/14(金) 15:15:13
Manko使えば

709 :デフォルトの名無しさん:2006/07/14(金) 18:35:41
StringBuilderクラスについての質問です。
>連結する String オブジェクトの数が決まっている場合は、String クラ
>スを使用した方が効率的です。この場合、個々の連結演算は、コンパ
>イラによって 1 つの演算に結合されます。

MSDNによると、上記のようにStringクラスが効率的とあるのですが
Stringオブジェクトの個数によって、Stringクラスを使用するか判断する
点がわかりません。

個人的には、連結文字列がバッファ容量のInt16に対して多いかどうかで
使用を判断するように思えるのですが。

教えてください。


710 :デフォルトの名無しさん:2006/07/14(金) 18:44:17
コンパイル時に、連結する String オブジェクトの数が静的に定まる場合という意味だと思う

711 :デフォルトの名無しさん:2006/07/14(金) 19:00:12
>>710
レスありがとう御座います。
もう少し考えてみます。


712 :デフォルトの名無しさん:2006/07/14(金) 19:13:15
ILを見てみると文字列の結合にSystem.String#Concat 使ってる。こっちのほうが効率がいいのかな。
string a = "aaaaa" + "bbbbb" + c + "ddddd" + "eeeee" + c; だとこんな風に展開されてる。
string a = System.String#Concat("aaaaabbbbb", c, "dddddeeeeee", c);


713 :デフォルトの名無しさん:2006/07/14(金) 19:27:21
>>712
Javaと同じでこうゆう処理をやってるのかと思ってた。
string a = new System.Text.StringBuilder("aaaabbbb").Append(c).Append("ddddeeee").Append(c).ToString();

714 :デフォルトの名無しさん:2006/07/14(金) 19:29:14
ループで大量の文字列を結合するのでなければコンパイル時の最適化がきくから
StringBuilderよりstringの結合のほうが効率いいよ


715 :デフォルトの名無しさん:2006/07/14(金) 20:45:54
>>712-713
超予測だけど、string#Concatは一気に引数を渡すから必要なLengthが分かるけど、StringBuilderは初期値で固定されてしまうという点で高速化に繋がる予感

716 :デフォルトの名無しさん:2006/07/14(金) 22:58:37
http://msdn.microsoft.com/msdnmag/issues/06/01/CLRInsideOut/default.aspx#S2

717 :デフォルトの名無しさん:2006/07/15(土) 00:27:51
string str = "123456789012345678901234567890";
for (int i=0; i<100000; i++) {
/* パターン1 */string s = new System.Text.StringBuilder().Append(str).Append(i).Append(str).Append(i).Append(str).ToString();
/* パターン2 */string s = string.Concat(str, i, str, i, str);
}

1 : 453ms
2 : 297ms

718 :デフォルトの名無しさん:2006/07/15(土) 03:07:48
>>717
毎周newするのは不利なんじゃなかろうかと。

719 :デフォルトの名無しさん:2006/07/15(土) 05:22:34
>>718
Concatも内部でnewしてますが

720 :デフォルトの名無しさん:2006/07/15(土) 08:10:18
StringBuilder の場合でも ToString で string を new してるだろ

721 :デフォルトの名無しさん:2006/07/15(土) 08:41:20
StringBuilder 使う時はインスタンス作成時にキャパシティ明示するのも重要だぜ。
特に717みたいなパターンだと。

722 :デフォルトの名無しさん:2006/07/15(土) 08:46:39
>>717は例としてのコードが不適切
StringBuilderはループに入る前に外側でnewするべきだし
ToStringは不要

723 :デフォルトの名無しさん:2006/07/15(土) 08:47:46
じゃ、やってみてよ

724 :デフォルトの名無しさん:2006/07/15(土) 08:47:50
暗黙的キャストで ToString を呼んでいるだろうから
ToString があろうがなかろうが変わらんだろ

725 :デフォルトの名無しさん:2006/07/15(土) 09:34:33
そもそもキャストできたっけ?


726 :デフォルトの名無しさん:2006/07/15(土) 09:38:31
VBならそうだがC#は暗黙のキャストは無かったはずでstringに変換するにはToStringが必要。
ループの外でStringBuilderのインスタンスを作ればstring#Concatと同等以上になるのは確かだが、
>>717は測定可能なようにループを使ってるだけで例とし適切である。

もし、ループの外でStringBuilderのインスタンスを作るのを基準としてstring#Concatを比較するなら
object [] buf = new object[400000];
buf[0] = str;
buf[1] = 0
:
buf[399998] = str;
buf[399999] = 399999;
string s = string.Concat(buf);
と比較しなければならない。

727 :デフォルトの名無しさん:2006/07/15(土) 10:35:25
てか不適切だから。

728 :デフォルトの名無しさん:2006/07/15(土) 11:03:59
>>722
StringBuilderやConcat()の連結速度を計るなら確かにそうだが、現実的に100000個ものstringやintなどを連結する機会はある?
717のように、だいたい5個、多くて十数個くらい連結するのが普通だと思うのだが。

729 :デフォルトの名無しさん:2006/07/15(土) 11:09:05
ボタンをドラッグしたいんだけど

730 :717:2006/07/15(土) 11:09:36
暇だし、せっかくだからいろいろ条件を変えて計測してみたけども、スレに書き込むには長すぎるし、こういうのを貼る良い場所ない?

731 :デフォルトの名無しさん:2006/07/15(土) 11:39:29
WindowsFormのComboBox。
矢印ボタン押すと普通は文字列の候補が出てきますが
これを例えば(枠なしの)カラー選択ダイアログなどを出したいのですがどうすればよいでしょう?
どっかでMSのサンプル見たのですがご存知ないでしょうか

732 :デフォルトの名無しさん:2006/07/15(土) 11:45:29
>>730
無料のWikiなりBlogなりホームページなりにアカウント取ってリンク張ればいいじゃない

733 :デフォルトの名無しさん:2006/07/15(土) 12:34:37
>>731
DrawModeをOwnerDrawVariable等にして、
DropDownイベントでダイアログをオープンしたらいいんじゃね?


734 :デフォルトの名無しさん:2006/07/15(土) 12:35:14
>>731
だったらComboBoxでなくただのボタンでいいんじゃないか?(・∀・)

735 :デフォルトの名無しさん:2006/07/15(土) 13:34:29
MSのサンプルで
型による処理の振り分けで
Dictionary<Type, object>を使えばいい(と思う)のに、わざわざDictionary<string, object>にして
辞書からinstance.GetType().ToString()のようにキーを生成してアクセスしてるところがあるんですけど
型でリファレンスを持つと何かマズイことでもあるのでしょうか?

736 :デフォルトの名無しさん:2006/07/15(土) 14:04:50
VS2005のmenuStripをMDIフォームに使うと
子フォームに水色の帯が残るんだけど
バグ?

737 :デフォルトの名無しさん:2006/07/15(土) 14:20:36
(・∀・)←これって流行ってるの?

738 :デフォルトの名無しさん:2006/07/15(土) 14:29:00
シラネ(´・Ω・`)

739 :デフォルトの名無しさん:2006/07/15(土) 14:35:52
>>683
http://dobon.net/vb/dotnet/control/dropfromwebbrowser.html

740 :デフォルトの名無しさん:2006/07/15(土) 15:39:43
>>735
問題ないはず

741 :デフォルトの名無しさん:2006/07/15(土) 16:22:30
>>732
無料Wikiというものがあるのか。知らなかった。
http://www3.atwiki.jp/cs/pages/5.html

742 :デフォルトの名無しさん:2006/07/15(土) 17:33:41
>>741
おつかれ〜
ちなみに、StringBufferを再利用するときはこれでいいですよ。
stringBuilder.Length = 0

743 :デフォルトの名無しさん:2006/07/15(土) 17:41:14
>>735
MSのサンプルはあくまでさらっと参考にするくらいの方がいいかも…
おいおいな感じのサンプルも多いから。


744 :デフォルトの名無しさん:2006/07/15(土) 17:42:40
>>740サンクス
オブジェクトのGetTypeが違う参照を返すことでもあるのかと思ったらそうでもなかったし、
なんでstringにしてたんだろう。

745 :デフォルトの名無しさん:2006/07/15(土) 17:47:34
>>744
たぶん深い意味はない。

746 :デフォルトの名無しさん:2006/07/15(土) 18:15:23
連結する個数が分かっているならString#Concat、つまり+の連結で十分ということか。
しかしint to stringは激重だな…

747 :デフォルトの名無しさん:2006/07/15(土) 18:42:59
string#concatは引数4つまではそのままオーバーロードがあるけど、
string#concat(string)
string#concat(string, string)
string#concat(string, string, string)
string#concat(string, string, string, string)
5つ以上になると配列を作ってしまう。4つまでならConcat推奨。
string#concat(params string[] values)

748 :デフォルトの名無しさん:2006/07/15(土) 19:14:05
ベンチを見るとObjectの配列を作る方が(引数を5つ並べるより)かなり速いようだけど…

749 :デフォルトの名無しさん:2006/07/15(土) 20:08:56
ベンチにコードが無いからなんともいえないけど、次の二つは同じILを生成してて結果も同じ。
string s = string.Concat("aaaaa", "bbbbb", "ccccc", "ddddd", "eeeee"); 
string s = string.Concat(new string [] {"aaaaa", "bbbbb", "ccccc", "ddddd", "eeeee"}); 

ところでベンチのWIKIに次の記述があるが誤記だよな?
string.Concat(str + i + str + i + str); 

750 :デフォルトの名無しさん:2006/07/15(土) 20:50:04
ObjRefを自分でシリアライズ、デシリアライズしたら
勝手に透過プロキシに変換までされたんだけど、そういうもん?
透過プロキシへの変換は手でやるもんだと思ってたんだけど。

751 :デフォルトの名無しさん:2006/07/16(日) 01:44:43
>>742
サンクス。速くなった。
>>747-749
StringBuilder消すのを忘れていた…
ちゃんと同じバイナリが生成されて同じ速度になった。
+はどう見ても写し間違いです。本当にありがとうございました。



752 :デフォルトの名無しさん:2006/07/16(日) 09:46:15
整数と文字列が+演算子で結べることを俺は知らなかったぞ!!!
今まで何回ToString()書くのめんどくせえなあと思ったことか・・・

753 :デフォルトの名無しさん:2006/07/16(日) 09:55:40
>>752
Format使った方がよかですよ

754 :デフォルトの名無しさん:2006/07/16(日) 11:44:13
>>752
できたとしてもToString()ちゃんと書いた方がいいですよ。
VS だったら .T ぐらいまで打てばインテリセンスがよろしくやってくれるでしょ。

755 :デフォルトの名無しさん:2006/07/16(日) 11:46:47
>>754
>できたとしてもToString()ちゃんと書いた方がいいですよ。

理由は?何のためにToString()はObjectにあるんだ?

756 :デフォルトの名無しさん:2006/07/16(日) 11:53:28
1 + "たす" + 1 + " は" + (1 + 1) + "です"
こういうとき紛らわしいからじゃないの?

757 :デフォルトの名無しさん:2006/07/16(日) 11:55:27
>>756
読めるよね。普通に

758 :デフォルトの名無しさん:2006/07/16(日) 12:02:28
変なコメントが入ってるだけで可読性が下がるとか言うのにね

759 :デフォルトの名無しさん:2006/07/16(日) 12:06:36
>>758
可読性を下げるような妙なコメント書くからだと思うが。

760 :デフォルトの名無しさん:2006/07/16(日) 12:08:17
文字列連結はD言語やBASICみたいに別の記号のほうがいいなあ

761 :デフォルトの名無しさん:2006/07/16(日) 12:12:34
いちいちToString()したら無駄なstring生成しまくりじゃん
こういう時こそString.ConcatやStringBufferを使うべきじゃないの

762 :デフォルトの名無しさん:2006/07/16(日) 12:14:14
>>761
一行のメッセージにそんなもん持ち出す方が面倒だ。

763 :デフォルトの名無しさん:2006/07/16(日) 12:16:35
StringBufferはStringBuilderの間違い。

生成しまくりというのはint2stringのことね。念のため。
>>760
同意
しかしPerlみたいにいまさら変更されるのも困るなあ

764 :デフォルトの名無しさん:2006/07/16(日) 12:18:34
o(n)

765 :デフォルトの名無しさん:2006/07/16(日) 13:38:26
もはや余ってる演算子が…

766 :デフォルトの名無しさん:2006/07/16(日) 13:44:22
C#使ってるような奴が可読性とか言っちゃってるよ(プ

767 :デフォルトの名無しさん:2006/07/16(日) 13:55:31
(ププッ

768 :デフォルトの名無しさん:2006/07/16(日) 15:10:23
string s1 = s2;
って、s1とs2に同じポインタが入るのじゃないのか?

769 :デフォルトの名無しさん:2006/07/16(日) 15:16:11
>>765
->とか>>とかasとかinおとかもOKなんだからさと。

770 :デフォルトの名無しさん:2006/07/16(日) 15:16:41
>>768
文字列の場合はコピーじゃないですか?なんとなく。


771 :デフォルトの名無しさん:2006/07/16(日) 15:31:12
>>770
>>768が正解。コピーがデフォならStringBuilderはいらない。

772 :デフォルトの名無しさん:2006/07/16(日) 15:36:39
>>771
コピーと追記じゃ訳が違うのでどっちにしろStringBuilderは必須。

773 :デフォルトの名無しさん:2006/07/16(日) 15:45:01
VB6とそれ以前がそんな構造だが、StringBuilderなぞないよ?

774 :デフォルトの名無しさん:2006/07/16(日) 15:49:09
>>773
だから遅いんでしょ。

775 :デフォルトの名無しさん:2006/07/16(日) 17:14:34
CSV形式に成形するメソッドなんか見ると
全レコード文字列としてくっつけて返すやつなんかある。
ああいうのは連結のしかたで大きく負荷が変わるが、
その前にその仕様変えろといいたくなる。


776 :デフォルトの名無しさん:2006/07/16(日) 17:26:52
>>753
string#Formatのベンチマークも取りました
# 盲点だった

777 :デフォルトの名無しさん:2006/07/16(日) 17:36:51
>>775
じゃあどうすればいいの?
interface ICSV{public string this[col][row];}とか?

778 :デフォルトの名無しさん:2006/07/16(日) 18:36:38
Builderを引数とか、Stream形式とか。一行に対してIEnumerableとかじゃない?

779 :デフォルトの名無しさん:2006/07/16(日) 19:27:09
用途の柔軟性から行けばTextWriterあたりがいいかな。
Streamのオーバーロードもあってもいいか。
ま、まず9割くらいはTextWriterでいい気がする。


780 :デフォルトの名無しさん:2006/07/16(日) 20:28:28
char型の配列で終端に\0でも入れて、
自分で文字列を扱えば、全て解決。

781 :デフォルトの名無しさん:2006/07/16(日) 20:45:01
??

782 :デフォルトの名無しさん:2006/07/16(日) 21:25:51
Regex.Replace(line, "(", "(");
のように半角"("を全角に置換えしたいのですが
エラーがでてしまいます。うまく動作させるにはどのように記述すれば
よいでしょうか?

783 :デフォルトの名無しさん:2006/07/16(日) 21:33:13
エラーが出るキタ━━━━━━(゚∀゚)━━━━━━!!!!

784 :デフォルトの名無しさん:2006/07/16(日) 21:35:09
(をエスケープしとけ


785 :782:2006/07/16(日) 22:09:06
>>784 ちゃんと動作しました。ありがとうございました。

786 :デフォルトの名無しさん:2006/07/16(日) 22:22:57
正規表現の意味ねぇ━━━━(´・ω・`)━━━━ッ!!

787 :デフォルトの名無しさん:2006/07/16(日) 22:27:10
確かに言われてみればStringクラスで事足りるな

788 :デフォルトの名無しさん:2006/07/16(日) 22:37:23
ブラウザの「リンクバー」みたいなのはどういうコントロールで
実現できるのでしょうか?

789 :デフォルトの名無しさん:2006/07/16(日) 23:52:00
Visul C# EEで、デザイナいじるたびに
DataGridViewのカラムの順番が勝手に変わるんですが
なんとかなりませんかね?


790 :デフォルトの名無しさん:2006/07/17(月) 03:01:48
>>771
ソースある?俺は普通にs2と同じポインタがs1に入ると思ってたんだが。

791 :デフォルトの名無しさん:2006/07/17(月) 08:05:49
ポインタじゃなくて参照な。
771 も参照の代入であると言ってるようだが?

792 :デフォルトの名無しさん:2006/07/17(月) 10:04:34
リファレンスじゃないの?

793 :デフォルトの名無しさん:2006/07/17(月) 10:08:48
>>792
リファレンスは日本語に直したら参照だろ?
単語すらわからないんだったらプログラムやめたほうがいいんじゃね?

794 :デフォルトの名無しさん:2006/07/17(月) 10:09:31
正直どうでもいい

795 :デフォルトの名無しさん:2006/07/17(月) 10:17:25
>>793
そんなつまらない所であげ足取るくらいなら人間辞めた方がいいんじゃね?

796 :デフォルトの名無しさん:2006/07/17(月) 10:27:30
100MBぐらいの文字列で試せばすぐ分かるだろ

797 :デフォルトの名無しさん:2006/07/17(月) 10:28:04
つまらないところって>>792の言ってることの全否定なんだが。

798 :デフォルトの名無しさん:2006/07/17(月) 10:33:05
>>796
そんな必要ないだろ

799 :デフォルトの名無しさん:2006/07/17(月) 10:52:06
D♭

800 :デフォルトの名無しさん:2006/07/17(月) 11:32:30
100MBの文字列を確保しようとしたらOverflowExceptionが出たよママン

801 :デフォルトの名無しさん:2006/07/17(月) 11:44:19
>>791
すまん、俺>>771の発言を勘違いしてたのかorz

802 :デフォルトの名無しさん:2006/07/17(月) 12:04:00
嘘つけ

803 :デフォルトの名無しさん:2006/07/17(月) 12:05:42
>>802>>800に対してね

804 :デフォルトの名無しさん:2006/07/17(月) 13:29:56
>>793
http://www.excite.co.jp/dictionary/english_japanese/?search=reference&match=beginswith&dictionary=NEW_EJJE&block=41781&offset=318

「参照」というのは結構無理矢理。


805 :デフォルトの名無しさん:2006/07/17(月) 13:40:54
いや、reference を参照と訳すのは C# に限らず特に所謂 IT 系で広く使われてるが……。

806 :デフォルトの名無しさん:2006/07/17(月) 13:45:25
>>804 2番目に参照とあるのに何をもって無理やりといってるのかと

807 :デフォルトの名無しさん:2006/07/17(月) 13:48:07
>>806
「参照すること」

参照すると言う動詞を無理矢理名詞化してるんですな。
訳したらなるだろぼけ!とまで言えるほど大きな顔が出来る単語でもなし。

808 :デフォルトの名無しさん:2006/07/17(月) 13:50:44
ごめん何がいいたいのかわからない

809 :デフォルトの名無しさん:2006/07/17(月) 13:57:09
参照(すること)
何のための括弧だよ

810 :デフォルトの名無しさん:2006/07/17(月) 14:16:37
ワロリン

811 :デフォルトの名無しさん:2006/07/17(月) 14:27:13
>>807
英訳とか出来なさそうだな。

812 :デフォルトの名無しさん:2006/07/17(月) 14:35:37
英語を訳すときに大事なのは厳密な解読じゃなくてフィーリングだぞ

813 :デフォルトの名無しさん:2006/07/17(月) 14:42:44
>>811
すんません、旧帝大 英IIです。

814 :デフォルトの名無しさん:2006/07/17(月) 14:44:18
そもそも外国の言葉が自国の言葉に一対一対応するわけでもないし自国の言葉すら各人の対応する概念が一致してるとは必ずしも言いがたい。


815 :デフォルトの名無しさん:2006/07/17(月) 14:48:13
>>814
極論とか論理の飛躍とか好きじゃないです。

816 :デフォルトの名無しさん:2006/07/17(月) 14:50:35
いったい何が言いたいんだ。


817 :デフォルトの名無しさん:2006/07/17(月) 14:54:56
ネタがないからくだらない言い合いしてるだけだ

818 :デフォルトの名無しさん:2006/07/17(月) 15:10:34
C#で有名な曲っていうと、ヴィヴァルディの「四季」より「春」 ってのがあるな。

819 :デフォルトの名無しさん:2006/07/17(月) 15:34:41
あらかじめ100MBの文字列 st1 を用意しておいて、
st2 = st1;
を何回やってもメモリ使用量は増えない。
しかし、
st2 = st1;
st2 += "s";
だと当然メモリ使用量は増える。

あと、100MBの文字列を作るときにStringBuilder使ったんだけど、
st1 = sb.ToString();
だとメモリ使用量は増えないのね(sbはStringBuilder)

820 :デフォルトの名無しさん:2006/07/17(月) 15:37:18
>>819
>だと当然メモリ使用量は増える。
気になるなら手動でGCすればいいですよー。


821 :デフォルトの名無しさん:2006/07/17(月) 15:38:30
あほす

822 :デフォルトの名無しさん:2006/07/17(月) 15:43:25
>>820
お前は何を言ってるんだ?日本語が読めないのか

823 :句読点書けないバカをサマージャンボする俺 ◆9NQzQ21lx. :2006/07/17(月) 15:44:04
>>822


824 :デフォルトの名無しさん:2006/07/17(月) 16:14:57
お前は、何を、言ってるんだ?、日本語が、読めないのか、

825 :デフォルトの名無しさん:2006/07/17(月) 16:44:43
百回死ね

826 :デフォルトの名無しさん:2006/07/17(月) 16:56:45
まあC#しか知らない糞ガキどもだから

827 :デフォルトの名無しさん:2006/07/17(月) 16:59:26
どうやったら100回死ねるの?

828 :デフォルトの名無しさん:2006/07/17(月) 17:07:55
知らんがな(´・ω・`)

829 :デフォルトの名無しさん:2006/07/17(月) 18:48:28
とりあえず1回から試してみるといいよ

830 :デフォルトの名無しさん:2006/07/17(月) 19:31:15
D♭っていうセンスは好き。

831 :デフォルトの名無しさん:2006/07/17(月) 19:34:54
Cωはどうなった?

832 :デフォルトの名無しさん:2006/07/17(月) 19:47:11
Cω→WinFX XAML→.Net3.0→あぼーん

833 :デフォルトの名無しさん:2006/07/17(月) 20:00:29
CωはC#3.0に取り込まれる。
元々世に出す予定はない。

834 :デフォルトの名無しさん:2006/07/17(月) 20:16:23
Cちんこ

835 :デフォルトの名無しさん:2006/07/17(月) 21:43:43
ふぐりだろ

836 :デフォルトの名無しさん:2006/07/17(月) 21:52:38
すほうれいこだよ

837 :デフォルトの名無しさん:2006/07/17(月) 22:21:49
このスレレベル低すぎw

838 :デフォルトの名無しさん:2006/07/17(月) 22:22:57
だからVB.Netを使えとあれほど・・・

839 :デフォルトの名無しさん:2006/07/17(月) 22:23:12
つうか、きくならVSUGかgetDotNet、その他メーリングリストのほうがまし。

840 :デフォルトの名無しさん:2006/07/17(月) 22:30:14
Cωの次はCυ(しーいぷしろん)
これでちんことまんこが完成!

841 :デフォルトの名無しさん:2006/07/17(月) 22:31:27
>>840
それニュー

842 :デフォルトの名無しさん:2006/07/17(月) 22:43:07
C z → C z zwei
でいいじゃん

843 :デフォルトの名無しさん:2006/07/17(月) 22:58:48
初心者スレの方がよっぽどレベル高いな

844 :デフォルトの名無しさん:2006/07/17(月) 23:06:20
マ板にはめずらしいVIPクオリティーを感じるスレ

845 :デフォルトの名無しさん:2006/07/17(月) 23:07:36
>>838
だが既にVB.NETは死んだ!

846 :デフォルトの名無しさん:2006/07/17(月) 23:09:14
ここは相談室。相談しない方にはお引き取りねがいたい

847 :デフォルトの名無しさん:2006/07/17(月) 23:37:21
愛は死にますか?

848 :デフォルトの名無しさん:2006/07/17(月) 23:44:44
もちろんです

849 :デフォルトの名無しさん:2006/07/17(月) 23:54:35
触り始めたところなんだけど、もしかしてC#ってconst参照渡しとかconst関数とか存在しない?

850 :デフォルトの名無しさん:2006/07/17(月) 23:56:05
C# というか .NET に存在しない

851 :デフォルトの名無しさん:2006/07/18(火) 00:04:01
マジか。困ったな。死ねばいいのに。

852 :デフォルトの名無しさん:2006/07/18(火) 01:47:34
.NETでC++のconst同様のことをするならget専用のinterfaceを公開するって感じになる?
でも値の変更を許可しないことを言語がサポートしてくれるわけじゃないからな…

853 :デフォルトの名無しさん:2006/07/18(火) 04:28:53
>>850 そりゃ言語の範疇だろう。.netかんけいない。

854 :デフォルトの名無しさん:2006/07/18(火) 09:14:59
>>853
C#はCILを生成するのでCIL上に存在しない=.NETに存在しないって
表現は正しい。
まぁなんだ、実装見せたくないのと参照がメンバの中心になるんで
意味がないのと、リフレクションにはまったく無力だし、そもそも
delegateやevent先なんて追跡可能じゃねーよなぁとか考えると
あんまりいい実装思いつかないし、仕方ないと思うよ

855 :デフォルトの名無しさん:2006/07/18(火) 09:25:37
>>854 いや.NET上でなくても、言語上でconstの仕様をコンパイル上でチェックすることは可能でしょう。またそれで十分かと。

856 :デフォルトの名無しさん:2006/07/18(火) 09:41:29
アンマネージはどうするの?

857 :デフォルトの名無しさん:2006/07/18(火) 09:48:14
せめてCLSの範囲内でないと無理がある。

858 :デフォルトの名無しさん:2006/07/18(火) 09:53:33
>>855
だからな、constを保証するためには自身のメンバの型のconst保証したメタデータの
マークがなけりゃできないだろ。CILのメタデータ表現としてそんなものないのに
C#コンパイラがどうやって検証するんだよ。
中身みて分析でもするか?コンパイルにどれだけかかるんだろうな?
外部型情報使用したらconst禁止にするか?使える場面まったくなくなるな。


859 :デフォルトの名無しさん:2006/07/18(火) 10:04:20
>>858 んじゃ、C++で同様のことどうやってると思ってるんだ?

860 :デフォルトの名無しさん:2006/07/18(火) 10:12:34
最初はconst無くて不便と思ったがだんだんどうでもよくなってきた。


861 :デフォルトの名無しさん:2006/07/18(火) 10:19:34
正直、C++のconstは俺には複雑すぎて使いこなせてない。
const char * くらいだなC++で使ってるのは。C#ではstringがimmutableだから問題ないしな。

862 :デフォルトの名無しさん:2006/07/18(火) 10:52:45
readonlyマンセー

863 :デフォルトの名無しさん:2006/07/18(火) 10:52:50
>>859
ネイティブC++に関して言えば型情報にconstがあるからだ
「CILにそういう型情報がないからC#が簡単にどうこうできる問題でも
ない」って言っているんだが理解しているか?
この制限は言語に依存せず、実際同じCILの型情報を使うC++/CLIの
マネージ型ではconstは使えない。VB.NETもな。

何で.NETにないのかといわれればこれは俺の考えだが、C++とは激しく
状況が異なるからだ。とても実現可能に見えない。


864 :デフォルトの名無しさん:2006/07/18(火) 10:56:20
わかんないんです><

865 :デフォルトの名無しさん:2006/07/18(火) 10:57:46
>>863 あーconstめんばへんすうはむりね。
それほとんど使わないから気にしてなかったすまん祖。

866 :デフォルトの名無しさん:2006/07/18(火) 11:09:46
const メンバ変数なんて使った事ない気がするなあ。
static const メンバ定数しか使わない。

867 :デフォルトの名無しさん:2006/07/18(火) 11:54:53
>ネイティブC++に関して言えば型情報にconstがあるからだ
じゃ型情報無効にしたらconstつかえないのか?
単にヘッダ見てるだけじゃないか?


868 :デフォルトの名無しさん:2006/07/18(火) 17:38:27
>>867
ヘッダに型情報が書いてあるのがC++なのに型情報無効にして
ヘッダ参照って何?

869 :デフォルトの名無しさん:2006/07/18(火) 19:05:51
.NETは関係なし言語側(C#)の問題だ、と言ってるヤツの根拠が全くなく思いつきだけだな

870 :デフォルトの名無しさん:2006/07/18(火) 19:11:44
>>869
そんなやついた?

871 :デフォルトの名無しさん:2006/07/18(火) 19:15:40
他モジュールの面罵constを実現できないだけで、ほかのconstは言語側で実現できるでしょ。

872 :デフォルトの名無しさん:2006/07/18(火) 19:21:28
C#って、TestClass.Item[i]みたいな感じで使える配列プロパティみたいなものって
インデクサを使ったTestClass[i]っていう形式の1つしか作れないの?

873 :デフォルトの名無しさん:2006/07/18(火) 19:53:57
>>872
[ ] のオーバーロードは不可で、インデックサでのみ使用可能。( )で代用するか、
コレクションやインデックサを持ったクラスを作って
それを返すプロパティを設ければいいんじゃない。

874 :デフォルトの名無しさん:2006/07/18(火) 20:01:05
>>872
いわゆる「名前付きインデクサ」って奴ね。
IL 的には名前付きインデクサも作れるみたいだけど、C# では無理。

多分、コレクションを返すプロパティと区別が付かないのが嫌だったんだと思う。
>>873 の言うように、インデクサを実装したクラスを1個余計に作って、
それを返すプロパティを作るのが C# 的には正しい。

875 :デフォルトの名無しさん:2006/07/18(火) 20:04:33
>>871
>他モジュールの面罵constを実現できないだけ
これがconst機構上致命的なんだが…
これがないと、それこそconst参照渡されても何もできない(getterにさえ
アクセスできない)

class Foo { private: int x; public : int getX() /* const */ { return x; } };
void Bar(const Foo& value) {
 int x = value.getX(); //コンパイルエラー
}


876 :デフォルトの名無しさん:2006/07/18(火) 20:17:08
今日のテーマは『C#がこの先生きのこるには』です。

877 :デフォルトの名無しさん:2006/07/18(火) 20:18:37
キノコヾ( ゚д゚)ノ″キノコ

878 :デフォルトの名無しさん:2006/07/18(火) 20:22:21
どうせC#は日曜プログラマ限定でしょ

879 :デフォルトの名無しさん:2006/07/18(火) 20:59:45
>>876

      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      | ( ゚Д゚)  <C♯きのこる!
      |(ノ  |つ    
      |.先生.|
      ヽ _ノ
       U"U


880 :デフォルトの名無しさん:2006/07/18(火) 21:05:34
>>873-874
ありがとう。インデクサを持ったプロパティを別に作るのは思い浮かばなかった。
その方向でいくことにするよ

881 :にゃんぽん:2006/07/18(火) 23:40:04
こんにちは。
どうか、Windowのリサイズについてご教授ください。

画像を表示するプログラムを作成しています。
画面をマウスドラッグでサイズ変更をしているとき、
マウス移動の間、図形を連続的に再描画(縦横比を一定)しようとしています。

FormPaint内でClientWidth とClientheightの設定をしてもうまくいきません。

いい方法がありましたらご教授願います。


882 :デフォルトの名無しさん:2006/07/18(火) 23:40:31
>>875
属性で拡張すれば言語レベルで対応できると思う。
C#にない理由は実装が手間なわりに効果が薄いとみなされたためだろう。
同じ理由で多重継承やC++タイプのFriendも削除されたり単純化されている。

883 :デフォルトの名無しさん:2006/07/18(火) 23:45:51
多重継承の実装の面倒くささは桁違いだろ。

ついでに言うとfriendはinternalが相当すると言えるかもしれない。

884 :デフォルトの名無しさん:2006/07/19(水) 00:14:20
>>878
俺は業務で使ってるが。

885 :デフォルトの名無しさん:2006/07/19(水) 00:31:29
簡単につれるね

886 :デフォルトの名無しさん:2006/07/19(水) 00:39:26
>>882
その対応だと使えるクラスと使えないクラスができてしまって激しく
気持ち悪いんだが。
ついでにいうと、動的機能を使用することが常態になっている.NETで
静的に閉じたconstなんか採用したら抜け道だらけで収拾がつかなくなる。
System.ComponentModelが動的(いわゆるリフレクション)を基礎として
構築されていることは分かっているよね?

887 :デフォルトの名無しさん:2006/07/19(水) 00:41:02
日曜に仕事してるのか

888 :デフォルトの名無しさん:2006/07/19(水) 01:22:35
なんかもうC#が気になりまくりだけど、移行できないJava厨が多くて嫌だね
Javaなんて、あと3年で消えるのに

889 :デフォルトの名無しさん:2006/07/19(水) 01:39:19
世界観の狭い人だね

890 :デフォルトの名無しさん:2006/07/19(水) 01:43:18
3年で消えるんならもう終焉気味じゃないとおかしいぞ

891 :デフォルトの名無しさん:2006/07/19(水) 02:52:08
J#に謝れ

892 :デフォルトの名無しさん:2006/07/19(水) 03:28:17
おまえら!
System.ComponentModelが動的(いわゆるリフレクション)を基礎として構築されていることは分かっているよね?


893 :デフォルトの名無しさん:2006/07/19(水) 03:34:46
つーかComponentModelが何なのか今市よく分かってない

894 :デフォルトの名無しさん:2006/07/19(水) 03:47:10
>>892
またそれか

895 :デフォルトの名無しさん:2006/07/19(水) 05:55:51
>>886
>その対応だと使えるクラスと使えないクラスができてしまって激しく
>気持ち悪いんだが。
それ以前の問題としてintすら外部アセンブリなんだけどね!
最低限CTSに手を加えないで、C#だけでどんなクラスが作れるのか
おじさん知りたいな!

896 :デフォルトの名無しさん:2006/07/19(水) 06:17:44
おじさん乙

897 :デフォルトの名無しさん:2006/07/19(水) 11:06:39
おじさん萌え

898 :デフォルトの名無しさん:2006/07/19(水) 11:08:26
使用済み男根

899 :デフォルトの名無しさん:2006/07/19(水) 12:32:18
ComponentModel名前空間は自分から使ったことないな

900 :デフォルトの名無しさん:2006/07/19(水) 12:38:04
で?

901 :デフォルトの名無しさん:2006/07/19(水) 12:40:50
ComponentModelってCOMがらみ?

902 :デフォルトの名無しさん:2006/07/19(水) 13:48:25
ちがう

903 :デフォルトの名無しさん:2006/07/19(水) 14:37:33
IContainerくらいは使うでしょ

904 :デフォルトの名無しさん:2006/07/19(水) 15:38:25
Javaって死滅しちゃうのぉ?

905 :デフォルトの名無しさん:2006/07/19(水) 16:17:29
>>904
javaの命運はお前にかかっている

906 :デフォルトの名無しさん:2006/07/19(水) 16:59:25
おれが救ってやる

907 :デフォルトの名無しさん:2006/07/19(水) 17:41:56
JavaもC#も死んでVBとC++だけが残る

908 :デフォルトの名無しさん:2006/07/19(水) 17:46:54
C#は、生きてるというレベルにすらまだなってない

909 :デフォルトの名無しさん:2006/07/19(水) 18:02:35
生きろ

910 :デフォルトの名無しさん:2006/07/19(水) 20:32:05
結局VB.NETのほうが生き残るんですね、VBの書き方苦手なんだよな・・・慣れの問題かもしれんが

911 :デフォルトの名無しさん:2006/07/19(水) 20:46:52
釣れますか?

912 :デフォルトの名無しさん:2006/07/19(水) 21:45:25
C#でもVB.NETでもどっちでもいいじゃん、何をそんなに気にしてんの?
漏れはそのときの気分によって使い分けてるよ。開発上どっちかの言語に
有利なアプリケーションなんて別に無いしな。

913 :デフォルトの名無しさん:2006/07/19(水) 21:54:53
ネタにマジレス

914 :デフォルトの名無しさん:2006/07/19(水) 21:59:46
夏休みのためかすっかり雑談スレになってるが、ご相談の方も遠慮なくどうぞ。

915 :デフォルトの名無しさん:2006/07/19(水) 23:09:57
C#でテンプレートつけてくれればあまり文句ないんだが・・・

916 :デフォルトの名無しさん:2006/07/19(水) 23:11:04
>>915
Genericsで不満なとこあるんか?

917 :デフォルトの名無しさん:2006/07/19(水) 23:18:14
タイプパラメータを継承元とできない点

コンストラクタやenum等の制約がかけれない点

918 :デフォルトの名無しさん:2006/07/19(水) 23:20:45
型を指定しないとメソッド呼べないところ。
C++みたいになんでもありありにしてほしい。

919 :デフォルトの名無しさん:2006/07/19(水) 23:23:33
ILとの兼ね合いからそこまでは難しいと思う。
それよりもやっぱりtypedefが欲しい。

920 :デフォルトの名無しさん:2006/07/19(水) 23:24:05
だったらC++をやれと…
安全性と自由度はトレードオフだっつーのよ

921 :デフォルトの名無しさん:2006/07/19(水) 23:27:25
readonlyのローカル変数が使えないのは何でだぜ?

922 :デフォルトの名無しさん:2006/07/19(水) 23:28:32
>>920 行為売れすする人って例外なく頭悪いよね

923 :デフォルトの名無しさん:2006/07/19(水) 23:54:19
変換くらいちゃんとしろ

924 :デフォルトの名無しさん:2006/07/20(木) 00:28:12
>>918
あれをやろうと思ったら、C++ みたいに、
ジェネリッククラスを実体化するたびに別のクラスのコードが生成されて、
コンパイル結果が爆発的に肥大化するから駄目なんじゃ。

>>920
安全性だけじゃなくて、↑みたいな効率の問題も大きいよ。

925 :デフォルトの名無しさん:2006/07/20(木) 00:33:59
>>924 でもそのおかげで総称性にかなり制限が加わってる。


926 :デフォルトの名無しさん:2006/07/20(木) 01:15:51
しかしC#は硬くしたおかげで、推論しても大丈夫な世界を構築しているから
難しいところだよ。本来ならこっちのほうが正統な発展な希ガス。
明示を何とかせんと応用が利かんぞっつーのは確かにあったわけで。

whereの表現力が低いっつーのとinterfaceの表現力が低いっつーのは
(そしてそれが現状の不満につながっているのは)認めるところだが、
これは別の解決策があるだろうと思うし。C++の方法は何か違う。

927 :デフォルトの名無しさん:2006/07/20(木) 12:53:41
.NET1.1ネイティブなJPEG2000のライブラリを教えてください。
既に動いているノータッチデプロイメントのシステムなのですが、
「JPEG->JPEG2000によせ」という要求がきて困ってます。


928 :デフォルトの名無しさん:2006/07/20(木) 13:08:06
ClickOnce にしちゃえば

929 :デフォルトの名無しさん:2006/07/20(木) 13:10:09
.net別の名前にしてくれないかな・・・・
検索しづらくてたまらん・・・orz

930 :デフォルトの名無しさん:2006/07/20(木) 13:19:48
あるあるw

931 :デフォルトの名無しさん:2006/07/20(木) 13:22:32
ttp://www.google.com/microsoft.html

932 :デフォルトの名無しさん:2006/07/20(木) 13:56:43
こんにちは。当方 .NET2003、.NET Framework1.1 を使用しているのですが、
comboBox(テキストボックスでもいい)でAutoCompleteを実現するのは無理なのでしょうか・・・?
無理でしたら、代替としてどのような方法があるでしょうか?
お願いします。

参考:
http://itpro.nikkeibp.co.jp/article/COLUMN/20060616/241092/?ST=itprotech
http://www.atmarkit.co.jp/fdotnet/dotnettips/423autocompsource/autocompsource.html

933 :デフォルトの名無しさん:2006/07/20(木) 13:59:46
お前がどこで躓いているかが理解できない

934 :932:2006/07/20(木) 14:08:30
ありがとうございます。

System.Windows.Forms.ComboBox' に 'AutoCompleteMode' の定義がありません。
と出てしまうので、1.1じゃ無理なのかと思ったのですが…


935 :デフォルトの名無しさん:2006/07/20(木) 14:09:21
>>932
上段のurlの対応バージョンがうそっぽいな
MSDNでComboBox.AutoCompleteSource をみると次のように赤字で表示される。
>メモ : このプロパティは、.NET Framework version 2.0 で新しく追加されたものです。 

936 :932:2006/07/20(木) 14:22:02
>>935
ですよね。

どうやって実現すればいいでしょうか。

937 :デフォルトの名無しさん:2006/07/20(木) 14:29:16
そんぐらい自分で実装したまへよ

938 :デフォルトの名無しさん:2006/07/20(木) 14:30:51
>>936
サポートしてないのなら対応は限られるだろう。
1.あきらめる
2.VS2005にかえる
3.KeyPressイベントあたりに自分でたくさんコードを書く
4.同等の機能を持った市販かネットで入手可能なコントロールを探す(あるかどうかは知らん)

939 :932:2006/07/20(木) 14:34:03
>>937>>938
そうですね。自分でたくさんコードを書いてがんばろうと思います。
ありがとうございました。

940 :デフォルトの名無しさん:2006/07/20(木) 15:20:22
すいません。誰かこの質問に答えられるひといますか?
C#のFormをコピーしてwordなどの文章に貼り付けることは可能ですか?

941 :デフォルトの名無しさん:2006/07/20(木) 15:21:27
>>940
PrintScreenで好きなだけどうぞ

942 :デフォルトの名無しさん:2006/07/20(木) 15:26:57
>>940ありがとうございます。
PrintScreenの使い方がよくわからないのですが、
紹介しているサイトとかご存じですか!?


943 :デフォルトの名無しさん:2006/07/20(木) 15:30:06
>>942
http://www.google.com/

944 :デフォルトの名無しさん:2006/07/20(木) 15:57:47
誰か、PrintScreenの使い方教えてください。

945 :デフォルトの名無しさん:2006/07/20(木) 16:03:54
Windowsキーを押してキーボードのUを連打

946 :デフォルトの名無しさん:2006/07/20(木) 16:12:56
Windows+R
regedit Enter

どれか好きなのを右クリック-削除

947 :デフォルトの名無しさん:2006/07/20(木) 17:10:57
VC#2005EEでManagedDirectXをいじってるんですが
FormのOnSizeChangedで勝手にDevice.Reset()を呼び出すのが激しくウザいです。
なんとか勝手に呼び出すのをやめさせる方法はないでしょうか?

948 :デフォルトの名無しさん:2006/07/20(木) 19:02:47
>>940
自分の言いたいことが相手に伝わらなくて社会生活で苦労したりしませんか?
言葉が足りないからです。

C#のFormをコピーって意味が分かりません。

スクリーンショットを貼り付けたいのですか?
それを動的にプログラムで実現したいのですか?
Form上のテキストを貼り付けたいんですか?
wordのドキュメント内部でFormを実現したいのですか?
それとももっと想像を絶するようなことですか?



949 :デフォルトの名無しさん:2006/07/20(木) 19:04:45
普通に推測できますが。

950 :デフォルトの名無しさん:2006/07/20(木) 19:05:12
お前はエスパーだからな

951 :デフォルトの名無しさん:2006/07/20(木) 19:28:36
おそらく「もっと想像を絶するようなこと」だな

952 :デフォルトの名無しさん:2006/07/20(木) 19:42:34
ム板に来る前にパソコン初心者スレ行くべきだな

953 :デフォルトの名無しさん:2006/07/20(木) 19:49:51
推測できた内容書いてくれよエスパー

954 :デフォルトの名無しさん:2006/07/20(木) 19:53:22
PrintScreenすら知らないヤツって・・・
知らなくてもググるとかしろよ

955 :デフォルトの名無しさん:2006/07/20(木) 19:56:32
>>928
クライアントに.NET1.1で動く別システムが入っている為、
「NTDが動かなくなるので.NET2.0は使うな」と言われており
ClickOnceは使えません。

956 :デフォルトの名無しさん:2006/07/20(木) 20:41:06
>>955
.NET 1.0 1.1 2.0 はSxSで混在可能なのだが、よほど妙な作り方をしてるのだろうか。

957 :デフォルトの名無しさん:2006/07/20(木) 20:47:18
>>948
>自分の言いたいことが相手に伝わらなくて社会生活で苦労したりしませんか?
>言葉が足りないからです。

それは多分あなたのことです。

分かっているのなら、多分解決出来ています。
何故なら、調べるにしても簡単に調べられるからです。

分からないから的確なキーワードも分からず、調べるにも、なかなかヒットしません。

何が分からないのかを適切に聞き出せないなら、同じように社会生活で苦労します。
それは、言葉が足らないからです。

958 :デフォルトの名無しさん:2006/07/20(木) 20:52:02
プログラム言語学ぶ前に日本語学んで来い

959 :デフォルトの名無しさん:2006/07/20(木) 20:58:11
推測できた内容書いてくれよエスパー

960 :デフォルトの名無しさん:2006/07/20(木) 21:04:53
>>959は出来るだけ死体が見つからない方法を考え、2日後に自殺する。

961 :デフォルトの名無しさん:2006/07/20(木) 21:17:26
誤差2ms以内でスレッドを管理したいのですが
Thread.Sleepが20msほど帰ってきやがらないので辟易しています。
C++/Win32APIならtimeBeginPeriod(1)で環境によっては
Sleep(1)が1msで帰ってくるようになりますが、Thread.Sleepは
独自処理らしくwinmm.dllをインポートしてtimeBeginPeriod(1)しても
相変わらず20msほど処理が戻ってきません。
SpinWaitは半端な知識で使うのは危なそうだし何か良い方法はないでしょうか。

962 :デフォルトの名無しさん:2006/07/20(木) 21:22:43
当たり前
Windows 自体そんな精度出せない

963 :デフォルトの名無しさん:2006/07/20(木) 21:27:49
>>962
いや…C++/Win32APIで書いたものは精度出てるんですけど…

964 :デフォルトの名無しさん:2006/07/20(木) 21:35:26
timeBeginPeriod(1)をしてsleepするアンマネージなDLLを用意するしかないんじゃない?よくわからんけど

965 :デフォルトの名無しさん:2006/07/20(木) 21:35:31
MM系のtimeBeginPeriodはSleepにも影響するの?

966 :デフォルトの名無しさん:2006/07/20(木) 22:06:12
で、推測できた内容はまだか?

967 :デフォルトの名無しさん:2006/07/20(木) 22:52:20
>>966
質問の回答が得られないからって自演で煽ってるヤツなんかと仲良くしちゃいけませんっ

968 :デフォルトの名無しさん:2006/07/20(木) 23:21:40
>>948
相手の言っていることがわからなくて社会生活で苦労したりしませんか?
IQが足りないからです。

969 :デフォルトの名無しさん:2006/07/20(木) 23:28:23
で、推測できた内容はまだか?

970 :デフォルトの名無しさん:2006/07/20(木) 23:39:50
何がそんなに悔しかったんだろう?

971 :デフォルトの名無しさん:2006/07/20(木) 23:56:04
型を示す文字列(例、"System.Windows.Forms.Form","System.Drawing.Font")から
その型のインスタンスを作成する方法ってありますでしょうか?


972 :デフォルトの名無しさん:2006/07/20(木) 23:59:43
>>971
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/386createinstance/createinstance.html

973 :デフォルトの名無しさん:2006/07/21(金) 00:48:33
そこの説明だめだめだからやめた方がいい。


974 :デフォルトの名無しさん:2006/07/21(金) 00:57:59
ま、System.Windows.Forms.Form だけでは型を示すには不足だな。

975 :デフォルトの名無しさん:2006/07/21(金) 01:44:44
文字列からソースを作ってビルドして動的にリンク

976 :971:2006/07/21(金) 07:05:42
>>972-974
Assembly が取得できれば CreateInstance できるということですね。
その方向で、作ってみます。
ありがとうございました。

>>975
ちょっと方向性が違うのでその方向はミリ

977 :デフォルトの名無しさん:2006/07/21(金) 08:56:59
質問です。
テキストのログファイルを作成するに当たって、ファイルを回帰的に使用したいと
考えています。
指定行にテキストを書き込む方法(ヒント)を教えてください。

978 :デフォルトの名無しさん:2006/07/21(金) 09:00:46
>>977
System.IO

979 :デフォルトの名無しさん:2006/07/21(金) 09:07:14
>>978
すいません、できればクラスまでお願いします。
さらにできたらメソッドまで。

980 :デフォルトの名無しさん:2006/07/21(金) 09:09:04
>>979
ふらっとC♯(初心者用) Part8
http://pc8.2ch.net/test/read.cgi/tech/1148310124/

981 :979:2006/07/21(金) 09:10:39
ふらっとC#スレへ異動します

982 :デフォルトの名無しさん:2006/07/21(金) 12:53:42
>>956
通常なら混在可能だが、NTDは2.0入れたらダメじゃなかったか?

983 :デフォルトの名無しさん:2006/07/21(金) 22:35:12
質問失礼します。

初めて C# DirectX でソフトを作成した者です。
ソフトを作成し、開発マシンで正常に動作するのを確認しました。
が、いざ配布してみると「共通言語ランタイムデバッグサービス アプリケーションで、ハンドルできない例外が発生しました。」
という警告ダイアログが出て動作しないマシンがあると判明しました。
問題のマシンでは .Net Framework 1.1 及び、DirectX は導入済みである事を確認しております。

原因はおろか原因を特定する方法すら全く分からない状態です。
分かる方お願いします。

開発マシン
WinXP Home
VS2003 C#
DirectX 9.0

問題のマシン
WinXP Home

984 :デフォルトの名無しさん:2006/07/21(金) 22:39:58
デバック版配布してみれば?

985 :デフォルトの名無しさん:2006/07/21(金) 22:46:50
例外の内容次第だよなぁ
NullReferenceException と FileNotFoundException じゃ全然違うし

986 :983:2006/07/21(金) 22:51:16
返答ありがとうございます。

>>984
渡して起動してもらったのですが、結果は同じでした。

>>985
内容ですが、
処理 ID=0x2d0(720)、スレッド ID=0x7a4(1956)
となってました。
Exception云々ではなく、それ以前の起動時にこけてる印象を受けます。

987 :デフォルトの名無しさん:2006/07/21(金) 23:30:51
>>983
DirectXは機種によって動作しない場合があるね。

988 :デフォルトの名無しさん:2006/07/21(金) 23:53:25
ハンドルされてない冷害を処理するハンドラ登録できたと思うのでそこでみてみそ。
書き方は忘れた。ぐぐれ

989 :デフォルトの名無しさん:2006/07/22(土) 01:03:09
>>983 こっちのスレの方がいいんじゃなかい

C#でDirectX9 初心者の館 2頂点目
http://pc8.2ch.net/test/read.cgi/tech/1103998649/

990 :デフォルトの名無しさん:2006/07/22(土) 09:20:32
C丼

991 :デフォルトの名無しさん:2006/07/22(土) 09:25:03
銀座 天國

A丼〔海老2尾・きす・イカかき揚・野菜2点〕. 1470円.
B丼〔海老2尾・イカかき揚・ 穴子・野菜2点〕. 2100円.
C丼〔海老2尾・きす・文甲イカ・大海老・野菜2点〕. 2835円

992 :デフォルトの名無しさん:2006/07/22(土) 09:30:41
C丼高級だな

993 :デフォルトの名無しさん:2006/07/22(土) 10:15:04
次スレは?>>994が立てる?

994 :デフォルトの名無しさん:2006/07/22(土) 11:05:49
Java最強!!

995 :デフォルトの名無しさん:2006/07/22(土) 11:08:04
スレ違い

996 :デフォルトの名無しさん:2006/07/22(土) 11:26:31
>>992
B丼の方が好みだな。

997 :デフォルトの名無しさん:2006/07/22(土) 11:41:37
よーし
このスレはJavaが頂いた
C#なんて、誰も使ってないから必要無いだろ?wwwwww

Java最強!!!!!!!!!!!!!!1111

998 :デフォルトの名無しさん:2006/07/22(土) 11:58:39
次スレ

C♯, C#相談室 Part33
http://pc8.2ch.net/test/read.cgi/tech/1153537081/

999 :デフォルトの名無しさん:2006/07/22(土) 12:00:23
?


1000 :デフォルトの名無しさん:2006/07/22(土) 12:00:42
1000?

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

225 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)