- 1 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 17:41:44 ]
- このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part44 pc12.2ch.net/test/read.cgi/tech/1251439041/
- 445 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 07:41:42 ]
- enumやdelegateも型だから、
分けなきゃいかんのならこれも分けるの?てのもあるね。 javaの場合はpublicなenumはファイル分けなきゃいかんかった。 めちゃ不便。
- 446 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 11:41:54 ]
- 関連性が極めて強い型、殆ど従属してると言って言いような型とか、
列挙やらデリゲートやらは流石にファイル分けたりはしないな。 ただ、大体基本的には1クラス1ファイルになると思うけどね。
- 447 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 14:28:27 ]
- パブリックなクラスが内部だけで使うプライベートなクラスとかなら
1ファイルに書いたりはする 規模にはよるけど
- 448 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 14:57:49 ]
- ジェネリッククラスも作る時は一緒のファイルに書いてるかな
- 449 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 15:28:30 ]
- まあ、その辺は好みだよな
- 450 名前:デフォルトの名無しさん [2009/10/02(金) 17:26:45 ]
- 子ウィンドウハンドルの取得が出来ません。
EnumWindowsはなんとか出来たので、それを元にやっているのですが EnumChildWindowsの使い方が理解できてません。 private delegate int EnumerateChildWindowsCallback(IntPtr hwndParent, int lParam); [DllImport("user32.dll")] private static extern bool EnumChildWindows(IntPtr hwndParent, EnumerateChildWindowsCallback lpEnumFunc, int lParam); public int EnumerateChildWindows(IntPtr hwndParent, IntPtr lpEnumFunc, IntPtr lParam) { return 1; } public void main(IntPtr hWnd) { EnumChildWindows(hWnd, new EnumerateChildWindowsCallback(EnumerateChildWindows), 0); } これで「デリゲート 'LTLimit.WindowHandle.EnumerateChildWindowsCallback' に一致する 'EnumerateChildWindows' のオーバーロードはありません。」と出ます
- 451 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 17:34:18 ]
- EnumerateChildWindowsCallbackとEnumerateChildWindowsの引数が合ってないじゃん
- 452 名前:デフォルトの名無しさん [2009/10/02(金) 18:10:51 ]
- >>451
レスありがとうございます! ただ、引数に何を入れるのかが分かりません。 (IntPtr hwndParent, WNDENUMPROC lpEnumFunc, int lParam); とか (IntPtr hwndParent, IntPtr lpEnumFunc, int lParam); など試してみたのですがダメでした。
- 453 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 18:28:33 ]
- >>451
APIの知識がないんだな C#云々の問題じゃないし
- 454 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 18:36:20 ]
- >>452
ちゅーかどっからそんなソースをもってきたんだろう。 引数はIntPtr hWnd, int lParamの2つだけ。 引数名をhwndParentとしているが、ココには親のウィンドウハンドルが渡されるのではなく 列挙された子ウィンドウのウィンドウハンドルが渡される。
- 455 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 18:37:44 ]
- EnumChildWindowsの引数なんて言ってないんだが…
- 456 名前:デフォルトの名無しさん [2009/10/02(金) 19:23:55 ]
- >>454
子ウィンドウを列挙するソースが見つからないので 試行錯誤しているところです。 引数名は何も気にせずコピーしてました。 >>455 なんだか的外れな事をしてしまったみたいですみません。 どこをどう直せば良かったのでしょうか。
- 457 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 19:25:58 ]
- C#のソースに拘らなくていいだろw
- 458 名前:デフォルトの名無しさん [2009/10/02(金) 19:39:51 ]
- >>457
こだわってるんじゃなく、違う言語がまったく読めないのでC#に出来ないのです。
- 459 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 19:53:13 ]
- >>429
ぶー、88BASIC です。
- 460 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 19:56:41 ]
- >>442
非常識自慢?w ネストされたクラスはカウントしないとして、 例外クラスとenum以外は基本ファイルあた1クラスでしょ。 あとは、まあ小さなクラスなら派生クラスも同じファイルに書いちゃうことはあるが。
- 461 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 20:06:12 ]
- いじわるしないで教えてやれよw
- 462 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 20:24:42 ]
- 何かプログラムしようと思うんだけど何も思いつかない
- 463 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 20:42:39 ]
- 教えてあげないよ
_,∩_ _,∩_ _,∩_ (_____)ゝ、 (_____) y (_____) / :: :: :: ヽ 〉 /-‐:: ::‐-ヽ / / :: :: :: ヽ _./ (・ )ll(・ ) ∨ _/ 0) i! 0) ∨ _/ ( ・)i!(・ ) ゙、_ // :: :: ∈ゝ :: ::ヽ // :: ‐-‐ :: ヽ // :: ー一 :: ヽ\ . ゝ/:: :: :: :: :: ::ヽ ゝ/ :: :: :: :: :: ヽ ゝ/ :: :: :: :: :: ヽく  ̄ ̄ | ̄ ̄ | ̄ ̄  ̄ ̄ | ̄ ̄ | ̄ ̄  ̄ ̄ | ̄ ̄ | ̄ ̄ | | | | | | ⊂! !つ シ! !つ ⊂! !つ ジャン♪
- 464 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 20:46:36 ]
- >>458
だから、APIが読めなければC#にもできないだろw 基本は同じなんだからさ こんにちはの意味がわかれば、HELLOをどのタイミングで言えばいいかわかるだろ? それと一緒だ
- 465 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 21:07:18 ]
- 下手な例えだなw
- 466 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 21:13:24 ]
- >>433
>「復号化」ではないのでリアルで使うと恥じをかくことになると忠告しておこう DESCryptoServiceProvider.CreateDecryptor メソッド 指定したキー (Key) および初期化ベクタ (IV) を使用して、対称 DES (Data Encryption Standard) 復号化オブジェクトを作成します。 セキュリティ関係用語じゃなくてMicrosoft用語ですだ。
- 467 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 21:27:52 ]
- >>440
だから、原理的にはって言ってるじゃないか。 どう実装されてるか分からないから、適当に復号化するように実装されてないとは 言い切れない。 ドキュメント斜め読みしても見つからない。 一個かそこら試したとしても不安が残る。 時間は待ってくれない。 だからどっちに転んでも、まあ動くだろうって対応をした。って話。 ところで関係無いんだが、これ実はExcelVBAで利用したと言ったら信じる?
- 468 名前:450 [2009/10/02(金) 23:48:40 ]
- 解決したっぽいです。
レスくれた方ありがとうございました。 private delegate int EnumerateChildWindowsCallback(IntPtr hWnd, int lParam); [DllImport("user32.dll")] private static extern bool EnumChildWindows(IntPtr hwndParent, EnumerateChildWindowsCallback lpEnumFunc, int lParam); public int EnumerateChildWindows(IntPtr hWnd, int lParam) { return 1; } public void main(IntPtr hWnd) { EnumChildWindows(hWnd, new EnumerateChildWindowsCallback(EnumerateChildWindows), 0); }
- 469 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 00:51:50 ]
- >>467
別に対応がおかしいとは言ってないよ。 実際復号されることもエラーになることもあるから。 >でないとTripleDESが不可能のはずだから。 これがおかしいと言ってるだけ。
- 470 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 01:43:39 ]
- タラオ「トリプルですぅ〜」
- 471 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 03:51:23 ]
- >>460
安心したw 今書いているクラスは入れ子になっているものを数えたら30個にもなっててほんの少し焦った。 まぁ、チョロっと必要な定数叩き込むときは1ファイルに2つぐらい書いちゃうけど大丈夫だね。
- 472 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 07:07:02 ]
- >>469
TripleDESは、 暗号文 = 鍵3でDES暗号化(鍵2でDES復号化(鍵1でDES暗号化(平文))) という仕様だから、DESはある鍵で暗号化したものを別の鍵で復号化できないと 実現不可能のはずだと考えたんだが、間違ってるのか?
- 473 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 08:21:22 ]
- しつけえ
- 474 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 08:29:56 ]
- いちおう書いておこう。
暗号アルゴリズム単体と、 〜Providerとかを使っての処理は 「違う」って言ってる。 DESとか3DESとかの暗号アルゴリズム単体では ブロックサイズのデータとキーを与えたらブロックサイズの結果を出す単なる関数。 だからキーが違おうが何だろうが処理できる。 でも〜Providerとかを使っての処理は、暗号化のモードとかIVとかパディングを含めた処理 特にパディングがあるから、違うキーで処理したら処理自体に躓いてエラーになる場合が多い。
- 475 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 08:49:58 ]
- >>460
わざわざ「Javaかよw」って書いてるんだから 例外クラス・enum・数行しかないクラスであっても、例外なくファイルに分けなければいけない ってのを皮肉ってるんだと思った。
- 476 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 11:59:12 ]
- >>475
俺が無知なだけ・・・。 C#やってるけど今まで本なんて一回も読んだことないし、基礎知識なさすぎ。 最初なんてIfしらなかったせいでgotoで何もかもやってたこともあったしw すっきりしました ありがとb
- 477 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 12:02:44 ]
- 本とか言う前に、マニュアル読めよ・・・。
- 478 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 12:14:29 ]
- いや、ホントの基礎はやっぱり何か入門本でやった方がいいよ。
まあチュートリアルとか、あとトレーニングとかオンラインで無料でできるやつもあるから そんなのでもいいけど。 いきなりマニュアルはきついだろう。
- 479 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 12:21:42 ]
- まあそこらの家電製品や普通のアプリと違って
「第一章:Hello worldを表示しよう!」 なんてのはマニュアルにないからなw
- 480 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 12:54:14 ]
- msdn.microsoft.com/ja-jp/library/aa288463%28VS.71%29.aspx
> C# プログラマーズ リファレンス > Hello World のチュートリアル > > このチュートリアルでは、C# 言語による Hello World プログラムのいくつかの記述方法について説明します。
- 481 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 13:10:52 ]
- オイ俺のコピペ脳、まで読んだ。
- 482 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 16:10:02 ]
- foreachを逆の順番で回すことはできませんか?
ま、forを使えばいいんだけど・・・
- 483 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 16:16:07 ]
- 出来るわけがない
- 484 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 16:16:28 ]
- .Reverse()
- 485 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 16:35:14 ]
- Reverseにしました
- 486 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 16:40:27 ]
- Reverseは一度内部で最後まで列挙されて、そのバッファから吐き出されてるに過ぎないってことに注意。
但しIListを実装しているものは直接コピーするので、列挙のコストはかからない。
- 487 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 16:41:12 ]
- ネットワークドライブへの再接続をする方法を教えてください
環境 PC A OS vista x64 sp2 PC B OS xp sp3 AはBのフォルダをネットワークドライブ(Zドライブ)に接続している ネットワークドライブ(Zドライブ)は起動時に自動的に再接続される。 続く〜
- 488 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 16:42:50 ]
- ケース1
Aのみ起動している状況で、 string[] drives = Directory.GetLogicalDrives(); をやると、drivesの中にZドライブが含まれない。 ケース2 Aを起動してからBを起動しても drivesの中にZが入ってこない。 ケース3 Bを先に起動してからAを起動すると、 drivesの中にZが入ってくる。 ケース1 2のどちらでも、エクスプローラーではZドライブアイコンに×が重なって表示されます。 ×になっているZドライブをダブルクリックすると、正常にドライブにアクセスでき、 その後は string[] drives = Directory.GetLogicalDrives(); でdrivesの中にZドライブが入ってくる。 このエクスプローラーをダブルクリックするという作業を、なんとか代替できないでしょうか。 やったこと DriveInfo di = new DriveInfo("Z"); string[] drives = Directory.GetLogicalDrives(); 失敗 string[] test = System.IO.Directory.GetFileSystemEntries("z:\\"); string[] drives = Directory.GetLogicalDrives(); 例外で強制終了 存在しないドライブの一覧を取得しようとしたのが問題っぽい。 どなたかお願いします。
- 489 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 16:46:31 ]
- 標準ライブラリじゃ無理のはず
Win32APIのWNetAddConnection2で再接続
- 490 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 16:49:55 ]
- >>489
情報ありがとうございます。 win32apiは使ったことないですが何とかやってみます。
- 491 名前:450 [2009/10/03(土) 18:47:55 ]
- Form1からForm2を表示したとき、
位置をForm1のLocationプロパティを参照して決めたいのですが、 参照の仕方を教えてください。
- 492 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 18:50:30 ]
- 考え方が間違ってる
Form1がForm2を表示する際に var form2 = new Form2(); form2.Location = (this.Locationを基準に決めた位置); form2.Show(); のようにする
- 493 名前:デフォルトの名無しさん [2009/10/03(土) 19:15:30 ]
- >>492
おおお! ありがとうございます! まったく思いつかなかったです。
- 494 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 19:19:43 ]
- this.BackColor = System.Drawing.Color.Blue;
直接16進で指定は出来ないのでしょうか?
- 495 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 19:20:13 ]
- Thread thread = new Thread(ThreadTask);
thread.Start(); でスレッドを起動するとき、引数はどう渡せばいいんでしょう?
- 496 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 19:24:51 ]
- >>495
msdn.microsoft.com/ja-jp/library/6x4c42hc.aspx
- 497 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 19:25:22 ]
- Color.FromArgb
Colorのリファレンスくらい見たらどうかと思う
- 498 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 19:26:45 ]
- >>493
いやいやw 普通は(少なくともOOP的には)、別のFormの位置を参照して自分の表示位置を決定して表示する機能を Form2自身が実装するようにすべき。 その方が分かりやすいでしょ? ケースバイケースだけど、フツーは>>492みたいのは悪い例。
- 499 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 19:36:49 ]
- 余計な依存ができるだろ
もっとちゃんとした枠組みを作ってそういうことを実現するならいいけど 安易に他のフォームを参照しちゃうようなやり方は良くない
- 500 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 19:41:03 ]
- >>497
ども、まだヘルプ入れてないんです。始めて二日目。 ありがとう、できました。
- 501 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 19:49:21 ]
- は? >>500
- 502 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 19:59:21 ]
- IntelliSenseからそれっぽい名前探し当てるとかできないのかなー。
- 503 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 20:01:58 ]
- >>499
Locationは"Form1"で実装されてるメンバじゃない。 意味分かる? 依存なんかできないよ。 例えば、 void ShowAtLeft(Form referredForm) のようにするだけ。
- 504 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 20:01:58 ]
- Thread thread = new Thread(ThreadTask);
thread.Start(引数); としたところ、 'System.Threading.Thread.Thread(System.Threading.ParameterizedThreadStart)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。 引数 '1': 'メソッド グループ' から 'System.Threading.ParameterizedThreadStart' に変換できません。 ってことなんですけど…。
- 505 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 20:08:38 ]
- ThreadTaskの方が引数受け取る気無いとか言わないだろうな
- 506 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 20:12:22 ]
- private void ThreadTask(string 引数){}
としてます。
- 507 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 20:16:39 ]
- ParameterizedThreadStartの引数の型に合わせんとダメ
- 508 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 20:29:12 ]
- private void ThreadTask(object 引数){}
ってことですか? それだと、 引数 '1': 'object' から 'string' に変換できません。 なんですが、objectからstringに変換すればオーケーなんですか。 どうやるんだろ。
- 509 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 21:06:32 ]
- いらいら
- 510 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 21:10:08 ]
- お前には無理だからあきらめろ。
- 511 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 21:19:00 ]
- VC# 2008ならこれでいいよ。
new Thread(() => ThreadTask(実引数));
- 512 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 00:20:08 ]
- できました。感謝です。
- 513 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 00:22:56 ]
- どういたしまして
- 514 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 00:24:48 ]
- こちらこそ
- 515 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 01:32:50 ]
- スレッドでファイルをカウントして、
現在の状況をtextboxに表示しようとしています。 int i; foreach(string file in files) { textBox.text = file + i; i++; } これで「InvalidOperationExceptionはハンドルされませんでした。 有効ではないスレッド間の操作: コントロールが作成されたスレッド以外のスレッドからコントロール 'textBox' がアクセスされました。」とエラー。 textBoxのプロパティをGUIでModifiers Publicにしても おなじエラーなんですけど、 コントロールを作成したスレッドをPublicにするのは、 GUIの設定だけじゃだめなんですか?
- 516 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 01:33:52 ]
- Invoke 使え。
- 517 名前:デフォルトの名無しさん [2009/10/04(日) 09:27:56 ]
- 過去に同様の質問を見たことがありますが…
レンタルサーバーからインストールできるよう自作アプリケーションをアップしましたが、 .NET Framework の インストールに30分程度の時間が要してしまいます。 (1) インストールするコンポーネント: ・Windowsインストーラー3.1 ・.NET Framework Client Profile の2つにしています。 (2) クライアント専用Frameworkサブセットにチェックを入れています。 .Net Frameworkが入っていないXPなどのPCからインストールをしようとすると、 30分程度の時間を要してしまいます。 早くするためのテクニックはないでしょうか。 CDなどのメディアで配布したほうが良いのでしょうか。 教えてください。よろしくお願いします。
- 518 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 10:24:50 ]
- PictureBoxの画像をマウスドラッグで移動させてるのですがおかしな現象に悩んでます
シングルスレッドで移動させているときはマウスのピクセル移動量と画像の移動量が一致します しかし、マルチスレッドで移動させるとマウスのスピードに指数比例してすごい勢いで画像が流れます 親スレッドでMouseMoveイベントごとに現在位置のグローバル変数を移動 スレッド呼び出し グローバル変数に従って画面を書き換え こんな流れになっていてスレッド呼び出しされた側ではグローバル変数を参照しているだけで 位置情報を書き換える処理はしていないです スレッドが呼ばれている間の位置移動とか特に意識していません まあ絶対どっかでミスしてんですが、思い当たる原因のヒントでもいただけたらと・・・
- 519 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 10:26:02 ]
- Client Profile 使ってなくて想像で悪いけど、
.NET Framework 3.5 Client Profile の数々の仕様って修正されてる? その中の ・XP sp2以上でないと、結局3.5sp1をフルインストールされる ・他のバージョンの.Netがあると、結局3.5sp1をフルインストールされる のどっちかという話はないか? 他にも ・インストールしたXPは、これをアンインストールしないとVistaにアップグレードできない ・インストールしたPCには、古いバージョンの.Netをインストールできない ・インストールされていない Oracle データ プロバイダが使用可能であると表示される とかリリースノートで豪快に仕様扱いなんだなぁ。すげーぜ、さすがはアメリカンw
- 520 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 10:26:34 ]
- デバッグしろよ
- 521 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 11:12:27 ]
- クライアントプロファイルは正直使いもんにならん。
- 522 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 11:16:24 ]
- >>518
スレッドの呼び出し?だけ消したら正常になるの? 一体そのスレッドで何やってんだ? あとスレッドの呼び出し?って何時やってんの? まさかマウスが動く度じゃないよね? スレッド側の処理は一瞬で終わるもの?それともしばらく動き続けるもの?
- 523 名前:デフォルトの名無しさん [2009/10/04(日) 11:26:24 ]
- BindingSource bs = new BindingSource();
private void button1_Click(object sender, EventArgs e) { List<testclass> testlist = new List<testclass>(); testlist.Add(new testclass { A = "A1", B = "B1" }); testlist.Add(new testclass { A = "A2", B = "B2" }); bs.DataSource = testlist; dataGridView1.DataSource = bs; bindingSource1.DataSource = testlist; ←ここに違うList<>をセットするだけでDataGridViewの中身を切り替えたい //dataGridView2.DataSource = bindingSource1; ←ここはデザイン時にセットしてある } class testclass { public string A { get; set; } public string B { get; set; } } 上記のdataGridView1は期待通り表示されるのですが dataGridView2は何も表示されません。 dataGridView2のようにデザイン時にDataGridViewのDataSourceにBindingSourceを 指定した場合はBindingSourceのDataSourceをセット(切り替える)した後に 何かしなければならないんでしょうか?
- 524 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 11:40:13 ]
- >>523に追加
以下のdataGridView1と同じ動作をdataGridView2にさせたいのですが・・ BindingSource bs = new BindingSource(); List<testclass> testlist = new List<testclass>(); List<testclass> testlist2 = new List<testclass>(); private void button1_Click(object sender, EventArgs e) { bs.DataSource = testlist; dataGridView1.DataSource = bs; bindingSource1.DataSource = testlist; //dataGridView2.DataSource = bindingSource1; } private void button2_Click(object sender, EventArgs e) { bs.DataSource = testlist2; dataGridView1.DataSource = bs; bindingSource1.DataSource = testlist2; } private void Form1_Load(object sender, EventArgs e) { testlist.Add(new testclass { A = "A1", B = "B1" }); testlist.Add(new testclass { A = "A2", B = "B2" }); testlist2.Add(new testclass { A = "a1", B = "d1" }); testlist2.Add(new testclass { A = "a2", B = "d2" }); } 以下略
- 525 名前:デフォルトの名無しさん [2009/10/04(日) 12:12:45 ]
- >>519
ありがとうございます。 .NET3.5sp1を入れてはいますが、結局使用はしていません。 .NET3.5のみを配布したら早くなるでしょうか…。
- 526 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 12:14:50 ]
- >>522
今は暫定的にマウスが動くたびになってます 最終的には移動量が一定量を超えたとき呼び出すつもりです そのスレッドでは移動量をグローバル変数から取得してそれに応じた小さなファイルを読み込んでメインスレッドのInvcke呼び出し メインスレッドのハンドラでダブルバッファに書き込んで、移動分だけ画像をシフトしてます
- 527 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 12:18:29 ]
- 自分のアプリでクラスライブラリ(.dll)作って一緒に配布すると
そのライブラリを別のアプリケーションで勝手に使っちゃえると思うんだけど それを防ぐ方法はないのかな?
- 528 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 12:20:36 ]
- >>527
ない。
- 529 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 12:21:41 ]
- >>527
ロード元のアセンブリをチェックすればいいだけだろう
- 530 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 13:01:15 ]
- >>529
そうか、そうですよね。 調べます。
- 531 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 14:17:34 ]
- >>529
の方法を簡単に説明してくれ
- 532 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 14:19:44 ]
- アプリ中のオブジェクトを(型指定して)列挙するにはどうしたいいんでしょうか?
- 533 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 14:35:27 ]
- >>532
なんでそんなことしたいんだ?
- 534 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 17:55:02 ]
- >>532
さては他人の作ったソフトウェアのメソッド叩きたいとか考えてるな! やめとけw
- 535 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 18:12:38 ]
- 恐ろしいことを平気でやってのけてこそ初心者!
- 536 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 19:05:37 ]
- 設定ファイルを読み込むのはメインのFormのコンストラクタ内でするのか、
Loadイベントのハンドラで行うのかどちらがいいのでしょう。
- 537 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 19:06:28 ]
- C++でCLRのアンマネージインターフェイスを叩く必要があった気がする
- 538 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 19:10:33 ]
- >>536
内容による。
- 539 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 19:10:46 ]
- >>532
リフレクションでやってみれば?
- 540 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 19:11:38 ]
- バグを見つけて臍をかむのがオチなんだよなぁ。
マニュアルの System.Reflection 名前空間見るとか、「リフレクション C#」ググるとか。 単に見たいだけなら一番簡単なのは、VSで参照してオブジェクトブラウザで覗く。
- 541 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 19:19:48 ]
- >>538
ウィンドウのレイアウトから、オプションダイアログで設定するようなものまであります。
- 542 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 19:24:04 ]
- リフレクションではオブジェクトそのものは見られないよ
MSがソース公開してるCLRプロファイラやWPFプロファイラは部分的にC++使ってた
- 543 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 19:27:32 ]
- >>541
Formに関する設定ならばLoadだろうね。 逆にコンストラクタできちんと動く?
- 544 名前:デフォルトの名無しさん [2009/10/04(日) 19:47:32 ]
- >>525氏の話だけど、
みんなは配布用アプリを作る時は、インストールに時間がかからないようにどのような工夫をしているの?
- 545 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 19:48:16 ]
- >>543
現状は問題なくできるのですが、、何か陥りやすい問題とかあるんでしょうか。 コンストラクタのInitializeComponentの後にファイルを読み込んでいます。
|

|