トップページ⇒tech
1001コメント285KB

C♯, C#相談室 Part32

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2006/06/10(土) 19:10:30
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

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

過去スレは>>2-5あたり。
0002デフォルトの名無しさん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/
0003デフォルトの名無しさん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
0004デフォルトの名無しさん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
0005デフォルトの名無しさん2006/06/10(土) 19:12:39
ふらっとC♯(初心者用) Part8
http://pc8.2ch.net/test/read.cgi/tech/1148310124/

関連スレとしてあげておくべきだったかな
0006デフォルトの名無しさん2006/06/10(土) 20:35:56
乙……だが微妙なスレタイだな
検索の便宜というのは分かるが
0007デフォルトの名無しさん2006/06/10(土) 23:02:30
ついでに C丼
0008デフォルトの名無しさん2006/06/11(日) 02:37:08
C++のSTLのmapみたいなやつのC#版ありませんか?
0009デフォルトの名無しさん2006/06/11(日) 02:38:02
みたいなやつ
0010デフォルトの名無しさん2006/06/11(日) 02:40:24
1個目が検索キーで2個目が実態のリストでにてござる
ござらぬか?
0011デフォルトの名無しさん2006/06/11(日) 02:41:33
Hashtable or Dictionary<TKey, TValue>
0012デフォルトの名無しさん2006/06/11(日) 02:44:31
>>11
かたじけない
00139962006/06/11(日) 08:16:22
byte[]からstringはうまくいきました。ところでbyte[]からint[]とかchar[]とかも
あるんでしょうか?使う予定はありませんが。
0014デフォルトの名無しさん2006/06/11(日) 09:07:11
byte[] から string にするときに Encoding クラスを使ったのならば
Encoding クラスのほかのメンバも見とけよ
00159962006/06/11(日) 09:47:40
>>14
ありがとうございます。char[]はできるけどint[]は無理ってことですね
0016デフォルトの名無しさん2006/06/11(日) 09:52:21
>>15
・・・
0017デフォルトの名無しさん2006/06/11(日) 09:56:08
文字エンコーディングと int[] にどんな関係があるんだろ
UTF-32 とかか?
0018デフォルトの名無しさん2006/06/11(日) 10:24:55
数値の文字列("123456")を数値としてintに入れたいのかな?
しかしそしたらなぜ配列なのかが分からんしな・・・
0019デフォルトの名無しさん2006/06/11(日) 11:15:29
昔
char* cp = (char*) 1;
ってコードみたけどそういう人かもしれん。
0020デフォルトの名無しさん2006/06/11(日) 19:07:54
VC#2005EE 使ってますが、標準のADOでPostgreSQLに接続はできないのでしょうか?
どこからかODBCドライバをDLしてくるものなのでしょうか
0021デフォルトの名無しさん2006/06/11(日) 19:37:46
ADO じゃなくて ADO.NET な。
標準クラスライブラリから接続するなら ODBC とか使わないと駄目だね。

マネージドプロバイダなら、
ttp://pgfoundry.org/projects/npgsql
LGPL だそうだが。
あと有料のもある。
0022デフォルトの名無しさん2006/06/11(日) 22:43:14
setが2つあってその差分の集合
あるいは両方にあるものの集合とか関数一発でとれませんか。
javaのcollectionみたいな。
setはなさそうなのでICollectionになるのか
0023デフォルトの名無しさん2006/06/11(日) 23:06:08
なんで一般名詞を使わず set とか言うんだろうな
C# では set はプロパティのアクセサだっつの

取りあえず .NET 2.0 の標準ライブラリの中では無いよ
0024デフォルトの名無しさん2006/06/11(日) 23:13:36
List<Hoge> a,b があったとして a.FindAll(b.Contains) とか a.RemoveAll(b.Contains) とか
0025デフォルトの名無しさん2006/06/11(日) 23:27:40
>>24
ありがとう。がIListとかICollectionには適応できんのか。
0026デフォルトの名無しさん2006/06/12(月) 01:55:29
>>25
自分でstaticな関数を作った方が楽だと思う。
たいした難易度でもないのだし。
0027202006/06/12(月) 05:32:11
>>21
ありがとうございます。
早速ためしてみます
0028デフォルトの名無しさん2006/06/12(月) 13:26:09
    ∩
    | |
    | |
    | |
    | |
    | |
    | |  / ̄ ̄ヽ やばーい
    | |/  /| |      この言語すごい神ー
    (・ω・)ニニニニニニニニ⊃
       //  | |
     //    | |
   //      | |
 //        | |
とノ         と ノ 

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

周りにはとりあえず、デバックコンパイルのものを渡しているのですが・・・。
0030デフォルトの名無しさん2006/06/12(月) 15:22:38
同じならばなんでモードを切り替える必要があるのかと。
0031デフォルトの名無しさん2006/06/12(月) 15:46:39
何のためのリリースモードなのかと・・・
0032デフォルトの名無しさん2006/06/12(月) 15:54:12
何の出力か書いてないからわからないが、デバッグビルドとリリースビルドで異なるとすると、
System.Diagnostics.Debugでログを書いてるとか、[Conditional("DEBUG")]を使ってるとか
#if DEBUG Then とやってるとかこんなところか。
DEBUGビルドだとコンパイル時の最適化とJIT時の最適化の両方をOFFにするから相当パフォーマンスが悪い。
0033デフォルトの名無しさん2006/06/12(月) 15:57:29
PHPではApache+MySQLでデータベースプログラミングができましたが、
C#でこのようなデータベースプログラミングをするには、どのようにしたらいいのでしょうか?
0034デフォルトの名無しさん2006/06/12(月) 16:04:12
でーたべーすぷろぐらみんぐ ってなに?
0035332006/06/12(月) 16:09:15
書き方が悪かったかもしれません(汗
ただ単にデータベースにアクセスして、テーブルを作成したりデータを読んだり書いたりするだけです。
0036デフォルトの名無しさん2006/06/12(月) 16:10:45
ADO.NET
Express Edtionだとちと使いにくいかもしれない。
0037292006/06/12(月) 16:13:15
>>32
そのようなデバック関係のことはやっていません。
アルゴリズムの結果が違うようです。

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

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

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

0038332006/06/12(月) 16:19:06
>>36-37
サーバーはSQLServerを使わないといけないのでしょうか?
Apacheサーバーを使いたいのですがよくわかりません。
VB6ではできたはずなんですが。
0039デフォルトの名無しさん2006/06/12(月) 16:22:53
ぽかーん。
0040デフォルトの名無しさん2006/06/12(月) 16:28:47
>>38
ApacheとMySQLの区別が付いてないようだがMySQLを使いたいなら、
ADO.NET - .NET Framework ODBC Provider - MyODBC で接続が一般的かな。
他にも方法はありそうだが調べないとわからない。

初心者用のふらっとC#に移ったほうがいいかもしれんね。
0041332006/06/12(月) 16:30:33
>>40
ふらっとに行ってきます^^;
0042デフォルトの名無しさん2006/06/13(火) 03:08:33
>>38
これだけ意味分からんのもめずらしい。
0043デフォルトの名無しさん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"}
};
0044デフォルトの名無しさん2006/06/13(火) 10:23:02
多次元配列は滅べ。
しかも文字列なのに数値でソートかよ。
0045デフォルトの名無しさん2006/06/13(火) 11:14:34
>>43
自力でソート
0046デフォルトの名無しさん2006/06/13(火) 11:23:00
ワロス
0047デフォルトの名無しさん2006/06/13(火) 11:42:52
質問。
構造体は既定のコンストラクタが作れず、
引数ありのコンストラクタを使わずに
そのまま宣言した場合は各メンバをそれぞれ初期化しないといけないよな?

でも、

Point p = new Point();

Console.WriteLine( p.X );


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


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

んにゃ。既定のコンストラクタはコンパイラが作る。
そいつでフィールドは既定値で初期化される
0049デフォルトの名無しさん2006/06/13(火) 12:00:59
>>48
あ、本当だ。
自分で作った構造体の既定のコンストラクタを呼んだときはちゃんと初期化されてる。
頭が混乱していたのがすっきりしたよ、thx。
0050デフォルトの名無しさん2006/06/13(火) 12:46:50
>>48
> IComparer<string[]>実装して
そこは匿名メソッドと洒落込むところじゃね?
0051デフォルトの名無しさん2006/06/13(火) 14:59:02
>>44
クラスを作って、それをリストで管理した方が楽だよねぇ・・
0052デフォルトの名無しさん2006/06/14(水) 00:12:06
汎用的なデリゲートをいちいち定義するのめんどくない?
void Action<T>の他にobject返却値付とかあればいいのに。
0053デフォルトの名無しさん2006/06/14(水) 08:23:27
Func<T>
Func<T1, T2>
Func<T1, T2, T3>
Func<T1, T2, T3, T4>
ってのが追加される予定じゃなかったっけ
0054デフォルトの名無しさん2006/06/14(水) 08:40:52
>>53 おなじようなのVoid用とReturn用と定義した。
0055デフォルトの名無しさん2006/06/14(水) 13:23:37
EventHandler<T>を知ったときちょっと感動した。
0056デフォルトの名無しさん2006/06/14(水) 14:18:51
ListBoxのItemsにクラスAを入れると
クラスAのToStringの結果がListBoxに表示されますが
これをクラスAのToString以外に変更するにはどうすればよろしいか?
たとえばクラスAのGetValueの結果を表示する。
0057デフォルトの名無しさん2006/06/14(水) 14:25:55
DataSource 使うなら DisplayMember で特定のプロパティにできるな
0058デフォルトの名無しさん2006/06/14(水) 15:07:30
webページ上からHTMLのソースをリッチテキストに表示したいのですが
Socketクラスのどのメソッドを使えばよいでしょうか
0059デフォルトの名無しさん2006/06/14(水) 15:11:03
TCP/IP 喋れるならどれでも良いが、HTML から RTF に変換するのが死ねそうだな
0060デフォルトの名無しさん2006/06/14(水) 15:11:43
と思ったがHTMLじゃなくてそのソースか。
ていうかなぜSocket使うんだ?
0061デフォルトの名無しさん2006/06/14(水) 15:16:47
>>60
そうです、HTMLのソースです
C#2003初心者なもので
Socketでいけると思ったのです
Socketにはそんなもの無いのでしょうか。

ヒントだけでもいただけないでしょうか
0062デフォルトの名無しさん2006/06/14(水) 15:21:56
DOBON.NET .NET Tips - ファイルをダウンロードし表示する
http://dobon.net/vb/dotnet/internet/webclientopenread.html
0063デフォルトの名無しさん2006/06/14(水) 15:24:13
Socket は IP 通信の最も低レベルのクラス。
つまりラップされてないので HTTP を喋る必要がある。
で、その上に TcpClient があって TCP/IP 通信用のクラス。
更にその上に WebRequest(HttpWebRequest)/WebResponse(HttpWebResponse) があって、
最上位に WebClient がある。
後者になるほど HTTP 扱う上で手軽になるが細かい操作ができなくなる。
.NET 2.0 で WebClient は無闇に拡張されたけど。
0064デフォルトの名無しさん2006/06/14(水) 15:25:44
>>62
助かりましたありがとうございます
今度からはもう少し調べてから質問しにきます
0065デフォルトの名無しさん2006/06/14(水) 15:29:21
>>63
いろいろ試してみます
ちょうど手元にC#でTCP/IPプログラミングという本があるので使ってみます。&弄って慣れてきます。
0066デフォルトの名無しさん2006/06/14(水) 15:56:43
文字コードとか気をつけないとダメだよ。
0067デフォルトの名無しさん2006/06/14(水) 16:01:05
>>66
了解です
上記のサイトにも書いてありましたのでじっくりやります。
0068デフォルトの名無しさん2006/06/14(水) 17:38:38
C#というわけではないんだけど、VSのソリューションファイルとかのXMLファイルプロトコルってどこかにあるんでしょうか?
内部解析したい。
0069デフォルトの名無しさん2006/06/14(水) 17:48:22
Visual C# 2005 Express に特化した質問で申し訳ないです。

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

2.richTextのプロパティで設定したフォントは表示用のようで、入力する
  時のフォントはここで設定したものではないようです。どこで設定する
  のでしょうか?
0070デフォルトの名無しさん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 イベントで書くべき処理だな。
0071デフォルトの名無しさん2006/06/14(水) 18:07:03
>>70
ぐおーー、すばやい反応ありがとうございます。
TreeView に似ているだけの自前なんですね・・・orz
現状、チェックボックスを出して変わりに対応しているんですが
探してみます。

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

重ねて、情報ありがとうございました。
0072692006/06/14(水) 18:32:30
むぅ、リンク先に習って、RichTextExクラスを作ってみましたが、
ぜんぜん変わりませんでした。

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

private void richTextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
richTextBox1.SelectionFont = richTextBox1.Font;
}
ブレイクかけて SelectionFont が Arial になっているか見たのですが、
ちゃんと MSゴシック 9 でした・・・症状が違うのかな?
0073デフォルトの名無しさん2006/06/14(水) 20:23:28
C#でSAPI使ったことある人いる?
参考にしたトコおせーて
0074デフォルトの名無しさん2006/06/14(水) 21:36:25
>>68
つttp://msdn2.microsoft.com/ja-jp/library/0k6kkbsd(VS.80).aspx

VS 2003の話だったらごめん。
0075デフォルトの名無しさん2006/06/14(水) 23:05:20
お世話になります。
ネットワーク上の共有フォルダにexeファイルをおいてそのプログラム中で同じフォルダにあるファイルにアクセスしたいのです。
自分の存在するフォルダ名を取得するにはどうすればいいでしょうか?
0076デフォルトの名無しさん2006/06/14(水) 23:09:17
>>74 MSBuildまで考えてなかった・・・というかそりゅーしょんとかとMSBuildの関係はいかに?
VS2005のコンパイルはMSBuildによって行われてる?
0077デフォルトの名無しさん2006/06/14(水) 23:22:09
>>75
Application.StartupPath
これでOK?
0078デフォルトの名無しさん2006/06/14(水) 23:50:53
>>76
.slnはXMLにあらず。.vbprojとか.csprojがMSBuildのXML形式。
なので、ソリューションを読み込んで、そこからプロジェクトごとにMSBuildを起動してるのだと思う。
0079デフォルトの名無しさん2006/06/14(水) 23:54:52
ウエブページをデザインして作りたいのですが(初めてです)
IISではなくアパッチ使いたいのですが、できるのでしょうか?
イントラがIISを使えないという糞なのでちょっと困ってます。
0080デフォルトの名無しさん2006/06/14(水) 23:59:37
>>78
なるほど。んでもなんでslnはxmlでないんでせう?
0081デフォルトの名無しさん2006/06/15(木) 00:17:12
>>77
でけた。ありがとー
0082デフォルトの名無しさん2006/06/15(木) 00:19:13
>>79
Mono とか使えばホスト可能なはずだが
IIS 使えない環境で ASP.NET はどうかなー
0083デフォルトの名無しさん2006/06/15(木) 00:34:47
CGIでexe起動とか。
0084デフォルトの名無しさん2006/06/15(木) 00:48:47
>>71
正確にはバグじゃないがまぁそれはいい
2.0だとLanguageOptionのプロパティがないか?
0085デフォルトの名無しさん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の下に書いても問題は起こりません。

これを回避したいのですが、どうすればよいのでしょうか。
0086デフォルトの名無しさん2006/06/15(木) 11:32:38
ざわ…
 ざわ…
0087デフォルトの名無しさん2006/06/15(木) 11:50:24
ぱっと見て「○○だなぁ」と思うコード
0088デフォルトの名無しさん2006/06/15(木) 13:35:24
こういうのってAvailableでなきゃいけないもんなの?Visibleとかじゃダメなの?
0089デフォルトの名無しさん2006/06/15(木) 13:38:31
試したが Visible でも症状は同じ
バグと言っていいだろうが、まあ微妙にキモいコードだな
0090デフォルトの名無しさん2006/06/15(木) 14:15:14
>>85
以前に同じような症状で悩んだけど、
結局フィールドでmenuitemを持っといて
RemoveとInsertで回避するしかなかった記憶がある
0091882006/06/15(木) 15:05:11
ドキュメソトには

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

