C♯相談室 Part26
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん♯
NGNG(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
過去スレは>>2-5あたり。
関連リンク
http://onigiri.s3.xrea.com:8080/csharp/index.php?%5B%5B%A5%EA%A5%F3%A5%AF%5D%5D
0002名無しさん♯
NGNGPart25 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/
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/ (ログ行方不明)
0003名無しさん♯
NGNGPart12 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デフォルトの名無しさん
2005/09/19(月) 02:23:45{
case 4:
break;
}
0005デフォルトの名無しさん
2005/09/19(月) 03:03:4013ってこれのことかい?
ttp://makimo.to/2ch/pc2_tech/1071/1071663456.html
0006デフォルトの名無しさん
2005/09/19(月) 03:40:53フォームを最小化し再度表示させると
Paintイベントが発生しないのですが
(ボタン等では発生します)
TextBoxやListViewではなぜ発生しないのでしょうか?
0007デフォルトの名無しさん
2005/09/19(月) 04:53:420008デフォルトの名無しさん
2005/09/19(月) 07:56:590009デフォルトの名無しさん
2005/09/19(月) 11:29:54コントロール上でのマウスの動きを察知する方法ありませんか?
マウスが上に来たらBringToFront()で前面に持ってきたいのです。
MouseMoveイベントがなかったのでAxWebBrowserを継承したクラスをつくり、
WndProcをオーバーライドしてWM_MOUSEMOVEを捕まえようとしたのですが…・・・。
何も表示されていない真っ白な状態ではちゃんとWM_MOUSEMOVEが飛んでくるのですが、
何かを表示(例えばGoogleのページなど)を表示させると飛んでこなくなってしまいます。
PreProcessMessageもダメなようで……。
0010デフォルトの名無しさん
2005/09/19(月) 11:37:010011デフォルトの名無しさん
2005/09/19(月) 13:00:210012デフォルトの名無しさん
2005/09/19(月) 13:01:140013デフォルトの名無しさん
2005/09/19(月) 13:05:41受け渡し両方か、受け取るだけか。
呼出元で初期化が必要か、不要か。
0014デフォルトの名無しさん
2005/09/19(月) 13:06:23そのメソッドの終了を待たずにstringを返すことは可能でしょうか・・・?
可能ならどうすればできるのでしょうか?
0015デフォルトの名無しさん
2005/09/19(月) 13:12:5100169
2005/09/19(月) 13:13:00AxWebBrowserを継承したクラスのDocumentCompleteイベントハンドラで
次のように書いたのですがイベント飛んで来ませんでした。
(DocumentCompleteイベントはちゃんと来てます)
// このイベントハンドラには飛んでくる
private void MyWebBrowser_DocumentComplete(object sender, DWebBrowserEvents2_DocumentCompleteEvent e)
{
mshtml.IHTMLDocument2 doc = this.Document as IHTMLDocument2;
mshtml.IHTMLElement2 body = doc.body as mshtml.IHTMLElement2;
body.attachEvent("onmouseover", new HTMLElementEvents2_onmouseoverEventHandler(WebBrowser_OnMouseOver));
}
// マウスが動いたらこのイベントハンドラに飛んできてくることを期待してた
private void WebBrowser_OnMouseOver( mshtml.IHTMLEventObj e )
{
// ここで目的の処理をしたい
}
やりかた違うのかな……
0017デフォルトの名無しさん
2005/09/19(月) 13:13:270018デフォルトの名無しさん
2005/09/19(月) 13:52:310019デフォルトの名無しさん
2005/09/19(月) 14:02:20まだ正式版は出ていない。
……C#1.1は存在しないはずだが。
0020デフォルトの名無しさん
2005/09/19(月) 14:19:18.NET Framework 1.1 に合わせて、C# もちょっとだけ変更されたはず。
Visual Studio 2003 が出たとき。
俺が覚えてるのは、 /** でドキュメンテーションコメントを書けるようになったっての。
その他はほとんど変わってなかったと思う。
ただ、C# の仕様書のページを見に行ってみたら、そこに存在するのは
1.0 の仕様書と、1.2 と書かれた仕様書だけだった。
正式には C# 1.2 なのかな。
ネット上では "C# 1.1" の方が多数ヒットするんだけど。
>>18
ちなみに、.NET 2.0, C# 2.0 は Visual Studio 2005 に合わせてな。
正式版でるのって来月くらいだっけ?
0021デフォルトの名無しさん
2005/09/19(月) 14:47:280022デフォルトの名無しさん
2005/09/19(月) 15:26:50非同期デリゲート
0023デフォルトの名無しさん
2005/09/19(月) 17:03:14こんなことしてみたんですが、メッセージが届いてないみたいなんです。
どこかおかしいでしょうか?
someclass{
somemethod(){
string path =@"C:\test.txt";
hWnd = 対象アプリのwindow handle;
const int WM_DROPFILES = 0x0233;
_DROPFILES DropFiles = new _DROPFILES();
DropFiles.pFiles = Marshal.SizeOf(DropFiles);
DropFiles.fNC = false;
DropFiles.fWide = true;
DropFiles.FileName = path.ToCharArray();
PostMessage( hWnd, WM_DROPFILES, ref DropFiles, 0 );
}
}
public struct _DROPFILES
{
public int pFiles;
public Point pt;
public bool fNC;
public bool fWide;
public char[] FileName;
}
0024デフォルトの名無しさん
2005/09/19(月) 17:28:15ControlPaint.DrawReversibleLineを描きたいのですが、
以下のようなコードをかきました。
Draw(); //imgに書き込みをれをpictureboxに設定。
Thread.Sleep(1000);
ControlPaint.DrawReversibleLine(pictureBox1.PointToScreen〜);
ところが実際にはDraw()の結果が反映される前に反転線が描画されてしまいます。
確実にDraw()の描画が反映されてから反転線を描くにはどうしたらいいですか?
00259
2005/09/19(月) 18:29:080027デフォルトの名無しさん
2005/09/19(月) 19:18:05ttp://homepage2.nifty.com/Mr_XRAY/Halbow/Notes/N022.html
参考になると思うよ。
0028デフォルトの名無しさん
2005/09/19(月) 19:37:49一旦Refreshするとか
//画面に直接描画するのな、DrawReversibleLineって
0029デフォルトの名無しさん
2005/09/19(月) 20:07:40XmlTextReaderでいいんでしょうか?
0030デフォルトの名無しさん
2005/09/19(月) 20:17:46mshtml使ってHTMLDocumentクラスを使うのが早いかも知れない。
そうそう、WebBrowserを使わずにHTMLDocumentを使うがようやく分かった。
一旦HTMLDocumentをnewして、それをIHTMLDocument2にキャストしてからwriteしてやればOKなようだ。
HTMLDocument.writeは一体何をimplementsしてるんだろうか。
ファイルパス指定すればエンコーディングを自動解析して開いてくれるようなのは無いものかな。
0031デフォルトの名無しさん
2005/09/19(月) 20:17:51003229
2005/09/19(月) 20:24:18003329
2005/09/19(月) 20:43:47ttp://jomora.bne.jp/wiki/pukiwiki.php?C%A1%F4%2Fmshtml
0034デフォルトの名無しさん
2005/09/19(月) 20:49:05……しかしよくでてくるなコレ
0035デフォルトの名無しさん
2005/09/19(月) 20:57:36IPersistFile.Load -> スルー。Loadを実行しても永遠にreadyStateはloadingのまま。
IHTMLDocument4.createDocumentFromUrl -> 例外(AccessViolationException)発生。
さあどうしてくれようか。
0036デフォルトの名無しさん
2005/09/19(月) 21:27:43WebBrowserオブジェクトを貼り付けたフォームでキーの押している状態を表示しようとしてキーイベントを拾おうとしたことがあったんだけど、
どうやってもWndProcにメッセージが流れてこないものがあるみたいでその辺のメソッドをoverrideしても無理みたいだった。
IMessageFilterを実装したクラスを用意してメッセージフィルタをセットしておけばメッセージを受け取れたと思うよ。
00379
2005/09/19(月) 22:00:40ありがとう、ちょっくら挑戦してみる
00389
2005/09/19(月) 22:44:22PreFilterMessageメソッド内で受け取ることができました。
どうもありがとう。
0039デフォルトの名無しさん
2005/09/19(月) 23:04:20内容はクライアント側のTextBoxに書かれた文字データを送信し、サーバ側の
TextBoxに表示する。といったものを作っています。
お聞きしたいことは一回サーバクライアント間でコネクションを確立させた後に、
クライアント側のアプリケーションを終了させるとサーバ側がコネクションエラーをキャッチします。
すると、次にクライアントのアプリケーションを立ち上げてもコネクションを確立する事が出来なくなります。
クライアントとのコネクションが切れた時にサーバ側にどういった対処が必要なのでしょう?
解決法をご存知の方がいましたら教えてください。よろしくお願いします。
0040デフォルトの名無しさん
2005/09/19(月) 23:28:010042デフォルトの名無しさん
2005/09/20(火) 00:32:33SocketOptionName.ReuseAddressが設定されてないと
以前に使用されたアドレスがしばらく使用できないと聞いたことがあるようなないような。
WinSockの話を読みかえることが必要になるが、ここで聞くより↓で聞いたほうがいいんじゃないか。
ネットワークプログラミング相談室 Port14
http://pc8.2ch.net/test/read.cgi/tech/1118469143/
0043デフォルトの名無しさん
2005/09/20(火) 00:45:49それはサーバー再立ち上げ時の話じゃ?
0044デフォルトの名無しさん
2005/09/20(火) 00:51:30タスクバーでタイトルバーが点滅して自己主張しますよね。
あれを自分のアプリで実装したいのですが、
FormかWinAPIにその機能がもともとついてたりしますか?
0045デフォルトの名無しさん
2005/09/20(火) 00:57:430046デフォルトの名無しさん
2005/09/20(火) 02:39:02ttp://www.sugi-family.net/papancs/cs_tips.asp?cate=3&tips=3012
0047デフォルトの名無しさん
2005/09/20(火) 04:59:08Win32api呼んでるじゃないの
0048デフォルトの名無しさん
2005/09/20(火) 17:02:13自動的に Textのプロパティが TextBox1と自動的にNameの名前になりますが、
TextBoxを追加した時点で、
Textのプロパティを空の文字列にすることは可能ですか?
0049デフォルトの名無しさん
2005/09/20(火) 20:34:11Win32 API の SetForegroundWindow の挙動だね。
以下のページを見るに System.Windows.Forms.Form.Activate でいけるんじゃない?
http://www.microsoft.com/japan/msdn/net/general/win32map.asp
0050デフォルトの名無しさん
2005/09/20(火) 20:34:55毎回 get set 書くの面倒なんだが。
005144
2005/09/20(火) 20:39:26レスありがとうございました。
Win32APIのFlashWindowExをDllImportで呼んで使うことにします。
0052デフォルトの名無しさん
2005/09/20(火) 22:01:45VS 2005 にそんな機能あった気が。
0053デフォルトの名無しさん
2005/09/20(火) 22:03:38いくつも出てるよ。
漏れは自分で作った。
0054デフォルトの名無しさん
2005/09/20(火) 22:04:34切り替わるようになった。
タイプ中に突然フォーカスを奪われて、はずみでOKボタン
押しちゃった、というトラブルの防止策です。
これを一時的に無効にするAPIとか技とかは、探せば出てきます。
AllowSetForegroundWindowだったっけ?
0055デフォルトの名無しさん
2005/09/20(火) 22:24:00そんなに単純じゃないだろ。
ttp://techtips.belution.com/ja/vc/0012/
0056デフォルトの名無しさん
2005/09/20(火) 22:31:59できるんですか?
それ以外はデリゲートの非同期メソッドを使うのでしょうか?
0057デフォルトの名無しさん
2005/09/20(火) 22:36:520058デフォルトの名無しさん
2005/09/20(火) 23:57:57途中で処理が終わりますよね?
0059デフォルトの名無しさん
2005/09/21(水) 00:01:030060デフォルトの名無しさん
2005/09/21(水) 00:01:24thread.IsBackground = false;
0061デフォルトの名無しさん
2005/09/21(水) 00:04:040062デフォルトの名無しさん
2005/09/21(水) 00:33:10素のVS2005にあったっけ
0063デフォルトの名無しさん
2005/09/21(水) 01:07:59リファクタ -> フィールドのカプセル化
複数のメンバをまとめて処理できないからちょっと不便だけどね。
0064デフォルトの名無しさん
2005/09/21(水) 01:08:15Enum値の日本語表記がどーしてもできん。
あとbool型のtrue/falseもはい/いいえにしたい。
TypeConverterを継承して何かやるっぽいけど、
実際どういう風に書きゃいいのか・・・ご教示きぼん
0065デフォルトの名無しさん
2005/09/21(水) 01:33:09http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdndotnet/htm/usingpropgrid.asp
0066デフォルトの名無しさん
2005/09/21(水) 03:03:34IHTMLDocument4インターフェイスのcreateDocumentFromUrlを使っていて、
起動時に読み込んだあと元のHTMLが更新されても
新しいHTMLを読み込んでくれないのですが、キャッシュを無視するとかオプションはないのでしょうか?
COMスレが落ちてしまっているようなので、こちらで質問させていただきました。
よろしくお願いします。
0067デフォルトの名無しさん
2005/09/21(水) 08:49:000069デフォルトの名無しさん
2005/09/21(水) 14:41:55C#でのリークの調査と言うのはどのように行うのでしょうか?
C++なら1回動かすとXXバイト増えてるから・・・って出来たのですが
GCが走らないとメモリ開放しないようなのでC++の時のように
判断が出来ないでいます。
0070デフォルトの名無しさん
2005/09/21(水) 14:49:41プロファイラ
0071デフォルトの名無しさん
2005/09/21(水) 14:52:210072デフォルトの名無しさん
2005/09/21(水) 15:02:45プロファイラというと?
0073デフォルトの名無しさん
2005/09/21(水) 15:33:49循環参照
0074デフォルトの名無しさん
2005/09/21(水) 15:34:55・予期せぬ所で参照が残っている
・GC管理外のメモリを確保した(例・System.Runtime.InteropServices.Marshal.AllocHGLobal)
0075デフォルトの名無しさん
2005/09/21(水) 18:28:45循環参照でも解放されるよ。
0076デフォルトの名無しさん
2005/09/21(水) 19:46:44というか循環参照を解決しようとしてあんな複雑なGCになってやがるんだが。
他にも理由があるけどな
0077デフォルトの名無しさん
2005/09/21(水) 20:53:060078デフォルトの名無しさん
2005/09/21(水) 22:00:52測定したいタイミングでGC.Collet()を2,3回呼ぶようにすればいんじゃない?
0079デフォルトの名無しさん
2005/09/22(木) 01:06:24俺も知りたい。C#のリークの調査は
Private Bytes と # Bytes in all Heaps を見て判断するって
どこかで読んだんだけど
リークしないだろうアプリを連続で動作させてると
Private Bytes と # Bytes in all Heaps が増えるんだよね
# Bytes in all Heapsはたまに減るけど何となく増えてる感じするし
わけわからん(T_T)
0080デフォルトの名無しさん
2005/09/22(木) 01:16:04どのようなときにおきるのでしょうか?
バインディングすると起きる気もしますが
WindowsFormsです
0081あめ
2005/09/22(木) 04:03:220082デフォルトの名無しさん
2005/09/22(木) 09:00:20http://www.google.co.jp/search?hl=ja&q=%E6%99%82%E5%88%BB%E3%80%80%E5%A4%89%E6%9B%B4%E3%80%80C%23&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
0083あめ
2005/09/22(木) 11:05:05感謝します。
0084デフォルトの名無しさん
2005/09/23(金) 00:08:16//ジャグ配列の場合
hoge[0] = array;
↑のような感じでコピーしたいのですが
0085デフォルトの名無しさん
2005/09/23(金) 00:18:15〜〜
return ( ((p1.X-p2.X)^2) + ((p1.Y-p2.Y)^2) )
ってコードでp1,p2の距離の二乗を求めているのですが、
なぜか負の値が帰ってきます… どこがおかしいのでしょうか?
0086デフォルトの名無しさん
2005/09/23(金) 00:20:09……ちなみに、その例だと、array[1] = 123; ってやったときに hoge[0][1] も 123 になるぜ。
0087デフォルトの名無しさん
2005/09/23(金) 00:20:47C 系の言語で 「^」 は累乗記号ではないから注意。
0089デフォルトの名無しさん
2005/09/23(金) 00:24:00Math.pow(x, y);
0090デフォルトの名無しさん
2005/09/23(金) 00:39:430091デフォルトの名無しさん
2005/09/23(金) 00:48:03お勧めというか、ジャグ配列の方が要素の参照が速いって書いてた気が。
C 言語的に書き直すと、
a[x, y] → *(a + x * WIDTH + y) → 掛け算1回+足し算2回+アドレス参照1回
a[x][y] → *(*(a + x) + y) → 足し算2回+アドレス参照2回
まあ、キャッシュの効き方次第な気もするけど。
0092デフォルトの名無しさん
2005/09/23(金) 13:11:25'Microsoft.Ink.Stroke.Stroke()' はアクセスできない保護レベルになっています。
というエラーで継承したクラスを作成出来ません。
元来のStrokeクラスの動作に影響を与えないプロパティを追加したいだけなのですが、
なにかいい方法ないでしょうか?
0093デフォルトの名無しさん
2005/09/23(金) 13:22:16publicなコンストラクタがないって事は、自分で作ることがないオブジェクトのようだけど?
自分で作ることがないなら派生クラスを書いても使えないよ?
009492
2005/09/23(金) 13:26:10追加したいプロパティはStrokeごとに持たせたほうが
全体の記述がわかりやすくなるので、追加したいのですが
やっぱりStrokeに持たせるのは無理ですかね。
メインクラスに
int[] hogeとかつくって hoge[Stroke.ID]とかでとるようにするのが
現実的ですか…
0095デフォルトの名無しさん
2005/09/23(金) 14:02:010096デフォルトの名無しさん
2005/09/24(土) 00:33:03|aaa|bbb|ccc|
日 xxxx xxx xxx
yyy yyy yyy
yyy yyy yyy
田 xxxx xxx xxx
0097デフォルトの名無しさん
2005/09/24(土) 00:43:480098デフォルトの名無しさん
2005/09/24(土) 00:47:45TreeListViewってのを拾ってきて使いましょう。
0099デフォルトの名無しさん
2005/09/24(土) 02:26:17それに合わせてマイクロソフト開発環境のアップデートとかは行われてきたものなのでしょうか。
0100デフォルトの名無しさん
2005/09/24(土) 02:49:492005があるだろ。
0101デフォルトの名無しさん
2005/09/24(土) 09:16:34■ このスレッドは過去ログ倉庫に格納されています