1 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 14:57:21 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part43 pc12.2ch.net/test/read.cgi/tech/1248573707/
652 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 01:58:11 ] .netってスタティックリンクライブラリって使えないの? DLLは作れるみたいだけどLibファイルのようなものは作れないのかな
653 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 02:00:44 ] 必要ないだろ
654 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 02:05:08 ] 作れるよ
655 名前:デフォルトの名無しさん [2009/09/10(木) 06:30:54 ] >>648 どんなメソッドを使えばできますか?
656 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 07:33:35 ] Graphics.CopyFromScreen
657 名前:デフォルトの名無しさん [2009/09/10(木) 12:06:35 ] 重大ニュース スレは★30までいく 【国際】 中国 「IT製品、ソースコード開示せよ」…日本側が撤回求めるも、予定通り実施へ★4 tsushima.2ch.net/test/read.cgi/newsplus/1252535413/ 「ソースコード開示せよ」…中国が外国企業に要求 pc11.2ch.net/test/read.cgi/prog/1221835452 23 :名無しさん@十周年:2009/09/10(木) 02:28:25 ID:UeD78g5r0 李鵬が言ってた、20年後に日本なんてなくなるって、こういう事か。 40 :名無しさん@十周年:2009/09/10(木) 02:35:03 ID:BKKfZepB0 トヨタがプリウスで儲けれるのも来年までなんだね。 鳩山幸さんはサイエントロジーというカルトと関係があるという噂があります。 an ★tikimchi.see★saa.net/art★icle/127578850.html ↑ 日本アンチキムチ団 鳩山幸さんの旧姓が不明だそうですよ。 764 名前:可愛い奥様[] 投稿日:2009/09/06(日) 01:04:07 ID:/WrcABwtO 北海道苫小牧在住の者ですが、老人ホームで暮らす朝鮮人のお婆ちゃんから聞いた話です。 幸夫人のごお父様は中国人ではなく、キム・ジョンウォン(漢字不明)という朝鮮北部出身の貿易商だったようです。 戦後は日本に渡り、幸さんが渡米するまでは神戸の商社に勤めていたようです。 キムさんは幸さんが渡米した直後、北海道室蘭に引っ越し、貿易商を営みながら総連支部の設立に尽力されたと話しておりました。 中国語・英語・ロシア語がお上手だったようですね。 【ファーストレディー】鳩山幸をウォッチするスレ 2 hideyoshi.2ch.net/test/read.cgi/ms/1252279762/
658 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 14:33:30 ] >>652 ILMerge を使えば、複数のアセンブリを一つにできる。
659 名前:デフォルトの名無しさん [2009/09/10(木) 15:20:01 ] DataRowの各項目はキャストしないとobject型のようなんですが、 if (rowA["HOO"] == rowB["HOO"]) みたいな比較は、右辺左辺両方が同じ型?(stringとかint)であることが事前に分かって いれば、キャストせずに比較しても正しい比較結果が得られますでしょうか?
660 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 15:23:42 ] 得られません。常に参照比較になってしまいます。 Object型のままで値を正しく比較したければEqualsメソッドを使います。
661 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 20:50:57 ] プロセスの終了について質問があります。 写真をまとめてみたいと思って、 string[] files = Directory.GetFiles(@"c:\photo", "*.jpg"); foreach(string file in files) { photoProcess = new Process(); photoProcess.StartInfo.FileName = file; photoProcess.Start(); } Thread.Sleep(1*60*1000); if (! photoProcess.CloseMainWindow()) {photoProcess.Kill();}photoProcess.Close();photoProcess.Dispose(); とやって見たところ、開いて1分待つところまではよいのですが、最後に閉じるのが1枚だけで、あとのウィンドウは開いたままになってしまいます。 こういう場合は、どうやればぜんぶのウィンドウを一括してクローズできるか、ご教示いただけないでしょうか。
662 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 20:51:47 ] >>652 csc.exe /target:module ちなみに Q. Visual Studio 開発環境でこのコンパイラ オプションを設定するには A. Visual Studio 開発環境では、モジュールの作成はサポートされていません。
663 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 20:54:39 ] >>661 各Processオブジェクトを配列にでも突っ込んで、 終わるときはそれらを順にCloseMainWindowしてけばいい >>662 moduleもダイナミックリンクだぜ
664 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 20:55:39 ] >>661 関連づけされてるアプリ次第。別々にプロセスが立ち上がるなら、 ここのプロセスをそれぞれ閉じるしかないよ。
665 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 21:06:46 ] 終了もforeachすればいいのかなとは漠然と思うのですが、この方法でcloseするにはそれぞれのプロセス名を知る必要があって、それを取得する方法がわからずにおります。 >>663 オブジェクトを配列につっこむ方法を教えてください。 >>664 プロセスを取得してってこと? プロセス名だと、ファイル名まではわからないんじゃなかったでしたっけ? ペイントだと、mspaint.exeとか?
666 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 21:10:00 ] >>665 違う。アプリによっては、ひとつのプロセスで複数のウィンドウを開く形になる。 たとえば、デフォルト状態の Explorer とかね。 その場合、最後とのプロセスを殺せば、勝手にまとめて死んでくれるってわけ。 #「ここのプロセス」は「個々のプロセス」ね。
667 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 23:13:46 ] >終了もforeachすればいいのかなとは漠然と思うのですが、この方法でcloseするにはそれぞれのプロセス名を知る必要があって、それを取得する方法がわからずにおります。 なんためにphotoProcess変数を使ってるんだ? 同じことを配列(まあListとかのがいいけど)に入れる形でやればいいだけだろ?
668 名前:デフォルトの名無しさん [2009/09/10(木) 23:14:57 ] >>656 これは画面キャプチャだね。 これで取得したオブジェクトを拡大させるってこと? やはり難しそうだなぁ。
669 名前:デフォルトの名無しさん [2009/09/10(木) 23:48:01 ] 仮想リストビューに1000件くらいのアイテムを表示して 一件ずつループ処理でsubitemを書き換えてリストビューのRefreshメソッドを実行するのですが 書き換えた内容が描画されない 表示するアイテムリストとアイテムはそれぞれ専用のクラスを作って管理してて、 書き換え後にアイテムのクラスを見るときちんとデータが入ってる どんな原因が考えられる?
670 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 23:52:09 ] ListView.RetrieveVirtualItemはちゃんと発生してますか?
671 名前:669 mailto:sage [2009/09/10(木) 23:56:05 ] >>670 発生しておりまする リストビューが表示されたときにはCSVから読込まれたデータが 表示されてる状態
672 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 00:13:36 ] 微妙に671の回答がずれてる気がしないでもない Refreshしたときに、RetrieveVirtualItemがちゃんと表示領域分発生してるんだね?
673 名前:669 mailto:sage [2009/09/11(金) 00:22:03 ] ステップインで確認したらちゃんと発生してますよ てか、RefreshでRetrieveVirtualItemが発生しないことってあるのん?
674 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 00:34:28 ] 確認だよ確認 質問者の画面は見れないんだから で、RetrieveVirtualItemで生成するListViewItemにはちゃんと変更後のデータ入れてる?
675 名前:669 mailto:sage [2009/09/11(金) 00:41:30 ] 入ってますよ
676 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 00:43:39 ] ちなみにBeginUpdateとEndUpdate使っても駄目そうですか?
677 名前:669 mailto:sage [2009/09/11(金) 00:56:49 ] だめでした やろうとしてる編集を最初からCSVにしておくと 読み込むときにきちんと描画される 只単にアイテムを編集しただけでRetrieveVirtualItemでやってることは 最初に読込むときと全く同じなんだけどな なんか足りないのか
678 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 01:07:45 ] >>667 できました。ありがとうございます。
679 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 01:08:24 ] コード見ないと分からんね
680 名前:669 mailto:sage [2009/09/11(金) 01:14:53 ] private void listView1_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e) { if (0 <= e.ItemIndex && e.ItemIndex < ItemList.Count) { e.Item = ItemList.Items[e.ItemIndex]; } } private void button1_Click(object sender, EventArgs e) { foreach (Item item in ItemList.Items) { item.SetResult("○"); listView1.Refresh(); } } コードこんだけ
681 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 01:29:03 ] listView1.Refresh();をループから出す
682 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 01:36:07 ] 起きてる人ー みんなでH-IIBロケットの打ち上げを見守ろう! 2時ごろ打ち上げだよ! www.jaxa.jp/countdown/h2bf1/live/h2bf1_300k_j.asx
683 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 02:47:38 ] 板違い。 まぁ、俺も別のとこで打ち上げ見てたけどね。
684 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 08:18:35 ] .asxとか死ねよと
685 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 09:43:30 ] 設定ファイルを作ってそこから設定を読み込もうとしています 設定ファイルはこんな感じです #setting.txt #aの値を書き込んでください a=1 #bの値を書き込んでください b=hoge #cの値を書き込んでください c=hoge hoge #(#以外でも構いません)で始まる行はスキップ、それ以外の行は=の右辺を取得して変数に代入 このような場合はどうすればいいのでしょうか
686 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 09:51:04 ] string line; に対して、 line[0] == '#' line.Split('=')[1] か、正規表現使うか。
687 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 09:52:57 ] >>685 iniファイルを連想した。 あれのコメントは;だったが。 もし、iniファイルで…ということならWin32APIを呼び出せばOK
688 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 09:58:29 ] フォーマット変えていいならXMLを使うことを強くお勧めする XmlSerializerとか使えば一瞬でできる
689 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 10:23:27 ] >>680 Item型は?
690 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 10:38:53 ] >>686-688 アドバイスを参考に調べてみます ありがとうございました
691 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 11:35:54 ] 【国際】 中国 「IT製品、ソースコード開示せよ。情報漏洩はないから」…日本側が撤回求めるも、予定通り実施へ★5 ttp://tsushima.2ch.net/test/read.cgi/newsplus/1252552869/
692 名前:669 [2009/09/11(金) 12:50:04 ] Itemクラス class Item : ListViewItem { string _columns[] = new string[3]; public Item(string[] columns) { _columns = columns } public Column0 { get { return _columns[0]; } } public Column1 { get { return _columns[1]; } } public Column2 { get { return _columns[2]; } } } 今職場だから思い出して適当に書いてみたけどこんな感じ 何の変哲もない保持用クラス
693 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 14:13:14 ] SetResultメソッドとやらでSubItems[n].Textに転写してる?
694 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 14:35:54 ] 肝心な部分が書いてないっていうね
695 名前:685 mailto:sage [2009/09/11(金) 17:51:22 ] 頭こんがらがってきた;; class Program { //第一引数にファイルパス、第二引数にオプション名を入力 static void Main(string[] args) { string line = "", option_value = ""; using (StreamReader sr = new StreamReader(args[0], Encoding.GetEncoding("Shift_JIS"))) { do { line = sr.ReadToEnd(); if (line.Split('=', '\n')[0] == args[1]) { option_value = line.Split('=', '\n')[1]; break; } } while (line != ""); } Console.Write(option_value); } } 行頭#スキップがどうすればいいのわかりません…
696 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 17:56:15 ] そんなもんif(line[0]=='#')continue;でいいだろ
697 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 18:01:42 ] 素直にGetPrivateProfileStringとかInt使ってくれない? 面倒くさいからさ。
698 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 18:05:43 ] よく見ると色々おかしい気がする
699 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 18:09:59 ] #以前に滅茶苦茶すぎる
700 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 18:16:47 ] File.ReadAllLinesの方が良くねえ? ファイルを行ごとに取り扱うのにReadToEndで読む必要性が分からん。 string optionValue = ""; string[] lines = null; try { lines = File.ReadAllLines(args[0], Encoding.GetEncoding("Shift_JIS")) }catch{ lines = new string[0]; } foreach (string line in lines) { // 空行と先頭'#'のスキップ if ((line == String.Empty) || (line[0] == '#')) { continue; } //行をトークン分解 string[] toks = line.Split('='); if ((toks.Length == 2) && (toks[0] == args[1])) { optionValue = toks[1]; break; } } Console.Write(optionValue);
701 名前:685 mailto:sage [2009/09/11(金) 19:09:59 ] ごめんなさい… あっちこっちのをペタペタ貼ってたらひどいことに… >>696 >if(line[0]=='#')continue; 文字列からそうやって一文字抜きだせるんですね 「なんで配列?」ってよくわかってませんでした ありがとうございます >>697 >GetPrivateProfileString こういうのもあるんですね 調べてみます >>698-699 もうしわけありません… >>700 >ReadToEnd ReadLineにしてたつもりが、いつのまにか入れ替わってましたorz わざわざありがとうございます これ見てもうちょっと勉強してから出直してきます
702 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 19:21:44 ] >>701 var setting = File.ReadAllLines("setting.txt") .Where(s => s[0] != '#') .Select(s => s.Split('=')) .ToDictionary(ar => ar.First(), ar => ar.Last()); でも、設定保存ならXmlSerializerのほうがいいよ。
703 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 19:25:38 ] XmlSerializerだと人手で読み書きするのが面倒臭いじゃん だから未だにiniの需要が一定量あるんだろう
704 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 19:29:38 ] 何にせよ自作は時間の無駄 #を値の中で使いたいときとかどうするんだ 人間にとっての読み書きのしやすさを重視するならiniでもいいし, 属性形式のXMLを使うという手もある(XmlSerializerで可能)
705 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 19:33:17 ] キーはユーザが決めるモンじゃないから別に値の中で使っても良いんじゃないかな
706 名前:704 mailto:sage [2009/09/11(金) 19:33:24 ] すまん行単位か
707 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 19:38:32 ] 作ってみたいだけかもしんないし、あんまとやかく言うのも野暮。
708 名前:685 mailto:sage [2009/09/11(金) 19:47:42 ] たくさんのご意見ありがとうございます いろいろ調べてみましたが、>>700 さんのがやりたいことに一番近い(ような気がします) 他の方々の意見もとても勉強になりました 基本からもう一度やりなおすことにしますorz
709 名前:669 [2009/09/11(金) 20:23:33 ] >>693 何回もレスして貰って申し訳ないけど、最初に言ったとおり RetrieveVirtualItemで書き換えられたItemがe.Itemにセットされてるところまで 確認してるんですよ e.Itemにちゃんと書き換えられたItemがセットされてるにのListViewの表示が更新されないので 嵌ってるわけですよ
710 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 20:27:54 ] ごちゃごちゃうるせえ SetResultのコード出せよ って言ってるんですよ
711 名前:669 mailto:sage [2009/09/11(金) 20:57:38 ] public void SetResult(string s) { _column[3] = s; } 少し感じ悪いレスしてしまって申し訳ないと思ってるが ↑を見てなにかわかるとは思えないっす 例えば private void listView1_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e) { if (0 <= e.ItemIndex && e.ItemIndex < ItemList.Count) { e.Item = new Item(ItemList.Items[e.ItemIndex]).Columns; } } としてやれば、リストに表示されるアイテムが毎回動的に生成されるわけだから 表示も当たり前に更新される訳だが、VirtualModeのお作法として正しいのだろうか VirtualModeのDocumentが少なすぎて仕様がわからん・・・
712 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 21:06:11 ] なんでコード出てくるたびに仕様が変わってんだ ItemクラスのColumnsプロパティって何だよそんなの前回はなかったじゃねぇか とにかくSetResultでSubItems[3].Textにもsを設定しろ
713 名前:669 mailto:sage [2009/09/11(金) 21:16:56 ] 例えばって言ってるじゃん だいたい何でstring同士で出したり入れたりしてんのに Textプロパティなんていうめんどくさいものつくらにゃならんの? わざわざSetResultメソッドの為だけにTextプロパティ作るの? きちんと代入できてるって言ってるのにそこにこだわる理由はなに?
714 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 21:20:41 ] 何だこいつ 質問してる身なのに偉そうだな
715 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 21:24:50 ] なんで例えるんだよ ItemはListViewItemを継承している RetrieveVirtualItemではItemのインスタンスを返している Itemはフィールドにstring[]を保持している ここまでは合ってるよな? ListViewがView.Detailsのときに各カラムに表示できるのは ListViewItemのSubItemsに格納されているListViewSubItemのTextプロパティだけ Itemがフィールドに何持ってようが関係ない プロパティ作れなんて誰も言ってない
716 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 21:27:48 ] 昨日から思ってたけど>>669 の態度酷すぎだろ。 あとね、documentのせいではなく、自分の能力のせいだと思われ。 この程度の事も分からないとは。
717 名前:669 mailto:sage [2009/09/11(金) 21:36:34 ] 理解した。申し訳ありませんでした。
718 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 22:52:50 ] なんで 自分のやり方でうまくいってないから質問したのに しかも正しい回答されてるのに逆切れするとか 理解の範疇を超えてる。
719 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 04:56:50 ] Visual Studio 2008 で C# を使い始めたんですが ListboxやPanelなどをウィンドウのリサイズに合わせて適宜変更(最大化)するには プロパティのどの項目を設定すれば良いのでしょうか?
720 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 05:34:33 ] AchorとかDockプロパティでググレ
721 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 05:48:48 ] >>720 ありがとうございます。できました。
722 名前:デフォルトの名無しさん [2009/09/12(土) 15:35:30 ] 物件検索ファームを作成しました。 テキストボックスに例えば「2CH」と入力すると、 そのテキストボックスの右隣に、 「2CHハイツ」 「2CHマンション」 「メゾン2CH」 と検索に合致する物件をリスト表示させたいと思っています。 その際、 テキストチェンジイベントでパネルを表示させることができたらと思いましたが、 1.パネルを表示させたい箇所に別のパネルがあるので埋もれてしまう。 Z順序が生きてしまい、欠けてしまう。 2.パネルではなくフォームでやろうとすると、どちらかのフォームしかアクティブにならないので、使用が困難。 という状態にあります。 どのようにすればよいのでしょうか。
723 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 16:01:56 ] >>722 オートコンプリートなら? www.atmarkit.co.jp/fdotnet/dotnettips/423autocompsource/autocompsource.html
724 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 16:10:06 ] >>722 言ってる意味がよく分からないけど、Zオーダで別のコントロールの背後に隠れるなら 問題だというのなら、最前面に持ってくれば済むことに思うんだが・・・ >>723 オートコンプリートと>>722 の言ってることは違うと思う
725 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 16:57:38 ] インクリメンタルサーチだろ
726 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 17:29:45 ] 部分一致のことを「インクリメンタルサーチ」と呼ぶのか一般的に?
727 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 17:36:53 ] >テキストチェンジイベントでパネルを表示させることができたら こう言ってるから多分インクリメンタルサーチで合ってんじゃね。 単なる部分一致なら検索ボタンどうのこうのとか言い出すと思う。
728 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 17:40:23 ] (若干意味不明ではあるが)たった数行の質問なんだからちゃんと読んでやれよまったく。 そうやって下らん反論をしてる間に読めるんじゃないの?
729 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 17:44:20 ] フヒヒwwwすみませんwww
730 名前:デフォルトの名無しさん [2009/09/12(土) 18:11:37 ] 質問だがフォームに2枚のパネルを置く。 1枚はDockをLeft、 もう1枚はDockをFILLにする。 で、さらに1枚のパネルを、上記2枚にまたがる位置に置くとする。 こいつは、普段は見えないが、あるケースのときだけ前面に出したい。 これは可能? 通常は上記2枚のパネルのいずれかの配下に置かれるので、表示されても一部が欠けるはずだ。
731 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 18:29:55 ] >>730 質問だがって何だよ。 >>722 と同じ人物だろお前さん。 まあ別にいいけど。 君はコンテナって概念がよく分かってないんだね多分。 そんなの第三のパネルを別のパネルの子コントロールにしなきゃいいだけ。
732 名前:デフォルトの名無しさん [2009/09/12(土) 20:01:10 ] >>731 どの子にも属さないようにできるんだっけ。
733 名前:Indropilly mailto:sage [2009/09/12(土) 20:12:51 ] 登録選手 Kameni Cristian Alvarez Chica Pillud Roncaglia Forlin Young David Garcia Moises Hurtado Ivan de la Pena Joan Verdu Luis Garcia Javi Marquez Corominas Ivan Alonso Marques Raul Tamudo Alley Ben Sahar Nakamura.
734 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 20:13:02 ] (フォーム以外の)どの「親」(コンテナ)にも、ね。 デザイナを使ってそういう状態、つまりパネルAの上にパネルBが「重なった」 (BはAにcontainされてない)状態を作りたいなら、BのZオーダーをまず最前面にしておいてから、 マウスではなくカーソルキーで移動させるか、プロパティグリッドで座標を直接指定すればいい。
735 名前:デフォルトの名無しさん [2009/09/12(土) 21:54:34 ] >>734 なるほどー!
736 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 05:48:23 ] ドキュメントアウトライン使ったら一番楽だと思う。
737 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 06:10:06 ] すみません、質問なんですが・・・ XnaGameStudioの3.1をインストールして、C#でプログラミングをしようと思ったら、 それまでの(インスト前のXnaGameStudio3.0)で開けた.csprojファイルが開けなくなってしまいました。 自分なりに調べて、VC#やXnaを再インストしたりとかしたんですけど、 Xnaで作ったプロジェクトだけを開けない状態になっているようなんです。 ちょっと一人では直せそうに無いので、対処方法を教えてもらえませんか?
738 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 06:18:50 ] その csproj をテキストエディタで開いて ProjectTypeGuids だか なんだかを編集すればいいだろたぶん 値は 3.1 の対象プロジェクト新規作成して調べれ
739 名前:737 mailto:sage [2009/09/13(日) 07:35:03 ] >>738 プロジェクトを新規作成しようとしても、OK押した後にcsprojを開けず、 「そのプロジェクトの種類はこのインストールでサポートされていません」 と出てしまいます。 最初に書いてませんでした。すみません。
740 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 07:41:36 ] >>739 テキストエディタで開いて って言ってんだろ
741 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 07:44:12 ] >>739 >「そのプロジェクトの種類はこのインストールでサポートされていません」 謎だなぁ まっさらに戻さないといけないかもねー
742 名前:737 mailto:sage [2009/09/13(日) 08:00:07 ] >>740 すみません。また言葉足らずでした。 開けない既存プロジェクトの.csprojをテキストで開くのはいいんですが、 3.1の対象プロジェクトを新規作成しても、そのプロジェクトも開けない状態なので、 開けないプロジェクトを参考にして値を変更するのはどうなのかなと思いまして・・・ >>741 やっぱ最終的にはそうしないとダメっぽいですかね・・・ なぜかXnaを通してないcsprojファイルは開けるんですが。
743 名前:737 mailto:sage [2009/09/13(日) 08:01:48 ] 'schemas.microsoft.com/developer/msbuild/2003 ' の 'PropertyGroup' には無効な子要素 名前空間 'schemas.microsoft.com/developer/msbuild/2003 ' の 'XnaFrameworkVersion' が含まれています。 必要とされる要素は 名前空間 'schemas.microsoft.com/developer/msbuild/2003 ' の 'Property' です。 'schemas.microsoft.com/developer/msbuild/2003 ' の 'PropertyGroup' には無効な子要素 名前空間 'schemas.microsoft.com/developer/msbuild/2003 ' の 'XnaCompressContent' が含まれています。 必要とされる要素は 名前空間 'schemas.microsoft.com/developer/msbuild/2003 ' の 'Property' です。 'schemas.microsoft.com/developer/msbuild/2003 ' の 'PropertyGroup' には無効な子要素 名前空間 'schemas.microsoft.com/developer/msbuild/2003 ' の 'XnaCompressContent' が含まれています。 必要とされる要素は 名前空間 'schemas.microsoft.com/developer/msbuild/2003 ' の 'Property' です。 'schemas.microsoft.com/developer/msbuild/2003 ' の 'ItemGroup' には無効な子要素 名前空間 'schemas.microsoft.com/developer/msbuild/2003 ' の 'NestedContentProject' が含まれています。 必要とされる要素は 名前空間 'schemas.microsoft.com/developer/msbuild/2003 ' の 'Item' です。 'schemas.microsoft.com/developer/msbuild/2003 ' の 'ItemGroup' には無効な子要素 名前空間 'schemas.microsoft.com/developer/msbuild/2003 ' の 'BootstrapperPackage' が含まれています。 必要とされる要素は 名前空間 'schemas.microsoft.com/developer/msbuild/2003 ' の 'Item' です。 .csproj内での↑の部分が警告されていて、この部分のせいで開けないんですかね?
744 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 08:02:52 ] これXNA認識されてなくねw?
745 名前:737 mailto:sage [2009/09/13(日) 08:23:29 ] >>744 まじですか・・・ Xnaもサイト手順に沿ってインストしたつもりだったんですが・・・orz
746 名前:デフォルトの名無しさん [2009/09/13(日) 13:30:07 ] 本スレで質問したのですが、ふらっとへ誘導されましたのでおたずねします 基本的な型を宣言したアセンブリAに クラスa1 があります。 a1にはpublicなメソッドa1do()があります。 コントロールを継承したアセンブリBに クラスb1 があり クラスb1は参照設定をAに設定し、a1をインスタンスとした変数b1a1をpublicで宣言しています コントロールを配置したアセンブリCのクラスc1でアセンブリBを参照設定し クラスb1をmyb1として変数宣言して、インスタンスを代入しています myb1.b1a1.a1do(); をc1から呼び出すときアセンブリAへの参照設定が必要というエラーがでます 参照を設定すれば問題なく動きます 参照を設定しない場合、アセンブリBにアセンブリAの内容を含めてしまえば問題はないと思うのですが それをせず、参照設定もせずに上記の呼び出しを行う方法はありませんか? アセンブリA アセンブリBは将来他プロジェクトで使う予定もあり、参照の設定をシンプルにしたいのです。 特にアプリケーションCからはクラスb1しか宣言してないのでAに参照設定が必要というのがわかりにくいのですが そういう場合の解決方法を教えてください よろしくお願いします
747 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 13:42:22 ] Aの存在を一切アセンブリBの外に見せないようにする。 全ての操作がBに定義されたクラスだけで完結するようにAをラップしてしまう。 参照設定がうざいとかそういうレベルにとどまらず, そのほうが設計的に利用者にとって分かりやすくなる。
748 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 13:44:13 ] >>746 System.Reflection.Assembly.LoadFileで対象のアセンブリを動的にロードした後、 Assembly.CreateInstanceでインスタンスを作成する。 というか他のプロジェクトで参照の設定をさせたほうが圧倒的にメンテナンスコストが低いと思う。
749 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 13:47:28 ] ここでリフレクションとかないわ・・・
750 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 13:47:55 ] >>748 そういうことするんだったらBのほうを動的にロードするべきだと思うよ Aにはインターフェイスだけ宣言しといて,Bをプラグインみたいな扱いにする
751 名前:デフォルトの名無しさん [2009/09/13(日) 14:03:09 ] >>747 わかります。基本的にaはprivateで宣言して変数はプロパティ、メソッドはメソッドで隠蔽すべきですよね。 ただ、bのバリエーションが非情に増えそうな予感がしたので本来なら多重継承させたい状況なのです。 そうでないなら、publicでそのまま使わせた方が楽かと・・・ ご意見ありがとうございました。 >>748 >他のプロジェクトで参照の設定をさせたほうが圧倒的にメンテナンスコストが低い そうですか。あまりへんてこなことでもないんですね・・・・ありがとうございました。 リフレクションについてもう少し勉強してみます。 >>750 なるほど、ただ、Aに含まれるのはベーシックな数値計算などですから インターフェイス化しても同じ計算をあちこちで書くことになりそうです。 ただ、AとBの関係をCからは同列にしてBをプラグインみたいにする考え方もありますね。 非情に参考になりました。ありがとうございました。 やはり参照設定をして、Aをそのまま使っていくのがバージョンの変更などにも対処しやすく メンテナンスコストもよさそうなので、そうしたいと思います。 しかし、いろいろな方法をご提案いただいて非情に勉強になりました。 ありがとうございました。
752 名前:748 mailto:sage [2009/09/13(日) 14:03:12 ] 参照設定しないで別のアセンブリを使いたいっていうだけの話だと早とちりしてた。 >>747 で十分だね。申し訳ない。