って書いてあるけど、意味がよくわかんね( ゚д゚)、
0092デフォルトの名無しさん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
{
}
}
}
0093デフォルトの名無しさん2006/06/15(木) 16:00:45
いやそりゃ TextBox1 の Text に設定すれば良いんじゃね?
0094デフォルトの名無しさん2006/06/15(木) 16:13:33
言い方がまずかったでうs
TexBox1に数値をいれてやりたいのですがそのやり方がわからないのです
0095デフォルトの名無しさん2006/06/15(木) 16:19:28
示されたコードのどこに数値が含まれてるのかさっぱり分からないんだが……ブラフのコード?
0096デフォルトの名無しさん2006/06/15(木) 16:22:54
>>95
ビルドすると出力のデバッグのとこのログに数値が出てきてしまいます。
0097デフォルトの名無しさん2006/06/15(木) 16:25:46
いやだから TextBox1 の Text に設定すれば良いんじゃね?
これとオマイの言ってることのナニがちがうのかを説明してみそ
0098デフォルトの名無しさん2006/06/15(木) 17:27:43
謎の数値を受信しちゃったのか。やばいゾ。
0099デフォルトの名無しさん2006/06/15(木) 17:28:43
>>92
数値をTextBox1に反映させるのは非常に難しい技術です(´・ω・`)
Tagに入れるしかありません・・・・
0100デフォルトの名無しさん2006/06/15(木) 17:51:29
ジェネリックの型制約で、オペレータ(+−など)が使えることを
条件にすることはできる?
ただ単にdoubleとintどっちでも使えるメソッドを作りたいだけなんだが
0101デフォルトの名無しさん2006/06/15(木) 18:16:27
無理
0102デフォルトの名無しさん2006/06/15(木) 18:30:42
不便だよなぁ
0103デフォルトの名無しさん2006/06/15(木) 19:38:12
C++ みたいに、複数の実体を生むわけじゃないから、
static である operator はジェネリックなコード中では使えないのよね。

IAddable だの IAbelGroup だのを継承して
virtual Type Add(Type) を実装しておけば
a + b が a.Add(b) に展開される、
みたいな仕様を追加しないと駄目なんじゃないかと。
0104デフォルトの名無しさん2006/06/15(木) 23:15:12
.NET Micro Framework Platform
http://www.aboutnetmf.com/entry.asp
0105デフォルトの名無しさん2006/06/15(木) 23:35:22
>>103
それよりもinterfaceにstaticメソッド書けるようにしてほしいよ。
それだけでいい
0106デフォルトの名無しさん2006/06/16(金) 00:04:28
>>105
それだとジェネリックな動作できなくね?

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

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

Showの次の実行文でThreadをPriorityをNormalより低く作ってスタートすると起動中のフォームが固まる現象にあったのですが
誰か原因がわかる人いますか?
NetworkForm f = new NetworkForm();
f.Show();
LowPriorityThread t = new LowPriorityThread();
t.Start();
みたいな
0109692006/06/16(金) 16:54:01
RichTextBoxで、「あああいいいうううえええおおお」と
表示するとき、あああは黒で、いいいは赤で〜みたいに
色変更するにはどうしたらいいのでしょうか?
.FontColor だと、全部同じ色になるし、SelectionColorでは
なにも変わらないし・・・TextBox ではどうですか?
0110デフォルトの名無しさん2006/06/16(金) 17:07:20
SelectionColor はその名の通り Selection の色を決定するんだから、まず選択しろ。
0111デフォルトの名無しさん2006/06/16(金) 17:09:02
>109
SelectionColorに指定したいColor設定でいいと思うよ。
反映されないなら、選択範囲間違ってない?
0112692006/06/16(金) 17:22:33
なるほど・・・たしかに SelectionColor ですから、そうですね。

では、Textに放り込んであるテキストの任意範囲の色を変える
のではなく、これからAppendする文字の色を指定することはで
きないんでしょうか?
0113692006/06/16(金) 17:27:40
m(_ _)m できました。
0114692006/06/16(金) 18:11:19
>>72 ですが、KeyDownイベントでは SelectionFont はまだ MS ゴシック
なのですが、TextChanged イベントが入ったときには Arial に変わって
います。当然、KeyPress,KeyUpイベントでもすでに Arialに変わってしま
っていることまでわかりました。
さて、どこのイベントで、SelectionFont を再設定すればいいでしょうか?
あ、もちろんdwLangOptions &= ~IMF_DUALFONTをほどこした、
RichTextExクラスを使っての話でした。 FrameWork2.0ではこのあたり
挙動が変わっているんでしょうか?
0115692006/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でなくなったけど、
画面がぁ〜選択、解除が見えてみっともない・・・
0116デフォルトの名無しさん2006/06/16(金) 18:43:10
自分で作ったほうが早いと思うよ
0117デフォルトの名無しさん2006/06/16(金) 18:47:21
BeginUpdate/EndUpdateは無かったっけか
逐一の画面の再描画を抑止する方法が何かしらあったはず
0118デフォルトの名無しさん2006/06/16(金) 18:50:52
つかフォントが Arial になる問題は既出の方法で解決できるんだから
それができてないのはなんかコードに問題があるんだろ
0119692006/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);
}
}
0120692006/06/16(金) 19:05:02
>>116
そのくらいの技量があればそうするのですが・・・orz
0121デフォルトの名無しさん2006/06/16(金) 19:07:42
それじゃその後でハンドルの再作成が行われたら終了だが。
0122デフォルトの名無しさん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;

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

ばっちりでした。

ありがとうございます。 感謝。
0124デフォルトの名無しさん2006/06/16(金) 20:46:54
これは覚えとこう・・・
ありがたやありがたや・・・
0125デフォルトの名無しさん2006/06/16(金) 22:25:46
DataGridで列幅を指定したのですが,ヘッダーを非表示にしたら設定が反映されません。ヘッダーを出したら、空白と一番上の線が邪魔になります。
どうすればいいでしょうか?
どなたか教えて下さい。
0126デフォルトの名無しさん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で列幅を指定したのですが,ヘッダーを非表示にしたら設定が反映されません。ヘッダーを出したら、空白と一番上の線が邪魔になります。
どうすればいいでしょうか?
どなたか教えて下さい。
0127デフォルトの名無しさん2006/06/17(土) 01:08:58
RichTextBoxでTextの選択状態を調べると日本語入力が確定してしまう問題って
何とかなりませんかね?
SelectionLengthをApplication.Idleで購読しているのですが。
Idle時に1文字でも選択しているかしていないかを取得するだけでよいのですが。
0128デフォルトの名無しさん2006/06/17(土) 01:19:16
IME 系の API かメッセージで入力中かチェックするかフラグ立てるかするってのは?
0129デフォルトの名無しさん2006/06/17(土) 01:42:16
あるライブラリでprivateなアンマネージドDllを使用して機能を実現しているのですが、
ライブラリの中にリソースとしてアンマネージドDllを埋め込んで、そのDllを呼び出す。様なことをしたいです。
インストーラを作らないで簡単に配布できそうなので一体化させたいのですが
リソース中のDllをファイルとして展開しないでそのまま実行する方法はありますでしょうか?

0130デフォルトの名無しさん2006/06/17(土) 11:36:00
>>126
意味不明の書き込みするな( ゚д゚)、
0131デフォルトの名無しさん2006/06/17(土) 11:42:40
マルチ死ね
0132デフォルトの名無しさん2006/06/17(土) 11:49:35
>>129
>リソース中のDllをファイルとして展開
これで事前バインディングできんの?
jarファイルみたいなのほしいな。
0133デフォルトの名無しさん2006/06/17(土) 13:27:23
型初期化子でリソース読み込んでdllをファイル化していけるはず。
Jarみたいなのっていえば、ResourceWriter辺りを使うのかな?
どこかにJarファイルっぽく使ってるサンプルとかってありますかね?
0134デフォルトの名無しさん2006/06/17(土) 13:48:47
TreeViewの背景イメージを設定する方法ってありませんか?
0135デフォルトの名無しさん2006/06/17(土) 14:07:10
つILMerge
アンマネージDLLはできたんかな
0136デフォルトの名無しさん2006/06/17(土) 17:03:16
「マルチ」とかいう書き込みをうざがる奴、死ね( ゚д゚)、
0137デフォルトの名無しさん2006/06/17(土) 23:29:23
文字列をgraphic上に描画したときの描画幅と高さを返す関数が
あったと思うんだけど、調べても出てこないorz
ご存知の方、教えてください
0138デフォルトの名無しさん2006/06/17(土) 23:36:06
RichTextBox で、任意の位置をSelectして、
ScrollToCaret();すると、その位置にキャレット
が移動しますが、スクロール位置がテキスト
ボックスの最上位になります。
これを、テキストボックスの中央の行に選択
位置を持っていくようなキャレット&スクロール
はどのように実現するのでしょうか?
01391372006/06/17(土) 23:39:12
あー見つかった
自己解決しました
0140デフォルトの名無しさん2006/06/17(土) 23:39:42
>>137
Graphics 調べれ
0141デフォルトの名無しさん2006/06/17(土) 23:57:05
138 ですが、SendMessageで解決しました。
0142デフォルトの名無しさん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
0143デフォルトの名無しさん2006/06/18(日) 15:53:07
VS2003 は .NET 1.1 専用。
VS2005 が .NET 2.0 専用。
と言う事で VS2005 入れろ。Express Edition なら無料で MS から落とせる。
0144142続き2006/06/18(日) 15:54:10
ソースコードとエラーは以下の通りになります。

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

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


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


初心者であまり分かってなく申し訳ないのですが、
どなたか分かる方教えて下さればありがたいです。
01451422006/06/18(日) 15:56:12
すばやいレスありがとうございます。2005入れるしかないですか。
お金が無い・・・・ orz


Express Edition というのを試してみます。ありがとうございました!
0146デフォルトの名無しさん2006/06/18(日) 17:00:02
Express Editionで十分だ。買う必要ないだろ
0147デフォルトの名無しさん2006/06/18(日) 18:51:30
テンプレ

1.やりたいこと

2.結果

3.やったこと

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

・何をしたいのか
 ・〜〜みたいな、は使わない
 例:ContextMenuStrip で右クリックメニューを出すとき、イメージ表示領域を消したい。
・何をしたのか
 ・コードをずらずら書かない。書くなら必要最小限
 例:ContextMenuStrip の ShowImageMargin を false にしたら一階層目は消えた。
・何が駄目なのか
 ・エラーメッセージがあるなら書く
 例:しかし二階層目以降が消えない。解決方法はないか。
0149デフォルトの名無しさん2006/06/18(日) 21:59:13
ThreadPool.QueueUserWorkItem にてつらつらと数十個(不定)のスレッドを起動し
全てのスレッドが終わるまでメインスレッドを待たせたいのですが、どんな方法が
最もスマートでしょうか?

スレッドを起動するたびに待機用変数をインクリメントして、それぞれのスレッドの
終了時に待機用変数をデクリメントして、メンスレッドでは無限ループで待機用変数が
0になるのを待つ。
と言う方法が思いついたのですが、わざわざスレッドを使う割にはCPUリソースが非常に
もったいない気がします。
0150デフォルトの名無しさん2006/06/18(日) 22:06:30
ManualResetEvent 使えば?
0151デフォルトの名無しさん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();
}
こんな感じ?すげぇてきとうなのでよろ。
0152デフォルトの名無しさん2006/06/19(月) 17:19:26
public class Class1
{
public Class1()
{
static void Main(string[] args)
{
System.Console.WriteLine("Hello World!");
}
}
}
このコードをコンパイルすると、
CS1513}が必要です
CS1022型、名前空間の定義、またはファイルの終わりが必要です
って言うエコンパイルエラーが出ます。
どこが間違っているのでしょうか?
どうしたらいいでしょうか?
0153デフォルトの名無しさん2006/06/19(月) 17:21:50
3 行目
0154デフォルトの名無しさん2006/06/19(月) 17:23:31
↑失礼しました。解決しました
0155デフォルトの名無しさん2006/06/19(月) 17:24:19
>>153
ありがとうございます。^^
0156ババル2006/06/19(月) 20:36:47
世の中にはVSC#.NETというGUIで作れるものがあるのですが
それを使わずにあえてコード記述して作るという行為には
何の利点があるのでしょうか?
0157デフォルトの名無しさん2006/06/19(月) 20:41:59
馬鹿著んコードで出来ないきめ細かな制御
0158デフォルトの名無しさん2006/06/19(月) 20:45:05
教育的利点。
csc.exeの使い方、参照・リソースの追加、その他の仕組みを理解するきっかけになる。
0159デフォルトの名無しさん2006/06/19(月) 22:30:05
http://kasarfa.com/modules/php/bbs/ubbs/image/1149740930.gif

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

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

宜しくお願いします。
0160デフォルトの名無しさん2006/06/19(月) 22:39:34
>>159 色使い
0161デフォルトの名無しさん2006/06/19(月) 22:48:22
それだな。間違いない。
0162デフォルトの名無しさん2006/06/19(月) 23:04:25
>>159
よーわからんが
Type.Missingのかわりにnullをいれたら?
01631592006/06/20(火) 09:11:59
>>160
色違いって・・・

>162
サンクスコ、やてみる。
0164デフォルトの名無しさん2006/06/20(火) 09:12:27
色違いじゃない、色遣いだ!!!!!!!!!!!!!!!!!!
01651592006/06/20(火) 09:23:49
>>164
えぇっ、(・д・)
0166デフォルトの名無しさん2006/06/20(火) 11:19:11
.NET Framework2.0からmysqlを利用するには
どういったライブラリがありますか?
公式のConnector/.NETはFramework1.1にしか
対応していないようなのです
ODBCのものもいくつか有志で出ているようですが
どれを使えば安全なのかわかりません
0167デフォルトの名無しさん2006/06/20(火) 11:22:20
安全を担保するのが 2ch のレスか……。
01681592006/06/20(火) 11:38:58
>>167
ワ炉ータ。
0169デフォルトの名無しさん2006/06/20(火) 12:43:32
>>165
よーするに

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

と言ってるものかと。
0170デフォルトの名無しさん2006/06/20(火) 12:45:33
>>169 いや、色のあまりのセンスのなさがプログラムのセンスのなさを体現してるのかと
01711592006/06/20(火) 12:52:52
そんなに見づらい?
ってか、皆さん、僕みたいに、背景をブルースクリーンにしないの?
01721592006/06/20(火) 12:54:50
ってか、キーワードの色を黄色とするのは普通だと思うけど、
まぁ確かに文字をピンクにするのはどうかとも思う。
でも、そこらへんは個人の裁量だと思うお。

っていうか、センスある?ない?ってそんなこと聞いてる
わけちゃうし。かんべんしてや。
0173デフォルトの名無しさん2006/06/20(火) 13:55:43
背景は黒でしょ
01741592006/06/20(火) 13:59:31
>>173
ワードの世界では、背景を黒にすることを、
BlueScreenをTrueにする、っていうらしいですよ、奥さん。
0175デフォルトの名無しさん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++;
 }
みたいにしているんですが、テキスト後半になると重くなり
あまり良い方法ではないと思います。
なにかよい方法があれば教えてください。
01761592006/06/20(火) 14:14:31
>>175
話をそらさないで!
01771752006/06/20(火) 14:25:32
まったく別人なんでそらすもなにも・・・
0178デフォルトの名無しさん2006/06/20(火) 14:27:49
>>159 花にか勘違いしてるのかね?
01791592006/06/20(火) 14:52:00
>>178
>>176は僕ではありません!!

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

ちなみに、今、岩手の花巻。家は、和歌山。
0180デフォルトの名無しさん2006/06/20(火) 14:55:46
>>159
目が疲れた。謝罪と賠償を
0181デフォルトの名無しさん2006/06/20(火) 14:59:06
どこでえらーでたのか、COMのエラーコードは何だったのかぐらい書きナ晴れ
01821592006/06/20(火) 15:05:14
button1をクリックして、検索を実行したら、
GIFファイルに示す箇所で、GIFファイルに示すようなエラーがでました。
エラーが出たのは、GIFファイルが示す箇所です。
このエラーがCOMのエラーコードだったかは定かではありませんが、
とにかく、グーグルで検索してもほとんど引っかからないので、
情報が少なすぎて、自分では解決できません。

助けてください。
0183デフォルトの名無しさん2006/06/20(火) 15:06:59
HRESULTからの例外 ほにゃららって書いてあるんだからそのエラーコード調べて濃いツーの
0184デフォルトの名無しさん2006/06/20(火) 15:09:08
>>159
本人証明したいならsageんな!
もしくはトリップつけろ
0185デフォルトの名無しさん2006/06/20(火) 15:10:20
ぐは!
ここageてもID出ねーのか。
スマソ
0186デフォルトの名無しさん2006/06/20(火) 15:13:31
以下、トリップつけて粛々と調べたことを書け。さもなくば回答は得られんであろう。
0187デフォルトの名無しさん2006/06/20(火) 16:06:27
>>175
GetLineFromCharIndex がある
01881872006/06/20(火) 16:09:43
と途中送信しちゃった
で、.NET 2.0 なら GetFirstCharIndexFromLine を使えば良い
それ以前だと EM_LINEINDEX だったかを使う事になるな
01891752006/06/20(火) 16:22:05
>>188
うれしい!!ありがとう、爆速になりました。
どういうソースなったか、いちおう置いておきます。
 int line = richTextBox1.GetLineFromCharIndex(richTextBox1.SelectionStart);
 int column = richTextBox1.SelectionStart - richTextBox1.GetFirstCharIndexFromLine(line);
 line++;
 column++;
ありがとうございました。m(_ _)m
01901592006/06/20(火) 16:56:24
>>183
>HRESULTからの例外 ほにゃららって書いてあるんだからそのエラーコード調べて濃いツーの

さっぱりわからないのです。
何をどこを調べれば手がかりがつかめるのかすらわからなくて・・・。
0191デフォルトの名無しさん2006/06/20(火) 17:08:19
>>190
まんま、HRESULT 0x800706f7 でぐぐるだけでも
情報あるけどそれとは違うの?
0192デフォルトの名無しさん2006/06/20(火) 19:36:32
ぐぐればそのまんまでてくるぞ。
マイクロソフトの解決法ヘルプも
01931592006/06/20(火) 19:45:53
ぐぐるってなんですか?
0194デフォルトの名無しさん2006/06/20(火) 19:52:42
とりっぷつけろよぼけ
0195デフォルトの名無しさん2006/06/20(火) 20:03:55
ちらっとgoogleってみたが、OfficeのGUID地獄なのか。MS自身が看板製品でこれをやるのか(笑
本物の159がまだいるかどうかはわからないが、こういう質問をする時は、
もともとは動いていたコードが現地で動かなくなったとかそういう情報があればアタリが付けやすい。
excel 5.0 は入れて無くてもVS6が入ってるPCには登録されてるのは確認した。
0196デフォルトの名無しさん2006/06/20(火) 20:35:39
つんでれだなおまいら。
0197デフォルトの名無しさん2006/06/20(火) 22:17:03
アプリケーションを開発していくとき何かノートとかに記述したりしますか?

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

マジレスを希望しています。
0198デフォルトの名無しさん2006/06/20(火) 22:30:07
>>197
プロジェクトごとに「メモ.txt」というテキストファイルを用意して、
気が付いたことを何でも書き込んでいく。
紙媒体は使わない。
0199デフォルトの名無しさん2006/06/20(火) 22:30:32
>>197
基本的にはメモ帳や秀丸やWORDとかEXCEL
明らかにアイデアを出すための物で何度も走り書きするものはとりあえずその辺にある紙の裏
大体まとまったら電子化して紙は破棄

ノートに記入するのは主に会議の議事録の為のメモ書だけだな
0200デフォルトの名無しさん2006/06/20(火) 23:19:38
配列の一部分だけを関数の引数として簡単に渡す方法ある?
Cだったら、&buffer[8]とかやって、呼び先で8バイト目以降にアクセスさせることができたんだけど。
初心者なんで、unsafeやらfixといったややこしいことは避けたいっす。
0201デフォルトの名無しさん2006/06/21(水) 00:07:45
>>197
・Wikiたてて皆でごちゃ書き
・ホワイトボードにごちゃ書き
・ソースにコメント
で足りてるかなぁ個人的に。
手元に紙はおいてあるけど、落書き帳にしかなってない。
0202デフォルトの名無しさん2006/06/21(水) 00:43:19
>>200
C#でそういう場面がどれだけあるかが疑問。
ちと困っている事例を挙げてほしい。

Cにしても、&buffer[8]な渡し方だと、
NULL終端になっているなり、別引数で長さ与えるなりしなきゃいけないわけだけど、
C#で前者はなさそうだし、
後者のように長さも与えるメソッドなら、普通はオフセットも与えられるでしょ。
byte[] buffer, int offset, int countの3つか、
ArraySegment<byte>をとるオーバロードがあるはず。
自作メソッドだとしたら、おとなしくオーバロード版を作るべし。
02032002006/06/21(水) 01:25:29
>>202
今困っているのは、暗号処理なんです。
結構でかいbyte配列のbufferの一部に対してのみ暗号化したいんです。
暗号化関数はDLLという形で提供されていて、ソースを見ることもいじることはできません。
その暗号化関数はencrypto(dst, src, size)という形のみで、
オフセットの指定ができるオーバロードが無いんです。
この関数を呼ぶためだけに、暗号化したい領域(←結構でかい)をコピーした配列を
わざわざ用意したくもないですし…。
0204デフォルトの名無しさん2006/06/21(水) 01:36:31
>>203
うーん…
実際にコピーして試してみて、本当に問題が生じた?
せいぜい元配列より小さいsizeの大きさしかコピーされないんだよ?
0205デフォルトの名無しさん2006/06/21(水) 02:30:32
DLL製造元にごるあする以外ないだろ。
っていうか、それマネージドのメソッド?
結構でかい対象を暗号化するのに配列丸ごとしかないってのは
もともと想定する使い方がちがったりしないのか…?
0206デフォルトの名無しさん2006/06/21(水) 02:31:34
そうそうもうひとつ、
お前の言う結構でかいとはどのくらいだ?
0207デフォルトの名無しさん2006/06/21(水) 03:23:35
byte[] b = new byte[n];
Buffer.BlockCopy(src, srcoffset, b....
で"encrypto"すりゃいいじゃないか
0208159 ◆WA92CiqsoY 2006/06/21(水) 09:22:59
すみません。トリップつけました。
0209デフォルトの名無しさん2006/06/21(水) 09:25:08
まだいたのか。いい加減家に帰れ
0210159 ◆WA92CiqsoY 2006/06/21(水) 09:26:12
結局、バグが直らずに、まだ東北にいます・・・
0211159 ◆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

うーん。うーん。
0212デフォルトの名無しさん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
なんかはみたのかい?
0213159 ◆WA92CiqsoY 2006/06/21(水) 09:51:53
>>212
神ですね。
0214159 ◆WA92CiqsoY 2006/06/21(水) 09:56:56
遅延バインディングで解決できそうである、という解決方法は、
実は以前から他の方にご指摘いただいていたのですが、
正直、検索機能を適正に実行するためだけに、
遅延バインディング(Creatobject)にするのは、
コードを作成する際の便宜を考えるとあまりに代償が大きくて、
やりたくありません。
こんなこというと怒られそうですが、
だって、検索機能でしょ!くぅ〜
0215デフォルトの名無しさん2006/06/21(水) 10:24:41
ま、どうするかは、君が考えることなので置いといて、
散々昨日からぐぐれ、検索しろといわれて>>212にURL
貼ってもらうまでそこにたどり着けないプログラマって
のは、いかがなものか・・・それもオフィシャルな情報
すら・・・ま、いいが。
0216183,1922006/06/21(水) 10:33:49
あえていわなかったが>>212のページは具具って5秒で見つけたんだが・・・・
もういい。かえれ。
0217デフォルトの名無しさん2006/06/21(水) 10:51:03
以後、かまって君はスルーヨロ
0218159 ◆WA92CiqsoY 2006/06/21(水) 11:19:19
僕は、グーグルに800707F5って入力することしか
できませんでした。ほんとうに、すみません。
0219デフォルトの名無しさん2006/06/21(水) 12:14:31
死ねば良いんじゃないかな^^
0220159 ◆WA92CiqsoY 2006/06/21(水) 12:14:57
>>219
(・ω・)
0221159 ◆WA92CiqsoY 2006/06/21(水) 12:15:34
Before (-_-)
After (・∀・)
0222デフォルトの名無しさん2006/06/21(水) 15:29:03
なにこの構ってちゃん
0223デフォルトの名無しさん2006/06/21(水) 16:56:33
すいませんADO.NETなんですが
DataTableにExpressionプロパティ入りのDataColumnを追加して、
SqlDataAdapter.Updateしたら、
「Expression列のReadonlyを変更できませぬ」という
例外が出ました。
そうはいってもExpression列のReadOnlyはデザイナ上でだってfalseには
できません。
この列以外は全部ソーステーブルと1対1です。
どこをどうしたらいいんでしょうか。

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

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

02242232006/06/21(水) 17:12:35
すみません間違えました。ColumnMapping をHiddenにしても
解決してませんでした。自分が「更新」ボタンを押してなかっただけの
ようです。
ひきつづき>>223の解決方法をおながいしますorz
0225デフォルトの名無しさん2006/06/21(水) 18:54:50
http://pc8.2ch.net/test/read.cgi/db/1104630889/
0226デフォルトの名無しさん2006/06/21(水) 22:23:19
PropertyGridの縦の分割線?の位置を、コントロール作成時に設定する方法ってありますか?
入力する方を広くしたいのですが、ご存知の方いましたら教えてください。
0227デフォルトの名無しさん2006/06/21(水) 23:36:56
キーを動的決められるように設定を永続化したいのですが、
.Netクラスライブラリでそのまま使えるような
XmlSerializerでシリアライズ可能な永続化オブジェクトクラスはないですか?
データ構造はkey, valueのタプルで両方文字列でOKなんですが NameValueCollectionみたいな感じで。

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

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

0229デフォルトの名無しさん2006/06/22(木) 12:04:01
>>228
Directry系はXMLへのシリアライズが不可なのでDataSet/DataTableを使うしかなさそう。
DataSetのSettingの初期値の生成はIDEがサポートしてないので自分でなんとかしなきゃいかんのが大変。
0230159 ◆WA92CiqsoY 2006/06/22(木) 13:03:10
(・ω・)
0231231 ◆Ci3UmwhFqY 2006/06/22(木) 14:04:02
Excel 5.0ライブラリって、
エクセルのどのバージョンに入っているものですか?
0232デフォルトの名無しさん2006/06/22(木) 17:30:34
>>230
まだ帰れないのか(w
0233231 ◆Ci3UmwhFqY 2006/06/22(木) 17:36:50
>>232
どうしてばれた?
0234159 ◆12k2cDk1bk 2006/06/22(木) 18:04:00
えっと、とりあえず、
エクセルをアンインストールしてみたり、
ワードを再インストールしてみたり、
してるけど、まだうまくいかんと、
さっき、OSの再インストールをクライアントと一緒に始めた。

○rz。。
0235デフォルトの名無しさん2006/06/22(木) 18:25:22
そんな解決方法じゃちょっとしたきっかけでまた動かなくなるんじゃないの?
諦めて遅延バインディングにしろよ
0236デフォルトの名無しさん2006/06/22(木) 18:52:44
COMを参照設定すると、COM InteropのDLLが出来るのだが、これの作り直しはやってる?
これが最初に作られたときの環境がExcel 5.0の古いtypelibで、
その時のDLLをいつまでも使ってたら正しい環境に持っていっても直らない。
0237デフォルトの名無しさん2006/06/22(木) 19:40:45
ttp://www.uploda.org/uporg423346.png.html

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

できるだけ調べてみたのですが、listBoxのMultiColumnだと列ごとに選択できてしまい、使えませんでした。
0238デフォルトの名無しさん2006/06/22(木) 19:48:38
>>234
冷静になれよ
遅延バインディングにすれば解決するんだぞ
問題が再発するたびにクライアントに「OS再インストールしてネ」って言うのか
0239デフォルトの名無しさん2006/06/22(木) 19:59:25
>>237
それListView
0240デフォルトの名無しさん2006/06/22(木) 20:03:42
>>236
IDEで再ビルドすると、最新のにならなかったっけ?
0241デフォルトの名無しさん2006/06/22(木) 20:09:54
UserControl継承してコントロール作ってるんだけど
コントロールが破棄されたときに実行したいコードは
どこに書いたらいいの?
0242デフォルトの名無しさん2006/06/22(木) 20:11:10
Dispose(bool)をオーバーライドか
Disposedイベントじゃね?
0243デフォルトの名無しさん2006/06/22(木) 20:17:44
>>242
ども。了解
02442372006/06/22(木) 21:20:42
>>239
ありがとうございます
検討違いだったようでお恥ずかしいです;
0245デフォルトの名無しさん2006/06/22(木) 22:31:12
>>238
爆笑w
こんなに笑ったのは久しぶり。
0246デフォルトの名無しさん2006/06/22(木) 23:31:23
ピクチャボックスに表示されている画像で、クリップ領域に表示されている部分だけを習得するにはどうすればいいですか?
0247デフォルトの名無しさん2006/06/23(金) 06:32:29
listView.SelectedItemsで取得したアイテムを簡単に扱うにはどうすればいいのでしょうか?

ListView.SelectedListViewItemCollectionに格納するまではわかったのですが、どこのサンプルコードもforeachを使ったものばかりでした。
配列に格納したりなどして、もっと簡単に扱えないでしょうか?
0248デフォルトの名無しさん2006/06/23(金) 06:41:08
SelectedListViewItemCollection は十分簡単に扱えると思うが。
簡単ってのはどんなんだよ。
02492472006/06/23(金) 07:13:42
>>248
インデクサ等を使って断続的に処理したいんです

foreachだと連続した処理に限定されてしまうので…
0250デフォルトの名無しさん2006/06/23(金) 07:24:54
インデクサ使えるし。
02512472006/06/23(金) 07:47:13
>>250
そうなんですか!?

私の勘違いだったようです
すいませんでした
0252デフォルトの名無しさん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);
}
02532522006/06/23(金) 11:04:27
なんとなく、見えてきたのですが、これはどうしようもないのかな?
下のような書き方をしたとき、コメント行と次のテキスト行は同じ行として
カウントされているようですね。
1 <tag ...>
2  <!--コメント-->
3  これはテキストとして扱う
4 </tag>

    ↓

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

このように処理されるために、以後こういう書き方のあるところは全部
1行づつずれていってます・・・・
これの解決法って・・・
02542522006/06/23(金) 11:41:41
↑>>253 は勘違いみたいだ・・・orz
じゃあ、どこでずれてるんだ・・・
02552522006/06/23(金) 11:52:16
すみません、LineNumberはあっていました。
私の勘違いです。
0256159 ◆12k2cDk1bk 2006/06/23(金) 12:34:32
遅延バインディングって、
Ctrl+スペース押しても、変数名とかが
自動的に補完されてくれませんよね。
0257デフォルトの名無しさん2006/06/23(金) 13:01:17
>>256
C♯ での遅延バインディングって
IntelliSense 使うようなものだったっけ?

VB と違って Reflection API 使って
呼び出す必要があったと思うが。
0258159 ◆12k2cDk1bk 2006/06/23(金) 14:10:36
IntelliSense が使えなくなるんですよ、遅延バインディングだと。
まったくやっかいな問題です。
0259デフォルトの名無しさん2006/06/23(金) 14:29:14
嵐としてNGID推奨
0260デフォルトの名無しさん2006/06/23(金) 14:33:35
もう岩手に骨をうずめろ。
0261デフォルトの名無しさん2006/06/23(金) 14:35:30
>>259
この板IDないぞ
0262159 ◆12k2cDk1bk 2006/06/23(金) 14:38:16
もうやめようよ、もう関西に帰ってきたし。
ってか、担当者代えられた、そんだけだけど。
0263デフォルトの名無しさん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())
{...}
0264デフォルトの名無しさん2006/06/23(金) 17:25:01
XmlSchemaValidationFlags.ProcessSchemaLocation は?
02652632006/06/23(金) 22:28:10
>>264
なぜ、この大事なものに気がつかなかったのでしょう・・・orz

ありがとうございました。スカッと解決しました。
0266デフォルトの名無しさん2006/06/24(土) 19:17:41
ListViewのオーナドローで
ListViewItemStates Selectedフラグってアイテムが選択されてなくても
立ってるんですけどそういうものでしょうか?
ListViewItemStates を信用していいのか不安になってきた。
0267デフォルトの名無しさん2006/06/24(土) 22:43:26
2次元配列で、行を配列として取り出したり、列を配列として取り出すには
そういう取り出し方を持つ独自のクラスを作るしかないですかね?

やりたいことは、intの2次元配列のある行または列について
intの1次元配列を引数にもつ既存のメソッドに渡したいのですが。
0268デフォルトの名無しさん2006/06/24(土) 23:07:24
削除依頼が出ている方のスレに書き込んでいた・・・。(泣

改めて質問です。
LAN内のPCからグローバルIPを取得する何かいい手はないのでしょうか?
0269デフォルトの名無しさん2006/06/24(土) 23:56:26
>>268
名前ランにfusiana・・・
0270デフォルトの名無しさん2006/06/25(日) 00:04:59
>>267
多次元配列を使わない、これが最大のコツだ。
0271eAc1Aag185.osk.mesh.ad.jp2006/06/25(日) 00:09:29
>>269
まぁ暇だから別良いんですけど
0272デフォルトの名無しさん2006/06/25(日) 00:10:30
>>270
うーん、完全に行と列が対等なのになあ。
0273デフォルトの名無しさん2006/06/25(日) 00:18:35
>>272
メモリの配置上、行と列をコスト的に対等に扱う事はできない。
02742662006/06/25(日) 01:08:28
原因がわかりました。
HideSelectionをfalseにするとStateに常にSelectedが立つようです。
0275デフォルトの名無しさん2006/06/25(日) 01:56:41
>>274
ほんとだ。これは気持ち悪い動作だな。
e.Item.Selected は正しい値を返すようだが。
MSDN フォーラムのフィードバックに投げた方が良いかも。
0276デフォルトの名無しさん2006/06/25(日) 02:59:29
ぬるぽって、JavaのNullPointerExceptionのことだけど
.NETではNullReferenceExceptionじゃないですか。
アンチJavaな.NETユーザーでもぬるぽって使ってますか?
0277デフォルトの名無しさん2006/06/25(日) 03:04:10
マ板に行け。
0278デフォルトの名無しさん2006/06/25(日) 11:31:28
ぬるり
0279デフォルトの名無しさん2006/06/25(日) 12:49:36
>>278
カ゚ッ
0280デフォルトの名無しさん2006/06/25(日) 12:54:05
>>276
real worldで「ぬるぽ」なぞと言う奴がいたら、切る
0281デフォルトの名無しさん2006/06/25(日) 13:44:17
real worldで切ったら、逮捕される。
0282デフォルトの名無しさん2006/06/25(日) 15:00:16
ぬるふぉ
0283デフォルトの名無しさん2006/06/25(日) 15:58:53
ぬるり。
ttp://hongliang.seesaa.net/
0284デフォルトの名無しさん2006/06/25(日) 18:25:37
ぬふぅ
0285デフォルトの名無しさん2006/06/25(日) 20:40:18
とうとうC++で
char[]
って書いてしまった
0286デフォルトの名無しさん2006/06/25(日) 20:41:15
あるあるw
0287デフォルトの名無しさん2006/06/25(日) 21:20:47
俺も俺もw
0288デフォルトの名無しさん2006/06/25(日) 21:23:25
>>285
別におかしくないけど
0289デフォルトの名無しさん2006/06/25(日) 21:45:21
おっかしぃいいいいいいいいいいいいいいいい
0290デフォルトの名無しさん2006/06/25(日) 22:04:21
void f(char[]);
C++で正当な関数宣言。
0291デフォルトの名無しさん2006/06/25(日) 22:08:10
そうだね
0292デフォルトの名無しさん2006/06/25(日) 22:14:02
int main(int argc, char *argv[])
だしな。
0293デフォルトの名無しさん2006/06/25(日) 22:45:43
それは違うだろ
0294デフォルトの名無しさん2006/06/25(日) 23:56:58
StatusStrip について質問です。
ToolStripComboBox を配置したのですが、
・コンボボックスの高さを変更するにはどうすればよいのでしょうか。
 AutoSize = false で ToolStripComboBox.Height プロパティを変更しても変化がありません。
 (あるいは、StatusStrip の上端とコンボボックスの間に空間を空けるにはどうすればよいのでしょうか。)
・ドロップダウンのデフォルトの方向を上方向にするにはどうすればよいのでしょうか。
0295159 ◆12k2cDk1bk 2006/06/26(月) 10:37:15
みんながワードエクセルをを使っているのに、
なぜか、ワードエクセルのインストールCDが一枚しく、
特にボリュームライセンスが用意されているなどの特段の事情がない場合、
みなさんだったら、どうしますか?

1.責任者に、ライセンスを取得するよう進言する。
 (ただし、ボーナスが減額されたり、印象を悪くする可能性がある)
2.看過する。
3.自腹でライセンスを購入する。
4.自腹でライセンス付きパッケージを購入する。
0296デフォルトの名無しさん2006/06/26(月) 10:42:45
しつこいバカが沸いた場合どうする?

1.無視する
0297159 ◆12k2cDk1bk 2006/06/26(月) 12:20:27
>>296

そんな冷たいこと、いってくれるなよ、ボケが。
0298デフォルトの名無しさん2006/06/26(月) 12:48:19
>>297
真性か・・・見ててカワイソス
0299159 ◆12k2cDk1bk 2006/06/26(月) 12:56:26
皆様、ごめんなさい。
つまらないことはもうやめます。

先日、会社の部長にリストラを宣告されて
イラだってました・・・。すみません。
0300デフォルトの名無しさん2006/06/26(月) 13:08:16
>295
5.自腹で電話してチクル。
0301デフォルトの名無しさん2006/06/26(月) 17:57:14
ホスト名からIPAddress インスタンスの生成がしたいのですが、

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

とすると、

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

と警告が出ます。
IPv6対応関連かなぁと思うのですが、正しい方法はどのようにすれば
いいか誰か教えてください。
0302159 ◆12k2cDk1bk 2006/06/26(月) 18:01:21
>>301
DNSは古い形式だよ。
0303デフォルトの名無しさん2006/06/26(月) 18:05:14
ErrorProvider.IconをSYstemIcons.Errorにしたら、
直径32ピクセルの巨大しいたけが表示されるようになってしまいました。
直径16ピクセルのプチしいたけを表示したいのですが
大きさの指定ってどうすればできますか?

0304デフォルトの名無しさん2006/06/26(月) 18:08:39
>>302
thx!!
「DNS 古い形式」 で検索したら出てきたよw
0305デフォルトの名無しさん2006/06/26(月) 20:58:55
>>301
なぜリファレンスを見ない?
0306デフォルトの名無しさん2006/06/26(月) 21:14:45
>>303
user32.dllからアイコン抜いてリソースにつっこむ。
そしてSystemIcons使ってますって顔をする。
0307デフォルトの名無しさん2006/06/26(月) 21:31:06
>>295
OpenOfficeを使う
0308デフォルトの名無しさん2006/06/27(火) 02:11:54
駆け出しのPGです。
VC#とVC#データベース関連書籍で良いのがあったら
教えて下さい!
0309デフォルトの名無しさん2006/06/27(火) 02:48:02
カットシステム
 .NETフレームワークのためのC#システムプログラミング
技術評論社
 パーフェクトC#
 VisualC#.NETによる[基本]データベースプログラミング

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

自分はオライリーの本が苦手
0310デフォルトの名無しさん2006/06/27(火) 02:52:38
309>有難うございます。
0311デフォルトの名無しさん2006/06/27(火) 07:15:42
>>308
標準 C#入門 ってやつがなかなか良かった。

あと、ADO.NETなら
黄色くて厚い プログラミング ADO.NETってやつが良い感じ。
0312デフォルトの名無しさん2006/06/27(火) 08:32:32
ExplorerのD&Dエフェクトみたいに、透明度を中心から外にかけて高くするように
描画するにはどのようにすればよいのでしょうか?
0313デフォルトの名無しさん2006/06/27(火) 10:01:43
力技なら
・テンプビットマップに描画
・SetPixelAlphaでグラデ似なるようにアルファ値設定
・BitBltで転送
かな

ビットマップ同士のアルファブレンドとか南下で競うなきもするけど見つからん買った
0314159 ◆12k2cDk1bk 2006/06/27(火) 12:58:29
>>307
それも一応考えてみたけど、
一応はOOoにもWordObjectLibraryに相当するホスト可能性があるけど、
今までの開発資産をある程度失うことを考えるとどうしても・・。
昨日、担当者にゆってみたよ。
「ライセンスパッケージ」を買っておくれよ、と。
そしたら、
「しばらく考えさせてください」といういつもの答えが返ってきた。
0315159 ◆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
0316デフォルトの名無しさん2006/06/27(火) 13:16:05
ODBCのSQLTablePrivilegesを使いたいのですが
system.data.odbcから生ハンドルをとるには
どうするのでしょうか?
0317デフォルトの名無しさん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で囲んでしまえばそれで良い気もするのですが、自動昇格して分散トランザクションになってしまいます。
同じコネクションで処理してしまいたいのですが、方法がいまいち判りません。
良い方法がありましたら、お教え願えませんでしょうか。
よろしくお願いいたします。
0318デフォルトの名無しさん2006/06/27(火) 21:37:12
TreeViewコントロールにて、任意のノードを選択する方法を教えてください。
よろしくお願いします。

VS 2003 Fra1.1
0319デフォルトの名無しさん2006/06/27(火) 21:40:01
SelectedNode
0320デフォルトの名無しさん2006/06/27(火) 21:41:06
>>319
すいません、SelectNodeの後を教えて下さい。
0321デフォルトの名無しさん2006/06/27(火) 21:42:54
なんでマニュアルを読まないんだ?
0322デフォルトの名無しさん2006/06/27(火) 21:47:03
>>317
別に 2.0 で BeginTransaction が Obsolete になったわけでもないと思うが……。
0323デフォルトの名無しさん2006/06/27(火) 22:19:10
>>317
明示的にDTCを抑制するなら接続文字列にEnlist=falseをつければいいのだが、
なぜ317のケースで自動昇格するのか疑問。
Open Close の間でTransactionScopを開始してるとかしてないだろうか?
0324デフォルトの名無しさん2006/06/27(火) 22:28:32
テーブルアダプタにコネクション明示的に設定してるか?
0325デフォルトの名無しさん2006/06/27(火) 22:38:17
英語でプログラミング勉強スレ

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

考えてみた方法は、アクティブにする子フォーム以外を非表示にするやり方。
こういう逃げ方でなく正攻法があれば教えてほしい。
0327デフォルトの名無しさん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とブレンドされてしまい、うまくいきません。
このような要求を実現するためのどこかポインタを教えていただけるとありがたいのですが。
0328デフォルトの名無しさん2006/06/28(水) 00:53:56
レイヤードウィンドウみたいなことをしたいのか?
0329デフォルトの名無しさん2006/06/28(水) 01:35:32
メモ
半透明の色または透過色のイメージは、Windows フォーム コントロールでは背景イメージのようにはサポートされません。
0330デフォルトの名無しさん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();
}
0331デフォルトの名無しさん2006/06/28(水) 10:06:21
ばたばた書いたので日本語変ですいません・・・
0332デフォルトの名無しさん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」のような形で呼び出すことは可能でしょうか?
0333デフォルトの名無しさん2006/06/28(水) 17:28:27
必ず特定の型のオブジェクトがソースとなるイベントを表すため、
下記のように、イベントハンドラの第一引数をobject以外の型にしました。

delegate void MyEventHandler(MyClass sender,EventArgs args);

しかし、.NetFrameworkでは、イベントハンドラの第一引数は必ずobjectとなっています。
ということは、このような使い方には何か問題があるのでしょうか?
0334デフォルトの名無しさん2006/06/28(水) 19:09:22
別に。
ガイドラインに従ってないってだけ。
拡張性には劣るだろうが、ま、気にしないなら別に良いんじゃね。
0335デフォルトの名無しさん2006/06/28(水) 19:28:29
正規表現のパターンマッチによって得られたGroupsの要素を
列挙するにはどう書けばいいんでしょうか?
0336デフォルトの名無しさん2006/06/28(水) 20:14:42
>>330
デフォルトだとConnectionプロパティがprivateになってるから見つけにくいですな。
外部キーが設定された親子テーブルをまとめて処理してくれる仕掛けが欲しいことろです。
NSDNに複数テーブルの更新例が載ってますがめんどい・・
0337デフォルトの名無しさん2006/06/28(水) 20:16:41
Nintendosoft Developer Network
0338デフォルトの名無しさん2006/06/28(水) 20:27:07
>>335
foreach( Group g in groups)
0339デフォルトの名無しさん2006/06/28(水) 20:42:43
>>338
ども
0340デフォルトの名無しさん2006/06/28(水) 21:18:19
c#でエクセルのシートの行を丸ごと削除することは可能なのでしょうか?
VB.NETとは結構構文が違うので、うまくいきません。。
0341デフォルトの名無しさん2006/06/28(水) 21:30:58
VB できるならそっちでやっとけ。
C# じゃ面倒なだけだ。
0342デフォルトの名無しさん2006/06/28(水) 23:05:55
>>341
そんな言い方するほど面倒くささは変わらないと思うが。
0343デフォルトの名無しさん2006/06/28(水) 23:16:06
refとType.Missingをつらつら書かなきゃいけないだけだよな。
03443402006/06/29(木) 00:56:18
Type.Missingがポイントですね。
ありがとうございます。
何か原因わかってきました。
0345デフォルトの名無しさん2006/06/29(木) 01:24:44
>>363
それよりもTransactionを見せてほしい。
昇格サポートしてなきゃ分散トランザクション強制かよ。
0346デフォルトの名無しさん2006/06/29(木) 01:25:22
>>336だよばかぁ
0347デフォルトの名無しさん2006/06/29(木) 01:42:51
Jana Doe Styleみたいな3分割のパネルをもったアプリを作りたいんですが、
どのようなコントロールを使うといいですか?
SplitContainerを使うと2分割はできるようなんですが。
0348デフォルトの名無しさん2006/06/29(木) 01:44:55
SplitContainerの片方のパネルにもう一つSplitContainer
それくらい思いつけ。
0349デフォルトの名無しさん2006/06/29(木) 07:35:23
>>34
それをやったら4分割になってしまったんですが
0350デフォルトの名無しさん2006/06/29(木) 07:43:31
両方のパネルに SplitContainer してないか?
0351デフォルトの名無しさん2006/06/29(木) 07:49:37
うんこStyleユーザの知能が知れるな
0352デフォルトの名無しさん2006/06/29(木) 10:17:52
>>349 そんな業があるのなら俺が知りたい
0353デフォルトの名無しさん2006/06/29(木) 10:59:29
>>350
すんません、できました。
0354デフォルトの名無しさん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));
0355デフォルトの名無しさん2006/06/29(木) 20:23:40
Microsoft.CSharp
03563542006/06/29(木) 20:26:50
ちなみに、入力したコードの戻り値がvoidだった場合のことは今のところ考慮してないんで。

やっぱ、inputをMSILに解析する処理を全部自分で作ってilGenerator.Emitを呼び出す必要があるのか・・・?
そしたらさすがに諦めるか・・・。
03573542006/06/29(木) 20:31:05
>>355
それって、CodeDomを使うってことだよね?
CodeDomとSystem.Reflection.Emitを組み合わせることってできるの?
俺の認識だと、CodeDomはソースコードをコンパイルしてアセンブリを出力するためのものだと思ってるんだけど違うのかな。
0358デフォルトの名無しさん2006/06/29(木) 20:34:21
調べてから聞いてんのか?
0359デフォルトの名無しさん2006/06/29(木) 20:35:31
つかC#のコードなんだろ? ならCodeDOMだ。
03603542006/06/29(木) 20:36:02
>>358
ごめん、一応調べてから聞いた。
ただ、俺には少し難しくて>>357のような認識に行き着いた。
03613542006/06/29(木) 20:37:28
調べたってのは、最初の質問をするよりも前の話ね。

>>359
もうちょい頑張って調べてみる。
�dクス。
0362デフォルトの名無しさん2006/06/29(木) 20:40:14
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/100compile/compile.html
03633162006/06/29(木) 20:56:06
すいません、これむりなの?
ODBCのSQLTablePrivilegesを使いたいのですが
system.data.odbcから生ハンドルをとるには
どうするのでしょうか?
03643542006/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)
{ // 実行 }

このコードとさっき晒したコードをうまく組み合わせればいいのか・・・?
0365デフォルトの名無しさん2006/06/29(木) 21:00:21
>>364
おいおい、Emit でやっても結局は Assembly だぜ。
0366デフォルトの名無しさん2006/06/29(木) 21:04:42
CompileAssemblyFromSource
このメソッド名をみて疑問に思わなかったのかお前は。
0367デフォルトの名無しさん2006/06/29(木) 21:05:22
じゃねーわりい勘違いw
03683542006/06/29(木) 21:15:54
>>367は>>365のこと?

>>366
それ以外のメソッドを使うってこと?
最初、Parseメソッドを使えばアセンブリ出力しないでできるのかな?と思ったんだが
なんかParseメソッドはオーバーライドされてなくてNotImplementedExceptionだかがスローされた。
0369デフォルトの名無しさん2006/06/29(木) 21:24:42
MicrosoftもParseを実装していてくれれば自分がAntlrで苦しむこともなかったのに・・・
0370デフォルトの名無しさん2006/06/29(木) 21:28:45
ファイルに出力しないのは CompilerParameters.GenerateInMemory だな。
未実装だが。
03713542006/06/29(木) 21:29:21
なんか勘違いしてたかも。
CompilerParametersのOutputAssemblyを設定しないで、
GenerateInMemoryにtrueを設定してやれば
ファイル出力はされずメモリに格納されるっぽい???

03723542006/06/29(木) 21:30:02
>>370
うお、まじっすか orz
03733542006/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
0374デフォルトの名無しさん2006/06/29(木) 23:48:56
乙
0375デフォルトの名無しさん2006/06/30(金) 00:51:51
俺も昔簡単なC#インタプリタ作ったが(もちろんCodeDOM使って)、
初めて動いたときは感動した。
0376デフォルトの名無しさん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;
ができればいいのですが。
0377デフォルトの名無しさん2006/06/30(金) 10:01:00
>>376
それでいいんじゃない?
何を問題にしているか分かんないからこれ以上答えらんない。
0378デフォルトの名無しさん2006/06/30(金) 10:13:38
>>376
C#というか.NET Frameworkには実装されてないので自分でやらないと駄目
0379デフォルトの名無しさん2006/06/30(金) 10:19:11
>>377 無限ループ
0380デフォルトの名無しさん2006/06/30(金) 10:32:43
単純にArray.CopyToかCloneでいけるんとちゃうの?
03813762006/06/30(金) 11:13:24
標準ライブラリにはありませんか。なんで用意されてないんだろう。
0382デフォルトの名無しさん2006/06/30(金) 11:14:27
アフリカでは良くあること
0383デフォルトの名無しさん2006/06/30(金) 12:25:52
あるあるあるある。
0384デフォルトの名無しさん2006/06/30(金) 13:40:39
>>373
で、メモリ内に生成したアセンブリのアンロードはどうする?
03853542006/06/30(金) 14:31:05
>>384
メモリ内に生成されてるんだからGCがちゃんと回収してくれるでしょ。
別にアンマネージリソースじゃないから、明示的に何かしてやる必要なくない?
まぁ、CSharpCodeProviderはIDisposable実装クラスだから、ちゃんとDisposeかけてやる必要あるか。
0386デフォルトの名無しさん2006/06/30(金) 14:39:58
VC#2003 で質問です。
http://msdn2.microsoft.com/ja-jp/library/ty48b824.aspx
にあるネットワーク トレースを構成する を行ないたいのですが
うまくログファイルが作られません。
App.Config を追加して、上記URLにある内容を貼りつけ、DEBUGビルド
するだけでは駄目でしょうか?
0387デフォルトの名無しさん2006/06/30(金) 15:41:36
richTextBoxを使って簡単なテキストエディタを作成しています。
秀丸のように、左側に行番号を表示したいのですが、どのような
方法で実現できるでしょうか? やってみたことは次の2つです。
1) テキストに line.ToString().PadLeft(5) +":" など頭につけて、
 richTextBox.のTextにいれた。
 行番号が編集できてしまうし、行を追加したとき、行番号が増えない・・・
 あたりまえだ・・・orz
2) richTextBoxの左に幅の狭いTextBoxを置き、ここに行番号を
 表示させた。
 いまく、richTextBoxの現在の行頭番号が取得できないのと、
 スクロールしたときなどのイベントが取れないし、そのつど、
 TextBox の行番号文字列を作成しなおすので処理が重くて
 使い物にならない・・・
なにか、よい方法をご教授してください。
0388デフォルトの名無しさん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へのレスが的外れ気味なのを見ると、
すまんがちょっと全体的に知識不足な感が否めない気がする。
0389デフォルトの名無しさん2006/06/30(金) 19:03:20
>>388
> が普通に動作したが…
アセンブリファイルはテンポラリフォルダに作成されるんだ。
わざと間違ったコード書いて CompilerResults の出力見ればコンパイルのコマンドオプションごと取得できるから分かる。
まあコンパイラ(csc.exe)が対応してないんだからどうしようもないんだが。
03903542006/06/30(金) 20:33:44
>ロードしたアセンブリそのものはGCの対象外。
GCの対象外か。アプリケーションドメインがアンロードすればメモリ上のアセンブリは削除される?

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

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

Assembly assembly = result.CompiledAssembly;のCompiledAssemblyで
現在のAppDomainに対してアセンブリをLoadするみたいだけど、
AppDomainが終了するとメモリ上のアセンブリも削除されるんなら
ここで別のAppDomainにLoadするようにすれば解決ってことだよね?
03913542006/06/30(金) 20:37:28
あれ、なんか違う。
不要になったらAppDomainをアンロードする処理が必要なのか。
その辺の処理の仕方も調べとかないと。
0392デフォルトの名無しさん2006/06/30(金) 20:52:21
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=30695&forum=7
AppDomain との絡みはこの辺が参考になるかもしれん
03933542006/07/01(土) 03:59:33
なんかよくわからなくなってきた。
つーか、CompilerParametersのGenerateInMemoryにtrueを設定すると、
CompileAssemblyFromSourceを実行しただけでアセンブリがロードされるぞ・・・。
これって別のAppDomainにロードするのは無理ってことじゃまいか?
0394デフォルトの名無しさん2006/07/01(土) 06:52:57
別 AppDomain でコンパイルすれば良かろう
03953542006/07/01(土) 16:53:50
それだと、コンパイル処理を行うクラスを作成して、
そのクラスは別アセンブリに切り離して、
そんで別AppDomainにそのアセンブリをロードして、コンパイル実行ってなるんだよな。
そこまでやるのはちょっと。。。

しょうがない、俺のやりたいことだとアセンブリのアンロードしなくても全く支障ないし、諦めるか・・・。
みんな色々ありがと
0396デフォルトの名無しさん2006/07/01(土) 20:42:23
な、何を言ってるんだ?
0397デフォルトの名無しさん2006/07/01(土) 20:44:44
つうか>>392のリンクにあるような方法で出来るだろ。
0398デフォルトの名無しさん2006/07/01(土) 20:50:51
VC#2005の質問です。
webBrowserを使うとページによっては
Flashがうざいんですけど一時的に消す方法ないですか?
0399デフォルトの名無しさん2006/07/01(土) 21:42:06
MSHTMLでゴリゴリやれば可能だけれどもWebBrowserでは無理じゃないかな
04003982006/07/01(土) 22:33:33
>>399
やっぱり無理ですか。
レスありがとうございます。
04013542006/07/02(日) 01:15:16
>>396
別AppDomainで処理をするには、その処理を含んでいるアセンブリそのものを
別AppDomainにロードする必要があると思っているんだけど、違うやりかたがあるの?

>>397
リンク先のケースだと、プラグインの動的読み込みだから、アセンブリがファイルとして存在するんだよね。
でもコンパイルしたときにメモリ上に出力する場合って、それと同時にAppDomainにロードされちゃうみたいだから・・・。
コンパイルしてファイルに出力すれば済むんだけど、それはやりたくないのでどうにも。
0402デフォルトの名無しさん2006/07/02(日) 01:34:59
いったいどこを問題にしてるわけ?

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

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

何か問題があるわけ?
※そりゃ多少は面倒は増えるが。
0403デフォルトの名無しさん2006/07/02(日) 01:37:10
今までやってることはほとんどそのままで、
実行するときに別AppDomainでやればいいってだけだと思うんだが。
04043542006/07/02(日) 02:02:57
>>402
ファイルからロードするなら、>>392のリンク先のやりかたで別AppDomainにロードできるけど
コンパイルしてメモリ上に出力する場合は、それができないじゃん。
そうすると、コンパイル自体をまず別AppDomainで行う必要があると。
んで、>>395にも書いたとおり、そこまでするのはちょっとなぁってこと。
そこまでっていうのは、アセンブリのアンロードをしたいという理由で別DLLを用意するということね。
0405デフォルトの名無しさん2006/07/02(日) 02:30:27
なあ、どこまで分かってるんだ?
なんで別AppDomainでコンパイルするためだけに別DLLを用意する必要があるんだよ。
0406デフォルトの名無しさん2006/07/02(日) 15:43:34
>それだと、コンパイル処理を行うクラスを作成して、
>そのクラスは別アセンブリに切り離して、
>そんで別AppDomainにそのアセンブリをロードして、コンパイル実行ってなるんだよな。
なんで別アセンブリにしなきゃならないと思ったんだ?
0407デフォルトの名無しさん2006/07/02(日) 22:40:25
>>401
メモリ上にコンパイルをするにしても、一時ファイルできちゃうみたいだし、
使用後のリソースを片つけるという意味では、その一時ファイルも消さないといけない。
おとなしくファイルにコンパイルした後、ロードしたほうがいいのでは?

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

基本的に、脳内の思い込みで制限を課しているのがほとんどだと思うのだが。
本当にちゃんと根拠があるわけ?
04083542006/07/02(日) 23:16:12
んー、既にAppDomainにロードされているアセンブリを他のAppDomainにロードしようとしたら
うまくいかなかったから、てっきり別にアセンブリ(DLL)を用意する必要があると思ってたんだけど違うのか・・・?

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


結局、別DLLを用意せずに、ある処理を別AppDomainで実行するためにはどうしたらいいの?orz
0409デフォルトの名無しさん2006/07/03(月) 00:11:31
>うまくいかなかったから、てっきり別にアセンブリ(DLL)を用意する必要があると思ってたんだけど違うのか・・・?
どうやってみてどううまくいかなかったんだ?
常識的に考えてそんな制限あったら使いもんにならんだろうが。
04103542006/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();
}
04113542006/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);
}
}
}
0412デフォルトの名無しさん2006/07/03(月) 02:10:54
C#にYaccみたいな構文解析のソフトってありますか?
0413デフォルトの名無しさん2006/07/03(月) 02:24:55
ANTLR
0414デフォルトの名無しさん2006/07/03(月) 02:39:22
>>410
おまえがメソッドのマニュアルすらちゃんと読めてないことは分かった。
…ていうかおまえドメインの扱いまったく理解してないだろ。

現在のドメインと対象のドメインでそれぞれどう動いているか、
対象のドメインから何を返してよくて何を返したらだめか、
アセンブリのロード等を行った場合に返ってくるのは
現在のドメインのアセンブリか、対象ドメインのアセンブリか、
その辺ちゃんと理解しないと無理だぞ。
0415デフォルトの名無しさん2006/07/03(月) 02:48:36
いくつかヒントを言っとく。

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

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

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

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


…
突っ込みどころ満載過ぎて、もう、どうしようもないな…
0416デフォルトの名無しさん2006/07/03(月) 03:03:01
ああ、
>TempClassをMarshalByRefにしてドメインをまたがって参照を取得するか
て書いたけど、この場合はインターフェイスとか用意しといて実装して
インターフェイスで受け取るようにしないとだめだな。
※MarshalByRef派生の基底クラスやデリゲートでもまあいいかもしれんが。
でないとTempClassのアセンブリを現在のドメインに読む必要ができてしまう。
0417デフォルトの名無しさん2006/07/03(月) 05:06:20
オレが↑を理解できないことはわかった。
04184122006/07/03(月) 05:42:40
>413
thx!!
0419デフォルトの名無しさん2006/07/03(月) 12:38:39
RichTextBoxをユーザーの操作を一切受け付けくない用途に使いたく
ReadOnlyにしていますが、マウス操作ができてしまい困っています。
カーソルについては KeyDownEvent でe.Handled = true;で禁止できま
きた。しかしマウスについてはどうしても禁止できず、マウスで範囲指定
して、スクロールもできてしまいます。
なんとかすべての操作を禁止させたいのですが、方法はありますか?
0420デフォルトの名無しさん2006/07/03(月) 14:11:40
読み込んだHTMLファイルのタグを全て除去したいのですが
よい方法はありませんか?
0421デフォルトの名無しさん2006/07/03(月) 14:37:35
>>419
ならLabelとか使えばいいんじゃん?
0422デフォルトの名無しさん2006/07/03(月) 14:38:34
>>420
「<」と「>」で囲まれた部分を削除すればいいんじゃん?
0423デフォルトの名無しさん2006/07/03(月) 14:57:40
>>419
RichTextBoxを継承してWndProcオーバーライド
マウス系のメッセージを握りつぶせ
0424デフォルトの名無しさん2006/07/03(月) 16:59:30
>>419
自己レスになります。
フォーカスのEnterイベントで他のコントロールに
Forcusすることで解決しました。
0425デフォルトの名無しさん2006/07/03(月) 17:01:08
>>421
Labelとか、TextBoxでは機能不足で、
RichTextBoxでないと表現できない
ものなのでしょうがないんです。
04264202006/07/03(月) 17:14:38
ありがとうございます。
textBox2.Text = textBox1.Text.Replace("<.+?>","たぶ");
のようにして、HTMLタグを"たぶ"と変換してみたのですが
変換されずそのまま表示されてしまいます。
”<”と”>”の位置を探して位置を指定して削除する方法で行うのでしょうか?
0427デフォルトの名無しさん2006/07/03(月) 17:20:42
>>426
Regex.Replace(textBox1.Text, "<.+?>", "たぶ");
じゃ、だめ?
04284202006/07/03(月) 17:30:28
ありがとうございます!!
うまく動作できました!!感謝!
0429デフォルトの名無しさん2006/07/03(月) 20:49:57
やはり最後はRegexなわけだな。

ところで、みんなRegexは何て発音してる?
俺は基本「れげっくす」で、
心に余裕があるときは略さず「れぎゅらーえくすぷれっしょん」て読んでる。
人に話したことは無い。
0430デフォルトの名無しさん2006/07/03(月) 20:52:43
れじっくす
0431デフォルトの名無しさん2006/07/03(月) 20:56:07
れぐいーえっくす
0432デフォルトの名無しさん2006/07/03(月) 21:05:21
れぐえっくす
0433デフォルトの名無しさん2006/07/03(月) 21:10:48
せいきひょうげん
0434デフォルトの名無しさん2006/07/03(月) 21:42:51
>>429
つまらんネタふるなハゲ
0435デフォルトの名無しさん2006/07/03(月) 21:47:26
りじぇっくす
0436デフォルトの名無しさん2006/07/03(月) 22:11:35
エグいっす
0437デフォルトの名無しさん2006/07/04(火) 10:07:00
DataGridで、カラム(ヘッダというのかも)と、データ部で、
alignmentを変えるにはどうすればいいでしょうか?
具体的にはカラムは中央寄せで、データは右寄せにしたいと思っています。
環境はWindows2000、.Net Framework1.1 VC#2003です。
0438デフォルトの名無しさん2006/07/04(火) 16:35:59
C#でお絵かきソフトって作れますか?
0439デフォルトの名無しさん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などでも確認したのですが、見当たりません。
よろしくお願いします。
0440デフォルトの名無しさん2006/07/04(火) 17:03:56
>>438
http://www.gotdotnet.com/japan/student/column/moredotnet/moredotnet1.aspx
04414392006/07/04(火) 17:07:25
自己解決しました。

BeginInvokeはvirtualだった…
0442デフォルトの名無しさん2006/07/04(火) 17:09:52
カンマ区切のエクセルのデータを配列に格納したいのですが
カンマ区切でデータを分割するにはどうすればいいですか?
0443デフォルトの名無しさん2006/07/04(火) 17:14:10
string.split(new char[] {','})
0444デフォルトの名無しさん2006/07/04(火) 17:42:35
ほんとうにそれだけで大丈夫かな?
"\123,00の品物",ごご,がが とかだと問題でるやろ
0445デフォルトの名無しさん2006/07/04(火) 17:47:32
Microsoft.VisualBasic.FileIO.TextFieldParserクラス
0446デフォルトの名無しさん2006/07/04(火) 19:35:01
>>438
君が大したプログラマだったら、Photoshopに負けないものを作れるかもしれない。
君が大したことないプログラマだったら、Microsoft ペイントに負けないのが関の山
かもしれない。
0447デフォルトの名無しさん2006/07/04(火) 19:36:05
C# だと速度的な観点から言えば Photoshop には勝てない気が。
0448デフォルトの名無しさん2006/07/04(火) 19:40:32
Photshoptと同じようなもの作ってもなぁ・・・
0449デフォルトの名無しさん2006/07/04(火) 19:59:34
ttp://www.eecs.wsu.edu/paint.net/index.html
.NETでペイントソフトっていうとこれかなぁ
一部ネイティブらしいけど
0450デフォルトの名無しさん2006/07/04(火) 20:00:18
MATLABみたいに画像処理できるの作ってよ
できればGUIで
0451デフォルトの名無しさん2006/07/04(火) 20:16:17
なぜそこでMATLABが
0452デフォルトの名無しさん2006/07/04(火) 20:19:55
MATLABおもすれー(^ω^;)
0453デフォルトの名無しさん2006/07/04(火) 20:24:22
>>449
初めて見たけど、素直なインターフェースで良さげなソフト。
0454デフォルトの名無しさん2006/07/04(火) 20:46:40
ちょっと前使ってたがレイヤーも使えるしそこそこいい
けどやっぱダメだ
0455デフォルトの名無しさん2006/07/04(火) 20:52:15
GimpShop よりも明らかに使いやすいな
0456デフォルトの名無しさん2006/07/04(火) 20:53:07
>>448
Photoshop並のものを作ってシェアウェアで公開しても誰も買わないだろうな
P2Pのせいかソフトウェアは無料が当たり前
一般人は「パソコン使う仕事は全部虚業」って考えが多くなってて困る
0457デフォルトの名無しさん2006/07/04(火) 20:54:30
ケータイアプリはゴミでも金取れるけどな
04583542006/07/04(火) 23:19:47
>>449
確かPaint.NETは学生がMSのアドバイスを受けながら開発したものなんだよな。
使ってみたことあるけど、グラデーションのかけかたがわかんなかった。(用意されてないのか?)
0459デフォルトの名無しさん2006/07/04(火) 23:20:32
うはww名前消し忘れたwwwwww
0460デフォルトの名無しさん2006/07/06(木) 14:54:24
DateTimePickerには9998/12/31までしか設定できないみたいですが
どうしてDateTime.MaxValue(9999/12/31) を設定できないんでしょうか。
回避するにはどうしたらいいでしょうか?

0461デフォルトの名無しさん2006/07/06(木) 16:17:56
>>460
その頃にはゴキブリが地上を支配しているから、台所行って頼むしかない。
0462デフォルトの名無しさん2006/07/06(木) 17:28:56
PictureBoxに表示した背景画像の上に、
スプライトのように、一部透明な画像を表示したいんですが
どうしたらいいでしょうか?

透過色指定したPNGファイルで、MakeTransparent(〜); を呼び出しても、
PictureBoxのBackgroundColorの色が表示されてしまい、
BackgroundColorを透過色にしても(当然ながら)ダメでした。
0463デフォルトの名無しさん2006/07/06(木) 19:07:12
背景画像とやらに直接描画する
0464デフォルトの名無しさん2006/07/06(木) 19:13:47
レイヤードウィンドウを使う
0465デフォルトの名無しさん2006/07/06(木) 23:16:16
テキストファイルの指定した行のみ読み込む方法はありませか?
0466デフォルトの名無しさん2006/07/06(木) 23:19:25
StreamReader で目的行まで空読み
04674652006/07/06(木) 23:26:58
あっ!!そうか!ありがとうございました!
0468デフォルトの名無しさん2006/07/06(木) 23:29:14
えぇぇぇぇぇぇ
0469デフォルトの名無しさん2006/07/07(金) 17:50:21
うるせーよ。どっかいけw
0470デフォルトの名無しさん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
0471デフォルトの名無しさん2006/07/08(土) 09:10:12
Visual C# .NETでForm2のオブジェクトのプロパティをForm1に
表示するにはどうすればいいんだぜ?
0472デフォルトの名無しさん2006/07/08(土) 09:21:10
textBox.Text=form2.HogeProperty.ToString();
0473デフォルトの名無しさん2006/07/08(土) 09:45:27
PropertyGrid
0474デフォルトの名無しさん2006/07/08(土) 18:54:49
マルチページのTIFFを表示して印刷するアプリを作ってるんだが、
上手くいかなくて困っている。

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

どうにかして、ファイルをロックせずに、マルチページTIFFを読み込んで
ページの切替えを自由自在にやる方法はないもでしょうか?
0475デフォルトの名無しさん2006/07/08(土) 19:01:37
GDI+のエラーって?
0476デフォルトの名無しさん2006/07/08(土) 19:38:02
一旦ファイルを MemoryStream に読み込んでそれから Image つくれ。
// 最近減ったなこの質問
0477デフォルトの名無しさん2006/07/08(土) 21:21:59
文字列から数値に変換しようとして悩んでいます。
Int.Parse("255");
などの数字文字列は問題なく変換されますが、
Int.Parse("ff");
などの16進の文字列は変換できないようです。こういう場合どうするのが良いのでしょう?
Convert などは駄目みたいですね。
0478デフォルトの名無しさん2006/07/08(土) 21:30:18
Convertにもオーバーロードがある
Int32.Parseにもオーバーロードがある
0479デフォルトの名無しさん2006/07/08(土) 21:31:23
VS2005なんですが
Form1のメニューバーの「バージョン情報」から
Form2(バージョン情報のウインドウ)のウインドウを開くにはどうしたらいいんでしょうか?
0480デフォルトの名無しさん2006/07/08(土) 21:35:10
>>478
どもです。見つかりました。

念のため回答を書いておきます。
Int32.Parse("FF", System.Globalization.NumberStyles.AllowHexSpecifier));
これで 255 を取り出せます。
0481デフォルトの名無しさん2006/07/08(土) 21:41:15
>>479
Form2 を作って ShowDialog すればいいんじゃね?
0482デフォルトの名無しさん2006/07/08(土) 22:25:11
>>481
できました
ありがとうございました
0483デフォルトの名無しさん2006/07/08(土) 23:12:56
Windows.Forms.Form が表示された直後に1回だけ呼ばれるイベントってないですかね?
Load は表示される前だし。

Activate でフラグを立てて2度目移行は反応しないってのを考えたけど、それ意外にある?
0484デフォルトの名無しさん2006/07/08(土) 23:36:37
フラグじゃなくてイベントハンドラそのものをさっぴいとけ
0485デフォルトの名無しさん2006/07/09(日) 00:02:48
WebBrowser.Navigate("〜〜〜〜");
で表示させたURLから移動したことを検出するにはどのような操作をすればいいんでしょうか?
0486デフォルトの名無しさん2006/07/09(日) 00:37:53
Shown
04874702006/07/09(日) 02:55:42
Serialクラスははずれっぽい
フックを使うのかな。。
0488デフォルトの名無しさん2006/07/09(日) 03:06:03
>>476
よくある質問だったのかorz
ありがとう。多分これでできそう。
0489デフォルトの名無しさん2006/07/09(日) 04:27:22
>>442
http://www.vipper.org/vip287428.pdf.html
pass:csv

この状態遷移で処理すれば読み込める
0490デフォルトの名無しさん2006/07/09(日) 07:23:54
Excel互換のCSV処理なら、Microsoft.VisualBasic名前空間のTextFieldParser関数を使う。
配列にデータを放り込む程度なら、5,6行もコード書けば終わる。
0491デフォルトの名無しさん2006/07/09(日) 12:53:54
>>483
「表示された」という現象はソフトの操作者が認識する。
よって、そんなイベントはありえない。
0492デフォルトの名無しさん2006/07/09(日) 12:58:25
>>491 あほす
0493デフォルトの名無しさん2006/07/09(日) 13:52:59
>>491
あきれた
04944912006/07/09(日) 15:07:38
だって、そうじゃんよ(・∀・)

いくらシステムの方で「表示されました」って主張したって、
実際にディスプレイを見ている使用者の目に映っているとは限らない。
0495デフォルトの名無しさん2006/07/09(日) 15:11:09
だれが、使用者の目に映ったかイベントをハンドルしたいといってるのかと
0496デフォルトの名無しさん2006/07/09(日) 15:14:15
とりあえず >>486 を百億万回読み直すように >>491
04974912006/07/09(日) 15:29:35
>>495
でもそうゆうことになっちゃうじゃんよ結局。
それで漏れは「無理だ」といったわけ。

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

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

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

わかった?
0498デフォルトの名無しさん2006/07/09(日) 15:36:17
>>497 あほすぎて付き合う気にも慣れん。
クライアントのいったことを脳内解釈して希望と全然違うシステム作って俺は間違ってないとふんぞり返りそうな奴だ。
04994912006/07/09(日) 15:43:09
>>498
あくまでもありうる解釈として厳密に言ってみただけだよ。
実際の開発現場での実践論を話してるわけじゃない(・∀・)
ジョークが通じない奴だなおまいはw
0500デフォルトの名無しさん2006/07/09(日) 15:47:59
>>497 ここまで必死なのに・・・・
0501デフォルトの名無しさん2006/07/09(日) 15:49:55
>499
冗談だったのなら>494の段階で言うべきだったな。
あそこで頑張っちゃったからもはや取り繕えない。まぁ、ID変わるまで
黙ってろってこった。
05024912006/07/09(日) 15:50:52
>>500
へ?(・∀・)
>>497のどこが必死に見えるの?w
05034912006/07/09(日) 15:54:27
>>501
>>494は別に頑張ったわけでもないし
必死なわけでもないんだけどなぁ・・・ww
IDも表示してないし(・∀・)
0504デフォルトの名無しさん2006/07/09(日) 15:57:22
>>503 いいよ。もう。おマイ必死すぎ。
0505デフォルトの名無しさん2006/07/09(日) 15:58:59
なんか必死な人がいるスレはここですか?
0506デフォルトの名無しさん2006/07/09(日) 16:00:06
>503
ああ、間違った。ここはID表示なかったね。良かったじゃないか。
オレは冗談だと分かってたのでドーデモいいのだが、それを逆手に取るのも
2ちゃんってもんだろ?それにイチイチ反論するってのが馬鹿なのよ。
無視してればそれこそ>491-492が冗談のわからない馬鹿として見られたのに、
>494で、「ああ、馬鹿にされるのもしょうがないか」と思わせたね。

関係ない話題なんで、オレはもう書かない。
0507デフォルトの名無しさん2006/07/09(日) 16:03:06
痛々しいスレッドはここですね
05084912006/07/09(日) 16:03:20
ちょっ、まいったなぁw

ちょっとした揚げ足取りみたいな言い返しって
普通の生活の中でよくやるじゃんよおw
>>491もそんな感じで言っただけじゃんか
おまいらそうゆうことしないの?(・∀・)
0509デフォルトの名無しさん2006/07/09(日) 16:03:34
>>503
あくまでもありうる解釈として厳密に言ってみただけだよ。
実際に>>491が必死かどうかを話してるわけじゃない(・∀・)
ジョークが通じない奴だなおまいはw
0510デフォルトの名無しさん2006/07/09(日) 16:06:55
ここは>>491が冗談のつもりで言ってそれに一応突っ込んだ人に対してそのジョークさ加減を必死に説明するスレになりました。
05114912006/07/09(日) 16:07:26
>>506
>>494にしたってただの「返し」のつもりだったんだけどな・・・w ま、いいや(・∀・)
0512デフォルトの名無しさん2006/07/09(日) 16:08:02
>508
打たれ弱いな。お前にお笑いはムリだ。
0513デフォルトの名無しさん2006/07/09(日) 16:08:39
言い訳がましいw
0514デフォルトの名無しさん2006/07/09(日) 16:10:21
>509
コピペ乙
0515デフォルトの名無しさん2006/07/09(日) 16:10:32
なんだか小学生が失敗したときに「わざとだよ」と開き直るのを見た気分。
「もういいんだよ」と優しい言葉をかけてやろうではないか皆の衆。
0516デフォルトの名無しさん2006/07/09(日) 16:11:28
おまえもな
0517デフォルトの名無しさん2006/07/09(日) 16:14:18
>>512
0518デフォルトの名無しさん2006/07/09(日) 16:15:42
そんなにリロードしてサーバに負担をかけるんじゃない。
日曜日の夕方だ。もっと有効な時間活用をしろ。


オナニーとか。
0519デフォルトの名無しさん2006/07/09(日) 16:16:31
>515
>491はなにか失敗したの?
0520デフォルトの名無しさん2006/07/09(日) 16:17:21
>>518
オカズが無い.............orz
0521デフォルトの名無しさん2006/07/09(日) 16:30:48
おまいら何かやなことでもあったの?(・∀・)
0522デフォルトの名無しさん2006/07/09(日) 16:37:05
ああ、ウザイ奴を掲示板で見かけてな。
0523デフォルトの名無しさん2006/07/09(日) 17:26:46
>>491
.NET Framework2.0からShownイベントというものが用意されたんだよ。
ドンマイ。
0524デフォルトの名無しさん2006/07/09(日) 18:09:19
IEの選択範囲を自作アプリのtextBoxにD&Dって出来ないですかね?
0525デフォルトの名無しさん2006/07/09(日) 18:20:22
できるよ。
0526デフォルトの名無しさん2006/07/09(日) 18:22:59
質問です
ウィンドウハンドルってIntPtrにしなくていいんでしょうか?
サンプルだとintだったりlongだったりするんだけど
0527デフォルトの名無しさん2006/07/09(日) 18:40:17
intはやめておけ。ウィンドウハンドルはWin64だと64ビットになるから。
だからと言ってlongにするとWin32ではなんとなく無駄な気がする。
05284832006/07/09(日) 18:45:07
>>491さんが人気者になってたんで、ちょっとレスしづらかったですがw、

>>486さんありがとう。

05295242006/07/09(日) 18:46:29
>>525
よければ詳しくお願いします。
0530デフォルトの名無しさん2006/07/09(日) 18:55:02
>>527
Win64だとintは64bitではないのか?
0531デフォルトの名無しさん2006/07/09(日) 19:04:52
32bitでも64bitでも int は Int32 で long は Int64 だ
0532デフォルトの名無しさん2006/07/09(日) 19:09:56
C# でゲーム作成って、はやるのかって思った
0533デフォルトの名無しさん2006/07/09(日) 19:17:11
流行るの?
0534デフォルトの名無しさん2006/07/09(日) 19:17:27
http://www.exconn.net/Blogs/team01/archive/2005/11/25/5188.aspx
ここによれば
>もしかして32-bit 整数の演算も64-bitレジスタ上で行っていたりして。
と書いてありますね
0535デフォルトの名無しさん2006/07/09(日) 19:22:51
>>532
相変わらず.Net Framework入れてないユーザーが多い点を除けば結構便利
0536デフォルトの名無しさん2006/07/09(日) 19:56:35
Vistaは最初から.NetFramework入るんですか?
0537デフォルトの名無しさん2006/07/09(日) 20:02:36
RichTextBoxで、ある文字列を検索して色をつけたいのですが、どうすればできますか?
検索はFind()で出来ますが、「色をつける」が分かりません。
0538デフォルトの名無しさん2006/07/09(日) 20:05:16
SelectionColor
0539デフォルトの名無しさん2006/07/09(日) 20:24:39
>>538
ありがとうございます。
Find()で範囲をSelect()し、SelectionColorでうまくできました。

しかし、それではカーソル位置が変わってしまいます。
もともとの選択位置にカーソルを戻す場合はどうすればよいのでしょうか?
0540デフォルトの名無しさん2006/07/09(日) 20:30:20
何を呼んだ結果カーソル位置が変わったかは分かってるよな?
その逆をやれば良いだけだ。
プロパティとメソッド一覧を穴の開くほど見ろ。
0541デフォルトの名無しさん2006/07/09(日) 20:48:10
>>523
>>497をよく嫁
0542デフォルトの名無しさん2006/07/09(日) 21:16:23
やだよバカ
0543デフォルトの名無しさん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 );

 }
}
0544デフォルトの名無しさん2006/07/09(日) 21:40:03
>>541
>>497は長いから10行で書き直せ
0545デフォルトの名無しさん2006/07/09(日) 21:41:33
10行も長い、俺は3行以上は読めない
0546デフォルトの名無しさん2006/07/09(日) 21:47:05
>>541
本人乙。
05475242006/07/09(日) 21:55:17
>>543
早速試してみましたが出来ませんでした・・・。
textBox.Text = (string)e.Data.GetData( DataFormats.Text );
なども試してみましたが、カーソルの表示が駐車禁止みたいなマークのままです。
0548デフォルトの名無しさん2006/07/09(日) 22:06:21
D&D そのものが分かってないようだな。
ちょっと調べればサンプルとか出てくるだろ。
0549デフォルトの名無しさん2006/07/09(日) 22:11:50
>>544-546
粘着乙
何かやなことでもあったの?おまいら(´・ω・`)
0550デフォルトの名無しさん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
0551デフォルトの名無しさん2006/07/09(日) 22:34:07
>>536
これまでWinFXと呼ばれていたものが、.Net Framework3.0と名称が変わり、これは、
Vista標準搭載。3.0の正体は.Net Framework2.0+αらしい。
05525262006/07/09(日) 22:49:38
[DllImport("user32.dll")]
private static extern System.IntPtr FindWindow(string lpClassName, string lpWindowName);

