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
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 シンタックスシュガーではないと思われ