- 1 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 18:13:21 ]
- このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 ふらっとC#,C♯,C#(初心者用) Part55 pc12.2ch.net/test/read.cgi/tech/1265288563/1 関連スレ C#, C♯, C#相談室 Part55(実質56) pc12.2ch.net/test/read.cgi/tech/1260111240/1 VB.NET質問スレ(Part33) pc12.2ch.net/test/read.cgi/tech/1263738929/1 C++/CLI part3 pc12.2ch.net/test/read.cgi/tech/1206447234/1
- 313 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 22:33:01 ]
- 不変値なフォルダパスって一般的ではない気がする
アプリケーション構成ファイルとかに書かない?
- 314 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 23:06:31 ]
- >>311
重い処理するならUIをブロックしないように非同期にする
- 315 名前:デフォルトの名無しさん [2010/03/07(日) 23:15:35 ]
- >>314
それしかないんですね・・・ ありがとうございます。
- 316 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 23:37:28 ]
- >>315
おお
- 317 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 23:48:31 ]
- (´・ω・`) ………あ!
- 318 名前:デフォルトの名無しさん [2010/03/08(月) 05:53:43 ]
- Foo f=new Foo();
f.Run(); と Foo f=new Foo(); Thread t= new Thread(new ThreadStart(f.Run)); t.Start(); t.join(); はほぼ同じ動きをすると考えていいですよね? 後者にするとすごく遅くなるんですけど これは余計なことやってるからだけなんでしょうか?
- 319 名前:デフォルトの名無しさん [2010/03/08(月) 08:26:13 ]
- 5月とかまた先延ばしにしたな
- 320 名前:デフォルトの名無しさん [2010/03/08(月) 08:29:09 ]
- >>313
プロジェクトプロパティの リソースや、設定っていうタブのことですか?
- 321 名前:デフォルトの名無しさん [2010/03/08(月) 11:19:46 ]
- すいません、この画像のフォームコントロールの名前がわかりません。
誰か教えてください。 よろしくお願いします。 www.dotup.org/uploda/www.dotup.org709383.jpg
- 322 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 11:22:12 ]
- リストビューだろ。
- 323 名前:デフォルトの名無しさん [2010/03/08(月) 11:25:19 ]
- ありがとうございます!!
- 324 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 12:14:15 ]
- >>320
そう 主に設定の方
- 325 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 12:17:34 ]
- おれは app.config に出して、ConfigurationManager で読み出し、かな。
- 326 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:04:56 ]
- >>324
あれってよくわからんが、自分でapp.configとかいう名前のファイル作って そこに書きだすのとどう違うんだ?
- 327 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:48:13 ]
- C#使っててPythonのが楽なときってある?
デスクトップアプリで
- 328 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:52:05 ]
- >>326
色々あるけど機能としては IDEが自動的に型指定されたプロパティとしてSettings.名前でアクセスできるラップクラスSettingsを用意してくれる ユーザースコープの方はSettings.Default.Saveで簡単に保存できる とか 自分もこういう基礎的な部分以外は使わんから詳しくないけど アプリケーション設定でもapp.configを使うんだけど 普通直接app.configに値を埋め込む場合は普通configuration/appSettingsを使うのに対して configuration/configSections/sectionGroupを使って別ツリーに書き出す
- 329 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 17:40:09 ]
- Dictionaryのキーだけ保持したようなクラスありますか?
- 330 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 17:46:39 ]
- HashSet<T>
- 331 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 17:49:54 ]
- HashSet<T>がそれですか。
ありがとう。
- 332 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 17:50:34 ]
- というか、集合(set)を実現したいというならちゃんとそう説明しないと、
Dictionary<TKey, TValue>.KeyCollection とか答えちゃうぞ
- 333 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 17:58:00 ]
- >>332
一般的な呼び方がわからなかったので329のように書きましたが 以降はそうさせてもらいます。
- 334 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 20:11:54 ]
- ロギングについて質問です。
例外発生時にエラーログを出力したいのですが、 後で統計などを取るためにプログラムから読みやすい形を考えています。 ただし、バイナリはNGにしたいと思います。 独自のErrorクラスを作って、その配列をXmlSerializerや SoapFormatterでSerializeというのを考えたのですが、 こういう手法というのは一般的に見てどうでしょうか。 書き込むのにDeserialize→配列に追加→Serializeという手順になるので、 パフォーマンス上は不利だとは思いますが、 試しに3MB位までログ容量を増やしても体感上は遅延は感じませんでした。 本番運用では100KB以内で収まる程度だとは思います。
- 335 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 20:13:02 ]
- 専用のTraceSourceというクラスを使う
XMLにも出力できる
- 336 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 20:15:52 ]
- >>327
ないね かなり小さいコードでもインテリセンスに頼った方が早かったりする スクリプト言語はコンパイルが不要なことに意義がある
- 337 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 20:17:05 ]
- log4netとか使っちゃうな。
- 338 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 20:37:42 ]
- sage
- 339 名前:334 mailto:sage [2010/03/08(月) 20:39:59 ]
- >>335,337
ありがとうございます。調べてみます。
- 340 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 10:10:21 ]
- >>337
あれ結構便利だとは思うけど やれる事が多いだけに設定がめんどくせぇ・・・ 俺の中では設定ファイルの中身グチャグチャにされるイメージがでかいかな・・ 今は必要な機能だけ持った独自のログ機能自作して使ってるわ
- 341 名前:デフォルトの名無しさん [2010/03/09(火) 12:45:06 ]
- bmpのファイルのロックを解除する方法を教えてください。
WPFでjpg画像を読み込んでいます。 BitmapImage bmp = new BitmapImage(); bmp.BeginInit(); bmp.UriSource = new Uri(fileName); bmp.CacheOption = BitmapCacheOption.OnLoad; bmp.EndInit(); これで、jpgが壊れているときに、 bmp.EndInit(); でエラーになります。 そこで、これ全体をtry-catchして、エラーが出たらDisposeしようと考えました。 catch{ bmp.Dispose(); Close(); } としたのですが、bmpにはDispose()が見当たりません。 どうやってDisposeして終了したらよいでしょう? WPF掲示板は初心者の質問には答えていただけないようなので、 こちらに来ました。 よろしくお願いします。
- 342 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:46:49 ]
- 最近この板でキモいC#信者が暴走してるから自重するように
- 343 名前:デフォルトの名無しさん [2010/03/09(火) 12:59:43 ]
- >>341
以前とあるソフト書いたときはこんな感じにしたな FileStream fs = new FileStream(save,FileMode.Open); b = new Bitmap(fs); fs.Close(); fs.Dispose(); これだと自分でdiposeできるのでロックがかかったままにならない どこかにこれはあったはず(@ITあたりにサンプルコードあったはず)
- 344 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 13:03:42 ]
- >>343
それSystem.Drawingや、と まあWPFでも同じ回避方法になるね UriSourceじゃなくてStreamSourceを使う ていうかこれはバグだなー
- 345 名前:デフォルトの名無しさん [2010/03/09(火) 13:04:37 ]
- >>341
StreamSource 考え方は>>343
- 346 名前:デフォルトの名無しさん [2010/03/09(火) 13:06:27 ]
- >>344
バグというか仕様というか仕様考慮漏れというか GCをあてにする言語なんでこういう仕様も許容範囲かと コード書く側でまったく対処できないなら問題だけどね
- 347 名前:デフォルトの名無しさん [2010/03/09(火) 13:10:12 ]
- >>343の補足
saveってのはこの前のロジックの都合でそうなってるだけで fileNameとか自分の環境にあったのに書き換えてね
- 348 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 13:13:34 ]
- >>346
いや、内部でStream作ってるんだからそれを例外時にCloseしないのは問題でしょ 「using使えよ」的な話 ストリームをCloseしたときに例外が出たって状況ではないんだから
- 349 名前:デフォルトの名無しさん [2010/03/09(火) 14:03:42 ]
- >みなさんありがとうございます。
が、下記のコードで、画像が表示されなくなりました。 読み込めていないようです。 どこがまずいでしょう? BitmapImage bmp = new BitmapImage(); try{ //FileStream fs = new FileStream(fileName, FileMode.Open); //bmp = new BitmapImage(); //fs.Close(); //fs.Dispose(); bmp.BeginInit(); //bmp.UriSource = new Uri(fileName); bmp.StreamSource = new FileStream(fileName, FileMode.Open); bmp.CacheOption = BitmapCacheOption.OnLoad; bmp.StreamSource.Close(); bmp.StreamSource.Dispose(); bmp.EndInit(); }catch{ Close(); }
- 350 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 14:07:09 ]
- EndInitする前にCloseしたらそりゃダメだろ…
あとCloseとかDisposeとかは明示的に呼ぶんじゃなくてusing構文で
- 351 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 14:15:21 ]
- なんでusingという名前にしたんだろうな?まぎらわしい( ・ω・)y─┛〜〜
- 352 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 14:20:25 ]
- 正常な場合はCloseしちゃだめ。
基本的にオープンの状態を維持して読み直せるようにしないといけない。
- 353 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 14:23:59 ]
- >>352
BitmapCacheOption.OnLoadの場合ロード時=EndInit時にデータを全部メモリにコピーしちゃうから 元Streamがどうなろうがしったこっちゃないよ
- 354 名前:デフォルトの名無しさん [2010/03/09(火) 14:25:28 ]
- その辺うまく使いこなせないならMemoryStreamで読み込みできるように
自分でメモリに上げちゃえばいいんじゃないの?
- 355 名前:デフォルトの名無しさん [2010/03/09(火) 14:54:55 ]
- >みなさんありがとうございます。
bmp.EndInit(); bmp.StreamSource.Close(); bmp.StreamSource.Dispose(); と順番を変更してうまくいきました。 ありがとうございました。
- 356 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:15:28 ]
- 配列に入っている値の符合をプラスから全部マイナスにしたいんだけど、簡単に出来る方法はないですか?
もちろんループをつかって全部−1を掛け算すればいいんだけど、ビット演算とかで簡単にできないかなーと思って
- 357 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:17:21 ]
- ループが一番簡単だろ
- 358 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:27:46 ]
- 最近は2の補数とかやらないのか・・・
- 359 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:29:03 ]
- それ以前に配列なんだからループ以外にどうしろと
- 360 名前:デフォルトの名無しさん [2010/03/09(火) 15:30:25 ]
- >>356
int32の場合だと-1かけるっていうのは0xFFFFFFFFをかけるってことだけど 素直に計算したほうがいいんじゃないの? 参考までに 1*-1は0x00000001*0xFFFFFFFF=0xFFFFFFFF 2*-1は0x00000002*0xFFFFFFFF=0xFFFFFFFE 以下略 余計なシフト演算するくらいなら掛け算したほうがいい気がする
- 361 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:30:56 ]
- 意地でもループを使わずなんとかするって方向ですか?
- 362 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:46:54 ]
- うん、ループ怖いし
- 363 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:51:38 ]
- >>362
じゃあ、再帰使え
- 364 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:51:42 ]
- -1 をかけるって、実際にはループの中で a[i] = -a[i]; だろ。
これより高速な方法なんてある?
- 365 名前:デフォルトの名無しさん [2010/03/09(火) 15:54:32 ]
- x86だと命令を繰り返すための命令もあったけど
そういうのを除けばすでに言語はあまり関係ないよな・・・
- 366 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:01:42 ]
- そんなもん数万回やってやっとms単位の差が分かる程度だろ。意味ない。
- 367 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:16:50 ]
- どうしてもループしたくないならこういう感じで行けるんじゃないかな
int[] val = new int[10]; var tmp = from n in val select n * -1; var minus = tmp.ToArray();
- 368 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:18:30 ]
- それ結局ループしてね?
- 369 名前:デフォルトの名無しさん [2010/03/09(火) 16:19:48 ]
- だから言語は関係なくてループを書かないってのはできないんじゃね?といってる
再帰でやるほどでもないだろうし
- 370 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:22:48 ]
- できんこたないだろ
a[0] = -a[0]; a[1] = -a[1]; ・・・ さあ全部書くんだ
- 371 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:24:50 ]
- 手段のためなら目的は選ばない
- 372 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:25:00 ]
- 完全にネタ化してきたな
- 373 名前:デフォルトの名無しさん [2010/03/09(火) 16:29:22 ]
- >>372
まあネタだよね 釣りともいうかも
- 374 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:36:21 ]
- SSEとかそういうの使えばループ無しで出来るんじゃね?
Cとかアセンブラの域になるが。
- 375 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:40:37 ]
- 無限ループって怖くね?
- 376 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:54:25 ]
- えッ!?
- 377 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:59:23 ]
- メッセージループは無限ループだから怖い
- 378 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:18:06 ]
- まぁその程度の事で難しく考えるより
単純でミスがないような後々わかりやすいコードのが大事だろ
- 379 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 18:05:45 ]
- >>349
今更だけど、FileStream.Close()ってDispose呼ぶだけだから、 CloseとDisposeの両方を呼ぶ必要はなく、片方1つで十分のはず。
- 380 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 18:16:11 ]
- >>379
MSDNには「Disposeのtrueと同じ」って書いてあったから ちょっと違うのかもと思ってた
- 381 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 18:25:00 ]
- >>380
Dispose()はDispose(true)をよんでいる。
- 382 名前:デフォルトの名無しさん [2010/03/09(火) 18:59:18 ]
- Stream系は全部using使わないと開放漏れが気になっちゃう
- 383 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 21:11:15 ]
- 解放漏れよりも更新されなくて嵌まることがある
- 384 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 21:49:10 ]
- そーいえば、SmtpClient と MailMessage で添付ファイル付きのメールを送ったときに、
添付ファイルとしていたローカルファイルを削除できなくて悩んだことがあったな。w この時初めて Dispose の重要性を実感した。
- 385 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:21:55 ]
- マネージDllに記述したメソッドの説明などに使う///コメントが、Dllを使うプロジェクトで参照できません。
どうやったら参照できるようになりますか。
- 386 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:25:03 ]
- プロジェクトのプロパティ→ビルド→XMLドキュメントファイル
プロジェクト参照じゃなくてdllをそのまま配布する場合は必ず生成されたxmlファイルも一緒に
- 387 名前:デフォルトの名無しさん [2010/03/09(火) 23:32:07 ]
- XmlSerializerを使ってDeserializeするクラスの中に配列があった場合はうまくいかないのかな?
- 388 名前:387 [2010/03/09(火) 23:47:58 ]
- 自己解決しました・・・
- 389 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:07:21 ]
- 死ね
- 390 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:15:45 ]
- どうやって解決したか書かない子はほんと自決して欲しい
- 391 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:18:27 ]
- >>390
いやです
- 392 名前:デフォルトの名無しさん [2010/03/10(水) 00:27:11 ]
- >>391
勝手に応えるなw >>390 ケアレスミスでしたw
- 393 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 00:28:53 ]
- >>392
いやです
- 394 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 01:51:09 ]
- 一度覚えたら忘れにくい言語ないですか?
- 395 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 01:52:31 ]
- 日本語
- 396 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 02:05:49 ]
- listview.items[].subitems[].text
↑長い ↓こんな感じにできたらいいのに listview.items[](str,str,str,str)
- 397 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 02:07:27 ]
- >>396
っ 拡張メソッド
- 398 名前:デフォルトの名無しさん [2010/03/10(水) 13:43:09 ]
- IDisposableの正しい実装方法おしえてちょ
- 399 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:02:56 ]
- string型をKeys列挙型に変換する書き方がわかりません。
下のような変換をするにはどのように書けばいいですか? string "J" → Keys.J string "Divide" → Keys.Divide string "NumPad2" → Keys.NumPad2
- 400 名前:デフォルトの名無しさん [2010/03/10(水) 15:34:09 ]
- スレッドセーフについて教えてください
@private static List<string> sampleList = new List<string>();として 同じクラス内の以下のスレッドを同時に実行します スレッド1はsampleListに要素を一つずつaddして追加 スレッド2もsampleListに要素を一つずつaddして追加 スレッド3はsampleListの先頭の要素を取得後、RemoveAt(0)で削除 この場合はSynchronizedは必要ですか? Aprivate static int n1;として 2つの同時進行のスレッドからn1の値を変えたりする場合は Interlockedが必要ですか? Bprivate static int n1;として スレッド1からはn1の値を変更するが、スレッド2からは参照するだけ ならばInterlockedは必要ないですか? よろしくお願いします
- 401 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:35:43 ]
- >>399
(Keys)Enum.Parse(typeof(Keys), "NumPad2", false);
- 402 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:46:53 ]
- 書き換えてる途中に参照しようとしたらどうする?
- 403 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:47:21 ]
- >>401
できました。ありがとうございます! 他にも色々使えそうなので更に勉強してきます。
- 404 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 15:58:59 ]
- 途中ってなんだよw
- 405 名前:400 mailto:sage [2010/03/10(水) 16:05:14 ]
- >>402
ありがとうございます。 Bの場合もInterlockedしておいた方がいいという事ですね。。。 もう一つだけ教えてください。 msdn.microsoft.com/ja-jp/library/6sh2ey19(VS.80).aspxに スレッド セーフ この型の public static (Visual Basic では Shared) メンバは、スレッド セーフです。 と記載せれているのですが、これはSynchronizedが必要ないという意味ですか?
- 406 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 16:37:15 ]
- >>405
>この型の public static (Visual Basic では Shared) メンバは、スレッド セーフです。 >すべてのインスタンス メンバがスレッド セーフになるかどうかは保証されていません。 いらないよ 逆にCountプロパティとかその辺はセーフかどうかなんて保証されてないってこった >コレクションが変更されない限り、List では、複数の読み込み操作が同時に発生しても問題ありません。 コレクションの列挙処理は、本質的にはスレッド セーフな処理ではありません。 まれに 1 つ以上の書き込みアクセスによって列挙処理で競合が発生する場合、確実にスレッド セーフにするには、列挙処理が完了するまでコレクションをロックします。 コレクションに対し複数のスレッドがアクセスして読み取りや書き込みを行うことができるようにするには、独自に同期化を実装する必要があります。 と書いてあるがこれ読めば参照時にもロックかけるべきかどうかは判断つくと思うんだけど
- 407 名前:400 mailto:sage [2010/03/10(水) 17:01:26 ]
- >>406
ありがとうございます まとめると、Listをスレッドセーフで使うには ・public static以外はSynchronizedが必要 ・For EachやCountプロパティ等を使用する時はロックが必要 ということでいいのかな。 助かりました、サンクス。
- 408 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:46:47 ]
- List<T>などのジェネリックコレクションにSynchronizedはない
常にロックが必要
- 409 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:32:29 ]
- Form1のボタンを押すと、Form2のテキストボックスにテキストを移すのってどうすればいいですかね?
DOBONさんのTipsを見て Form2 f = new Form2(); f.ShowDialog(this); f.Dispose(); な感じでForm2をForm1に所有させてやってるんですが 他にやり方とかないでしょうか?
- 410 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:39:31 ]
- >>409
クリップボードを中継する
- 411 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:42:07 ]
- >>409
それでできるのに何が問題なのかが 重要なんだと思うが・・・・
- 412 名前:デフォルトの名無しさん [2010/03/10(水) 19:42:12 ]
- 同じ説明をしたなあ
Form2にアクセス用の関数を作って公開する
- 413 名前:デフォルトの名無しさん [2010/03/10(水) 20:09:20 ]
- ボタンとテキストボックスは自分で配置してくれ
Form1.cs codepad.org/8UBu8se8 Form2.cs codepad.org/ErnDt7Yc
|

|