FindWindowで目的のウィンドウが見つからなかったら0が帰ってくるらしいんで
if(hWnd == (IntPtr)0)で見つからなかった場合の処理してるんだがおかしい?
0553デフォルトの名無しさん2006/07/09(日) 22:52:20
IntPtrの静的メンバに
0554デフォルトの名無しさん2006/07/09(日) 22:54:03
とりあえず IntPtr.Zero を使え
05555242006/07/09(日) 22:54:06
ドラッグでファイルパスを取得して、そのファイルを開くのは出来ますが、
IEから選択範囲を取得するのは無理って事なんですかね?
05565262006/07/09(日) 23:00:06
>>553-554
サントス!
0557デフォルトの名無しさん2006/07/09(日) 23:00:50
>>555
おまいにゃ無理なんだろうな
0558デフォルトの名無しさん2006/07/09(日) 23:26:19
>>555
できる事です
0559デフォルトの名無しさん2006/07/10(月) 00:02:52
>>555
少しは公開されているソース読むとかしろよ
できてるものがあるんだから...
0560デフォルトの名無しさん2006/07/10(月) 00:10:02
>>555
紙
0561デフォルトの名無しさん2006/07/10(月) 00:11:07
Referer 情報を保持したいのですが
HttpWebRequest.Referer プロパティってどのように設定すればいいんでしょうか?
0562デフォルトの名無しさん2006/07/10(月) 00:16:31
どのようにと言われてもサンプルのようにとしか。
0563デフォルトの名無しさん2006/07/10(月) 00:18:16
文字列を代入するんだよ、そんなことも分からないんじゃプログラムを作るのはやめたほうがいい
0564デフォルトの名無しさん2006/07/10(月) 00:24:50
IntPtrってcでいうchar*、int*、void*とかのの総称でしょ?
名前からするとint*みたいな。
しかもなぜかISerializable。
0565デフォルトの名無しさん2006/07/10(月) 00:30:33
>>562
サンプルなんてありました?

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

