C#, C♯, C#相談室 Part55
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/10/14(水) 23:23:45前スレ
C#, C♯, C#相談室 Part54
http://pc12.2ch.net/test/read.cgi/tech/1250911923/
Visual C# 2008 Express Edition 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/
その他テンプレ>>2-5くらい
0002デフォルトの名無しさん
2009/10/14(水) 23:24:33ふらっとC#,C♯,C#(初心者用) Part45
http://pc12.2ch.net/test/read.cgi/tech/1253522504/
Visual Studio 2008 Part 18
http://pc12.2ch.net/test/read.cgi/tech/1251622158/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
http://pc12.2ch.net/test/read.cgi/tech/1245384489/
【VB.NET】LINQ友の会【C#, C♯, C#】
http://pc12.2ch.net/test/read.cgi/tech/1202568694/
C#,C#の宿題片付けます。
http://pc12.2ch.net/test/read.cgi/tech/1197620454/
0003デフォルトの名無しさん
2009/10/14(水) 23:24:49MSDNライブラリ
http://msdn.microsoft.com/ja-jp/library/
@IT Insider.NET
http://www.atmarkit.co.jp/fdotnet/
Insider.NET 会議室 ディレクトリ
http://www.atmarkit.co.jp/fdotnet/index/bbs/
MSDN フォーラム
http://forums.microsoft.com/MSDN-JA/default.aspx?SiteID=7
pinvoke.net: the interop wiki!
http://pinvoke.net/
宇宙仮面の C# プログラミング / C# Programming
http://ukamen.hp.infoseek.co.jp/
WisdomSoft C#入門
http://wisdom.sakura.ne.jp/programming/cs/
WisdomSoft Microsoft .NET入門
http://wisdom.sakura.ne.jp/system/msnet/
どっとねっとふぁん
http://dotnetfan.org/
緑のバイク 初めてのC# 〜 覚え書き 〜
http://homepage3.nifty.com/midori_no_bike/CS/
どぼん!の .NET Tips
http://dobon.net/vb/dotnet/
0004デフォルトの名無しさん
2009/10/14(水) 23:24:56初歩的な質問はPC初心者板で・・・
http://pc11.2ch.net/pcqa/
参考リンク(よく出てくる情報リンク)
Windows Vista Wiki
http://windowsvista.ms/index.php
Windows VistaFAQ
http://vistafaq.stdo.net/index.html
インストールから設定・活用まで〜 すべてが分かるWindows Vista大百科
http://journal.mycom.co.jp/special/2007/windowsvista/menu.html
0005デフォルトの名無しさん
2009/10/14(水) 23:32:53何か良いサンプルが載っているサイトはないでしょうか?
JavaやPHPはよくみるのですが、.net系があまりなく。。
もしご存知の方がいましたらご教授ください。
0006デフォルトの名無しさん
2009/10/15(木) 00:37:57ASP.NET + Atlas or Ajax について
http://pc12.2ch.net/test/read.cgi/tech/1150036430/
Microsoft Silverlight その4
http://pc12.2ch.net/test/read.cgi/tech/1244812356/
Visual Studio 2010
http://pc12.2ch.net/test/read.cgi/tech/1231857024/
0007デフォルトの名無しさん
2009/10/15(木) 00:54:14同期ドメインがよくわからなかったので、調べて見たんですが、
リモート処理のときだけ関係するものでしょうか
0008デフォルトの名無しさん
2009/10/15(木) 01:02:220009デフォルトの名無しさん
2009/10/15(木) 01:07:05http://msdn.microsoft.com/ja-jp/library/cxk374d9.aspx
0010デフォルトの名無しさん
2009/10/15(木) 01:40:170011デフォルトの名無しさん
2009/10/15(木) 01:46:07ContextBoundObjectの派生クラスを作って、
SynchronizationAttributeを適用した場合で、
そのオブジェクト内で同期済み実行時にWaitOneしたときに、
待機中の別のオブジェクトを待機解除するかどうか。
まあ、多分大抵は関係しないだろう。
0012デフォルトの名無しさん
2009/10/15(木) 01:51:500013デフォルトの名無しさん
2009/10/15(木) 01:58:370014デフォルトの名無しさん
2009/10/15(木) 02:40:37乙
0015デフォルトの名無しさん
2009/10/15(木) 05:30:06これを終わらせるときはthreadをほっといても大丈夫?
0016デフォルトの名無しさん
2009/10/15(木) 06:10:530017デフォルトの名無しさん
2009/10/15(木) 06:12:440018デフォルトの名無しさん
2009/10/15(木) 07:51:500019デフォルトの名無しさん
2009/10/15(木) 10:57:390020デフォルトの名無しさん
2009/10/15(木) 11:50:160021デフォルトの名無しさん
2009/10/15(木) 13:09:50その辺の解説サイトじゃAbortすら使って無いからリークしまくってるけど
0022デフォルトの名無しさん
2009/10/15(木) 17:00:12必須ってどういう事だよ。
インタラプトだって使えるし。
0023デフォルトの名無しさん
2009/10/16(金) 10:54:37所定のメソッドを実行すると例外が飛んできてそれが表示され鬱陶しくて
あと、デバッグ終了時にイミディエイトウィンドウがクリアされればいいと思うのですがそれに該当する設定が見あたりません
0024デフォルトの名無しさん
2009/10/16(金) 12:09:35それともイミディエイトウィンドウに出力をリダイレクトする設定にしてる?
どちらにしても例外が発生したら勝手に表示されるということはない。
どこかで握りつぶしてログ吐いてるんだろ。
その個所に自分で手を入れられないんだったらどうしようもない。
0025デフォルトの名無しさん
2009/10/16(金) 12:11:40握りつぶすも何もデバッグ時に例外発生したらログがここに残るでしょ
これを指定した例外のみ表示させたくないの
0026デフォルトの名無しさん
2009/10/16(金) 12:17:59Debugクラスのリスナを通さずに直接出力されてるみたいだから
VSの設定にないなら無理なんじゃないの
0027デフォルトの名無しさん
2009/10/16(金) 12:24:12いやいやイミディエイトウィンドウだって
Consol.WriteLine系は出力だけど例外はイミディエイトウィンドウ
ほんとかと思って設定初期化で試したけどやっぱりそうだったよ
特定のメソッド使うと例外飛ぶから表示したくなかったんだけどなぁ
出来ないなら仕方ないか・・・
0028デフォルトの名無しさん
2009/10/16(金) 20:12:000029デフォルトの名無しさん
2009/10/16(金) 21:03:35ボタンを押したときにメッセージボックスを出さずに鳴らしたいのですが
可能でしょうか?
0030デフォルトの名無しさん
2009/10/16(金) 21:16:29SystemSounds みたいなのない?
0031デフォルトの名無しさん
2009/10/16(金) 22:05:20おお!できました!
ありがとうございます!
0032デフォルトの名無しさん
2009/10/16(金) 23:06:20ポインタ使うので有用な処理ってどんなのがあります?
0033デフォルトの名無しさん
2009/10/16(金) 23:08:38画像処理やゲーム等,パフォーマンスを要するもの
0034デフォルトの名無しさん
2009/10/16(金) 23:08:430035デフォルトの名無しさん
2009/10/16(金) 23:13:01プログラマになるのなら必須事項ですかね?
避けて通れるなら難しいと聞くので触らないつもりなんですが・・・
0036デフォルトの名無しさん
2009/10/16(金) 23:16:170037デフォルトの名無しさん
2009/10/16(金) 23:16:490038デフォルトの名無しさん
2009/10/16(金) 23:17:00C#ではなるべく使わない方がいいし使う必要に駆られることもまずないけど知識として知っておいて損はない
0039デフォルトの名無しさん
2009/10/16(金) 23:20:280040デフォルトの名無しさん
2009/10/17(土) 08:01:50俺はSingleton,Adapter,Factoryはよく使うけどIteratorは全くと言っていいほど使わない
0041デフォルトの名無しさん
2009/10/17(土) 08:32:08Observerなんかもイベント絡みでフレームワークが使ってる。
Visitor、State、Compositeパターンあたりは意識せずとも
使ってるんじゃないかなぁ?
0042デフォルトの名無しさん
2009/10/17(土) 08:37:250043デフォルトの名無しさん
2009/10/17(土) 08:40:120044デフォルトの名無しさん
2009/10/17(土) 08:50:550045デフォルトの名無しさん
2009/10/17(土) 09:37:42それは、C#の場合言語に組み込まれてるからだって。
Javaなんてパターン覚えなきゃやってられないとか言うし。
0046デフォルトの名無しさん
2009/10/17(土) 11:41:57デザパタ知っておくと、必要になったときにライブラリに用意されているクラスを
探しやすかったり、自分で作りやすくなるから、大雑把に目的は知っておくべき。
実装方法は必要になったときに調べれば良い。
0047デフォルトの名無しさん
2009/10/17(土) 12:45:47覚えたての奴ってなぜかSingleton使いたがる・・・
0048デフォルトの名無しさん
2009/10/17(土) 12:53:38そのプロジェクトフォルダ全部をアップお願いします。
0049デフォルトの名無しさん
2009/10/17(土) 12:59:500050デフォルトの名無しさん
2009/10/17(土) 13:08:02擬似的に致命的エラーを出す方法はありませんか?
0051デフォルトの名無しさん
2009/10/17(土) 13:15:200052デフォルトの名無しさん
2009/10/17(土) 13:23:290053デフォルトの名無しさん
2009/10/17(土) 13:28:19それを言うなら「中二病の奴って〜」なんじゃないの?
君みたいのは見てるこっちが恥ずかしくなるよw
ちなみに、
>覚えたての奴ってなぜかSingleton使いたがる
そんな奴はまずいないと思うよw
あんなもの乱用のしようがないだろう。
そもそも、「覚えたて」も糞も、シングルトンなんてのは普通の知能があれば
誰でも自分で思いつくテクニックで、人に言われて覚えるものじゃない。
シングルトンの唯一の意義は、それに名前が与えられていること以上のものではないんだけどね。
0054デフォルトの名無しさん
2009/10/17(土) 13:33:200055デフォルトの名無しさん
2009/10/17(土) 13:47:480056デフォルトの名無しさん
2009/10/17(土) 15:01:48そのプロジェクトフォルダ全部をアップお願いします。
0057デフォルトの名無しさん
2009/10/17(土) 15:03:36きも
0058デフォルトの名無しさん
2009/10/17(土) 15:03:580059デフォルトの名無しさん
2009/10/17(土) 15:04:060060デフォルトの名無しさん
2009/10/17(土) 15:04:560061デフォルトの名無しさん
2009/10/17(土) 15:05:31同じような内容の文章を別スレでめ見ました
早く死んでいただけませんか?
0062デフォルトの名無しさん
2009/10/17(土) 15:06:320063デフォルトの名無しさん
2009/10/17(土) 15:06:36じゃあここに来るなよカス
0064デフォルトの名無しさん
2009/10/17(土) 17:02:53きもい
0065デフォルトの名無しさん
2009/10/17(土) 17:14:37C#にはC言語のprintfみたいにデータを編集して出力する関数とかメソッドはあるのでしょうか。
プログラミングC#第四版(オライリージャパン)を見ると、載ってない。
JAVAではVer.5あたりで導入されたが、C#ではどうなんでしょうか。
0066デフォルトの名無しさん
2009/10/17(土) 17:18:050067デフォルトの名無しさん
2009/10/17(土) 17:29:17ToStringで書式指定できるよ。
0068デフォルトの名無しさん
2009/10/17(土) 17:33:060069デフォルトの名無しさん
2009/10/17(土) 20:49:36回答ありがとうございます。
Cのprintf文は
printf("%d\t%d\n", fahr, celsius ) ;
以下のように記述できるのですね。大変参考になりました。
Console.WriteLine("{0}\t{1}" , fahr, celsius);
Console.WriteLine(fahr.ToString("D") + "\t" + celsius.ToString("D"));
Console.WriteLine(String.Format("{0}\t{1}", fahr, celsius));
回答ありがとうございました。
0070デフォルトの名無しさん
2009/10/17(土) 20:56:38もう少しちゃんと調べた方がいいぞ
0071デフォルトの名無しさん
2009/10/17(土) 21:42:320072デフォルトの名無しさん
2009/10/17(土) 21:46:390073デフォルトの名無しさん
2009/10/18(日) 00:04:090074デフォルトの名無しさん
2009/10/18(日) 04:39:120075デフォルトの名無しさん
2009/10/18(日) 08:56:54へジスバーグのバカチンが。
0076デフォルトの名無しさん
2009/10/18(日) 12:32:56TextWriter.WriteLineのオーバーロードは引数の型ごとに処理を変えたり
ボックス化やparamsの配列作成などに伴うコストを避けたりするために沢山用意されてるんだと思う。
0077デフォルトの名無しさん
2009/10/18(日) 12:52:46tabPageのTextがタブ幅よりも長くなった時に末尾に"..."と表示させたいのですがどのように実装すればよいのでしょうか?
0078デフォルトの名無しさん
2009/10/18(日) 14:46:340079デフォルトの名無しさん
2009/10/18(日) 22:49:090080デフォルトの名無しさん
2009/10/18(日) 22:51:260081デフォルトの名無しさん
2009/10/18(日) 22:53:370082デフォルトの名無しさん
2009/10/18(日) 22:59:22円形でクリック処理を分ける場合はどうすればいいのでしょう?
0083デフォルトの名無しさん
2009/10/18(日) 23:00:210084デフォルトの名無しさん
2009/10/18(日) 23:02:01円の方程式って中学数学だろw
そんな知識もないのにプログラムを書こうっての?
0085デフォルトの名無しさん
2009/10/18(日) 23:04:33でも自分で調べられないと無理だぜ。
0086デフォルトの名無しさん
2009/10/19(月) 01:48:34ってやつのことですか?
0087デフォルトの名無しさん
2009/10/19(月) 01:51:08○○つかえとかしか言わないしさ
あっちは回答者のレベルが高いからコードも提示してくれるよ
0088デフォルトの名無しさん
2009/10/19(月) 01:57:380089デフォルトの名無しさん
2009/10/19(月) 01:57:480090デフォルトの名無しさん
2009/10/19(月) 02:06:30検索廚の方がほんとウザい
0091デフォルトの名無しさん
2009/10/19(月) 03:02:330092デフォルトの名無しさん
2009/10/19(月) 08:26:510093デフォルトの名無しさん
2009/10/19(月) 09:09:550094デフォルトの名無しさん
2009/10/19(月) 09:25:020095デフォルトの名無しさん
2009/10/19(月) 10:12:21ごめんなさい、解決したので既存の方法の
CreateGraphics.FillEllipseを使って図形を表示しているのですが、
別のウィンドウが描写した図形に重なると、そこに描写してあった図形が消えてしまいます
この対策はありませんか?
0096デフォルトの名無しさん
2009/10/19(月) 10:15:180097デフォルトの名無しさん
2009/10/19(月) 10:18:31一つのメソッドに MouseEventArgs と通常の EventArgs を共存させることは不可能でしょうか?
Form1のClickイベントで、押されたマウスで分岐処理させようと思うのですが
MouseEventArgsでは無いのでe Button&MouseButtonsが使えません
0098デフォルトの名無しさん
2009/10/19(月) 10:21:35あー。。どうしてもPaintイベントを使わなくてはいけませんか?
ボタンで描写させたいのですが、どうすればいいでしょう?
0099デフォルトの名無しさん
2009/10/19(月) 11:13:23MouseClick使え
0100デフォルトの名無しさん
2009/10/19(月) 11:13:530101デフォルトの名無しさん
2009/10/19(月) 11:30:25描画手順を持ったオブジェクトをListに格納しておくとかそういう方法を使う
0102デフォルトの名無しさん
2009/10/19(月) 11:35:13俺は1000msのタイマー一つ用意して、Tickにlbl.Visible=false;書いて
表示させるときにlbl.Visible=true;Timer.Enable=true;ってしてるんだけど
もっと良い方法無いかな
0103デフォルトの名無しさん
2009/10/19(月) 11:47:42詳しく教えて貰えませんか'
0104デフォルトの名無しさん
2009/10/19(月) 13:46:45それでいいんじゃね
ライブラリ化するほど汎用性があるコントロールとも思えんし
>>103
詳しくと言うほどのこともないけど
Graphicsを引数に取るDrawメソッドを持った抽象クラスを用意
その派生として四角とか丸とかを描画するクラスを作成
んでそれらをリストとして持っておく
Paintイベントでリストの内容を列挙して順番にDrawしていく
描画追加ボタンでリストに描画クラスのオブジェクトを追加しInvalidateで再描画要求
0105デフォルトの名無しさん
2009/10/19(月) 15:13:16>>104の言ってる事が全く分からない・・・w
抽象クラス、描画するクラス作成までは分かるんだけど
リストとして持っておくって何?駄目だ・・・ググってくる
0106デフォルトの名無しさん
2009/10/19(月) 15:18:40別ウィンドウってそういう意味か。
Imageに関連付けしたBitmapに直接描けばよろしい
0107デフォルトの名無しさん
2009/10/19(月) 16:02:37出来れば具体的な方法をお願いします
0108デフォルトの名無しさん
2009/10/19(月) 16:17:07bitmap使わないと駄目ですかね'?
0109デフォルトの名無しさん
2009/10/19(月) 16:19:08こういうやつ?
ttp://dobon.net/vb/dotnet/datagridview/noforusframe.html
0110デフォルトの名無しさん
2009/10/19(月) 16:20:45paintがいやならそうなるかもね
再描画時に何を描いたか取っておくか、毎回描くかのどっちかしかないと思うよ
0111デフォルトの名無しさん
2009/10/19(月) 16:22:510112デフォルトの名無しさん
2009/10/19(月) 16:26:14そんな都合のいいの無いですよね
0113デフォルトの名無しさん
2009/10/19(月) 16:32:40あるオブジェクトが現在どこから参照されているのか調べる方法はありますか?
0114デフォルトの名無しさん
2009/10/19(月) 17:06:32素晴らしい!
ありがとうございます!
0115112
2009/10/19(月) 20:48:05クリックした時にその座標の色を取得することは出来ませんか?
これが実現すれば出来そうです、やり方あれば教えて下さい。
0116デフォルトの名無しさん
2009/10/19(月) 20:56:31http://dobon.net/vb/dotnet/graphics/invokepaint.html
http://dobon.net/vb/dotnet/graphics/screencapture.html
で画面キャプチャして、マウスをクリックした位置のドットの色を得れば?
0117デフォルトの名無しさん
2009/10/19(月) 23:00:37どこにあるんだ!
環境
Visual C# 2008
Express Edition
0118デフォルトの名無しさん
2009/10/19(月) 23:26:03ツールボックスのコンポーネントの所にないかい?
0119デフォルトの名無しさん
2009/10/19(月) 23:39:05そんな子供騙しなおもちゃ、なくても困らないでしょ。
あれは言っちゃ悪いけどちょっと前ならVB厨って呼ばれた用な人たちのための
コンポーネントだと思うけど。
0120デフォルトの名無しさん
2009/10/19(月) 23:58:110121デフォルトの名無しさん
2009/10/20(火) 00:01:170122デフォルトの名無しさん
2009/10/20(火) 01:38:29「オレはあんなもん無くても書けるぜすごいだろ!」
って言いたいの?
子供ですね。
0123デフォルトの名無しさん
2009/10/20(火) 04:22:00http://koreawatcher.at.infoseek.co.jp/janexeno.htm
・正式版として最初のリリース。
・Jane終了時の挙動のみ091015試作品から変更された。
───────────────────────
予告どおり、正式版をリリースしました。×ボタンのツールチップ
ヒントに関して、真魚のソースを参考にして修正を試みました。
JaneNidaの開発は事実上終了です。2chの仕様変更などで
対応するかもしれません。
0124デフォルトの名無しさん
2009/10/20(火) 05:54:15自動的にメモリは開放されるのでしょうか?
0125デフォルトの名無しさん
2009/10/20(火) 06:18:240126デフォルトの名無しさん
2009/10/20(火) 07:12:39朝一でありがとう。
0127デフォルトの名無しさん
2009/10/20(火) 09:33:370128デフォルトの名無しさん
2009/10/20(火) 09:55:030129デフォルトの名無しさん
2009/10/20(火) 10:56:04再起動するしかない?
0130デフォルトの名無しさん
2009/10/20(火) 11:00:440131デフォルトの名無しさん
2009/10/20(火) 11:09:36一つ一つにtry-finallyでdisposeするとか?
0132デフォルトの名無しさん
2009/10/20(火) 11:13:580133デフォルトの名無しさん
2009/10/20(火) 11:14:04list[10]のように、あたかも配列の要素を取り出すようにアクセスできる
・・・という機能を、自作クラスに持たせる方法ってありますか?
0134デフォルトの名無しさん
2009/10/20(火) 11:20:270135デフォルトの名無しさん
2009/10/20(火) 11:44:320136デフォルトの名無しさん
2009/10/20(火) 13:06:35メモリリークをどういう意味で使ってる?
0137デフォルトの名無しさん
2009/10/20(火) 13:44:18http://uproda11.2ch-library.com/206356tyL/11206356.jpg
コンポーネントの項目が無い!
>>119
無くてもできるけど、
楽にできるならそっちのほうがいい。
0138デフォルトの名無しさん
2009/10/20(火) 14:12:441. 新しいプロジェクトを追加し、[Windows フォーム アプリケーション] または [Windows フォーム コントロール ライブラリ] を選択します。
2. Windows フォーム デザイナ、ユーザ コントロール デザイナ、コンポーネント デザイナを開きます。
3. ツールボックスから任意のコンポーネントを配置します。
0139デフォルトの名無しさん
2009/10/20(火) 14:28:12ポトペタじゃなくてコードで作れ
0140デフォルトの名無しさん
2009/10/20(火) 14:28:33手作業で書くしかない。
0141デフォルトの名無しさん
2009/10/20(火) 15:22:48>WPFのXAMLエディタではサポートしてないという話だろ。
よくわかった。
サンプルコードへのリンクも張っておきます。
【WPF】お手軽簡単別スレッド BackgroundWorker
http://pro.art55.jp/?eid=1180258
0142デフォルトの名無しさん
2009/10/20(火) 15:48:30タイマーやダイアログなんかはUIに密着に関係してるからまだわかる
データソースとは違ってデザイナが使えても何の意味もないし
0143デフォルトの名無しさん
2009/10/20(火) 15:55:010144デフォルトの名無しさん
2009/10/20(火) 16:01:21それならBackgroundWorkerも同程度には「密着」してると思うが
0145デフォルトの名無しさん
2009/10/20(火) 16:04:20BackgroundWorkerはUIには全く依存してない
WPFでもそのまま使えるのがその証拠
0146デフォルトの名無しさん
2009/10/20(火) 17:02:03Form1からForm2のフォームを呼び出し
Form2のボタンを押したらForm1で宣言した変数に数字を入れたいのですが
その場合Form2のButtonクリックイベントにどうやって書けばいいでしょう?
0147デフォルトの名無しさん
2009/10/20(火) 17:15:21タイマーがWindowsメッセージに依存してるからって
デザイナと何の関係がある?
あとコンポーネントタブにあるのは
Windowsじゃないサーバータイマーだぜ。
0148デフォルトの名無しさん
2009/10/20(火) 17:19:23どんな理屈だよ。
まあサーバータイマーはUIと関係なく使えるけどな。
TableAdapterもデフォルトはコンポーネントだな。
0149デフォルトの名無しさん
2009/10/20(火) 17:42:07Form1にpublicなメソッドなりプロパティなり作ってForm2から呼べばいい
Form2には事前にForm1のインスタンスを渡しておく。
0150デフォルトの名無しさん
2009/10/20(火) 18:02:53インスタンスがよく分かりません;
参考になるサイト有りませんか?
0151デフォルトの名無しさん
2009/10/20(火) 18:25:14初歩すぎるからどのサイトでもいいと思うが。
ちなみにForm1から見たForm1のインスタンスはthis
0152デフォルトの名無しさん
2009/10/20(火) 18:38:32private static Form1 _form1Instance;
int form2count = 0;
public int form2ins
{
get
{ return form2count; }
set
{ form2count = value; }
}
これでいいんですかね?
0153デフォルトの名無しさん
2009/10/20(火) 18:41:460154デフォルトの名無しさん
2009/10/20(火) 18:52:480155デフォルトの名無しさん
2009/10/20(火) 19:22:59そもそも、ツールボックスに表示されているのは殆どコンポーネントだし
[コンポーネント]にあるのは明確なカテゴリのない残り物
てか、適当な事書く前に.NETでのコンポーネントの定義を確認してくれよ
0156デフォルトの名無しさん
2009/10/20(火) 20:59:56きもすぎワロタw
//Form1.cs
public string Data
{
get;
set;
}
private void button1_Click(object sender, EventArgs e)
{
Form frm = new Form2();
frm.Show(this);
}
//Form2.cs
private void Form2_Load(object sender, EventArgs e)
{
var frm = this.Owner as Form1;
if (frm != null)
frm.Data = "kimosu";
}
0157152
2009/10/20(火) 21:39:46駄目だw理解出来ないw
var frm = this.Owner as Form1;
これは一体何してるの?
if (frm != null)してるなら、どのタイミングでfrmをdisposeすればいいの?
Form2のClosingでdisposeしとけばいい?
まさか俺はdisposeの意味を全く理解して無いだけか
get; set;
これってgetとsetの処理分けて書かないと駄目なんじゃないの?
多分スルーされて涙目になるんだろうけど、
誰でもいいから教えてよ;w;
0158デフォルトの名無しさん
2009/10/20(火) 21:51:38get;set;については匿名係長でググれ
0159デフォルトの名無しさん
2009/10/20(火) 21:54:180160デフォルトの名無しさん
2009/10/20(火) 21:55:280161デフォルトの名無しさん
2009/10/20(火) 21:58:54じゃあ例えばForm2からForm1の背景色を変更するときとか普通はどうするの?
0162デフォルトの名無しさん
2009/10/20(火) 22:02:510163デフォルトの名無しさん
2009/10/20(火) 22:04:48Form2に設置したボタンを押された回数を
Form1で宣言した変数に入れたい時もイベントで出来るの?
0164デフォルトの名無しさん
2009/10/20(火) 22:09:290165デフォルトの名無しさん
2009/10/20(火) 22:09:33別の独立したクラスに持たせて,Form1とForm2の両方から参照した方がスマートではありませんか?
0166デフォルトの名無しさん
2009/10/20(火) 22:11:130167デフォルトの名無しさん
2009/10/20(火) 22:13:09var frmは理解しました。
varってクラスの型なんですね
disposeの件は勘違いしてました。
今までのソース見てもそんなのしてねぇや、俺アホす
匿名係長でググってもめぼしい物が見つからない・・・
>>165
やべえ、感動した。
まだほんの小規模なツールしか作ったこと無くて、クラスも1つしか使ってなかった
そうか、それで別のクラス作ればいいのかw
0168デフォルトの名無しさん
2009/10/20(火) 22:15:16「Form1の変数を弄るためのイベント」みたいにForm1を意識して作るんだったら
直接Form2からForm1を触るのと変わらん
どうせ意識するんだったら意識する範囲を別のクラスに括り出す
0169デフォルトの名無しさん
2009/10/20(火) 22:19:43未だにnamespaceとかの概念も分からないわ
新規にクラス作るときは、Form1.csの中に書いても良いのかな?
namespace app1
{
public partial class Form1 : Form
{ public Form1 }
//ここに、public partial class aho{ }ってすればクラス追加したことになるの?
}
というか、ここで聞けるほど簡単な所でひっかかってるんじゃなさそうだから
ソースの構造体とかの概念を説明してるサイト無いのかな
ググってもサンプルとかはいくつも出てくるけど、そんなサイトのほうが少ないし
どうするかな・・・
0170デフォルトの名無しさん
2009/10/20(火) 22:23:38ここで聞いちゃいけないほど簡単なことをきいてんだよお舞は(´・ω・`)
0171デフォルトの名無しさん
2009/10/20(火) 22:24:39http://www.atmarkit.co.jp/fdotnet/csharp_abc2/index/index.html
行ってらっしゃい
読破するまでは戻ってくるなよ
0172デフォルトの名無しさん
2009/10/20(火) 22:26:29ありがとう
0173デフォルトの名無しさん
2009/10/20(火) 22:30:52君が特命係長のファンだというならば、
次は自動プロパティでぐぐることをお勧めいたします。
0174デフォルトの名無しさん
2009/10/20(火) 23:07:04BackgroundWorkerはどうやってWinFormのControlや
WPFのUIElementに同期してるんだろ。
コンストラクタなどでフォームのthisを渡しているふうでもないし、
DelegateのTargetを使ってるふうでもない。
0175デフォルトの名無しさん
2009/10/20(火) 23:11:03イベントは全部非同期コールバック
0176デフォルトの名無しさん
2009/10/20(火) 23:15:11最後一つだけ質問させてくだはい
class plex{
private int clickcount=0;
public int ClickCount
{
set { clickcount = value; }
get { return clickcount; }
}
}
---
Comp c = new Comp();
if (c!=null)
{ c.ClickCount++; //0に1追加
MessageBox.Show(c.ClickCount.ToString()); } //毎回1が返される
何度setしてもカウントがgetするたびに0になってます
上手くsetされていないのかもしれないんですが、どこがおかしいか指摘もらえませんか?
0177デフォルトの名無しさん
2009/10/20(火) 23:17:390178デフォルトの名無しさん
2009/10/20(火) 23:17:450179デフォルトの名無しさん
2009/10/20(火) 23:20:15c.ClickCount=c.ClickCount+1;
こうしてみましたけど、これでも毎回1しか返してきません
0180デフォルトの名無しさん
2009/10/20(火) 23:23:040181デフォルトの名無しさん
2009/10/20(火) 23:23:14おそらくButton_Clickなんかの中でnewしてるんでしょ。
var c = new Comp(); // ←新しく作ったので、値0から
: なんか処理
var c = new Comp(); // ←また新しく作ったので、値0から
0182デフォルトの名無しさん
2009/10/20(火) 23:25:55staticなclassにpublicフィールドもta
せればいいと思うよ。
0183デフォルトの名無しさん
2009/10/20(火) 23:26:14見事、それが原因でした
そういうものなのね、少しそれも疑ったけれど
毎回clickcountに++されていってると思ってて
newごとにそうなるとは思わなかった。
ありがとうございます。
0184デフォルトの名無しさん
2009/10/20(火) 23:28:24説明が足りなんだ。DoWorkじゃなくて
ProgressChangedとRunWorkerCompletedのこと。
0185デフォルトの名無しさん
2009/10/20(火) 23:28:26嘘付くな
0186デフォルトの名無しさん
2009/10/20(火) 23:31:490187デフォルトの名無しさん
2009/10/20(火) 23:32:52コンポーネントなんだから自分の親が誰かくらいは知ってるんじゃないの
0188183
2009/10/20(火) 23:34:17>>176のソースで、
Comp c = new Comp();を使うと、clickcount=0になるんですよね?
この場合、値をリセットせずにプロパティを参照することはできませんか?
何度かそのフォームを表示させて、ボタンをクリックさせるたびに、
以前のクリックした回数は保持させておきたいのですがそんなことは出来ませんか?
0189デフォルトの名無しさん
2009/10/20(火) 23:34:32AsyncOperationつーもんがある
0190デフォルトの名無しさん
2009/10/20(火) 23:40:07毎回インスタンス生成してるんだから、カウントをリセットしているわけじゃなく、毎回新しいCompのプロパティを0→1にしている。
0191デフォルトの名無しさん
2009/10/20(火) 23:47:26WinFormsやWPFがグローバルなSynchronizationContextを提供してるみたい
Componentは特に関係なさそう
0192デフォルトの名無しさん
2009/10/20(火) 23:47:54あー、毎回1になる原理は分かりました。
しかし、毎回インスタンス生成しないと、参照出来ないのでは?
0193デフォルトの名無しさん
2009/10/20(火) 23:54:27ありがとう。AsyncOperationは少し調べてみます。
0194デフォルトの名無しさん
2009/10/20(火) 23:56:03レス全部読んでる?
0195デフォルトの名無しさん
2009/10/21(水) 00:00:30何か重要なレス見逃しました?
一応全部目を通してるんですが・・・
0196デフォルトの名無しさん
2009/10/21(水) 00:02:15>>180
Comp c = new Comp();
private void button1_Click(…
0197デフォルトの名無しさん
2009/10/21(水) 00:08:260198デフォルトの名無しさん
2009/10/21(水) 00:11:23そもそも読んだところで理解出来ないと思われ
0199デフォルトの名無しさん
2009/10/21(水) 00:11:59あ、じゃなくて、直下に移動させてその問題は解決したんですが
Form1からForm2出して、Form2のボタンをクリックすると、
>>176使ってclickcountにクリックした回数を++した後でForm2をClose
このあと、2回目以降にForm2を呼んだとき、
どうしても毎回Comp c = new Comp();通りますよね。
このときclickcountに格納された値も0になってしまうのを回避する方法は無いですか?
わかりづらくてすいません。
0200デフォルトの名無しさん
2009/10/21(水) 00:29:150201デフォルトの名無しさん
2009/10/21(水) 00:44:51http://pc12.2ch.net/test/read.cgi/tech/1255658236/
スレを汚すな。バカチンが。
0202デフォルトの名無しさん
2009/10/21(水) 01:05:20結構簡単ですね。簡単な業務用ツールいくつか作れました。
って感じがするw
0203デフォルトの名無しさん
2009/10/21(水) 01:16:18この方法あれば終われますので;
0204デフォルトの名無しさん
2009/10/21(水) 06:39:160205デフォルトの名無しさん
2009/10/21(水) 09:56:43ここまで引っ張るとは思ってなかったわ・・・
0206デフォルトの名無しさん
2009/10/21(水) 12:22:52画像や、リンクがフルパスではなく
../img/image.jpg
/help.htm
のように、なっていることが多いのですが
これをどうにか、フルパス指定にする方法はないでしょうか
0207デフォルトの名無しさん
2009/10/21(水) 12:27:010208デフォルトの名無しさん
2009/10/21(水) 12:27:11BASEでも指定すればいいんじゃないの。何に使いたいのかは知らんけど
0209デフォルトの名無しさん
2009/10/21(水) 12:48:36ありがとうございます
教えていただいたもので考えた結果
string url="http://google.com";
Uri base=new Uri(url);
HTMLをサーバーから取得し、htmlというstring変数に入れる
html内を検索し、../や/で始まるものを置換するという方法で一応できる・・・のでしょうか
こういう処理しか思い浮かばなかったのですが
最初から、フルパスで取得したりはできないですよね・・・・
この処理すごく煩雑になると思うのですが、もうちょっとスマートな方法はないでしょうか?orz
0210デフォルトの名無しさん
2009/10/21(水) 12:53:22ネットを見る際特定の広告などを表示しないなど、直接ではなく少し改変して表示するブラウザの作成です
0211デフォルトの名無しさん
2009/10/21(水) 13:12:30このタイプのコンストラクタを使う。
Uri (Uri baseUri, string relativeUri)
0212デフォルトの名無しさん
2009/10/21(水) 13:42:37それを調べてみたのですが
BaseUriの後にRelativeUriをくっつけてるだけですよね?
つまり、RelativeUri(/index.htmlなど)が分からなければいけないので
取得したソースから[/***.html]や[../***.jpg]などを検索、取得しRelativeUriにいれて一個ずつ置換しなければなりませんよね?
自分が勘違いしているだけかもしれませんが
そうなると、ソースの中から上記のものを取得しなければならない作業があるわけですが
それを簡単に行うことはできますでしょうか?
自分が考えついたのは
ソースないで「"../」や「"/」で始まる部分を検索し、そこを置換という方法だけだったのですが
すごく煩雑でしかも、/で始まらない場合には対応できないので
何か他にいい案がないものかな。と思いまして・・・
0213デフォルトの名無しさん
2009/10/21(水) 13:48:500214デフォルトの名無しさん
2009/10/21(水) 15:17:25言ってる意味が分からないな。
urlを食わせればそのページからのリンクをフルパスで
一覧してくれる便利な関数やライブラリはないかという話なら標準のBCLにはない。
だいたい、相対URLが ../ や /で始まってるとも限らないだろ?
0215デフォルトの名無しさん
2009/10/21(水) 15:23:35>Uri (Uri baseUri, string relativeUri)
base=http://www.xxxx.com/xxx/yyy/aaaa.html
として
relativeUri=../zzz/xxx.html
なら、ちゃんとこうなる。
http://www.xxxx.com/xxx/zzz/xxx.html
relativeUri=/bbb.html
なら、こうなる。
base=http://www.xxxx.com/bbb.html
0216デフォルトの名無しさん
2009/10/21(水) 17:54:17まるでフォーカスが当たっているように青にするにはどうすれば良いでしょうか?
0217デフォルトの名無しさん
2009/10/21(水) 18:05:59リストビューだけ変えるにはオーナードローしかないんじゃね
0218デフォルトの名無しさん
2009/10/21(水) 18:14:150219デフォルトの名無しさん
2009/10/22(木) 20:37:24クライアント複数(C#でWinアプリ)→サーバー(SqlServer2005Express)というアプリを作りたいです。
このアプリを配布する前提なのですが、どのように作成したらよいでしょうか。
「サービスベースのデータベース」で作成してサーバーでのデータベース運用にできるのでしょうか?
また、どのように配布するのでしょうか。
よろしくお願いいたします。
0220デフォルトの名無しさん
2009/10/22(木) 21:47:281)ASP.NETでつくる。
2)WebServiceでプレゼンテーション層を作り、ClickOnceでクライアントに配布。
便乗で質問してよろしいでしょうか?
XmlWebサービスでDataTableを取得し、コンボボックスのデータソースにしようとしています。
DataTableを取得するまではできたのですがDataSourceにつっこんでも欲しい値がでません。
コンボボックスには〜.DataViewみたいな型情報が出てしまいます。
XmlWebサービスで取得する値は、DBからSelect文で1列だけ取得したものです。
for eachで値が取れていることは確認し、Items.Add()で追加することもできました。
だけど、ComboBox.DataSourece = datatable;の形で値を表示したいです。
なぜ正しくでないのか、そして正しくでる方法を知っている方がいましたら教えてください。
よろしくお願いします。
0221デフォルトの名無しさん
2009/10/22(木) 21:49:590222デフォルトの名無しさん
2009/10/23(金) 08:32:58DisplayMember と ValueMember を指定
0223デフォルトの名無しさん
2009/10/23(金) 12:17:45thx。試してみるわ。
0224デフォルトの名無しさん
2009/10/23(金) 15:50:210225デフォルトの名無しさん
2009/10/23(金) 18:14:330226デフォルトの名無しさん
2009/10/23(金) 21:33:32本はC言語の方が充実しているみたいだが、C#にも強くなりたいと思っているので。
他にC、Java、JavaScriptの文法ならわかる。
0227デフォルトの名無しさん
2009/10/23(金) 21:35:18今からC++覚える意義は何もないのでC#でいいよ
0228デフォルトの名無しさん
2009/10/23(金) 21:36:100229デフォルトの名無しさん
2009/10/23(金) 22:02:000230デフォルトの名無しさん
2009/10/23(金) 22:12:56ふざけんな
0231デフォルトの名無しさん
2009/10/23(金) 22:17:110232デフォルトの名無しさん
2009/10/23(金) 23:10:52まあ Ruby も Haskell も別にふざけた言語じゃないと思うけど。
ちなみにC#でアルゴリズムの勉強するとしても
Cとほぼ同じレベルの文法しかつかわないと思うよ。
使い方じゃなくて実装の方の勉強をするんでしょ?
0233デフォルトの名無しさん
2009/10/23(金) 23:18:18すっこんでろ
0234デフォルトの名無しさん
2009/10/23(金) 23:19:46うん。
使い方なら、(言語は何であれ)そもそもライブラリが充実しているのでそちらを使えるようになればいいと思っている。
目的はそのための基礎づくり。
0235デフォルトの名無しさん
2009/10/23(金) 23:21:180236デフォルトの名無しさん
2009/10/23(金) 23:42:150237デフォルトの名無しさん
2009/10/24(土) 11:36:290238デフォルトの名無しさん
2009/10/24(土) 12:03:470239デフォルトの名無しさん
2009/10/24(土) 12:40:01別プロセスの何をフックしたいんだ?
0240238
2009/10/24(土) 13:08:390241デフォルトの名無しさん
2009/10/24(土) 13:14:380242238
2009/10/24(土) 13:28:53サブクラス化?って奴だと思うんですが、自身のウィンドウしかできないもので。
0243デフォルトの名無しさん
2009/10/24(土) 13:32:41おれは優しいので教えてあげる
API
0244デフォルトの名無しさん
2009/10/24(土) 17:59:420245デフォルトの名無しさん
2009/10/24(土) 20:09:21あれは C# じゃ無理。グローバルフックが必要だから。
0246デフォルトの名無しさん
2009/10/24(土) 22:23:070247デフォルトの名無しさん
2009/10/24(土) 23:08:430248デフォルトの名無しさん
2009/10/24(土) 23:14:46ggrks
http://www.google.co.jp/search?hl=ja&source=hp&q=C%23+%E3%82%B0%E3%83%AD%E3%83%BC%E3%83%90%E3%83%AB%E3%83%95%E3%83%83%E3%82%AF&lr=&aq=f&oq=
0249デフォルトの名無しさん
2009/10/24(土) 23:19:500250デフォルトの名無しさん
2009/10/24(土) 23:22:030251243
2009/10/24(土) 23:25:500252デフォルトの名無しさん
2009/10/24(土) 23:27:010253デフォルトの名無しさん
2009/10/25(日) 03:31:57おれは優しいので教えてあげる
帰れ
0254デフォルトの名無しさん
2009/10/25(日) 16:07:140255デフォルトの名無しさん
2009/10/25(日) 16:23:330256デフォルトの名無しさん
2009/10/25(日) 16:24:220257デフォルトの名無しさん
2009/10/25(日) 16:46:29WH_KEYBOARD_LL, WH_MOUSE_LL
0258デフォルトの名無しさん
2009/10/25(日) 20:35:390259デフォルトの名無しさん
2009/10/27(火) 15:50:200260デフォルトの名無しさん
2009/10/27(火) 15:51:080261デフォルトの名無しさん
2009/10/27(火) 21:15:54あと「文字列や配列はクラスである」という理解でいいんでしょうか?
値型となるのが数値、文字、真理値、構造体
参照型となるのが配列、文字列、クラス、インターフェース、デリゲート
列挙型は特定の数値しか取らない型定義だから、値型。つまり参照型のクラスではない
という論法。
0262デフォルトの名無しさん
2009/10/27(火) 21:36:56間違ってるとして、困った事が起こるのはどんな時?教えて偉い人。
0263デフォルトの名無しさん
2009/10/27(火) 21:41:09配列型の基底クラスであるArrayは確かにクラスだけど配列型そのものは
やっぱりクラスではなく配列型と呼ぶのが普通だろう
デリゲートだってDelegateはクラスだけどデリゲートそのものはデリゲート型と呼ぶだろ(実体はクラス)
0264デフォルトの名無しさん
2009/10/27(火) 21:43:190265デフォルトの名無しさん
2009/10/27(火) 21:50:56System.EnumはSystem.ValueTypeを継承してるから値型の一種でいいと思うけど、
struct型の値型とは分類が違う。EnumはEnum型と呼ぶべきだろう。
0266デフォルトの名無しさん
2009/10/27(火) 22:04:22その意味ではInt32やCharなどと同じ
0267デフォルトの名無しさん
2009/10/27(火) 22:09:04public enum ABC { aa, bb, cc }
が、こうなる。
.class public auto ansi sealed ABC extends [mscorlib]System.Enum
{
.field public specialname rtspecialname int32 value__
.field public static literal valuetype ABC aa = int32(0x00000000)
.field public static literal valuetype ABC bb = int32(0x00000001)
.field public static literal valuetype ABC cc = int32(0x00000002)
}
0268デフォルトの名無しさん
2009/10/27(火) 22:40:27C#言語仕様14章より
列挙型とは、名前付き定数のセットを宣言する固有の値型 (4.1 を参照) です。
0269デフォルトの名無しさん
2009/10/29(木) 17:49:39Webproxy=NULL;
にすると通信がすっごく早くなるのですが、これを使う(プロクシを使用しない)ことによる問題はありますか?
プロクシ通さないと繋がらないPCはおいといて、通常の環境での話です
あと、たとえばWebで
じゃんけんゲームをcgiで作ったとします
ボタンが3つあって、
Aを押すとグー
Bを押すとチョキ
Cを押すとパー
ボタンを押すと相手もランダムに手を出し勝負するという単純なものです
cgiの内部的には、Aというボタンが押された、という情報を受け取って表示をしていることは分かるのですが
C#のアプリ側で
そのAというボタンが押されたという情報を送って、帰ってくる結果を取得するにはどうすればいいのでしょうか?
WebBrowserを用いて直接ボタンを押す以外でです。
わかりにくかったらすいませんorz
0270デフォルトの名無しさん
2009/10/29(木) 17:59:090271デフォルトの名無しさん
2009/10/29(木) 18:05:58説明不足でした
HTTP Header
というもので、どういう情報を送信すればいいかはわかってます
上のやつで
ボタンAが押された場合は
Agaosareta
という情報が送られるようになっています
でも、どうやって送信、取得すればいいのかがわからなくて・・・・・
0272デフォルトの名無しさん
2009/10/29(木) 18:08:440273デフォルトの名無しさん
2009/10/29(木) 18:24:17こんな感じです
おおげさですが
専用ブラウザみたいなものを作りたいといえば通じるようなきがします
元々はシンプルなものを、ローカル側で見やすくして表示するじゃんけんゲーム専用のブラウザを作りたいです
ブラウザなら、ボタンを押せば勝手に情報が送信されますよね?
そして、かえって来た情報を元にテキスト(勝ち負け)を表示
でも、それをローカルのアプリからやる方法がわからないんです
この絵で言うパー(じゃんけんの手を送信)を送信
と、結果を取得(じゃんけんの結果を取得)
がよくわかりません・・・
結果さえ取得できれば
勝ちならif(win)〜
負けならelse if(rose)〜
みたいにして結果のぺーじをかえればいいんだとは思いますが
0274デフォルトの名無しさん
2009/10/29(木) 18:30:21って面倒だからググってきた。
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/318webpost/webpost.html
こういうのでわかる?
0275デフォルトの名無しさん
2009/10/29(木) 18:36:29WebClient もしくは HttpWebRequest を使う(前者のほうが簡単)
http://www.atmarkit.co.jp/fdotnet/dotnettips/302wcget/wcget.html
ブラウザで表示するのとは別のアドレスを用意するか
送信する引数に勝敗だけ返してねーってフラグでも付けて送る
例えばGETでやるならこんな感じかね(非ブラウザからパーを送信)
http://www.hoge.co.jp/pss.cgi?value=paper&mode=client
CGI側は value の内容から勝敗を決定し単純に勝敗のみを文字で返す
クライアントはダウンロードした文字の内容で結果を判断する
WebClient wc = new WebClient();
byte[] data = wc.DownloadData("http://www.hoge.co.jp/pss.cgi?value=paper&mode=client");
Encoding enc = Encoding.GetEncoding("Shift_JIS");
string html = enc.GetString(data);
if (html == "勝ち") { } else { }
0276デフォルトの名無しさん
2009/10/29(木) 18:37:02まさにこれです
本当にありがとうございました
このじゃんけんゲームは自分で作ったので
それぞれ
paagaosareta
guugaosareta
tyokigaosareta
という内容を送信するということは分かってます
それを見てふ、と思ったのですが
googleで検索ボタンを押したときや、たとえば2chに書き込む情報を送るなんていう場合は
色々POSTされているんだと思いますが
そういうのを調べる方法はあるのでしょうか?
0277デフォルトの名無しさん
2009/10/29(木) 18:44:520278デフォルトの名無しさん
2009/10/29(木) 18:49:030279デフォルトの名無しさん
2009/10/29(木) 18:52:510280デフォルトの名無しさん
2009/10/29(木) 18:53:47動いた!わーい!
って感じです・・・・
0281デフォルトの名無しさん
2009/10/30(金) 15:23:47メインスレッド(フォーム表示関連)と
別スレッドからメッセージボックスを表示させたいのですが
メインスレッドのフォームの裏に隠れてしまう場合があり、困っております。
ググるとメインスレッドにイベントをあげてそっちで処理するとの方法がありましたが、
今の自分のプログラムではメインスレッドにてどのフォームが表示中か場合によって変わるため、
できれば別の方法で出来ないか模索しております。
メッセージボックス表示を暫定的でも最前列に持って行く方法は無いものなでしょうか?
セットアップパッケージを起こすまで全くこの問題に気づきませんでした
助けて、今日納めないといけないのだが・・・
0282デフォルトの名無しさん
2009/10/30(金) 15:29:27* Form を「モーダル ダイアログ」表示する
public class Form1
{
Form2 form2 = new Form2() ;
form2.ShowDialog() ;
:
:
form2.Dispose() ;
}
public class Form2
{
/* Form1 とは並行操作できない処理 */
}
*Form がアクティブか判定
// Form がアクティブか判定する
if (Form.ActiveForm == this)
{
// Form がアクティブ
}
// Form を最前面に移動し、その Form にフォーカスを移動する
this.Activate() ;
*Form を最前面に配置
// Form が常に最前面に表示されるように設定する
this.TopMost = true ;
// Note: TopMost を false に「再」設定すると、ToolTip が最前面に表示されなくなる
// 不具合がある?
これをMessageBoxにおきかえて考えればいいと思うんだがそういう話じゃなくて?
0283デフォルトの名無しさん
2009/10/30(金) 15:48:03以下のコードでテストした
オーナーが最前面なので裏に行くことは無いと思う
他にも常に最前面ウィンドウがあるとZオーダー次第で裏にいくのは変わらない
Thread thread = new Thread(new ThreadStart(delegate()
{
using (Form ownerForm = new Form())
{
ownerForm.TopMost = true;
MessageBox.Show(ownerForm, "test", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}));
thread.Start();
0284281
2009/10/30(金) 16:00:41回答有り難うございます。
>>283さま
検証までして頂き感謝感激です
こちらも今検証させて頂いております。追ってご報告させて頂く所存です
今ちょっと気になっているのが、VS2008上では一切発生していなかったのが、
セットアップパッケージにしてでインストールし実行すると同現象が発生するようになった
理由がわからないのと、
それとメッセージボックスのタイプのも多種多様で至る所で使っているため、
出来ればそのままメッセージボックスはそのまま使いたいのですが、
これは282さまが張ってくださった
http://homepage3.nifty.com/midori_no_bike/CS/index.html?form.260
を改造して.以下にすればいけるのでしょうか?
(以下につづく)
0285デフォルトの名無しさん
2009/10/30(金) 16:02:21{
// Thread のアタッチ
int fore_thread = GetWindowThreadProcessId(GetForegroundWindow(), IntPtr.Zero) ;
int this_thread = AppDomain.GetCurrentThreadId() ;
AttachThreadInput(this_thread, fore_thread, true) ;
// this をアクティブ
MesseageBox("ここを改造")
// Thread のデタッチ
AttachThreadInput(this_thread, fore_thread, false) ;
}
0286デフォルトの名無しさん
2009/10/30(金) 16:05:02ところで親ウィンドウが分からないとエラーメッセージ表示中に
裏のウィンドウ操作されちゃうけどそれはいいの?
0287281
2009/10/30(金) 16:05:36すいません。よくコードを読んでいませんでした。
ダミー(非表示)のフォームをたたき台にして、
その上にメッセージボックス表示させることで最前列にするわけですね!!!!
この方法が一番変更が容易そうなので、この方法で行く方向で検討させて頂きます。
大感謝!!!
0288281
2009/10/30(金) 16:08:23今はあきらめていますが、
裏のウインドウをを操作させない方法があるんでしょうか?
これは本当にモーダルにしないと駄目ですよね
0289デフォルトの名無しさん
2009/10/30(金) 16:11:26たまたまオブジェクトブラウザ眺めて見つけた Application.OpenForms を使ってみた
Form ownerForm = new Form();
ownerForm.TopMost = true;
if (Application.OpenForms.Count > 0)
{
ownerForm.Owner = Application.OpenForms[0];
}
ownerForm.Owner.Invoke(new Action(delegate()
{
using (ownerForm)
{
MessageBox.Show(ownerForm, "test", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}));
0290デフォルトの名無しさん
2009/10/30(金) 16:11:53ダミーフォームをたたき台にするなら
* Form を「モーダル ダイアログ」表示する
public class Form1
{
Form2 form2 = new Form2() ;
form2.ShowDialog() ;
form2.Dispose() ;
}
public class Form2
{
/* Form1 とは並行操作できない処理 */
}
これで一発で通るよ
それ以上をやりたいならしらん
0291281
2009/10/30(金) 19:49:04皆様にピンチを救って頂いた281で御座います。
283さまのコードと同じ対応で、こちらでも問題の無いことが確認できましたので、
先ほどなんとかリリースすることが出来ました。
セットアップパッケージなんてすぐ出来るものと考えていたため、
時間をとっていなかったため、びびりまくっておりました。
次からは気をつけようと思います。
また289様/290様のコード勉強になります。
皆様、本当に有り難う御座いました。m(_ _)m
0292デフォルトの名無しさん
2009/10/31(土) 00:23:22インテリセンスにズラズラ出てくるのがうざったいよ・・・
0293デフォルトの名無しさん
2009/10/31(土) 14:49:052.3列(列1、列2、列3)のデータセットを作成 。
データ型はvercher(20)です。
3.コンボボックス1のテキストをデータセットの列1に格納
同様に、コンボボックス2、3の値をデータセットの列2、3に格納
4.データセットの内容をタブ区切りでテキストに書き出す。
5.そのテキストを各部門で活用。
としたいのですが、おかしな現象が生じます。
コンボボックス1に「集客力」と入れると、テキストに書き出されないんですが、
「集客」で入れると正常にテキスト出力がされます。
なぜ、「集客力」と集客で結果が異なるのでしょうか。
コンボボックスのテキストの利用に何かコツがあるのでしょうか?
よろしくお願いいたします。
0294デフォルトの名無しさん
2009/10/31(土) 17:33:13コンボボックスのテキストだとして、コンボボックス間の連動をどう設計してある
のか分からない。
0295デフォルトの名無しさん
2009/10/31(土) 21:31:19申し訳ありません、コンボボックスが直接の原因ではなく、エンコード方法に起因しているのかもしれません。
タブ区切りのテキストを出力しようとしましたが、
Streamwriterのメソッドの中で、
encoding.default
のパラメーターを指定していました。
読むときも同じパラメーターでした。
それが原因なのかもと思いました。
タブ区切りでテキストを入出力するときは、皆さんはどのように記述されているのでしょうか?
0296デフォルトの名無しさん
2009/11/01(日) 10:03:22タブ区切りなんてほとんど書かないけど、JoinしてWriteLineとかでいいんじゃ
0297デフォルトの名無しさん
2009/11/01(日) 11:18:27現象を正確に書くとこから始めようぜ。
まあ他にも不明点が大杉だが。
0298デフォルトの名無しさん
2009/11/02(月) 03:56:49クライアントから通信を受け取った後Application.Restart()すると、
通信終了処理のタイミングか、使用ポートが閉じられていないみたいで、
起動時にIPCポートが開けないとのエラーがでます。
で、ポートが開くまで待ってみようと、下のソースでループを掛けてみると、延々ループが回り続けます。
一度手動でアプリを終了させてから、再実行するとポートが開けるので、
キャッシュ辺りに実行開始時のポート状態を格納しているっぽいんですが、
このキャッシュをクリアする方法はありませんか?
もしくは、実行中に指定のIPCのポートが使用可能になったかどうかを調べる方法が知りたいです。
宜しくお願い致します。
while (true)
{
try
{
IpcServerChannel ipcServerChannel = new IpcServerChannel("hoge");
break;
}
catch (System.Runtime.Remoting.RemotingException ex)
{
continue;
}
}
0299デフォルトの名無しさん
2009/11/02(月) 04:19:02今photoshopやpainterの様なソフトを作ろうとしていのですが、
すごい大きな画像(1200*1200*15*15くらい)のものを作るとメモリをすごく使います。
もちろんメモリ不足のエラーがでます。
しかしphotoshopなどで同じサイズで画像を描写などしてもあまりメモリを消費しません。
これはどういった操作を行っているのか分かる方いませんか?
またc#でも同じことができるのかも知りたいです。参考になる本などなんでいいので情報ください。
よろしくお願いします。
0300デフォルトの名無しさん
2009/11/02(月) 04:32:310301デフォルトの名無しさん
2009/11/02(月) 07:20:20ただの C# ユーザー、Visual Studio ユーザー
って多いよね。
プログラマではなく、ただの統合環境(IDE)ユーザーでしかない人。
IDEをそれなりに使いこなして、アプリっぽいものを作れる人と、
IDEがあってもなくても、アプリをガツガツ組める人とは
雲泥の差がある。
0302デフォルトの名無しさん
2009/11/02(月) 07:35:57Visual Basic プログラマだと思い込んでいる、
ただの Visual Basic ユーザー、Visual Studio ユーザー
って多いよね。
プログラマではなく、ただの統合環境(IDE)ユーザーでしかない人。
IDEをそれなりに使いこなして、アプリっぽいものを作れる人と、
IDEがあってもなくても、アプリをガツガツ組める人とは
雲泥の差がある。
0303デフォルトの名無しさん
2009/11/02(月) 13:41:46小分けは考えたのですが、そのためのライブラリがよく分からなかったので諦めてました。
ですので、もし分かるのであれば教えてください。
できるならC#でできる範囲でお願いします。
0304デフォルトの名無しさん
2009/11/02(月) 14:00:580305デフォルトの名無しさん
2009/11/02(月) 20:49:18.Net5.0 なのかな?まさか4.0?
0306デフォルトの名無しさん
2009/11/02(月) 21:06:18webBrowserで開いたページのクッキーは、
AppData\Roaming\Microsoft\Windows\Cookies\*(IE8)
に保存されますが、この保存場所を変えるにはどうしたらいいでしょうか?
webBrowserで開いたクッキーは、終了と同時に削除したいからです。
よろしくお願い致します。
0307デフォルトの名無しさん
2009/11/02(月) 21:16:09IEコンポ使ってたら保存場所の変更はレジストリ弄る以外無理でしょ、たぶん。
保存される場所もVista移行は保護モードのON/OFFで変わるよ
終了時に消したいなら単純にAPIのDeleteUrlCacheEntryで消せば?
ただ普通のIEのCookieまで消えちゃうけどねw
0308デフォルトの名無しさん
2009/11/02(月) 21:57:45.NET Framework 4でやってくる。
http://msdn.microsoft.com/en-us/library/system.io.memorymappedfiles.memorymappedfile(VS.100).aspx
0309デフォルトの名無しさん
2009/11/02(月) 23:33:10おうっ来年。CreateFileMappingは使ったこと無かったんだ。
と、そもそも必要になるようなアプリは作ってなかったり。
ネタ考えとくか。
0310デフォルトの名無しさん
2009/11/02(月) 23:37:33どんな利点があるんですか?
0311デフォルトの名無しさん
2009/11/02(月) 23:42:13ファイルマッピングってC#で扱えないんじゃなかったけ?
ずーとwinAPIを使ってやるものだと思っていた。
0312デフォルトの名無しさん
2009/11/02(月) 23:58:110313デフォルトの名無しさん
2009/11/03(火) 00:24:332つのクラスc1,c2が以下のように定義されてるとします。
public class c1{
public Pen p{get;private set;}
public c1(){
p = new Pen(Color.Black);
}
}
public class c2{
public c2(){
c1 c = new c1();
c.p.Color = Color.White; ←
}
}
c2のインスタンスを作ると上記コードの'←'を実行した時点で
c.p.ColorがWhiteになっています。
c1の方でprivate setとしているのに、なぜWhiteになってしまうのでしょうか。
上記コードではPenを利用していますが、一般に内部に値型のプロパティを持っている
クラスならばこのようなことが起こるようです。
よろしくお願いします。
0314デフォルトの名無しさん
2009/11/03(火) 00:51:04これc1クラスのpにはsetしてないよ。
getしてるよ。
それで返ってきたPenのColorプロパティにColor.Whiteをsetしてる。
0315デフォルトの名無しさん
2009/11/03(火) 00:58:11知り合いは関係ない
0316デフォルトの名無しさん
2009/11/03(火) 01:05:05もしかしたら言葉足らずだったかもしれません;
私がやりたいのは、
>c.p.Color = Color.White; ←
この書き方が通らないようにprivate setと書いたのですが、
>>313のコードだと'←'を実行した後c.pのColorプロパティを見るとWhiteになってしまっているのです。
c.pに直接Penを入れるのは当然コンパイラがNGだと言ってくれるのですが。
0317デフォルトの名無しさん
2009/11/03(火) 01:07:57そりゃ、set できないのは c.p であって、
c.p を get した後にそこの Color 書きかえるのは自由。
private set はそのプロパティの中身を immutable にはできない。
0318デフォルトの名無しさん
2009/11/03(火) 01:14:19なるほど、分かりました。
このような場合にgetした中身に対してもsetできないようにすることは無理ですか?
もしそうなら根本的にPenをプロパティにすること自体をやめるしかないですよね。
0319デフォルトの名無しさん
2009/11/03(火) 01:27:45プロパティのゲッタでは、変更されても問題がない値を返すようにすればいいんだよ。
具体的にはクローンを返せばいい。
だけど、自分で利用するだけのコードなら普通はそこまで気を使う必要はないと思うけど。
そんなものがバグの原因になることは殆どないと思うし。
0320デフォルトの名無しさん
2009/11/03(火) 01:36:21なるほど!それいいですね。
>だけど、自分で利用するだけのコードなら普通はそこまで気を使う必要はないと思うけど。
>そんなものがバグの原因になることは殆どないと思うし。
そうなんですよね。
でもなぜかなーと疑問に思っていたら気になって寝られなくなってしまったのです。
お答えくださったみなさん(?)、夜分遅くにありがとうございました!
0321デフォルトの名無しさん
2009/11/03(火) 02:05:570322デフォルトの名無しさん
2009/11/03(火) 02:36:11もしかして
ttp://msdn.microsoft.com/ja-jp/library/0fss9skc.aspx
これのことをおっしゃってますか?
0323デフォルトの名無しさん
2009/11/03(火) 02:57:010324デフォルトの名無しさん
2009/11/03(火) 05:23:54ttp://msdn.microsoft.com/ja-jp/library/ms229054.aspx
ttp://msdn.microsoft.com/ja-jp/library/ms182181.aspx
0325デフォルトの名無しさん
2009/11/03(火) 07:33:55ありがとうございます。つまりC#だけでは大きなサイズを操作することは無理って事ですね。
残念です。
0326デフォルトの名無しさん
2009/11/03(火) 10:00:510327デフォルトの名無しさん
2009/11/03(火) 11:04:05wib32apiを使わずにできるのですか?
0328デフォルトの名無しさん
2009/11/03(火) 11:20:250329デフォルトの名無しさん
2009/11/03(火) 11:37:09「C#だけ」の見解の相違。
アンマネージドコードなapi呼び出しだってC#で書けるから、C#だけで書ける。
0330デフォルトの名無しさん
2009/11/03(火) 13:56:09ありがとうございます。参考にさせてもらいます。
0331デフォルトの名無しさん
2009/11/03(火) 14:06:50つまりその理由に反しないのであれば形式上「掟」に反しても何の問題もないんじゃないかと
個人的には思うけどねえ。
Penのクローンなんてどう考えても問題ないでしょ。
それに、その「掟」は、あくまでクラスの利用者に、作ってる側が想定している
使い方を期待できない、甘えが許されないケースの「掟」なわけで、
利用者と使用者が同じケースなら配列をプロパティで返そうとなーんも問題ないんじゃないかと。
0332デフォルトの名無しさん
2009/11/03(火) 14:33:12変更しないように気をつければいい
それにPenのクローンはアンマネージリソースも複製するから特に遅いしDisposeも必須
普通に考えればプロパティにするのは特に不適切なケース
0333デフォルトの名無しさん
2009/11/03(火) 14:43:43「変更は」したいケースなんでしょ。
例えば何かのオブジェクトが持ってるペンと、同じスタイルで色だけ変えた
ペンで描画したい、とか何とか。
>それにPenのクローンはアンマネージリソースも複製するから特に遅いしDisposeも必須
それはメソッドに変えたところで改善される問題じゃあないね。
プロパティではなくメソッドになっていることで、それがそれなりに「重い」処理であることを明示できる、
という考えかもしれないが、明示されたところで回避方法はないのだから何の意味もない。
0334デフォルトの名無しさん
2009/11/03(火) 14:49:44使う側でいったん一時変数に入れて後でDisposeしないといけないプロパティなんか常識外れにも程がある
0335デフォルトの名無しさん
2009/11/03(火) 14:50:49っていうサインにはなるか……。
自分の書いたコードでも実装の詳細なんて数日で忘れちゃうことを考えれば、
確かにそういう意味ではメソッドの方が適切かもしれない。
ただ、個人的にはこんなものまでGetXXXなんてメソッドにするのは嫌いw
0336デフォルトの名無しさん
2009/11/03(火) 14:53:52Penに限れば確かにそうだねすまん。
Win9x以外はPenのDisposeを必ずしも呼ぶ必要はないって説も聞いたことはあるけど。
0337デフォルトの名無しさん
2009/11/03(火) 15:06:51もちろんusingも使ってない・・・
0338デフォルトの名無しさん
2009/11/03(火) 16:06:560339デフォルトの名無しさん
2009/11/03(火) 16:22:560340デフォルトの名無しさん
2009/11/03(火) 17:50:51わざわざ反抗する意味がわからない
0341デフォルトの名無しさん
2009/11/03(火) 23:55:440342デフォルトの名無しさん
2009/11/04(水) 00:16:534.0 にならないと DataGrid 使えないとかそういう理由はあるけど、
それも来年の初めには解消されるしねぇ。
0343デフォルトの名無しさん
2009/11/04(水) 00:38:23データグリッドはいらないはずだったんだよ
まあ面倒でわかりづらかったけど
0344デフォルトの名無しさん
2009/11/04(水) 02:14:16技術者なら掟を守った上で、更に凄いものを作るべきであって、
決して掟を破るということはあってはいけない。
掟を破って作ったもので利用者が被害を被った場合、
裁判したら賠償させられるかもしらんぞ。
0345デフォルトの名無しさん
2009/11/04(水) 02:30:13ガイドラインの話が法の話に置き換わってるぞ
0346デフォルトの名無しさん
2009/11/04(水) 02:38:15一瞬、もじが表示されて、
すぐに消えてしまうんだけど
きえないようにするには、
どうしたらいいの?
0347デフォルトの名無しさん
2009/11/04(水) 02:43:260348346
2009/11/04(水) 02:45:49もうええわ
0349デフォルトの名無しさん
2009/11/04(水) 03:08:370350デフォルトの名無しさん
2009/11/04(水) 03:17:06ガイドラインだけじゃなく、標準(基準)のことだろ。
日本では標準から外れても動いていれば評価されるが、
海外では標準から外れると、例え素晴らしい動きをしても評価されないからな。
0351デフォルトの名無しさん
2009/11/04(水) 03:50:310352デフォルトの名無しさん
2009/11/04(水) 06:11:440353デフォルトの名無しさん
2009/11/04(水) 07:36:260354デフォルトの名無しさん
2009/11/04(水) 08:05:09使ってるんだけど、何度やっても何も起こりません。
わからないのでいつもMessageBox.Show()を使ってるのですが、
どうすれば正しい結果が得られるのでしょうか。
0355デフォルトの名無しさん
2009/11/04(水) 08:41:590356デフォルトの名無しさん
2009/11/04(水) 09:14:46GUI が必須なのかどうかで回答変わるが。
GUI 必要ないならそもそもコンソールアプリで作れ。
そうでないなら、適当なデバッグ用のTextBlockでも用意して、
そいつに debugText.Text += "出力";
0357デフォルトの名無しさん
2009/11/04(水) 10:10:29VisualStudioでデバッグ中なら出力ウインドウに出てるよ
0358デフォルトの名無しさん
2009/11/04(水) 11:05:12方法としては大きく分けて、
winプロジェクトで作った物を使う。
c#のコードの中でwinapiを呼び出して使う。
の2種類だと思うのですが、後者でもbitmapを部分的に呼び出して、drawlineとかで線をひくことはできるのでしょうか?
今の所ブロック状にbitmapを分けて、描写したいブロックを呼び出して絵を描く、戻す。ということを考えているのですが、
関数の説明などを見ていてもいまいち掴めません。
0359デフォルトの名無しさん
2009/11/04(水) 12:02:12デフォルトで何ビットでしょうか?
0360デフォルトの名無しさん
2009/11/04(水) 12:06:480361デフォルトの名無しさん
2009/11/04(水) 12:37:22MessageBox.Show(aes.KeySize.ToString());
あんがと。
0363デフォルトの名無しさん
2009/11/05(木) 00:11:26拾えないウィンドウメッセージがあるみたいだが、
どこかに一覧か法則が公開されてないのかな
0364デフォルトの名無しさん
2009/11/05(木) 08:56:53尾崎かよ
0365デフォルトの名無しさん
2009/11/06(金) 00:14:36面倒なのでpublicとか余計なの省略するが
class MyClass{
int x,y;
}
Main(){
Myclass m,n=new MycLass();
m.x=20; m.y=30; n.x=20; n.y=30;
if (m==n){
}
mやnは参照なので実行されない。全部のメンバが等しいことを調べるのはどうやりゃいい?
0366デフォルトの名無しさん
2009/11/06(金) 00:18:45言ってることのお馬鹿具合とこの口調のギャップがなんかユーモラスだな。
体を張った新手のギャグのつもりだろうか
0367デフォルトの名無しさん
2009/11/06(金) 00:21:57if(x==y){
ってやったら実行されるじゃん。
xのアドレスとyのアドレスが違うから
if(x==y)が実行されなかったら困るだろ?
参照型だからってなんで実行されないんだよ!不便!
0368デフォルトの名無しさん
2009/11/06(金) 00:22:16や operator==, != あたりの実装を自力でやれ。
でも Mutable なクラスに対してのソレは推奨されない。
というか例のようなのは struct にしろよ。真面目にやるんなら
こっちもそれやらないといけないけど
0369デフォルトの名無しさん
2009/11/06(金) 01:38:58そんなおバカなこと言っているのはお前だけだ
もう一度勉強しような?
0370デフォルトの名無しさん
2009/11/06(金) 04:44:24今後者の方法でやってるんだけどcreatefilemappingを作ってから行き詰ってます。
そのあとに新しい大きなビットマップを作って、
viewして部分的に取り出して線とかイメージを描きたいと思っているんだけど、全く分かりません。
やはり.netのbitmapをファイルマップする事は無理なのでしょうか?
0371デフォルトの名無しさん
2009/11/06(金) 05:37:37まあ、とりあえず単純に大きなBitmapから処理に必要なブロックを切り出して
Bitmap(略, IntPtr scan0) コンストラクタの scan0 にバイト配列食わせたら?
それかBitmapの一部を切り出して読み込むStreamクラス作って渡すとかさ
それが出来てから表示とか線の描画、テンポラリ、保存を順に解決してきなよ
質問の内容読んでも、どういう処理の流れで作ろうとしてるのかさっぱり読み取れん
0372デフォルトの名無しさん
2009/11/06(金) 06:15:06素人考えだとあっちこっち読み書きしたいがメモリ使用量を抑えたい場合、自前でやる場合コンパクトにコントロールしやすそうだが。メモリマップドファイル使うとOSネイティブの実装として速いけど細かいコントロールはしにくそう?
教えてエロイ人。
0373デフォルトの名無しさん
2009/11/06(金) 06:49:29回答ありがとうございます。
普通にやると大きなビットマップを作った時点でメモリがオーバーしてしまう状態です。
filemapを作ったあとに大きなビットマップが作れない状態です。
>>それかBitmapの一部を切り出して読み込むStreamクラス作って渡すとかさ
これもfilemapを調べる前にやろうとしたのですが、bitmapでやる方法がよく分からなかったです。
大きなビットマップを作る方法も合わせて具体的に教えてもらえませんか?
0374371
2009/11/06(金) 07:15:30すまんが「大きなビットマップを作る」の意味が分からん
元がJpeg画像とかで、それをBitmapに変換してるのか?
それとも丸ごとBitmapクラスに突っ込んでインスタンスを作ろうとしてるのか?
出発点は巨大なBitmapファイルがディスクにあってそれの読み込みからじゃないのか?
処理の流れを説明してくれんと何が分からないのかが分からん
0375デフォルトの名無しさん
2009/11/06(金) 07:35:58photoshopのような感じで新規作成で大きな画像(1200*1200*15*15くらい)を何枚も作って描写加工保存、再度開くという操作をしたいと思っています。
c#で作られているpaint.netで同じ事をやるとメモリオーバーで実行されませんが、photoshopだとできるので真似したいと思っています。
さらにcomicstudiominiというソフトだと大きな画像を作って扱っていても、メモリがphotoshopに比べてほとんど消費されません。
できるなら.netのbitmapで扱えれば便利なのでそうしたいと思ってます。
0376371
2009/11/06(金) 07:57:57そういうのをBitmapクラス介してやると逆に大変そうだけどどうなんだろ・・・
とりあえず、Bitmapクラスに表示用のデータを持ってそれをフォームに描画するのなら
必要最低限のサイズはフォームを最大化したときの表示サイズじゃないかい?
GCもBitmapクラスの内部もよく知らないから間違ってるかもしれんけど、
Bitmapクラスは内部で byte[] とかでデータ持ってて、それを確保するのに
連続した空きメモリーが必要になるんじゃないかね
そうだとすると、大きすぎるBitmapクラスを作ろうとすると、メモリーの空きが足りても
確保に失敗するケースも出てくるんじゃなかろうか
いずれにしても、画像と同じサイズのBitmapクラスを作ろうとするのは無理があるよ
0377デフォルトの名無しさん
2009/11/06(金) 08:09:35ということはほとんどの機能はwinの方で作った方がいいということ…ですよね?
win内で大きな画像をファイルマップか何かの状態で保持して、それをstretchか何かで表示サイズの画像が配列にして、
.netのimage系のクラスに渡して表示をさせる。って感じでしょうか?
0378デフォルトの名無しさん
2009/11/06(金) 08:30:29ファイルへの保存は分割したバイト列を扱えるように。表示とかは分割したバイト列から適当にBitmapつくってやれば。
0379371
2009/11/06(金) 08:43:56winの方?C++とかアンマネージのこと言ってるのかな?
メモリマップ使うならC#でもC++でも大差ないと思うけど、
扱いやすいクラス作って分割管理するしかないよ
まあC++のほうが画像加工するライブラリはいろいろありそうね
Bitmapクラス使いたいなら、そのとき表示編集したい部分だけを
Streamで渡してインスタンス作ってごにょごにょすればいいんじゃない
画像全体にエフェクト掛けたりするなら、byte[] のまま自分でゴリゴリやるしかない
0380デフォルトの名無しさん
2009/11/06(金) 09:35:400381デフォルトの名無しさん
2009/11/06(金) 09:47:30winはwin32apiのことです。
クラスの分割だと使っていないときにファイルに保存になる際にメモリの開放がGCまかせになるせいで不安なのと、
>>画像全体にエフェクト掛けたりするなら、byte[] のまま自分でゴリゴリやるしかない
と言うことを考えるとG単位で扱えるらしいwin32apiの関数の方がいいかなって思ってます。
ただこれだとc#内で書くより、win32のプロジェクトにまとめて作って、c#で呼び出した方がいいかなって思っています(できるか不安ですけど)
0382デフォルトの名無しさん
2009/11/06(金) 10:28:550383デフォルトの名無しさん
2009/11/06(金) 21:35:27Navigate2を使えと書いてあるのですが
Navigate2は一体何をusingすれば使えるようになりますか?
存在しませんといわれてしまいます
.NET2.0です
0384デフォルトの名無しさん
2009/11/06(金) 21:52:290385デフォルトの名無しさん
2009/11/06(金) 22:08:19WebBrowser.Navigate (Uri, String, Byte[], String)
0386デフォルトの名無しさん
2009/11/06(金) 22:12:100387デフォルトの名無しさん
2009/11/06(金) 22:13:51>>386 はスルーで
0388デフォルトの名無しさん
2009/11/06(金) 22:15:37解決しましたありがとうございました
同等の機能がNavigateでもしようできるのですね
重ねてもうしわけないのですが
デバッグ用にステータスをテキストファイルにログとして残そうと思っております
調べたところWebBrowserのステータスが変更されるたびにStatusTextChanged のイベントが呼ばれるとか
しかし、そのようなイベントは見あたらず色々調べてもそれが存在するからそれを仕えという記述しかありませんでした
using System.Windows.Forms;
の中にあるらしいのですがちゃんと宣言してもやっぱり存在しないと言われてしまいます
このかわりになるイベントもしくは、これを使う方法を教えていただけませんでしょうか
0389デフォルトの名無しさん
2009/11/06(金) 23:02:090390デフォルトの名無しさん
2009/11/06(金) 23:10:22表示されないんです
また、手動で追加しても存在しないとおこられてしまいます
何がダメなんだろう・・・・
0391デフォルトの名無しさん
2009/11/06(金) 23:20:53EclipsってC#もできるの?
0392デフォルトの名無しさん
2009/11/06(金) 23:21:11http://www.dotup.org/uploda/www.dotup.org336396.png
こんなかんじで表示されません・・・・
0393デフォルトの名無しさん
2009/11/06(金) 23:25:34このへん読め
http://msdn.microsoft.com/ja-jp/library/aa288460%28VS.71%29.aspx
0394デフォルトの名無しさん
2009/11/06(金) 23:49:07EclipseはもっぱらJavaでしか使わないのであれだが、
PHPやCはあってもC#は無かったかも。最近確認してないけど
なんなら SharpDevelopでも試してみたら?特に薦めるポイントは無いが
ちなみにVSのC#が使いにくいとか言ったら、VS2008C++なんて使えないぜ
かなり優秀だと思うVSC#
0395デフォルトの名無しさん
2009/11/06(金) 23:51:500396デフォルトの名無しさん
2009/11/06(金) 23:58:270397デフォルトの名無しさん
2009/11/07(土) 00:03:30不満なら ReSharper でも試したら?
0398デフォルトの名無しさん
2009/11/07(土) 00:14:54それがわかるなら質問してないだろ
お前バカっていわれない?
>>392
そのイベントは初期搭載(デザイナでは表示されない)から自分で宣言する必要がある
宣言するのは
using System.Form;
の下に
public delegate void StatusTextChanged(object sender, EventArgs e);
って一文を追加するだけ
それだけで使えるようになるよ
0399デフォルトの名無しさん
2009/11/07(土) 00:48:05WindowsFormアプリケーション作るときなぜかしらんけど
Paticalだっけ?クラスを分割するやつ使われててソースコードが四つくらいにわけられない?
あれがなんかきもいんだよなぁ。
using Windows.Forms;
staticMain(){
Application.Run(new Form());
みたいなことをするだけのちょっとしたプログラムつくるも
デリゲートだのコンストラクタの設定だのがProgram.csとかForm.csとか一個のcsファイルでできるじゃんっていうのも
無駄にファイル多くなってキモイんだよね。
メモ帳でもいんだけど、行数が表示されないのが不便。
0400デフォルトの名無しさん
2009/11/07(土) 00:54:05デザイナの操作に連動して勝手に編集される部分のコードを
わざわざ見えるようにしてもアホが編集しちゃうだけだろ
そんで、勝手にコード壊された><って文句言われるくらいなら
触る必要が無いor触ってはいけないコードは隔離すべき
0401デフォルトの名無しさん
2009/11/07(土) 01:02:48struct Person{
int age=0;
}
みたいなのができない。クラスだったらできるのに・・・
なんで?
0402デフォルトの名無しさん
2009/11/07(土) 01:05:15もちろん意味付け整理してクラスそのものを分割する事を検討するけどね
0403デフォルトの名無しさん
2009/11/07(土) 01:06:280404デフォルトの名無しさん
2009/11/07(土) 01:12:14メモ帳でも書けるぐらいC#に習熟してるのに、なぜそんな事を言い出すのか理解に苦しむ。
嫌ならデザイナ使わず手書きすればいいだけの話だろ。簡単でしょ?
0405デフォルトの名無しさん
2009/11/07(土) 01:14:27http://msdn.microsoft.com/ja-jp/library/saxz13w4%28VS.80%29.aspx
>構造体のコピーは、コンパイラによって自動的に作成され、破棄されるので、既定のコンストラクタやデストラクタは不要です。
↓このことから
>・構造体では、既定のコンストラクタ (パラメータなしのコンストラクタ) やデストラクタを宣言できません。
つまり既定のコンストラクタは勝手に定義されるから、それと矛盾する記述を禁止しているんでしょ
0406デフォルトの名無しさん
2009/11/07(土) 01:36:26別にメモ超で書くのは熟練じゃないし。
俺は全部手書きでやりたいんだよ。
Point p=new Point(100,100);
Fomr1.Location=p;
Form1BacColor=Color.Black;
Form1>OnClick+ ner EvnetHandler(クリック);
とかな。足しかに自動入力してくれると楽だけど自分で全部管理しないと気持ち悪くて仕方ない。
本来10KBくらいの容量ですむものがslnファイルとかbinとrereaseに同じexe作られて50KBくらいの大容量になっちゃって気持ち悪いし。
0407デフォルトの名無しさん
2009/11/07(土) 01:44:39何が言いたいんだろ
0408デフォルトの名無しさん
2009/11/07(土) 01:52:41もっと良いエディタないか聞きたいだけ
0409デフォルトの名無しさん
2009/11/07(土) 02:20:310410デフォルトの名無しさん
2009/11/07(土) 02:23:30使いやすい使いにくいは主観だから、具体的なこと言わずに喚いてもしょうがないよ
まあ、ファイルがいっぱいなのがキモイってのは分かったから、それだけ回答するが
Visual Studioでフォーム作るときは新規作成でクラスファイル追加して
Formの継承クラスにして後は全部手書きでコントロール配置できるよ
つまり全部手書きしたいのにデザイナ前提のWindows フォームを使おうとするのが悪い
0411デフォルトの名無しさん
2009/11/07(土) 02:27:310412デフォルトの名無しさん
2009/11/07(土) 02:30:34コントロール類もフォームも結局ただのクラスである事を思い出せば答えは簡単な話であった
0413デフォルトの名無しさん
2009/11/07(土) 02:44:34すまん「50KBの大容量」について書いてるの見落としてたな
少ないファイル数と容量を実現するには、VS立ち上げてプロジェクト一切作らずに
新規作成で空のファイル作ってコード書き終わったら名前をつけて保存
クラスはいくつでも1つのファイルに押し込めるから1個で大丈夫だよ
ビルドはコマンドラインで自分でやることになるけど
スタートメニューにある「Visual Studio 2008 コマンド プロンプト」を起動
>csc ファイル名.cs
でおk・・・と思ったがまだ容量に無駄があるな・・・
できればソースを保存するHDDをNTFSで再フォーマットして
その際にアロケーションユニットサイズを512にしよう
そうしないと1文字しか書いてないファイルでもほぼ4kbもの大容量が無駄になるよ
0414デフォルトの名無しさん
2009/11/07(土) 03:24:15特定のURLをクリックしたときだけ違う動作をさせたいのですが
これから遷移するURLを取得する方法などはありますか?
移動してからのURL取得はできるのですが
移動前にはクリックしたURLを取得したりはできないのでしょうか
よろしくお願いします
0415デフォルトの名無しさん
2009/11/07(土) 03:41:48WebBrowser使ったこと無いからオブジェクトブラウザで眺めただけだけど
OnNavigatingでいけそうな気がするよ
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.webbrowsernavigatingeventargs.aspx
質問の意図がページ遷移ではなく、Aタグのクリック時ってことだとしたらこれじゃだめだけどね
0416デフォルトの名無しさん
2009/11/07(土) 03:51:42早速の回答ありがとうございました解決しました
続けて申し訳ないのですが
リファラを設定していて、トップページ以外からの遷移を拒否しているサイトに接続する場合
ボタンなどで、Navigateで遷移するとリファラがクリアされアクセスが拒否されてしまいます
リファラを自由に設定することはできないみたいなので
画面上のリンクを、クリックした扱い(リファラを持って)そのページを表示することはできないのでしょうか?
ヨロシクお願いします
0417デフォルトの名無しさん
2009/11/07(土) 04:02:21Navigate(string urlString, string targetFrameName, byte[] postData, string additionalHeaders)
additionalHeaders に "Referer: http://www.google.co.jp/\n" とかやったらいけそうじゃない?
相変わらずオブジェクトブラウザで眺めただけだから確認してないけどさ
0418デフォルトの名無しさん
2009/11/07(土) 04:04:14その方法だと、POSTになってしまいませんか?
GETでやる方法はないでしょうか
0419デフォルトの名無しさん
2009/11/07(土) 04:08:25postdataをNULLにすればGETになりました
ありがとうございました
0420デフォルトの名無しさん
2009/11/07(土) 05:42:09Webriqとかに汎用できるのかと思ったらできないみたいだしさ
0421デフォルトの名無しさん
2009/11/07(土) 09:41:43むしろそれ。なので用途も同じ
そのDocumentが持ってるメンバは大体そのつもりで見てくと正体わかるよ。
ただしJavaScript側をまったく知らない場合、ちょっと判別や理解がしづらいかもしれない
0422デフォルトの名無しさん
2009/11/07(土) 09:51:50webBrowser.DocumentからJavaScriptで書くときの要領でDOMを辿り、
HtmlElementを特定してそれのClickイベントをハンドルするって方法もある。
ハンドラに来るsenderからUrlに限らず、「そのタグ」に書かれている全ての内容を引ける
詳しくはオブジェクトブラウザを見るか、インテリセンスで出てくる候補をつぶさに観察してください
0423デフォルトの名無しさん
2009/11/07(土) 09:56:19それめんどくさすぎないかい?
どのタイミングでハンドルする?DocumentComplete?
ページロード中にすばやくリンク押された場合を考えると
結局 WM_LBUTTONDOWN も処理しないとダメで厳しい気がするが
0424デフォルトの名無しさん
2009/11/07(土) 10:06:04俺はDOMに慣れちゃってるので面倒とは思わないが、JavaScriptと同じノリでなんでも操作できるのが面白いかなと
なのでネタとして追記してみた。
使い道としては‥ 既存サイトを開いて一部を変更したり、ページ上のあるアクションのタイミングで
何かしたい場合に使う。なのでやりたい内容次第。
モデルが見えてるなら、かなり楽ちんなんだぜ
0425デフォルトの名無しさん
2009/11/07(土) 10:14:23DOMを辿るタイミングとしてはCompleteは見てるな。
以前に作ったのは、ファイルブラウザのような物を作って、適当にファイルを選択してショートカットキーを押すと
設定してある既存のうpロダページが立ち上がり、ボタン押下で
マルチパートPOSTするようなアプリケーション。
開いた任意ろだページのDOM辿って処理する流れにした。
流れ分かればわき道にそれずに書けるので逆に手早かったりもする
0426デフォルトの名無しさん
2009/11/07(土) 10:20:05なるほど、デリゲートをセットするタイミングの難しさがあるから
漏らさず拾うのは無理がある手法だけど、ネタとしてならありかね
TABLEのカラムクリックを拾ってソートしたりとか、
そういう目的のために使う分にはいいかもね
0427デフォルトの名無しさん
2009/11/07(土) 10:30:18ここんとここのスレでは WebBrowserコントロールの話が出てるので、選択肢の一つとしてあげてみた。
この方法の場合、JavaScript側で使うようなDOMの知識は必須
0428デフォルトの名無しさん
2009/11/08(日) 00:55:06自作コントロールにあるプロパティをVC#のプロパティウィンドウに表示したいのですが
どうすればいいのでしょうか?
↓では出てきませんでした。
public static int Signedmitaina{
get{xxx}
}
0429デフォルトの名無しさん
2009/11/08(日) 00:59:410430デフォルトの名無しさん
2009/11/08(日) 01:07:05継承ピッカーってどこにありますか?
0431デフォルトの名無しさん
2009/11/08(日) 01:07:37まずstatic消せ
0432デフォルトの名無しさん
2009/11/08(日) 01:10:27C#でユーザコントロールを作りました。
新たにウィンドウズフォームプロジェクトで、
フォームに自作コントロールを貼りつけました。
コントロールを選択するとプロパティウィンドウに継承元のプロパティが並ぶのですが、
自作コントロール専用プロパティをプロパティウィンドウに表示するコーディング方法が知りたいのです。
>>431
あら不思議、消したら現れました。
ありがとうございます。
まず、ということは、続きがあったりしますか
0433デフォルトの名無しさん
2009/11/08(日) 01:11:41継承されたフォームテンプレートがそんざいしないのですが
どうすれば表示されるようになりますか?
0434433
2009/11/08(日) 01:31:03新しい項目で継承〜の項目が
こんな感じで表示されません
http://www.dotup.org/uploda/www.dotup.org340210.png
http://msdn.microsoft.com/ja-jp/library/cafzf1dy%28VS.80%29.aspx
[新しい項目の追加] ダイアログ ボックスを使用して、継承フォームまたは継承コントロールを Windows ベースのアプリケーションに追加する
どうすれば表示できるでしょうか
0435デフォルトの名無しさん
2009/11/08(日) 01:32:390436デフォルトの名無しさん
2009/11/08(日) 02:14:050437デフォルトの名無しさん
2009/11/08(日) 09:05:42[プロパティ 属性]でくぐれ
0438デフォルトの名無しさん
2009/11/08(日) 21:19:14Webページを閲覧する場合通常は、画像を読み込みつつ表示されていくと思います
現在
自前でWebClienteを用意し、Webページのソースを取得
画像をダウンロードし
ダウンロードしたソース内のURL置換を行い
ローカルに保存させた画像にパスを変更
WebBrwserコンポーネントにソースを投げて表示
という仕組みでうごいているのですが
ダウンロードを同期的に行っているため全てのダウンロードが終了するまでフリーズ状態となります
重い画像が使用されているページなどはフリーズ時間が長くなってしまうので
どうにか通常の場合のように読み込みつつ表示はできないものでしょうか
最初からURLだけNavigateにすればそれですむ話なのですが
よろしくお願いします
0439デフォルトの名無しさん
2009/11/08(日) 22:07:10WebClientの〜Asyncってメソッド使ってみたら?
0440デフォルトの名無しさん
2009/11/09(月) 18:03:28あれを消す方法ってありませんか?
0441デフォルトの名無しさん
2009/11/09(月) 18:35:570442デフォルトの名無しさん
2009/11/09(月) 19:11:30ありがとうございますそういう名前だったのですね
解決しました
続いて申し訳ないのですが
DeselectTabで右に移動はできるのですが
左に移動する方法ってありますか?
0443デフォルトの名無しさん
2009/11/10(火) 09:54:04右も左も無いと思うけど。インデックス番号は0から始まる。
0444デフォルトの名無しさん
2009/11/10(火) 09:55:48ttp://pc12.2ch.net/test/read.cgi/tech/1257067411/
0445デフォルトの名無しさん
2009/11/10(火) 09:57:07現在の場所調べてひとつ前にSelectしては?
0446デフォルトの名無しさん
2009/11/10(火) 16:13:39TextBoxを作成すると、DataGridのマウスホイールでのスクロールが機能しなくなる問題がありました。
フォーカスを変えても変化が無いので、
MouseWheelというイベントを試してみようと思いましたが、再現する方法が難しく強引な様な気がして断念しました。
TextBoxのスクロール機能を停止させてDataGridのスクロールを有効にする方法を教えてください。
御願いします。
0447446
2009/11/10(火) 18:00:550448デフォルトの名無しさん
2009/11/10(火) 18:15:32確認できてないけどフォーカスだろ?
0449446
2009/11/10(火) 21:16:51申し訳ないです。DataGridはフォーカスとは言わないかもしれないですが…。
Formの上にDataGrid(展開するとDataSourceが枠の縦幅を越えるのでスクロールが表示される)、
下にTextBox(マルチライン)を配置して
DataGrid或いはTextBox上でスクロール(ホイール)すると、
Form内のどの場所であってもTextBoxのみがスクロールされます。
DataGrid上をクリックしてもアクティブになるような事がないので、
どんな操作をしてもTextBoxしかスクロールせず困っていました。
EnabledでTextBoxを無効状態にすれば、スクロールも強制的に機能しなくなり、
DataGridのスクロールも機能するようになったという次第です。
釈然としませんが、MouseLeaveでEnabledを切り替えようかと検討していたところです。
0450デフォルトの名無しさん
2009/11/10(火) 22:15:392.0 以上ならDataGridView使いなよ。
うちの2008ExpressじゃDataGridなんてツールボックスにも出てこない。
0451446
2009/11/11(水) 22:31:50規制解除。DataGridViewでも駄目ですた。これかもしれない。。。
0452デフォルトの名無しさん
2009/11/11(水) 22:47:05それで発生していないか、それともアプリからスクロールバー制御とかしてない
からなのか。
0453デフォルトの名無しさん
2009/11/14(土) 16:36:14Graphics.DrawImage()を使っているのですが、もっと速い表示方法ないですか?
ドット補完なしカクカクのまま拡大で十分です
60fps出したいのに、40fpsくらいしか出ない
拡大せずに等倍だと60fps出ます
0454デフォルトの名無しさん
2009/11/14(土) 18:42:050455デフォルトの名無しさん
2009/11/14(土) 19:08:43http://www.atmarkit.co.jp/fdotnet/dotnettips/384expdragdrop/expdragdrop.html
この方法でエクスプローラへドラッグ&ドロップができるようになりましたが、
この中の図の説明にある通り、「なおエクスプローラでは、[Ctrl]キー+[Shift]キー
を押しながら、もしくは[Alt]キーを押しながらドラッグ&ドロップすると「リンク」
(=ショートカット)を作成することができるが、本稿の方法ではエラーが出るので
「DragDropEffects.Link」には対応しなかった」ことを確認。
DragDropEffects.Linkを設定してDoDragDrop()しても、エクスプローラにDropしたときに
エラーが出て「%1が見つかりませんでした」とメッセージされます。
DataFormats.FileDropフォーマットでfiles配列をDataObjectに載せる以外にほかのデータを
設定する必要があるのでしょうか?ご存知の方おられましたらよろしく。
0456デフォルトの名無しさん
2009/11/14(土) 19:09:510457デフォルトの名無しさん
2009/11/14(土) 20:57:33WPFかDirect3D
0458デフォルトの名無しさん
2009/11/15(日) 22:55:41C#ってソリューションエクスプローラにメソッドやメンバ変数って表示されへんの?
さっき作ったばかりの関数名なんだっけ?と揮発性の高いオツムなんで
見えないと不安でしょうがない。
トシかなぁ・・・。
0459デフォルトの名無しさん
2009/11/15(日) 22:58:100460デフォルトの名無しさん
2009/11/15(日) 22:59:060461デフォルトの名無しさん
2009/11/15(日) 23:03:59ソースの見通しがいいから必要性を感じない
0462デフォルトの名無しさん
2009/11/15(日) 23:48:59至れり尽くせりだしなぁ。VC#
0463デフォルトの名無しさん
2009/11/16(月) 00:08:39一種の囲い込みだよなw
0464デフォルトの名無しさん
2009/11/16(月) 00:14:05俺の精神安定のためにもVS2010でもっと賢くなってくれ…。
0465デフォルトの名無しさん
2009/11/16(月) 00:34:34そんなもんがないプラットフォームなんて組み込みなんかじゃざらにあるわけで、
それならそれで案外割り切ってコーディングできるもんだし、思ったほどストレスもないよ。
要は使えるはずのものが使えない不条理が辛いわけで。
切れないハサミならハサミで、それを工夫して使いこなす楽しみもないではないしね。
まあそれも程度問題だけどさ。
0466デフォルトの名無しさん
2009/11/16(月) 21:12:48中途半端にVC#に似てるとダメだな
0467デフォルトの名無しさん
2009/11/16(月) 21:23:380468デフォルトの名無しさん
2009/11/16(月) 21:28:460469デフォルトの名無しさん
2009/11/16(月) 21:34:50DataFormats.FileDrop の代わりに Shell IDList Array を DataObject に使う必要がある。
渡すデータは大層めんどくさい構造だが、
ttp://www.dotnetmonster.com/Uwe/Forum.aspx/dotnet-interop/3482/Drag-and-Drop
ここに作り方がコードで示されてた。
0470デフォルトの名無しさん
2009/11/16(月) 21:40:000471デフォルトの名無しさん
2009/11/16(月) 21:42:52それは認めるが、いくつかは入れないと開発すら始められないのはいただけない
プラグインの多さが標準のエクリプスの機能不足を証明しているのは皮肉なものだ
0472デフォルトの名無しさん
2009/11/16(月) 21:42:55pluginsとか消して回っても起動時エラー続出。
0473デフォルトの名無しさん
2009/11/16(月) 21:50:350474デフォルトの名無しさん
2009/11/16(月) 21:59:12楽だから。先にeclipseから入るとvsは別の意味でとろく感じる。
0475デフォルトの名無しさん
2009/11/16(月) 22:03:01>楽だから。別の意味でとろく
具体性がなさ過ぎてチラシの裏レベル
0476デフォルトの名無しさん
2009/11/16(月) 22:03:130477デフォルトの名無しさん
2009/11/16(月) 22:06:400478デフォルトの名無しさん
2009/11/16(月) 22:13:51そんなに怒るなよ。
0479デフォルトの名無しさん
2009/11/16(月) 22:15:44うぜえな、いちいち煽るなよ
0480デフォルトの名無しさん
2009/11/16(月) 22:16:02ないならスレチをベラベラとなにをやってるの?
0481デフォルトの名無しさん
2009/11/16(月) 22:20:00しらねえ奴はすっこんでろw
0482デフォルトの名無しさん
2009/11/16(月) 22:22:450483デフォルトの名無しさん
2009/11/16(月) 22:24:26馬鹿な人はそれがわからんのです
0484デフォルトの名無しさん
2009/11/16(月) 22:30:060485デフォルトの名無しさん
2009/11/16(月) 22:32:540486デフォルトの名無しさん
2009/11/17(火) 00:03:180487デフォルトの名無しさん
2009/11/17(火) 00:35:53うまくいってるよね
0488デフォルトの名無しさん
2009/11/17(火) 01:20:040489デフォルトの名無しさん
2009/11/17(火) 01:27:060490デフォルトの名無しさん
2009/11/17(火) 01:29:350491デフォルトの名無しさん
2009/11/17(火) 07:29:19Windows アプリケーション作ろうとすると
Main関数とか勝手に書き込まれちゃうし。
static void Main(){
}
これとか、ボタンやフォームの位置やサイズはすべて自分でコードにちゃんと書かないとプログラミングしたっていう気がしない。
0492デフォルトの名無しさん
2009/11/17(火) 07:37:040493デフォルトの名無しさん
2009/11/17(火) 07:40:06またおまえかよ
先日やり方教わったばかりだろ
VS使って1から好きなだけ書けよ
0494デフォルトの名無しさん
2009/11/17(火) 08:09:34dynamicを使えばジェネリックやvarによる型推論を使う必要が少なくなる。
早くC#4.0がベータ版じゃなくて正式実装されないかなー
0495デフォルトの名無しさん
2009/11/17(火) 08:15:28おまえも別の意味で同僚にいたら( ゚Д゚)<氏ね!って感じだな。
0496デフォルトの名無しさん
2009/11/17(火) 08:16:470497デフォルトの名無しさん
2009/11/17(火) 08:21:21それはいやだ
宣言固定で引数がIntPtrだらけになるより
自分でオーバーロード書いてマーシャリングしてくれるほうがいい
0498デフォルトの名無しさん
2009/11/17(火) 09:09:310499デフォルトの名無しさん
2009/11/17(火) 09:16:210500デフォルトの名無しさん
2009/11/17(火) 09:28:03あったwwwwwwwww
マジありがとうwwwwwwwww
0501デフォルトの名無しさん
2009/11/17(火) 13:41:59forの二重ループするしかないですか?
0502デフォルトの名無しさん
2009/11/17(火) 13:58:380503デフォルトの名無しさん
2009/11/17(火) 14:31:020504デフォルトの名無しさん
2009/11/17(火) 17:28:18誰かが開いていると他の人は読み取り専用で読み込むようにしたいです。
fileStream = new FileStream( loadPath, FileMode.Open, FileAccess.ReadWrite, FileShare.Read );
この記述でIOExceptionの例外を受け取ったら誰かが編集中と判断して
FileAccess.ReadWriteをFileAccess.Readに切り替えて読み込もうとしましたが出来ませんでした。
FileShare.Readを指定すれば読み取り専用で開くことは出来ると思ったんですが。
コピーを作成してそっちを読むという方法もありますが、できれば1つのファイルで完結させたんですが
何か方法はありますか?
0505デフォルトの名無しさん
2009/11/17(火) 19:07:340506455
2009/11/17(火) 22:01:53おお。お答えありがとうございました!!早速見てみます!!またよろしくです!!
0507デフォルトの名無しさん
2009/11/17(火) 22:04:110508デフォルトの名無しさん
2009/11/17(火) 22:07:350509デフォルトの名無しさん
2009/11/17(火) 22:07:56テキスト一行や数バイト読むためにいちいちスレッド起こすのか
0510デフォルトの名無しさん
2009/11/17(火) 22:10:540511504
2009/11/18(水) 10:28:25fileStream = new FileStream( loadPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite );
このようにしたところ上手く読み込めました。
しかし、最初にFileAccess.ReadWriteで読み込んでいた方のプロセスで書き込みを行おうとすると例外が発生し
別のプロセスで使用されているためプロセスはファイル○○○にアクセスできませんというメッセージが返ってきます。
最初に開いた人は読み書きできて、あとから開いた人は読み込みだけできるようにしたいんですが。
このままだと複数の人が開くと誰もファイルを更新できなくなってしまいます。
解決策があれば教えていただきたいです。
0512デフォルトの名無しさん
2009/11/18(水) 11:02:360513デフォルトの名無しさん
2009/11/18(水) 13:17:42ん?ほんとか?
ネットワークだとうまくいかないのかな?
0514504
2009/11/18(水) 14:48:57調べてみましたがFileSystemRightsだとファイルの一般的な排他制御での
一時的なロックという扱いには出来ないようですね。
>>513
ローカルでも無理なようです。
アプリを複製して同時起動し、ローカル内の1つのファイルにアクセスした場合も同じことが起きました。
IOException例外のあとの読み込みで中身をメモリにコピーしてからすぐに閉じることで一応解決はしましたが
開いたままにしておくと最初に読み書き両用で開いた方もアクセス出来なくなるようです。
本当はfileStreamに常にアクセスできるようにしておきたいんですが閉じるしか術はないみたいですね・・・
0515デフォルトの名無しさん
2009/11/18(水) 15:48:39そんな馬鹿な、と思ってこれだけ書いて動かしてみたが問題なく動いた
private FileStream fileStream = null;
private void button1_Click(object sender, EventArgs e){
try {
fileStream = new FileStream("test.txt", FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
} catch (IOException) {
fileStream = new FileStream("test.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
}
}
private void button2_Click(object sender, EventArgs e){
fileStream.Write(Encoding.Default.GetBytes("aaaaaa"), 0, 6);
}
private void button3_Click(object sender, EventArgs e){
fileStream.Close();
}
0516504
2009/11/18(水) 17:01:20原因を特定できました。
更新処理で
fileStream.Close();
if ( File.Exists( savePath ) ) File.Delete( savePath );
m_fileStream = new FileStream( savePath, FileMode.CreateNew );
こんな風に書いていたんですがFile.Deleteは他のでFileStreamに読まれている時点で使えませんね。
button2_Clickの記述を見てそういえば・・・と。
すでにファイルがある場合にIOExceptionがスローされるのを避けるために事前に削除しようとしてましたが
FileMode.Createを指定すれば良かった事に気がつきました。
完全に自分の凡ミスでした。お騒がせしてすみませんでした。
0517デフォルトの名無しさん
2009/11/18(水) 19:21:530518デフォルトの名無しさん
2009/11/18(水) 19:24:52ってまあ今回はそもそも削除しようとするのが間違いだが。
0519デフォルトの名無しさん
2009/11/19(木) 18:19:39制約をつけてで数値型(byte, sbyte, char, short, ushort, int, uint,
long, ulong float, double)だけを指定してもらいたいと思っています。
System.ValueTypeは制約に出来ないとコンパイラにしかられてしまうのですが、
どのような指定の方法がございますでしょうか。
よろしくお願いいたします。
0520デフォルトの名無しさん
2009/11/19(木) 18:25:130521デフォルトの名無しさん
2009/11/19(木) 18:30:330522デフォルトの名無しさん
2009/11/19(木) 18:44:460523デフォルトの名無しさん
2009/11/19(木) 18:48:11Key同士を比較したときに同じだって判断できりゃいいだけだし。
0524デフォルトの名無しさん
2009/11/19(木) 18:51:500525デフォルトの名無しさん
2009/11/19(木) 20:20:080526デフォルトの名無しさん
2009/11/19(木) 20:36:54無理
>>525
キャスト
0528デフォルトの名無しさん
2009/11/19(木) 20:46:43サンクス
ついでにもう一つ
C#は列挙型の継承は出来ますか?
検索しても出来ないとあるから無理かな…
0529デフォルトの名無しさん
2009/11/19(木) 20:54:33なんか前に使ったぞ。
0530デフォルトの名無しさん
2009/11/19(木) 21:11:27調べても列挙型の継承は出来ないっぽいなぁ
それ風のクラスを作るとしたらこんな感じ?
public abstract class MyEnum{}
public abstract class MyEnums {
public static MyEnum foo;
}
public abstract class MyEnumChilds : MyEnums {
public static MyEnum bar;
}
先生方、いかがでしょう?
0531デフォルトの名無しさん
2009/11/19(木) 21:11:390532デフォルトの名無しさん
2009/11/19(木) 21:16:37class MyEnum {
public static readonly MyEnum Foo = new MyEnum(0);
public static readonly MyEnum Bar = new MyEnum(1);
private int value;
private MyEnum(int value) { this.value = value; }
//あとはEqualsやGetHashCodeや==などを実装
}
0533513
2009/11/19(木) 21:17:49クラスならvalueはいらんね
常に参照比較でおk
0534デフォルトの名無しさん
2009/11/19(木) 21:22:23なるほどなるほど…
とても勉強になりました
ありがとう!
0535デフォルトの名無しさん
2009/11/19(木) 21:23:580536デフォルトの名無しさん
2009/11/19(木) 21:27:20参照というのはGCによって管理されたオブジェクトにアクセスするためのハンドルです
0537デフォルトの名無しさん
2009/11/19(木) 21:32:22ひょっとしてポインタ = メモリアドレス、とでも思ってるのかなw
0538デフォルトの名無しさん
2009/11/19(木) 21:34:580539デフォルトの名無しさん
2009/11/19(木) 21:37:34GCによって移動されても追跡できるのがハンドル,そうでないのがポインタ
0540デフォルトの名無しさん
2009/11/19(木) 21:39:01みかたをかえれば
たとえばstr型もint型もdougle型ポインタ型もまったく同じだよ。
どれもメモリ上の数値でしかない。
同じように操作できちゃうと困るから違うようにみせかけて
人間が勝手に違うものとして認識してるだけ。根本的には
何もかもメモリ上の数値。
それをわからずに、一方的な観点でしかものをみられない人は
str型とint型は全然違うと思い込んでる。
0541デフォルトの名無しさん
2009/11/19(木) 21:42:36いや、そういう話をしてるわけじゃないから。
0542デフォルトの名無しさん
2009/11/19(木) 21:44:18そういう話だよ。みんな物を一方的な側面でしか見られないから
同じだとか同じでないとか決め付けたがる。
「何を中心として考えるか」で同じか違うかなんて変わってくるだろうが。
0543デフォルトの名無しさん
2009/11/19(木) 21:46:01なんかズレたお方。
本質的に違わない、とは、別の言い方をすれば機能的に等価だということ。
君が言ってるような青臭い話とは全然違うw
0544デフォルトの名無しさん
2009/11/19(木) 21:47:180545デフォルトの名無しさん
2009/11/19(木) 21:48:48実はEnum.GetValues/GetNamesもリフレクションで実装されてる
0546デフォルトの名無しさん
2009/11/19(木) 21:50:220547デフォルトの名無しさん
2009/11/19(木) 21:51:57それでいいのか?
0548デフォルトの名無しさん
2009/11/19(木) 21:52:26いや、そういう話じゃないから・・・いやほんと。
間違いを指摘されたからって別に必死で自己弁護せんでもいいよ?
0549デフォルトの名無しさん
2009/11/19(木) 21:54:09C#ならその違いが表に出てくることは普通ない
0550デフォルトの名無しさん
2009/11/19(木) 21:54:55見かたを変えてどうするよwww
なんのために誤解がなくなるよう厳密に仕様書で言葉定義してるのか考えてみな
素人さんか??
0551デフォルトの名無しさん
2009/11/19(木) 21:57:01ぬああ、、駄目だ
わけわかめになってきた
汎用性のある継承出来るEnumクラスって誰か作って無いのかな?
0552デフォルトの名無しさん
2009/11/19(木) 22:00:08乱用は良くないけど.NETのキモと言ってもいい非常に重要な機能だ
0553デフォルトの名無しさん
2009/11/19(木) 22:00:18その質問の答えではないけど、Enumにメソッドをくっつけたような事がしたいってことなら、
対象のEnumをprivateなフィールドに持って、implicitに相互変換可能な
イミュータブルなクラスを作るのが一番簡単でわかりやすいと思う。
0554デフォルトの名無しさん
2009/11/19(木) 22:01:370555デフォルトの名無しさん
2009/11/19(木) 22:02:22開発ツールを作る時とかぐらいしかイメージわかない・・・
あとシリアライザみたいな「クラス」を弄る場合か。
皆様どんな時に使ってますん?
0556デフォルトの名無しさん
2009/11/19(木) 22:03:20ValueObjectなクラスの数を結構減らせるのに。
0557デフォルトの名無しさん
2009/11/19(木) 22:06:320558デフォルトの名無しさん
2009/11/19(木) 22:07:480559デフォルトの名無しさん
2009/11/19(木) 22:09:43トップクラスのMyEnum.GetNames内でリフレクション使えばよいのん?
後は継承してオブジェクト追加するだけで汎用的に使える?
GetFieldって子クラスのフィールドまで走査してくれるのかな?
わけわかめ
0560デフォルトの名無しさん
2009/11/19(木) 22:10:430561デフォルトの名無しさん
2009/11/19(木) 22:12:28指定できる値が限られてるからこそ「列挙型」なんだよ?
派生クラスでどんな得体のしれない値が定義されるかわからないなら意味がないと思うんだけど?
0562デフォルトの名無しさん
2009/11/19(木) 22:13:460563デフォルトの名無しさん
2009/11/19(木) 22:18:31パラメータを列挙型にしたい
数百あるパラメータが数十セット
各セットのパラメータ重複値は数百ある
だから継承して差分だけ追加して定義したい
個別に重複した列挙型を定義すると変更に弱い
こんな理由です
>>562
むむ?
ということは継承する度にGetNamesとかGetValuesとかを定義しないといけないのん?
ぬぬぬぬぬ・・・・
0564デフォルトの名無しさん
2009/11/19(木) 22:21:52よく考えてみると継承関係が逆じゃないと成りたたん気もするな・・・
enum A { A1, A2, A3 }
enum B : A { B1, B2, B3 }
A a = B.B1; // これだと a は A として評価しようがない???
やりたいことって
enum 野菜 {根菜, 葉菜, 果菜};
enum 根菜 : 野菜 {ゴボウ, ニンジン, ダイコン}
enum 葉菜 : 野菜 {ホウレンソウ, コマツナ}
野菜 a = 根菜.ゴボウ // a == 野菜.根菜
野菜 b = 葉菜.ホウレンソウ // b == 野菜.葉菜
とかなのかね?
0565デフォルトの名無しさん
2009/11/19(木) 22:24:26ってことは、部分的に定義出来ればいいってことか。
子クラスを親クラスに代入したりはしないのか・・・。
#include とか使えたらよかったのにね。
0566デフォルトの名無しさん
2009/11/19(木) 22:29:55ベースクラスにメソッドいれとけば
派生クラスでは追加のEnum値書くだけでいいし。
0567デフォルトの名無しさん
2009/11/19(木) 22:31:59そんなに沢山あるんだったら,どうせメソッドを呼び出すときにその列挙体フィールドを直接引数に指定することはないだろ?
列挙型のソースを自動生成してしまうとか,
列挙型を使わずに文字列や数値にしておいて意味は外から後付けにするとか
そういうアプローチでいい気がする。
もし全ての値をhoge(A.A1)みたいな形で直接使うんだったら,一般論としては設計を見直すべき。
0568デフォルトの名無しさん
2009/11/19(木) 22:43:28とりあえずこんな感じで列挙出来ればいいです…
enum A = {A1, A2, A3}
enum B : A {B1, B2, B3}
foreach B myEnum in B.GetEnums {
//Dictionary<B, string> params
string tmp;
if (params.TryGetValue(myEnum, tmp)){
//A1,A2,A3,B1,B2,B3をkeyとした値について何か処理する
}
}
>>566
もし上記のような動作をさせる場合
public MyEnum GetEnums()を継承するたびに追加定義するんですよね?
なんだか無駄なような気が・・・
>>567
文字列だとコンパイル時に不正な値かどうかわからにゃい
ほかにも色々問題が…
enum A {A1=0, A2=1, A3=2}
enum B {A1=A.A1, A2=A.A2, A3=A.A3, B1=4, B2=8}
みたいにするのも有りかなとおもったけど
これ書いた瞬間無いなと思いますた(´・ω・`)
0569デフォルトの名無しさん
2009/11/19(木) 22:54:190570デフォルトの名無しさん
2009/11/19(木) 22:54:46T4 テンプレートとか結構使いやすいよ。
0571デフォルトの名無しさん
2009/11/19(木) 22:59:390572デフォルトの名無しさん
2009/11/19(木) 22:59:50あんなもん使えるか
素直にコード書いた方がマシだろ
0573デフォルトの名無しさん
2009/11/19(木) 23:05:470574デフォルトの名無しさん
2009/11/19(木) 23:10:23typeof() とごっちゃになってない?
0575デフォルトの名無しさん
2009/11/19(木) 23:14:40数はともかく、>>563を読んでも必要性が俺には腑に落ちない。
仮にそんな「互いに一部の名前が重複する値の集合」が複数必要だとしても、
素直に「コピペ継承」した方が分かりやすいんじゃないのかな。
0576デフォルトの名無しさん
2009/11/19(木) 23:15:07GetValuesとか使うならどうせコンパイル時チェックも効かないしディクショナリと同じだろ
0577デフォルトの名無しさん
2009/11/19(木) 23:15:51具体的にはどうするの??????
いろいろやってみたけど良い方法が思いつかない
public class MyEnum {
private int value;
protected MyEnum(int value) { this.value = value; }
protected abstract Type GetMyEnumType();
public static List<MyEnum> GetEnums() {
List<MyEnum> list = new List<MyEnum>();
//Type t = this.GetType(); //静的メソッドだから出来ない
foreach (FieldInfo fi in t.GetFields()) {
if (fi.IsPublic) {
list.Add((MyEnum)Activator.CreateInstance(fi.GetType()));
}
}
return list;
}
}
public class MyEnumA : MyEnum {
protected MyEnumA(int value) : base(value) { }
public static readonly MyEnumA Foo = new MyEnumA(0);
public static readonly MyEnumA Bar = new MyEnumA(1);
}
0578デフォルトの名無しさん
2009/11/19(木) 23:17:170579デフォルトの名無しさん
2009/11/19(木) 23:20:13とある集合に追加すべき項目が出来た時の修正が困難
その集合を使ってる物全てにペースト、ペースト、ペースト・・・・
継承したEnumなら該当する集合に項目を追加するだけ
便利だよー
>>576
全然違うよー
文字列なんかで指定したら使う側からしたらインテリセンスきかないし
バグの温床になる可能性が…
0580デフォルトの名無しさん
2009/11/19(木) 23:23:30何をしようとしてるのかわかんないからなんとも言えないけど。
0581デフォルトの名無しさん
2009/11/19(木) 23:24:26Enum のつもりのものを new するのも変か。
0582デフォルトの名無しさん
2009/11/19(木) 23:27:040583デフォルトの名無しさん
2009/11/19(木) 23:27:23さすがにそれは設計が酷すぎる
0584デフォルトの名無しさん
2009/11/19(木) 23:28:45機械生成はダメなん?
どっちにしても public static readonly A1 = new A(); とか百も手打ちしたりはしないでしょ?
0585デフォルトの名無しさん
2009/11/19(木) 23:29:41ちょっと怒らないから何を作ろうとしてるのかオジサンに教えてみなさい。
0586デフォルトの名無しさん
2009/11/19(木) 23:32:38へんな抽象メソッドはいってるね
もう一つのパターンの残党です
それはこんな感じでしてみたんだけど同じく怒られた
public abstract class MyEnum {
private int value;
protected MyEnum(int value) { this.value = value; }
protected abstract Type GetMyEnumType();
public static List<MyEnum> GetEnums() {
List<MyEnum> list = new List<MyEnum>();
//Type t = GetMyEnumType(); //静的メソッドだから抽象化出来ない
foreach (FieldInfo fi in t.GetFields()) {
if (fi.IsPublic) {
list.Add((MyEnum)Activator.CreateInstance(fi.GetType()));
}
}
return list;
}
}
public class MyEnumA : MyEnum {
protected MyEnumA(int value) : base(value) { }
protected override Type GetMyEnumType(){
return typeof(MyEnumA); //親に子のTypeを通知してみるが…
};
public static readonly MyEnumA Foo = new MyEnumA(0);
public static readonly MyEnumA Bar = new MyEnumA(1);
}
0587デフォルトの名無しさん
2009/11/19(木) 23:36:17typeof?
動的にそれが出来れば言う事なしなんだけど…
>>583
設計は関係ないw
このケースは文字列で指定するのが普通ですとか言われたら何も言えないけど…
>>584
機械生成???なんじゃらほい??
定義はわりと長くなっても平気だったりするから手打ちでも気にならなかったり…
>>585
とある機械のラッパークラス…
0588デフォルトの名無しさん
2009/11/19(木) 23:42:36コードの機械生成。
機械のラッパークラスってことはなんらかの仕様をそのまんまEnumに投影してるってことなんだろし
それをテキストファイルに落しこんどくわけ。
で、それを読みこんで enum を書き出すプログラムを作っといてビルド時に自動的に実行されるようにしとく。
もちろん納品するときはそのプログラムとテキストファイルも一緒に入れるわけよ。
どうしても横一列に沢山の値を定義しなきゃいけないときとかよくやる手だよ。
0589デフォルトの名無しさん
2009/11/19(木) 23:46:04なるほど、、
ふむふむ…
0590デフォルトの名無しさん
2009/11/19(木) 23:49:29・ベースクラスに Type を引数に取る GetEnums() を作って A.GetEnums(B)とか B.GetEnums(B)とかする。
・EnumUtilクラスとかのヘルパークラス作って GetEnums(Type x) を実装、EnumUtil.GetEnums(B)とかする。
・サブクラスでも GetEnums() をコピペ実装する。
メソッドが改修されることはないからデメリットはコードが増えるぐらい。
・コピペ。コンパイラになんぞたよってられっかい!!
・仕様見直し。ある意味前向きな対処だと思うけどなぁ。
・機械生成。力技だけど発展させれば仕様書からそのままコード生成とか出来るからよさげじゃね?
さあ選べ。
0591デフォルトの名無しさん
2009/11/19(木) 23:53:29パラメータ付きの所で具体的な列挙をすればおk
class hoge
{
static public Type GetEnums() { return GetEnums(typeof(hoge)); }
static public Type GetEnums(Type t) { return t; }
}
class fuga: hoge
{
static public Type GetEnums() { return GetEnums(typeof(fuga)); }
}
0592デフォルトの名無しさん
2009/11/19(木) 23:55:150593デフォルトの名無しさん
2009/11/20(金) 00:47:120594デフォルトの名無しさん
2009/11/20(金) 00:47:220595デフォルトの名無しさん
2009/11/20(金) 06:25:030596デフォルトの名無しさん
2009/11/20(金) 06:31:42log4net使ったstaticクラスのロガー取得部分でもググってみ
0597デフォルトの名無しさん
2009/11/20(金) 06:43:16遅レスだけど、それだったらhotfixがでてる
http://support.microsoft.com/kb/959540/en-us/
それかsp4を待つか(でるのか?w)
0598デフォルトの名無しさん
2009/11/20(金) 19:22:04きれいになってるよ。ポインタはメモリ内を汚す悪いやつだ。
0599デフォルトの名無しさん
2009/11/20(金) 19:42:06誤爆か? ポインタの話は初心者スレで盛り上ってたはずだが
0600デフォルトの名無しさん
2009/11/22(日) 09:37:05ローマ数字が90度回転して描画されてしまうのですが、
どうしたら良いでしょうか?
[ソース]
Graphics g = pictureBox1.CreateGraphics();
String drawString = "あいうえお�T�U�V";
Font fnt = new Font("@MS ゴシック", 16, FontStyle.Bold);
StringFormat sf = new StringFormat();
sf.FormatFlags = StringFormatFlags.DirectionVertical;
g.DrawString(drawString, fnt, Brushes.Black, 0.0F, 0.0F, sf);
fnt.Dispose();
g.Dispose();
0601デフォルトの名無しさん
2009/11/22(日) 09:47:010602デフォルトの名無しさん
2009/11/22(日) 10:58:05マルチは良くないな
0603デフォルトの名無しさん
2009/11/22(日) 12:18:21プロジェクトにアイコンを追加してビルドアクションを「埋め込まれたリソース」に変更、
追加したアイコンを「アイコンとマニフェスト」に指定するとビルド後のバイナリサイズが
アイコン1個分多く増えてしまいます。
※アイコン無しバイナリ50KBとして100KBのアイコンx2で250KBのバイナリが作成される
同じアイコンを使用しているためアイコンは1つだけ追加したいのです。
何か良い方法はないでしょうか?
「埋め込まれたリソース」にしないで「アイコンとマニフェスト」で指定したアイコンを
プログラムから読めれば良いのですが・・・。
0604デフォルトの名無しさん
2009/11/22(日) 12:54:05なのでWin32APIのLoadIcon/LoadImage関数を使えばロードできる
問題は/win32iconだとリソース番号/リソース名が明示できないことだな
一応0x7F00になってるみたいだけど保証はできない
EnumResourceNamesで列挙してみるのもいいけど一つしか埋め込まれない保証もないな 大丈夫だと思うけど
一番確実なのはrc.exe使ってリソースファイル作って設定することだが
0605デフォルトの名無しさん
2009/11/22(日) 14:20:15"000111","abc","123","あいうえお"
"000112","def","3718","かきくけこさしすせそ"
・
・
と並んだデータを
[000111][abc][123][あいうえお]
[000112][def3718][かきくけこさしすせそ]
・
・
として配列にしたいんですが、データのサイズが4万行程度*複数ファイルあり、かなり時間がかかります。
しかも頻繁に参照しないといけないので、毎回読み出すわけにもいかず困ってます。
0606デフォルトの名無しさん
2009/11/22(日) 14:48:42データ変換の論理が全く意味不明
なんで、片方は2つのフィールドを1つにしている?
0607デフォルトの名無しさん
2009/11/22(日) 14:56:10っていうか、>>605は結局何を聞きたいのかね。
これは俺の持論だけど、こういう文章推敲できない人は、
プログラミングの適性もえてして低い。
0608デフォルトの名無しさん
2009/11/22(日) 15:00:22まずデータ中の"は、どうエスケープされてる?
""か?それとも\"?
という所から聞かないと分からん。
CSVなんか簡単、枯れ果ててライブラリとかあるんでしょ。
なんて思ってるとえらい目にあうのよ。
むしろXMLの方が簡単なんだよね。規格化されてるから。
0609デフォルトの名無しさん
2009/11/22(日) 15:06:300610デフォルトの名無しさん
2009/11/22(日) 15:14:28> まずデータ中の"は、どうエスケープされてる?
特に指定されていないければ、RFC4180に従って処理するのが普通だろ
0611デフォルトの名無しさん
2009/11/22(日) 15:15:07現状で既に動いてるのがあるんだから
自力でパースしてるかデータとして存在してないのではないかと。
そこは飛ばしてもいいと思う。
あと多次元配列にしたいといってるんだから
{{"000111", "abc", "123", "あいうえお"},
{"000112", "def", "3718", "かきくけこさしすせそ"}}
こういう意味じゃないかな?
0612デフォルトの名無しさん
2009/11/22(日) 15:18:010613デフォルトの名無しさん
2009/11/22(日) 15:55:06そしてどうせ読み込むなら配列よりDataTableやListの方が便利だな
0614デフォルトの名無しさん
2009/11/22(日) 15:59:00パースしてる部分とオブジェクト生成部分を
それぞれループでぶん回せは分かるね。
データが定型的で、"とか改行とかを考える必要が無いならその処理を省けるし、
最初の列がただの数字の羅列("000111")と決まりきっているなら
行頭からの文字数で直接指定とかも考えられるw
汎用性はまるで無いけど、いちいちデリミタを検索よりは早いだろう。
全体の行数列数が決まってるならオブジェクト生成部分で早くできるかも。
>>607
他のみんなが(下手だなと思いながらも?)それなりに
(どうやって投げ返せばいいのか分からないけど)ボールを投げ返しているのに、
君だけボールとミットを地面に叩き付けて、お前は下手糞だ、となじってる様に見えるんだけど。
0615デフォルトの名無しさん
2009/11/22(日) 16:02:460616デフォルトの名無しさん
2009/11/22(日) 16:05:090617デフォルトの名無しさん
2009/11/22(日) 16:05:34具体的にフィールド何個のデータが合計何レコードあって、それに何秒かかってるから困る、
ぐらいの情報は出して貰わないと、君が遅いといってる時間が本当に遅いのかどうかも不明。
もちろん改善できるかどうかも不明。
つか、この程度の処理じゃ何一つ難しい内容は登場しないと思うんだけど。。。
何が解らないのかが解らないな。CSVの厳密なパースをしたい場合はちょっと面倒だけど。
多次元配列にする理由もわからんし。
頻繁にアクセスするという話から察して、本当に必要なのはディクショナリじゃ
ないのかとエスパーする。
あと、もし業務でやってるんだとしたら、依頼元なり上司なりに「スキル不足でできません」と
ちゃんと言ってね。力技でいい加減なものを作られるぐらいなら「僕にはできません」と
言って貰った方が、依頼元から見れば1000倍マシだから。
0618デフォルトの名無しさん
2009/11/22(日) 16:12:25もしかしたら、使うCSVを毎回読み込むか、最初に使わないものも含めて全部読み込んでおくか
の2種類しか思いつかなかったから全部読み込むのを速くしたかった、と言うことかもしれんね。
0619デフォルトの名無しさん
2009/11/22(日) 16:14:22そういう話題はマ板でやれば?
ボールを返すにしてもデッドボールを狙ってるでしょ。
君の身に着けた知識は相手を傷つけるのが目的なの?
0620デフォルトの名無しさん
2009/11/22(日) 16:17:590621デフォルトの名無しさん
2009/11/22(日) 16:18:120622デフォルトの名無しさん
2009/11/22(日) 16:25:09>そういう話題はマ板でやれば
最後の3行に関しては仰るとおりだ、悪いね。
「できます」の回答の後でとんでもないコードを上げてくるマが
よく居て、質問者もそういう手合いに見えたから、つい。
自分にできない事を請け負うのは悪事だということを、知識のついでに
理解して欲しかっただけ。おしまいにするよ。
0623デフォルトの名無しさん
2009/11/22(日) 16:31:02いあいあ、こちらこそどうも。
トゲのついたボールをあなたに投げてしまったと思ってますので。
0624デフォルトの名無しさん
2009/11/22(日) 16:40:500625デフォルトの名無しさん
2009/11/22(日) 16:49:05そして初心者が(上級者にとってくだらない)質問をしたら
待ってましたとばかりにバカにする。
プログラマなんて他人をバカにするのが大好きなやつばっかだよ。
0626デフォルトの名無しさん
2009/11/22(日) 16:53:060627デフォルトの名無しさん
2009/11/22(日) 16:53:10自己紹介お疲れ様
0628デフォルトの名無しさん
2009/11/22(日) 17:19:27そういう悪意満々の目線で状況を見てるお前が一番ヒネてるよ。
過去にスキル不足の指摘でもされて逆恨みしてんの?
0629デフォルトの名無しさん
2009/11/22(日) 17:24:47こういう奴もなんだかね。
俺個人の見解を言えば、「××の質問スレ」なんだから××に関する知識や技能の
低さを責めるのか酷だとは思うが、>>605のように質問の意図が読み取れない文章を
書く人間(こういう人は、要は横着なんだと思うが)は責められて当然だろう。
0630デフォルトの名無しさん
2009/11/22(日) 17:39:04うるせーよカス
0631デフォルトの名無しさん
2009/11/22(日) 17:45:03まぁ、とりあえずそんな真っ赤にならずにない知恵絞って解決策探してやろうぜ
0632デフォルトの名無しさん
2009/11/22(日) 17:48:47そのためにも最低限の情報を出せという流れな訳だが、本人まだ居るのか?
0633デフォルトの名無しさん
2009/11/22(日) 18:08:41なんで標準で用意しないんだろう?標準仕様がないわけでもないのに。
0634デフォルトの名無しさん
2009/11/22(日) 18:13:000635デフォルトの名無しさん
2009/11/22(日) 18:21:43まあ2次元配列なんか使うなってのが正直なところだが。
0636デフォルトの名無しさん
2009/11/22(日) 18:35:00TextFieldParserがある Microsoft.VisualBasic.dllにだけど
0637デフォルトの名無しさん
2009/11/22(日) 18:42:250638デフォルトの名無しさん
2009/11/22(日) 18:45:51超絶に利用し辛い名前空間だなそれwwwwww
0639デフォルトの名無しさん
2009/11/22(日) 19:33:080640デフォルトの名無しさん
2009/11/22(日) 19:39:09テキストの解析って意外に簡単なんだけど慣れが必要なんだよな
0641デフォルトの名無しさん
2009/11/22(日) 20:03:09http://www.atmarkit.co.jp/fdotnet/dotnettips/487csvparser/csvparser.cs
0642デフォルトの名無しさん
2009/11/22(日) 20:03:19XML に移行してほしかったんだろ。
0643デフォルトの名無しさん
2009/11/22(日) 20:06:54CSVとかサポートしだしたらキリがない
0644デフォルトの名無しさん
2009/11/22(日) 20:10:15便利なのに、VisualBasicという名前空間が付いているせいで利用され難い不思議なクラス。
0645603
2009/11/22(日) 20:10:31遅くなりましたが大変参考になりました。
LoadImageでリソースを読み込もうとしましたが、
MAKEINTRESOURCEマクロで躓いて成功していません。
リソース番号もわからないので今の自分のスキルでは
出来ないと判断しました。
結局、NotifyIcon用のアイコンを16x16のみにして
サイズを減らすことで無理矢理解決することにしました。
ありがとうございました。
0646デフォルトの名無しさん
2009/11/22(日) 20:14:12字句解析のステートマシン作りだもんね。
一度作り方覚えちゃえばなんちゅうことないんだけど。
0647デフォルトの名無しさん
2009/11/22(日) 20:24:55入っている場合は復活するらしいけど,この復活したオブジェクトって
既にファイナライザが呼び出されている可能性があるというだけで他は変化していないと考えていいの?
0648デフォルトの名無しさん
2009/11/22(日) 20:49:450649デフォルトの名無しさん
2009/11/22(日) 20:56:40最大公約数的な仕様を書いておきますよーぐらい。
http://www.ietf.org/rfc/rfc4180.txt
で、ちゃんとTextFieldParserはレコード中の改行も処理してくれるみたいよ。
0650デフォルトの名無しさん
2009/11/22(日) 21:19:33TextFieldParserっていろいろ罠があって使い物にならないと思うが、
それを薦めるならせめて一言あってもいいんじゃなかろうか
0651デフォルトの名無しさん
2009/11/22(日) 21:22:270652デフォルトの名無しさん
2009/11/22(日) 21:30:33罠についてkwsk
0653デフォルトの名無しさん
2009/11/22(日) 21:33:50しばらくお待ち下さい…
0654デフォルトの名無しさん
2009/11/22(日) 21:37:270655デフォルトの名無しさん
2009/11/22(日) 21:48:38しばらくお待ち下さい…
words is 「TextFieldParser wana」「TextFieldParser trappu」 etc...
0656デフォルトの名無しさん
2009/11/22(日) 21:51:560657デフォルトの名無しさん
2009/11/22(日) 21:55:04自分で試せ
レス番,メール,本文
"648","sage","TextFieldParserってRFC準拠のCSV読み込めるんだっけ?"
"649","sage","RFC読みゃわかるけど別にきっちり定義してるわけじゃないんだよな。
最大公約数的な仕様を書いておきますよーぐらい。
http://www.ietf.org/rfc/rfc4180.txt
で、ちゃんとTextFieldParserはレコード中の改行も処理してくれるみたいよ。"
"650","sage",">>636
TextFieldParserっていろいろ罠があって使い物にならないと思うが、
それを薦めるならせめて一言あってもいいんじゃなかろうか"
0658デフォルトの名無しさん
2009/11/22(日) 21:56:020659デフォルトの名無しさん
2009/11/22(日) 21:59:47なんか会話が成立しない人だな。
アスペルガーって言うんだっけこういうの
もちろん説明するのが嫌なら嫌でいいと思うんだが、だったらこんなスレに
わざわざ居なくていいだろうによ。
0660デフォルトの名無しさん
2009/11/22(日) 22:02:42英語は得意なのに中々英語で書かれてる文章ってないんですよね…
かなぴぃ
0661デフォルトの名無しさん
2009/11/22(日) 22:22:310662デフォルトの名無しさん
2009/11/22(日) 22:30:44なんにしろ、もったいぶるような事じゃないな。
異常性格な人としか思えん。
0663デフォルトの名無しさん
2009/11/22(日) 23:19:14グダグダ文句言ってないで657のデータでやってみりゃいいじゃん
5,6行のコードも書けないの?
0664デフォルトの名無しさん
2009/11/23(月) 10:00:38自分にはすいぶん甘いんだなw
0665デフォルトの名無しさん
2009/11/23(月) 10:09:240666デフォルトの名無しさん
2009/11/23(月) 10:17:280667デフォルトの名無しさん
2009/11/23(月) 10:29:400668デフォルトの名無しさん
2009/11/23(月) 10:54:50なんか常に喧嘩腰だよね。
0669デフォルトの名無しさん
2009/11/23(月) 11:04:350670デフォルトの名無しさん
2009/11/23(月) 11:22:440671デフォルトの名無しさん
2009/11/23(月) 11:27:460672デフォルトの名無しさん
2009/11/23(月) 13:53:41ブログラマについて語るスレ
0673デフォルトの名無しさん
2009/11/23(月) 14:23:070674デフォルトの名無しさん
2009/11/23(月) 15:12:28そもそもどこにもRFC準拠なんて書いてないし、
仕様に書いてある通りに動くんだろ?
まあ強いて言うなら、パフォーマンスはあまりよくなかったはず。
0675デフォルトの名無しさん
2009/11/23(月) 15:21:50まだ言ってんのかよw
口で説明してもらわないとわからないんでちゅか?
どうして自分で動作確認しないでちゅか〜?
0676デフォルトの名無しさん
2009/11/23(月) 15:33:310677デフォルトの名無しさん
2009/11/23(月) 15:50:530678デフォルトの名無しさん
2009/11/23(月) 15:54:120679デフォルトの名無しさん
2009/11/23(月) 16:46:46どんな罠で使いもんにならないんだよ。
仕様通りに動かないとか仕様が使いものにならないとか
パフォーマンスが使いものにならないほど悪いなら分かるが。
はっきり言われなきゃ分かんないんだよ。
0680デフォルトの名無しさん
2009/11/23(月) 17:02:080681デフォルトの名無しさん
2009/11/23(月) 17:12:26質問する態度じゃねえなw
試した結果や、自分の考えを示した上で
質問者に相応しい文体で再挑戦しようね
0682デフォルトの名無しさん
2009/11/23(月) 17:13:32プロセッサがアイドル状態じゃなくても、突っ込んだ分スレッドは動き出す?
それともアイドル状態になるまでは動き出さないとか
あるいは何らかの調整が入るとか
その辺どうなってるのか知らない?
最小スレッド数まではすぐに動き出すような気もしないでもないが。
あ、動き出すってのは、スレッドがスケジュール対象になるって意味ね。
0683デフォルトの名無しさん
2009/11/23(月) 17:14:400684デフォルトの名無しさん
2009/11/23(月) 17:15:160685デフォルトの名無しさん
2009/11/23(月) 17:16:32とかやる奴と一緒で、自信がないんでしょw
いや自信がないのならないでいいと思うんだが、それならそれで「自信はないが・・・」
と前置きして説明する程度のコミュニケーション能力が欠如していると言った方が
適切かもしれない。
0686デフォルトの名無しさん
2009/11/23(月) 17:29:39おまえ教えて欲しくてしかたないんだろw
それなら相応の態度を取れ、そうじゃないならスルーしろよ
0687デフォルトの名無しさん
2009/11/23(月) 17:29:56それは、投入された分動き出すって意味だよね?
※まだ作成されてないスレッドが作成されるまでのタイムラグは別として
となると、重いタスクと軽いタスクの同時処理で、重いタスクを優先させたいとき、
重いタスクを先に投入するって方法だとあまり上手くいかないのかな。
何がしたいかって言うと、例えばフルパワーで2秒かかるタスクが一つと、
1秒かかるタスクが2つあるとき、
2コア環境でスループットを最大化するには、
2秒かかるタスクと1秒のタスク一つをまず処理開始して、
1秒のタスクが終わり次第残りの1秒のタスクを処理開始する必要がある。
もしプロセッサがアイドルになるまでスレッドがスケジュールされないなら、
重いタスクから順にプールに突っ込むだけで、それなりに上手く動く事になる。
全部スケジュールされてしまうなら、そういう単純な方法ではすまなくなる。
っつか面倒過ぎるから
.NET4のタスクパラレル機能を待つのが賢明か…
0688デフォルトの名無しさん
2009/11/23(月) 17:31:200689デフォルトの名無しさん
2009/11/23(月) 17:33:58ずばり教えてもらわないとわからないほど無能なら、質問時にそう書いとけって話
0690デフォルトの名無しさん
2009/11/23(月) 17:34:410691デフォルトの名無しさん
2009/11/23(月) 17:35:30TPL、.NET 3.5 でも使えるβもあるっちゃあるよ。
0692デフォルトの名無しさん
2009/11/23(月) 17:38:05今のスレッドプールで上手く動くなら、
できれば余計なものは持ち込みたくないからね〜
0693デフォルトの名無しさん
2009/11/23(月) 18:52:23他には?こんなもん?
0694デフォルトの名無しさん
2009/11/23(月) 19:01:03んな訳ないと思うんだが。
0695デフォルトの名無しさん
2009/11/23(月) 19:09:04言ってることが意味不明すぎる。
0696デフォルトの名無しさん
2009/11/23(月) 19:09:21いろいろってことは他にも罠があるのか?
なんでもったいぶるのかよう分からん。
0697デフォルトの名無しさん
2009/11/23(月) 19:10:38んな訳ないが、お前は一体唐突に何を言ってるんだ?
0698デフォルトの名無しさん
2009/11/23(月) 19:12:342秒の処理が片側プロセッサで処理し続けるわけないみたいな。
どっちにしてもよくわかんない。
0699デフォルトの名無しさん
2009/11/23(月) 19:14:380700デフォルトの名無しさん
2009/11/23(月) 19:19:300701デフォルトの名無しさん
2009/11/23(月) 19:21:33誰に言ってるのかわかんねーよ
>>687は、1秒のタスクが一つずつスケジュール開始されるようにすれば、
2秒のタスクはほぼ全力で動き続けることができるってことを言ってるだけ。
一つのプロセッサだけとかそういうことではない。
スケジュール対象のスレッドが2つなら、OSがうまくプロセッサを活用してくれる。
もちろん一つのプロセッサになるとは限らんが、割とそうなった気がする。
効率よく動かそうとすると自然にそうなるからだと思うが。
0702デフォルトの名無しさん
2009/11/23(月) 19:24:090703デフォルトの名無しさん
2009/11/23(月) 19:30:58そのスレッドはほぼ全力で動けるようにOSがうまくスケジューリングしてくれたはずだよ。
まあそうでなきゃOSとしての出来が悪いってことになるからあたり前だとは思うが。
0704デフォルトの名無しさん
2009/11/24(火) 06:46:04for文いらないね。
0705デフォルトの名無しさん
2009/11/24(火) 06:47:560706デフォルトの名無しさん
2009/11/24(火) 07:58:040707デフォルトの名無しさん
2009/11/24(火) 08:29:060708デフォルトの名無しさん
2009/11/24(火) 09:01:39理由もそれぞれ
0709デフォルトの名無しさん
2009/11/24(火) 09:03:22って出典調べようとしたんだけどプライベートフィールドはCamel使ってくれってのは
MSDNのどこに書いてあったっけ・・・
0710デフォルトの名無しさん
2009/11/24(火) 10:23:030711デフォルトの名無しさん
2009/11/24(火) 10:31:27自前のコードのみ勝手な命名規則を採用するのも考え物だ。
単純に美しくない。
0712デフォルトの名無しさん
2009/11/24(火) 10:31:30その通り
書きやすい読みやすいコードが一番
でも多くがMSに準拠する書き方をしているという現実
俺的に最初慣れないうちは読みにくかったけど慣れれば見やすかった
0713デフォルトの名無しさん
2009/11/24(火) 10:39:17http://msdn.microsoft.com/ja-jp/library/cc433241(VS.71).aspx
VS2010ではPascalで名前つけておくと検索が楽になるらしい
http://www.atmarkit.co.jp/fdotnet/scottgublog/20091030searchcode/searchcode.html
0714623
2009/11/24(火) 11:40:54windowsXPsp3
word 2003
http://support.microsoft.com/kb/316384/
Visual C# を使用して Microsoft Word で新規文書を自動的に作成する方法
上記サイトを忠実に再現したら、
http://www1.axfc.net/uploader/File/so/34791.gif
というメッセージが表示されました。
グーグルで検索してみましたが解決できていません。
アドバイスをいただけないでしょうか、お願いします。
0715デフォルトの名無しさん
2009/11/24(火) 12:59:55ちなみにVisibleの所コメントアウトして実行したらどうなるんだろ・・・
0716623
2009/11/24(火) 13:04:15こうなりました。
0717623
2009/11/24(火) 13:21:23を実行すると、ダイアログ内に、「microsoft office word 実行中」っていう項目が生成されて、表示されています。
この項目が、上記ワードオートメーションプログラム(microsoft提供)を実行するたびに1つずつ増えていきます。
つまり、いまは、上記ワードオートメーションプログラムを3回実行したので
(もちろん、何れもoWord.visible=true;でつまづきましたが・・・)
アプリケーションの回復っていうダイアログ中のリストボックスには、
「microsoft office word 実行中」っていう項目が3つも生成されています。
0718デフォルトの名無しさん
2009/11/24(火) 13:25:36ぶっちゃけ無茶な書き方しろっていってるわけじゃないしな。
ガイドラインがあるならプロジェクトや客毎に毎回書き方変えさせられずに済む。
Cの時はほんと場所によって違いが激しすぎた。
0719デフォルトの名無しさん
2009/11/24(火) 13:28:55アンダーバー付けたりプロパティのCamel形式にしてみたりと人それぞれになってるよな。
0720デフォルトの名無しさん
2009/11/24(火) 13:41:550721デフォルトの名無しさん
2009/11/24(火) 13:45:45>windowsXPsp3
>word 2003
の環境で、参照の追加はMicrosoft Word 1.1 Object Library
それでサンプルとの相異は
using Word = Microsoft.Office.Interop.Word;
を
using Microsoft.Office.Core;
に変更した。
これで動いてるよ。
0722デフォルトの名無しさん
2009/11/24(火) 13:57:080723デフォルトの名無しさん
2009/11/24(火) 14:01:29private int age; // ← これ
public int Age { get { return age; } set { age = value; } };
バッキングフィールドとも呼ばれることがある。
0724デフォルトの名無しさん
2009/11/24(火) 14:03:59「m_」なんて付けることもあるのか・・・
http://dobon.net/vb/dotnet/beginner/namingrules.html#section3
0725デフォルトの名無しさん
2009/11/24(火) 14:06:07あくまでクラスライブラリのためのガイドラインだからな
0726デフォルトの名無しさん
2009/11/24(火) 14:11:01トン
>>724
m_ がついたコードはMSDNにもうじゃうじゃあるよ
アンダースコアで始まるのもあるし
何も付いてないのもあれば、thisで参照してるのもある
0727623
2009/11/24(火) 14:15:36でも、それをやると、
//Start Word and create a new document.
Word._Application oWord;
Word._Document oDoc;
oWord = new Word.Application();
で、Wordってなんですか?っていうエラーメッセージを大量に
受けていsまいます・・・。
0728623
2009/11/24(火) 14:17:52>>714だと、デバグ前にこんなエラーが出てしまいます・・。
これをきっかけとして何か糸口を見つけたいです・・・。
0729デフォルトの名無しさん
2009/11/24(火) 14:23:29これを
using Word = Microsoft.Office.Interop.Word;
こうしてない?
using Word = Microsoft.Office.Core;
正解はこっち。
using Microsoft.Office.Core;
0730623
2009/11/24(火) 15:22:16正解の方です!
//using Word = Microsoft.Office.Interop.Word;
です。
0731デフォルトの名無しさん
2009/11/24(火) 15:50:01using以前に参照の設定間違っていない?
0732デフォルトの名無しさん
2009/11/24(火) 15:59:00明らかに普通にC#でポトペタでゲーム作るほうがいいね。
ラベル貼って
Label1.Textで簡単に文字書いたり
誰に話しかけますか?って書いてボタン三つ配置して
「Aさん」「Bさん」「Cさん」
ってやって入力するほうも楽。
XNAってなんなの。Hello Workって表示するだけですらわけわからんし。
0733デフォルトの名無しさん
2009/11/24(火) 16:07:20落ち着いてDirectX・XNAの概要だけでも読んでみては?
そのラベルを動かしたりするとWindowsFormではちらついたり色々するんだ
ひとまずそのレベルならWindowsFormでもいいと思うけど
動くものを作ろうと思ったり、キーパッドの入力を拾うとかしてみたくなった時に判ると思う
あと明らかにXBOXのソフトが作れる作れないってのは明確な差かな?
0734623
2009/11/24(火) 16:34:51http://kissho.xii.jp/1/src/1jyou97502.gif
ちゃんと参照していると思います。
というか、以前、WORD2003とC#をPIAでやるのを作っていたのですが、
そのプログラム、ずっと調子よかったのですが、急に動かなくなってしまったのです。
バグるところは、WORD文書を開くとこです。
try catchでエラーを吐くようにしているのですが、
ダイアログで、
「なんらかの原因でワード文書を開けませんでした。ごめんなさい。」っていうメッセージが
出てきてしまいます。
あぁなつかしいな、そういやそんなことも出力するようにしていたっけな。
だったのですが、それは前の職場での話でして、
今の職場にうつってきた当初も(少なくとも先週末まで)問題なく
利用できていました。
一つ気になっているのは、先週木曜日の時点では、
わたしが利用しているPCでは、をrd2007とをrd2003が共存している状態でした。
をrd2007は使わないので、その木曜日の時点でアンインストしました。
金曜は、もしかしたら、をrd2003を使用しなかったと思います。
なので、をrd2007をアンインストした時点で何らかの変化があったと
いうことしか考えられません。小出しにしてしまい申し訳ございません。
どうしたらよろしいでしょうか。
0735623
2009/11/24(火) 16:46:26結果報告します。
0736623
2009/11/24(火) 16:56:18とりあえず、わたしが4年前にVC#2005エクスプレスで作ったmysoft(PIA利用)は
(改めてインストールしたをrd2007ではなく、をrd2003が起動するような設定であっても)正常に動くようになりました。
Office2007をアンインストしたときに、まさかそれまで消すのかよ、といったような
ファイル削除があったということでしょうね・・・。
ここにいらっしゃる専門家の先生たちのご意見はいかがですか?
0737623
2009/11/24(火) 17:01:01無事、(をrd2003がデバッグ時に起動するように、予めをrd2003をスタートメニューからたどっていって起動しておいた)
問題なく実行されるようになりました。
ということで、
再現方法(たぶん);
をrd2003とをrd2007を共存状態にインストールしておく。
(このとき、2007を先に、2003を後にインストールする。)
をrd2007を削除する。
>>714を実行する。
解決方法:
をrd2007を入れ直す。
うぅ・・・なんか切ないです・・思いっきり対処療法でかこわるいです・。
0738デフォルトの名無しさん
2009/11/24(火) 17:40:290739623
2009/11/24(火) 17:41:47もうすぐ参政権が手に入ります!
0740デフォルトの名無しさん
2009/11/24(火) 17:46:12XNAはゲーム作ったことある人じゃないとよくわかんないと思うよ。
まあターン制のゲームとかトランプみたいなのだったらWPFで作った方が楽かもね。
0741デフォルトの名無しさん
2009/11/24(火) 18:19:160742デフォルトの名無しさん
2009/11/24(火) 18:34:22可能ですか?
0743デフォルトの名無しさん
2009/11/24(火) 18:47:03基本動くだろうけどマイクロソフトは推奨しないって書いてあるだろうに・・・
きちんと説明書読まずにやるからだろ
プログラムもその勢いで作ってたらいつか大失敗すると思うぞ
0744デフォルトの名無しさん
2009/11/24(火) 20:32:090745デフォルトの名無しさん
2009/11/25(水) 02:15:07特定の行動を実装できるわけか。
class 自動販売機{
public ジュース put(Money money){
return 何かのジュース
}
}
class ジュース{
}
class コーラ:ジュース
class ファンタ:ジュース
class Money{
}
こんな感じ?日常的に経験してる自動販売機にお金を入れてジュースを取り出す
という文章をそのまま素直にクラス化できるわけか。これがオブジェクト思考の力・・・すごいな
0746デフォルトの名無しさん
2009/11/25(水) 02:27:55客に出す商品を選ばせろw
0747デフォルトの名無しさん
2009/11/25(水) 03:50:16たとえば
SystemとSystem.DrawingとSystem.Drawing.Design名前空間とか
これってSystem名前空間の中にDrawing名前空間が入っててさらにその中にDesign名前空間があるってこと?
0748デフォルトの名無しさん
2009/11/25(水) 03:58:130749デフォルトの名無しさん
2009/11/25(水) 06:11:12その例だと抽象化されているのは引数でなく戻り値なわけだが
0750デフォルトの名無しさん
2009/11/25(水) 07:58:15オブジェクト指向の話題で荒れたスレがあったらコレ投下させてもらうわww
0751デフォルトの名無しさん
2009/11/25(水) 08:32:39そう解釈してもいいけど、
using System; ってやった状態で
new Drawing.Hogehoge() ってやってもエラーがでる。
0752デフォルトの名無しさん
2009/11/25(水) 09:05:35実際にはコンパイル後のアセンブリを見るとSystem名前空間とSystem.Drawing名前空間は全く別個に存在する。
でもC#ではNamespaceA.NamespaceBの中ではNamespaceAの中にあるクラスにクラス名だけでアクセスできる。
なので>>751の動作は単に名前が被る可能性を減らすためだと思われる。
だから,C#に限って言えばSystem名前空間にDrawing名前空間が含まれていると考えるのが正しいんだと思う。
0753デフォルトの名無しさん
2009/11/25(水) 11:33:26型には長い名前がつけられるというだけ。
まあ概念としては名前空間があると言えるけども。
0754デフォルトの名無しさん
2009/11/25(水) 17:53:57少なくともIL上は名前空間は存在する
0755デフォルトの名無しさん
2009/11/25(水) 21:37:29最近は「Hello Work」なのか。不景気だな。
0756デフォルトの名無しさん
2009/11/25(水) 21:48:02気付かんかったww
Hello Work 地味に時代を反映してていいな。
0757デフォルトの名無しさん
2009/11/26(木) 01:16:04String.Format("hoge = {0}", hoge);
みたいな感じのを
+1234.5678
-1234.5678
とプラスの符号も表示させるにはどうすればいいの?
0758デフォルトの名無しさん
2009/11/26(木) 01:20:54でセクション区切り記号を使う
0759デフォルトの名無しさん
2009/11/26(木) 07:48:14WindowsサービスにIPCサーバーさせてるんですが、IPCクライアントから接続すると、 「IPCポートに接続できません。アクセスが拒否されました。」と出ます。
TCPの時は問題なかったのですが、IPCだとACL設定がいるようで、その方法がわか りません。
誰にでもアクセス許可させたいんですが、どのようにACL設定したらよいのでしょうか。
下記のようにしてダメでした。
SecurityIdentifier allUserSid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
DiscretionaryAcl dacl = new DiscretionaryAcl(false, false, 1);
dacl.AddAccess(AccessControlType.Allow, allUserSid, -1, InheritanceFlags.None, PropagationFlags.None);
CommonSecurityDescriptor securityDescriptor = new CommonSecurityDescriptor(
false, false,
ControlFlags.GroupDefaulted | ControlFlags.OwnerDefaulted | ControlFlags.DiscretionaryAclPresent,
null, null, null, dacl);
App.configに何か書くサイトもありましたが、Expressで空のプロジェクトから自前でW indowsサービスにしたので、App.configがなく、自前で下記を追加したら「'application'
のスキーマ情報が見つかりませんでした。」と怒られました。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown mode="SingleCall" type="Server.MyRemoteObject, Server" objectUri="MyRemoteObject.rem" />
</service>
<channels>
<channel ref="ipc" portName="MyIpcChannel" authorizedGroup="Users"/>
</channels>
</application>
</system.runtime.remoting>
</configuration>
どうしたらよいのか教えてください...
0760デフォルトの名無しさん
2009/11/26(木) 09:02:15String.Formatでは無理
hoge.ToStringつかえ
0761デフォルトの名無しさん
2009/11/26(木) 09:06:47String.FormatはToStringを呼び出してるだけなんだが
0762デフォルトの名無しさん
2009/11/26(木) 09:21:43コントロールAからBへのドラッグ&ドロップが目的で、
以下のように実装しました。
コントロールAで、
・DoDragDrop(xxxx, DragDropEffects.All)を実行 …(1)
コントロールBの、
・DragOverイベントでDragDropEffectsをDragDropEffects.Moveに変更
・DragDropイベントで処理を行う …(2)
(2)の処理内容によって、(1)の返り値が変化してしまいます。
・処理を行わない → 返り値:DragDropEffects.Move
・処理を行う → 返り値:DragDropEffects.All
第2引数に指定した「DragDropEffects.All」が返されることが
あるのですが、そうなる条件がわかりません。
DoDragDropの返り値が変更されている箇所やタイミングを特定する
方法はないでしょうか?
0763デフォルトの名無しさん
2009/11/26(木) 09:24:58とりあえずこれで
{0:+#0.0000;-#0.0000}
0764デフォルトの名無しさん
2009/11/26(木) 09:40:30>「'application' のスキーマ情報が見つかりませんでした。」
は無視してよい。
0765デフォルトの名無しさん
2009/11/26(木) 11:48:25最後に設定したDragEventArgs.Effectの値が返るだけのはずだが
処理って何よ
> DoDragDropの返り値が変更されている箇所やタイミングを特定する
> 方法はないでしょうか?
ないな
0766762
2009/11/26(木) 17:35:48>>762の質問は取り消させてください。
>>765さんに言われて処理を見直したところ、
Dropのイベントハンドラの関数内で、例外が発生していました。
(2)の処理が最後まで実行されてなかった為に762の現象に
なってしまっていました。
お時間とらせてしまいすいません。
0767デフォルトの名無しさん
2009/11/27(金) 07:42:270768デフォルトの名無しさん
2009/11/27(金) 16:10:22retrun math.abs みたいに記述して
お前のハイなセンスにジャストなミートすると思うんだよ
0769デフォルトの名無しさん
2009/11/27(金) 16:16:39C系の書式なら一文字追加でできる
0770デフォルトの名無しさん
2009/11/27(金) 16:36:340771デフォルトの名無しさん
2009/11/28(土) 12:27:201を代入する部分で、int型を型T1に暗黙変換できませんとでます。
これはどうしたら解消できるのでしょうか?
public void setInitialValue<T1>(int nx, int ny, T1[] pict )
{
int j = 0;
for (int jy = 0; jy < ny; jy++)
{
for (int jx = 0; jx < nx; jx++)
{
if( jx == nx && jy == ny ) img[j++] = 1;
}
}
}
0772デフォルトの名無しさん
2009/11/28(土) 12:30:02ここ見ても
/cscみたいにコマンドプロンプトでしかdllの作成方法書いてないんだけど
Visual Studioでdllを作成するにはどうやるの?
0773デフォルトの名無しさん
2009/11/28(土) 12:35:36そりゃT1にintを代入できるなんてそのコードからじゃまったく伝わらないから
Func<int, T1>な第4引数でも用意すれば?
>>772
/target:libraryへのリンクを踏んでみるんだ
0775デフォルトの名無しさん
2009/11/28(土) 12:43:300776デフォルトの名無しさん
2009/11/28(土) 12:46:43・img[j++]ってどこから沸いて出てきたの?
・何を目的にGenericを導入したのか説明して。
T1の具体的な型はこの関数の使い手が指定するワケだけど、例えば
setInitialValue<DateTime>として指定した場合、(pictがimgのタイポだと
仮定して)imgの型はDateTime[]になる。つまり「img[n]に1を代入する」という
考えそのものが破綻する。
何でも入る箱が欲しいならobject[]を使うべきだし、フラグを立てるのが
目的なら別の手段を考えるべき。
0777771
2009/11/28(土) 12:53:21imgはpictの間違いでした。
pictは使い手によってintであったり、float、doubleでもある。
つまり数値限定である。
0778デフォルトの名無しさん
2009/11/28(土) 12:55:100779771
2009/11/28(土) 12:56:590780デフォルトの名無しさん
2009/11/28(土) 12:57:07そして普通はそんなことはしない。
共用体(構造体)を作って演算子オーバーロードという手もあるけど君にはまだ難しいと思う。
0781デフォルトの名無しさん
2009/11/28(土) 12:57:41public void setInitialValue<T1>(int nx, int ny, T1[] pict, T1 one)
0782デフォルトの名無しさん
2009/11/28(土) 13:03:24img[j++] = (T1)one;
0783デフォルトの名無しさん
2009/11/28(土) 13:10:56無理。
Genericの仕様上T1を「何らかの数値」に限定する手段が無い。
そして、型が未定の変数に対して1を設定する手段も無い。
[対策案]
・この関数でGenericを使うのは止めて、素直にdoubleやdecimalで組む。
・>781
・>782(未来の姿)
0784デフォルトの名無しさん
2009/11/28(土) 13:11:340785デフォルトの名無しさん
2009/11/28(土) 13:21:59ただ、>782もそうだけど、T1に数値以外のデータ型も指定できてしまい、
その際は基本的に実行時例外が発生してしまうので設計を見直した方が
良いとは思う。
0786デフォルトの名無しさん
2009/11/28(土) 13:23:210787デフォルトの名無しさん
2009/11/28(土) 13:26:090788デフォルトの名無しさん
2009/11/28(土) 14:26:44前にここか初心者スレで出てた加減算が出来ねーってのでも思ったけど。
0789デフォルトの名無しさん
2009/11/28(土) 14:31:540790デフォルトの名無しさん
2009/11/28(土) 14:42:38INumeric みたいなのも実装してくれてりゃいいだけじゃん?
0791デフォルトの名無しさん
2009/11/28(土) 16:51:22実行時に全てを解決するジェネリックでは無理だ
Int32などが演算子オーバーロードを持たないのもそれが理由
0792デフォルトの名無しさん
2009/11/28(土) 17:04:19「floatとintの掛け算はこういう動作、足し算はこう、floatはdoubleに変換可能・・・」
のような実行時のルールがMicrosoft.CSharp.dllで定義されてる。
同様にVBならVB、PythonならPythonのルールもあって、それぞれの言語仕様に合った動作をするようになってる。
0793デフォルトの名無しさん
2009/11/28(土) 20:05:570794デフォルトの名無しさん
2009/11/28(土) 20:46:060795デフォルトの名無しさん
2009/11/28(土) 20:48:440796デフォルトの名無しさん
2009/11/28(土) 21:18:140797デフォルトの名無しさん
2009/11/28(土) 21:19:160798デフォルトの名無しさん
2009/11/28(土) 21:21:43いや真面目な話。
0799デフォルトの名無しさん
2009/11/28(土) 21:28:43それはないんじゃないかな。
C# はインテリセンス前提なことを考えると、補完候補出てこない dynamic は使いにくいだけ。
>>798
普通の用途ではね。
だから、DLR との連携用、あるいは、JSON とか XML とかの読み書き用。
0800デフォルトの名無しさん
2009/11/28(土) 21:41:52引数を dynamic にするなんてことはやらないだろうしなぁ。
0801デフォルトの名無しさん
2009/11/28(土) 21:52:25余りに自由すぎる動きは逆に後でわかりづらくなることもある気がするし・・・
改修とかのときに結局何が起きるかわからなくて怖い代物は回避したくなるしさ
0802デフォルトの名無しさん
2009/11/28(土) 21:53:12.NET 4.0 の tlbimp だと object から dynamic になっていたのは感動した
0803デフォルトの名無しさん
2009/11/28(土) 22:04:26かかなきゃいけなくなるから長いスパンでの使用はむずかしいんじゃね?
XMLの要素アクセスが楽になるやつは結構いいと思ったけど。
0804デフォルトの名無しさん
2009/11/28(土) 22:07:13インテリセンスが欲しいからさっさとキャストすると思うんだがな……
0805デフォルトの名無しさん
2009/11/28(土) 22:14:59mshtml の dll がでかすぎるから…
と思ったが .NET 4.0 だとラッパライブラリで使っているクラスとメンバだけを
exe に埋め込んでくれちゃうんだよね
0806デフォルトの名無しさん
2009/11/28(土) 22:20:31IWebBrowser2 ie = new InternetExplorerClass();
ってコードがコンパイルできなくて
IWebBrowser2 ie = new IWebBrowser2();
のように interface を new するとコンパイルできる。
Reflector で見てみると Activator.CreateInstance で
InternetExplorerClass のインスタンスを作るコードに
置き換わっているみたいだけど、
C# の言語的に interface を new するのってOKなのかな?
0807デフォルトの名無しさん
2009/11/28(土) 22:22:300808デフォルトの名無しさん
2009/11/28(土) 22:40:230809デフォルトの名無しさん
2009/11/29(日) 08:52:100810デフォルトの名無しさん
2009/11/29(日) 09:05:010811デフォルトの名無しさん
2009/11/29(日) 10:51:05元の言語と互換性なくなるだろ
0812デフォルトの名無しさん
2009/11/29(日) 12:00:21MSの独自拡張というなら確かにそうだけどどうせMSが仕様だろ
0813デフォルトの名無しさん
2009/11/29(日) 13:12:520814デフォルトの名無しさん
2009/11/29(日) 13:38:010815デフォルトの名無しさん
2009/11/30(月) 10:35:470816デフォルトの名無しさん
2009/11/30(月) 10:36:37あっちで聞きます
0817デフォルトの名無しさん
2009/11/30(月) 13:59:38かつ解析速度はディスクからの読み取りよりは速いがそれほど余裕はない場合、
出来るだけ最速で処理するにはどんな風にするのがいい?
0818デフォルトの名無しさん
2009/11/30(月) 14:06:17読みとりをバッファリングするってのが常套手段ではあるけど。
0819デフォルトの名無しさん
2009/11/30(月) 14:12:280820デフォルトの名無しさん
2009/11/30(月) 14:14:180821デフォルトの名無しさん
2009/11/30(月) 14:16:11読み取りと解析を別スレッドにするべきかそれは意味がないかとか、
結局OSの先読みスレッドとの連携になるので、
その辺との絡みでどんなやり方が最も効率よく処理できるのか。
下手をするとディスク読み取りに間が出来てパフォーマンスが大幅に落ちてしまうから。
0822デフォルトの名無しさん
2009/11/30(月) 14:17:520823デフォルトの名無しさん
2009/11/30(月) 14:18:53動けばよい
0824デフォルトの名無しさん
2009/11/30(月) 14:33:50まあそうなってから考えるのがパフォーマンスの基本なんだけどな
0825デフォルトの名無しさん
2009/11/30(月) 14:42:240826デフォルトの名無しさん
2009/11/30(月) 18:18:07解析処理と読み込み処理の中身によって変るだろうし
それだけの情報じゃ一般論の展開も難しい気がする
0827デフォルトの名無しさん
2009/11/30(月) 19:15:24パフォーマンス重視なら自前で巨大なバッファを取って
読み書きの回数を減らすのがセオリーだってばっちゃが
0828デフォルトの名無しさん
2009/11/30(月) 19:29:00いやもちろん完全に間違いではないんだけどな
0829デフォルトの名無しさん
2009/11/30(月) 19:50:28スループット重視なら妙な工夫はせずにベタにやるのが一番。
スレッドとか書いてる奴の意見は無視していいと思う。
0830デフォルトの名無しさん
2009/11/30(月) 20:16:49DataSetをTableに格納し、DataGridViewで表示→
レコードの修正、削除、更新→
確定ボタン(SqlAdpter.Update()?)押下→
修正データをDBに反映(sqlReaderを使う?)→
修正したレコード数をMsgBoxに表示
の一連の流れを知りたいのですが何か参考になるサイトか
よろしければサンプルコードを教えて頂けませんか?
ググって以下のサイトなどを参考にしているのですが何が何やらさっぱりで困ってます。
http://msdn.microsoft.com/ja-jp/library/haa3afyz(VS.80).aspx
http://support.microsoft.com/kb/311274/ja
http://d.hatena.ne.jp/twisted0517/20090406/1239001472
0831デフォルトの名無しさん
2009/11/30(月) 20:46:42SqlDataAdapter 作って SqlCommandBuilder 作って
SqlDataAdapter の Fill でデータ読み込んで
DataGridView の DataSource に DataTable 突っ込んで
修正確定するとき SqlDataAdapter の Update 呼んで終わり。
…ん?DataSet 要るか?
0832デフォルトの名無しさん
2009/11/30(月) 21:08:050833デフォルトの名無しさん
2009/11/30(月) 21:36:46>>832
回答ありがとうございます
>DataSet作ってDataTable作って
>SqlDataAdapter作ってSqlCommandBuilder作って
>SqlDataAdapterのFillでデータ読み込んで
>DataGridViewのDataSourceにDataTable突っ込んで
>修正確定するときSqlDataAdapterのUpdate呼んで終わり。
上記、大変参考になりました
>Fillで読み込む先がDataSetでは?
DBManagerからDataSetを受け取り、Tableに格納してDataGridViewのDataSourceに格納しています
あと、修正したレコード数をどうやって算出すればいいでしょうか?
元のDBと修正後のDBでなんらかの比較処理か何か必要とは思うのですが・・・
メッセージボックスで
追加 2レコード
削除 1レコード
修正 2レコード
計 5レコード
のようなメッセージを出したいのですが
0834デフォルトの名無しさん
2009/11/30(月) 21:47:51正直、DataSetの存在意義がよくわからん。
ADO.NETやデータバインド周りの仕様を無駄に汚してるだけのような気がしてならない。
0835デフォルトの名無しさん
2009/11/30(月) 22:00:20開発環境はC#(3.5)+VS2008です。
アルバイトでPowerPointオートメーション(?)を用いる、
ClickOnceでIEから呼べるWindowsフォームアプリケーションを作っています。
PowerPointオートメーション(?)を使うために外部参照として
Microsoft PowerPoint [Version] Object Libraryを設定すれば
良いというのは理解できたのですが、この[Version]の部分が、
ターゲットとなるクライアントPCにインストールされている
PowerPointのバージョンごとに異なっています。
(具体的にはXP,2003,2007の3バージョンを考慮する必要があります)
Office 2007 Professionalがインストールされている開発環境で
[Version]=12.0として参照を追加してビルド・発行したアセンブリ(?)では、
下位のバージョンがインストールされている環境で実行することができず、
要求を満たすことができません。
そのため、実行時にターゲットにインストールされているPowerPointの
バージョンを取得し、動的に参照を追加するような設計にはできないか、と
考えています。
以上のような要求は.NETアプリケーションでは作成可能でしょうか。
よろしくお願いたします。
(メンテナンス不能なActive Xコントロールの置き換えです。助けてください)
0836デフォルトの名無しさん
2009/11/30(月) 22:15:230837デフォルトの名無しさん
2009/11/30(月) 22:48:29VBでできてC#にできない事は原則無い。
遅延バインディングはちょっと面倒臭いけどな。
0838デフォルトの名無しさん
2009/11/30(月) 22:50:080839デフォルトの名無しさん
2009/11/30(月) 22:53:33というのは俺だけじゃないはず。C#4.0早く来い。
0840デフォルトの名無しさん
2009/11/30(月) 22:53:460841デフォルトの名無しさん
2009/11/30(月) 22:56:010842デフォルトの名無しさん
2009/11/30(月) 22:56:080843デフォルトの名無しさん
2009/11/30(月) 22:57:57アセンブリをダウンロードする、なんてのもありかな。
0844デフォルトの名無しさん
2009/11/30(月) 22:58:08DataGridView上から諸々変更されたデータ行の更新状況を確認するならこんな感じで
ttp://www.yel.m-net.ne.jp/~oss/Tips/ADO/Tips_03001.htm
(ちょっと挙げたサンプルの例がよくない?ゴメンよw )
0845デフォルトの名無しさん
2009/11/30(月) 23:04:21>[Version]=12.0として参照を追加してビルド・発行したアセンブリ(?)では、
>下位のバージョンがインストールされている環境で実行することができず、
エクセルだと一部のメソッド以外バージョン違ってても動くんだけど、
パワポは事情が違うのかね。
いや全然アドバイスになってなくて申し訳ないw
0846デフォルトの名無しさん
2009/12/01(火) 08:46:41DataSet の中の DataTable。
>>834
>正直、DataSetの存在意義がよくわからん。
DataRelation 使わないなら、単なる DataTable のコレクションでもよかばい。
0847デフォルトの名無しさん
2009/12/01(火) 10:46:15複数のテーブルをまとめたい時に使うのがデータセットだと思っとけばいい
テーブルが1つしかないとセットの意味が薄れる
0848デフォルトの名無しさん
2009/12/01(火) 11:53:55値型のNullable型への値やnullのセットは
アトミックにならない?
もっと言うと、同期化せずに値をセットした場合、読みだし側で不整合が発生する可能性はある?
もちろん対象の値型はアトミックなサイズのもの。
テスト&ゲットの機能がないからどっちにしてもだめか…
結局bool型変数などを別に持たんとだめかな。
0849デフォルトの名無しさん
2009/12/01(火) 12:05:47ClickOnceで発行してテスト用のクライアントPCで実行しようとしたのですが、
アセンブリがGACにありませぬ警告が出て起動すらできませんでした。
必須コンポーネントから除外する設定をやってもどうも上手く動かんしorz
0850デフォルトの名無しさん
2009/12/01(火) 13:13:49各バージョン用のDLLに対しインターフェイスだけ共通化しといて参照するDLLはレジストリなり参照して切り替える
呼び出しは全てインターフェイス経由
とかどうだろ?
代わりに各バージョン用のDLL全部クライアントに入れることにはなるけど・・・
0851デフォルトの名無しさん
2009/12/01(火) 13:48:48かわりにStrongBox<T>でも使えば
0852デフォルトの名無しさん
2009/12/01(火) 19:33:41それって単にIDEが自動生成するラッパークラスが入ったアセンブリ(Interop.xxx.dllみたいな感じの
ファイル名のあれ)をexeと一緒に配布してないだけじゃないの?
0853デフォルトの名無しさん
2009/12/01(火) 22:04:48方法じゃなく、自前でエンティティオブジェクト作った方が取り扱いが楽で融通も
効くんじゃないかと思ってしまう。
レコード単位のステータス管理を自動でしてくれるとかの利点は解るんだけど。
シンプルなマスタメンテアプリとかだったら楽チンで良いのかも知れん。
0854デフォルトの名無しさん
2009/12/02(水) 11:57:29んー、ちょっと設定見直してみます。。。
えっと、質問なんですが
レイトバインディングを使ってOfficeオートメーションを
利用する場合に、
MsoTristate.msoFalseとか
PpSaveAsFileType.ppSaveAsHTML
とかの値を使うためにはどうすればいいんでしょうか。。。
0855デフォルトの名無しさん
2009/12/02(水) 12:06:400856デフォルトの名無しさん
2009/12/04(金) 19:06:30それでいくことにしました。
質問です。
ClickOnceで発行したアプリケーションがインストールされている状況で、
ActiveXのようにページ遷移と同時に起動するようにすることはできますか?
(「<a href="...">ここをを押して起動</a>」のような二度手間を避けたい。)
0857デフォルトの名無しさん
2009/12/04(金) 20:04:56スタートメニューに登録するのはダメなの?
0858デフォルトの名無しさん
2009/12/04(金) 20:28:36Webシステムの一部として利用しているActiveXの置き換えなので。。。
あと、ClickOnceを起動したIEのウインドウを操作できる必要がありますorz
0859デフォルトの名無しさん
2009/12/04(金) 20:41:460860デフォルトの名無しさん
2009/12/04(金) 20:48:07ClickOnce発行時に生成されるhtmlファイルに
javascriptを仕込めば出来るんじゃないかなと妄想。
0861デフォルトの名無しさん
2009/12/05(土) 00:25:04今後の保守性を考えてC#で作りたいのです。
今のActiveXコンポーネントはATLで書かれてて、
x64版Windowsじゃなぜか動かない。
外注製らしくメンテナンスできる人がいない。(ドキュメントも無い)
C#じゃないと困る、のです。
0862デフォルトの名無しさん
2009/12/05(土) 01:16:09説得力が皆無ですよ
0863デフォルトの名無しさん
2009/12/05(土) 01:21:390864デフォルトの名無しさん
2009/12/05(土) 02:31:51作り直す羽目になったって話しだろ。
痛い目にあってる分だけ教訓としての説得力があると思うけどw
0865デフォルトの名無しさん
2009/12/05(土) 06:53:45C#でやれと言われたか自分からC#でやると言ってしまったかして
C#じゃないと困るんだろう
あとはまあC++使えないとか
0866デフォルトの名無しさん
2009/12/05(土) 08:08:01C#しかできないからとC#でできるものを作るなんてのは
サンデープログラマのみ許される。
0867デフォルトの名無しさん
2009/12/05(土) 08:14:480868デフォルトの名無しさん
2009/12/05(土) 08:19:560869デフォルトの名無しさん
2009/12/05(土) 08:24:310870デフォルトの名無しさん
2009/12/05(土) 08:27:480871デフォルトの名無しさん
2009/12/05(土) 08:38:47職業プログラマならニーズに合わせた多言語習得なんか当たり前だろ。
ユーザから見れば使用言語なんぞどうでもいいんだし。
考え方が甘っちょろいな。学生さんか?
0872デフォルトの名無しさん
2009/12/05(土) 08:41:57はいはい。がんばってね。
0873デフォルトの名無しさん
2009/12/05(土) 08:53:060874デフォルトの名無しさん
2009/12/05(土) 08:54:02おまえもがんばれよ。マジで。
0875デフォルトの名無しさん
2009/12/05(土) 08:57:37何をがんばれというのかわからないが、とにかくがんばるよw
応援ありがとうw
0876デフォルトの名無しさん
2009/12/05(土) 08:58:26昔ここで質問したけど、嘘教えられたからな。何人も答えておいて誰も間違いに気づかず、知ったかぶりで進行していった。
0877デフォルトの名無しさん
2009/12/05(土) 08:59:370878デフォルトの名無しさん
2009/12/05(土) 09:02:23単に質問がくだらなすぎて初心者にウソをおしえて遊んでただけだろ
0879デフォルトの名無しさん
2009/12/05(土) 09:10:35たぶん違うな。いま答えをみる限り、半分は無知が頑張った。もう半分は説明不足。
その半分っていうのは、回答者の意見が曖昧だから正解とも間違いとも取れる意見。
逆に別のHPの回答者はレベルが違うよ。まぁ2chと比べちゃいけないけど。
0880デフォルトの名無しさん
2009/12/05(土) 09:12:58誰か信頼できるやついねーのかよ。
0881デフォルトの名無しさん
2009/12/05(土) 09:15:500882デフォルトの名無しさん
2009/12/05(土) 09:19:430883デフォルトの名無しさん
2009/12/05(土) 09:20:45回答者はボランティアなんだから、「詳細な説明が出ないから」と不満を垂れるのは
お門違いだと思う。ヒントが貰えただけ有難いだろ。
よく知らないで回答しちゃう人が居るのはしょうがない。いろんなレベルの人が
見てるんだから。取捨選択しろよ。
0884デフォルトの名無しさん
2009/12/05(土) 09:25:482ch含めてネット掲示板に過度の期待を寄せるのは止めた方がいい。
回答者は正確な解答を返す義理がそもそも無いんだから。
嘘を教えられた、不正確だったと憤っても、そもそもそんな訳のわからん相手に
頼った質問者が悪い。
0885デフォルトの名無しさん
2009/12/05(土) 09:29:07自分の中で枯れた言語で出来ないか検討するのもあたりまえ
0886デフォルトの名無しさん
2009/12/05(土) 09:34:300887デフォルトの名無しさん
2009/12/05(土) 09:38:210888デフォルトの名無しさん
2009/12/05(土) 09:42:17MONOスレも建ってるけど見事に過疎ってんね
0889デフォルトの名無しさん
2009/12/05(土) 09:56:550890デフォルトの名無しさん
2009/12/05(土) 11:46:25ActiveXコンポーネントは
自分が作ったわけじゃないのですが(;´Д`)
ActiveXに限らずこの会社のコードはひど・・
>>863
この会社、ASPだけじゃなくサーバー納入もやってるので
ActiveXはこの際切りたいっていう要望もあるんですよね。。。
ただ、ClickOnceで現状と同程度のユーザビリティを満たせない場合は、
C#でActiveXコントロールを作る方向も考えます。
>>864
SEさんからは「C#で作って」って言われてます。
(この会社の別部署ではASP.NETのソリューションを
扱ってるのでC#プログラマならたくさん居るから。)
自分は私用ではC++を使ってますが、ATLを覚えるのは時間かかりますし、
自分がやめたらまたメンテできない状態になるので・・・×
>>866
プログラマにも単価ってものがありまして。。。
優秀な人を雇うのにはそれなりにお金がかかるみたいです。
そこらへんも考えて「そこそこのコーダー」でも容易に保守できる
ってのが求められてるんです。
>>876
匿名掲示板以外だと書き込むの恥ずかしいんです。。。
0891デフォルトの名無しさん
2009/12/05(土) 11:55:310892デフォルトの名無しさん
2009/12/05(土) 11:58:59「そこそこのコーダー」
まったくそのとおりだよな。
そこそこの能力はあるが、安く働いてくれる人
高い能力があるが、安く働いてくれない人
プロならいろんな言語使えて当然!とか全くイミフだ。
犬小屋作成者に向かって、ビルの建築方法しらないやつはプロじゃねぇ!つってるようなもん。バカすぎるw
0893デフォルトの名無しさん
2009/12/05(土) 12:02:40犬小屋程度しか作れない奴はプロじゃないし
0894デフォルトの名無しさん
2009/12/05(土) 12:03:34プロなら○○は当然!とか言うのはイミフ。
0895デフォルトの名無しさん
2009/12/05(土) 12:06:300896デフォルトの名無しさん
2009/12/05(土) 12:08:11ム板でプロ云々と語る人には馬鹿しか居ないと思う。
マ板に行け馬鹿。
0897デフォルトの名無しさん
2009/12/05(土) 12:08:180898デフォルトの名無しさん
2009/12/05(土) 12:08:49犬小屋程度でもしょうがないな
0899デフォルトの名無しさん
2009/12/05(土) 12:09:33やたらプロ(笑)にこだわる人って世の中にはプロ(笑)じゃなくても安く働いてくれる人を募集してることも
多いってことを知らないんだろうなぁ。
0900デフォルトの名無しさん
2009/12/05(土) 12:10:390901デフォルトの名無しさん
2009/12/05(土) 12:11:42現にそこの学生のバイトくん
0902デフォルトの名無しさん
2009/12/05(土) 12:13:470903デフォルトの名無しさん
2009/12/05(土) 12:13:500904デフォルトの名無しさん
2009/12/05(土) 12:15:22「ビルを作れないやつはプロじゃない」とイミフなことを叫ぶ連中が多いのがこのスレ。
0905デフォルトの名無しさん
2009/12/05(土) 12:16:470906デフォルトの名無しさん
2009/12/05(土) 12:18:38犬小屋をつくる力しかないのにビルを作りたいっていってるから
ビルを作るには勉強しよねって言ってるんだろ
0907デフォルトの名無しさん
2009/12/05(土) 12:23:00ActivXだけなんで
明らかにビルを作る必要はないですが。
C#しか知らないやつは犬小屋作成者な。
いろんな言語を知ってるやつがビル建築家な。
C#だとActiveXが不可能ならともかくできるのに他言語を勉強させる意味がない
0908デフォルトの名無しさん
2009/12/05(土) 12:24:070909デフォルトの名無しさん
2009/12/05(土) 12:24:28いや一応、現在試作してるClickOnceアプリケーションでも
既存のActiveXコンポーネントと(ユーザーから見ると)
同じような動きをするように色々と工夫してるんですがあ。。。
ただ、サーバーサイドスクリプトが現状より複雑になるのと、
SHDocVwを使ってIEのウインドウを弄くるので、
どんな環境でもちゃんと動いてくれるか不安なのが問題点なのですが。
0910デフォルトの名無しさん
2009/12/05(土) 12:24:560911デフォルトの名無しさん
2009/12/05(土) 12:26:06場面なのにC#でごまかそうとするのはプロとは呼べない
0912デフォルトの名無しさん
2009/12/05(土) 12:27:38迷惑するのはクライアントなんですが。
0913デフォルトの名無しさん
2009/12/05(土) 12:28:050914デフォルトの名無しさん
2009/12/05(土) 12:30:11何が最適かも見極めることができない。
だから下のレベルがいつまでも低いまま。
単価は安いほうがいいだろうがモノには限度ってものがある。
0915デフォルトの名無しさん
2009/12/05(土) 12:34:030916デフォルトの名無しさん
2009/12/05(土) 12:35:08浅薄な考えでいい加減な物を作ることが、結果としてコストダウンを塗り潰すほど
大きな損失になる事を理解していない。
0917デフォルトの名無しさん
2009/12/05(土) 12:38:45うんうん。899や904ってか俺一人だから。
ヨシヨシ、高い給料でがんばってね><
0918デフォルトの名無しさん
2009/12/05(土) 12:40:250919デフォルトの名無しさん
2009/12/05(土) 12:43:23ニート乙
0920デフォルトの名無しさん
2009/12/05(土) 12:43:46経営層への受けはよさそうだけど、アウトプットは出せそうもないな。
0921デフォルトの名無しさん
2009/12/05(土) 12:47:08スレタイ通りC#の話をしてくださいね
0922デフォルトの名無しさん
2009/12/05(土) 12:49:42変な会社も世の中にはあるんすね。俺ならすぐ辞めるな。
0923デフォルトの名無しさん
2009/12/05(土) 12:50:16ム板いけや。
0924デフォルトの名無しさん
2009/12/05(土) 12:51:15○マ板
0925890
2009/12/05(土) 12:56:57俺は死んだほうがいいのかな。
0926デフォルトの名無しさん
2009/12/05(土) 12:57:47どうみても偽物でワラタ
0927デフォルトの名無しさん
2009/12/05(土) 12:59:15死ななくて良いからここはム板ってことを理解してくれ。プログラム技術とは関係ない愚痴とかはマ板いってくれ。
http://pc11.2ch.net/prog/
0928890
2009/12/05(土) 13:21:25ActiveXとClickOnceを比べたときの互いの長所・短所を
教えてもらえませんか?
どちらも.NET Framework2.0(C#)で開発するとします。
主な利用目的はローカルにあるWord/Excel/PowerPointファイル
などのローカルのファイルをサーバー(CMSみたいなもの)
で利用できる形式のWebコンテンツへ変換することです。
0929デフォルトの名無しさん
2009/12/05(土) 13:53:07>ヒントが貰えただけ有難いだろ。
何様wwwヒントにすらなっていないってアレは。むしろ足を引っ張られて時間を無駄にしたから。
まぁ2ch自体自意識過剰な奴が多いから仕方ないんだろうけどさ。
890は本気で困っているならここでやらない方がいいよ。言い訳は上手い人たちだらけで、のんびりまったりやるスレだから。
ビルなんて作れないのにビルが作れると勘違いしている人が多い。せいぜいプレハブ小屋程度なのにビルが作れると思ってる、
くらいのレベルなんだよ。ビルが作れる人たちから見れば。
実際質問に対して文句ばかり言ってまともな回答できていないだろ?
ネットなんだし他のサイトで質問しても匿名と同じ。IDが必要なら捨てIDを作ればいいだけだし。
0930デフォルトの名無しさん
2009/12/05(土) 14:36:14他の選択肢は無い
C#でやるならそれに適した環境が整ってから
0931デフォルトの名無しさん
2009/12/05(土) 14:51:24どんだけ短絡的な思考してるんだwまったくアホどもめw
0932デフォルトの名無しさん
2009/12/05(土) 14:51:35一般論で話をしたつもりだったが喧嘩腰だな。
一方的に頼る側がガタガタ文句言うのは常識的に言って筋違い。
足を引っ張られるのは情報の取捨選択をしなかった当人の責任だ。
そんな糞みたいな書き込みしてる暇があったら質問の回答書けば?
0933デフォルトの名無しさん
2009/12/05(土) 14:55:180934デフォルトの名無しさん
2009/12/05(土) 14:55:460935デフォルトの名無しさん
2009/12/05(土) 14:57:430936デフォルトの名無しさん
2009/12/05(土) 15:02:07え、マジ?www
俺結構言っちゃうけど。やべえ
0937デフォルトの名無しさん
2009/12/05(土) 15:04:31権利の主張が過ぎるのがゆとりクオリティ。
0938デフォルトの名無しさん
2009/12/05(土) 15:05:39押しつけがましい回答者が居座ってるときに質問してしまったようでご愁傷様w
いっつもいるんだよな。
政治的事情も考慮せずに、ただ自分好みの方法を質問者に押しつけようとするやつ
その上、自分好みの方法が受け入れられないと、こんどはバックグラウンドにある
組織の批判を始めたりして結局、何の助けにもならないっつう迷惑な回答者
まあ、いまの雰囲気じゃ挽回は無理なので、教えてgooにでもいきなさいw
0939デフォルトの名無しさん
2009/12/05(土) 15:09:29政治的事情を考慮したいなら情報システム板に行け
0940デフォルトの名無しさん
2009/12/05(土) 15:09:49Office操作もできてC#4.0でdynamicも使えて最強
0941デフォルトの名無しさん
2009/12/05(土) 15:11:18そうそう。そういうのが出てきてから移行すべきで
今のところはVC++一択
0942デフォルトの名無しさん
2009/12/05(土) 15:13:490943デフォルトの名無しさん
2009/12/05(土) 15:14:53あんまり実施例として聞かない話だよな。
0944デフォルトの名無しさん
2009/12/05(土) 15:15:53文句は具体的な代替案とセットでお願いします。
0945デフォルトの名無しさん
2009/12/05(土) 15:17:01http://www.ujasiri.com/prglib/vc/ppt/vc_ppt.html
0946デフォルトの名無しさん
2009/12/05(土) 15:17:03サポートも望めないわな
0947デフォルトの名無しさん
2009/12/05(土) 15:20:24managedDirectXとかどうなっちゃったか考えてみろ
0948デフォルトの名無しさん
2009/12/05(土) 15:25:59はろーわーるどに毛の生えたレベル
これ作るのに言語から習得し直してC++やるのはねぇ
0949デフォルトの名無しさん
2009/12/05(土) 15:28:58なんでActiveXと同列に語られてんの?
じぶんとしてもSilverlight使えばいいと思う。
0950デフォルトの名無しさん
2009/12/05(土) 15:32:53そういう体質がデスマを招くわけなんだけど
0951デフォルトの名無しさん
2009/12/05(土) 15:33:56さっすく勉強しよっと
0952デフォルトの名無しさん
2009/12/05(土) 15:35:35VS2010ベータで作れるけどさすがにそれはちょっとw
まあ要件はSilverlight4のデモに使えそうなくらいぴったりなんだけどな
0953デフォルトの名無しさん
2009/12/05(土) 15:36:10変換はサーバサイドで実装するのが常道なんじゃないの?
変換ロジックがサーバサイドにあると仮定すると、クライアントなんて
ActiveXだろうが、ClickOnce配布のアプリだろうが、Silverlightだろうが、
好きなの使えば良いと思うんだよ。
ActiveX云々の話が目的にどう絡んでくるのか見えないな。
0954デフォルトの名無しさん
2009/12/05(土) 15:36:43てかなんでVS2008じゃ出来ないんだよぉ…
0955デフォルトの名無しさん
2009/12/05(土) 15:39:310956デフォルトの名無しさん
2009/12/05(土) 16:16:440957デフォルトの名無しさん
2009/12/05(土) 17:02:160958デフォルトの名無しさん
2009/12/05(土) 17:17:12まぁ、サーバーサイドで Office をオートメーションするのはサポート外なんだけど。
0959デフォルトの名無しさん
2009/12/05(土) 17:30:340960デフォルトの名無しさん
2009/12/05(土) 17:31:190961890
2009/12/05(土) 17:32:50ロジックをできる限りサーバーサイドに持ってきたいのも
事実なんですけど、PHPに巨大なロジック持たせたくないんです。
ASP.NETだったらいかに楽だったか。
ActiveXの置き換えは自社パッケージの時期バージョンからなんで、
Silverlight4のリリース時期次第では、Silverlight開発も通せるかも。
別部署のパッケではずっと前からクライアント側をSilverlightにしてるし。
Silverlightの入門ってどこ見たらいいでしょうか。。。
0962デフォルトの名無しさん
2009/12/05(土) 17:38:400963デフォルトの名無しさん
2009/12/05(土) 17:46:22クライアントにオフィス入ってないとダメw
0964デフォルトの名無しさん
2009/12/05(土) 17:58:34クライアントとサーバーの両方
0965デフォルトの名無しさん
2009/12/05(土) 18:53:59なるのか想像もつかんな。
変換ロジック自前で書いたりしないだろうし。
もしや変換のためのライブラリ/アプリを全ユーザに事前インストールさせる、
なんて仕様?
現状、具体的にどんな操作でどうやって変換してるのかが凄く気になる。
0966デフォルトの名無しさん
2009/12/05(土) 19:06:490967デフォルトの名無しさん
2009/12/05(土) 19:23:410968デフォルトの名無しさん
2009/12/05(土) 19:53:150969デフォルトの名無しさん
2009/12/05(土) 20:53:500970デフォルトの名無しさん
2009/12/05(土) 20:59:060971デフォルトの名無しさん
2009/12/05(土) 21:00:04普通のOfficeは普通にアプリケーション。
0972デフォルトの名無しさん
2009/12/05(土) 21:18:380973デフォルトの名無しさん
2009/12/05(土) 21:21:09Azure
0974デフォルトの名無しさん
2009/12/05(土) 21:23:21どうなるんだろう
0975デフォルトの名無しさん
2009/12/05(土) 21:55:140976デフォルトの名無しさん
2009/12/05(土) 23:10:43のスクリーン座標を取得したいのですがどうすればいいでしょう?
FormのLocation.Xだとかをしてもタイトルバーの位置は分かりませんでした。
(当たり前)
0977デフォルトの名無しさん
2009/12/05(土) 23:13:05PointToScreen
0978デフォルトの名無しさん
2009/12/05(土) 23:22:42PointToScreenはやってみたのですが
Formをもとにしたクライアント座標の変換であって
ウィンドウの(0,0)のスクリーン座標は取得できませんでした。
0979デフォルトの名無しさん
2009/12/05(土) 23:24:100980デフォルトの名無しさん
2009/12/05(土) 23:27:310981デフォルトの名無しさん
2009/12/05(土) 23:32:40すまん。知りたい座標を勘違いしてた。
つ Form.Bounds.Location
0982デフォルトの名無しさん
2009/12/05(土) 23:45:44ちゃんと取得できました
0983デフォルトの名無しさん
2009/12/06(日) 01:58:53AxWMPのプロパティ、ContextMenuStripで設定するだけでは、
デフォルトのWMPコンテキストメニューが表示されてしまいます。
どうすれば望む動作が出来ますか?
0984デフォルトの名無しさん
2009/12/06(日) 13:42:07ウィンドウの左を掴んでリサイズするとコンポーネントがリサイズされる時にうねうねして気持ち悪いんですと思ったんですけど
どうやら僕の作ったプログラム特有の現象ではないみたいなのでやっぱりどうでもいいです。
0985デフォルトの名無しさん
2009/12/06(日) 13:49:460986デフォルトの名無しさん
2009/12/06(日) 14:51:09dockやanchorをうまく使うようにするべきだろうね。
0987デフォルトの名無しさん
2009/12/06(日) 14:51:22確かに自由度は低いけど大抵用は足りると思うが。
0988デフォルトの名無しさん
2009/12/06(日) 14:57:390989デフォルトの名無しさん
2009/12/06(日) 15:16:510990デフォルトの名無しさん
2009/12/06(日) 15:27:080991デフォルトの名無しさん
2009/12/06(日) 15:29:440992デフォルトの名無しさん
2009/12/06(日) 16:37:580993デフォルトの名無しさん
2009/12/06(日) 16:48:140994デフォルトの名無しさん
2009/12/06(日) 17:32:57安易に使うとちらつく原因になって後々困る
0995デフォルトの名無しさん
2009/12/06(日) 17:46:260996デフォルトの名無しさん
2009/12/06(日) 17:52:130997デフォルトの名無しさん
2009/12/06(日) 18:11:34多少ちらついても楽するにはDock使うね
0998デフォルトの名無しさん
2009/12/06(日) 23:38:30enableContextMenuをfalseにしといて、
MouseUpEventでContextMenuStrip.Showで直接表示させる
0999デフォルトの名無しさん
2009/12/06(日) 23:51:25なるほど!それは思いつかなかったです;
1000デフォルトの名無しさん
2009/12/06(日) 23:55:3310011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。