ふらっとC#,C♯,C#(初心者用) Part35
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/12/17(水) 22:17:18「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
0002デフォルトの名無しさん
2008/12/17(水) 22:19:01http://pc11.2ch.net/test/read.cgi/tech/1224754660/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング
http://pc11.2ch.net/test/read.cgi/tech/1211453941/
Live3
http://pc11.2ch.net/test/read.cgi/tech/1221395634/
初心者のためのプログラミング言語ガイド Part12
http://pc11.2ch.net/test/read.cgi/tech/1226761546/
0003デフォルトの名無しさん
2008/12/17(水) 22:19:32http://www.google.co.jp/
http://msdn.microsoft.com/ja-jp/library/default.aspx
http://homepage3.nifty.com/midori_no_bike/CS/
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
http://dobon.net/vb/dotnet/
http://jeanne.wankuma.com/tips/
http://www.labasp.net/CsharpNote/
0004デフォルトの名無しさん
2008/12/17(水) 22:20:18ふらっとC#,C♯,C#(初心者用) Part34
http://pc11.2ch.net/test/read.cgi/tech/1227521785/
0005デフォルトの名無しさん
2008/12/17(水) 22:22:090006デフォルトの名無しさん
2008/12/17(水) 22:24:010007デフォルトの名無しさん
2008/12/17(水) 22:25:160008デフォルトの名無しさん
2008/12/17(水) 22:25:180009デフォルトの名無しさん
2008/12/17(水) 22:28:45try
{
なんやかや;
break;
}
catch{ なんやかや; }
finally{ なんやかや; }
}
こんなんでいいんじゃね
0010前スレ993
2008/12/17(水) 22:40:39昨日から調べてるんですが有効な情報を見つけられなかったので。
>>9
ありがとうございます。
WebRequestやらFileStreamを何度も作るのは嫌ですが
ループで括るのが簡単ですよね。
throwの使い方がいまいちよくわからないのですが
この場合に利用することはできないでしょうか?
0011デフォルトの名無しさん
2008/12/17(水) 22:46:40「例外は本当に例外的なときに使うものであって普通の制御に使ってはいけない」
0012デフォルトの名無しさん
2008/12/17(水) 22:50:10え?
0013デフォルトの名無しさん
2008/12/17(水) 22:57:02もっと優しく教えてやれよ
0014デフォルトの名無しさん
2008/12/17(水) 23:00:230015デフォルトの名無しさん
2008/12/17(水) 23:06:33エクスプローラの空白部分をダブルクリックすると
上の階層に上がると言うのがありますが
どうやったらできるのでしょうか?
0017デフォルトの名無しさん
2008/12/17(水) 23:21:10ちょっとプログラム名を挙げてみて
0018デフォルトの名無しさん
2008/12/17(水) 23:23:28ランチャーソフトで言えば
Clock Launcherとかに搭載されてます。
0019デフォルトの名無しさん
2008/12/17(水) 23:23:40Color ActiveColor = Color.Gray;
int intARGB = (int)(ActiveColor.ToArgb);
こうやると、
エラー: メソッド グループ 'ToArgb' を非デリゲート型 'int' に変換することはできません。
このメソッドを呼び出すことはできません。
となりました。単純にint型の値で受けて、数値を変更してから
使いたいのですが、どのようにしたらよいでしょうか。
0021デフォルトの名無しさん
2008/12/17(水) 23:26:35メソッド呼び出しに()は必須
0022デフォルトの名無しさん
2008/12/17(水) 23:29:02そうだったのですか!!
わかりました、やってみたら確かに解決しました。
ありがとうございました!!
0023デフォルトの名無しさん
2008/12/17(水) 23:37:12ランチャーか…メッセージフック臭いなあ
本当にメッセージフックだとC#から手が出ないんだよね
DLLにできないから
0024デフォルトの名無しさん
2008/12/17(水) 23:40:16> なんだか分かりませんが
> 元コードのほうは正規表現つかってんじゃない?
> C#のほうは単純にstringを置換してるだけっしょ?
> Regexクラス使わないと駄目じゃん
前スレ>>1000
> buffer.Replace("\n", @"\X0e");
>
> は何もしてないよ。戻り値捨ててるやん
> stringクラスは不変だからね
すっかり忘れてましたorz・・・
ご指摘ありがとうございます(´・ω・`)
002515
2008/12/17(水) 23:52:55メッセージフックと言うのですね。
なんか難しそう・・・・
他に方法あったら知りたいですが・・・
ちょっとメッセージフックについて調べてみます。
0026前スレ:991
2008/12/18(木) 00:50:12C#で簡単なデーターベースを扱いたい場合は何を使うのが一般的ですか?
用途は、ファイルにタグ付けみたいなことをしたいのです。
あらかじめファイルのリストを登録しておいて(1000アイテムぐらい)、
〜タグが付いているファイルを列挙するのが主な目的です。
# えっちな画像をタグ管理するソフトだと思っていただいても構いません
ちなみにデーターベースの経験全く持ってゼロです
(遙か昔、DelphiからBDE経由でParadoxDBのデータベースをちょっと触ったことぐらいしかありません)
規模としてはテーブル一つあたり1000〜4000項目 位を登録する予定です。
また、画像用、音楽用とテーブルを用意するつもりですが、
一つのテーブルにまとめて 画像タグ、音楽タグ などをつけた方が良いでしょうか?
(そうすると 3万近くの項目を扱わなければなりません)
データーベースサーバを必要としないシステムが良いです。
また、友人にソフトウェアを渡す場合もあり得るので、出来るだけ単体で配布できるものが良いです。
この用途で一番お手軽な方法は何でしょう?
SQLite(一応追加で入れてみた)? SQL Server Compact ?
0027デフォルトの名無しさん
2008/12/18(木) 01:16:07配布方法はこちらが参考になる
http://msdn.microsoft.com/ja-jp/library/aa983326.aspx
SQLite(System.Data.SQLite)を使いたいなら、そちらでも可
0028デフォルトの名無しさん
2008/12/18(木) 01:28:04c#でexcelを操作するプログラムを作りたいのですがテンプレのサイト等を参考にしたのですがよくわからなかったのでこちらに書き込ませていただきました
知りたいことは
1・console アプリケーションでexcelの操作はできるのか
2・できる場合、必要な初期設定についてどうすればいいのか
(プロジェクト→参照→COM→officeなんちゃらの参照でいいのならばusingについてから教えてください)
3・プログラム内で作成した3種類の数値をexcelに渡し折れ線グラフを作成する。
4・プログラム内ではfor文で約1000回データを作成するので1000個分のグラフを作り、保存したい
以上の4つです。よろしくお願いいたします。
0029デフォルトの名無しさん
2008/12/18(木) 01:32:540030デフォルトの名無しさん
2008/12/18(木) 02:24:17サンクス
0031デフォルトの名無しさん
2008/12/18(木) 02:54:10終わりませんw
0032デフォルトの名無しさん
2008/12/18(木) 02:54:53別にいいけどmdbでも全然大丈夫じゃね?
0033デフォルトの名無しさん
2008/12/18(木) 05:57:11javascriptで
obj.hoge = function hogefunc() { 〜〜 }
とかこれと同じようなイメージ持ったんだけどこんな認識でいいの?
0034デフォルトの名無しさん
2008/12/18(木) 06:12:430035デフォルトの名無しさん
2008/12/18(木) 06:16:09そういう前提で解説サイトのデリゲートの項目を読めば理解が進みそうだ
0036デフォルトの名無しさん
2008/12/18(木) 07:35:550037デフォルトの名無しさん
2008/12/18(木) 08:03:490038デフォルトの名無しさん
2008/12/18(木) 17:28:50バグか?
0039デフォルトの名無しさん
2008/12/18(木) 18:05:55あなたの書いたコードのね
0040デフォルトの名無しさん
2008/12/18(木) 18:31:36メニューにText入力してる時に勝手に決定されたりフォーカス外れたりとか。
0041デフォルトの名無しさん
2008/12/18(木) 19:39:250042デフォルトの名無しさん
2008/12/18(木) 19:42:57MsgWaitForMultipleObjectsだったかを呼び出すしかないですかね?
メッセージが来るまでただ待ちたいだけです。
これってフォームアプリから呼び出すのに特に注意事項とかありますかね?
ネイティブの世界に明るくないので問題あるのかよく分からない。
マネージドな世界だけで出来ればそれにこしたことはないんですが、ちょっと無理そうで…
0043デフォルトの名無しさん
2008/12/18(木) 19:51:24catchを使わないtryの意味って何すか?
0044デフォルトの名無しさん
2008/12/18(木) 20:02:55Hoge();
catch (HogeException e)
throw e;
みたいな感じで書きたいんでしょ
できてもおかしくはないな
>>43 finally
0045デフォルトの名無しさん
2008/12/18(木) 20:12:570046デフォルトの名無しさん
2008/12/18(木) 21:35:50else if
...
else if
else
と
try
catch()
...
catch()
finally
は似てるよね的な感じか。
0047デフォルトの名無しさん
2008/12/18(木) 22:24:58メモリ使用量が多く見えるのですが?
どうなんですかね?
0048デフォルトの名無しさん
2008/12/18(木) 22:30:20あの表示を減らすだけならウインドウを最小化したりSetProcessWorkingSetSizeを呼び出したりすれば
簡単に減らせる
0049デフォルトの名無しさん
2008/12/18(木) 22:38:100050デフォルトの名無しさん
2008/12/18(木) 23:06:52コンパイルはできるけどエラーがでる。
なぜなんだろうか?
0051デフォルトの名無しさん
2008/12/18(木) 23:10:500052デフォルトの名無しさん
2008/12/18(木) 23:12:580053デフォルトの名無しさん
2008/12/18(木) 23:15:41http://msdn.microsoft.com/ja-jp/library/system.convert(VS.80).aspx
005450
2008/12/18(木) 23:23:35ちょっと考えます。
0055デフォルトの名無しさん
2008/12/18(木) 23:59:52ソフト自体のメモリ使用量じゃないよそれ。
ガベコレはいったん多めにメモリ取っておいた方が実行効率いいんだし。
0056デフォルトの名無しさん
2008/12/19(金) 00:51:20途中でメモリが足りないというエラーが出て落ちます。
メモリは3GB積んでいるのでそうかんたんになくならないはずなんですが。
↓こんなプログラムです
for(int i=0;i<画像の枚数;i++)
{
Bitmap bmp = new Bitmap();
//↓ここで画像処理
//↑
bmp.Dispose();
GC.collect();
}
どの画像に対してやってもループ2〜3回目で落ちてしまいます。
ガベコレしてもメモリの空き容量が全然増えないのがなぞです。
アドバイスお願いします。
0057デフォルトの名無しさん
2008/12/19(金) 00:56:10GC.Collectは無くても変わらない
ここで画像処理 の中にリソースの掴みっぱなしがあるとか
0058デフォルトの名無しさん
2008/12/19(金) 01:03:30ちなみに↓こうするとなぜか問題なく動きます
for(int i=0;i<画像の枚数;i++)
{
Bitmap bmp = new Bitmap();
//↓ここで画像処理
//↑
bmp.Dispose();
GC.collect();
MessageBox.Show("プギャー");//←これを挿入
}
タスクマネージャーでメモリ量を監視していると
メッセージボックスを表示させた瞬間にメモリ量が
いっきに減ります
不思議でしょうがないです(・・;)
0059デフォルトの名無しさん
2008/12/19(金) 01:05:38512MBのメモリが足りなくなったことなんてないな
DisposeのタイミングはCLR依存のはずだからDisposeしたら
すぐに解放されるわけではないよ
0060デフォルトの名無しさん
2008/12/19(金) 01:36:210061デフォルトの名無しさん
2008/12/19(金) 02:01:52WinFormsのメッセージループをMsgWaitForMultipleObjectsで置き換えるのか。
たとえ今上手く動いても、.NetFrameworkの実装が変わって動かなくなる可能性もあるし
俺なら怖くてできないな。
> マネージドな世界だけで出来ればそれにこしたことはないんですが、ちょっと無理そうで…
別スレッドで WaitHandle.WaitAny で待機して、
シグナル状態になったら、UIスレッドにメッセージを送信するんじゃダメなほどの効率が必要なの?
0062デフォルトの名無しさん
2008/12/19(金) 09:02:58> DisposeのタイミングはCLR依存のはずだからDisposeしたら
> すぐに解放されるわけではないよ
そんなわけないだろ何のためのDisposeだよ
Disposeのタイミング→GCのタイミングならわかるけどこの場合GCは関係ない
0063デフォルトの名無しさん
2008/12/19(金) 10:25:01どっちがカンタン?
0064デフォルトの名無しさん
2008/12/19(金) 10:32:230065デフォルトの名無しさん
2008/12/19(金) 10:50:27よく使う範囲では大体同じ
0066デフォルトの名無しさん
2008/12/19(金) 11:10:53すぐに使えるようになるのはどっち?
0067デフォルトの名無しさん
2008/12/19(金) 11:12:55窓アプリ以外は
0068デフォルトの名無しさん
2008/12/19(金) 11:18:380069デフォルトの名無しさん
2008/12/19(金) 11:21:370070デフォルトの名無しさん
2008/12/19(金) 11:49:530071デフォルトの名無しさん
2008/12/19(金) 16:36:50{
listView1.Items.AddRange((ListViewItem[])dr.ItemArray); // ←どうやってキャストしたら良いでしょうか?
}
0072デフォルトの名無しさん
2008/12/19(金) 16:48:13Enumerable.SelectからToArrayするか、素直にListViewItem[]をnewしてfor回して一つずつ代入
0073デフォルトの名無しさん
2008/12/19(金) 17:53:52方法を教えて下さい。
http://msdn.microsoft.com/ja-jp/library/z9w7ek2f(VS.80).aspx
を読むと、挿入したいコンポーネントを選んでマウスを持ってくると、挿入バーが
表示されるように書いてありますが、それらしいものが表示されません。
もしくは最後尾に追加したコンポーネントを移動させたいのですが、他のコンポーネントが
移動してくれません。何か設定とか有りますでしょうか?
0074デフォルトの名無しさん
2008/12/19(金) 18:29:16わかりました
ありがとうございます
0075デフォルトの名無しさん
2008/12/19(金) 23:47:380076デフォルトの名無しさん
2008/12/19(金) 23:49:140077デフォルトの名無しさん
2008/12/20(土) 00:51:39俺も仕方無いので、最後尾に入れてから挿入したいところ以降のコンポーネントを全部
移動させたりしてる。こんなはず無いよね。
0078デフォルトの名無しさん
2008/12/20(土) 02:25:18ttp://www.uploda.org/uporg1868478.png
s/コンポーネント/コントロール/だとして、こういうことがしたいということだよな?
てか、書いてる通りにやったら普通に出来たけど
>>73の記述が若干怪しいけど、ちゃんとドラッグ&ドロップしてるよな?
0079デフォルトの名無しさん
2008/12/20(土) 07:53:57用意されていないでしょうか?
0080デフォルトの名無しさん
2008/12/20(土) 09:36:46たぶんないから SyncRoot を取得して lock
008173
2008/12/20(土) 11:32:02あああ〜、その通りです。
ドラッグするのですね。
ツールボックスでクリックしてカーソルを持って行っても黒線は出ないのですね。
配置済みのボタンを移動させても黒線が出ますね。
実際にやりたいのは、配置各種設定済のパネルを移動させたいのですが、それだと
なぜかどこへ持っていっても黒線が出なくて困っています。
でも、ボタンで実際の動きが分かったので、パネル側の設定か何かの問題で黒線が
状態になってるかも知れないのでいろいろ試してみます。
ありがとうございました。
0082デフォルトの名無しさん
2008/12/20(土) 20:04:010083デフォルトの名無しさん
2008/12/20(土) 20:12:48・オーバーロード
・引数専用の型を作る(ex. EventArgs)
0084デフォルトの名無しさん
2008/12/20(土) 20:32:20[FIX] Microsoft Visual Studio 2008 Service Pack 1 の英語以外の言語バージョンをインストールした後、
ローカライズされた一部の IntelliSense テキストが英語に戻ることがある
http://support.microsoft.com/kb/957507
0085デフォルトの名無しさん
2008/12/20(土) 21:00:04http://pc11.2ch.net/test/read.cgi/tech/1226134233/401
0086デフォルトの名無しさん
2008/12/20(土) 23:11:46とある人が公開してるアプリケーションで、プロジェクト一式も公開されているものがあります。
その中には
hoge.csproj
hoge.sln
hoge.suo
hoge.config
AssemblyInfo.cs
[image]フォルダ
と、dllファイルが複数ありました。こちらでそのプログラムがいじれるのかと思っていましたが、
各種csファイルが含まれていないので無理なようでした。
ここに含まれていたdllだけでも使用したいのですが、dllファイルをみれば
そのdllファイルの使い方などが分かるものなのでしょうか?
どうググれば、その方法がわかるでしょうか?
C#の質問ではないとは思いますが、これを機にC#覚えようかと思っています。
よろしければご教授ください。
0087デフォルトの名無しさん
2008/12/20(土) 23:19:46そもそも、そのDLLの使用は許可されているの?
普通は人が使う事を想定しているのなら、ソースコードなりドキュメントなりが公開されていると思うのだが
0088デフォルトの名無しさん
2008/12/21(日) 00:57:42それをベースにした新しいプロジェクトを作りたいとき
どうすればいいですか?
0089デフォルトの名無しさん
2008/12/21(日) 01:00:36今作っているプロジェクトを丸ごとコピーしてそれをベースして作ればいい
0090デフォルトの名無しさん
2008/12/21(日) 09:49:310091デフォルトの名無しさん
2008/12/21(日) 10:00:100092デフォルトの名無しさん
2008/12/21(日) 10:12:540093デフォルトの名無しさん
2008/12/21(日) 11:18:35仮に、それが例ではなく定義と言うならこんなコードになるんだぜ?
switch(色)
{
case 黒:
return 白;
case 白:
return 黒;
default:
throw new ArgumentOutOfRangeException();
}
0094デフォルトの名無しさん
2008/12/21(日) 11:38:46緑の反対は紫でいいのかね?
0095デフォルトの名無しさん
2008/12/21(日) 11:45:390096デフォルトの名無しさん
2008/12/21(日) 11:53:25補色のことでしょ。補色って言葉を知らなくてもネガって言えばいいのに。
Color構造体からRGBの各値は取得できるんだから、それらの1の補数から
FromArgb()するだけじゃないのか?
0097デフォルトの名無しさん
2008/12/21(日) 11:55:000098デフォルトの名無しさん
2008/12/21(日) 12:55:480099デフォルトの名無しさん
2008/12/21(日) 15:06:440100デフォルトの名無しさん
2008/12/21(日) 15:19:44今までプログラミングの経験は皆無だったのですが、javarcript→C#と勉強をしています。
ほぼ独学なのですが、いい勉強法がありますでしょうか?
今は例題が載った参考書を買ってサンプルを組み立てつつ理解を深めるという形をとっています。
皆さんのご意見をお願いします。
0101デフォルトの名無しさん
2008/12/21(日) 15:25:47自分の作りたいソフトを試行錯誤しながら作るのが一番
0102デフォルトの名無しさん
2008/12/21(日) 16:10:430103デフォルトの名無しさん
2008/12/21(日) 18:15:49そこから始めるとほぼ確実に途中でプログラミング全般を諦める
0104デフォルトの名無しさん
2008/12/21(日) 18:26:580105デフォルトの名無しさん
2008/12/21(日) 18:31:07一通り出来たらHallo workに行くと・・・
0106デフォルトの名無しさん
2008/12/21(日) 18:32:09はえーYO! w
0107デフォルトの名無しさん
2008/12/21(日) 18:42:28作者さんのミスだったようです。全ファイル公開していただけました。
お騒がせいたしました。
0109デフォルトの名無しさん
2008/12/21(日) 22:52:090110デフォルトの名無しさん
2008/12/21(日) 22:57:450111デフォルトの名無しさん
2008/12/22(月) 00:34:17めちゃくちゃわかりやすくて感動した
0112デフォルトの名無しさん
2008/12/22(月) 07:15:01全然APIをラップできてないからなw
0113デフォルトの名無しさん
2008/12/22(月) 08:45:15激しく低レベルで取扱注意 or 別物なぐらい高級で機能不足の二つ
どっちも深い知識がないと使いこなせないw
0114デフォルトの名無しさん
2008/12/22(月) 09:09:280115デフォルトの名無しさん
2008/12/22(月) 12:40:05.NETはそのうちのどちら?
0116デフォルトの名無しさん
2008/12/22(月) 12:42:40頭湧いてるのか
0117デフォルトの名無しさん
2008/12/22(月) 17:45:56と読み換えたら笑ってしまったw
0118デフォルトの名無しさん
2008/12/22(月) 17:57:13ttp://www.akibaos.com/img/2008/07/04/20080704h06.jpg
ttp://www.akibaos.com/img/2008/07/04/20080704h03.jpg
0119デフォルトの名無しさん
2008/12/22(月) 18:33:04だから糊とか言われるわけで
0120デフォルトの名無しさん
2008/12/22(月) 19:34:09久しぶりにMSDN見たが読みにくすぎで笑った
0121デフォルトの名無しさん
2008/12/22(月) 19:46:270122デフォルトの名無しさん
2008/12/22(月) 19:55:41C++の基本的要素(使用可関数やらなにゃら)は引き継げるかな?
とりあえずSTLは引き継ぎたい
0123デフォルトの名無しさん
2008/12/22(月) 19:57:14http://codezine.jp/article/detail/2474
0124デフォルトの名無しさん
2008/12/22(月) 20:05:32C++/CLIでSTL作って、C#でアクセスすることによってその効果を適用することができるの?
CLIはあんましわかんないわなあ・・・
0125デフォルトの名無しさん
2008/12/22(月) 20:07:48最低限のインターフェイスのみ
どーしてもSTL使いたいっていうわがままで迷惑な人向け
0126デフォルトの名無しさん
2008/12/22(月) 20:13:29もちろんそれに代わるすごいのが用意されてるんだよね?
C#はじめようかと思ってショックなんだが
0127デフォルトの名無しさん
2008/12/22(月) 20:18:010128デフォルトの名無しさん
2008/12/22(月) 20:37:37皮肉ったつもりなんだけど真に受けたの?
0129デフォルトの名無しさん
2008/12/22(月) 20:39:22WinFormsとWPFにもあてはまる
0130デフォルトの名無しさん
2008/12/22(月) 21:36:25ちゃんと解説されているサイトってない?
0131デフォルトの名無しさん
2008/12/22(月) 21:53:15その記事にC#から使うって書いてあるだろ
0132デフォルトの名無しさん
2008/12/22(月) 22:31:48それはC#でSTLを使うんじゃなくて,物好きで迷惑なアホがC++/CLIでSTL/CLRを使った
クラスライブラリを作っちゃった時に,何とかそのライブラリをC#から使う方法
0133デフォルトの名無しさん
2008/12/22(月) 23:12:17usingさえすればそれと一緒。
0134デフォルトの名無しさん
2008/12/22(月) 23:22:34STL/CLR自体はテンプレート使ってるからC++/CLI専用。
VisualC.StlClrはアセンブリをまたいでC++/CLIはもちろんC#などから
STL/CLRのオブジェクトにアクセスするための単なるインターフェイス集。
0135デフォルトの名無しさん
2008/12/22(月) 23:24:03C#から使う場合はファクトリをC++/CLIで書かなくてはいけない。
ソース見てないけど、.NET互換のGenericじゃなくてtemplateの機能を使ってるんじゃないかな。
C#から使える機能はSTL/CLRの一部だけ。
0136デフォルトの名無しさん
2008/12/22(月) 23:27:230137デフォルトの名無しさん
2008/12/22(月) 23:33:450138デフォルトの名無しさん
2008/12/22(月) 23:38:010139デフォルトの名無しさん
2008/12/22(月) 23:41:500140デフォルトの名無しさん
2008/12/22(月) 23:42:28extern "C"でネイティブDLL作ってP/Invoke
COM
0141デフォルトの名無しさん
2008/12/23(火) 01:08:490142デフォルトの名無しさん
2008/12/23(火) 01:22:37質問する前に、「pdf .net」で検索してきな
0143デフォルトの名無しさん
2008/12/23(火) 11:56:26テキストでは
C:\>csc example.cs
でコンパイルしろと書いてるんですが、これではエラーが起こってしまいます。
C:\>csc example.cs.txt
だとしっかり??動くんですが、なんでかよくわかりません。
ちなみにプログラムは初めてやります。ご教授おねがいします。
0144デフォルトの名無しさん
2008/12/23(火) 11:59:44そんなんでよくプログラミングやろうと思ったね
0145デフォルトの名無しさん
2008/12/23(火) 12:04:470146デフォルトの名無しさん
2008/12/23(火) 12:11:13まずはピュアなC#の本じゃなくてVisual C#の本買ってきて
Visual C# Expressをダウンロードして遊んだ方が続くんじゃないかな
0147デフォルトの名無しさん
2008/12/23(火) 12:12:310148デフォルトの名無しさん
2008/12/23(火) 12:21:310149デフォルトの名無しさん
2008/12/23(火) 12:22:39ありがとございました。
0150デフォルトの名無しさん
2008/12/23(火) 14:21:37最初からIDEで何か問題あるか?今時個人でmakefileもないだろう
0151デフォルトの名無しさん
2008/12/23(火) 14:25:42SharpDevelopとかしかなかったの。
初学者はコマンドラインでコンパイルしたり、サンプルからリソースエディタみたいなのビルドして
リソースファイル作ったりとかしてたの(T_T)
0152デフォルトの名無しさん
2008/12/23(火) 14:32:490153デフォルトの名無しさん
2008/12/23(火) 14:36:25ソースコードに戻せるという意味ならそうだよ。
0154デフォルトの名無しさん
2008/12/23(火) 15:26:450155デフォルトの名無しさん
2008/12/23(火) 15:36:23商用なら対策用ソフトが高価だが売ってるし
0156デフォルトの名無しさん
2008/12/23(火) 18:26:530157デフォルトの名無しさん
2008/12/23(火) 19:51:55俺、コメントに顔文字とか使ってるんだけどw
0158デフォルトの名無しさん
2008/12/23(火) 19:57:440159デフォルトの名無しさん
2008/12/23(火) 19:59:510160デフォルトの名無しさん
2008/12/23(火) 22:48:23(・∀・)いや、安心している場合じゃないぞw
0161デフォルトの名無しさん
2008/12/23(火) 22:50:110162デフォルトの名無しさん
2008/12/23(火) 22:53:17Mono を使えば。
0163デフォルトの名無しさん
2008/12/23(火) 22:54:170164デフォルトの名無しさん
2008/12/24(水) 02:29:580165デフォルトの名無しさん
2008/12/24(水) 03:03:370166デフォルトの名無しさん
2008/12/24(水) 04:49:40binフォルダの中のReleaseフォルダの中の.exeファイルを配布すればいいのですか?
objフォルダじゃないですよね・・・?
0167デフォルトの名無しさん
2008/12/24(水) 11:43:28それでおk
0168デフォルトの名無しさん
2008/12/24(水) 13:53:39ぴん・・・ぼけだと?w
0169デフォルトの名無しさん
2008/12/24(水) 14:11:160170デフォルトの名無しさん
2008/12/24(水) 14:21:05ありがとうね
0171デフォルトの名無しさん
2008/12/24(水) 19:47:04forに比べてそんなに便利なんですか?
0172デフォルトの名無しさん
2008/12/24(水) 19:51:00例えば配列要素を全て合計するような単純なイテレーションなら
foreach を使ったほうが速い。
0173デフォルトの名無しさん
2008/12/24(水) 19:52:210174デフォルトの名無しさん
2008/12/24(水) 20:01:42どういう使い方を想定してる?
0175デフォルトの名無しさん
2008/12/24(水) 20:02:140176デフォルトの名無しさん
2008/12/24(水) 20:04:53速いっていうのは実行速度が?
それともコーディングが?
0177デフォルトの名無しさん
2008/12/24(水) 20:07:18実行速度
0178デフォルトの名無しさん
2008/12/24(水) 20:18:090179デフォルトの名無しさん
2008/12/24(水) 20:38:40確かfor (int i = 0; i < array.Length; i++)も同様に最適化されるんだったとおもう
0180デフォルトの名無しさん
2008/12/24(水) 21:17:31C# 4.0 だと
public static IEnumerable<dynamic> WithIndex<TSource>(this IEnumerable<TSource> enumerable)
{
int index = 0;
foreach (TSource item in enumerable)
{
yield return new { Index = index, Item = item };
index++;
}
}
みたいなことができるっぽい。
今の段階だと dynamic の部分で適当にクラスを作成するしかないかな?
何かうまい抜け道がある気がするんだが。
0181デフォルトの名無しさん
2008/12/24(水) 21:23:55普通にインデクサを使ってアクセスしているのに何故高速かと思ったら最適化されているんだ。
0182デフォルトの名無しさん
2008/12/24(水) 21:29:56とんでもなく遅そうだなそれ
わざわざdynamicにする意味がわからない
struct IndexItemPair<TSource> { public int Index { get; } public TSource Item { get; } }
とか返せばいいだろ
foreachにこだわらなくてもこういうのでいいんじゃないの
static void ForEach<TSource>(this IEnumerable<TSource> source, Action<TSource, int> action) {
int index = 0;
foreach (TSource item in source) action(item, index++);
}
0183デフォルトの名無しさん
2008/12/24(水) 21:35:10こうでいいじゃん
public static void ForEach<T>
(this IEnumerable<T> e, Action<TSource, int> action)
{
int index = 0;
foreach(var item in e)
{
action(item, index);
index++;
}
}
0184デフォルトの名無しさん
2008/12/24(水) 21:36:54確か Select, Where 辺りのオーバーロードにあった気がする
んだが
0185デフォルトの名無しさん
2008/12/24(水) 21:38:440186デフォルトの名無しさん
2008/12/24(水) 21:41:46そういうのを本来の用途から外れて無理に転用するのはお行儀が悪い
items.Select((item, index) => { item.Hoge(index); return null; });
とか書かれてても何がしたいのかわからんでしょ
0187デフォルトの名無しさん
2008/12/24(水) 21:46:15その例は使い方悪すぎ。書くならこう
var items =
source
.(略)
.Select((value, index) => new { Index = index, Value = value });
foreach(var item in items) {
item.Value.Hoge(item.Index);
}
0188デフォルトの名無しさん
2008/12/24(水) 21:46:200189デフォルトの名無しさん
2008/12/24(水) 21:47:23>IEnumerator自分で実装したことがあればそんな愚論は絶対に吐けないと思うw
あほう
0190デフォルトの名無しさん
2008/12/24(水) 21:50:22(゚д゚)ハァ?
0191デフォルトの名無しさん
2008/12/24(水) 21:53:18その場合、ファイルのサイズが書き込み完了になるまでわからないのですが、
その書き込み完了をどのようにして判定すればよいでしょうか?
FileStreamとBinaryReaderを使って成長中のファイル(書き込み完了前のファイル)を読み出したい
と思っています。周期的に更新時間をチェックし、更新時間が変わらなくなったら、という判定を
考えていたのですが、もっと適切な方法はあるのでしょうか?
助言をいただけたらと思います。
0192デフォルトの名無しさん
2008/12/24(水) 21:54:33戻り値を IEnumerable<dynamic> にした理由は IEnumerable を返したかったから。
enumerable.WithIndex().Hoge(...) みたいなことがしたい。
まあ>>182の言うようにインデックスと実体のペアを返すので十分良いけど。
0193デフォルトの名無しさん
2008/12/24(水) 21:59:24配列に対するforeachと,for (int i = 0; i < array.Length//Lengthプロパティを使うのが大事; i++)
の形のforはどちらも最適化されてほとんど同じ速度になる
0194デフォルトの名無しさん
2008/12/24(水) 22:06:440195デフォルトの名無しさん
2008/12/24(水) 22:29:150196デフォルトの名無しさん
2008/12/24(水) 22:34:00素直にやったらIEnumeratorを操作したりするようなコードになることを考えれば,
差はほとんどないと言っていいと思う
0197デフォルトの名無しさん
2008/12/24(水) 23:45:51それいいねー
Perlっぽくてナイス
0198デフォルトの名無しさん
2008/12/24(水) 23:58:08型付けするだけで数百倍速くなるぞ
0199デフォルトの名無しさん
2008/12/25(木) 00:11:56まだ実装もされていない機能についてどうしてそんなことがいえるんだよ
0200デフォルトの名無しさん
2008/12/25(木) 00:28:160201デフォルトの名無しさん
2008/12/25(木) 00:37:20…まあ無いだろうな
0202デフォルトの名無しさん
2008/12/25(木) 00:41:06てか>>187で何か問題があるんか
0203デフォルトの名無しさん
2008/12/25(木) 03:22:12常識的に考えて
0204デフォルトの名無しさん
2008/12/25(木) 04:52:09private void hoge(TYPE type)
{
type v=new type();
}
みたいにコンストラクタを呼び出したいだけなんだが
0205デフォルトの名無しさん
2008/12/25(木) 05:20:54{
T t = new T();
こんなんだっけ
0206デフォルトの名無しさん
2008/12/25(木) 05:49:41void Hoge(Type type)
{
object o = Activator.CreateInstance(type);
}
T が既知なら>>205の方法で。
0207デフォルトの名無しさん
2008/12/25(木) 06:10:15どんな意味だ
0208デフォルトの名無しさん
2008/12/25(木) 06:16:47型パラメータの制約
http://msdn.microsoft.com/ja-jp/library/d5x73970.aspx
0209デフォルトの名無しさん
2008/12/25(木) 06:36:29へえこんなんあったのか
よくシリアライズ関係のクラスで引数無しのコンストラクタを
渡してコンパイルエラーになるのが謎すぎたんだけどこれのせいかよ
0210デフォルトの名無しさん
2008/12/25(木) 07:10:490211デフォルトの名無しさん
2008/12/25(木) 08:40:47ついてはいくけどさ
0212デフォルトの名無しさん
2008/12/25(木) 08:46:270213デフォルトの名無しさん
2008/12/25(木) 09:21:410214デフォルトの名無しさん
2008/12/25(木) 09:31:38食わず嫌い乙
0215デフォルトの名無しさん
2008/12/25(木) 09:34:01確かに3.5とかすげぇ便利でいいと思うんだよ・・・・
でもな・・・・でもな・・・・
現場にWin2000が現役ではびこってるからつかえねぇええええええええええええ!!!!!
あああああああ
まじめんどくせぇ・・・・
Linq使えば楽なのにとか思うところが多々あるから困る
0216デフォルトの名無しさん
2008/12/25(木) 09:44:090217デフォルトの名無しさん
2008/12/25(木) 11:29:05MONOからパクってくれば
0218デフォルトの名無しさん
2008/12/25(木) 15:15:29なんでボーランドみたいにスタティックリンクライブラりないんだよ
0219デフォルトの名無しさん
2008/12/25(木) 15:24:36必要に応じてローカルコピーで配れということになってるな
0220デフォルトの名無しさん
2008/12/25(木) 16:44:48object getTypeMaxVal(Type type) {
if (type == typeof(byte)) retun byte.MaxValue;
if (type == typeof(short)) return short.MaxValue;
if (type == typeof(int)) return int.MaxValue;
//省略...
}
の様なメソッドで求めているのですが、もっと簡単な方法があれば、
ご教授願えれば有難いです。
0221デフォルトの名無しさん
2008/12/25(木) 16:47:380222デフォルトの名無しさん
2008/12/25(木) 16:48:14×ご教授
日本語からやりなおそうな
0223デフォルトの名無しさん
2008/12/25(木) 16:51:53として最大値や最小値の範囲を表示したいのです。
それと、DELキーにより型に対応した初期値も設定したいのです。
0224デフォルトの名無しさん
2008/12/25(木) 16:53:49type.GetField("MaxValue").GetValue(null);
遅いので頻繁に必要なら結果はキャッシュしておいてね
0225220
2008/12/25(木) 16:55:30有難うございます。
0226デフォルトの名無しさん
2008/12/25(木) 18:43:190227デフォルトの名無しさん
2008/12/25(木) 18:46:290228デフォルトの名無しさん
2008/12/25(木) 18:50:540229デフォルトの名無しさん
2008/12/25(木) 18:54:25信じられん・・・
0230デフォルトの名無しさん
2008/12/25(木) 19:00:040231デフォルトの名無しさん
2008/12/25(木) 19:12:070232デフォルトの名無しさん
2008/12/25(木) 19:18:14「状態に依存しない」ってこと
0233デフォルトの名無しさん
2008/12/25(木) 19:24:070234デフォルトの名無しさん
2008/12/25(木) 19:37:28「ご教授」でもいいんだよ。
2chの誤用厨(ちょうどお前さんのような)が騒いでるのとは違って。
こういう恥ずかしい馬鹿が最近多くて困るまったく。
0235デフォルトの名無しさん
2008/12/25(木) 19:47:23意味が無いような気がするんですが
0236デフォルトの名無しさん
2008/12/25(木) 19:52:00たとえばMath.Sinはいつどこでどんな状況で使っても引数の値だけで結果が決まるんだから
インスタンスがあると逆に不自然
インスタンスっていうのは「状態」を表すんだよ
0237デフォルトの名無しさん
2008/12/25(木) 19:55:16Math.Max(x, y)を実行するためにMathのインスタンスが必要と思うか?
0238デフォルトの名無しさん
2008/12/25(木) 20:04:59「ご教授」は体系的に教えることを言う
下手クソな自己擁護乙
0239デフォルトの名無しさん
2008/12/25(木) 20:05:59それは2chの誤用厨が勝手に言ってるだけだよ。
違うってのならソースある?
いわゆる「一流」の辞書にそんなこと書いてないから。
0240デフォルトの名無しさん
2008/12/25(木) 20:06:100241デフォルトの名無しさん
2008/12/25(木) 20:06:480242デフォルトの名無しさん
2008/12/25(木) 20:09:17パフォーマンスは関係ない。
意味的に変だからやらないだけ。
つーかその変のことはコード書いてる内に自然とわかってくるから
今は深く考えなくてもいいかもしれんよ。
0243デフォルトの名無しさん
2008/12/25(木) 20:15:340244デフォルトの名無しさん
2008/12/25(木) 20:18:34ありがとうございます
privateの意味が無いような気がするんですが、これはコーダーがケアレスミスしないようにするためのものなんですか?
0245デフォルトの名無しさん
2008/12/25(木) 20:24:58ブラウン管テレビだろうとプラズマハイビジョンテレビだろうと液晶テレビだろうと
リモコンのボタン押すだけだろ?
そういうことだ
0246デフォルトの名無しさん
2008/12/25(木) 20:28:580247デフォルトの名無しさん
2008/12/25(木) 20:29:030248デフォルトの名無しさん
2008/12/25(木) 20:29:280249デフォルトの名無しさん
2008/12/25(木) 20:37:32それは「作る側」の視点に立ってるから。
使う側の視点に立てばおのずとわかる。
もしTVの裏にピンジャックが100個付いてたら、どれが映像入力端子で
どれが音声入力端子か見分けるだけでも一苦労するだろ。
外から見えるのは必要最小限の物だけでいいってこと。
0250デフォルトの名無しさん
2008/12/25(木) 20:38:530251デフォルトの名無しさん
2008/12/25(木) 20:42:02最小限のものだけが見えているからこそ
ブラウン管テレビもプラズマハイビジョンテレビも同じように扱える
なんでもかんでも中身が見えてて触れたら,マイナーチェンジでちょっとだけ仕組みを変えただけで
使ってた人から「せっかく操作方法覚えたのになんで変えるんだよ!」と文句言われることになる
0252デフォルトの名無しさん
2008/12/25(木) 20:44:34「一流」の辞書とやらの定義を出してごらんよゴミ君
0253デフォルトの名無しさん
2008/12/25(木) 20:47:260254デフォルトの名無しさん
2008/12/25(木) 21:02:53{
if (i)
{
A[x] = A[x] *A[x];
}
else
{
A[x] = A[x] * A[x] * A[x];
}
}
これやると、必ずA[x]*A[x]の方も実行されてしまうんですが・・・。
0255デフォルトの名無しさん
2008/12/25(木) 21:06:350256デフォルトの名無しさん
2008/12/25(木) 21:08:340257デフォルトの名無しさん
2008/12/25(木) 21:09:240258デフォルトの名無しさん
2008/12/25(木) 21:42:17textBox5.Text = i.ToString();
if(i)
確認したらfalseでも実行されてしまうんですが・・・
0259デフォルトの名無しさん
2008/12/25(木) 21:43:210260デフォルトの名無しさん
2008/12/25(木) 21:43:370261デフォルトの名無しさん
2008/12/25(木) 21:45:44A[x]=A[x]*A[x]とは,A[x]=2*2=4ですよね?
A[x]=A[x]*A[x]*A[x]とは、A[x]=2*2*2=8ですよね?
これがA[x]=4*4*4=64となってるんです
0262デフォルトの名無しさん
2008/12/25(木) 21:48:24プログラム全部上げろ
0263デフォルトの名無しさん
2008/12/25(木) 21:52:19とか?
0264デフォルトの名無しさん
2008/12/25(木) 21:55:55{
NI_Frag = true;
Atype(Counts);
}
private void button19_Click(object sender, EventArgs e)
{
SAN_Frag = true;
Atype(Counts);
}
}
0265デフォルトの名無しさん
2008/12/25(木) 21:57:02{
Cal(x);
Dott(Dot);
A[x] = F[x] * Dott(Dot);
if (NI_Frag || SAN_Frag) //&&:論理積AND
{
Xope(Counts,NI_Frag);
}
}
public void Xope(int x,bool i)
{
textBox5.Text = i.ToString();
if (i)
{
A[x] = A[x] *A[x];
}
else
{
textBox6.Text = i.ToString();
A[x] = A[x] * A[x] * A[x];
}
}
0266デフォルトの名無しさん
2008/12/25(木) 21:58:160267デフォルトの名無しさん
2008/12/25(木) 22:05:330268デフォルトの名無しさん
2008/12/25(木) 22:05:400269デフォルトの名無しさん
2008/12/25(木) 22:07:11が見当たらんよ
0270デフォルトの名無しさん
2008/12/25(木) 22:08:28たとえばプログラムを起動したらメモ帳にabcと入力される
とかってふうにしたいんですが
0271デフォルトの名無しさん
2008/12/25(木) 22:09:56{
KETA = 0;
Dot = 0;
NI_Frag = false;
SAN_Frag = false;
D_Frag = false;
Counts++;
for (int j = 0; j < KETA; j++)
{
f[j] = 0;
}
}
0272デフォルトの名無しさん
2008/12/25(木) 22:11:38{
Frg = 1;
//textBox4.Text = "+";
if (SAN_Frag || NI_Frag == false)
{
Atype(Counts);
}
Clear();
}
必ずClear()は実行されてるんですが
0273デフォルトの名無しさん
2008/12/25(木) 22:11:39SendMessage
0274デフォルトの名無しさん
2008/12/25(木) 22:21:20ちょっと分かりません。
もう少し詳しく教えてくれませんか。
0275デフォルトの名無しさん
2008/12/25(木) 22:24:37ぐーぐーれーかーすー
http://sabakan.jpn.ph/hns/hns/Work/CS/CS2007-11-20-1709.htm
0276デフォルトの名無しさん
2008/12/25(木) 22:31:14ありがとうございます。
メリークリスマス^^
0277デフォルトの名無しさん
2008/12/25(木) 22:36:30変数名で発狂しそう
0278デフォルトの名無しさん
2008/12/25(木) 22:38:590279デフォルトの名無しさん
2008/12/25(木) 22:41:42そのループ回らなくね?
0280デフォルトの名無しさん
2008/12/25(木) 22:43:110281デフォルトの名無しさん
2008/12/25(木) 22:44:050282デフォルトの名無しさん
2008/12/25(木) 22:45:510283デフォルトの名無しさん
2008/12/25(木) 22:51:36Whereもそうだぜ
考えられんよ
0284デフォルトの名無しさん
2008/12/25(木) 22:52:42一番外で宣言してるので何とか回っているようです・・・
0285デフォルトの名無しさん
2008/12/25(木) 22:53:430286デフォルトの名無しさん
2008/12/25(木) 22:54:400287デフォルトの名無しさん
2008/12/25(木) 22:56:210288デフォルトの名無しさん
2008/12/25(木) 22:59:20C++とかjavaとかイマイチ
0289デフォルトの名無しさん
2008/12/25(木) 23:02:22お前に整数型を使えなくする呪いをかけた・・・
解いてほしければC++の文字列連結の苦労を学んで来い・・・
0290デフォルトの名無しさん
2008/12/25(木) 23:02:410291デフォルトの名無しさん
2008/12/25(木) 23:04:33メモリまわりと文字列まわりがだるすぎる
0292デフォルトの名無しさん
2008/12/25(木) 23:38:25そこから検索結果の画面に遷移し、検索結果以外に指定した条件を全て検索結果のページに表示したいのです。
そこでキャッシュを使って状態保持を行ったのですが、上司にリソース使うからあまり使うなと言われました。
キャッシュ以外に何かいい手段ありませんか?
0293デフォルトの名無しさん
2008/12/25(木) 23:42:25ファイルにでも書き出せば?
0294デフォルトの名無しさん
2008/12/26(金) 00:14:200295デフォルトの名無しさん
2008/12/26(金) 00:27:56ならスレ違い。HTTPの勉強でもしとけ
0296デフォルトの名無しさん
2008/12/26(金) 03:59:10リソースとかのレベルの問題じゃねー
0297デフォルトの名無しさん
2008/12/26(金) 04:54:260298デフォルトの名無しさん
2008/12/26(金) 05:09:58どんだけ複雑なんですか・・・
0299デフォルトの名無しさん
2008/12/26(金) 05:36:24「一流」の辞書には誤用厨なんてことも書いてありませんが
0300デフォルトの名無しさん
2008/12/26(金) 07:45:56なんだその呪いw
0301デフォルトの名無しさん
2008/12/26(金) 14:45:34呼び出し元 フォームA フォームBがあり
それぞれがフォームCを呼び出します。
このときフォームCはモードレスで開かれます。(ダイアログではない)
それで、フォームCを閉じるときにA,Bの全く違うフォームへ閉じたことを知らせたいのですがどうすればよいでしょうか?
コールバック的な感じで処理を行いたいのですが・・・
インターフェイスの実装でできそうですが、それ以外で何かあるでしょうか?
0302デフォルトの名無しさん
2008/12/26(金) 14:57:320303デフォルトの名無しさん
2008/12/26(金) 15:28:010304デフォルトの名無しさん
2008/12/26(金) 15:42:45でりげーと経由で呼び出すということでしょうか?
ちょっとその方法が思いつかないというかなんというか…
実力不足で申し訳ない
>>303
FormClosedかClosingあたりでA,Bそれぞれに伝えたいんです。
その実装方法ということなのですが・・・なにか読み違えてますか?
0305デフォルトの名無しさん
2008/12/26(金) 15:44:28Window1.xaml.cs
のなかで、
Window2.window2 window2 = new Window2.window2();
window2.Show();
としたところ、ウィンドウは表示されるのですが、
ウィンドウの中身が真っ白の豆腐になってしまいます。
開発画面では配置したオブジェクトは見えているし、
Window2だけを単独で開けば、きちんと内部が表示されます。
こんな症状につける薬をどなたかご教示いただけないでしょうか。
よろしくお願いします。
0306デフォルトの名無しさん
2008/12/26(金) 15:44:45それならコールバック的な仕組みを使う意味はないよ
AやBが普通に「全く違うフォーム」に定義したメソッドを呼べばいい
0307306
2008/12/26(金) 15:51:50AやBが開いたCが閉じられるときにAやBからイベント発生
→Cが受け取ってAやBに定義したメソッドを呼び出す
みたいにすれば
>>305
Window2.window2って一体何なの
0308デフォルトの名無しさん
2008/12/26(金) 15:53:29>>307の"Cが受け取って"は"呼び出し元のフォームが受け取って"と読み替えてくれ
0309デフォルトの名無しさん
2008/12/26(金) 15:58:07やっぱ単純に適当なデリゲート作ってイベント発行して
そのイベントでそれぞれが駆動
ってやった方が簡単でわかりやすそうなのでそうやってみます。
0310デフォルトの名無しさん
2008/12/26(金) 16:09:02機械を動かすにはどうすればいいのでしょうか?
0311デフォルトの名無しさん
2008/12/26(金) 16:11:260312デフォルトの名無しさん
2008/12/26(金) 16:22:38LAN
または
232C
0313デフォルトの名無しさん
2008/12/26(金) 16:29:28そうやっていつかは、攻殻機動隊よろしくアンドロイドが人間を支配するんだな。
0314デフォルトの名無しさん
2008/12/26(金) 16:31:03イベント作ってと言うけど,どうやってイベントを紐付けするつもり?
アがイを作って,イの変化をアが受け取りたいときに,
イがアの具体的な型を知らなくても済むようにするための仕組みがイベントであって,
イがアの具体的な型に依存するならイベントを使う意味はない
イにアのインスタンス渡してイがアのメソッド呼べば済むこと
そのへん理解してる?
0315デフォルトの名無しさん
2008/12/26(金) 16:32:46二つ目のウィンドウにつけた名前です。
<Window x:Class="Window2.window2"
Title="window2" Height="300" Width="450"
としてます。
0316デフォルトの名無しさん
2008/12/26(金) 16:41:04普通にやればできる
できないということは,君が出してきてない部分でなにかおかしいところがあるということ
まずなんでWindow2じゃなくてWindow2.window2クラスなの
0317デフォルトの名無しさん
2008/12/26(金) 17:02:43デリゲートという言葉を知っているならそれぐらいは知ってるだろ、常識的に考えて
それにイベントはコールバックができるのだが?
>イベント作ってと言うけど,どうやってイベントを紐付けするつもり?
+=演算子で
お前こそイベントを理解してないじゃないか
0318デフォルトの名無しさん
2008/12/26(金) 17:09:04まさにおっしゃる通りで
>アがイを作って,イの変化をアが受け取りたいときに,
>イがアの具体的な型を知らなくても済むようにするための仕組みがイベントであって,
これがしたかったのです。
恐らくこの場合これが最適な方法なのではないかと
PS
最初に考えていたのは結局呼び出し元のインターフェイスを意識する必要があるため
無駄な型の意識や実装が生まれるものでした。
0319デフォルトの名無しさん
2008/12/26(金) 17:13:09コメントありがとうございます。
おっしゃるとおりかなと思います。
まずなんでということですが、そこにアプリケーション名を入れていて、質問のために便宜的にWindow2としてみました。
0320デフォルトの名無しさん
2008/12/26(金) 17:13:29Cのインスタンスを管理するクラスを作ってそれぞれに渡すとかしないといけないと思うんだが
0321デフォルトの名無しさん
2008/12/26(金) 17:22:011) Cを閉じたら、存在する全てのA,Bへ通知したい
2) Cを閉じたら、ただ一つの呼び出し元=親へ通知したい
どっちかで全然違う気がする。
悩んでるってことは1なんかな?
そうするとただインターフェースを使うってだけじゃなくて
親群を登録しておいて通知するためのクラスを使うとかみたいな仕組みが要るような
0322デフォルトの名無しさん
2008/12/26(金) 17:40:19A, Bに同一のCのインスタンスを渡せばいいだけだから、
A, BのコンストラクタかプロパティでCを受け取れるようにすればいい
こんな阿呆なことは考えてないだろうが、
もし、任意に生成したCのインスタンスからA, B両方に通知したいなら、
Cにstaticイベント作って、OnFormClosedから呼べばいい
0323デフォルトの名無しさん
2008/12/26(金) 17:47:220324デフォルトの名無しさん
2008/12/26(金) 18:14:37newは後片付け(delete)しないと確実に(ry
とかいうのか、お前さんは
0325デフォルトの名無しさん
2008/12/26(金) 18:22:200326デフォルトの名無しさん
2008/12/26(金) 18:30:150327デフォルトの名無しさん
2008/12/26(金) 18:30:400328デフォルトの名無しさん
2008/12/26(金) 19:11:160329デフォルトの名無しさん
2008/12/26(金) 19:17:49xamlのWindowセクションにどう書けばいいですか?
別のウィンドウのxamlファイル名はWindow2.xamlです。
0330デフォルトの名無しさん
2008/12/26(金) 19:19:37Window2のLoadedイベントあたりで開けばいい。
0331デフォルトの名無しさん
2008/12/26(金) 19:21:59間違えた
Window2ではなく元のウインドウのLoadedイベントで別のウインドウ(Window2)を開く
0332デフォルトの名無しさん
2008/12/26(金) 19:43:100333デフォルトの名無しさん
2008/12/26(金) 20:48:480334デフォルトの名無しさん
2008/12/26(金) 21:03:20Formと同様に、元のウィンドウのLoadedイベントに書くんですね。
その場合なんと書けばいいんでしょう?
ファイル名?
ウィンドウ名?
xamlのx:Class名?
Formなら、
Form2 openForm = new Form2();
openForm.ShowDialog();
でいいのですが。
0335デフォルトの名無しさん
2008/12/26(金) 21:06:59生まれてしまいます。これを出来るだけ近い数じにするにはどうしたら良いのでしょうか?。
decimal mag_x = chart_width / listView1.Items.Count;
MessageBox.Show((mag_x * listView1.Items.Count).ToString()+"=="+chart_width.ToString());
0336335
2008/12/26(金) 21:12:330337デフォルトの名無しさん
2008/12/26(金) 21:42:54x:Class="Window2"なら,
Window2 window2 = new Window2();
window2.Show();
0338デフォルトの名無しさん
2008/12/26(金) 22:47:20thanks!
ひとつめのWPFウィンドウ
private void button1_Click(object sender, RoutedEventArgs e)
{
WpfApplication1.Page1 Page2 = new WpfApplication1.Page1();
Page2.Show();
}
ふたつめのWPFウィンドウ
<Page x:Class="WpfApplication1.Page1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Page1" Height="300" Width="450" Name="Window2" Background="Transparent">
<Grid>
<Image Margin="0,0,0,0" Name="Image1" Stretch="None" Source="Image1.png" Opacity="100" SnapsToDevicePixels="True" Panel.ZIndex="1" />
<Image HorizontalAlignment="Right" Margin="0,12,38,112" Name="image2" Source="Image2.png" Stretch="Fill" Width="104" Panel.ZIndex="7"/>
<TextBox Background="Transparent" Height="23" Margin="113,95,195,0" Name="TextBox1" VerticalAlignment="Top" Panel.ZIndex="8" />
<TextBox Background="Transparent" Height="15" HorizontalAlignment="Right" Margin="0,103,65,0" Name="TextBox2" VerticalAlignment="Top" Width="51" Panel.ZIndex="10"/>
</Grid>
</Page>
としてます。
ところが、Page2.ShowでShowの定義がないといわれるうえに、ボタンを押しても、ふたつのめのウィンドウが空白になる、というのが現在の困っているところです。
どうぞ助言をお願いします。
0339デフォルトの名無しさん
2008/12/26(金) 22:47:370340デフォルトの名無しさん
2008/12/26(金) 22:56:25なんでウインドウを開きたいのにPageなんだ
プロジェクトに新しい項目を追加するときにウィンドウを選べ
>>339
標準では用意されてない
0341デフォルトの名無しさん
2008/12/26(金) 23:00:47CLR4.0には含まれる予定だけど、とりあえずこの辺使っといたら?
C# BigInteger Class - CodeProject
http://www.codeproject.com/KB/cs/biginteger.aspx
0342デフォルトの名無しさん
2008/12/26(金) 23:03:18最後に読む本だということはわかりました。
最初に読む本を教えてください・・・・・
0343デフォルトの名無しさん
2008/12/26(金) 23:17:110344デフォルトの名無しさん
2008/12/26(金) 23:31:36・Visual C# の使い方と一緒に簡単なアプリケーションを作って学ぶなら
マイクロソフト公式解説書 ひと目でわかるMicrosoft Visual C#2008アプリケーション開発入門
http://ec.nikkeibp.co.jp/item/books/A01000.html
・C# だけでいいよって事なら「独習C# 第2版」が良いけど、NET Frameworkについては別にネットか書籍で覚える事になる。
プログラミング未経験(VisualStudioを使った事がない)なら、ひと目で〜を読んでから、独習C#で言語仕様を学ぶといいんじゃないかね。
0345デフォルトの名無しさん
2008/12/27(土) 00:11:170346デフォルトの名無しさん
2008/12/27(土) 00:17:05ひと目にしますありがとうございました。
0347デフォルトの名無しさん
2008/12/27(土) 00:17:400348デフォルトの名無しさん
2008/12/27(土) 00:27:46そうですか
多倍長は自分で作るしかないのか・・・
0349デフォルトの名無しさん
2008/12/27(土) 00:46:09ただ、出るのは2009年末から2010年初頭だけど。
0350デフォルトの名無しさん
2008/12/27(土) 02:14:320351デフォルトの名無しさん
2008/12/27(土) 02:34:470352デフォルトの名無しさん
2008/12/27(土) 02:39:560353デフォルトの名無しさん
2008/12/27(土) 02:47:550354デフォルトの名無しさん
2008/12/27(土) 02:57:210355デフォルトの名無しさん
2008/12/27(土) 02:58:560356デフォルトの名無しさん
2008/12/27(土) 03:19:05思い出せないスペルが違うのかな
0357デフォルトの名無しさん
2008/12/27(土) 08:22:000358デフォルトの名無しさん
2008/12/27(土) 09:06:40したいのですが listview.items[listview.items.count-1].selected = trueでは
ならないようです。
どのようにしたら上手く行きますでしょうか?。
0359デフォルトの名無しさん
2008/12/27(土) 09:18:03SUNがひどすぎる。
伸び盛りでMSの天下取れるかってときにWindowsにJava VM入れるなとか言って自爆して、
標準化して盛り上げていこうってときに「仕様をオープンにはしません」とか言って自爆して。
しかも今は、SUNが瀕死だし。
銀行系にSUNの機器多く納品してたからサブプライム問題直撃で。
0360デフォルトの名無しさん
2008/12/27(土) 09:33:39ListView.EnsureVisibleかListViewItem.EnsureVisible
Selectedいじる必要は特にない いじってもいいけど
0361デフォルトの名無しさん
2008/12/27(土) 10:01:30ありがとうございます。
アイテムの表示を確実にしたら良かったのですね。
0362デフォルトの名無しさん
2008/12/27(土) 11:43:32abstract class A {}
class B : A {}
って感じで、リフレクションかActivator.CreateInstanceで確実にクラスBをインスタンス化してAとして使いたいんです
Bは実行時にならないと分からなくて、もしアホがBにデフォルトじゃないコンストラクタだけ書くと
Activator.CreateInstanceは失敗しますよね。。
0363デフォルトの名無しさん
2008/12/27(土) 11:58:13ISerializableでもそうだし
0364デフォルトの名無しさん
2008/12/27(土) 11:59:37Aのコンストラクタで
if (this.GetType().GetConstructor(new Type[0]) == null) throw new Exception();
とかするくらいかな
「デフォルトコンストラクタを実装すること」くらいは継承する人に責任持たせていいと思うよ
0365デフォルトの名無しさん
2008/12/27(土) 12:08:37Buttonとかのコントロールを継承したクラスを作ると、
そのクラスのファイルがデザイナ付きと勘違いされてしまいます。
ソリューションエクスプローラでファイル名をダブルクリックすると
エディタではなく、デザイナが起動された上に
「コンポーネントが足りねえ!」みたいな文句を言ってきます。
そうじゃない!ただのクラスだ!
と、どこかで設定する方法はないでしょうか?
0366デフォルトの名無しさん
2008/12/27(土) 12:40:24発想が逆じゃないのか?
「どこかに正しく動作させるための設定がある」んじゃなくて、
「君が何かおかしなことをやっている」んだろ。
普通はそんなふうにならないから。
そのクラスをソリューションに追加する時に、「ユーザーコントロール」として追加しといて、
その時作成されるパーシャルクラスをほったらかしにしてるとかそんなオチじゃないのかな。
0367デフォルトの名無しさん
2008/12/27(土) 12:46:27普通にクラス作ってるよ。
いっぺん、ためしてみて。
ただのクラスに、
スーパークラスとしてButtonを追加するだけで、
ソリューションエクスプローラの動作が代わるから。
0368デフォルトの名無しさん
2008/12/27(土) 12:48:51だったらその
>「コンポーネントが足りねえ!」みたいな文句を言って
る画面に何か書いてあるでしょ?よく読んでみ。
あるいは、ソリューションエクスプローラで対象ファイルを右クリック
0369デフォルトの名無しさん
2008/12/27(土) 13:02:41いや、デザイナを起動したいわけじゃないんだ。
作っているのは、あくまで、完全手書きのクラスだから、
ソリューションエクスプローラでダブルクリックしたら、
今まで通りにエディタで開いてほしいんだ。
だけど、スーパークラスに、Buttonとかを指定するだけで、
ソリューションエクスプローラが勝手にに「デザイナありだ!」と
判断しちゃって、ダブルクリック時にデザイナを起動してしまう。
これをストップしたいのです。
0370デフォルトの名無しさん
2008/12/27(土) 13:08:01ファイルを開くアプリケーションの選択 を選んで
CSharpエディタ に変えれば?
他のも全部ダブルクリックするとコードが開くようになっちゃうけど,普通その方が便利でしょ
0371デフォルトの名無しさん
2008/12/27(土) 13:11:18ありがとう!
デザイナを使う方が圧倒的に少ないから、
この方が便利だ。
この設定で使っていくことにします。
0373デフォルトの名無しさん
2008/12/27(土) 15:21:05Activatorじゃないとダメなのかな?
public static T CreateInstance<T>() where T : A, new()
{
return new T();
}
これでA継承、デフォルトコンストラクタをコンパイル段階で検査できるけど。
0374デフォルトの名無しさん
2008/12/27(土) 15:27:49それ呼び出すときにTの型は分かってるんだから
Bにデフォルトコンストラクタがあろうとなかろうと問題ないわけで
>>362みたいなことにはならない
0375373
2008/12/27(土) 15:46:20とりあえず、これに主眼を置いてみた。
>それも実はActivatorだったりする
これは初めて知った!勝手に
ジェネリクス>Activator
みたいな実行速度的ヒエラルキーを作っていたよ。勉強になったありがとう。
0376デフォルトの名無しさん
2008/12/27(土) 19:38:54アドバイス感謝します。
結局、どこに問題があるのかわからないのですが、プロジェクトをぜんぶ作り直しました。
コードじたいは、ほとんどそのままで動いたので、コードにミスがあったのか(その可能性もある)、それともそれ以外のファイル名などの整合性の問題なのか釈然とはしませんが、作り直すきっかけはウィンドウにするというところにありました。
作り直して、ファイル名などもきれいに修正できました。
ありがとうございました。
0377デフォルトの名無しさん
2008/12/28(日) 00:20:46一流の辞書マダー?
0378デフォルトの名無しさん
2008/12/28(日) 00:45:17ジェネリクス>Activatorなのはその通りだろ
ただコンストラクタはジェネリクスしようがないからActivatorになってるだけで
0379デフォルトの名無しさん
2008/12/28(日) 00:48:57[System.ComponentModel.DesignerCategory("")]
とかボタン継承したクラスにつけてみ
0380デフォルトの名無しさん
2008/12/28(日) 01:16:56>それ呼び出すときにTの型は分かってるんだから
>Bにデフォルトコンストラクタがあろうとなかろうと問題ないわけで
のこれが理解できないんだけどどういう意味?
373のコードはnewの制約してるじゃん。
0381デフォルトの名無しさん
2008/12/28(日) 01:23:32その制約はインスタンスを作る側にしか意味がない
0382デフォルトの名無しさん
2008/12/28(日) 01:29:20レスありがと。
ああAの派生クラス(を書く人)にデフォルトコンストラクタを強制する
仕組みにはなってないってことを>>374は言いたかった訳ねなるほど。
0383デフォルトの名無しさん
2008/12/28(日) 01:30:49しかも静的にその対象クラス(派生クラス)を参照しないとできないのよ。
意味ないでしょ?
0384デフォルトの名無しさん
2008/12/28(日) 01:40:33おお!これぞ、パーフェクトな解決法です。
ありがとう!!
0385デフォルトの名無しさん
2008/12/28(日) 01:42:07class A<TSelf> where TSelf : A, new() {}
class B : A<B>{}
まあこんな感じになるんじゃないか
0386デフォルトの名無しさん
2008/12/28(日) 01:47:28//TSelfには自分自身を設定すること
class A<TSelf> where TSelf : A<TSelf>, new() {}
class B : A<B>{}
こうか
0387デフォルトの名無しさん
2008/12/28(日) 01:49:560388デフォルトの名無しさん
2008/12/28(日) 01:56:08何言ってるかよく分からんが基底クラスは一つだぞ
ただTSelfに自分自身を設定することを強制する方法にはなってないな
0389デフォルトの名無しさん
2008/12/28(日) 02:08:53多分目的に合わないと思うんだけど。
さらにジェネリックじゃない基底を作ることはできるけど
そうするとそっち継承することもできちゃうので結局意味ないし。
あれ?なんかデジャヴ…
0390デフォルトの名無しさん
2008/12/28(日) 02:08:58class C<TSelf> : A where TSelf : C<TSelf>, new() {}
こうだな
C<TSelf>の基底にAがいないと扱いに困る
0391デフォルトの名無しさん
2008/12/28(日) 02:14:32ジェネリクスの共変反変がサポートされればそのままかけるんだけども
0392デフォルトの名無しさん
2008/12/28(日) 02:15:34> さらにジェネリックじゃない基底を作ることはできるけど
> そうするとそっち継承することもできちゃうので結局意味ないし。
class A {
internal A() {
}
}
class C<TSelf> : A where TSelf : C<TSelf>, new() {
protected C() {
}
}
で外部アセンブリでのAからの直接派生を禁止できたりする
0393デフォルトの名無しさん
2008/12/28(日) 02:17:39まあ自アセンブリ内からしかAを使わん前提ならいいけど。
0394デフォルトの名無しさん
2008/12/28(日) 02:22:240395デフォルトの名無しさん
2008/12/28(日) 02:24:140396デフォルトの名無しさん
2008/12/28(日) 02:35:34interface IA{}
class A<TSelf> : IA where TSelf : A<TSelf>, new(){}
0397デフォルトの名無しさん
2008/12/28(日) 06:51:53そもそも、Cから派生できるので意味がない
class C<TSelf> where TSelf : C<TSelf>, new() { }
class C1 : C<C1> { }
class C2 : C<C1> { C2(){} } // C2 は new() 制約を満たしていないがエラーにならない
0398デフォルトの名無しさん
2008/12/28(日) 07:18:13A の派生クラスがデフォルトコンストラクタを持たないときに
コンパイルエラーになるようなコンパイラを作ればいいんだよ。
0399デフォルトの名無しさん
2008/12/28(日) 07:29:410400362
2008/12/28(日) 08:59:04Aはプラグインがもつ属性クラスに渡すローカライズ情報源のひな型にするつもりだったんです。
属性が持ってる文字列をローカライズ可能にしたいなって思ったことから始まりました。
(なんか初心者なんで手当たり次第にやってますけど、こんなんでいいのかなんて思いますが。)
------------
// プラグイン作者のコード
[HogeAttribute( typeof( B ) )]
public class HagePlugin : INantoka {...}
class B : A
{
public override string Author{ get{...} }
public override string Description{ get{...} }
...
}
------------
実行時にというかAssemblyをロードして型からAttributeを取得したたときに、
Bから実行環境のCultreにあった文字情報を持ってこさせる予定だったんで、
Bがデフォルトコンストラクタをもってないときは「作者名 : バーカバーカ」と表示することを検討中です
0401デフォルトの名無しさん
2008/12/28(日) 09:45:010402デフォルトの名無しさん
2008/12/28(日) 09:49:58フック
0403デフォルトの名無しさん
2008/12/28(日) 10:23:00ローカライズはフレームワークに組み込まれてる仕組みがあるからそれ使え
http://msdn.microsoft.com/ja-jp/library/z68135h5(VS.80).aspx
0404デフォルトの名無しさん
2008/12/28(日) 15:33:550405デフォルトの名無しさん
2008/12/28(日) 15:40:33ググレ
0406デフォルトの名無しさん
2008/12/28(日) 15:50:36それぞれを表示・非表示したいと思ってます。
1個ずつなら
if (hyouji[0] == 1){
panel0.visible = True;
}
でできるのですが、for文を使ってpanel0〜panel9を表現する方法が分かりません。
よろしくお願いします。
0407デフォルトの名無しさん
2008/12/28(日) 16:03:060408デフォルトの名無しさん
2008/12/28(日) 16:10:20そもそも本当にhyoujiなんて配列が必要かどうか、冷静に再考した方がいいんじゃないのか。
0409デフォルトの名無しさん
2008/12/28(日) 16:24:36うっ、検索するとそれらしいことも書いてあったのですが、デザイナで作った物を配列に
する方法が分かりませんでした。
強引に
for (i = 0; i<10; i++){
if (hyouji[i] == 1){
****.visible = True;
}
}
の****部分を文字列変数とかにしてできないかなと思ったのですが、うまく行きませんでした。
やっぱり、無理でしょうか。
あと、デザイナで作ってからあとで配列にするというのはどうすればいいでしょう?
>>408
ユーザーが画面構成を設定できるようにしたいのですが、その設定情報を配列にして
記憶させようとしています。プログラムを短くしたいと言うのも有りますが、、、
0410デフォルトの名無しさん
2008/12/28(日) 16:39:55ttp://dobon.net/vb/dotnet/control/buttonarray.html
0411406
2008/12/28(日) 16:51:46これの後半の
「すでに配置されているコントロールをリフレクションで検索する」
でできるのかな。
でも、私にはちょっと難しいかも。頑張ってみます。
皆さん、有難うございました。
0412デフォルトの名無しさん
2008/12/28(日) 16:55:362番目の
>上記の例では、Visual Studioのフォームのデザインが使えないという欠点があります。
>次にフォームのデザインでフォームにボタンコントロールが5つ(Button1〜5)追加されており、それらを配列として扱う例を示します。
見れ。
新しく配列作って、デザイナで作った奴を代入するだけだ。
簡単だろ。
0413デフォルトの名無しさん
2008/12/28(日) 17:04:50{
{ panel0, true },
{ panel1, true },
{ panel2, true },
:
};
foreach (KeyValuePair<Panel,bool> item in dic)
{
item.Key.Visible = item.Value;
}
遅レスですが、こんなんで。
0415デフォルトの名無しさん
2008/12/28(日) 18:05:320416デフォルトの名無しさん
2008/12/28(日) 19:24:40スマートな方法が思いつきませんでした
0417デフォルトの名無しさん
2008/12/28(日) 19:41:44そんな悩む問題か?
・一つ前の「チェックされたメニューアイテム」が特定できる場合は、そいつのチェックをクリア
・そうでない場合はそのグループに属する全部のメニューアイテムのチェックをクリア
してからクリックされたのをチェックするだけだと思うんだけど
0418デフォルトの名無しさん
2008/12/28(日) 19:45:54MSDNのMenuItem.RadioCheckのところにサンプルコードある。
0419デフォルトの名無しさん
2008/12/28(日) 19:55:06コード見てワラタ
0420デフォルトの名無しさん
2008/12/28(日) 19:56:30高級言語だと自分で考えた方法がなんでも泥臭いと思ってしまいます
>>418
デザイナに表示されないプロパティであったんですか
調べてみます
ありがとうございました
0421デフォルトの名無しさん
2008/12/28(日) 19:58:37(⊃⊂)
(^ω^ )⊃ アウアウ!!
⊂ミ⊃ )
/ ヽ
0422デフォルトの名無しさん
2008/12/28(日) 20:00:250423デフォルトの名無しさん
2008/12/28(日) 20:09:43>高級言語だと自分で考えた方法がなんでも泥臭いと思ってしまいます
言語とライブラリを区別しような
0424デフォルトの名無しさん
2008/12/28(日) 20:11:05MenuStrapのだとここにサンプルあるよ。
http://msdn.microsoft.com/ja-jp/library/ms404318.aspx
更に泥臭くなってるけどなw
0425デフォルトの名無しさん
2008/12/28(日) 20:17:170426デフォルトの名無しさん
2008/12/28(日) 21:30:29FileStreamでFileAccess.ReadとFileShare.ReadWriteに設定しても
例外が発生してしまう・・・
そもそもDrag&Drop中のファイルのアクセスは無理なのかな?
0427デフォルトの名無しさん
2008/12/28(日) 21:55:340428デフォルトの名無しさん
2008/12/28(日) 21:57:590429デフォルトの名無しさん
2008/12/28(日) 22:04:47レスThanks.
あれ?コピー元って質問がくるってことはコピー先は当然、アクセスは
不可能ってこと?
1GB程度のファイルを、D&DかCtrl+Vであるフォルダにコピー(もしくは移動)する
ことを考えてる。そのファイルをコピー中でもアクセスしたい。
無理なのかな・・・?
0430426
2008/12/28(日) 22:06:15コピー先のファイルにアクセスです。
0431デフォルトの名無しさん
2008/12/28(日) 22:13:33むしろ当たり前じゃないんだろうか。
0432デフォルトの名無しさん
2008/12/28(日) 22:34:530433426
2008/12/28(日) 22:42:14> コピー先は、コピーが完了するまで(ファイルシステム的には)存在しないのだから
> むしろ当たり前じゃないんだろうか。
Explorer上ではファイルアイコンが見えているから一応ファイルシステムには
登録されたものと思っていたよ。違うのかな。
そもそも、今回のようなことを行う場合、皆さんはどうやって
実現しているのだろう。
0434デフォルトの名無しさん
2008/12/28(日) 22:42:25これはひどい
0435デフォルトの名無しさん
2008/12/28(日) 22:48:50アクセスしたら例外は起こると思う。D&Dはとりあえず置いといて
普通にファイルコピーをしつつコピー先のデータにアクセスできるか試してみては?
できないのであれば、自前でコピー処理を書いて(一定量メモリに読んで別ファイルに出力)
メモリ上に読んだデータを利用するのが楽かと。ランダムアクセスでなければ。
0436デフォルトの名無しさん
2008/12/28(日) 22:49:520437デフォルトの名無しさん
2008/12/28(日) 23:02:26とりあえず、435さんのいうように、D&Dコピーに固執せず
まずは色々やってみます。
0438デフォルトの名無しさん
2008/12/29(月) 00:01:260439デフォルトの名無しさん
2008/12/29(月) 02:11:07というのはC#では邪道ですか?
↓のほうが王道なんでしょうか?
ttp://dobon.net/vb/dotnet/form/accessanotherformdata.html#section2
0440デフォルトの名無しさん
2008/12/29(月) 02:27:170441デフォルトの名無しさん
2008/12/29(月) 02:39:43staticなpublic変数 に置換してください
0442デフォルトの名無しさん
2008/12/29(月) 02:54:35なんで「ひ」なの?
0443デフォルトの名無しさん
2008/12/29(月) 03:23:56多分王道だよ。MSDNでもこんな感じだった。
class Form1 : Form
{
private static Form1 _form1Instance = new Form1();
public static Form1 Form1Instance { get { return Form1._form1Instance; } }
private Form1(){}
}
こうしておけばForm1を他で勝手に作られないし、nullを代入されることもないよ。
0444デフォルトの名無しさん
2008/12/29(月) 04:17:39せっかく解答していただいているのに説明不足で済みません
staticなpublic変数をtext1としています
それでForm1からForm2をモーダルで表示するんですが
Form2で設定した値をDialogResultで取得するときに
text1でやり取りするというのは邪道でしょうか?
static class data
{
static public string text1;
}
public Form1 {
Form2 _Form2 = new Form2();
_Form2.ShowDialog( );
if ( _Form2.DialogResult == DialogResult.OK )
Form1.txtbox.Text = text1;
}
// Form2 //
private void btnOK_Click( object sender, EventArgs e )
{
text1 = txtID.Text;
Form2.Close( );
Form2.Dispose( );
}
説明が下手くそで分かり難いと思いますがよろしくお願いします
0445デフォルトの名無しさん
2008/12/29(月) 04:48:070446デフォルトの名無しさん
2008/12/29(月) 08:22:370447デフォルトの名無しさん
2008/12/29(月) 09:37:26安易な方法。近道。「学問に―無し」
0448デフォルトの名無しさん
2008/12/29(月) 10:01:12邪道だとわかっててやるなら構わない。
0449デフォルトの名無しさん
2008/12/29(月) 10:10:05前に質問したときは親切な人がプロパティのクラスを作って
PropertyChangedを使ってバインドすればいいって教えてくれたけど
プロパティの数が多いときなんかはどうも・・・
0450デフォルトの名無しさん
2008/12/29(月) 10:23:110451デフォルトの名無しさん
2008/12/29(月) 11:13:430452デフォルトの名無しさん
2008/12/29(月) 11:16:57コントロールをパブリックにしてしまうとVB厨と言われて煽られるような気がします
0453デフォルトの名無しさん
2008/12/29(月) 11:18:40煽るよ
0454デフォルトの名無しさん
2008/12/29(月) 11:21:320455デフォルトの名無しさん
2008/12/29(月) 11:24:180456デフォルトの名無しさん
2008/12/29(月) 11:37:410457デフォルトの名無しさん
2008/12/29(月) 13:08:11いけないにしても、textboxのtextプロパティを他のフォームで知るにはこれが一番簡単ですよね?
て言うか、これしか知らないorz
0458デフォルトの名無しさん
2008/12/29(月) 13:24:130459デフォルトの名無しさん
2008/12/29(月) 14:37:330460デフォルトの名無しさん
2008/12/29(月) 14:57:13当然プライベートにもできる
0461デフォルトの名無しさん
2008/12/29(月) 15:53:08コントロールに限らず、公開範囲はケースバイケースだと思うよ。
・メリット
プロパティの分、コードを書かなくて済む
・デメリット
バグが発生した時、調べる範囲が格段に広くなる。
変更する時、どこで使われている箇所を調べる範囲が格段に広くなる。
特にpublicだと外部から使用される事を容認しているので最新の注意が必要。
そのクラスを使う側にしてみたら、公開されているので自由に使って良い、
と判断される。
メリット、デメリットが解っているならpublicもありと思うよ。
ただ、publicを安易に進めるベテランは居ないと思う。
仮にいるなら俺はその人を疑う。
0462デフォルトの名無しさん
2008/12/29(月) 16:16:16これじゃいけないのかな?
public class Form1 : Form
{
private TextBox textbox = new TextBox();
// まぁ名前は適当で。
public void SetTextBoxString()
{
Form2 _Form2 = new Form2();
if ( _Form2.ShowDialog( ) == DialogResult.OK )
{
this.textbox.Text = _Form2.ResultText;
}
}
}
public class Form2 : Form
{
public string ResultText { get; set; }
private void btnOK_Click( object sender, EventArgs e )
{
this.ResultText = txtID.Text;
Form2.Close( );
Form2.Dispose( );
}
}
0463デフォルトの名無しさん
2008/12/29(月) 16:37:480465462
2008/12/29(月) 17:41:55{
private TextBox textbox = new TextBox();
// まぁ名前は適当で。
public void SetTextBoxString()
{
Form2 _Form2 = new Form2();
_Form2.CallDialog( delegate( string resultText )
{
this.textbox.Text = resultText;
});
}
}
0466462
2008/12/29(月) 17:42:40public class Form2 : Form
{
private Action<string> OnOkFunc = null;
public void CallDialog( Action<string> Func )
{
this.OnOkFunc = Func;
this.ShowDialog();
}
private void btnOK_Click( object sender, EventArgs e )
{
if ( this.OnOkFunc != null )
{
this.OnOkFunc( txtID.Text );
this.OnOkFunc = null;
}
this.Close( );
this.Dispose( );
}
}
‥自分でもムキになりやすいタイプだと思う。
0467デフォルトの名無しさん
2008/12/29(月) 18:04:00パス先のファイル(アプリケーション)を開く関数ってない?
〇〇〇{@"c:\Program Files\Jane Style\jane2ch.exe");
こんな感じで
0468デフォルトの名無しさん
2008/12/29(月) 18:09:29System.Diagnostics名前空間のProcessクラス
0469デフォルトの名無しさん
2008/12/29(月) 18:13:570470467
2008/12/29(月) 18:30:24Process.Start(@"c:\Program Files\Jane Style\jane2ch.exe");
あともう一つ
quoted stringをString型変数に適用したいときは
ex)
String i = "c:\\Program Files\\Jane Style\\jane2ch.exe";
textBox1.Text = @i;
こんな風にできる?
0471デフォルトの名無しさん
2008/12/29(月) 18:31:55冷静に考えろ
0472デフォルトの名無しさん
2008/12/29(月) 18:42:02String s2 = @"c:\Program Files\Jane Style\jane2ch.exe";
if(s1!=s2)
{
MessageBox.Show("工エエェェ(´д`)ェェエエ工");
}
0473デフォルトの名無しさん
2008/12/29(月) 18:44:000474デフォルトの名無しさん
2008/12/29(月) 19:13:06設定ダイアログをGUIエディタで作りたいんですがどういう風にやるのが一般的ですかね?
0475デフォルトの名無しさん
2008/12/29(月) 19:22:220476デフォルトの名無しさん
2008/12/29(月) 21:14:310477デフォルトの名無しさん
2008/12/29(月) 21:16:43左の選択で該当PanelをBringToFrontしてもできるな
0478デフォルトの名無しさん
2008/12/29(月) 21:44:280479デフォルトの名無しさん
2008/12/29(月) 21:52:410480デフォルトの名無しさん
2008/12/29(月) 21:54:210481デフォルトの名無しさん
2008/12/29(月) 22:00:54private struct MyPoint
{
int X;
}
List<MyPoint> P = new List<MyPoint>(100);
等として構造体(もしくはクラス)の配列Pを作成したときに、
そのメンバXを配列として簡単に取り出す方法はありますでしょうか?
(P[].Xではなくてint型の配列X[]を取り出したい)
for文で回せば可能なことは分かるのですが、実際には
構造体(クラス)のメンバがかなり多く、配列の要素数も大きいため、
毎回そうするのは非効率な気がして・・・
申し訳ありませんが、よろしくお願いします。
0482デフォルトの名無しさん
2008/12/29(月) 22:01:42っていうメッセージがあったんだけど、あれどういう意味?
開発途中のVC++でVC++のシステムを組んだの?
あれ意味が分からなくて頭痛かった
0483デフォルトの名無しさん
2008/12/29(月) 22:08:02forで回すのが一番実行効率の良い方法
実行効率は若干落ちるけどコーディング効率の良い方法としては
int[] X = P.Select(p => p.X).ToArray();
0484デフォルトの名無しさん
2008/12/29(月) 22:10:55言ってる意味がわかりません。
存在しない、欲しい、でも作りたくない?
作られずに存在するのは神だけじゃないのか?
0485デフォルトの名無しさん
2008/12/29(月) 22:22:14回答ありがとうございます。
とりあえずforで回す方法で実装してみます。
配列の要素数が可変かつ10000以上になるのでちょっと心配ですが・・・
0486デフォルトの名無しさん
2008/12/29(月) 22:23:06class MyPointXList //: IList<int>
{
private List<MyPoint> innerList;
//中略
public int this[int index]{get{return innerList[index].X;}}
}
0487481
2008/12/29(月) 22:25:37分かり辛くてすいません。483さんの
int[] X = P.Select(p => p.X).ToArray();
のような書き方を探していました。
残念ながら実行効率の面で不利みたいですが。。
0488デフォルトの名無しさん
2008/12/29(月) 22:27:140489デフォルトの名無しさん
2008/12/29(月) 22:56:18まあパフォーマンスったってコピーは避けられんが(コレクションのラッパーではだめな場合)
0490デフォルトの名無しさん
2008/12/29(月) 23:00:14Emit系APIでList<T>._itemsを直接取得するメソッドを生成
それを使って取得した配列の要素にポインタでアクセス
かな
0491481
2008/12/29(月) 23:02:22回答ありがとうございます。
おそらく私がやりたいことそのものズバリだと思うのですが、
勉強不足で意味が理解できません・・・
IList・・・インターフェイス?抽象クラス?
ちょっと詳しく調べてみます。ありがとうございました。
0492デフォルトの名無しさん
2008/12/29(月) 23:03:370493デフォルトの名無しさん
2008/12/29(月) 23:05:010494デフォルトの名無しさん
2008/12/29(月) 23:06:46インデクサの呼び出しが入るしコピーもされる
可能なら配列で持つようにした方が速い
0495デフォルトの名無しさん
2008/12/29(月) 23:09:20おいおい
んじゃ別に配列じゃなくてもラッパーでよかったってことかな?
0496481
2008/12/29(月) 23:40:31簡単に調べただけだと何のことだかサッパリ。
とりあえず、やりたかったことは↓のような感じです。
色々教えて頂いたのに理解できなくてすいません。勉強して出直します。
class MyClass { int X; int Y; int Z ... } //こんなクラスがあって
List<MyClass> P = new List<MyClass>(); //newして
P.add(); P.add(); P.add();… //動的に要素が追加されて
Method(X[]); //1秒おきに別のメソッドにint型の配列X[]を渡して
P.add(); P.add();… //動的に要素が追加されて
Method(Y[]); //2秒おきに別のメソッドにint型の配列Y[]を渡して
P.add(); P.add();… //動的に要素が追加されて(以下繰り返し)
0497デフォルトの名無しさん
2008/12/30(火) 00:05:411秒おきとか何のこっちゃ
0498デフォルトの名無しさん
2008/12/30(火) 00:11:55ラッパーでできそうな気はするけど>>481の意味がわからないレベルならまだ気にしなくていいと思う
そんなに非常識な大きさでなければ1秒おきなら毎回配列にコピーしても大丈夫だろ
0499デフォルトの名無しさん
2008/12/30(火) 00:32:180500デフォルトの名無しさん
2008/12/30(火) 01:47:22本来書き込まれているべきの最後の数行分が何故か書き込まれていません。
データの途中で切れている感じです(7.550とかが7.5だけ出てくるみたいな)
どなたか何故このような現象が起きるのかご存知ないでしょうか。VC#2008EEです
0501デフォルトの名無しさん
2008/12/30(火) 01:54:36・・・って言いたいところだがそれ Close し忘れの典型的症状。
FileStream は using してるか?
0502デフォルトの名無しさん
2008/12/30(火) 02:31:23X, Y, Z, …の関係性がいまいち分からんが、
1. 複数のデータ項目X, Y, Z, …(このtupleをMyClassと定義)があって、
2. 追加はtupleで同期的に(i.e. MyClass単位)行うが、
3. 利用は項目ごとに個別のデータ群として扱う
ということか。であれば、最初からデータを項目ごとに分けて保持して置けばいいんじゃないか
class MyClasses : IList<MyClass> {
private List<int> _X = new List<int>();
:
public MyClass this[int index] {
get { return new MyClass(_X[index], …); }
set { … } // NotSupportedException 投げるのも可
}
public void Add(MyClass data) {
_X.Add(data.X);
:
}
// IList<T> の残りも実装
public IList<int> X { get { return _X.AsReadOnly(); } } // 必要に応じて下記を利用
// public int[] X { get { return _X.ToArray(); } }
}
0503デフォルトの名無しさん
2008/12/30(火) 02:46:09仰る通り、StreamWriterのCloseがされてないみたいでした!ありがとうございました!
Closeしないと何で数行だけ書き込みがバグるのか不思議です
0504デフォルトの名無しさん
2008/12/30(火) 03:24:34Closeよりも問題なのはFlushだよ。
内部でバッファがあってキャッシュされてるのでその分がFlushが呼ばれないと書き込まれない。
CloseするとFlushされてから閉じられるので書き込まれる。
とりあえずusingにしておけ。
0505デフォルトの名無しさん
2008/12/30(火) 20:24:48for( int a = 0, double d = 0; a < 10; a++ )
こんな感じのを書きたい。
でも、エラーになる。
for( int a = 0, b = 10; a < 10; a++ )
両方intなら、これで文句を言われないのですが。
0506デフォルトの名無しさん
2008/12/30(火) 20:37:00両方intでも普通そんなことしないよね
おとなしくループの外でやりましょう
0507デフォルトの名無しさん
2008/12/30(火) 20:47:350508デフォルトの名無しさん
2008/12/30(火) 20:48:53やっぱり無理ですか。
変数のスコープがループ内のみのときは
C99やC++では、割とよく使っていたのですが。
0509デフォルトの名無しさん
2008/12/30(火) 21:06:48そんなにスコープを気にするなら
{
double d = 0;
for (int a = 0; a < 10; a++)
{
}
}
みたいにすれば。
でもそんな細かいことは普通気にしなくて良い。
0510デフォルトの名無しさん
2008/12/30(火) 21:13:56たまにならスコープ気にしないか、>>509かで十分な気がする。
0511デフォルトの名無しさん
2008/12/30(火) 21:47:370512デフォルトの名無しさん
2008/12/30(火) 21:57:340513デフォルトの名無しさん
2008/12/30(火) 22:00:400514デフォルトの名無しさん
2008/12/30(火) 23:01:26手抜きのときはたまにそれやる
ただし、そういうことする場合は、普通に考えればメソッド抽出できるし、
VSならリファクタリングで一発なので、まじで手抜きのときしかやらないけど
0515デフォルトの名無しさん
2008/12/31(水) 11:01:120516デフォルトの名無しさん
2008/12/31(水) 11:17:14デザイン時の話なら、その項目でプロパティ出してShortcutkeysとShortcutKeyDisplayStringと
ShowShortcutKeysを設定。
0517デフォルトの名無しさん
2008/12/31(水) 14:07:36今は改善されてるの?
0518デフォルトの名無しさん
2008/12/31(水) 14:45:15ググって探したのですが
BinaryWriter w = new BinaryWriter(File.OpenWrite("dd.dat"));
w.Write(読み込んだバイト配列);
w.Close();
としましたが、テキストで保存されているようで
notepad等で文字がそのまま読めます。
どのようにすればいいのでしょうか?
0519デフォルトの名無しさん
2008/12/31(水) 14:53:46入ってるバイトデータがそのまま出てるだけだと思うが。
0520デフォルトの名無しさん
2008/12/31(水) 14:58:06reader.Read(読み込んだバイト配列, 0, 読み込んだバイト配列.Length);
読み込んでるのは数字や日本語文章のテキストファイルです
デバックでとめてみると配列には整数が入っています。
0521デフォルトの名無しさん
2008/12/31(水) 14:59:580522デフォルトの名無しさん
2008/12/31(水) 15:02:08うまくいきました。ありがとうございます
0523デフォルトの名無しさん
2008/12/31(水) 15:03:380524デフォルトの名無しさん
2008/12/31(水) 15:24:540525デフォルトの名無しさん
2008/12/31(水) 15:26:18テキストエディタで開けなくしたいだけならDeflateStreamでも使って圧縮したら
0526デフォルトの名無しさん
2008/12/31(水) 15:42:02w.Write((int)123456789);
だとわからない文字になるのですが
w.write("123456789");
だと空白文字の後123456789となります
あるソフトでテキスト形式(主に数字)からバイナリに
変換するのがあるのですが
ファイルも小さくなりわからない文字
になるのですが圧縮してるということですか?
0527デフォルトの名無しさん
2008/12/31(水) 15:47:13圧縮かもしれんしキー固定の暗号化かもしれんしBASE64かもしれん
0528デフォルトの名無しさん
2008/12/31(水) 15:48:310529デフォルトの名無しさん
2008/12/31(水) 16:09:390530デフォルトの名無しさん
2008/12/31(水) 16:55:18Accessのデータベースファイルdata.mdbを
実行ファイルと一緒に配布して使いたいと思っています。
OleDbConnectionを使用して
OleDbConnection cn = new
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data.mdb");
といった具合で使用しているのですが、
インストール先のPCには.NetFrameWork3.5がインストール
されていればOKなのでしょうか?
それともAccessのソフトもしくは
その他のファイル(Microsoft.Jet.OLEDB.4.0?)が
必要なのでしょうか?
もし別ファイル必要ならば、
別のやり方を使って.NetFrameWork3.5のみで
動作させることはできますか?
よろしくお願いします。
0531デフォルトの名無しさん
2008/12/31(水) 17:01:37OLEDBプロバイダが必要。って、最新のMDACでは含まれてないんだっけか。
0532デフォルトの名無しさん
2008/12/31(水) 19:51:42intとちがうんですかwwww
0533デフォルトの名無しさん
2008/12/31(水) 19:53:280534デフォルトの名無しさん
2008/12/31(水) 20:12:150535デフォルトの名無しさん
2008/12/31(水) 21:11:290536デフォルトの名無しさん
2008/12/31(水) 21:23:05↓だとコンパイルエラーになる。配列をコンストラクタで初期化したい場合、どうすりゃいいの?
AutoResetEvent[] diposeWait = new AutoResetEvent[3] { AutoResetEvent(false), AutoResetEvent(false), AutoResetEvent(false) };
0537デフォルトの名無しさん
2008/12/31(水) 21:27:50コンストラクタ呼び出しは必ずnew
0538デフォルトの名無しさん
2008/12/31(水) 21:34:48自己解決しました。ありがとうございます。
でも↓はいまいち納得出来ないかも・・
AutoResetEvent[] diposeWait = new [] { new AutoResetEvent(false), new AutoResetEvent(false), new AutoResetEvent(false) };
0539デフォルトの名無しさん
2008/12/31(水) 21:38:410540デフォルトの名無しさん
2008/12/31(水) 21:39:020541デフォルトの名無しさん
2008/12/31(水) 21:41:430542デフォルトの名無しさん
2008/12/31(水) 21:43:340543デフォルトの名無しさん
2008/12/31(水) 21:45:370544デフォルトの名無しさん
2008/12/31(水) 22:32:03正負の無限大まで扱えるよ!というのは置いといて、±1.7e308とか大きすぎてもう・・
有効桁数を超えると扱い難いから滅多に使わんけどね。
有効桁数は10進数だと
float - 約7桁
double - 約15桁
decimal - 約28桁
0545デフォルトの名無しさん
2008/12/31(水) 23:04:530546デフォルトの名無しさん
2008/12/31(水) 23:05:480547デフォルトの名無しさん
2008/12/31(水) 23:07:00とどう違うわけ?
0548デフォルトの名無しさん
2008/12/31(水) 23:10:07ない
0549デフォルトの名無しさん
2008/12/31(水) 23:10:18while(<expr>) <sentense> と等価だから
そんなのはあり得ない。
0550デフォルトの名無しさん
2008/12/31(水) 23:11:58loop while(...)
0551デフォルトの名無しさん
2008/12/31(水) 23:13:100552デフォルトの名無しさん
2008/12/31(水) 23:52:53C#的に
0553デフォルトの名無しさん
2008/12/31(水) 23:57:07なんで? C# 的には演算子のオーバーロードが行えるから
string operator +(string s, int i) が定義してあればその式は普通じゃね?
0554デフォルトの名無しさん
2009/01/01(木) 00:14:050555デフォルトの名無しさん
2009/01/01(木) 00:14:56stringへの暗黙の変換が定義されてるんだろ
0556デフォルトの名無しさん
2009/01/01(木) 00:34:30operator +(string,string)もstringへの暗黙の変換も定義されてないよ
0557デフォルトの名無しさん
2009/01/01(木) 00:40:48int i;
で、s += iは、おそらくs = string.Comcat((object)s, (object)i);になっているのだと思う。
0558デフォルトの名無しさん
2009/01/01(木) 00:51:37実際に定義を書いて[Obsolete("",true)]
といった属性をつければstringとの+もコンパイルエラーに出来るぜ
0559デフォルトの名無しさん
2009/01/01(木) 01:01:33暗黙の変換なぞ定義されてないってば
Object.ToStringは必ず存在するけど
演算子のオーバーロードが定義されてたらそっちの方が優先されるだけ
暗黙の変換が定義されてるってのは
Hoge hoge = new Hoge();
string huga = hoge;
が成り立つってことだぞ
0560デフォルトの名無しさん
2009/01/01(木) 01:08:05なるほどそういう仕組みか
0561デフォルトの名無しさん
2009/01/01(木) 01:29:020562デフォルトの名無しさん
2009/01/01(木) 01:30:030563デフォルトの名無しさん
2009/01/01(木) 02:16:24Base64の文字列をデコードしてバイナリファイルで保存するんじゃね?
ちなみに、桜エディタにはuudecodeとbase64デコーダが付いてる。
メーラならその辺のデコーダは一通りそろえてるだろ。
Base64は「数字の羅列」にはほど遠いと想うが
bin hexなら数字が並んでるように見えるんじゃね?
(かつて1度だけbinhexで送られてきてBeckyで自動解読されなかった記憶がある)
自動で圧縮してくれるテキストエディタも昔考えたことがあったが、
ファイルの互換性ないし、圧縮するほど長いテキストは書かないし、NTFSで圧縮サポートしてるから 一瞬で廃案になったけどなw
0564デフォルトの名無しさん
2009/01/01(木) 13:04:45用途が違うから単純に比べるものじゃない。
浮動小数で誤差が出ようが気にしないならdoubleで
誤差が出たら困るようなものはdecimalを使うんだよ。
0565デフォルトの名無しさん
2009/01/01(木) 17:33:52フォームいじると変化してしまうんだけど
0566デフォルトの名無しさん
2009/01/01(木) 17:38:180567デフォルトの名無しさん
2009/01/01(木) 17:38:410568デフォルトの名無しさん
2009/01/01(木) 17:43:26メソッド呼び出しの代わりにボタンのClickイベントを使ってるとか
0569デフォルトの名無しさん
2009/01/01(木) 17:57:45作ってるときにはそれをGUIで確認できようにしたい(いわゆるデバッグモード?)から処理だけ実行ではなく
0570デフォルトの名無しさん
2009/01/01(木) 18:00:43それって結局,処理自体にはフォームは必要ないんだろ?
それをわざわざフォームに依存させるのは非常に頭悪い
0571デフォルトの名無しさん
2009/01/01(木) 18:10:42UIとUIに持たせている情報を分離させ、その内部情報を使用して処理を行わせればいいんじゃね?
UIと内部処理を分離させる方法の一つとして、データバインディングが標準で利用出来る。
バージョンを明記していないから分からないけど、2.0以降(VS 2005以降)と仮定して、
Control(各UIパーツ) --> BindingSource --> DataSet
というような、一般的なデータ連結を行えばよい。
また、フォームが持っている情報というのが何なのか、もう少し詳細に明記した方がよいです。
例えば、テキストボックスに入力した文字列、ラジオボタンやチェックボックスの選択なのか、
または、フォームのサイズ、位置、色のような表示に特化した情報なのか。
この辺が分かるだけでも、回答の幅は広がると思う。
0573デフォルトの名無しさん
2009/01/01(木) 18:21:120574デフォルトの名無しさん
2009/01/01(木) 21:59:05日本語か、その他われわれと意思疎通可能な言語で質問してこない限りは
0575デフォルトの名無しさん
2009/01/02(金) 00:33:00バインドされたデータいじるときもInvokeが必要だぜ
0576デフォルトの名無しさん
2009/01/02(金) 00:34:55理解していないと思われ。
0577デフォルトの名無しさん
2009/01/02(金) 00:51:48インスタンスformAの箱庭を作るには
FormA sim = formA.Copy();
で良いよな?
0578デフォルトの名無しさん
2009/01/02(金) 01:01:280579デフォルトの名無しさん
2009/01/02(金) 01:04:440580デフォルトの名無しさん
2009/01/02(金) 01:19:390581デフォルトの名無しさん
2009/01/02(金) 01:29:490582デフォルトの名無しさん
2009/01/02(金) 12:32:17フォームが開いているときはちゃんと細くできて、タスクトレイに入れているときは
WndProc にメッセージがきません。
WM_QUERYENDSESSION は、フォームが開いているときにだけしか来ないのでしょうか。
タスクトレイに入れているとき ( this.Visible = false; ) はだめですか?
0583デフォルトの名無しさん
2009/01/02(金) 12:42:46言ってる意味が分からない。
フォームって「タスクトレイに入れる」なんて芸当できたっけ?
できたとして、その時「フォーム」のインスタンスは存在しているの?
0584デフォルトの名無しさん
2009/01/02(金) 12:43:42非表示にしてる、って書いてあるやん・・・
0585デフォルトの名無しさん
2009/01/02(金) 13:26:18WinXP sp3
0586デフォルトの名無しさん
2009/01/02(金) 13:27:05非表示にしてShowInTaskbarもfalseにするとFormの実体がなくなるようでWndProcは動作しなくなるよ。
Formの実体がなくならないように非表示にすればいいんだよ。細かい手順は忘れた。
0587デフォルトの名無しさん
2009/01/02(金) 13:30:41無理
0588デフォルトの名無しさん
2009/01/02(金) 14:57:48SystemEvents.SessionEnding で、ログオフとシャットダウンは区別できるけど。
0589デフォルトの名無しさん
2009/01/02(金) 15:05:18フックするしかなさげ。
0590デフォルトの名無しさん
2009/01/02(金) 15:59:26どもです。
ExitWindowsEx をフックすればよさそうですが、フックって SetWindowsHookEx を
使うのでよいのでしょうか?
0591デフォルトの名無しさん
2009/01/02(金) 16:03:20いずれにせよ SetWindowsHookEx() によるグローバルフックは必要。
0592デフォルトの名無しさん
2009/01/02(金) 17:29:10TextBox Background="Transparent"
としましたが、まだ枠が残ります。
枠も消したいのですが、どうしたらよいでしょう。
ご教示いただけないでしょうか。
よろしくお願いします。
0593デフォルトの名無しさん
2009/01/02(金) 17:30:02TextBox Background="Transparent"
としましたが、まだ枠が残ります。
枠も消したいのですが、どうしたらよいでしょう。
ご教示いただけないでしょうか。
よろしくお願いします。
0594デフォルトの名無しさん
2009/01/02(金) 17:41:38WPFは専用スレのが早いかも
0595デフォルトの名無しさん
2009/01/02(金) 17:43:22Thanks! それでした。できました。
専用スレは初心者を相手にしてくれんのです。
0596デフォルトの名無しさん
2009/01/02(金) 18:00:430597デフォルトの名無しさん
2009/01/02(金) 18:06:40どうしてもというなら自分で作るかWPF使いましょう
0598デフォルトの名無しさん
2009/01/02(金) 18:07:12間違えたスルーしてくれ
0599デフォルトの名無しさん
2009/01/02(金) 18:37:26BorderBrush="Transparent"でもできました。
ありがとうございます。
もうひとつWPFで質問です。
ファイルを引数などから読む場合、
xamlにはなにを書けばよいのでしょう?
バインディングらしい、というのはわかって、
.xaml
Text="{Binding Path=SetText}"
.xaml.cs
using System.IO;
string file = (@"C:\sample.txt");
string SetText = File.ReadAllText(file,Encoding.Default);
としてみましたが、文字を表示することはできませんでした。
よろしくご指導お願いします。
0600デフォルトの名無しさん
2009/01/02(金) 18:39:440601デフォルトの名無しさん
2009/01/02(金) 18:42:250602デフォルトの名無しさん
2009/01/02(金) 18:50:440603デフォルトの名無しさん
2009/01/02(金) 18:51:52次の方、どーぞー
0604デフォルトの名無しさん
2009/01/02(金) 19:18:49, ‐' ´ ``‐、 / ̄:三}
. /,. -─‐- 、. ヽ / ,.=j
_,.:_'______ヽ、 .! ./ _,ノ
`‐、{ へ '゙⌒ `!~ヽ. ! /{. /
`! し゚ ( ゚j `v‐冫 , '::::::::ヽ、/ そんなことよりSEXしようぜ!
. {.l '⌒ ゙ 6',! / :::::::::::::::/ __
. 〈 < ´ ̄,フ .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、
. ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠. ヽ_} ゙ヽ
,.r` "´ /:::::::::::::::::::ィ´ `ゝ !、 /
/ / :::::::::::::::: ; '´ /´\ / r'\
. i ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、
{ {:::::::::::;:イ / ‖i:::::::/:::::::::::::/ \
. ヽ ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /
0605デフォルトの名無しさん
2009/01/02(金) 19:30:32このようなTree Viewを使いたいんですが
WPFを使わずにC#でも実装できますか?
0606デフォルトの名無しさん
2009/01/02(金) 19:35:02できる。アイコンを用意する必要があるけど。
0607デフォルトの名無しさん
2009/01/02(金) 19:35:080608デフォルトの名無しさん
2009/01/02(金) 19:40:310609デフォルトの名無しさん
2009/01/02(金) 19:40:52すみません
VistaのExplorerで使用されているような
破線(XP Luna)ではなく三角で階層を表示するような
Tree Viewです
0610デフォルトの名無しさん
2009/01/02(金) 19:45:26もうWPFで作ってElementHostでよくね
0611デフォルトの名無しさん
2009/01/02(金) 19:58:550612デフォルトの名無しさん
2009/01/02(金) 20:01:18△は、[+][-]画像がVisualStyleで△画像になってるだけだよね、これ。
0613デフォルトの名無しさん
2009/01/02(金) 20:17:560615デフォルトの名無しさん
2009/01/02(金) 21:16:08VS
* スイス・ヴァレー州(Valais)の略称。
* versus(バーサス、ヴァーサス、VS.)
o VS (misono) - misono のソロデビューシングル。
o VS. (雑誌) - 光文社の雑誌。
o Versus (Mr.Children) - Mr.Childrenのアルバム。
o Versus (テレビ局) - コムキャスト傘下のスポーツ専門局。
o Versus (テレビ番組) - FIGHTING TV サムライのテレビ番組。
o VERSUS (テレビ朝日) - テレビ朝日の音楽番組。
o バーサス (パチスロ) - 1998年にアルゼから発売されたパチスロ(4号機)。
o VERSUS (映画) - 北村龍平監督の映画
* ファイナルファンタジー ヴェルサスXIII(Final Fantasy Versus XIII) - スクウェア・エニックスが発売予定のゲームソフト。「ファイナルファンタジーシリーズ」の1つ。* ヴァージン・アトランティック航空のIATA航空会社コード
* トヨタ・WiLL VS
* Visual Studio ⇒ Microsoft Visual Studio
* VSWR(無線工学)の略。
* ヴィダルサスーン(Vidal Sasoon)の略。
* Visual Styleの略。Windowsにおいて、XP以降の視覚スタイルをさす場合が多い。
* VIRGINIA SLIMSの略。
* Microsoft社の統合開発環境VisualStudioの略。
* 2008年の第43号から週刊少年チャンピオン(島崎カオル)で連載中の漫画。
0616デフォルトの名無しさん
2009/01/02(金) 21:28:260617デフォルトの名無しさん
2009/01/03(土) 14:01:22ヴィダルサスーン ワロタ(・∀・)w そんな洗剤もありましたね
C++(Managedじゃない)で書かれたプログラムのプラグインは
C#で書くことは出来ないよね?
用はC#でDLL書いてC++で扱わせたい訳だが・・・
可能ならPlugin SDKをC++クイックブックを見ながらC#へ移植する作業を開始すrんだg
(それよりもC++でがんがったほうが良いのかなぁ。Delphiへ逃げる方が楽そうだけど・・・)
0618デフォルトの名無しさん
2009/01/03(土) 14:06:53C#で書いたdllをC++/CLIから参照する形かな
0619デフォルトの名無しさん
2009/01/03(土) 14:10:22でもソースあるなら間に別のものかませた方がいい気がする。
0620デフォルトの名無しさん
2009/01/03(土) 14:13:20どうやって関数をエクスポートするの?
0621デフォルトの名無しさん
2009/01/03(土) 14:14:29ここの逆PInvoke
反則か?w
0622デフォルトの名無しさん
2009/01/03(土) 14:15:090623デフォルトの名無しさん
2009/01/03(土) 14:17:350624617
2009/01/03(土) 14:58:33案外いけるんじゃ・・・・無いなw
CLI的にはWin32から呼び出せるようには出来るけど
MSがそれをさせないわけか
>>618
C++/CLIで作ってもNative C++から利用できるのか…
サンクス、C++/CLIの利用を考えてみるわ。
.netの心地よいStringとWinFomsが使いたかったので C++/CLIだけで作っても良いのか。(馴れなかったら速攻でC#に逃げるけどw)
(WinFormsが使いたい、というより、MFCに絶望した orz)
0625デフォルトの名無しさん
2009/01/03(土) 15:04:01MS自身がそうやってるくらいだし
0626デフォルトの名無しさん
2009/01/03(土) 15:22:350627デフォルトの名無しさん
2009/01/03(土) 15:32:27unmanaged相互運用: C++/CLI
COM相互運用: VB.NET
でいいと思うよ
0628デフォルトの名無しさん
2009/01/03(土) 15:37:30>COM相互運用: VB.NET
がいらなくなるよ
0629デフォルトの名無しさん
2009/01/03(土) 15:53:53>>621みたいにしたのかな
4.0からはこんなことしないでもいけるようになったりする?
そしたら.netなパラダイスが来るような。
EmEditorとかのプラグインもC#で書けるようにならないかなぁ
0630デフォルトの名無しさん
2009/01/03(土) 16:06:570631デフォルトの名無しさん
2009/01/04(日) 01:11:58WebBrowserが表示しているページ上の画像ボタンを実際にはクリックせずに
クリックしたように動作させたいのですが方法がわかりません
だれかたちけて><
0632デフォルトの名無しさん
2009/01/04(日) 01:13:57日本語でOK
エスパーレスすると、DOM でよさげだけど。
0633デフォルトの名無しさん
2009/01/04(日) 02:23:25よくわかんないです><
0634デフォルトの名無しさん
2009/01/04(日) 02:46:540635デフォルトの名無しさん
2009/01/04(日) 03:31:410636631 訂正
2009/01/04(日) 04:40:22画像ページを表示しているWebBrowserコントロールの上にあるボタンをクリックせずに、
まるでクリックしたかのようにWebBrowserコントロールを動作させたいのですが方法がわかりません。
<私に実際の解決法を教える事で、愛のカタチを見せつけて下さい>
0637デフォルトの名無しさん
2009/01/04(日) 04:42:28まるでクリックしたかのような動作ってどういう動作?
0638デフォルトの名無しさん
2009/01/04(日) 05:04:400639デフォルトの名無しさん
2009/01/04(日) 07:52:46フォームならフォームをHtmlElementとして
HtmlElement form = webbrowser.Document.forms[x];
で取得して
form.InvokeMenber("submit")でいける。
リンクやボタンなら webbrowser.Document.Linksや
webbrowser.Document.GetElementByTagnames("a") で 取得して
InvokeMember("Click")とすればいいよ
0640デフォルトの名無しさん
2009/01/04(日) 08:41:310641デフォルトの名無しさん
2009/01/04(日) 21:08:57書籍管理プログラムを作りたくて始めたのですが、ISBNコードからネット上で
書籍名等の情報を検索してローカルのDBに格納したいのですが、プログラムから
アクセスして部分で躓いてます。
どのようにすればいいのか、ヒントだけでも教えていただけないでしょうか?
もしくは解説されているサイトがあれば教えていただけないでしょうか
0642デフォルトの名無しさん
2009/01/04(日) 21:16:320643デフォルトの名無しさん
2009/01/04(日) 21:22:08わからないと答えられないよ
0644641
2009/01/04(日) 21:39:22ローカルでの蔵書DBがらみはほぼできています
ただISBNをネット検索をかけようと思った時点でまったくやり方がわからなくなってしまいました。
具体的にはアマゾンかgoogle書籍検索からデータの取得を考えています。
といっても他の蔵書管理ソフト(私本管理とかです)がアマゾンから所得しているというだけで
同じようにしてみようと考えてる程度なんですが。
よろしくお願いします
0645デフォルトの名無しさん
2009/01/04(日) 21:44:03うまく考えないと、アマゾン側の変更で大変なことになるけどw
0646デフォルトの名無しさん
2009/01/04(日) 21:53:21webサービス使って取得と言う筋はどうだろう
0647デフォルトの名無しさん
2009/01/04(日) 23:42:280648デフォルトの名無しさん
2009/01/05(月) 00:05:45ふらっとだったんだね。ごめん、それだけ。
0649デフォルトの名無しさん
2009/01/05(月) 00:31:450650デフォルトの名無しさん
2009/01/05(月) 00:36:19Amazon とかよりこっちの方がよいと思う。
ttp://www.books.or.jp/
検索方法はHTTP POST とかで検索。
0651デフォルトの名無しさん
2009/01/05(月) 02:16:04ttp://dobon.net/vb/dotnet/datagridview/maskedtextboxcolumn.html
こちらのサイトのコードを参考にして、
編集セルに自作テキストボックスを表示するプログラムを作成したのですが、
なぜか小文字のqだけ入力できません。
サイトのコードをコピペしてMaskedTextBoxでもやってみましたが、
やはり小文字のqだけ入力できませんでした。
※そのままコピペだと数字しか入力できないので
maskedColumn.Mask = "000";
を
maskedColumn.Mask = string.Empty;
としました。
原因わかる方いらっしゃいましたらよろしくお願いします。
0652651
2009/01/05(月) 02:28:35とりあえずEditingControlWantsInputKeyメソッドの所に
case Keys.Q:
return true;
を入れたら入力できるようになりましたが、
スッキリしないので原因わかる方よろしくお願いします。
0653デフォルトの名無しさん
2009/01/05(月) 03:26:11横レスだが、HtmlElementの使い方を調べてる最中だったから�dクス。
0654641
2009/01/05(月) 21:23:22日曜プログラマなので、せっかくのアドバイスも試せてはいませんが、いろいろと勉強させていただきました。
とりあえず、またやってみます。
ありがとうございます
0655デフォルトの名無しさん
2009/01/06(火) 10:53:39class B
{
A a;
string s;
~B() { /* aやsを使いたい */ }
}
C#ではデストラクタで参照型のメンバが生きている保証は無いと思うのですが
メンバが回収されるのをデストラクタより遅らせる定型的なパターンとかありませんか?
0656デフォルトの名無しさん
2009/01/06(火) 10:57:260657655
2009/01/06(火) 11:56:51ありがとうございました。
通常のファイナライズより後に呼ばれるCriticalFinalizerObjectの特性と組み合わせて
こんなん作りました。
class DelayFinalizer<T> : CriticalFinalizerObject
where T : class
{
public T Target { get; private set; }
private GCHandle _handle;
public DelayFinalizer(T target)
{
this.Target = target;
this._handle = GCHandle.Alloc(target);
}
~DelayFinalizer()
{
if (this._handle.IsAllocated)
this._handle.Free();
}
}
0658デフォルトの名無しさん
2009/01/06(火) 12:12:17IDisposable実装するだけで十分じゃね?
別にアンマネージリソース持ってるわけじゃないんだから
必ずファイナライザが呼び出されることを保障する必要はないと思うんだけど
0659658
2009/01/06(火) 12:15:34補足
0660デフォルトの名無しさん
2009/01/06(火) 12:51:05>>658は勘違い
0661デフォルトの名無しさん
2009/01/07(水) 01:35:39させていますが、DataGridのフォーカスを手動で変更をしないと
データベースが更新されないのです。
※フォーカスを移動しなくても更新されるようにEndCurrentEdit
メソッドを事前にかけているのですが・・・
---------------------------------
int iRow; //更新したレコード数
this.BindingContext[dbCustomer1, "M_Customer"].EndCurrentEdit();
iRow = oleDbDataAdapter1.Update(dbCustomer1, "M_Customer");
MessageBox.Show("更新 " + iRow + "件");
-----------------------------
0662デフォルトの名無しさん
2009/01/07(水) 08:55:20AssemblyNameが.NETのクラスライブラリかどうかを判別する方法はないでしょうか?
.NET 2.0のみなら\WINDOWS\Microsoft.NET\〜の中にdllがあるかどうかを調べればいいのですが、
.NET 3.0以降で追加される部分は別のディレクトリにあったりするみたいなので、その部分の
dllをどう調べればいいのか分かりません。
\Program Files\Reference Assemblies\〜がそうみたいなのですが、Program Filesにインストール
されていること前提にdllを検索してもいいのでしょうか?
0663デフォルトの名無しさん
2009/01/07(水) 15:34:270664デフォルトの名無しさん
2009/01/07(水) 15:39:450665デフォルトの名無しさん
2009/01/07(水) 15:57:42GetAssemblyNameを呼んでみる
あと\WINDOWS\Microsoft.NET\〜や\Program Files\Reference Assemblies\〜は
コンパイル時に必要なアセンブリであって、実行時に使われるのではないと思ったよ
0666デフォルトの名無しさん
2009/01/07(水) 16:00:210667デフォルトの名無しさん
2009/01/07(水) 16:11:160668デフォルトの名無しさん
2009/01/07(水) 17:26:47本人は恐らく>>667のつもりだろうな
0669デフォルトの名無しさん
2009/01/07(水) 18:40:42インスタンスまるごととか推奨されてないの?
0670デフォルトの名無しさん
2009/01/07(水) 18:45:11値渡しの方が重いだろ
0671デフォルトの名無しさん
2009/01/07(水) 19:29:27すべてのPCで\WINDOWS\〜に入っているわけではないのですね…
でもここはRuntimeEnvironmentで取得できるので何とかなりそうですね。
問題は3.0以降の部分ですが…
>>665
マネージドかネイティブの判別はそれでいけるのですが、今回お聞きしたいのは
>>667,668の通り、.NET Framework標準のクラスライブラリかどうかの判別方法でした。
質問の仕方が非常に悪かったですね。すいません orz
0672デフォルトの名無しさん
2009/01/07(水) 19:56:54それらと比較すれば十分じゃないの
0673デフォルトの名無しさん
2009/01/07(水) 21:05:52ジェネリックメソッドの型パラメータは戻り値の型で推論してくれないの?
0674デフォルトの名無しさん
2009/01/08(木) 00:52:59GACからロードされたかである程度判別できそうだけど
厳密には全ての一覧でも持っておかないと無理かもね。
0675デフォルトの名無しさん
2009/01/08(木) 02:09:080676デフォルトの名無しさん
2009/01/08(木) 03:15:450677デフォルトの名無しさん
2009/01/08(木) 07:01:51結局のところ全部ハッシュもっとくしかないだろ。
0678デフォルトの名無しさん
2009/01/08(木) 07:24:38やっぱりあらかじめテーブルとしてAssembly.FullName持っておくしかないですか…
全部のdll分調べるのはちと骨が折れそうです orz
とりあえず、dllからAssembly.FullNameを取り出すプログラムを適当に組んでみます。
ありがとうございました。
0679デフォルトの名無しさん
2009/01/08(木) 08:08:38実装された時期が4・5年違うのが一番の原因。
0680デフォルトの名無しさん
2009/01/08(木) 09:24:01ここの一覧をつかっていいと思う。
...soft.NET\Framework\v2.0.50727\RedistList\FrameworkList.xml
...soft\Framework\v3.0\RedistList\FrameworkList.xml
...soft\Framework\v3.5\RedistList\FrameworkList.xml
0681デフォルトの名無しさん
2009/01/08(木) 22:39:540682デフォルトの名無しさん
2009/01/08(木) 23:20:35メンバや型そのものを追加したりすることはできるけど
0683デフォルトの名無しさん
2009/01/08(木) 23:36:340684デフォルトの名無しさん
2009/01/09(金) 01:39:01Formだと通る
refって何のためにあるの?
0685デフォルトの名無しさん
2009/01/09(金) 02:40:36Form form = new MainForm();
Method1(ref form);
0686デフォルトの名無しさん
2009/01/09(金) 02:40:390687デフォルトの名無しさん
2009/01/09(金) 09:38:19できる
0688デフォルトの名無しさん
2009/01/09(金) 09:39:40全部型記述子経由でやるならできる。
と思う。
0689デフォルトの名無しさん
2009/01/09(金) 11:33:17refは呼び出す側が渡した変数そのものに呼び出された側が値を代入するためのもの
だからMethod1の定義がvoid Method1(ref Form form) { form = new HogeForm(); }
となっているとすると,MainForm form = new MainForm(); Method1(ref form);
はMethod1を展開すれば次のようなものと等価
MainForm form = new MainForm(); form = new HogeForm();//MainFormにHogeFormを代入できない
>>685ならformの型がFormだから通る
0690デフォルトの名無しさん
2009/01/09(金) 12:23:52そういう用途で使うなら
refじゃなくてoutを使うべきだけどな
あれ?refってどんなときに使えばいいんだっけ? って話だよなw
個人的には
void pixcelProcessing(ref Bitmap target)
{
Bitmap source = target;
Bitmap dest = new Bitmap(target);
target = dest;
}
のようなときか
structを強制定期に参照渡しにして書き換えたいときにかな (今までそんなことはなかったけど)
0691デフォルトの名無しさん
2009/01/09(金) 12:58:410692デフォルトの名無しさん
2009/01/09(金) 13:02:000693デフォルトの名無しさん
2009/01/09(金) 20:14:160694デフォルトの名無しさん
2009/01/09(金) 22:11:520695デフォルトの名無しさん
2009/01/09(金) 22:27:450696デフォルトの名無しさん
2009/01/09(金) 23:12:20みたいなのはよくやる
0697デフォルトの名無しさん
2009/01/10(土) 01:13:16bool Method1<T>(ref T form) where T : Form, new()
みたいに宣言してみ。
0698デフォルトの名無しさん
2009/01/10(土) 01:20:550699デフォルトの名無しさん
2009/01/10(土) 01:46:340700デフォルトの名無しさん
2009/01/10(土) 08:18:370701おしry ◆B81hPRrN9Q
2009/01/10(土) 09:11:52using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace test
{
abstract class A
{
protected abstract string ToString(A a);
public sealed override string ToString()
{
return ToString(this);
}
}
class B : A
{
protected override string ToString(A a)
{
return a.ToString(a);
}
}
}
なぜコンパイルエラー?
無限ループしてるとか実用上の問題は無視してくれ。
エラー CS1501: 引数を '1' 個指定できる、メソッド 'ToString' のオーバーロードはありません。
0702デフォルトの名無しさん
2009/01/10(土) 09:13:05そして空白ミスったすまん。
0703デフォルトの名無しさん
2009/01/10(土) 09:27:25ToString(A) が protected だから。
base.ToString(a) は(A の ToString(A) が abstract だからコンパイルエラーだけど)呼べるが
a.ToString(a) は呼べない。
0704デフォルトの名無しさん
2009/01/10(土) 09:30:51ありがと
0705デフォルトの名無しさん
2009/01/10(土) 09:31:06return ((B) a).ToString(a);
なら通るだろ。
0706デフォルトの名無しさん
2009/01/10(土) 09:32:37それはコンパイルが通るが多態性の意味がない。
0707デフォルトの名無しさん
2009/01/10(土) 09:36:00class B : A と同じ内容の class C : A があったとして、
a.ToString(a); は B と C どっちのコードが動くんだ?
0708デフォルトの名無しさん
2009/01/10(土) 09:46:16a の型に決まってんだろw
A b = new B();
A c = new C();
b.ToString(b); b.ToString(c); // B の ToString(A)
c.ToString(b); c.ToString(b); // C の ToString(A)
0709デフォルトの名無しさん
2009/01/10(土) 10:20:26いまいるフォルダ=Path.GetDirecoryName
いまいるフォルダにあるファイル=Directory.GetFiles
いまいるフォルダにあるサブフォルダ=???
よろしくお願いします。
0710デフォルトの名無しさん
2009/01/10(土) 11:11:20C#で、改行を出力したいと考えています。
ひとつだけなら単に、"\r\n"でできます。
string return = "\r\n";
改行が39個とかある場合には、どう書けばいいのでしょう?
string return39 = "\r\n\r\n\r\n………";
となっていて、数え間違いをして困っています。
ご教示ください。
0711デフォルトの名無しさん
2009/01/10(土) 11:22:23>>709
c# サブディレクトリ 列挙でぐぐれ
0712デフォルトの名無しさん
2009/01/10(土) 11:48:54Stringのコンストラクタの(Char[], Int32, Int32)使えば?
最初に\r\nだけ入れた配列用意しといてnew String(配列,0,改行の数*2)
俺だったら改行メソッドを39回呼び出す方を選ぶけど
0713デフォルトの名無しさん
2009/01/10(土) 13:07:27using使わないと自動的には呼ばれない
自分でDispose呼んでもいいけどその場合は必ずfinallyの中で呼ぶこと
0714デフォルトの名無しさん
2009/01/10(土) 13:29:100715デフォルトの名無しさん
2009/01/10(土) 13:52:080716デフォルトの名無しさん
2009/01/10(土) 13:56:10プロセスの終了にも関係なく何があっても絶対に開放しないといけないリソースを使う場合って
SafeHandleの類を使うしかないの?
0717デフォルトの名無しさん
2009/01/10(土) 13:59:240718デフォルトの名無しさん
2009/01/10(土) 15:28:35Environment.NewLine使ってあげて。
0719デフォルトの名無しさん
2009/01/10(土) 15:34:07例えばフォームアプリケーションだったら、自分のFormの派生クラスのDisposeがある。
最悪Mainでusingしてシングルトンとして扱うとか方法は考えられるはず。
あと、絶対に処理されないと本当にまずいなら、CriticalFinalizerObject派生。
0720デフォルトの名無しさん
2009/01/10(土) 17:12:40ありがとうございます。できそうです。
>>712
Stringのコンストラクタの(Char[], Int32, Int32)
を試してみました。これでもいけそうです。
ただ、Charは1文字なので、\r\nのときはだめっぽいです。\rだけでならできました。
ありがとうございました。
0721デフォルトの名無しさん
2009/01/10(土) 17:28:290722デフォルトの名無しさん
2009/01/10(土) 17:54:14考えるべきだと思うけどもねえ。
たぶんその文字列を必要とする「何らかの処理」が存在してるんだろうけど、
その「何らかの処理」の作り方が本当にそれでいいのか。
まあ、9割方考え方に問題があるんだと思う。
0723デフォルトの名無しさん
2009/01/10(土) 19:04:31たぶん
というレスを投稿するプログラムを作ってるんじゃないかと
0724デフォルトの名無しさん
2009/01/10(土) 19:47:210725デフォルトの名無しさん
2009/01/10(土) 19:53:560726デフォルトの名無しさん
2009/01/10(土) 21:01:010727デフォルトの名無しさん
2009/01/10(土) 21:07:240728デフォルトの名無しさん
2009/01/10(土) 22:12:400729デフォルトの名無しさん
2009/01/10(土) 22:23:090730デフォルトの名無しさん
2009/01/10(土) 22:54:17UnauthorizedAccessException を投げるよね。
おそらくSystemVolumeInformationか何かを読みに行ってるんだろうね。
0731デフォルトの名無しさん
2009/01/10(土) 23:06:21しかもそんなレスが2つ続けてって・・・
ここはムーの投稿欄かよ
0732デフォルトの名無しさん
2009/01/10(土) 23:33:00たとえば
ttp://www.toyokeizai.net/compsh/stockholder/CN/8306
0733デフォルトの名無しさん
2009/01/10(土) 23:35:220734デフォルトの名無しさん
2009/01/10(土) 23:36:05予想通り
でもお前はいらない子
0735デフォルトの名無しさん
2009/01/10(土) 23:38:000736デフォルトの名無しさん
2009/01/10(土) 23:40:090737デフォルトの名無しさん
2009/01/10(土) 23:40:380738デフォルトの名無しさん
2009/01/10(土) 23:41:46簡易WebBrowserとダウンロードボタン作って,ログイン後にボタンクリックすればいいんじゃない?
0739デフォルトの名無しさん
2009/01/10(土) 23:41:54神様ありがとうございます
ぐぐって勉強してみます
どうでもいいレスして喜んでる人はもうここにはレスしないように
0740デフォルトの名無しさん
2009/01/10(土) 23:44:370741デフォルトの名無しさん
2009/01/10(土) 23:50:41JavaScriptの中にログイン用の塩が埋め込まれててエンコードしたり
しないといけないから、そんなもんブラウザでInvokeしたほうが
楽だべ。(というかそうじゃないと無理なものもある)
0742デフォルトの名無しさん
2009/01/10(土) 23:52:370743デフォルトの名無しさん
2009/01/11(日) 00:05:40ログイン用の…エン?
言いたいことが分かるけどなぜに塩なのかが分からんw
>>742
capita破るプログラムを考えるより、人間に任せた方が楽というのもある
0744デフォルトの名無しさん
2009/01/11(日) 00:10:36salt
0745デフォルトの名無しさん
2009/01/11(日) 00:13:25言いたいことはわかるんだがアレンジが大胆すぎる
0746デフォルトの名無しさん
2009/01/11(日) 00:18:14人間がやってることだろ。
0747デフォルトの名無しさん
2009/01/11(日) 00:21:59ログ取れるプロキシ使うかやパケットキャプチャをしてブラウザからログオンしてみて
同じリクエスト順にGETやPOSTを投げるんだよ。
クッキーあたりに入っているセッションIDなどもサーバーから送られてくるのを使うんだよ。
どんなページもAjaxなページも基本的に同じようにやればいいんだよ。
このページは普通にPOSTを投げるだけで良さそうだけど。
0748デフォルトの名無しさん
2009/01/11(日) 00:28:390749デフォルトの名無しさん
2009/01/11(日) 00:30:300750デフォルトの名無しさん
2009/01/11(日) 01:15:400751デフォルトの名無しさん
2009/01/11(日) 01:41:460752デフォルトの名無しさん
2009/01/11(日) 02:01:450753デフォルトの名無しさん
2009/01/11(日) 02:10:19>>750
もしかして: captcha
>>751-752
日本語でおk
0754デフォルトの名無しさん
2009/01/11(日) 07:39:53サブフォルダの件、無事できました。
thanks!
0755デフォルトの名無しさん
2009/01/11(日) 11:00:58Bitmap bmp = Resources1.image1;
みたいに取得したBitmapオブジェクトも解放するのは取得した側の責任ですよね?
0756デフォルトの名無しさん
2009/01/11(日) 13:12:11keydownイベントで、シフトキーを押すとAlt+Zキーを押したのと同等の処理をしたいのですがどうすれば良いのでしょうか?
0757デフォルトの名無しさん
2009/01/11(日) 13:19:370758デフォルトの名無しさん
2009/01/11(日) 13:24:23(1) Shiftキーが押されたかどうか判定し、(普通に可能)
(2) 押された場合は[Alt]+Zが押された場合と同じ処理をする
だけだろう。
逆に何が難しいのか説明して欲しいぐらいだ。
0759デフォルトの名無しさん
2009/01/11(日) 15:50:24そだよ
0760デフォルトの名無しさん
2009/01/11(日) 17:02:52textBoxにappleをいれると、
string[] fruits = new [] {"apple", "banana", "orange"};
foreach(string fruit in fruits) {
if (textBox.Text.Contains(fruit)){MessageBox.Show(fruit + "です。");}
else {MessageBox.Show("一致しません。");}
}
だと、appleです。、一致しません、一致しません。と3回メッセージボックスが出ます。
これを、どれかに一致したときは、一致したメッセージをだし、どれにも一致しなかったら、1回だけ一致しなかったメッセージを出す、とするには、どうすればよいでしょう?
アドバイスお願いします。
0761デフォルトの名無しさん
2009/01/11(日) 17:05:040762デフォルトの名無しさん
2009/01/11(日) 17:09:49それが、
if (textBox.Text.Contains(fruit)){MessageBox.Show(fruit + "です。");break;}
else {MessageBox.Show("一致しません。");break;}
とbreakしてみると、appleのときはappleです。と表示されてうまくいき、kiwiの場合も、一致しません。でうまくいくのですが、bananaのときにも一致しません。になってしまうのです。
0763デフォルトの名無しさん
2009/01/11(日) 17:11:49...
if(flg) ...
0764デフォルトの名無しさん
2009/01/11(日) 17:14:490765デフォルトの名無しさん
2009/01/11(日) 17:46:25>>764
ステップインで1行ずつ実行して、bananaのときはelseに飛ぶことはわかったのですが、なぜ飛ぶのか(飛ばないようにしたいのに)わからないので、ぜんぜん解決しませんでした。
>>763
フラグを立てるのですか?
string[] fruits = new [] {"apple", "banana", "orange"};
bool flg = false;
foreach(string fruit in fruits) {
if (textBox.Text.Contains(fruit)){flg = true; break;
if (flg) {MessageBox.Show(fruit + "です。");}
else {MessageBox.Show("一致しません。");break;}
}
???
0766デフォルトの名無しさん
2009/01/11(日) 17:49:53bool flg = false;
foreach(string fruit in fruits) {
if (textBox.Text.Contains(fruit)){
MessageBox.Show(fruit + "です。");
flg = true;
break;
}
}
if (!flg) {...}
全部言わんと分からんのか?
0767デフォルトの名無しさん
2009/01/11(日) 17:53:11{
//ある
}
else
{
//ない
}
0768デフォルトの名無しさん
2009/01/11(日) 17:59:080769デフォルトの名無しさん
2009/01/11(日) 18:07:42好き好きでいいんじゃね。
省略できる型引数は省略しないと気が済まないお前や俺みたいなやつもいれば、
書かないと気が済まないやつ、まるでこだわらないやつもいるだろ。
0770デフォルトの名無しさん
2009/01/11(日) 18:10:14省略できない型引数は極力作るな
っていうガイドラインがあったな
0771デフォルトの名無しさん
2009/01/11(日) 18:14:18全部いっていただけるとうれしいです。
string[] fruits = new [] {"apple", "banana", "orange"};
bool flg = false;
foreach(string fruit in fruits) {
if (textBox.Text.Contains(fruit)){MessageBox.Show(fruit + "です。");
flg = true;
break;
}
if (!flg) {MessageBox.Show("一致しません。");break;}
}
これで、bananaのときは、一致しません。で終わってしまいます。
if (!flg) {MessageBox.Show("一致しません。");}
とすると、一致しません、bananaです。で、まだできてないし…。
0772デフォルトの名無しさん
2009/01/11(日) 18:22:58if(result != null)
MessageBox.Show(fruit + "です。");
else
MessageBox.Show("一致しません。");
こんなんとか
0773デフォルトの名無しさん
2009/01/11(日) 18:25:23そういうときはFirstOrDefaultよりもAnyを使う
0774デフォルトの名無しさん
2009/01/11(日) 18:27:10撤回
0775デフォルトの名無しさん
2009/01/11(日) 18:27:49var result = fruits.FirstOrDefault(fruit => textBox.Text.Contains(fruit));
if(result != null)
MessageBox.Show(result + "です。");
else
MessageBox.Show("一致しません。");
こうか
0776デフォルトの名無しさん
2009/01/11(日) 18:36:11var results = fruits.Where(fruit => textBox.Text.Contains(fruit)).ToArray();
if(results.Length == 0)
MessageBox.Show("一致しません。");
else foreach(var fruit in results)
MessageBox.Show(fruit + "です。");
0777デフォルトの名無しさん
2009/01/11(日) 19:11:19>>767
配列のなかを検索するには、こういう書き方もあるんですね。
今回は、textBoxがpineappleのときもappleに一致させたいので、使えない感じですが、勉強になりました。
>>775
できました!
感謝します。
0778デフォルトの名無しさん
2009/01/11(日) 19:18:57bool flg = false;
foreach(string fruit in fruits) {
if (textBox.Text.Contains(fruit)){
MessageBox.Show(fruit + "です。");
flg = true;
break;
}
}
if (!flg) {MessageBox.Show("一致しません。");}
こういう書き方も出来んといかんよ
0779デフォルトの名無しさん
2009/01/11(日) 20:30:28Array.Find
>>776
Array.FindAll
0780デフォルトの名無しさん
2009/01/11(日) 20:32:49そういえばどういうときにどんなLINQを使えば楽になるのかというのがいまいち分からない
ここ見てると、ああなるほど と思うときがあるんだが… 頭固いからかな?
0781デフォルトの名無しさん
2009/01/11(日) 20:47:33単純にそれはコレクション操作することが少ないんじゃない?
0782デフォルトの名無しさん
2009/01/11(日) 21:14:230783デフォルトの名無しさん
2009/01/11(日) 22:55:01ありがとうございます。
最初に書こうと思って書けなかったのはこれでした。
フラグとbreakについて復習してみようと思います。
>>780
おっしゃるとおり。778のフラグとbreakの方法なら理解できるのですが、775の方法は、動くことはわかるものの、まだマジカルです。
でもまあ理解はそのうちついてくると思ってます。
0784デフォルトの名無しさん
2009/01/12(月) 11:59:24の便乗質問なんですが、Paintイベントなどで
e.DrawImage( Resources1.image1, ... );
なんてやると描画の度に確実にリークしてくってことですかね
0785デフォルトの名無しさん
2009/01/12(月) 12:07:09GC.AddMemoryPressureとかやってないみたいだし
0786デフォルトの名無しさん
2009/01/12(月) 16:13:43Imageなんか勝手に全部キャッシュされたらそれこそリークだけど
それならプロパティにするのは不自然だと思う
0787デフォルトの名無しさん
2009/01/12(月) 16:21:16Win32のリソースの場合ははじめからそこにあるといったイメージになるから
開放しないのが普通なのだが、CLRのリソースはわかんね。
0788デフォルトの名無しさん
2009/01/13(火) 00:06:05if (A) {//処理}
if (B) {//処理}
と書くと、重複が多いのでなんとかしたいです。
ご指導ください。
0789デフォルトの名無しさん
2009/01/13(火) 00:10:500790デフォルトの名無しさん
2009/01/13(火) 00:44:34(A かつ B の時は >>788 だと2度処理されるが、>>789 では1度しか処理されない)
まあ、>>788 の書き間違いかもしれないが。
もし書き間違いでないとしたら、処理を関数化することね。
0791デフォルトの名無しさん
2009/01/13(火) 00:52:45では
int jobCount = 0;
if (A) ++jobCount;
if (B) ++jobCount;
for (int i = 0; i < jobCount; i++)
{
//処理
}
0792デフォルトの名無しさん
2009/01/13(火) 01:10:18if (A) {
a = doSomething(α);
}
if (B) {
b = doSomething(β);
}
だろ。初心者用だし、普通に考えて。
0793デフォルトの名無しさん
2009/01/13(火) 01:37:16{
//処理
}
-----------------------------------
if (A) {DoMyEvent();}
if (B) {DoMyEvent();}
0794デフォルトの名無しさん
2009/01/13(火) 01:44:380795デフォルトの名無しさん
2009/01/13(火) 01:48:210796デフォルトの名無しさん
2009/01/13(火) 02:10:130797デフォルトの名無しさん
2009/01/13(火) 02:28:030798デフォルトの名無しさん
2009/01/13(火) 11:09:24画面に表示しないで、パスワードを入力してもらうにはどうすればいいですか?
login: userid
password: **** (若しくは完全に非表示)
というような感じにしたいです。
Console.ReadKey(true)をEnterがあるまで繰り返すのが一般的ですか?
それとも、パスワード入力用のメソッドとかありますか?
0799デフォルトの名無しさん
2009/01/13(火) 15:39:390800デフォルトの名無しさん
2009/01/13(火) 15:43:270801デフォルトの名無しさん
2009/01/13(火) 15:46:16駄目
C#3.5ならSequenceEqualとか使えるけど
>>800
意味が分からんがenumで何とかならんか?
0802デフォルトの名無しさん
2009/01/13(火) 15:49:44無料。そもそも何のためにそんなことをしたいんだ?
0803デフォルトの名無しさん
2009/01/13(火) 15:59:29そうですか、ありがとう。
迂回のつもりでBitConverterにしてから比較していたのですが、
とりあえずこのまま行こうと思います。
byte[].SequenceEqual(byte[])で試してみたらfalseになりました。
使い方を調べてから出直してきます。
0804デフォルトの名無しさん
2009/01/13(火) 18:16:240805デフォルトの名無しさん
2009/01/13(火) 18:20:54VB6かVB.netかで違う
結論としてはほぼ一緒だが。
0806デフォルトの名無しさん
2009/01/13(火) 18:25:440807デフォルトの名無しさん
2009/01/13(火) 20:13:22ReadKey回すしかないんじゃない?こんな感じで。
StringBuilder sb = new StringBuilder();
ConsoleKeyInfo cki;
Console.Write("Password: ");
do
{
while (!Console.KeyAvailable)
{
Thread.Sleep(10);
}
cki = Console.ReadKey(true);
if (cki.KeyChar != '\r' && cki.KeyChar != 0)
{
sb.Append(cki.KeyChar);
Console.Write("*");
}
} while (cki.KeyChar != '\r');
Console.WriteLine("\nYour Password is: " + sb.ToString());
0808デフォルトの名無しさん
2009/01/13(火) 20:20:44ありがとうございます。
if (A || B)でできました。
処理をメソッド化するのがベターでしょうか。
こちらも試してみました。
状況に応じて使い分けたいと思います。
0809デフォルトの名無しさん
2009/01/13(火) 20:23:26大丈夫かよ……
if( A || B )
の場合、AがtrueだとBは評価されないってのは理解してるよな……?
0810デフォルトの名無しさん
2009/01/13(火) 21:03:002009/01/13
という文字列から、
2009/01/20
2009/01/27
2009/02/03
……
という文字列を得たいと考えています。
ToString()みたいな感じでToDateTimeしてAddDays(+7)とかできないかと考えたのですが、違うみたいです。
どう考えたらいいですか?
0811デフォルトの名無しさん
2009/01/13(火) 21:04:160812デフォルトの名無しさん
2009/01/13(火) 21:06:58君が間違いを犯してると思う
全コードのせてみ?
0813デフォルトの名無しさん
2009/01/13(火) 21:12:00え…。カレンダーってなんかまずいっすか?
コンソールで
makecalendar.exe 2009/01/13 21:00 メイちゃんの執事
と入力して結果として、
2009/01/13 21:00 メイちゃんの執事
2009/01/20 21:00 メイちゃんの執事
2009/01/27 21:00 メイちゃんの執事
2009/02/03 21:00 メイちゃんの執事
……
というファイルを作りたいと思っています。
>>812
いまコードは次のとおりです。
string[] args = Environment.GetCommandLineArgs();
File.AppendAllText("plan.txt" , args[1] + "\t" + args[2] + "\t" + args[3] + "\r\n", Encoding.Default);
でこのあとの部分で、stringを日付にして、AddDaysを12回くり返す。forで。と考えました。
0814デフォルトの名無しさん
2009/01/13(火) 21:14:07> でこのあとの部分で、stringを日付にして、AddDaysを12回くり返す。forで。と考えました。
はどこいった
0815デフォルトの名無しさん
2009/01/13(火) 21:14:40全部そのまま載せろ、ドアホ
0816デフォルトの名無しさん
2009/01/13(火) 21:15:370817デフォルトの名無しさん
2009/01/13(火) 21:18:09そのExcelからC#で作ったプログラムを起動して処理をさせる事を
しています。
そのときC#で行った処理の結果を先ほどの既に開いている
Excelファイルのあるシートのあるセルに
文字列として書きこみたいのですがどうすればよいでしょうか?
Excel.Openだと新しくファイルを開こうとするので
そうではなくすでに開いているExcelを操作したいのです。
どなたかご教授お願いします。。
0818デフォルトの名無しさん
2009/01/13(火) 21:23:42ヘルプの「解説」の1行目読んで。
0819デフォルトの名無しさん
2009/01/13(火) 21:33:45いや、その肝心のところで躓いていて。
>>815
コードこれでぜんぶです〜。
まず日本語でやりたいことを忘れないようにメモしたところです。
これから日付をクリアしたら、forの使い方を調べて…。
0820デフォルトの名無しさん
2009/01/13(火) 21:36:21何を言いたいのかよくわからんがプログラム書いてからこい
0821デフォルトの名無しさん
2009/01/13(火) 21:45:200822デフォルトの名無しさん
2009/01/13(火) 21:59:09for (int i=2; i<13; i++) {
File.AppendAllText("plan.txt" , (i) + "\t" + args[2] + "\t" + args[3] + "\r\n", Encoding.Default);
}
これで最初の質問のargs[1]の日付を文字から日付にする方法をアドバイスお願いします。
0823デフォルトの名無しさん
2009/01/13(火) 22:01:180824デフォルトの名無しさん
2009/01/13(火) 22:04:10日付の計算の仕方がわかったら、本当にforの使い方を調べるんだな。
おじさんとの約束だぞ。
stringをDateTimeに変換するのは、 DateTime.Parse() を使う。
string s = "2009/01/13 21:00";
DateTime dt1 = DateTime.Parse(s);
Parse()というメソッドはよく覚えておけ。文字列表現を解釈するために、いろんなクラスに
存在しているからな。目を皿のようにしてMSDNライブラリを渉猟するがいい。
次は、「DateTime.AddDays()が機能しません」と言って泣きついてくるような気がするが、
それはそのとき答えよう。
0825デフォルトの名無しさん
2009/01/13(火) 22:11:160827デフォルトの名無しさん
2009/01/13(火) 22:16:54なんか知らんが、あんた気色悪いよ。
いや本気で。
0828デフォルトの名無しさん
2009/01/13(火) 22:19:480829デフォルトの名無しさん
2009/01/13(火) 22:41:44DateTime startDate = DateTime.Parse(args[ 1 ]);
using (StreamWriter writer = new StreamWriter("plan.txt"))
{
for (int i = 0; i < 13; ++i)
{
DateTime onAirDate = startDate.AddDays(i * 7);
writer.WriteLine("{0:yyyy/MM/dd}\t{1}\t{2}", onAirDate, args[ 2 ], args[ 3 ]);
}
}
次はだれかLINQを使う例を頼む。
0830デフォルトの名無しさん
2009/01/13(火) 22:42:11ありがとうございます。
>>824
詳しくありがとうございます。
できました。
0831デフォルトの名無しさん
2009/01/13(火) 22:46:28今夜の楽しみがひとつ減った
0832デフォルトの名無しさん
2009/01/13(火) 22:46:33できたプログラムキボンヌ。
0833デフォルトの名無しさん
2009/01/14(水) 00:25:47いま、こんな感じです。
// 周期と初期値は今後対応予定。
// 日付 時刻 項目 初期値 周期
// 予定の表記は、「2009/01/20 21:00 メイちゃんの執事 2 7」
DateTime dt;
DateTime.TryParse(args[1].ToString() + " " + args[2].ToString(), out dt);
for (int i=1; i<13; i++) {
File.AppendAllText("plan.txt" , dt.AddDays(+7*(i)).ToString().Replace(" ","\t").Replace("00:00","00") + "\t" + args[3] + (i) + "\r\n", Encoding.Default);
}
0834デフォルトの名無しさん
2009/01/14(水) 00:29:500835デフォルトの名無しさん
2009/01/14(水) 00:36:46>>834
え!? なんですかそれ…。
0836デフォルトの名無しさん
2009/01/14(水) 00:37:32・DateTimeは時間も扱えるのでまとめてParseした方がいい。
・DateTimeを文字列に変換する際には書式指定できる。
ヘルプで「日付と時刻の書式指定文字列」を調べてみる。
0837デフォルトの名無しさん
2009/01/14(水) 00:43:05Try○○パターンは常にif (Try○○(out result)) { 成功したとき } else { 失敗したとき }
の形で使うんだよ
失敗したときはresultの値は無意味なので使っちゃいけないお約束
0838デフォルトの名無しさん
2009/01/14(水) 01:06:54DateTime startDate = DateTime.Parse(args[1] + " " + args[2]);
for (int i=1; i<13; i++) {
File.AppendAllText("plan.txt" , startDate.AddDays(+7*(i)).ToString("yyyy/MM/dd/\tHH:mm") + "\t" + args[3] + (i) + "\r\n", Encoding.Default);
}
0839デフォルトの名無しさん
2009/01/14(水) 01:10:270840デフォルトの名無しさん
2009/01/14(水) 01:17:41失敗したときの値は普通は default(T) だから(値はMSDNに明記されてる)、
変換できない文字列は default(T) とみなすということも有り得る
0841651
2009/01/14(水) 01:56:17EditingControlWantsInputKeyメソッドの
switch文のdefaultの時に
return !dataGridViewWantsInputKey;
を返したら無事入力できるようになりました。
ttp://windowsclient.net/downloads/folders/applications/default.aspx
のDataGridViewを参考にしました。
0842デフォルトの名無しさん
2009/01/14(水) 10:08:59〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ こいつ まピョーん☆
彡、 |∪| /
/ __ ヽノ /
(___)
0843デフォルトの名無しさん
2009/01/14(水) 10:56:21同じアイテムを使う事ってできないんでしょうか?
0844デフォルトの名無しさん
2009/01/14(水) 10:58:160845デフォルトの名無しさん
2009/01/14(水) 11:07:00違う親にAddするともとからはRemoveされる仕様です
0846デフォルトの名無しさん
2009/01/14(水) 13:09:14サンクス。だが遅かったな
俺が寝てる間(=意識がもうろうとしている状態)に小人さんが作ってくれたんだぜw 俺の小人さん乙
Console.ReadKey(true).KeyChar == 0 の場合は考えてなかったな
まあいいや
0847デフォルトの名無しさん
2009/01/14(水) 16:18:02周期と初期値に対応したつもりですが、周期と初期値の引数がない場合になにも処理されないという症状に困っています。
アドバイスいただければと。
引数つきでデバッグするときにはどうしたらよいんでしょう?
//予定の表記は「2009/01/20 21:00 メイちゃんの執事 2 7」
//日付 時刻 項目 初期値 周期
DateTime startDate = DateTime.Parse(args[1] + " " + args[2]);
int defaultValue = 1;
if (args[4] != null) {defaultValue = Int32.Parse(args[4]);}
else if (args[4] == null) {}
int incrementDays = 7;
if (args[5] != null) {incrementDays = Int32.Parse(args[5]);}
else if (args[5] == null) {}
for (int i=defaultValue; i<13; i++) {
string writefolderDate = (startDate.AddDays(i*incrementDays).ToString("yyyy/yyyyMM/yyyy_MMdd/"));
File.AppendAllText("plan.txt" , startDate.AddDays(i*incrementDays).ToString("yyyy/MM/dd\tHH:mm") + "\t" + args[3] + i + "\r\n", Encoding.Default);
0848デフォルトの名無しさん
2009/01/14(水) 16:26:03もうちょっと機能を分割したほうがいいが、、
引数付きでデバッグ開始したいなら、プロジェクトのプロパティのデバッグのとこに
開始オプション-コマンドライン引数とかあるが。
0849デフォルトの名無しさん
2009/01/14(水) 16:26:060850デフォルトの名無しさん
2009/01/14(水) 16:50:45って引数足りないときはArgumentOutOfRangeExceptionだぞ
Lengthプロパティで確認
0851デフォルトの名無しさん
2009/01/14(水) 17:07:33ありがとうございます。
>>850
ありがとうございます。
int defaultValue = 1;
if (args.Length >= 5) {defaultValue = Int32.Parse(args[4]);}
int incrementDays = 7;
if (args.Length >= 6) {incrementDays = Int32.Parse(args[5]);}
でできたみたいです。
0852デフォルトの名無しさん
2009/01/14(水) 17:12:20周期的に行う予定で、雑誌の発売日などの場合、2週目と4週目の火曜日、というようなことがあるのですが、C#で2週目の火曜日、というのはどう書くものなのですか?
0853デフォルトの名無しさん
2009/01/14(水) 17:24:06普通にメソッド化しろよ。
もう遅いとは思うが
0854デフォルトの名無しさん
2009/01/14(水) 17:48:37遅いってことはないんですけど、普通のメソッド化って、どんなふうにするものなのですか?
メソッド化って、自分ではまだしたことがなく、リファクタ-メソッドの抽出でメソッドを作ったことがあるくらいです。
この場合、どこをどうメソッドにするものなのでしょう?
0855デフォルトの名無しさん
2009/01/14(水) 18:11:351日が何曜日かしらべて自前で計算したらよかんべ
0856デフォルトの名無しさん
2009/01/14(水) 18:14:45そういうのはまず条件を整理するんだよ。
で、何週目かは7で割ればいいし、
DateTime 使うんなら、DayOfWeekで曜日がわかる。
0857デフォルトの名無しさん
2009/01/14(水) 18:28:11やってることを分けて考えれば自然に出てくる
たとえ一回しか使われない処理でも,
はっきりとした機能単位でメソッドに分けられていたら見通しが良くなる
0858デフォルトの名無しさん
2009/01/14(水) 18:34:09今月の場合だと
int i = Convert.ToInt32(new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).DayOfWeek);
int n = (7 - i) + 3;
任意の月だとDateTime.Now.Monthを変えればOK。
0859デフォルトの名無しさん
2009/01/14(水) 18:46:57因みに、ある月の「2週目の火曜日」と「第2火曜日」は違うと言っておく
雑誌なんかは普通は後者だと思う。前者も無いとは言い切れないが
0860デフォルトの名無しさん
2009/01/14(水) 18:50:42すごいなこれw
0861デフォルトの名無しさん
2009/01/14(水) 18:56:57void NewMethod(ref int a, ref int b, out int c);
もう、あほかとw
0862デフォルトの名無しさん
2009/01/14(水) 18:59:16確かにw
第二火曜日の場合
int i = Convert.ToInt32(new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).DayOfWeek);
int n = (i > 2) ? (7 - i) + 3 + 7 : (7 - i) + 3;
0863デフォルトの名無しさん
2009/01/14(水) 19:06:13ありがとうございます。
う〜む。なんかこんなんなりました…。
割り算苦手…。
string[] targetDay = {"日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"};
string targetOnlyDate = DateTime.Now.ToString("dd");
DateTime targetDate = DateTime.Now;
string stringTargetDate = DateTime.Now.ToString("yyyy年MM月dd日");
if (Int32.Parse(targetOnlyDate)<=7) {MessageBox.Show(stringTargetDate + "は第1" + targetDay[(int)targetDate.DayOfWeek]);}
else if (Int32.Parse(targetOnlyDate)<=14) {MessageBox.Show(stringTargetDate + "は第2" + targetDay[(int)targetDate.DayOfWeek]);}
else if (Int32.Parse(targetOnlyDate)<=21) {MessageBox.Show(stringTargetDate + "は第3" + targetDay[(int)targetDate.DayOfWeek]);}
else if (Int32.Parse(targetOnlyDate)<=28) {MessageBox.Show(stringTargetDate + "は第4" + targetDay[(int)targetDate.DayOfWeek]);}
else {MessageBox.Show(stringTargetDate + "は第5" + targetDay[(int)targetDate.DayOfWeek]);}
>>858
うっ。ありがとうございます。四苦八苦しているうちに…。
すごいスマートです…。
>>857、860
メソッド化については、最近必要性がわかってきたものの、もうちょっと頭を整理してから考えます。
0864デフォルトの名無しさん
2009/01/14(水) 19:13:07これはひどい
0865デフォルトの名無しさん
2009/01/14(水) 19:18:440866デフォルトの名無しさん
2009/01/14(水) 19:21:00しかもなぜかstringで毎回Int32.Parse…
0867デフォルトの名無しさん
2009/01/14(水) 19:38:390868デフォルトの名無しさん
2009/01/14(水) 19:49:06public static int 第nx曜日の日付を調べる(int n, DayOfWeek x, DayOfWeek firstDay)
{
int firstDateX = x - firstDay + 1;
if (firstDateX <= 0)
firstDateX += 7;
return firstDateX + 7 * (n - 1);
}
0869デフォルトの名無しさん
2009/01/14(水) 20:25:29if a b の人じゃないのwww
0870デフォルトの名無しさん
2009/01/14(水) 21:17:420871デフォルトの名無しさん
2009/01/14(水) 22:21:030872デフォルトの名無しさん
2009/01/15(木) 04:12:590873デフォルトの名無しさん
2009/01/15(木) 04:32:35http://msdn.microsoft.com/ja-jp/library/ms173121.aspx
0874デフォルトの名無しさん
2009/01/15(木) 04:41:060875デフォルトの名無しさん
2009/01/15(木) 16:53:43第nx曜日の日付を調べる()
を呼び出すときの引数を教えてください。
たとえば第2火曜日の日付を求めるには?
第nx曜日の日付を調べる(2, "火", "木")
0876デフォルトの名無しさん
2009/01/15(木) 17:04:180877デフォルトの名無しさん
2009/01/15(木) 17:37:22>>862を発展させたのが>>868なんじゃないの?
両方を見ればどうするか分かりそうだけど・・・。
0878デフォルトの名無しさん
2009/01/15(木) 17:49:320879デフォルトの名無しさん
2009/01/15(木) 18:26:49ほとんどstringしか使ったことがないので、Intとかよくわからないのです。
両方見ても、ぜんぜん見当がつかないです。
0880デフォルトの名無しさん
2009/01/15(木) 18:39:260881デフォルトの名無しさん
2009/01/15(木) 18:41:270882デフォルトの名無しさん
2009/01/15(木) 18:48:29それともアドレス?
0883デフォルトの名無しさん
2009/01/15(木) 18:55:160884デフォルトの名無しさん
2009/01/15(木) 19:50:440885デフォルトの名無しさん
2009/01/15(木) 19:55:40ポインタをはじめとした,プラットフォームによってサイズが変わる整数値を格納するための型
0886デフォルトの名無しさん
2009/01/15(木) 19:57:34と言った方がいいかもしれない
0887デフォルトの名無しさん
2009/01/15(木) 20:05:15IntPtrの仕様書(?)説明ではよく分からなかったので質問しました。
BitmapData.Scan0というのがよく分からなかったので
0888デフォルトの名無しさん
2009/01/15(木) 20:08:41var世代にはもう必要なくなったのかも・・。
0889デフォルトの名無しさん
2009/01/15(木) 20:17:45void*とか公開するのはさすがにまずいのでそのかわりにIntPtr
値はやっぱり生のアドレス
0890デフォルトの名無しさん
2009/01/15(木) 20:21:25要は、
実態: ただの整数の別名
用途: ハンドルとかポインタとか、普通の整数のように扱われては困る値を扱うためのもの
ってことじゃないの?俺はそう思ってるけど。
ただ、整数と「意味的に」区別するために導入したはずのIntPtrなのに、
結局のところ「意味的に」全然異なるいろんなハンドルやポインタの値を
扱うんじゃ、考え方として一貫してないしあんまり意味ないなー、と思うのは俺だけ?
0891デフォルトの名無しさん
2009/01/15(木) 20:23:07C#は静的な強い型付けの言語だけど、それと型推論は別の概念。
0892デフォルトの名無しさん
2009/01/15(木) 20:27:22ハンドルでもいいんだよ
要は32ビット環境では32ビット,64ビット環境では64ビット環境になるような値に対して使う
0893デフォルトの名無しさん
2009/01/15(木) 20:30:210894デフォルトの名無しさん
2009/01/15(木) 20:31:10ありがとうございます。
(Scan0以外で多分当分使わないだろうな…)
0895デフォルトの名無しさん
2009/01/15(木) 20:33:13だからIntPtrという名前なんだろう
0896デフォルトの名無しさん
2009/01/15(木) 20:44:020897デフォルトの名無しさん
2009/01/15(木) 20:47:030898デフォルトの名無しさん
2009/01/15(木) 20:52:290899デフォルトの名無しさん
2009/01/15(木) 21:05:49それはbyte型に対する当て付けか
0900デフォルトの名無しさん
2009/01/15(木) 21:17:01いやだから、意味的な重点は「フツーの整数とは違うよ」っていうことにあって、
Cのintみたいに環境で大きさが変わるっていうのはむしろそう重要なことではないかと。
もちろんポインタを扱う場合には重要な特徴ではあるんだけど。
0901デフォルトの名無しさん
2009/01/15(木) 21:28:29Int32,Int64等に対応して"Int"+(サイズ)と理解していいのかなあ
0902デフォルトの名無しさん
2009/01/15(木) 21:35:18無理に何かにあてはめることは無い
0903デフォルトの名無しさん
2009/01/15(木) 21:42:58う〜ん
何となくは分かるんですが…
0904デフォルトの名無しさん
2009/01/15(木) 21:47:07C#コードで完結するならUIntPtr使いたいな。
0905デフォルトの名無しさん
2009/01/15(木) 23:15:11質問をよろしくお願いします。
次の各項目について、方法は長くなってしまうでしょうから、可能なのかどうかだけでも教えてください。
(a) exeファイルになってからSQLServerがインストールされていないPCで使用したい
(b) mdfファイルとの接続を、メイン実行ファイル自身(exeファイル)からの相対パスで指定したい
以上2点ですが、可能なんでしょうか?
0906デフォルトの名無しさん
2009/01/15(木) 23:20:100907デフォルトの名無しさん
2009/01/15(木) 23:26:00a. 無理。Compact ならいけるかも。調べてみれ
b. いけるはず
0908デフォルトの名無しさん
2009/01/15(木) 23:46:02なにをスクロールさせたいんだ?
おれたちゃお前のお母ちゃんじゃねえんだ
出直しな
0909デフォルトの名無しさん
2009/01/15(木) 23:51:56貼りつけたんだがホイールでスクロールしてくれない
どうすればいい?
0910デフォルトの名無しさん
2009/01/15(木) 23:56:110911デフォルトの名無しさん
2009/01/15(木) 23:56:31解説
このプロパティの値に関係なく、スクロール バーは必要な場合にだけ表示されます。
スクロール バーを表示しないようにするには、このプロパティを使用します。(後略)
DataGridViewに表示しきれないほどRowを追加すりゃいいんじゃね?
0912デフォルトの名無しさん
2009/01/16(金) 00:00:22バーをつままないとスクロールしてくれない
ホイールでころころっとできんものかな、と
WM_SCROLL??なにそれ??
現在グーグルとにらめっこ中
支援求む
0913デフォルトの名無しさん
2009/01/16(金) 00:02:370914デフォルトの名無しさん
2009/01/16(金) 00:02:520915デフォルトの名無しさん
2009/01/16(金) 00:20:290916デフォルトの名無しさん
2009/01/16(金) 00:25:190917デフォルトの名無しさん
2009/01/16(金) 00:54:16学生さんだね。
社会に出ればわかるけど冤罪も罪のうち、疑わしきは罰するってのは法治国家の不文律だよ。
0918デフォルトの名無しさん
2009/01/16(金) 01:07:240920デフォルトの名無しさん
2009/01/16(金) 09:46:27別のプロジェクトに含まれているフォームをコピーして使いたいのですが
インポートするにはどうすればいいですか?
お願いします。
0921デフォルトの名無しさん
2009/01/16(金) 10:02:27そのexeかdllを参照に追加
0922デフォルトの名無しさん
2009/01/16(金) 10:04:590923デフォルトの名無しさん
2009/01/16(金) 10:15:24>>920-921
ありがとうございました。
ガチャガチャやってるうちにできました。
ソリューションエクスプローラ上で右クリック-追加-既存の項目
で出来ました。
追加項目の選択でform1.csだけを選択しただけで、ファイル的には
form1.csとForm1.Designer.csとForm1.resxの三つが現プロジェクトのフォルダに追加されました。
0924デフォルトの名無しさん
2009/01/16(金) 13:07:170925デフォルトの名無しさん
2009/01/16(金) 14:01:380926デフォルトの名無しさん
2009/01/16(金) 17:55:51ショートカットの.lnkからフルパスを取得するにはどうしたらよいでしょう?
0927デフォルトの名無しさん
2009/01/16(金) 18:01:14System.Runtime.InteropServices.ComTypes.IPersistFile
あたりでぐぐれ
0928デフォルトの名無しさん
2009/01/16(金) 18:29:19thanks
0929デフォルトの名無しさん
2009/01/16(金) 19:25:29リフレクションで、あるオブジェクトがIEnumerable<T>の実装クラスか
判定したいんですが、ジェネリッククラスでこれをやるにはどうすればいいんでしょう。
0930デフォルトの名無しさん
2009/01/16(金) 19:40:26てか、is使ったほうが早い
0931デフォルトの名無しさん
2009/01/16(金) 19:50:34要するに、渡されたオブジェクトが配列かコレクションだったら foreach で中身を取り出したいのですが、
そのために、型引数 T がどんな型の場合でもmatchできるようにしたいのです。
質問が悪くて申し訳ありません。もしご存知でしたら教えてください。
0932デフォルトの名無しさん
2009/01/16(金) 19:54:55Tが決まってるならIEnumerable<T>にasすればいいし
Tが決まらないならIEnumerableにasしてobjectとして扱えば十分だろ
0933デフォルトの名無しさん
2009/01/16(金) 20:06:20いま、手元に開発環境がないので試せないんですが、
IEnumerable<T>には、IEnumerableだとマッチできないみたいです(総称型じゃないから?)。
用途はといいますと、javaでいうcommons-langのToStringBuilder的なものを自力で実装する必要があって、
配列やコレクションの中身も展開したいな、と。
0934デフォルトの名無しさん
2009/01/16(金) 20:07:53IEnumerable<T>を実装している型のオブジェクトなら例外なく絶対に間違いなくIEnumerableとして扱える
0935デフォルトの名無しさん
2009/01/16(金) 20:12:210936デフォルトの名無しさん
2009/01/16(金) 20:12:350937デフォルトの名無しさん
2009/01/16(金) 20:19:46IEnumerableはIEnumeratorのファクトリ
0938デフォルトの名無しさん
2009/01/16(金) 20:21:49列挙処理にはどこまで読んだかなどの一時的な情報が必要になるわけだけど
そういうのはコレクションそのものとは関係のない属性だからIEnumeratorとして外に括りだしてるわけ
0939デフォルトの名無しさん
2009/01/16(金) 20:23:51>>935
たぶんわかってないのは「IEnumeratorとIEnumerableの違い」じゃなくて
インターフェイスという考え方そのものなんじゃないの?
IEnumeratorもIEnumerableも十分わかりやすいインターフェイスだと思うけど。
0940デフォルトの名無しさん
2009/01/17(土) 21:22:43SetValueにDependencyPropertyKeyを指定すればいいのですが
バインディングターゲットにしたい場合はどうすればいいのでしょうか?
SetBindingにはDependencyPropertyKeyを取るものが見当たりません。
0941デフォルトの名無しさん
2009/01/17(土) 21:33:46= HogePropertyKey.DepdnencyProperty;
0942940
2009/01/17(土) 21:52:11そのDependencyPropertyをバインディングターゲットにすると
読み取り専用の為か"'Hoge' プロパティはデータバウンドにできません。"と例外が起きます。
0943デフォルトの名無しさん
2009/01/17(土) 21:57:130945デフォルトの名無しさん
2009/01/17(土) 22:14:480946940
2009/01/17(土) 22:33:44class A : DependencyObject
{
private static readonly DependencyPropertyKey HogeKey
= DependencyProperty.RegisterReadOnly("Hoge", typeof(string), typeof(A), new PropertyMetadata());
public static readonly DependencyProperty HogeProperty = HogeKey.DependencyProperty;
public A()
{
Binding bind = new Binding("Foo");
bind.Source = B.Instance;
bind.Mode = BindingMode.OneWay;
BindingOperations.SetBinding(this, HogeProperty, bind); // 実行時に例外
}
class B : DependencyObject
{
/* Fooという依存関係プロパティがある */
public static readonly B Instance = new B();
}
0947デフォルトの名無しさん
2009/01/17(土) 22:44:33そのコントロール内でアプリケーションが実行中かデザイナ上かを判断する方法はありませんでしょうか?
0948デフォルトの名無しさん
2009/01/17(土) 22:45:540949デフォルトの名無しさん
2009/01/17(土) 22:57:15ありが�d
0950デフォルトの名無しさん
2009/01/17(土) 23:03:030951デフォルトの名無しさん
2009/01/19(月) 00:15:24uintではじめから定義するのと、intで定義し、プロパティでセットされたときに
例外をスローするのとどちらが一般的でしょうか
当方Javaから10分ほど前に移行してきたばかりなので
符号付整数の浸透度(?)というか使う局面がまだ感覚的に掴めません
0952デフォルトの名無しさん
2009/01/19(月) 00:25:47でも符号なしの型使うのはCLS準拠じゃないんだっけ?
というか、俺なら文字通り「入力」の段階で(つまりUIで)弾くけどな。
もちろんプロパティでも例外投げるなり設定可能な最小値を強制するなりの
処置はするけど。
0953デフォルトの名無しさん
2009/01/19(月) 00:27:270954デフォルトの名無しさん
2009/01/19(月) 00:41:57ありがとうございます
符号付は必要な場合以外は使わないほうがよさそうですね
さっきはじめて、メソッド名が大文字からはじめることにカルチャーギャップを感じているくらいです
また勉強していく中で何かあったらよろしくお願いします
0955デフォルトの名無しさん
2009/01/19(月) 01:18:38数値の範囲を限定するために符号なし整数型を使うというのは論理的じゃないように思う。
0≦x<100とか、-25<x<25だとかの範囲なら、プロパティでset時にチェックするなり、
UIで入力時にチェックするなりするのだから、0≦xの時だけ違う方法を使うことはないだろう。
0956デフォルトの名無しさん
2009/01/19(月) 07:21:08バインディングの方向がおかしい
XAMLで考えたら分かりやすいけど
<B Foo="{Binding Source=A, Path=Hoge}"/>
を実現したいんだろ?
ならBindingのパスはHogeでSourceはA
SetBindingするのはBとB.FooPropertyになる
<A Hoge="{Binding Source=B, Path=Foo}"/>
はA.Hogeが読み取り専用なんだから成り立たない
ModeがOneWayToSourceでもな
0957デフォルトの名無しさん
2009/01/19(月) 08:58:01いや、その逆がやりたいんです。
条件によって、自分でHogeの値を提供したり、Fooの値を変わりに提供したいんです。
Fooの値が変わっても対応できるようにするには、バインディングすれば楽かなと。
HogeKeyを持ってる側ならなんとかできないかな、と。
0958デフォルトの名無しさん
2009/01/19(月) 09:22:40プロパティ変更イベントでやるしかないね
0959デフォルトの名無しさん
2009/01/19(月) 15:25:47Form2からアクセスするにはどうしたら良いのですか?
Form1に
public static Form1 Form1Instance
{
public object dataGridViewCell
{
get
{
return dataGridView1.CurrentCell;
}
set
{
dataGridView1.CurrentCell = value;
}
}
上記のようにすると、Valueの場所で型変換が出来ませんと怒られてしまうのですが・・・
型はObjectではなく何にしたら良いのでしょうか?
0960デフォルトの名無しさん
2009/01/19(月) 15:32:16C++のように Win32APIを叩いて作れますか?
また、VSを使わずに普通のエディタでガリガリ書くのは厳しいですか?
0961デフォルトの名無しさん
2009/01/19(月) 15:39:03怒られついでにvalueの型を教えて貰いなさい
0962デフォルトの名無しさん
2009/01/19(月) 15:42:40> C++のように Win32APIを叩いて作れますか?
> また、VSを使わずに普通のエディタでガリガリ書くのは厳しいですか?
あなたがマゾヒストなら問題ない
0963デフォルトの名無しさん
2009/01/19(月) 15:47:130964デフォルトの名無しさん
2009/01/19(月) 15:50:41コントロールをD&Dで配置するので勉強になるのかな、と思って。
それと畑は違うけど、HTMLなんかはビルダーを使うとソースが滅茶苦茶になりがちなのでその点も心配だったんです。
0965デフォルトの名無しさん
2009/01/19(月) 15:51:380966デフォルトの名無しさん
2009/01/19(月) 15:51:55/⌒ ⌒\ ━━┓┃┃
/(  ̄) (_)\ ┃ ━━━━━━━━
/::::::⌒(__人__)⌒:::: \ ┃ ┃┃┃
| ゝ'゚ ≦ 三 ゚。 ゚ ┛
\ 。≧ 三 ==-
-ァ, ≧=- 。
イレ,、 >三 。゚ ・ ゚
≦`Vヾ ヾ ≧
。゚ /。・イハ 、、 `ミ 。 ゚ 。 ・
0968デフォルトの名無しさん
2009/01/19(月) 15:55:59PetzoldのWindows Formsチュートリアルを読んだことがあるが
まさにVisual Studioを使わずエディタでガリガリ書いていくタイプの本だった
開発効率を気にしないのであれば別に構わないんじゃないか
0969デフォルトの名無しさん
2009/01/19(月) 16:15:31手書きでGUIの配置をしこしこ書きたいなら、WPFやSilverlightをおすすめするよ。
XAML道に精進するのじゃ。
0971デフォルトの名無しさん
2009/01/19(月) 16:35:48もっと他に学ぶべきことはあるからポトペタで十分
むしろポトペタで作られたhoge.Designer.csを見たほうが理解が進む
ボトペタでできたソースと、ホームページビルダーとかWordで作ったHTMLが糞という話は次元が違う
エディタでガリガリなんてお勧めしないね
0972デフォルトの名無しさん
2009/01/19(月) 16:42:26DataGridViewCell.Valueにアクセスしたいんじゃなくって?
0974デフォルトの名無しさん
2009/01/19(月) 21:00:04動的にコントロールを作る必要にかられたらそのとき調べればいい
ただ,基礎が分かってないと調べようがないからね
0975デフォルトの名無しさん
2009/01/19(月) 21:43:58ツールボックス右クリック→アイテムの選択→COMコンポーネント
IE7からshdocvw.dllがieframe.dllに変わったってのを見たんで参照で追加してみようとしたけど
「C:\Windows\System32\ieframe.dll の自己登録に失敗しました。」の表示、ieframeも同様。
どこから追加できるんでしょう?
0976デフォルトの名無しさん
2009/01/19(月) 21:52:320977デフォルトの名無しさん
2009/01/19(月) 22:10:35WebBrowserだとFlashが正しく動かないことがあってaxwebbrowserに切り替えたんです。
で、今試してみたら以前正しく動かなかったFlashが動きました。
.NET3.5で直った?Flash側が対応した?
とりあえずWebBrowserでいってみます。
ただaxWebbrowserの件ご存知の方いましたら返信お願いしますorz
0978960,964
2009/01/19(月) 22:31:16レスありがとうございます。
D&Dでできたソースを信用しても問題ないようですね。
安心して取り掛かれます。(といっても最初はコンソールアプリからですが。
ありがとうございました。
0979デフォルトの名無しさん
2009/01/20(火) 07:58:09何か格好いい方法はありませんか?
自分で考えるとGet何とかAll何とか関数でNetworkInformationの配列を取ってきてループするダサい方法しか思い浮かびません><
0980デフォルトの名無しさん
2009/01/20(火) 19:00:350981デフォルトの名無しさん
2009/01/20(火) 19:17:470982デフォルトの名無しさん
2009/01/20(火) 19:41:36int i;
string txt;
i=982
txt = "レス番号は" + ToString(i) + "です";
↑これエラーが出ます。int型の値を含んでstringの一部にするには
どうすればいいのでしょうか?
0983デフォルトの名無しさん
2009/01/20(火) 19:42:510984デフォルトの名無しさん
2009/01/20(火) 19:44:49ワラタ
0985デフォルトの名無しさん
2009/01/20(火) 19:45:520986デフォルトの名無しさん
2009/01/20(火) 19:49:03i.ToString()
0987デフォルトの名無しさん
2009/01/20(火) 19:49:260988デフォルトの名無しさん
2009/01/20(火) 19:49:46マタハ
txt = "レス番号は" + i.ToString() + "です";
0989デフォルトの名無しさん
2009/01/20(火) 19:50:180990デフォルトの名無しさん
2009/01/20(火) 19:50:520991デフォルトの名無しさん
2009/01/20(火) 19:58:39他のJavaやPHPもいい本なかったけど・・
好奇心をそそって面白く学べるような本があったら教えて欲しい。洋書でもいいから。
なんか、プログラム界の本は全般的に面白みがないんだよな〜。
0992デフォルトの名無しさん
2009/01/20(火) 20:00:13なにが「いい本無いね」、だ
面白みがないんだよな〜ってアホか
0993デフォルトの名無しさん
2009/01/20(火) 20:00:480995デフォルトの名無しさん
2009/01/20(火) 20:03:01ありがとうございました
0996デフォルトの名無しさん
2009/01/20(火) 20:11:210997デフォルトの名無しさん
2009/01/20(火) 20:44:170998デフォルトの名無しさん
2009/01/20(火) 20:52:520999デフォルトの名無しさん
2009/01/20(火) 21:44:49いやだ!アレは絶対「インテリジェンス」だもん。インテリセンスなんて従わないもん。
>>998
String + int にも対応してたんだ、知らなかったw
String + intの時にはint.ToString()して、それ以上の複雑な場合にはString.Formatを毎回使ってた
しかし、演算子がオーバライドされてるだけとはいえ、文字列+数字は型が曖昧なJavascriptっぽくって嫌だなぁw
1000デフォルトの名無しさん
2009/01/20(火) 21:48:03Stringとの+でToStringが呼ばれるのは演算子のオーバーロードじゃなくて言語仕様だったはず
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。