HttpWebRequest.Refere= "http://hoge_nurupo.com";;
とこんな感じに指定はできないんではないですか?
0566デフォルトの名無しさん2006/07/10(月) 00:32:59
クラス、インスタンス、オブジェクトの関係を学んでください。

ふらっとC♯(初心者用) Part8
http://pc8.2ch.net/test/read.cgi/tech/1148310124/
0567デフォルトの名無しさん2006/07/10(月) 00:40:36
>>566
どうもです
逝ってきます
0568デフォルトの名無しさん2006/07/10(月) 02:16:57
初歩的な質問ですがお願いします。

TabPageの派生クラスを作成しTabControlに追加したいのですが
デザイナで追加したTabPageの型をコードのほうで変更するやり方だと
デザイナで「変数が割り当てられていません」というエラーが出てデザイナが使用不能になってしまいます。
独自に作成したコントロールをデザイナで使用するためにはどうしたらよいのでしょうか?
0569デフォルトの名無しさん2006/07/10(月) 02:42:55
>>557-560
うざい
まともの答えれないなら書き込みするなよ
ゴミ以下だな
0570デフォルトの名無しさん2006/07/10(月) 03:33:39
>>569
今日は「ゴミ以下」が多いから気にするな
0571デフォルトの名無しさん2006/07/10(月) 06:47:58
すでに夏厨の季節か
0572デフォルトの名無しさん2006/07/10(月) 07:16:56
>>564
どっちかというとそういう名前の整数型と言う方が近いかもしれない。
Cでいうところのintptr_t。
0573デフォルトの名無しさん2006/07/10(月) 09:53:59
C#で明示的にSSEとかのSIMDを利用することってできますか?
0574デフォルトの名無しさん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;
}

0575デフォルトの名無しさん2006/07/10(月) 11:56:11
TextBox.OnPasteをオーバーライドしてWndProcから呼ぶようにしたら、
貼り付け後のアンドゥができなくなってしまいました。どうしたら
いいですか?
OnPasteでは、貼り付け可能な文字かどうか判断して
SelectedTextを更新しているだけです。
0576OnPasteって2006/07/10(月) 13:43:32
すいません、下のソースを丸写ししててオーバーライドだと思ってました。
首吊ってきます。
ttp://jeanne.wankuma.com/library/maxbytelengthtextbox/source.html
0577デフォルトの名無しさん2006/07/10(月) 15:59:49
Problem
フォームに動的にコントロールを追加したい
ボタンのクリックイベントハンドラで以下のコードで実現できるが
この方法では作成したコントロールを別の場所から制御できない

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

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

メインフォームクラスでprivate変数を持てばそれを通して別の
場所からもアクセスできるが、それではコントロールを数十個
追加するなどすれば破綻してしまう
0578デフォルトの名無しさん2006/07/10(月) 16:03:49
>>577 根本的にC#を判ってないと思う。
何で破綻するのか3行で書いてみ?
05795772006/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を格納できるコンテナを使えばいいのかな?
05805242006/07/10(月) 16:13:54
http://msdn2.microsoft.com/ja-JP/library/za0zx9y0.aspx
ここを参考に無事出来ました。
ファイルのドロップで開く「DataFormats.FileDrop」は知っていたので
「DataFormats.Text」もインテリセンスで知って、真っ先に試してみたのですが、
何故か上手くできなくて、違うやり方があるのか無理なのかと思っていました。
05815242006/07/10(月) 16:23:02
>>574さん、レスありがとうございました。
0582デフォルトの名無しさん2006/07/10(月) 16:28:02
>>579
最初に必要なだけ並べておいて全部Hide()
必要になったらShow()じゃダメ?
0583デフォルトの名無しさん2006/07/10(月) 16:53:21
>>579
this.Controls.Addしたんだから
this.Controlsの中に入ってるじゃんよーw
もっと単純にかんがえようよ(・∀・)
05845832006/07/10(月) 16:58:55
インデクサ使えるよな・・・
(Button)this.Controls[n]でOKだよな・・・
05855792006/07/10(月) 17:11:07
いいんです…
僕は頭が悪いんですから…
もういいんです…
ありがとうございました…
0586デフォルトの名無しさん2006/07/10(月) 17:14:15
>>585
お前は頭が悪いのか?
つまり>>582や>>583を見ても解決できなかったということか?
もし解決できたんなら、それでいいじゃないか。
みんな、そうやって知識を蓄えて成長するんだよ。
解決できなかったなら頭悪い死ね。
0587デフォルトの名無しさん2006/07/10(月) 17:34:07
慰めてるのかけなしているのか
0588デフォルトの名無しさん2006/07/10(月) 17:44:33
Problem
TabControlのラベル部分の背景色を変更したい
TabControlのImageListプロパティを設定することで
ラベル部分にアイコンを表示することは出来るが、
背景色や文字色は変更できない
0589デフォルトの名無しさん2006/07/10(月) 17:58:38
>>588
ttp://dobon.net/vb/dotnet/control/tabownerdraw.html
0590デフォルトの名無しさん2006/07/10(月) 18:16:17
Click Event とかで特定の Tab を開かせるのは
どうやればいいですの
0591デフォルトの名無しさん2006/07/10(月) 19:06:04
>>590
意味ワカンネ

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

まさかヘルプ読めば書いてあって気違いでも分かるような
超低能な質問するわけないよね?
0592デフォルトの名無しさん2006/07/10(月) 20:18:02
ピクチャーボックスにDrawRectancleした四角形をスムーズに移動させたいです。
いまは、前の位置を背景色で塗ってから新しい位置に四角を書いています。
もっとよいやり方があったら、ヒントをお願いします
0593デフォルトの名無しさん2006/07/10(月) 20:25:34
それでいんじゃね
0594デフォルトの名無しさん2006/07/10(月) 20:26:45
>>592
結局はそれと同じだけど、
http://msdn2.microsoft.com/ja-jp/library/ms172506.aspx
これは使ってる?
05955922006/07/10(月) 21:03:45
いえ、使っていません
一気に1000個描画してから切り替えているようですが、移動させると考えると、その都度切り替えるということですかね?
05965882006/07/11(火) 01:55:42
>>589
へぇぇオーナードローってのがあったんだ
勉強になりますありがとうございます
0597デフォルトの名無しさん2006/07/11(火) 02:36:38
Formのサイズを定数で指定したいです
InitializeComponent()の中でthis.Sizeなどをいじっても
いつのまにか初期設定にリセットされています
InitializeComponentのコメントにも

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

と書かれています

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

InitializeComponent();
の直後にサイズを変更するコードを書くのは
サイズの設定をわざわざInitializeComponentの中と外の
二箇所で指定することになりスマートじゃないです
0598デフォルトの名無しさん2006/07/11(火) 02:57:07
>>597
デザイナでサイズ指定しなきゃ良いじゃん
0599デフォルトの名無しさん2006/07/11(火) 03:05:46
作業ディレクトリの指定に関する質問です。

fileOpenDialogで実行ファイルまでのパスを取得した後に
Process.Start()で実行しようと思っています。
この際に実行ファイルがあるディレクトリをWorkingDirectoryにしたいのですがどういう方法があるでしょうか?
実行ファイルまでのパスから取得する方法はあるのか、或いはfileOpenDialogする際に取得する方法があるのか、
また他の方法があるのか教えてください。
06005992006/07/11(火) 03:13:17
訂正:fileOpenDialogじゃなくてOpenFileDialogの間違いです
0601デフォルトの名無しさん2006/07/11(火) 06:31:12
System.IO.Path
06025972006/07/11(火) 09:29:02
>>598
どういうこと?
デザイナでFormのSizeを0,0に設定するってこと?
0603デフォルトの名無しさん2006/07/11(火) 09:39:24
コンストラクタでやれ
0604デフォルトの名無しさん2006/07/11(火) 10:03:11
>>602
デザイナで好みのサイズにしたら、あとはサイズ変更しなきゃいいんじゃないの?
あとはFormBorderStyleを固定(Fixidが付いてるやつ)にして
MaximizeBoxにFalseを設定すりゃ、実行時もサイズは変更できないよ。

でも、直接いじったからって初期設定にいつの間にかリセットなんてされないはずだが・・・?
そのFormは継承Form?
0605デフォルトの名無しさん2006/07/11(火) 10:33:16
定数てのがミソなんでせう。
0606デフォルトの名無しさん2006/07/11(火) 10:42:39
SizeにしてもLocationにしてもコンストラクタ内で再設定しても
プロパティ自体は新しい値を保持するけど、実際に表示された
ときに、反映されるとは限らない。実際はデザイナの設定の
とおりに表示される場合がほとんど。
コントロールの表示属性を変更するような処理は
コンストラクタの中で書いちゃいけないのは常識。
Loadイベントの中で行うべし。
0607デフォルトの名無しさん2006/07/11(火) 10:43:34
>>597は「定数」の意味を理解していないに100ペソ
もしくはオレ流定義をしているに100ペソ
0608デフォルトの名無しさん2006/07/11(火) 10:45:26
>>597
ところで、「定数」はどこに定義してるの?
0609デフォルトの名無しさん2006/07/11(火) 10:50:21
デザイナでセットしても実行時にどっかでそれをセットしてるんだから祖こんところを調べろよ。
0610デフォルトの名無しさん2006/07/11(火) 12:06:37
System.Type A と System.Type B を与えられたときに、
「A から B に変換可能か?」という判断と
「可能ならば変換する」という処理をしたいんですが、
どうすればいいでしょうか?

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

なので、型変換可能かどうかという判断をするメソッドはないんだけど、
GetMethods とか使って、implicit キャストが実装されてるかどうかを検索すれば
多分可能だと思うけど、なんかそもそもの設計が変な気もする。
0612デフォルトの名無しさん2006/07/11(火) 13:02:06
>>610
「変換可能」の定義が曖昧
実数型を整数型にキャストして小数点以下が落ちるのは「変換可能」なの?
有効桁数を超えるキャストをして丸められたりするのは「変換可能」なの?
パターンを考えないと意図しない結果になると思うよ
0613デフォルトの名無しさん2006/07/11(火) 13:08:58
動的に数値型の型が不明っていうのはどういう場合なんだ?
06145972006/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のままで変化しない
0615デフォルトの名無しさん2006/07/11(火) 13:41:17
プロパティ変更してるじゃん……
0616デフォルトの名無しさん2006/07/11(火) 13:48:33
InitializeComponentはデザイナ用のコードなんだから当たり前
何のためにpartialになってると思ってんだ
0617デフォルトの名無しさん2006/07/11(火) 14:08:52
>>614
それ、>>597でやろうとしてることと違うじゃん。結局なにがしたいの?
定数で指定したいとか言ってたのに定数が見当たらないけど?
>>616も言ってるけど、InitializeComponentってのはデザイナ用のコードなんだ、
直接いじったあとに、デザイナーで何かしらいじれば、
デザイナがInitializeComponent内のコードを再び書き直すよ。
0618デフォルトの名無しさん2006/07/11(火) 14:19:07
617に書き忘れたけど、
ボタンのサイズをフォームと同じにしたいんなら
ボタンのDockプロパティにFillを設定してやれば解決だよ。
0619デフォルトの名無しさん2006/07/11(火) 14:29:39
要するにフォームの起動時の位置と大きさを設定したいなら
Loadイベントでやれってこった
保存するときはRestoreBounds を使えってこった
0620デフォルトの名無しさん2006/07/11(火) 14:49:05
>.NET Framework 2.0 の Form オブジェクトに RestoreBounds プロパティが追加されました。
>これは、フォームが最小化または最大化しているときでも、通常表示状態のフォームの位置とサイズを保持する Rectangle 型を返すものです。

うお、知らなかった。
今まで最小化最大化時は保存しないってことにしてたよ……
0621デフォルトの名無しさん2006/07/11(火) 15:02:00
オレ流コーディングを見せ付けるスレはここですか?
0622デフォルトの名無しさん2006/07/11(火) 15:04:42
>>619
コンストラクタのInitializeComponentの後の方が良くない?
StartPositionをCenterScreenにしてLoadイベントでSizeを変更すると画面中央にならないよ。
0623デフォルトの名無しさん2006/07/11(火) 16:35:38
>>619
オレも知らなかったよー
今まで
---
this.Opacity = 0;
this.WindowState = FormWindowState.Normal;
---
の後にサイズと位置を保存していた・・・
0624デフォルトの名無しさん2006/07/11(火) 16:39:29
でもさぁ、RestoreBounds ってどうゆうとき使うの?
最小化や最大化しちゃった後でもシステムが記憶してるじゃない
0625デフォルトの名無しさん2006/07/11(火) 17:07:17
最小化・最大化するとWidthやHeightの値はそれに合わせて変更される
その状態で元のサイズを知る方法が今まではAPIしかなかった

どういうときにつかうかといえば、フォームのサイズを記憶する必要があるソリューション
最大化のWidth/Height/Left/Topを保持し、次回起動時にそれを設定したら、最大化を解除しても画面いっぱいのままでしょ
それを防ぐには本来のサイズを保持して、最大化・最小化のステートとは別にしておく必要がある

つか少しは考えろよ
0626デフォルトの名無しさん2006/07/11(火) 17:10:16
デレツン
0627デフォルトの名無しさん2006/07/11(火) 17:16:11
構造体のEmptyフィールドって、
public static readonly StructA Empty = new StructA();
とすればいいの?
0628デフォルトの名無しさん2006/07/11(火) 17:25:41
Xpマシンに.NET2003(C#)で作ったAP入れて動かしてるんだけど、
ごく稀にForm上に設置した特定のラベルコントロールが赤×表示されてしまう
事があります(赤×表示=ラベル一杯にバッテンが赤線で表示される)。
Webで調べたんだけど、日本サイトでは何も見つからなくて、海外サイトでは
何やら同様の現象について議論は交わされてるんだけど、はっきりとした
原因・解決策が載った所に行き着きません。。。
どなたか経験者・有識者の方、アドバイス下さい。
0629デフォルトの名無しさん2006/07/11(火) 17:30:27
>>628
そのコントロールのPaintで失敗してるんじゃないかな
0630デフォルトの名無しさん2006/07/11(火) 18:20:41
>>629
返信ありがとうございます。
確かにPaintに失敗してるとは思うのですが、原因と解決策がわからんのです。
再現も出来ないんで、五里霧中状態です。。。
0631デフォルトの名無しさん2006/07/11(火) 18:32:30
>>630
そうですか。としか言いようがないが。

ソースか実行ファイルうp
0632デフォルトの名無しさん2006/07/11(火) 18:46:56
>>628
あー、それ俺も Release バージョンでよくなる。
なにか例外が発生しているようで例外ダイアログボックスが出るんだけど、
そのダイアログ上のコントロールも全部赤×で表示されてるので詳細がわからない。
Application.Run を try ... catch ... で囲ったり AppDomain.CurrentDomain.UnhandledException を
設定たりしてるけどトラップされていない模様。
一度それが発生するとメニューバー・ツールバー・ステータスバーなどが赤×で表示される。

再現方法もわからないしなんの解決にもなってないけど報告まで。
0633デフォルトの名無しさん2006/07/11(火) 18:48:14
>>627
new する必要もない。
構造体なら宣言だけしとけば自動的にインスタンスが作られる。
// new で初期化するのとじゃちょっと意味合いが変わったような希ガス
0634デフォルトの名無しさん2006/07/11(火) 18:50:35
サスペンドから戻った時に、

System.NullReferenceException:
 オブジェクト参照がオブジェクト インスタンスに設定されていません。

てな実行時エラーを出す常駐ものがあって、なんとなくFormに貼り付
けたタイマーあたりでエラーが起きてるぽいんだけど、サスペンド対応の
定石みたいなものってあったりする?いったんタイマーを停止させない
といけないとか。
0635デフォルトの名無しさん2006/07/11(火) 19:32:28
VC#2005 Expressでプロパティウィンドウの下に
説明が表示されるじゃないですか。
何かの拍子でこれが消えて項目だけになるのですが、
なにか解決方法とかってあるのでしょうか?
0636デフォルトの名無しさん2006/07/11(火) 19:39:15
>>635
あーなるなる。2003の時もそうだった。
消えるというか説明の領域が最小になるんだよね。
その都度領域を広げなおすしかないんじゃない?
そんなに手間でもないしね。
0637デフォルトの名無しさん2006/07/11(火) 19:48:08
>>634
何となくとか言わず原因を追及しろよ。

サスペンドや休止はハードウェアやドライバの依存が強くて困るんだよな。
0638デフォルトの名無しさん2006/07/11(火) 19:49:29
>>636
ステータスバーとプロパティウィンドウの間にカーソルを持って行くと
カーソルが境界線っぽい形になるけど
何故か摘もうとすると矢印状態に戻って上手く摘めません

で、今さっき、右クリック->コマンドにチェックを入れたら
コマンドの領域と一緒に説明パネルが出てきました
前はその辺りを弄っても変化なしだったような気がするけど
一応解決なのかな?
0639デフォルトの名無しさん2006/07/11(火) 20:05:52
VC#EE重くない?タイプしていっても表示が追いついてない感じ
0640デフォルトの名無しさん2006/07/11(火) 20:14:55
いや、全く
0641デフォルトの名無しさん2006/07/11(火) 20:18:28
重い。
がしかしそれは私の環境が貧弱なせいなのは明らかだ orz
06426242006/07/11(火) 20:51:40
>>625
あ、そうか。 ありがとね(・∀・)
0643デフォルトの名無しさん2006/07/11(火) 23:23:00
C#ってアロー演算子ある?
0644デフォルトの名無しさん2006/07/11(火) 23:27:11
そんなもの、あろうはずもなく。
0645デフォルトの名無しさん2006/07/11(火) 23:35:54
>>643
あるおー
0646デフォルトの名無しさん2006/07/11(火) 23:56:02
どっちですかー
0647デフォルトの名無しさん2006/07/12(水) 00:01:04
言語仕様読めよ
0648デフォルトの名無しさん2006/07/12(水) 00:47:34
ねーよ
0649デフォルトの名無しさん2006/07/12(水) 00:47:42
ヒント:読めない事情がある
0650デフォルトの名無しさん2006/07/12(水) 01:15:23
メンバにアクセスするには "." を使う。

ポインタが使えるのはunsafeコードだけ。
ポインタには->演算子が使える。

いじょ。
0651デフォルトの名無しさん2006/07/12(水) 03:00:24
おk、把握した
0652デフォルトの名無しさん2006/07/12(水) 08:16:45
なつかしいな ->演算子
Cやってた頃よく使ったなぁ・・・
0653デフォルトの名無しさん2006/07/12(水) 13:39:25
>>631
> >>630
> そうですか。としか言いようがないが。
> ソースか実行ファイルうp

返事遅れましてすいませぬ。
ソースですが、内容を以下に簡単に書きますと、
�@Form上にLabel生成(サイズ、色等以外のプロパティはほぼデフォルト)
 ※InitializeComponentsで。
�AFormLoadイベント時に、Labelのtextプロパティに外字をコードで設定
といったところです。他のLabelコントロールと違うのは�Aの処理くらいで、
それ以外では特に操作・描画は行っていません。。。
0654デフォルトの名無しさん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 は変更不可なのでしょうか?
0655デフォルトの名無しさん2006/07/13(木) 00:04:53
何と言われてもオブジェクトはオブジェクトだよ。ボクシングされた。
ローカルスコープで宣言された値型は値がスタックという領域に取られる。
参照型は参照がスタックに、値はヒープに取られる。
ボクシングされると値のコピーがヒープに作られ、その参照がスタックに残る。
アンボクシングされるとヒープからスタックに値が再びコピーされる。

> また、上記 (B) の個所で Main の構造体の実態 s は変更不可なのでしょうか?
無理だね。
やりたきゃ ref/out を使うんだが、まあそう言う場合大抵は構造体を使うべきところじゃない場面だ。
0656デフォルトの名無しさん2006/07/13(木) 00:49:22
>>655
よくわかりました。ありがとうございます。
>>654の場合 (A) が実行されるとスタック上の s と o が参照するヒープ上のインスタンスが存在して
これらは、まったくの別物って考えなんですね。

逆に、(A) の後に
ST s2 = (ST)o;
を実行した場合、スタック上に値 s2 が確保されて o が参照するヒープ上のインスタンスの
内容をコピーするということになるんですかね?

しかし、値のコピーをヒープに作って、その参照を保持なんて器用なことをしているとは・・・
C#・・・あなどれん・・・
0657デフォルトの名無しさん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
0658デフォルトの名無しさん2006/07/13(木) 08:35:38
漏れ、構造体って最初の頃は使ってたけど、
今は全然使わなくなったな。
構造体でできることはすべてクラスでできるし、
さいしょは構造体として設計しても
結局、「クラスにしときゃよかった」ってことになる
ことが多くて、今じゃさいしょからクラスにしている。
0659デフォルトの名無しさん2006/07/13(木) 09:07:14
Cのときしか使ってない
0660デフォルトの名無しさん2006/07/13(木) 09:13:08
>>658
レベルが上がってくると最適化で必要になる。
0661デフォルトの名無しさん2006/07/13(木) 09:13:44
漏れはあえて区別してる orz
0662デフォルトの名無しさん2006/07/13(木) 09:14:06
俺が低レベルだとーぷんすかぽんぽんっ!
0663デフォルトの名無しさん2006/07/13(木) 09:52:28
萌えた
0664デフォルトの名無しさん2006/07/13(木) 10:38:35
俺は変数3つぐらいの構造体をよく使うな
0665デフォルトの名無しさん2006/07/13(木) 11:16:27
ベクトルとかは構造体にしてる
06666582006/07/13(木) 11:19:00
>>660
漏れ、レベル下なのかよ・・・orz
0667デフォルトの名無しさん2006/07/13(木) 11:29:34
その最適化でどれだけスピード上がるのかと。その部分案マネージにしたほうが委員ジャマイカ?
0668デフォルトの名無しさん2006/07/13(木) 11:31:18
結構変わるぜよ
0669デフォルトの名無しさん2006/07/13(木) 11:47:30
>>667
レベルが上がってくると高速化以外の最適化も必要になる。
0670デフォルトの名無しさん2006/07/13(木) 11:57:07
メモリ?
0671デフォルトの名無しさん2006/07/13(木) 11:58:02
>>667
stringを連結しまくるのじゃなくてStringBuilder使うとかなり速くなるだろ。

スタックに積まれるのも重要ではあるんだが配列時のほうがクリティカル
になりやすくこっちのが重要。

意味的には既定動作がコピーというのは値として扱うのに向く。
0672デフォルトの名無しさん2006/07/13(木) 12:25:14
そしてジェネリックじゃないコレクションに巨大な構造体を大量に…
なんてのがあった。
高速化のためだそうだw
0673デフォルトの名無しさん2006/07/13(木) 12:28:11
>>671 あまりそういうところでクリティカルになったことなかったけれど今度試してみるわー
0674デフォルトの名無しさん2006/07/13(木) 15:36:42
メンバ変数の数というか、トータルバイト数が4とか8以下の物で、
仮想関数絶対使わない確証あるときだけ構造体にしてる。
他はクラス。

>>672
速度比較検証でもしてやったらいいんじゃないか?
0675デフォルトの名無しさん2006/07/13(木) 16:01:21
ジェネリック使ったほうが速いよね・・・
0676デフォルトの名無しさん2006/07/13(木) 16:06:50
>>672
具体的に何をしてるかわからないとコメント出来ないね。
0677デフォルトの名無しさん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、キャストが不要な分だけは早くなる。
0678デフォルトの名無しさん2006/07/13(木) 16:43:25
あっ、>>677 の最後の行、
ジェネリックコレクションでも boxing, unboxing はなくならないか。
0679デフォルトの名無しさん2006/07/13(木) 16:48:05
なくなるよ。
0680デフォルトの名無しさん2006/07/13(木) 17:00:06
ジェネリックコレクションって内部でキャストしてるんじゃないの?
0681デフォルトの名無しさん2006/07/13(木) 17:02:01
>>679
じゃあ、糞でかい構造体に対して、ジェネリックな
ArrayList<HugeStruct> とか使うと非ジェネリック ArrayList 使うよりやばい?
0682デフォルトの名無しさん2006/07/13(木) 17:03:58
コレクション自体をCloneする場合以外は別にboxingなんてないほうがいいに決まってるだろ
0683デフォルトの名無しさん2006/07/13(木) 17:05:19
ブラウザでリンク先が指定されているボタン等を、自分のアプリにドロップされた時に
そのリンクの文字列(例えば "http://2ch.net";)を取得したいんですが、
どうすればいいんでしょうか。
0684デフォルトの名無しさん2006/07/13(木) 17:10:14
>>680 キャストしないですむようにコードを生成するんだよ。
>>681 頻繁にソートと化するのなら関係あるかもしれんね。試したことナイから知らん。
0685デフォルトの名無しさん2006/07/13(木) 17:25:41
>>683
OK in English
0686デフォルトの名無しさん2006/07/13(木) 17:33:58
>>683
エスペラント語でおk
0687デフォルトの名無しさん2006/07/13(木) 17:36:02
まずボタンをドロップどうやってするのかとこ一時間
06886832006/07/13(木) 17:36:50
そんなにおかしな日本語だったかなぁw

リンク先が指定されているボタン等を、webブラウザ上からから自分のアプリに
ドラッグ&ドロップされた時に ・・・

ということでお願いします
0689デフォルトの名無しさん2006/07/13(木) 17:37:19
単純に、値の意味を持たせたい時に構造体にすると思うが。
0690デフォルトの名無しさん2006/07/13(木) 18:31:05
>>680 >>681
調べてみたらジェネリック用にILを拡張してるようで、
ILレベルで<T>のまま情報を保持しててJITで型ごとに別のネイティブコードを生成してるようだ。
確かに馬鹿でかいValueTypeだと非ジェネリックコレクションよりやばいかも知れない。
マニュアルのこの記述には従ったほうがいいかもしれんね。
>struct 型は、通常、四角形の座標や在庫品目の特性など、関連のある変数の小さなグループをカプセル化するために使用します。
0691デフォルトの名無しさん2006/07/13(木) 19:26:35
http://msdn2.microsoft.com/ja-JP/library/b5bx6xee.aspx
>ArrayList よりも安全であるだけでなく、
>特にリスト項目が値型のときには処理時間が大幅に縮小するリストを作成できます。
06926912006/07/13(木) 19:34:52
文脈を間違えた
馬鹿でかい値型だと遅くなるよ、当たり前だけど
0693デフォルトの名無しさん2006/07/13(木) 20:20:08
>>683
>>687
0694デフォルトの名無しさん2006/07/13(木) 21:54:18
屏風の虎を捕まえろって言われたときに、
それではまず虎を屏風から追い出してください、って言うのと似てるね


0695デフォルトの名無しさん2006/07/13(木) 21:57:01
       ,′ 
       l   ファイル名を日付順で取得する方法を
        ',   教えておくれよ。にょろ?
        〉
        l          _ノ
        \ ___ノ` ── ′
         {/
            ______
         _.:.:´:.:.:.:.:.:.:.:.:.:.:.:\
       /.:/.:/ ヽ:.:.:i:.:.:.:.:.:.ヽ
       {:.:/:./     l:.:.j:.:.:.:.:.:.:.
       ∨!/  ⌒  |:./:.:|:.:.:.:.:
        |′  ● jイ:.:.:.|__:.:.:
        |! r‐‐v (_) |:.:.:.| }:.:.
        ハヽ ノ   |:.:.:.|ノ:.:.:
        (` = -r-rム:.:.:|:.:.:.:.:
        ト、  | / | |:.:.∧:.:.:.:
        |:.:.:T7_/_,j .|:./  ヽ:.:.
0696デフォルトの名無しさん2006/07/13(木) 21:59:26
>>693
ん?「ボタン」がわからないのか?それとも「ドロップ」がわからない?
0697デフォルトの名無しさん2006/07/13(木) 22:00:57
>>695
取得してからソートじゃだめ?
0698デフォルトの名無しさん2006/07/13(木) 22:03:48
>>695
なんのためにDateTime構造体に<演算子や>演算子があると思ってるのよ
プンプン
0699デフォルトの名無しさん2006/07/13(木) 22:05:42
>>696
どっちも単体ではよく分かるんだが、組み合わせると途端に難解になるな
0700デフォルトの名無しさん2006/07/13(木) 22:06:43
>>698
比較演算以前に DateTime は IComparable だから……
0701デフォルトの名無しさん2006/07/13(木) 22:20:46
>>699
もっとわかりやすく言わないとダメだと思う

だから>>696氏ねwww
0702デフォルトの名無しさん2006/07/14(金) 00:46:27
MacみたいなButton,Radioボタンコントロール知りませんか?

有料でも可っす
0703デフォルトの名無しさん2006/07/14(金) 08:22:45
UseControlから自分で作れ
0704デフォルトの名無しさん2006/07/14(金) 11:25:41
Mac使えば
0705デフォルトの名無しさん2006/07/14(金) 11:29:19
Mac風なVisualStyle使えば
0706デフォルトの名無しさん2006/07/14(金) 11:33:40
Vista使えば
0707デフォルトの名無しさん2006/07/14(金) 11:36:18
>>696のセリフ笑えるw
0708デフォルトの名無しさん2006/07/14(金) 15:15:13
Manko使えば
0709デフォルトの名無しさん2006/07/14(金) 18:35:41
StringBuilderクラスについての質問です。
>連結する String オブジェクトの数が決まっている場合は、String クラ
>スを使用した方が効率的です。この場合、個々の連結演算は、コンパ
>イラによって 1 つの演算に結合されます。

MSDNによると、上記のようにStringクラスが効率的とあるのですが
Stringオブジェクトの個数によって、Stringクラスを使用するか判断する
点がわかりません。

個人的には、連結文字列がバッファ容量のInt16に対して多いかどうかで
使用を判断するように思えるのですが。

教えてください。
0710デフォルトの名無しさん2006/07/14(金) 18:44:17
コンパイル時に、連結する String オブジェクトの数が静的に定まる場合という意味だと思う
0711デフォルトの名無しさん2006/07/14(金) 19:00:12
>>710
レスありがとう御座います。
もう少し考えてみます。
0712デフォルトの名無しさん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);
0713デフォルトの名無しさん2006/07/14(金) 19:27:21
>>712
Javaと同じでこうゆう処理をやってるのかと思ってた。
string a = new System.Text.StringBuilder("aaaabbbb").Append(c).Append("ddddeeee").Append(c).ToString();
0714デフォルトの名無しさん2006/07/14(金) 19:29:14
ループで大量の文字列を結合するのでなければコンパイル時の最適化がきくから
StringBuilderよりstringの結合のほうが効率いいよ
0715デフォルトの名無しさん2006/07/14(金) 20:45:54
>>712-713
超予測だけど、string#Concatは一気に引数を渡すから必要なLengthが分かるけど、StringBuilderは初期値で固定されてしまうという点で高速化に繋がる予感
0716デフォルトの名無しさん2006/07/14(金) 22:58:37
http://msdn.microsoft.com/msdnmag/issues/06/01/CLRInsideOut/default.aspx#S2
0717デフォルトの名無しさん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
0718デフォルトの名無しさん2006/07/15(土) 03:07:48
>>717
毎周newするのは不利なんじゃなかろうかと。
0719デフォルトの名無しさん2006/07/15(土) 05:22:34
>>718
Concatも内部でnewしてますが
0720デフォルトの名無しさん2006/07/15(土) 08:10:18
StringBuilder の場合でも ToString で string を new してるだろ
0721デフォルトの名無しさん2006/07/15(土) 08:41:20
StringBuilder 使う時はインスタンス作成時にキャパシティ明示するのも重要だぜ。
特に717みたいなパターンだと。
0722デフォルトの名無しさん2006/07/15(土) 08:46:39
>>717は例としてのコードが不適切
StringBuilderはループに入る前に外側でnewするべきだし
ToStringは不要
0723デフォルトの名無しさん2006/07/15(土) 08:47:46
じゃ、やってみてよ
0724デフォルトの名無しさん2006/07/15(土) 08:47:50
暗黙的キャストで ToString を呼んでいるだろうから
ToString があろうがなかろうが変わらんだろ
0725デフォルトの名無しさん2006/07/15(土) 09:34:33
そもそもキャストできたっけ?
0726デフォルトの名無しさん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);
と比較しなければならない。
0727デフォルトの名無しさん2006/07/15(土) 10:35:25
てか不適切だから。
0728デフォルトの名無しさん2006/07/15(土) 11:03:59
>>722
StringBuilderやConcat()の連結速度を計るなら確かにそうだが、現実的に100000個ものstringやintなどを連結する機会はある?
717のように、だいたい5個、多くて十数個くらい連結するのが普通だと思うのだが。
0729デフォルトの名無しさん2006/07/15(土) 11:09:05
ボタンをドラッグしたいんだけど
07307172006/07/15(土) 11:09:36
暇だし、せっかくだからいろいろ条件を変えて計測してみたけども、スレに書き込むには長すぎるし、こういうのを貼る良い場所ない?
0731デフォルトの名無しさん2006/07/15(土) 11:39:29
WindowsFormのComboBox。
矢印ボタン押すと普通は文字列の候補が出てきますが
これを例えば(枠なしの)カラー選択ダイアログなどを出したいのですがどうすればよいでしょう?
どっかでMSのサンプル見たのですがご存知ないでしょうか
0732デフォルトの名無しさん2006/07/15(土) 11:45:29
>>730
無料のWikiなりBlogなりホームページなりにアカウント取ってリンク張ればいいじゃない
0733デフォルトの名無しさん2006/07/15(土) 12:34:37
>>731
DrawModeをOwnerDrawVariable等にして、
DropDownイベントでダイアログをオープンしたらいいんじゃね?
0734デフォルトの名無しさん2006/07/15(土) 12:35:14
>>731
だったらComboBoxでなくただのボタンでいいんじゃないか?(・∀・)
0735デフォルトの名無しさん2006/07/15(土) 13:34:29
MSのサンプルで
型による処理の振り分けで
Dictionary<Type, object>を使えばいい(と思う)のに、わざわざDictionary<string, object>にして
辞書からinstance.GetType().ToString()のようにキーを生成してアクセスしてるところがあるんですけど
型でリファレンスを持つと何かマズイことでもあるのでしょうか?
0736デフォルトの名無しさん2006/07/15(土) 14:04:50
VS2005のmenuStripをMDIフォームに使うと
子フォームに水色の帯が残るんだけど
バグ?
0737デフォルトの名無しさん2006/07/15(土) 14:20:36
(・∀・)←これって流行ってるの?
0738デフォルトの名無しさん2006/07/15(土) 14:29:00
シラネ(´・Ω・`)
0739デフォルトの名無しさん2006/07/15(土) 14:35:52
>>683
http://dobon.net/vb/dotnet/control/dropfromwebbrowser.html
0740デフォルトの名無しさん2006/07/15(土) 15:39:43
>>735
問題ないはず
0741デフォルトの名無しさん2006/07/15(土) 16:22:30
>>732
無料Wikiというものがあるのか。知らなかった。
http://www3.atwiki.jp/cs/pages/5.html
0742デフォルトの名無しさん2006/07/15(土) 17:33:41
>>741
おつかれ〜
ちなみに、StringBufferを再利用するときはこれでいいですよ。
stringBuilder.Length = 0
0743デフォルトの名無しさん2006/07/15(土) 17:41:14
>>735
MSのサンプルはあくまでさらっと参考にするくらいの方がいいかも…
おいおいな感じのサンプルも多いから。
0744デフォルトの名無しさん2006/07/15(土) 17:42:40
>>740サンクス
オブジェクトのGetTypeが違う参照を返すことでもあるのかと思ったらそうでもなかったし、
なんでstringにしてたんだろう。
0745デフォルトの名無しさん2006/07/15(土) 17:47:34
>>744
たぶん深い意味はない。
0746デフォルトの名無しさん2006/07/15(土) 18:15:23
連結する個数が分かっているならString#Concat、つまり+の連結で十分ということか。
しかしint to stringは激重だな…
0747デフォルトの名無しさん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)
0748デフォルトの名無しさん2006/07/15(土) 19:14:05
ベンチを見るとObjectの配列を作る方が(引数を5つ並べるより)かなり速いようだけど…
0749デフォルトの名無しさん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); 
0750デフォルトの名無しさん2006/07/15(土) 20:50:04
ObjRefを自分でシリアライズ、デシリアライズしたら
勝手に透過プロキシに変換までされたんだけど、そういうもん?
透過プロキシへの変換は手でやるもんだと思ってたんだけど。
0751デフォルトの名無しさん2006/07/16(日) 01:44:43
>>742
サンクス。速くなった。
>>747-749
StringBuilder消すのを忘れていた…
ちゃんと同じバイナリが生成されて同じ速度になった。
+はどう見ても写し間違いです。本当にありがとうございました。

0752デフォルトの名無しさん2006/07/16(日) 09:46:15
整数と文字列が+演算子で結べることを俺は知らなかったぞ!!!
今まで何回ToString()書くのめんどくせえなあと思ったことか・・・
0753デフォルトの名無しさん2006/07/16(日) 09:55:40
>>752
Format使った方がよかですよ
0754デフォルトの名無しさん2006/07/16(日) 11:44:13
>>752
できたとしてもToString()ちゃんと書いた方がいいですよ。
VS だったら .T ぐらいまで打てばインテリセンスがよろしくやってくれるでしょ。
0755デフォルトの名無しさん2006/07/16(日) 11:46:47
>>754
>できたとしてもToString()ちゃんと書いた方がいいですよ。

理由は?何のためにToString()はObjectにあるんだ?
0756デフォルトの名無しさん2006/07/16(日) 11:53:28
1 + "たす" + 1 + " は" + (1 + 1) + "です"
こういうとき紛らわしいからじゃないの?
0757デフォルトの名無しさん2006/07/16(日) 11:55:27
>>756
読めるよね。普通に
0758デフォルトの名無しさん2006/07/16(日) 12:02:28
変なコメントが入ってるだけで可読性が下がるとか言うのにね
0759デフォルトの名無しさん2006/07/16(日) 12:06:36
>>758
可読性を下げるような妙なコメント書くからだと思うが。
0760デフォルトの名無しさん2006/07/16(日) 12:08:17
文字列連結はD言語やBASICみたいに別の記号のほうがいいなあ
0761デフォルトの名無しさん2006/07/16(日) 12:12:34
いちいちToString()したら無駄なstring生成しまくりじゃん
こういう時こそString.ConcatやStringBufferを使うべきじゃないの
0762デフォルトの名無しさん2006/07/16(日) 12:14:14
>>761
一行のメッセージにそんなもん持ち出す方が面倒だ。
0763デフォルトの名無しさん2006/07/16(日) 12:16:35
StringBufferはStringBuilderの間違い。

生成しまくりというのはint2stringのことね。念のため。
>>760
同意
しかしPerlみたいにいまさら変更されるのも困るなあ
0764デフォルトの名無しさん2006/07/16(日) 12:18:34
o(n)
0765デフォルトの名無しさん2006/07/16(日) 13:38:26
もはや余ってる演算子が…
0766デフォルトの名無しさん2006/07/16(日) 13:44:22
C#使ってるような奴が可読性とか言っちゃってるよ(プ
0767デフォルトの名無しさん2006/07/16(日) 13:55:31
(ププッ
0768デフォルトの名無しさん2006/07/16(日) 15:10:23
string s1 = s2;
って、s1とs2に同じポインタが入るのじゃないのか?
0769デフォルトの名無しさん2006/07/16(日) 15:16:11
>>765
->とか>>とかasとかinおとかもOKなんだからさと。
0770デフォルトの名無しさん2006/07/16(日) 15:16:41
>>768
文字列の場合はコピーじゃないですか?なんとなく。
0771デフォルトの名無しさん2006/07/16(日) 15:31:12
>>770
>>768が正解。コピーがデフォならStringBuilderはいらない。
0772デフォルトの名無しさん2006/07/16(日) 15:36:39
>>771
コピーと追記じゃ訳が違うのでどっちにしろStringBuilderは必須。
0773デフォルトの名無しさん2006/07/16(日) 15:45:01
VB6とそれ以前がそんな構造だが、StringBuilderなぞないよ?
0774デフォルトの名無しさん2006/07/16(日) 15:49:09
>>773
だから遅いんでしょ。
0775デフォルトの名無しさん2006/07/16(日) 17:14:34
CSV形式に成形するメソッドなんか見ると
全レコード文字列としてくっつけて返すやつなんかある。
ああいうのは連結のしかたで大きく負荷が変わるが、
その前にその仕様変えろといいたくなる。
0776デフォルトの名無しさん2006/07/16(日) 17:26:52
>>753
string#Formatのベンチマークも取りました
# 盲点だった
0777デフォルトの名無しさん2006/07/16(日) 17:36:51
>>775
じゃあどうすればいいの?
interface ICSV{public string this[col][row];}とか?
0778デフォルトの名無しさん2006/07/16(日) 18:36:38
Builderを引数とか、Stream形式とか。一行に対してIEnumerableとかじゃない?
0779デフォルトの名無しさん2006/07/16(日) 19:27:09
用途の柔軟性から行けばTextWriterあたりがいいかな。
Streamのオーバーロードもあってもいいか。
ま、まず9割くらいはTextWriterでいい気がする。
0780デフォルトの名無しさん2006/07/16(日) 20:28:28
char型の配列で終端に\0でも入れて、
自分で文字列を扱えば、全て解決。
0781デフォルトの名無しさん2006/07/16(日) 20:45:01
??
0782デフォルトの名無しさん2006/07/16(日) 21:25:51
Regex.Replace(line, "(", "(");
のように半角"("を全角に置換えしたいのですが
エラーがでてしまいます。うまく動作させるにはどのように記述すれば
よいでしょうか?
0783デフォルトの名無しさん2006/07/16(日) 21:33:13
エラーが出るキタ━━━━━━(゚∀゚)━━━━━━!!!!
0784デフォルトの名無しさん2006/07/16(日) 21:35:09
(をエスケープしとけ
07857822006/07/16(日) 22:09:06
>>784 ちゃんと動作しました。ありがとうございました。
0786デフォルトの名無しさん2006/07/16(日) 22:22:57
正規表現の意味ねぇ━━━━(´・ω・`)━━━━ッ!!
0787デフォルトの名無しさん2006/07/16(日) 22:27:10
確かに言われてみればStringクラスで事足りるな
0788デフォルトの名無しさん2006/07/16(日) 22:37:23
ブラウザの「リンクバー」みたいなのはどういうコントロールで
実現できるのでしょうか?
0789デフォルトの名無しさん2006/07/16(日) 23:52:00
Visul C# EEで、デザイナいじるたびに
DataGridViewのカラムの順番が勝手に変わるんですが
なんとかなりませんかね?
0790デフォルトの名無しさん2006/07/17(月) 03:01:48
>>771
ソースある?俺は普通にs2と同じポインタがs1に入ると思ってたんだが。
0791デフォルトの名無しさん2006/07/17(月) 08:05:49
ポインタじゃなくて参照な。
771 も参照の代入であると言ってるようだが?
0792デフォルトの名無しさん2006/07/17(月) 10:04:34
リファレンスじゃないの?
0793デフォルトの名無しさん2006/07/17(月) 10:08:48
>>792
リファレンスは日本語に直したら参照だろ?
単語すらわからないんだったらプログラムやめたほうがいいんじゃね?
0794デフォルトの名無しさん2006/07/17(月) 10:09:31
正直どうでもいい
0795デフォルトの名無しさん2006/07/17(月) 10:17:25
>>793
そんなつまらない所であげ足取るくらいなら人間辞めた方がいいんじゃね?
0796デフォルトの名無しさん2006/07/17(月) 10:27:30
100MBぐらいの文字列で試せばすぐ分かるだろ
0797デフォルトの名無しさん2006/07/17(月) 10:28:04
つまらないところって>>792の言ってることの全否定なんだが。
0798デフォルトの名無しさん2006/07/17(月) 10:33:05
>>796
そんな必要ないだろ
0799デフォルトの名無しさん2006/07/17(月) 10:52:06
D♭
0800デフォルトの名無しさん2006/07/17(月) 11:32:30
100MBの文字列を確保しようとしたらOverflowExceptionが出たよママン
0801デフォルトの名無しさん2006/07/17(月) 11:44:19
>>791
すまん、俺>>771の発言を勘違いしてたのかorz
0802デフォルトの名無しさん2006/07/17(月) 12:04:00
嘘つけ
0803デフォルトの名無しさん2006/07/17(月) 12:05:42
>>802は>>800に対してね
0804デフォルトの名無しさん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

「参照」というのは結構無理矢理。
0805デフォルトの名無しさん2006/07/17(月) 13:40:54
いや、reference を参照と訳すのは C# に限らず特に所謂 IT 系で広く使われてるが……。
0806デフォルトの名無しさん2006/07/17(月) 13:45:25
>>804 2番目に参照とあるのに何をもって無理やりといってるのかと
0807デフォルトの名無しさん2006/07/17(月) 13:48:07
>>806
「参照すること」

参照すると言う動詞を無理矢理名詞化してるんですな。
訳したらなるだろぼけ!とまで言えるほど大きな顔が出来る単語でもなし。
0808デフォルトの名無しさん2006/07/17(月) 13:50:44
ごめん何がいいたいのかわからない
0809デフォルトの名無しさん2006/07/17(月) 13:57:09
参照(すること)
何のための括弧だよ
0810デフォルトの名無しさん2006/07/17(月) 14:16:37
ワロリン
0811デフォルトの名無しさん2006/07/17(月) 14:27:13
>>807
英訳とか出来なさそうだな。
0812デフォルトの名無しさん2006/07/17(月) 14:35:37
英語を訳すときに大事なのは厳密な解読じゃなくてフィーリングだぞ
0813デフォルトの名無しさん2006/07/17(月) 14:42:44
>>811
すんません、旧帝大 英IIです。
0814デフォルトの名無しさん2006/07/17(月) 14:44:18
そもそも外国の言葉が自国の言葉に一対一対応するわけでもないし自国の言葉すら各人の対応する概念が一致してるとは必ずしも言いがたい。
0815デフォルトの名無しさん2006/07/17(月) 14:48:13
>>814
極論とか論理の飛躍とか好きじゃないです。
0816デフォルトの名無しさん2006/07/17(月) 14:50:35
いったい何が言いたいんだ。
0817デフォルトの名無しさん2006/07/17(月) 14:54:56
ネタがないからくだらない言い合いしてるだけだ
0818デフォルトの名無しさん2006/07/17(月) 15:10:34
C#で有名な曲っていうと、ヴィヴァルディの「四季」より「春」 ってのがあるな。
0819デフォルトの名無しさん2006/07/17(月) 15:34:41
あらかじめ100MBの文字列 st1 を用意しておいて、
st2 = st1;
を何回やってもメモリ使用量は増えない。
しかし、
st2 = st1;
st2 += "s";
だと当然メモリ使用量は増える。

あと、100MBの文字列を作るときにStringBuilder使ったんだけど、
st1 = sb.ToString();
だとメモリ使用量は増えないのね(sbはStringBuilder)
0820デフォルトの名無しさん2006/07/17(月) 15:37:18
>>819
>だと当然メモリ使用量は増える。
気になるなら手動でGCすればいいですよー。
0821デフォルトの名無しさん2006/07/17(月) 15:38:30
あほす
0822デフォルトの名無しさん2006/07/17(月) 15:43:25
>>820
お前は何を言ってるんだ?日本語が読めないのか
0823句読点書けないバカをサマージャンボする俺 ◆9NQzQ21lx. 2006/07/17(月) 15:44:04
>>822
0824デフォルトの名無しさん2006/07/17(月) 16:14:57
お前は、何を、言ってるんだ?、日本語が、読めないのか、
0825デフォルトの名無しさん2006/07/17(月) 16:44:43
百回死ね
0826デフォルトの名無しさん2006/07/17(月) 16:56:45
まあC#しか知らない糞ガキどもだから
0827デフォルトの名無しさん2006/07/17(月) 16:59:26
どうやったら100回死ねるの?
0828デフォルトの名無しさん2006/07/17(月) 17:07:55
知らんがな(´・ω・`)
0829デフォルトの名無しさん2006/07/17(月) 18:48:28
とりあえず1回から試してみるといいよ
0830デフォルトの名無しさん2006/07/17(月) 19:31:15
D♭っていうセンスは好き。
0831デフォルトの名無しさん2006/07/17(月) 19:34:54
Cωはどうなった?
0832デフォルトの名無しさん2006/07/17(月) 19:47:11
Cω→WinFX XAML→.Net3.0→あぼーん
0833デフォルトの名無しさん2006/07/17(月) 20:00:29
CωはC#3.0に取り込まれる。
元々世に出す予定はない。
0834デフォルトの名無しさん2006/07/17(月) 20:16:23
Cちんこ
0835デフォルトの名無しさん2006/07/17(月) 21:43:43
ふぐりだろ
0836デフォルトの名無しさん2006/07/17(月) 21:52:38
すほうれいこだよ
0837デフォルトの名無しさん2006/07/17(月) 22:21:49
このスレレベル低すぎw
0838デフォルトの名無しさん2006/07/17(月) 22:22:57
だからVB.Netを使えとあれほど・・・
0839デフォルトの名無しさん2006/07/17(月) 22:23:12
つうか、きくならVSUGかgetDotNet、その他メーリングリストのほうがまし。
0840デフォルトの名無しさん2006/07/17(月) 22:30:14
Cωの次はCυ(しーいぷしろん)
これでちんことまんこが完成!
0841デフォルトの名無しさん2006/07/17(月) 22:31:27
>>840
それニュー
0842デフォルトの名無しさん2006/07/17(月) 22:43:07
C z → C z zwei
でいいじゃん
0843デフォルトの名無しさん2006/07/17(月) 22:58:48
初心者スレの方がよっぽどレベル高いな
0844デフォルトの名無しさん2006/07/17(月) 23:06:20
マ板にはめずらしいVIPクオリティーを感じるスレ
0845デフォルトの名無しさん2006/07/17(月) 23:07:36
>>838
だが既にVB.NETは死んだ!
0846デフォルトの名無しさん2006/07/17(月) 23:09:14
ここは相談室。相談しない方にはお引き取りねがいたい
0847デフォルトの名無しさん2006/07/17(月) 23:37:21
愛は死にますか?
0848デフォルトの名無しさん2006/07/17(月) 23:44:44
もちろんです
0849デフォルトの名無しさん2006/07/17(月) 23:54:35
触り始めたところなんだけど、もしかしてC#ってconst参照渡しとかconst関数とか存在しない?
0850デフォルトの名無しさん2006/07/17(月) 23:56:05
C# というか .NET に存在しない
0851デフォルトの名無しさん2006/07/18(火) 00:04:01
マジか。困ったな。死ねばいいのに。
0852デフォルトの名無しさん2006/07/18(火) 01:47:34
.NETでC++のconst同様のことをするならget専用のinterfaceを公開するって感じになる?
でも値の変更を許可しないことを言語がサポートしてくれるわけじゃないからな…
0853デフォルトの名無しさん2006/07/18(火) 04:28:53
>>850 そりゃ言語の範疇だろう。.netかんけいない。
0854デフォルトの名無しさん2006/07/18(火) 09:14:59
>>853
C#はCILを生成するのでCIL上に存在しない=.NETに存在しないって
表現は正しい。
まぁなんだ、実装見せたくないのと参照がメンバの中心になるんで
意味がないのと、リフレクションにはまったく無力だし、そもそも
delegateやevent先なんて追跡可能じゃねーよなぁとか考えると
あんまりいい実装思いつかないし、仕方ないと思うよ
0855デフォルトの名無しさん2006/07/18(火) 09:25:37
>>854 いや.NET上でなくても、言語上でconstの仕様をコンパイル上でチェックすることは可能でしょう。またそれで十分かと。
0856デフォルトの名無しさん2006/07/18(火) 09:41:29
アンマネージはどうするの?
0857デフォルトの名無しさん2006/07/18(火) 09:48:14
せめてCLSの範囲内でないと無理がある。
0858デフォルトの名無しさん2006/07/18(火) 09:53:33
>>855
だからな、constを保証するためには自身のメンバの型のconst保証したメタデータの
マークがなけりゃできないだろ。CILのメタデータ表現としてそんなものないのに
C#コンパイラがどうやって検証するんだよ。
中身みて分析でもするか?コンパイルにどれだけかかるんだろうな?
外部型情報使用したらconst禁止にするか?使える場面まったくなくなるな。
0859デフォルトの名無しさん2006/07/18(火) 10:04:20
>>858 んじゃ、C++で同様のことどうやってると思ってるんだ?
0860デフォルトの名無しさん2006/07/18(火) 10:12:34
最初はconst無くて不便と思ったがだんだんどうでもよくなってきた。
0861デフォルトの名無しさん2006/07/18(火) 10:19:34
正直、C++のconstは俺には複雑すぎて使いこなせてない。
const char * くらいだなC++で使ってるのは。C#ではstringがimmutableだから問題ないしな。
0862デフォルトの名無しさん2006/07/18(火) 10:52:45
readonlyマンセー
0863デフォルトの名無しさん2006/07/18(火) 10:52:50
>>859
ネイティブC++に関して言えば型情報にconstがあるからだ
「CILにそういう型情報がないからC#が簡単にどうこうできる問題でも
ない」って言っているんだが理解しているか?
この制限は言語に依存せず、実際同じCILの型情報を使うC++/CLIの
マネージ型ではconstは使えない。VB.NETもな。

何で.NETにないのかといわれればこれは俺の考えだが、C++とは激しく
状況が異なるからだ。とても実現可能に見えない。
0864デフォルトの名無しさん2006/07/18(火) 10:56:20
わかんないんです><
0865デフォルトの名無しさん2006/07/18(火) 10:57:46
>>863 あーconstめんばへんすうはむりね。
それほとんど使わないから気にしてなかったすまん祖。
0866デフォルトの名無しさん2006/07/18(火) 11:09:46
const メンバ変数なんて使った事ない気がするなあ。
static const メンバ定数しか使わない。
0867デフォルトの名無しさん2006/07/18(火) 11:54:53
>ネイティブC++に関して言えば型情報にconstがあるからだ
じゃ型情報無効にしたらconstつかえないのか?
単にヘッダ見てるだけじゃないか?
0868デフォルトの名無しさん2006/07/18(火) 17:38:27
>>867
ヘッダに型情報が書いてあるのがC++なのに型情報無効にして
ヘッダ参照って何?
0869デフォルトの名無しさん2006/07/18(火) 19:05:51
.NETは関係なし言語側(C#)の問題だ、と言ってるヤツの根拠が全くなく思いつきだけだな
0870デフォルトの名無しさん2006/07/18(火) 19:11:44
>>869
そんなやついた?
0871デフォルトの名無しさん2006/07/18(火) 19:15:40
他モジュールの面罵constを実現できないだけで、ほかのconstは言語側で実現できるでしょ。
0872デフォルトの名無しさん2006/07/18(火) 19:21:28
C#って、TestClass.Item[i]みたいな感じで使える配列プロパティみたいなものって
インデクサを使ったTestClass[i]っていう形式の1つしか作れないの?
0873デフォルトの名無しさん2006/07/18(火) 19:53:57
>>872
[ ] のオーバーロードは不可で、インデックサでのみ使用可能。( )で代用するか、
コレクションやインデックサを持ったクラスを作って
それを返すプロパティを設ければいいんじゃない。
0874デフォルトの名無しさん2006/07/18(火) 20:01:05
>>872
いわゆる「名前付きインデクサ」って奴ね。
IL 的には名前付きインデクサも作れるみたいだけど、C# では無理。

多分、コレクションを返すプロパティと区別が付かないのが嫌だったんだと思う。
>>873 の言うように、インデクサを実装したクラスを1個余計に作って、
それを返すプロパティを作るのが C# 的には正しい。
0875デフォルトの名無しさん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(); //コンパイルエラー
}
0876デフォルトの名無しさん2006/07/18(火) 20:17:08
今日のテーマは『C#がこの先生きのこるには』です。
0877デフォルトの名無しさん2006/07/18(火) 20:18:37
キノコヾ( ゚д゚)ノ″キノコ
0878デフォルトの名無しさん2006/07/18(火) 20:22:21
どうせC#は日曜プログラマ限定でしょ
0879デフォルトの名無しさん2006/07/18(火) 20:59:45
>>876

      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      | ( ゚Д゚)  <C♯きのこる!
      |(ノ  |つ    
      |.先生.|
      ヽ _ノ
       U"U
0880デフォルトの名無しさん2006/07/18(火) 21:05:34
>>873-874
ありがとう。インデクサを持ったプロパティを別に作るのは思い浮かばなかった。
その方向でいくことにするよ
0881にゃんぽん2006/07/18(火) 23:40:04
こんにちは。
どうか、Windowのリサイズについてご教授ください。

画像を表示するプログラムを作成しています。
画面をマウスドラッグでサイズ変更をしているとき、
マウス移動の間、図形を連続的に再描画(縦横比を一定)しようとしています。

FormPaint内でClientWidth とClientheightの設定をしてもうまくいきません。

いい方法がありましたらご教授願います。
0882デフォルトの名無しさん2006/07/18(火) 23:40:31
>>875
属性で拡張すれば言語レベルで対応できると思う。
C#にない理由は実装が手間なわりに効果が薄いとみなされたためだろう。
同じ理由で多重継承やC++タイプのFriendも削除されたり単純化されている。
0883デフォルトの名無しさん2006/07/18(火) 23:45:51
多重継承の実装の面倒くささは桁違いだろ。

ついでに言うとfriendはinternalが相当すると言えるかもしれない。
0884デフォルトの名無しさん2006/07/19(水) 00:14:20
>>878
俺は業務で使ってるが。
0885デフォルトの名無しさん2006/07/19(水) 00:31:29
簡単につれるね
0886デフォルトの名無しさん2006/07/19(水) 00:39:26
>>882
その対応だと使えるクラスと使えないクラスができてしまって激しく
気持ち悪いんだが。
ついでにいうと、動的機能を使用することが常態になっている.NETで
静的に閉じたconstなんか採用したら抜け道だらけで収拾がつかなくなる。
System.ComponentModelが動的(いわゆるリフレクション)を基礎として
構築されていることは分かっているよね?
0887デフォルトの名無しさん2006/07/19(水) 00:41:02
日曜に仕事してるのか
0888デフォルトの名無しさん2006/07/19(水) 01:22:35
なんかもうC#が気になりまくりだけど、移行できないJava厨が多くて嫌だね
Javaなんて、あと3年で消えるのに
0889デフォルトの名無しさん2006/07/19(水) 01:39:19
世界観の狭い人だね
0890デフォルトの名無しさん2006/07/19(水) 01:43:18
3年で消えるんならもう終焉気味じゃないとおかしいぞ
0891デフォルトの名無しさん2006/07/19(水) 02:52:08
J#に謝れ
0892デフォルトの名無しさん2006/07/19(水) 03:28:17
おまえら!
System.ComponentModelが動的(いわゆるリフレクション)を基礎として構築されていることは分かっているよね?
0893デフォルトの名無しさん2006/07/19(水) 03:34:46
つーかComponentModelが何なのか今市よく分かってない
0894デフォルトの名無しさん2006/07/19(水) 03:47:10
>>892
またそれか
0895デフォルトの名無しさん2006/07/19(水) 05:55:51
>>886
>その対応だと使えるクラスと使えないクラスができてしまって激しく
>気持ち悪いんだが。
それ以前の問題としてintすら外部アセンブリなんだけどね!
最低限CTSに手を加えないで、C#だけでどんなクラスが作れるのか
おじさん知りたいな!
0896デフォルトの名無しさん2006/07/19(水) 06:17:44
おじさん乙
0897デフォルトの名無しさん2006/07/19(水) 11:06:39
おじさん萌え
0898デフォルトの名無しさん2006/07/19(水) 11:08:26
使用済み男根
0899デフォルトの名無しさん2006/07/19(水) 12:32:18
ComponentModel名前空間は自分から使ったことないな
0900デフォルトの名無しさん2006/07/19(水) 12:38:04
で?
0901デフォルトの名無しさん2006/07/19(水) 12:40:50
ComponentModelってCOMがらみ?
0902デフォルトの名無しさん2006/07/19(水) 13:48:25
ちがう
0903デフォルトの名無しさん2006/07/19(水) 14:37:33
IContainerくらいは使うでしょ
0904デフォルトの名無しさん2006/07/19(水) 15:38:25
Javaって死滅しちゃうのぉ?
0905デフォルトの名無しさん2006/07/19(水) 16:17:29
>>904
javaの命運はお前にかかっている
0906デフォルトの名無しさん2006/07/19(水) 16:59:25
おれが救ってやる
0907デフォルトの名無しさん2006/07/19(水) 17:41:56
JavaもC#も死んでVBとC++だけが残る
0908デフォルトの名無しさん2006/07/19(水) 17:46:54
C#は、生きてるというレベルにすらまだなってない
0909デフォルトの名無しさん2006/07/19(水) 18:02:35
生きろ
0910デフォルトの名無しさん2006/07/19(水) 20:32:05
結局VB.NETのほうが生き残るんですね、VBの書き方苦手なんだよな・・・慣れの問題かもしれんが
0911デフォルトの名無しさん2006/07/19(水) 20:46:52
釣れますか?
0912デフォルトの名無しさん2006/07/19(水) 21:45:25
C#でもVB.NETでもどっちでもいいじゃん、何をそんなに気にしてんの?
漏れはそのときの気分によって使い分けてるよ。開発上どっちかの言語に
有利なアプリケーションなんて別に無いしな。
0913デフォルトの名無しさん2006/07/19(水) 21:54:53
ネタにマジレス
0914デフォルトの名無しさん2006/07/19(水) 21:59:46
夏休みのためかすっかり雑談スレになってるが、ご相談の方も遠慮なくどうぞ。
0915デフォルトの名無しさん2006/07/19(水) 23:09:57
C#でテンプレートつけてくれればあまり文句ないんだが・・・
0916デフォルトの名無しさん2006/07/19(水) 23:11:04
>>915
Genericsで不満なとこあるんか?
0917デフォルトの名無しさん2006/07/19(水) 23:18:14
タイプパラメータを継承元とできない点

コンストラクタやenum等の制約がかけれない点
0918デフォルトの名無しさん2006/07/19(水) 23:20:45
型を指定しないとメソッド呼べないところ。
C++みたいになんでもありありにしてほしい。
0919デフォルトの名無しさん2006/07/19(水) 23:23:33
ILとの兼ね合いからそこまでは難しいと思う。
それよりもやっぱりtypedefが欲しい。
0920デフォルトの名無しさん2006/07/19(水) 23:24:05
だったらC++をやれと…
安全性と自由度はトレードオフだっつーのよ
0921デフォルトの名無しさん2006/07/19(水) 23:27:25
readonlyのローカル変数が使えないのは何でだぜ?
0922デフォルトの名無しさん2006/07/19(水) 23:28:32
>>920 行為売れすする人って例外なく頭悪いよね
0923デフォルトの名無しさん2006/07/19(水) 23:54:19
変換くらいちゃんとしろ
0924デフォルトの名無しさん2006/07/20(木) 00:28:12
>>918
あれをやろうと思ったら、C++ みたいに、
ジェネリッククラスを実体化するたびに別のクラスのコードが生成されて、
コンパイル結果が爆発的に肥大化するから駄目なんじゃ。

>>920
安全性だけじゃなくて、↑みたいな効率の問題も大きいよ。
0925デフォルトの名無しさん2006/07/20(木) 00:33:59
>>924 でもそのおかげで総称性にかなり制限が加わってる。
0926デフォルトの名無しさん2006/07/20(木) 01:15:51
しかしC#は硬くしたおかげで、推論しても大丈夫な世界を構築しているから
難しいところだよ。本来ならこっちのほうが正統な発展な希ガス。
明示を何とかせんと応用が利かんぞっつーのは確かにあったわけで。

whereの表現力が低いっつーのとinterfaceの表現力が低いっつーのは
(そしてそれが現状の不満につながっているのは)認めるところだが、
これは別の解決策があるだろうと思うし。C++の方法は何か違う。
0927デフォルトの名無しさん2006/07/20(木) 12:53:41
.NET1.1ネイティブなJPEG2000のライブラリを教えてください。
既に動いているノータッチデプロイメントのシステムなのですが、
「JPEG->JPEG2000によせ」という要求がきて困ってます。
0928デフォルトの名無しさん2006/07/20(木) 13:08:06
ClickOnce にしちゃえば
0929デフォルトの名無しさん2006/07/20(木) 13:10:09
.net別の名前にしてくれないかな・・・・
検索しづらくてたまらん・・・orz
0930デフォルトの名無しさん2006/07/20(木) 13:19:48
あるあるw
0931デフォルトの名無しさん2006/07/20(木) 13:22:32
ttp://www.google.com/microsoft.html
0932デフォルトの名無しさん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
0933デフォルトの名無しさん2006/07/20(木) 13:59:46
お前がどこで躓いているかが理解できない
09349322006/07/20(木) 14:08:30
ありがとうございます。

System.Windows.Forms.ComboBox' に 'AutoCompleteMode' の定義がありません。
と出てしまうので、1.1じゃ無理なのかと思ったのですが…
0935デフォルトの名無しさん2006/07/20(木) 14:09:21
>>932
上段のurlの対応バージョンがうそっぽいな
MSDNでComboBox.AutoCompleteSource をみると次のように赤字で表示される。
>メモ : このプロパティは、.NET Framework version 2.0 で新しく追加されたものです。 
09369322006/07/20(木) 14:22:02
>>935
ですよね。

どうやって実現すればいいでしょうか。
0937デフォルトの名無しさん2006/07/20(木) 14:29:16
そんぐらい自分で実装したまへよ
0938デフォルトの名無しさん2006/07/20(木) 14:30:51
>>936
サポートしてないのなら対応は限られるだろう。
1.あきらめる
2.VS2005にかえる
3.KeyPressイベントあたりに自分でたくさんコードを書く
4.同等の機能を持った市販かネットで入手可能なコントロールを探す(あるかどうかは知らん)
09399322006/07/20(木) 14:34:03
>>937>>938
そうですね。自分でたくさんコードを書いてがんばろうと思います。
ありがとうございました。
0940デフォルトの名無しさん2006/07/20(木) 15:20:22
すいません。誰かこの質問に答えられるひといますか?
C#のFormをコピーしてwordなどの文章に貼り付けることは可能ですか?
0941デフォルトの名無しさん2006/07/20(木) 15:21:27
>>940
PrintScreenで好きなだけどうぞ
0942デフォルトの名無しさん2006/07/20(木) 15:26:57
>>940ありがとうございます。
PrintScreenの使い方がよくわからないのですが、
紹介しているサイトとかご存じですか!?
0943デフォルトの名無しさん2006/07/20(木) 15:30:06
>>942
http://www.google.com/
0944デフォルトの名無しさん2006/07/20(木) 15:57:47
誰か、PrintScreenの使い方教えてください。
0945デフォルトの名無しさん2006/07/20(木) 16:03:54
Windowsキーを押してキーボードのUを連打
0946デフォルトの名無しさん2006/07/20(木) 16:12:56
Windows+R
regedit Enter

どれか好きなのを右クリック-削除
0947デフォルトの名無しさん2006/07/20(木) 17:10:57
VC#2005EEでManagedDirectXをいじってるんですが
FormのOnSizeChangedで勝手にDevice.Reset()を呼び出すのが激しくウザいです。
なんとか勝手に呼び出すのをやめさせる方法はないでしょうか?
0948デフォルトの名無しさん2006/07/20(木) 19:02:47
>>940
自分の言いたいことが相手に伝わらなくて社会生活で苦労したりしませんか?
言葉が足りないからです。

C#のFormをコピーって意味が分かりません。

スクリーンショットを貼り付けたいのですか?
それを動的にプログラムで実現したいのですか?
Form上のテキストを貼り付けたいんですか?
wordのドキュメント内部でFormを実現したいのですか?
それとももっと想像を絶するようなことですか?

0949デフォルトの名無しさん2006/07/20(木) 19:04:45
普通に推測できますが。
0950デフォルトの名無しさん2006/07/20(木) 19:05:12
お前はエスパーだからな
0951デフォルトの名無しさん2006/07/20(木) 19:28:36
おそらく「もっと想像を絶するようなこと」だな
0952デフォルトの名無しさん2006/07/20(木) 19:42:34
ム板に来る前にパソコン初心者スレ行くべきだな
0953デフォルトの名無しさん2006/07/20(木) 19:49:51
推測できた内容書いてくれよエスパー
0954デフォルトの名無しさん2006/07/20(木) 19:53:22
PrintScreenすら知らないヤツって・・・
知らなくてもググるとかしろよ
0955デフォルトの名無しさん2006/07/20(木) 19:56:32
>>928
クライアントに.NET1.1で動く別システムが入っている為、
「NTDが動かなくなるので.NET2.0は使うな」と言われており
ClickOnceは使えません。
0956デフォルトの名無しさん2006/07/20(木) 20:41:06
>>955
.NET 1.0 1.1 2.0 はSxSで混在可能なのだが、よほど妙な作り方をしてるのだろうか。
0957デフォルトの名無しさん2006/07/20(木) 20:47:18
>>948
>自分の言いたいことが相手に伝わらなくて社会生活で苦労したりしませんか?
>言葉が足りないからです。

それは多分あなたのことです。

分かっているのなら、多分解決出来ています。
何故なら、調べるにしても簡単に調べられるからです。

分からないから的確なキーワードも分からず、調べるにも、なかなかヒットしません。

何が分からないのかを適切に聞き出せないなら、同じように社会生活で苦労します。
それは、言葉が足らないからです。
0958デフォルトの名無しさん2006/07/20(木) 20:52:02
プログラム言語学ぶ前に日本語学んで来い
0959デフォルトの名無しさん2006/07/20(木) 20:58:11
推測できた内容書いてくれよエスパー
0960デフォルトの名無しさん2006/07/20(木) 21:04:53
>>959は出来るだけ死体が見つからない方法を考え、2日後に自殺する。
0961デフォルトの名無しさん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は半端な知識で使うのは危なそうだし何か良い方法はないでしょうか。
0962デフォルトの名無しさん2006/07/20(木) 21:22:43
当たり前
Windows 自体そんな精度出せない
0963デフォルトの名無しさん2006/07/20(木) 21:27:49
>>962
いや…C++/Win32APIで書いたものは精度出てるんですけど…
0964デフォルトの名無しさん2006/07/20(木) 21:35:26
timeBeginPeriod(1)をしてsleepするアンマネージなDLLを用意するしかないんじゃない?よくわからんけど
0965デフォルトの名無しさん2006/07/20(木) 21:35:31
MM系のtimeBeginPeriodはSleepにも影響するの?
0966デフォルトの名無しさん2006/07/20(木) 22:06:12
で、推測できた内容はまだか?
0967デフォルトの名無しさん2006/07/20(木) 22:52:20
>>966
質問の回答が得られないからって自演で煽ってるヤツなんかと仲良くしちゃいけませんっ
0968デフォルトの名無しさん2006/07/20(木) 23:21:40
>>948
相手の言っていることがわからなくて社会生活で苦労したりしませんか?
IQが足りないからです。
0969デフォルトの名無しさん2006/07/20(木) 23:28:23
で、推測できた内容はまだか?
0970デフォルトの名無しさん2006/07/20(木) 23:39:50
何がそんなに悔しかったんだろう?
0971デフォルトの名無しさん2006/07/20(木) 23:56:04
型を示す文字列(例、"System.Windows.Forms.Form","System.Drawing.Font")から
その型のインスタンスを作成する方法ってありますでしょうか?
0972デフォルトの名無しさん2006/07/20(木) 23:59:43
>>971
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/386createinstance/createinstance.html
0973デフォルトの名無しさん2006/07/21(金) 00:48:33
そこの説明だめだめだからやめた方がいい。
0974デフォルトの名無しさん2006/07/21(金) 00:57:59
ま、System.Windows.Forms.Form だけでは型を示すには不足だな。
0975デフォルトの名無しさん2006/07/21(金) 01:44:44
文字列からソースを作ってビルドして動的にリンク
09769712006/07/21(金) 07:05:42
>>972-974
Assembly が取得できれば CreateInstance できるということですね。
その方向で、作ってみます。
ありがとうございました。

>>975
ちょっと方向性が違うのでその方向はミリ
0977デフォルトの名無しさん2006/07/21(金) 08:56:59
質問です。
テキストのログファイルを作成するに当たって、ファイルを回帰的に使用したいと
考えています。
指定行にテキストを書き込む方法(ヒント)を教えてください。
0978デフォルトの名無しさん2006/07/21(金) 09:00:46
>>977
System.IO
0979デフォルトの名無しさん2006/07/21(金) 09:07:14
>>978
すいません、できればクラスまでお願いします。
さらにできたらメソッドまで。
0980デフォルトの名無しさん2006/07/21(金) 09:09:04
>>979
ふらっとC♯(初心者用) Part8
http://pc8.2ch.net/test/read.cgi/tech/1148310124/
09819792006/07/21(金) 09:10:39
ふらっとC#スレへ異動します
0982デフォルトの名無しさん2006/07/21(金) 12:53:42
>>956
通常なら混在可能だが、NTDは2.0入れたらダメじゃなかったか?
0983デフォルトの名無しさん2006/07/21(金) 22:35:12
質問失礼します。

初めて C# DirectX でソフトを作成した者です。
ソフトを作成し、開発マシンで正常に動作するのを確認しました。
が、いざ配布してみると「共通言語ランタイムデバッグサービス アプリケーションで、ハンドルできない例外が発生しました。」
という警告ダイアログが出て動作しないマシンがあると判明しました。
問題のマシンでは .Net Framework 1.1 及び、DirectX は導入済みである事を確認しております。

原因はおろか原因を特定する方法すら全く分からない状態です。
分かる方お願いします。

開発マシン
WinXP Home
VS2003 C#
DirectX 9.0

問題のマシン
WinXP Home
0984デフォルトの名無しさん2006/07/21(金) 22:39:58
デバック版配布してみれば?
0985デフォルトの名無しさん2006/07/21(金) 22:46:50
例外の内容次第だよなぁ
NullReferenceException と FileNotFoundException じゃ全然違うし
09869832006/07/21(金) 22:51:16
返答ありがとうございます。

>>984
渡して起動してもらったのですが、結果は同じでした。

>>985
内容ですが、
処理 ID=0x2d0(720)、スレッド ID=0x7a4(1956)
となってました。
Exception云々ではなく、それ以前の起動時にこけてる印象を受けます。
0987デフォルトの名無しさん2006/07/21(金) 23:30:51
>>983
DirectXは機種によって動作しない場合があるね。
0988デフォルトの名無しさん2006/07/21(金) 23:53:25
ハンドルされてない冷害を処理するハンドラ登録できたと思うのでそこでみてみそ。
書き方は忘れた。ぐぐれ
0989デフォルトの名無しさん2006/07/22(土) 01:03:09
>>983 こっちのスレの方がいいんじゃなかい

C#でDirectX9 初心者の館 2頂点目
http://pc8.2ch.net/test/read.cgi/tech/1103998649/
0990デフォルトの名無しさん2006/07/22(土) 09:20:32
C丼
0991デフォルトの名無しさん2006/07/22(土) 09:25:03
銀座 天國

A丼〔海老2尾・きす・イカかき揚・野菜2点〕. 1470円.
B丼〔海老2尾・イカかき揚・ 穴子・野菜2点〕. 2100円.
C丼〔海老2尾・きす・文甲イカ・大海老・野菜2点〕. 2835円
0992デフォルトの名無しさん2006/07/22(土) 09:30:41
C丼高級だな
0993デフォルトの名無しさん2006/07/22(土) 10:15:04
次スレは?>>994が立てる?
0994デフォルトの名無しさん2006/07/22(土) 11:05:49
Java最強!!
0995デフォルトの名無しさん2006/07/22(土) 11:08:04
スレ違い
0996デフォルトの名無しさん2006/07/22(土) 11:26:31
>>992
B丼の方が好みだな。
0997デフォルトの名無しさん2006/07/22(土) 11:41:37
よーし
このスレはJavaが頂いた
C#なんて、誰も使ってないから必要無いだろ?wwwwww

Java最強!!!!!!!!!!!!!!1111
0998デフォルトの名無しさん2006/07/22(土) 11:58:39
次スレ

C♯, C#相談室 Part33
http://pc8.2ch.net/test/read.cgi/tech/1153537081/
0999デフォルトの名無しさん2006/07/22(土) 12:00:23
?
1000デフォルトの名無しさん2006/07/22(土) 12:00:42
1000?
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。