[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 04/25 05:23 / Filesize : 221 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっとC#,C♯,C#(初心者用) Part84



1 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 03:09:38.91 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっとC#,C♯,C#(初心者用) Part83
toro.2ch.net/test/read.cgi/tech/1325511769/

■関連スレ
C#, C♯, C#相談室 Part69
toro.2ch.net/test/read.cgi/tech/1323354868/
ミスターサタンのC#相談室 
hibari.2ch.net/test/read.cgi/tech/1092656075/
VB.NET質問スレ(Part38)
toro.2ch.net/test/read.cgi/tech/1325083428/
くだすれC++/CLI(初心者用)part2
hibari.2ch.net/test/read.cgi/tech/1268613679/

2 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 03:10:19.04 ]
■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
ideone.com/
pastebin.com/
コードを貼り付けてrun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます

3 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 03:34:25.33 ]
>>1


4 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 17:02:22.90 ]
>>1
乙であります

5 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 18:41:24.55 ]
やっと構造体の使い方がわかった。みなさんありがとう。

6 名前:デフォルトの名無しさん [2012/01/17(火) 19:32:57.79 ]
FileSystemWatcher で 監視先をローカルの "c:\Test" に設定したところ、
ファイルの変更検知できるのは確認できました。

しかし、監視先のパスを別マシン (OS:WindowsServer2008)上の共有フォルダ
"\\ServerName\Test" に変更したところ、エラーはいっさい出なかったのですが、
ファイル変更を検知できませんでした。

また同様にネットワークドライブとして、"\\ServerName\Test" を "z:\" に
割り当て、監視先を "z:\" にした場合も検知できませんでした。

どうすれば、別マシン(ファイルサーバー)にある
ファイルの変更を検知できるようになるのでしょうか?

7 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 20:02:06.55 ]
>FileSystemWatcher.InternalBufferSize プロパティ
>バッファ サイズを大きくすることで、ファイル システム変更イベントの見落としを予防できます

msdn.microsoft.com/ja-jp/library/system.io.filesystemwatcher.internalbuffersize%28v=vs.80%29.aspx

ためしに大きくしてみたら

8 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 20:05:48.01 ]
ついでに

>イベントを見落とさないために、次のガイドラインに従ってください。
>*InternalBufferSize プロパティを使用してバッファ サイズを大きくすることで、
>ファイル システム変更イベントの見落としを予防できます。
>*ロング ファイル名を使ってウォッチすることは避けます。短い名前に変更することを検討してください。
>*イベントの処理コードをできるだけ短くします。

9 名前:デフォルトの名無しさん [2012/01/17(火) 20:24:35.15 ]
最近C# 製のツールをよく見かけるようになったな

10 名前:デフォルトの名無しさん [2012/01/17(火) 20:27:10.41 ]
Phalanger 3.0 (2012年1月) をリリースしました。
awabi.2ch.net/test/read.cgi/poverty/1326781620/




11 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 20:31:28.88 ]
??演算子ってnull「結合」?「合体」??1万年と2千年前から???

12 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 20:42:24.44 ]
>?? 演算子は、左側のオペランドが null 値でない場合にはこのオペランドを返し、
>null 値である場合には右側のオペランドを返します。

msdn.microsoft.com/ja-jp/library/ms173224%28v=vs.80%29.aspx

13 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 21:19:18.58 ]
>>7 >>8
バッファサイズ相当大きくしても変化なしです。
ネットワーク越しでも普通にイベント発生してるんですかね?


14 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 21:47:01.03 ]
>ローカル コンピューター、ネットワーク ドライブ、またはリモート コンピューターのファイルをウォッチするコンポーネントを作成できます。

この記述が嘘でなければ発生してるはずだが…

15 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 21:47:18.83 ]
実はMSDN見ながら答えてるだけで実際に使ったことはないんだyo
特にネットワーク越しで使用するときの注意点とか書いてないから
イベントは発生してると思うんだけどね

>バッファサイズ相当大きくしても変化なし

>バッファーは 4 KB 以上に設定できますが、64 KB 以下である必要があります。
>InternalBufferSize プロパティを 4,096 バイト未満に設定しようとした場合、
>値は破棄され、InternalBufferSize プロパティは 4,096 バイトに設定されます。
>最適なパフォーマンスを得るには、Intel ベースのコンピューターでは 4 KB の倍数を使用します。

らしいけど「64Kb以下かつ4Kbの倍数」になってる?

16 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 22:11:24.76 ]
Windows7 32bitの共有フォルダを
Windows7 64bitのZ:\に割り当てて監視したけど検知できるなぁ
InternalBufferSizeはデフォのまま。

17 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 22:47:40.55 ]
>>12
VS2010版にはnull合体演算子って書いてあるがな…

18 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 22:50:46.66 ]
C#を始めて間もないので、クソみたいな質問ですが、答えてくれると嬉しいです。

Form1がメインウィンドウでForm2が設定画面、という形式のツールを作ってます。
Form2ではListviewを使って設定を管理しているのですが、
Form2を閉じたときにForm1にListviewの中身を送りたいです。
Form1でそれを設定として読み込んで、別の処理をさせたいのです。

フォーム間でのデータの受け渡しのサンプルはいくつかあったのですが、
配列を送るにはどのような形で実装したらいいでしょうか?
クラスを作って送るのが良いのかなと思いましたが、
クラス自体まだよく分かってないのです。

できればサンプルコードが載ってるページとかあると嬉しいです。

19 名前:デフォルトの名無しさん [2012/01/17(火) 22:54:26.32 ]
そういうのは直接オブジェクトを送ったりしないで分離しちゃった方が複雑にならないと思う
設定を持つクラスをシングルトンで共有するとか、いったんファイルに書きだして
それを改めて読み込むとか

20 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 22:57:41.77 ]
public static class Setting {
. publid static Data[] Data;
}
みたいなの作ればいい



21 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 23:01:49.37 ]
モーダルダイアログならForm2.GetResultメソッドでも書いてみれば
そこで配列化して返せばいいでしょ

22 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 23:02:07.45 ]
・設定値だけを保持するクラスを用意する
・Form1は設定クラスにデータバインド
・Form2を作る時に設定クラスのインスタンスを渡す
・Form2はインスタンスをコピーして、そちらを変更する
・Form2でOKや適用が押された場合、設定値を最初に渡されたForm1の設定インスタンスに反映する

て感じでINotifyCollectionChangedを使うといいよ(ニッコリ

23 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 23:04:14.57 ]
class Form2 : Form {
. public Data[] Data;
. ...
}
みたいにメンバ変数を宣言。
Form1 クラスで、
void button1_Clicked(object sender, EventArg e) {
. var dialog = new Form2();
. dialog.ShowDialog();
. Console.WriteLine(dialog.Data);
}

24 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 23:24:21.49 ]
>>19-23
うおお、短時間でこんなにw
本当にありがとうございます。
皆様レスを頼りになんとか頑張ってみます。

25 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 23:31:33.95 ]
そのものズバリのチュートリアル
チュートリアル : オブジェクトによるダイアログ ボックス情報の一括取得
msdn.microsoft.com/ja-jp/library/cakx2hdw.aspx
躓いたら、また質問するがよろしアル。

26 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 23:39:47.41 ]
>>15 あ、64KB超えてたかもしれません。
ひょっとすると、送信できるサイズの上限超えてたから、
イベントが送信されてなかったのかな?

特に例外発生していなかったから、見落としてたが、
バッファから溢れた場合もエラー吐いてなかったし、
不適切なサイズを指定した場合もひょっとして例外は発生しないのか?。

いまは実行できる環境にいないので、とりあえず明日試してみます。

27 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 23:45:27.82 ]
試せてないが、ひょっとすると解決したかも。
social.msdn.microsoft.com/Forums/ja/netfxgeneralja/thread/3674b121-0be5-432e-a5c4-9e64f9565e49
おそらくバッファサイズが原因の可能性が高いです。

これで、今日はゆっくりと眠れそうです。
みなさん、本当にありがとうございました。

28 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 10:00:02.32 ]
>>25
いつも思うけど全く読みたくなくなるチュートリアルは誰のためにあるんだろ
MSは現状把握してるのか

29 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 10:04:43.61 ]
MSの中の人は賢い奴ばかりだから俺らの知的レベルなんてわからんよ。

30 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 12:30:00.73 ]
getdirectoriesでフォルダを列挙する際にアクセス拒否のフォルダがあった場合
そのフォルダを無視して作業を続行するにはどうすればよいでしょうか?

以前ここでtry-catchを使えと言われたんですが

string[] subFolders = System.IO.Directory.GetDirectories(
@"C:\test", "*", System.IO.SearchOption.AllDirectories);

このような場合どうすればいいんでしょうか



31 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 12:50:40.35 ]
2010Express を使ってるんだけど、これって条件付きブレークポイントは使えないんでしたっけ?
前のバージョンだとブレークポイントを示す赤い玉の上で右クリックで条件を設定するウィンドウが出たような気が。

32 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 13:28:49.01 ]
C++だったんじゃね?

33 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 13:57:38.49 ]
>>30
そこまで操作するならDirectoryInfoクラス使うべきだよ
そっち使って色々試してみたらいい

34 名前:デフォルトの名無しさん [2012/01/18(水) 14:31:55.79 ]
pastebin.com/7jQBN7ei
このサンプルは反変性の例として妥当なんでしょうか。
自分の頭では、派生クラスを基本クラス型に渡しているので、共変性のように思えます。

引用元はここです。
code.msdn.microsoft.com/windowsdesktop/11-covariance-contravarianc-ef078691#02

35 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 15:39:10.70 ]
C#ではenumがintじゃない。
では普通は何を使うものなのでしょう?

36 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 15:42:48.01 ]
enumはenumだよ

37 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 16:24:40.04 ]
>>35
独立した型。
内部ではintとして扱かわれていることが多いけど

38 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 16:32:58.50 ]
なんでそれをここで聞くんだろう。

39 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 17:12:00.12 ]
>>35
名前付き識別子。
enumを定義するとクラス同様に型として認識されるので、内部の扱いがintであっても別物になる。
でも、bit演算に応用したりもできる。

40 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 17:17:08.54 ]
しかしEnum自身はクラスなんだよな
言語仕様的に本当にそれで良いのか?



41 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 17:49:46.70 ]
CIL的に、プリミティブな数値、配列、列挙型は特別扱いされてるからなぁ。
C# 以前の問題。

42 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 17:50:14.00 ]
Enumはクラスかもしれないが
値は定数だろ

43 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 18:15:15.62 ]
失礼します。
C++で作成されたdllにポインタを渡したいのですが

[StructLayout(LayoutKind.Sequential]
public struct hoge
{
Public UInt32 aaa;
Public Uin64 bbb;
Public IntPtr ccc;
(その他配列等色々)
}

で宣言された構造体のポインタのポインタを渡すにはどうしたら良いのでしょうか?

C++の関数宣言は
ret hage(hoge** test);
ですが、C#で ret hage(ref hoge test);ではtestの先頭にアドレスっぽい値が入っていました。
さらにtestも配列なので、少し混乱しています。(構造体の配列のポインタのポインタ 構造体の中にも配列やポインタ有り)

ttp://oshiete.goo.ne.jp/qa/2119623.html
を参考にしようとしてみましたが、hoge* testと書くとマネージ型のアドレスの取得は出来ませんと出てしまいます。

よろしくお願いします。

44 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 18:22:21.31 ]
配列に入れて配列をrefで渡せばいいんじゃないの
ret hage(ref hoge[] test);

45 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 18:32:24.61 ]
それもやってみたのですがC#で、
hoge[] test = new hoge[10];と宣言し
ret = hage(ref hoge test);
とやると、ここでtry〜catchすらすっとばして関数を無理矢理終了させてしまいます。(エラー表示は一切無し)

46 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 18:46:28.26 ]
そのtestって出力なのか?入力なのか?両方か?

47 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 19:00:37.77 ]
出力です。
outでもやってみましたが、結果は同じで先頭だけnullから数値に変わってました。

48 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 19:01:10.84 ]
[*hoge, *hoge, *hoge, *hoge]
C++が要求しているもの

*[hoge, hoge, hoge, hoge]
>>44の浅知恵

unsafeかGCHandleでIntPtrを配列に入れてしまうのが手っ取り早いんではないか

49 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 19:04:50.00 ]
hogeがクラスならhage(hoge[] test)で問題ない気がするが
構造体使ってるのは何か意味があるか?

50 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 19:07:17.08 ]
意味とか考えちゃ駄目だ



51 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 19:18:43.52 ]
StructLayoutは構造体にしか使えないと勘違いしていた時期が私にはあった。

52 名前:43 mailto:sage [2012/01/18(水) 19:20:08.52 ]
hogeが画像データだからです。
構造体の中のポインタが画素値で、整数値がパラメータです。
画像を複数枚扱うので、hogeも配列になっています。

C++の要求がhoge** testなので、枚数分ループしていますが
unsafe hoge* testを行うとマネージ型のアドレスは取得出来ませんと表示され、
hoge[]test と書くとtryすら無視して関数を終了してしまうのが現在の状態です。

53 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 19:31:44.56 ]
画像データだから構造体ってのはちょっと理屈が通ってない気がする

54 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 19:31:55.13 ]
フォームにMenuStripをおきました
そしたら「ここへ入力」ってところがあったのでファイルって書きました
入力した所をクリックするとサブメニューが出てきたのでそこに終了って書きました
これで終了を押すとプログラムを終了するだけのプログラムを作ろうと思ってます
そこで終了をダブルクリックしたらForm1.csに以下のように
private void 終了CToolStripMenuItem_Click(object sender, EventArgs e)
{

}
ってコードの中に日本語がまじってしまうんですが(終了CToolStripMenuItem_Clickの部分)
これって問題はないのですか?
メニューを作るときってこういうものとして思えばいいですか?

55 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 19:35:24.35 ]
文法的な問題はない
やってる人がいるかって言われると100人に1人よりは少ないと思う

56 名前:43 [2012/01/18(水) 19:41:37.44 ]
すいません、確かに画像データだからと言って構造体である必要はないですね。

ttp://d.hatena.ne.jp/Schima/20090512/1242139542
を参考に
int sz = Marshal.SizeOf(test[i]);
IntPtr ptr = Marshal.AllocHGlobal(sz);
Marshal.StructureToPtr(test[i], ptr, false);
res = hage(ref ptr);
と、やってみましたがダメでした。

57 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 19:50:17.85 ]
場当たり的にやってると1ヶ月かかるぞ

ret = hage(IntPtr[] test);

まずこれでどうぞ
IntPtrの配列にhogeを1個1個収めたまえ

58 名前:デフォルトの名無しさん [2012/01/18(水) 19:53:03.63 ]
unsafe static ret hage(hoge** test);と宣言して
hoge[] buf = new hoge[枚数];
fixed (hoge* pBuf = buf) {
hoge* temp = pBuf;
hage(&temp);
}
とかじゃないの
どうせやってることが既に安全じゃないからunsafeでいいよ

59 名前:58 mailto:sage [2012/01/18(水) 19:55:44.48 ]
すまん>>58は勘違い
なんか意味ないことやってるな

60 名前:デフォルトの名無しさん [2012/01/18(水) 20:04:55.46 ]
俺の知人のタマキンが下痢で
今日も部屋に篭ってAVで射精してる



61 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 20:10:44.61 ]
こうかな
hoge[] a = new hoge[枚数];
fixed (hoge* pa = a) {
hoge*[] b = new hoge*[枚数];
for (int i = 0; i < 枚数; i++) b[i] = pa + i;
fixed (hoge** pb = b) { hage(pb); }
}

62 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 20:40:39.64 ]
そのうち画像は取れたんですが何度か画像取ってるうちに
重くなってハングアップしてしまいます
なぜでしょうかという質問が来るのではないか?

63 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 21:05:54.32 ]
>>28
昔からヘルプの使いやすさはボーランド(エンバカデロに開発部門売却前のね)
情報量はMSってのは言われてたな


64 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 21:26:44.59 ]
summaryの書き方を教えてください
例えば以下のような場合はなんて書きますか?

private void test(string str)
{
this.abc = str + "@@@@@";
}

65 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 21:28:10.12 ]
/// <summary>
/// 知らねーよ
/// </summary>

66 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 21:31:08.15 ]
初心者なので試しに空のプロジェクトから作っているのですが、
フォームアプリの時に自動でできるprogram.csという項目は後から追加するにはどうやればいいですか?

67 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 21:35:19.65 ]
>>64
それじゃ「テスト用」以上の何も書けない。

68 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 21:38:11.45 ]
ファイラーをつくりたいのですが
名前でソート、更新日時でソートなどをする場合はlistboxとかlistviewとかありますが何をつかうのでしょうか?

69 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 21:50:15.78 ]
Datagrid

70 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 22:25:51.57 ]


ステマ相関図画像更新(1/17)
gazo.restspace.jp/img-box/img20120117010742.jpg
テレビや新聞、大規模なネットサイトで「今流行の」「今話題の〜」「女性に人気の〜」等と言われるものはほぼ全て
この画像上部、○○堂がコントロールしている。
  ・世間にどの程度流行らせるか
  ・流行に乗り遅れる(流行に乗り遅れさせる)人間をどのくらい作るか
  ・話題に乗り遅れた人間に対してどの程度の疎外感を与えるか
  ・いつその流行を終わらせるか
2chもステマ会場
www.dotup.org/uploda/www.dotup.org2526030.jpg

ちなみに ハリーポッターと賢者の石の 「石」とはテレビのこと(著者が執筆当時)
 ダイオード→半導体→シリコン→石
 賢者とはテレビを見る人間でも番組を作る人間でもなく、テレビを操る人間。




71 名前:43 mailto:sage [2012/01/18(水) 22:42:23.27 ]
>>57
シンプルなのが一番ですよね。
ちょっと試してみます。

>>61
fixedで確保しながらやるのも良さそうですね、ありがとうございます。

>>62
とりあえず、メモリリークだけは無いよう気をつけます。

72 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 23:28:40.92 ]
指定したファイルの「種類」を取得する方法を教えてください
「種類」とはエクスプローラにあるやつです
a.txtだったら「テキストファイル」
b.chmだったら「コンパイルされた HTML ヘルプ ファイル」
というのです

73 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 23:38:31.11 ]
ヒントttp://d.hatena.ne.jp/IIJIMAS/20101022/1287680305

74 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 23:42:00.72 ]
>>64
必ずsummaryを書く
/// <summary>
/// 何かを行います。
/// </summary>

引数がある場合、インデクサの場合はparamを付ける
paramにはseeで型へのリンクを付けとく
/// <param name="str">
/// 何かを表す<see cref="T:System.String" />。
/// </param>

戻り値がある場合はreturns
// /// <returns>戻り値の説明です。</returns>

プロパティの場合はvalueを書く
// /// <value>プロパティの説明です。</value>

あと発生する可能性のある例外を列挙する
// /// <exception cref="T:System.Exception">気が向いた場合。</exception>

ジェネリックならtypeparamとかも要る

75 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 00:09:49.97 ]
>>43
遅レスだが
out IntPtr hogePtr
で受けとって、Marshal.PtrToStructureでいいんじゃないの?

76 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 00:19:25.66 ]
>>66
普通に Program.cs って名前のソースコードを追加するだけ。(名前は何でもいいけど)
ソリューションエクスプローラーから今作成しているプロジェクト名の項目を
左クリックして追加 -> クラス

Program.cs には Main メソッド (エントリーポイント) があるだけで、
他のソースファイルと違うところ(設定とか)は特にないよ。
ソースの中身はいつも自動で作成されているコードを書けばいい。

Main メソッドには [STAThread] ってのをつけておかないと
フォームアプリは動作しないからつけること。(コンパイルエラーが出ると思う)

77 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 00:22:07.04 ]
>>74
わかりやすい解説です
ありがとうございます

78 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 00:24:36.92 ]
>>69
listviewでやってしまいました

79 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 02:54:00.78 ]
大丈夫だ問題ない。

80 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 04:35:52.42 ]
>>72
SHGetFileInfo + SHGFI_TYPENAME



81 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 10:26:33.57 ]
C#のウォッチ式は型指定のみのようですが、
C++みたいにポインタの参照先の値を見るにはどうすれば良いのでしょうか?

例)void* hoge;
C++のウォッチ式:(int*)hoge,50
(とりあえずint型にして50個表示させてみる)

よろしくお願いします。

82 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 10:41:41.41 ]
イミディエイトウィンドウ

83 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 11:08:33.33 ]
ポインタなんてc++と連動させる時以外使うなよ

84 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 12:40:14.45 ]
このスレで質問してばかりなのでプログラミングC# 第6版を買おうと思うのですが、入門書は既に独習C#を持っています。
買う意味ありますかね?ウェブよりわかりやすいというレビューがありますがステマでしょうか?

85 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 12:46:33.59 ]
books.google.co.jp/books?id=e0EnOz3BdEkC&printsec=frontcover&dq=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0C%23&hl=ja&sa=X&ei=lJEXT8DtL43ImQXu-LWzAw&ved=0CDsQ6AEwAA#v=onepage&q&f=false
ここで4版がちょっと見れる

86 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 12:53:48.16 ]
>>85
ありがとうございます。情報量とわかりやすさがかなり上だと思うので買います。
俺、ステマみうたいだな。

87 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 13:45:26.83 ]
ButtonにImageを設定してSizeを設定しました。Imageはきっちり正方形で、Sizeもそれにあわせて
正方形です。具体的にはImageが32x32でボタンが38x38。またAutoSizeはFalseで、DockはNoneです。
開発したPC(Win7)だと意図通りに正方形のボタンが表示されますが、別のPC(Win7)で実行したところ
Imageの両脇に数ピクセルの余白は表示されてやや長方形のボタンになってしまいます。
AutoSizeがTrueだとImageだけのときなら大丈夫ですが、テキストも可変で重ねるためその対処はとれません。
なにか原因と対策こころあたりありませんか?

88 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 16:43:38.54 ]
TabControll内の特定のTabPageの中にButtonやらLabelやらlistviewを置いているのですが
このTabPageを tabControl1.TabPages.RemoveAt(3);みたいに消した場合って中に配置したコントロールも全て削除されているのでしょうか?


89 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 17:03:52.45 ]
削除って曖昧だな
コントロールのツリーから消えてることは間違いないが
メモリから消えているかとは別問題だ

90 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 17:29:35.31 ]
親のコントロールが消えても一緒に消えるってわけじゃないんですね
念のためそれぞれ指定して消すようにします



91 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 17:30:53.74 ]
Labelをコード内から動的に生成しているのですが
ラベルの一番最後のやつのTextを変更したいのですが
一番最後のラベルにアクセスする方法を教えてください

92 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 17:32:48.12 ]
生成するたびにフィールドにもっておけばいいだろが

93 名前:88 mailto:sage [2012/01/19(木) 19:39:48.81 ]
一応タブを消した後にlistviewにアクセスできるか試してみたいとおもったんですが
こう書くとそもそもタブは消えてるのでアクセスできません
テストできる方法を伝授してください
if (null != tabControl1.TabPages[5].Controls["listView1"])
{
MessageBox.Show("true");
}
else
{
MessageBox.Show("false");
}


94 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 19:58:03.15 ]
機嫌がいいからスーパーヒントくれてやるよ

ListView lv = tabControl1.TabPages[5].Controls["listView1"];

95 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 20:41:14.46 ]
>>93
答から言えば中のコントロールのDisposeメソッドは呼ばれない
ただ、どこからも参照されていなければGCによって破棄される
アンマネージリソースをフレームワークが知らない形で持っていたらリークするが
それもプロセスが終了する時点で解放される

96 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 21:24:45.50 ]
部品のプロパティをメソッドの中で何回も呼び出して使う場合は変数に入れたほうが効率が良いものですか?
label1.Textだったら毎回label1.Textって呼び出すよりも
string label = label1.Textって感じで変数にいれたほうがよいとかありますか?

97 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 21:27:04.84 ]
呼び出しに時間がかかるならそうだし
時間がかからないならそうでもない

普遍な答えはない

98 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 21:37:15.50 ]
参照を辿るコストって考えたことないがどのくらいなんだろう

99 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 22:20:16.48 ]
>>98
そんなもん全く全然関係ない
Textプロパティのgetアクセサがどう実装されてるかによる

100 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 22:22:55.88 ]
>>94
ListView lv = (ListView)tabControl1.TabPages[0].Controls["listView0"];
if (null != lv)
{
MessageBox.Show("true");
}
else
{
MessageBox.Show("false");
}
って書いてTabPage[0]のタブを消してから実行したらfalseになりました
でもこれもtabControl1.TabPages[0]が消してからなのでlistViewが消えていrかどうかは分かりません

>>95
タブにlistviewを表示するだけなのでタブを消した時点でkistviewも破棄されたとみなしていいのですね
念のためコントロールを削除するようにするのがバグを生まないのかもしれないので手動で削除するようにします



101 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:51:36.61 ]
>>100
listViewをどこで宣言したかによる。
デザイナーで追加したコントロールならフォーム閉じるまで残ってる。
メソッドのスコープで宣言して追加したコントロールなら>>95の言うようにCG対象になる。

102 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 00:16:25.14 ]
>>100
フォームには予めデザイナーでTabControllのみ置いてあり
tabPageとlistViewはコードの中で生成してます
なのでtabPageを削除したらlistViewも勝手に削除されるってことでしょうか

と、ここでトラブルに遭遇したのですが
動的にtabPageとlistViewを5つ作成すると、tabPageは左からインデックス0〜4までになります。
ここでインデックス2のtabPageを削除すると、削除したtabPageから右側のtabPageのインデックスが変わってしまいます。
インデックス3のものが2に、インデックス4のものが3になるってことです。
tabPageとlistViewを作るとき
ListView lv = new ListView();
lv.Name = "listView" + (tabControl1.TabCount - 1).ToString();
といった感じでtabPageを追加したときのインデックスをlistViewにつけて作成しているので
インデックスが狂うとlistViewへアクセス(※後でプロパティを変更するときなど)できなくなってしまいます
これの解決法をアドバイスお願いします

103 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 00:39:03.42 ]
その追加方法ならTabPages.Controlsの中にはListView1個しかないわけだろ

for (int i=0; i<TabPages.Controls.Count; i++) {
if (TabPages.Controls[i] is ListView) {
ListView lv = TabPages.Controls[i];
}
}

とでもやって探せばいいだろが

104 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 06:15:25.14 ]
iOSのようなスクロールをさせたいのですがどういうロジックに
すればいいでしょうか?

105 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 07:05:27.41 ]
すみません。できました。

106 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 09:58:18.43 ]
>>103

0,1,2,3,4 tabPageのインデックス
0,1,2,3,4 listViewのNameのお尻につく番号(listView0、 listView1・・・)

ここでtabPageのインデックス2を消す

0,1,2,3 tabPageのインデックス
0,1,3,4 listViewのNameのお尻につく番号(listView0、 listView1・・・)

ここで新たにtabPageを追加する

0,1,2,3,4 tabPageのインデックス
0,1,3,4,4 listViewのNameのお尻につく番号(listView0、 listView1・・・)

同じ名前を持ったlistView(インデックス3・4のlistView4)が出来てしまいます


107 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 10:13:08.83 ]
名前ぐらい自分で変更しろよ

108 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 10:30:40.91 ]
その設計が腐ってるんだろ
インデックスとかそれを含んだName文字列なんてタコなものじゃなくて他のidentifierで管理しようよ

109 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 10:32:08.00 ]
tabpagesをグローバルなコレクションにいれておけばいい

110 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 10:33:08.77 ]
>>106
c#以前の問題だなw


問題
複数あるものにそれぞれ一意の番号(被らない番号)をつけるにはどうしたらいいか?



111 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 10:49:44.21 ]
一郎二郎三郎四朗さん四兄弟がいました
不幸なことに病気で二郎さんが亡くなりました

そのあとまた男の子が生まれました
子供を数えると三人いました

そこで四人目の子供に四朗と名付けました
結果として兄弟に二人の四朗がいます

ありえないだろ?

112 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 11:22:31.47 ]
>>107-111
Nameにランダムな文字列をつけてみました
これでインデックスを気にしなくてよくなりましたがこれでいいのでしょうか?

113 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 11:27:15.26 ]
名前がかぶってソフトがフリーズする未来が見えた

114 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 11:51:31.58 ]
ちょうど今俺が、ソフトを2回起動するとWindows7がフリーズして悩んでいるところだw

115 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 12:25:11.02 ]
もうGUIDでも使えよw

116 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 12:34:29.99 ]
>>112
誰がランダムな文字列つけてみろと言った?
人の話を聞かない奴に質問する権利はない
一人で一生悩め

117 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 17:47:56.29 ]
スレッドを使い方を勉強したいため、1秒毎にフォームタイトルをtickで書き換えたいのですが
「有効ではないスレッド間の操作: コントロールが作成されたスレッド以外のスレッドからコントロール 'Form1' がアクセスされました」
というエラーが出てしまいます。どなたかご教示お願いします
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Thread t1 = new Thread(new ThreadStart(TextChanger));
t1.Start();
}
private void TextChanger()
{
Text = new DateTime().Ticks.ToString();
Thread.Sleep(1000);
}
}
}

118 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 17:49:33.32 ]
Invoke

119 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 18:10:12.21 ]
そのエラーをググレ場言い発でわかる

120 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 18:26:20.53 ]
あと、そのコードだとエラーがでなくても
Sleep(1000)したあとにそのスレッドが終了するゾ



121 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 19:15:22.21 ]
これを解決するのもスレッドの勉強じゃないかしら

122 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 19:33:34.73 ]
今後直接Thread使う機会ってあるのかね

123 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 19:45:48.03 ]
C#ではThread直接使うとむしろ性能的に良くないけども、
少し古い情報とか、他の言語の情報で、非同期処理=スレッドって認識できちゃってる人多いしねぇ。
どうしたもんか。

124 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:19:30.14 ]
黒歴史

125 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:28:25.25 ]
>>115
GUIDでランダムな文字列を作ってます
>>116
配列にするとメモリ食いませんか

126 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:34:55.11 ]
LOL

127 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:37:43.29 ]
ListView1個配置するだけでその100倍メモリくっとるがな
気にするポイントがずれてる
目の付け所がシャープじゃない!

128 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:40:02.23 ]
何故Nameで管理してはダメで配列で管理をしないといけないのか分かりません

129 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:42:05.81 ]
貴方がNameで管理しててトラブったということは
貴方が使うには手に余るってことでしょう

130 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:42:34.93 ]
Dictionary<Guid, ListView>



131 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:44:33.18 ]
TabPage.Tagにでも入れとけとは誰も言ってくれないんだな。

132 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:45:01.27 ]
Tagはオワコン

133 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:45:54.34 ]
え〜だってこの質問者なら「こんな便利なものがあるんですね!ありがとうございます!」と言ってくれそうな気がするよ

134 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:48:22.67 ]
まぁGuidで解決したんならいいんじゃないの
それで

135 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:48:32.12 ]
>>129
インデックスを元にNameをつけていましたがそれをランダムな文字列を元にしたらできましたが
この方法が何故ダメだという理由が知りたいだけです
別に私は配列を教えてくれた方の人格を攻撃しているわけでもないので

136 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:51:35.49 ]
そのGuidで生成した名前はどこかに取ってあるわけだろ?
なぜそこにListViewを代入しておくという発想にならないんだろうか。

137 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:53:50.42 ]
>>135
メモリを食うのが嫌なんだろ?
だったら配列にすべきだ

138 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:54:43.12 ]
ほら、一箇所にまとめておかないと無くしちゃうだろ?
無くしちゃったらガベコレ来るまで破棄できなくてメモリの無駄でしょ?

139 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:57:39.36 ]
メモリの無駄だから死んで

140 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 22:03:43.73 ]
お前らイジメすぎだぞ!ここは初心者スレなんだから優しくしろよ



141 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 22:06:06.25 ]
このやろう!!!!!!!!!!!!!!
難しくてよくわかんねえよっ!!!!!!!!!!!!!!!!!!

142 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 22:09:02.55 ]
メモリの無駄だから「!」は一つにしてくれ
Lisperも括弧を節約するように

143 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 22:14:26.02 ]
>>142
コンパイル時に消えるような小手先の最適化は好むべきではないと考えます。

144 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 23:11:59.68 ]
javaみたく === が輸入されてきたりしないよな?

145 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 23:17:03.67 ]
>>135
インデックスを元にNameつけないで全部同じ"listView"ってNameにすればいい。

146 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 23:19:01.86 ]
GUIDの生成はメモリ食いませんか

すべてのNameにGUIDみたいな長い文字列を設定するとメモリ食いませんか

147 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 23:22:57.05 ]
>>145
おいおいそうするとかぶっちゃうじゃん

148 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 23:31:58.46 ]
GUIDは128bit

149 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 23:33:25.54 ]
>>147
おそらく、>>93に書いてあるみたいに
>tabControl1.TabPages[5].Controls["listView1"]
っていう風に名前指定で取りたいだけだと思うから、タブページ内でかぶらなければ問題ないんじゃない?
listViewはコード中で生成しているみたいだし。( >>102 )

150 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 00:13:11.28 ]
千七百九十六郎 二百五郎 二万五千とんで三郎 九十八万四千八百九十一郎の兄弟がいました…



151 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 00:18:52.96 ]
>>125
おい誰も配列にしろなんて言ってないだろ

>>111の件をまじめに考えてみろ
なんで普通は被らない名前つけてるか?

152 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 00:45:41.38 ]
>>151
>なんで普通は被らない名前つけてるか?
誰宛?

153 名前:152 mailto:sage [2012/01/21(土) 00:47:48.33 ]
ごめん勘違いしてた。忘れて。

154 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 01:55:22.36 ]
自作のクラスでエラーが発生した時に呼び出したところでエラーを受け取る際のエラー番号や説明を定義する方法を教えて
(戻り値は別の結果を受け取るために使いたいので使えません)

155 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 02:00:38.76 ]
public class HogeException : Exception {
public HogeException(string message) : base(message) { }
}
エラーを起こしたい場所で
throw new HogeException("Hogeに失敗しました。");

156 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 10:38:20.12 ]
>>154
例外のクラスを自作したらいい

誰かが上に書いたクラスや
c# 例外 自作あたりでググって出てくるクラスに
自由にフィールドやプロパティやメソッド追加したらいい

tech.bbtune.com/csharp/items/4-24.html

157 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 10:38:30.22 ]
>>149
同じ名前のコントロールって使えたっけ?

158 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 11:15:53.18 ]
>>157
名前って何いってんの?
Nameプロパティのことだぞ?

159 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 11:16:36.14 ]
>>158
Nameプロパティってユニークなものじゃないといけないんじゃないの?
学校でそう習ったけどさ

160 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 11:34:34.22 ]
二重起動を禁止してコマンドライン引数を取得するで

www.k4.dion.ne.jp/~anis7742/codevault/00050.html

ここまでは理解できたんですがここからForm1で取得した引数を処理するにはどうすればよいでしょうか

関連付けされたファイルが開かれた場合二重起動をしないで既存のプロセスで開くようにしたいのです



161 名前:160 mailto:sage [2012/01/21(土) 11:48:06.64 ]
Form1のRefresh()でForm1_Loadを再読み込みすることでできたっぽいですが
何か問題ありますでしょうか

162 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 11:52:33.40 ]
>>159
コンテナごとにユニークじゃないとControlCollection.Item[string]で取得できないってだけじゃね
Nameでコントロール特定しようとか糞なことしなければどう使っても問題ない

>>160
問題ないけど
VB系の機能を持ち込むのは気持ち悪いという問題が……

163 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 12:43:50.55 ]
しかしWCFは(このスレのレベルでは)難しいかも

164 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 12:48:14.05 ]
msdn.microsoft.com/ja-jp/library/system.icloneable.clone.aspx
に書いてあるColumnHeaderのコピーの方法を教えてください

ColumnHeader[] columnHeader1 = { column1, column2 };
ColumnHeader[] columnHeader2 = = (ColumnHeader[])columnHeader1.Clone();
listView1.Columns.AddRange(columnHeader1); // ここの行をコメントアウトすると例外がでない
listView2.Columns.AddRange(columnHeader2);
ってやると例外が出ます↓
複数の場所にアイテム '名前' を追加または挿入することはできません。最初に現在の場所から削除するか、複製を作成しなければなりません。


165 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 12:50:10.62 ]
そうか?
ttp://d.hatena.ne.jp/SuZu/20100712/1278954402

166 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 12:55:35.30 ]
ColumnHeader[] columnHeader1 = { column1, column2 };
ColumnHeader[] columnHeader2 = { (ColumnHeader)column1.Clone(), (ColumnHeader)column2.Clone() }

配列に対してCloneを呼んだ場合は「配列が」コピーされる
中身はコピーされていない

167 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 12:57:41.30 ]
>>164
今使ってるのはこれだ

Array.Clone メソッド

>Array の簡易コピーでは、要素が参照型であるか値型であるかに関係なく、
>その Array の要素だけがコピーされ、それらの参照が指している先のオブジェクトはコピーされません。

>新しい Array 内の参照は、元の Array 内の参照と同じオブジェクトを指します。

>対照的に、Array の詳細コピーでは、要素自体および要素が直接的または間接的に参照するすべての対象がコピーされます。

msdn.microsoft.com/ja-jp/library/system.array.clone(v=VS.80).aspx

168 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 13:18:22.95 ]
Hashtable threadpool = new Hashtable();
(略)
lock (threadpool){
 if (threadpool[name] == null) {
  threadpool[name] = new Array();
 }
 threadpool[name].Add(thread);
}
ってな感じでnullチェックをしているのですが、Addでぬるぽで落ちる場合が
あって困っています。
threadpool[name]は別スレッドで用済みになったときにnullにしています。
なのでその対策としてlockしているつもりなのですが、どうやら使い方を
間違えているようです。正しくはどうすべきなのでしょうか?

169 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 13:24:07.79 ]
”別スレッドで用済みになったときにnullにして”いる時にもlockをしてるか?

170 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 13:26:58.56 ]
ArrayにAddなんてないのにAddしてるのも奇怪
あと.NETのバージョン2.0以上ならDictionary使えよ



171 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 13:30:40.69 ]
.net2.0から使えるディレクトリやファイル一覧の取得メソッド
.net4.0から使えるディレクトリやファイル一覧の取得メソッドあるじゃないですか
やっぱり.net4.0から使えるメソッドのほうが早いのでしょうか?

172 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 13:31:50.40 ]
>>169


173 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 13:33:04.43 ]
>>169
してないっす。ありがとうございます。

>>170
記憶をたどって書いたのでArrayじゃなかったかもしれないです。


174 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 13:33:04.22 ]
>>166
>>167
おおそうだったんですか!勉強になりました!ありがとうございました

175 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 13:33:57.61 ]
>>171
そんなこと気にしなくていい

176 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 13:36:07.01 ]
>>171
手が付いてるなら自分で測ればいい。
ここで適当な答えを返されたとしても、自分で確かめないのならお前はそれを信じるしかないんだぞ。

答えてやるよ。
.NET4.0の方が早い。

177 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 13:49:37.06 ]
だって図り方がわからないんです

178 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 13:51:02.73 ]
じゃあ気にしなくていいよ

179 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 14:11:58.14 ]
"msdn.microsoft.com/ja-jp/library/system.windows.forms.listviewitem(v=vs.80).aspx"の
new ListViewItem("item1",0);の第二引数の0って何の意味があるのでしょうか?

180 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 14:22:08.72 ]
msdn.microsoft.com/ja-jp/library/79kywsae%28v=vs.100%29.aspx
項目が格納されている ListView に関連付けられた ImageList 内のイメージの 0 から始まるインデックス。

って書いてあるじゃん
読めないの?



181 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 14:35:15.69 ]
ListViewとImageListの関係については>>179が提示したURLにモロに書いてある
分からないとか抜かした場合、自分で提示したURLすらよく確認していないと証明しているようなものだ
本当に死んだほうがいい

182 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 15:00:09.78 ]
このスレに来て、かれこれ12回は死んでますわ

183 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 15:07:12.20 ]
>>171
ぶっちゃけていうと、

2.0→全部列挙しちゃう
4.0→途中で止めれる

もともと全部列挙するつもりならどちらも同じ

184 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 15:17:43.39 ]
private T obj;
public void A() { obj.DoSomething(); }
public void B() { obj = new T(); }
クラスにこのようなメソッドがあり、AとBは異なるスレッドから不規則に何度も実行されます。
この場合、Bで代入中にAが実行されて不完全な参照を使ってしまう、とかあり得ますか。
lockを使うべきでしょうか。objもvolatileにしたほうがいいですか?

185 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 15:26:43.23 ]
参照の代入はアトミックだっけ?
longは違うよね確か

186 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 15:36:10.55 ]
>>183
分かりやすいです
勉強になりました

187 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 15:41:39.08 ]
string[] directories = Directory.GetDirectories(@"C:\");
これだとsystem volume informationなどのシステム属性や画し属性も取得してしまうので
FileInfo fileinfo = new FileInfo(dir);
if ((fileinfo.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden){
}
な感じで減らしたいのですがどう書けばよいのでしょうか?

188 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 15:55:05.17 ]
>>187
msdn.microsoft.com/ja-jp/library/29kt2zfk.aspx
Directoryクラスの下にDirectoryInfoクラスってのがあるけど見える?
もしかすると文盲で見えない可能性があるから一応聞いておくよ

189 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 16:04:18.66 ]
え?

190 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 16:04:36.18 ]
スレタイくらい読め
答えられる頭のない奴は黙ってたほうがいいよ



191 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 16:10:13.29 ]
制限しながら取得する方法はない、はず。

192 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 16:16:18.99 ]
てめえの足りない脳みそで黙らせて見ろよアホ

193 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 16:19:25.15 ]
さっきからいちいち一言多い妙な人に構わなくていいですからね。
忠告しましたよ。
忠告されても構うのは犬畜生のすることですよ。

194 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 16:23:12.43 ]
忠犬は死ぬまで言いつけを守ったのだから畜生と並べたら失礼

195 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 17:21:14.09 ]
WebResponseとhttpWebResponse
どう使い分けたらいいんだろう?
WebResponseは普通使わないでhttpWebResponse使っとけばいいのかな?

196 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 17:29:42.38 ]
使い分けるって、別にHttpWebResponseにだけあるメソッドやプロパティを使いたい場合は
そちらにするしかないし、そうでないならWebResponseのままでいい。
それだけ。

197 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 18:01:25.71 ]
ウィンドウの左上にアイコンがありますけど
そこを右クリックするてメニューがでますが
そこに自分でメニューを追加したいのですが
どのようにしたらいいでしょうか?

198 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 18:03:25.22 ]
>>197
cs2ch.blog123.fc2.com/blog-entry-80.html

199 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 18:15:25.17 ]
>>198
ありがとうございます
ためしてみます

200 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 22:28:35.82 ]
警告 1 フィールド 'hoge.Form1.IsHoge' は割り当てられていますが、その値が使用されていません。
C:\Projects\hoge\hoge\Form1.cs hoge

public partial class Form1 : Form {
bool IsHoge=false;
private void btn1_Click(object sender, EventArgs e){IsHoge = true;}
使ってるのに使用されて無いって・・・この警告どうやって消すんだろうか、
使ってるぶんには不具合無いのですが気になってます。
何が原因ですか?



201 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 22:33:00.33 ]
よく考えようよ
使ってないだろ?それ
代入しててもどこからもその値が使われてないから無意味だと言ってくれてるんだよ
privateだからフォームの外からアクセスされることもない

202 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 22:34:09.64 ]
そのまんま、代入だけで、使ってないから。
バインディングかなんかで外に公開したいならprotectedかpublicで。

203 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 22:42:07.92 ]
>>155-156
どうもありがとう^^
これから試してみます。

204 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 23:02:50.35 ]
>>200
#pragma warning disable 169
bool IsHoge=false;
#pragma warning restore 169

普通は必要ないけどこういう対処も出来る

205 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 23:27:47.33 ]
初心者にそんな場当たり的なこと教えたら駄目。臭いものにフタしただけで、問題の解決になってない。

206 名前:200 [2012/01/22(日) 01:20:56.71 ]
なら、クリックイベント内If(IsHoge!=false){IsHoge = true;}ではどうだ?
と使っても警告消えませんでした。降参です。結局Publicにしました。
Form1のフォームの中で宣言したプライベートな変数フィールドで
Form1のClickイベントの中で使っているつもりなのですが、まだ理解できてません。

207 名前:200 [2012/01/22(日) 01:23:00.72 ]
あ、ナニをトチ狂ったのか==だ。疲れてるわ。スマソ。

208 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 01:59:04.05 ]
>>206
まあ、早い話、お前の頭よりコンパイラのほうが頭がよい、そういうことだ。

209 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 04:31:09.51 ]
そんなことが理由にpublicにする、は正しく臭いものにフタな対応ですね

210 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 04:46:55.71 ]
日本語がおk



211 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 09:21:31.89 ]
結局使ってないんだろ
だったら消せよ

212 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 10:07:21.62 ]
横からだけれど、判らん。使ってるじゃん。

213 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 10:53:28.93 ]
そもそも if (真偽値) 〜
の()の中で if (真偽値 == false) がおかしいと感じないのかね。
if ((真偽値 == false) == true) はどうだ?

214 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 11:03:44.58 ]
intParseとTryParseの使い分けがわかりません
例外が出ないTryParseだけ使えばいいと思うんですけどintParseの使いどころってどういうときなんですかね

215 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 11:05:38.59 ]
>>206
ん?それなら消えないか?

216 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 11:06:59.16 ]
へ?

217 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 11:08:47.88 ]
確実にIntが得られると判ってる場合。不確実ならtry

218 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 11:22:02.43 ]
それだったら最初からTryParseで統一しておけば予期せぬ不具合にも対応できると思うんですが

219 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 11:25:09.11 ]
例外というものの存在意義に対する問いですな

220 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 11:35:19.14 ]
hoge.Value = Int32.Parse(x);

int a;
Int32.TryParse(x, out a);
hoge.Value = a;
とか冗長じゃん?
UIでxのバリデーション済みならxが変換できないのは例外で表現した方が自然って考えもある



221 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 11:40:20.51 ]
VC#2010 ExpressでC#でフォームプログラムを勉強中です
Formの部品をいじくるときはForm1.csにコードを書かないと出来ないので
Form1.csのコード量が多くなってしまいます
そこで新しくクラスファイルを作って部品別にコードを別けて見やすく管理したいのですが
これはどのようにできますか?

222 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 11:41:38.47 ]
例えば(x, y)って文字列をPointに変換する場合、まず正規表現でマッチさせるだろ?
xとyのパターンが確実にintに変換できるようなものであれば、Parseで充分になる

逆にParseに失敗するのはプログラミングミスだから例外等でブレークさせないといけないし、
そこにTryParseを使わせて追加のコードを書かせるのも馬鹿らしい、だからParseは用意されてるんだよ

>>220
UIでバリデーションしてるのならstringで渡すなよ…

223 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 11:42:41.95 ]
>>221
メニューのプロジェクトからクラスの追加

224 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 11:43:25.12 ]
>>221
ユーザーコントロール

225 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 11:45:16.45 ]
>>223
クラスの追加まではできるのですが、その作ったクラスからFormの部品がいじれないのです。。。

226 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 11:46:05.75 ]
>>221
始めたばかりのころに別掲示板でほぼ同じ質問をしたことがあったよ。w
>>224 を支持。

227 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 11:49:05.05 ]
>>225
クラスにForm渡せばいいけどそういうコード書くとオタになぶり殺しに会う

どうせデリゲートやラムダ式使えないんだろ?

228 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 11:49:13.11 ]
コントロールのプロパティで修飾子とかそんな項目があって、privateになっていると思うからinternalだかAssermblyだかに変えれば余所から触れる
ただあまり良い方法ではない

229 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 11:56:00.87 ]
>>224
ソリュージョンエクスプローラーから追加でユーザーコントロールを入れたら

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace FormTest16
{
public partial class FormGaibuClass1 : UserControl
{
public FormGaibuClass1()
{
InitializeComponent();
}
}
}
ってここまでできましたのでここまで報告にきました


230 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 11:58:47.94 ]
>>226
ユーザーコントロールっていうのがいいのですね、わかりました
>>227
Form1 form1 = new Form1()みたいな書き方はいけないってことですかね?わかりました
デリゲートってなんですか?ってレベルです
ラムダ式の書き方もC#では分かりません
すみません
>>228
こういう方法もあるのですね
何故これは良くないのでしょうか?



231 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 12:07:02.30 ]
>>230
>Form1 form1 = new Form1()みたいな書き方はいけない

じゃなくて追加したクラスにメソッドなどでthisを渡してしまうこと
pythonではよくやる

232 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 13:01:18.28 ]
自作クラスを作ったのですが、エラーがあってインスタンスを作る前にreturnした場合にその後に呼び出す
Disposeメソッドを実行するとインスタンスオブジェクトが設定されていないというエラーが出るのですが、
インスタンスの中身を確認する方法を教えてください。
今↓のように書いてみましたがこれではダメですよね?

private System.Drawing.Bitmap bmp;


public void Dispose()
{
try
{
bmp.Dispose();
}
catch
{
}
}

233 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 13:10:03.37 ]
if(bmp != null)
{
  bmp.Dispose();
  bmp=null;
}

234 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 13:22:41.67 ]
出来ました。ありがとうございます。

235 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 13:52:06.83 ]
度々すみません
ユーザーコントロールの動かし方を確認するためにフォームのtextBox1のTextを変更したいのですが
書き方がわかりません

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace FormTest16
{
public partial class FormGaibuClass1 : UserControl
{
public FormGaibuClass1()
{
InitializeComponent();
}

public void textBox1Change(){
this.textBox1.Text ="変更されました";
}

}
}

236 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:00:49.68 ]
>>229
Form1.csとは別に新しいクラスを作って↓みたいにすることでも分けて書くことはできますが
この書き方のthisがダメということでしょうか?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace FormTest16
{
public partial class Form1 : Form
{
public void textBox1Change()
{
this.textBox1.Text = "てすt";
}
}
}

237 名前:236 mailto:sage [2012/01/22(日) 14:01:22.20 ]
アンカーミス
>>231先生宛

238 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:03:35.61 ]
>>236
そのまますすめてりゃ、1ヶ月後くらいにあーこのことかとわかるよたぶん

239 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:03:50.64 ]
本読むなりwebの初心者向け解説を読むなりして基礎を勉強しろよ

240 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:08:50.97 ]
まだ文法が把握できてないんなら、大人しく1ファイルで勉強しようよ



241 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:10:01.22 ]
>>236
それは新しいクラスじゃないよ
partial 宣言して同じクラスを分割しただけ

242 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:19:55.56 ]
>>238-241
少しずつ勉強していきます
ちなみにpartialでファイルを分けて各方法はお勧めできますか?


243 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:21:42.02 ]
private void Test(string text, TextBox textbox){
textbox.Text = text;
}

Test("サンプル", textBox1);
のようにコントロールを渡す方法はやめたほうが良いでしょうか?

244 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:25:32.88 ]
>>243
コントロールを渡すのなら最初にプライベート変数にでも入れておいて
毎回渡すのは何の意味もないよ

245 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:26:33.54 ]
Form1.designer.csの中身見てご覧
partial class Form1が既に存在してるよね?

246 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:30:34.34 ]
>>245
あります
public partial class Form1 : Formというのは
新しいファイルにいくらでも書けると認識しているのですが間違いですか?

247 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:33:36.32 ]
>>244
textBox1からtextBox10まであるのですが
処理によって使うtextBoxを分けてますが実行するときは同じフィールドを使います
この様な場合でもプライベートに全部変数に入れるべきですか?
private TextBox textbox1 = textBox1
(略)
private TextBox textbox10 = textBox10



248 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:45:06.12 ]
partialって極端な言い方をすればコードジェネレータのための機能だろう
自分で使う機会なんてほぼない
partialで分割するほど肥大化したらクラスの役割を見直した方がいい
複数人で編集する時に競合を避けることはできるかもしれない
だが、どこか不測に機能を追加されるよりはコミットログを残してマージすべきだと思う
ほとんどのSCMはファイルベースだから履歴が追いにくくなる

249 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:45:30.88 ]
子フォームで値を取得し子フォームのボタンを押す

親フォームで値を受け取りそのままイベント発生

というようなことは可能でしょうか?

ググるキーワードもわからず困っています

250 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:46:09.27 ]
>>247
クラス側のフィールドはフォームの入力項目の数だけ作るんだよ
あとTextBoxじゃなくてstringとかintのような実際のデータに即した型に変えて、TextChangedイベントとかで値を随時更新してやるようにする



251 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:47:34.14 ]
>>247
自分なら配列に入れるかな…

252 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:47:41.38 ]
>>249
C# フォーム データ 受け渡し

253 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:50:17.75 ]
>>249
子フォームに適当なイベントを追加
子フォームのボタンクリックで、追加したイベントを呼び出しておく
親フォームで子フォームを呼び出す前にイベントハンドラを登録
子フォームを表示

254 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 14:57:02.09 ]
partialで何個でもファイル作れるケドも・・・
他人が見たらForm1に書いてあるのか、別ファイルに書いてあるのかどこに書いてあるのかわからないのは勘弁
処理するクラスと表示するFormと分けた方がいい

255 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 15:22:56.85 ]
アプリケーションが終了するときの特定の処理がしたいときがあります
このように書くらしいのですが何故Application_ApplicationExitが呼ばれたらイベントを削除しないといけないのでしょうか?
アプリケーションを終了するから消す必要はないと思うのですが何故でしょうか?
またこの終了時にイベントを発生させるのはVC#のプロパティウィンドウにはないのですがこのように手書きでコードを入れるしかないのですか?
private void Form1_Load(object sender, EventArgs e)
{
Application.ApplicationExit += new EventHandler(Application_ApplicationExit);
}

private void Application_ApplicationExit(object sender, EventArgs e)
{
MessageBox.Show("アプリケーションが終了されます。");
Application.ApplicationExit -= new EventHandler(Application_ApplicationExit);
}


256 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 15:28:39.20 ]
>>184 は結局、lockを使わなくても問題ないということでよろしいでしょうか。

257 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 15:32:25.10 ]
>>255
初耳だな
どこに書いてあった?

258 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 15:34:52.72 ]
>>257
ttp://dobon.net/vb/dotnet/programing/applicationstart.htmlに書いてありました

259 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 15:46:35.36 ]
>>256
このスレのPart79に32bit以下のサイズの値型と参照型の読み取りと書き込みはアトミックだと書いてあったので、多分大丈夫
多分ね

260 名前:デフォルトの名無しさん [2012/01/22(日) 16:00:03.87 ]
>>258
別のイベントはダメなの?
dobon.net/vb/dotnet/form/unloadmode.html



261 名前:デフォルトの名無しさん [2012/01/22(日) 16:08:47.24 ]
awabi.2ch.net/test/read.cgi/poverty/1327050821/3

262 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 16:21:49.10 ]
メソッドは機能ごとに分けないで
意味ごとに分けたほうがいいんじゃないの?

263 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 16:35:22.30 ]
>>260
FormClosedというプロパティがありました
これでやってみたいと思います
ありがとうございます

264 名前:200 mailto:sage [2012/01/22(日) 16:36:55.58 ]
もうとっくに忘れられているであろう>>200ですが、F6キー押したら消えました。問題解決♪

265 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 16:39:46.53 ]
そういう問題じゃないけどなw

266 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 17:17:16.09 ]
TcpListenerとTcpClientを使ってチャットを作りたいんですが、インターネット経由で待機してるサーバーに接続しようとすると「対象のコンピュータによって拒否されたため接続できません」と例外が投げられてしまいます。

ローカルネットワーク内では問題なく接続できたので、ルータのポートを開放してみましたが同様です。

ポート開放が上手く行ってないのか、プログラムがまずいのか、どう思われますか?



267 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 17:21:55.50 ]
構造体は型として扱えばいいのでしょうか?

268 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 17:29:16.63 ]
>>266
ふぁいやーうぉーるとかは?

>>267
はい?

269 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 17:42:32.39 ]
>>266
ルータのログ出してみては。

270 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 17:43:56.67 ]
初心者にお勧めの入門書を教えてください
10日で覚えるみたいなのじゃなくてこれ1冊勉強したらいいみたいな本をお願いします
少しでもここで質問する頻度が減らせればと考えて勉強したいんです



271 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 17:48:12.73 ]
>>270
どれでもいいから3つ入門本買え
内容が似てないやつな

無理なら図書館で借りろ
タダだ

272 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 17:56:48.91 ]
どこのコントロールからキーイベントが実行されたか調べる方法はありませんか?
例えばtextBox1とtextBox2があり、textBox2からKeyDownイベントが実行されたらtextBox2体ということをしりたいのですが

273 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 18:02:00.05 ]
>>268
ファイアウォールは例外に指定して通すようにしています。一度、ファイアウォール自体を切って試しましたが同様でしたのでファイアウォールで止まってる訳ではなさそうです。

>>269
ルータのログですか?調べて一度出してみます。

ところで、TcpListenerは待機ポートを指定して、接続次第そのポートで通信しますよね?
一方、TcpClientは接続時に接続先のIPとポートを指定しますが、このClient自体のポートはOS側で勝手に割り振られるんですか?それとも指定した接続先のポート番と同じのを使うのですか?

274 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 18:03:05.48 ]
>>272
KeyDownのsender

275 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 18:04:22.92 ]
>>273
バインドすることもできるけど普通は自動割り振りさせる

276 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 18:16:59.64 ]
ftpでも作ってんの?

277 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 18:18:47.17 ]
チャットっつってんじゃん

278 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 18:20:03.04 ]
>>273
ネットワーク構成は秘密か?インターネットを「経由」しているということは、

・自宅と友人宅/職場/レン鯖/他
・自宅に2回線持っている

あたりだろうが

てか、LANでは繋がる→プログラムの問題ではない→スレチ、だろう

279 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 18:29:18.63 ]
ポート解放に失敗してるんだろ
ポートの意味を取り違えて

280 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 18:29:37.98 ]
>>278
「192.168.11.3のクライアント」から「192.168.11.1のサーバー」を「ルーターのWAN側IPとポート」を指定して接続しようとしています。もしかして、
これじゃインターネット経由にならないんですか?



281 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 18:31:09.47 ]
>>280
ヘアピンNATができるかはルータ次第。

282 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 18:37:15.14 ]
>>281
ルーターに依るんですね。確認してみます。ローカルネットワーク内では動くということでプログラム自体には問題なさそうなので、スレチなようなので移動します。ありがとうございます!

283 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 18:40:42.54 ]
インターネット経由にはなってないわな

284 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 19:05:16.26 ]
ヘアピンNAT対応してるメーカーのが少ないしな。
プログラム以前に、webサーバたててアクセスして見る、
とかまやったことないのかいな。

285 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 19:11:18.04 ]
ネスペも持ってないのにネットワークプログラミングを
するとは

286 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 19:13:05.83 ]
>>274
sender.ToString()を確認したら取れているのは確認できました
textBox1でKeyDownが発生した場合に
イベント内でtextBox1.Text = "";みたいに書き換えたいのですが
どのように書いたらよいのでしょうか?

287 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 19:15:24.57 ]
((TextBox)sender).Text="";とかif(sender==textBox1){textBox1.Text = "";}

288 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 19:16:27.61 ]
>>287
ありがとうございます
senderはこういう風に使うのですね
勉強になりました

289 名前:デフォルトの名無しさん [2012/01/22(日) 19:41:59.98 ]

as使えよ

290 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 19:43:48.42 ]
WPFのDLLを作っているのですが、Imageコントロールへの画像の表示方法について教えて下さい。
プロジェクト内にある画像をコードから表示しようと、
image.Source = new BitmapImage(new Uri(@"/Icon/Image.png", UriKind.Relative));
としているのですが表示されません。
別にあるユーザーコントロールのXAMLからは相対URIで表示できていますし、
同じ画像をプロパティにある絶対URIで指定すれば表示できるので、URIの書き方がおかしいのではないかと思っています。
相対URIで画像を指定し、表示するためにはどのようにすれば良いのでしょうか?



291 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 19:47:40.64 ]
>>287
初心者相手でもちゃんとした処理教えたほうがいいんじゃないの?

292 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 19:54:52.36 ]
>>290
msdn.microsoft.com/ja-jp/library/aa970069.aspx
>参照アセンブリのサブフォルダー内のリソース ファイル "pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml"

>>291
文法レベルの質問だと思ったからそう答えた
処理の話ならそもそもKeyDownでやる必要性が見いだせない

293 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 20:02:01.82 ]
>>292
表示できました、ありがとうございます。

294 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 20:47:11.93 ]
ビルドしたEXEファイルをネイティブEXEに変換するソフトってないですか?

295 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 20:51:10.05 ]
無い

296 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 20:51:16.08 ]
ないよ

297 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 20:52:21.69 ]
ビルドしたEXE

298 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 20:55:21.56 ]
いまどき.NETくらい普通入ってる
幅広くサポートしたいなら2.0ターゲットにして.NET2.0入ってないようなクソ環境は無視で問題ない

299 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 20:55:40.13 ]
すんごくファイルサイズが増えていいんだったらあったよな
たしかexeファイル内にフレームワーク丸抱えしちゃうように変換するやつ

300 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 20:57:08.71 ]
win9でネイティブアプリ実行不可にしたらいいのにw

ただしIE、Offceは除く



301 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 20:58:06.89 ]
c# asっでググっても出てこないんですがasって何ですか?

302 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:00:26.50 ]
>>301
www.atmarkit.co.jp/fdotnet/dotnettips/005castandas/castandas.html

303 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:01:35.04 ]
Google でも Bing でも、「C# as」でググったらちゃんと as 演算子のページ出てきたが…

英語ロケールだと、前置詞は検索キーワードから除外したりしてたような気もするけど、そのせい?

304 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:01:42.25 ]
>>301
一番上に出てきた
www.atmarkit.co.jp/fdotnet/dotnettips/005castandas/castandas.html

305 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:01:46.08 ]
>>301
むしろどこでググったのか教えて

306 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:17:02.64 ]
"string"型をconstできないでrしょうか?

307 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:18:55.71 ]
stringをconstにしても意味がないんじゃない?
stringは参照型だし

308 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:20:50.31 ]
>>306
出来ないというかできても意味ない

309 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:20:56.03 ]
なぜ出来ないと思ったのか
const string hoge = "hoge";

310 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:22:37.95 ]
C#のconstってC++と意味が違って紛らわしいよな
C++/CLIのliteralがわかりやすい



311 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:23:31.86 ]
>>307
>>308
こいつら生きてる価値あるの?

312 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:28:22.66 ]
変な質問をする人はやっぱり変な切れ方するなw

313 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:28:51.15 ]
"const string" 型が欲しいという意図だと考えたんだろ
それなら元々stringは変更不可だから無意味

314 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:30:39.33 ]
ごめんなw
手拍子で答えてしまったw

315 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:37:20.96 ]
こっちは回答者も初心者(or 初心者レベル)だからしゃーない

316 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:52:09.17 ]

就活中
(p)livedoor.blogimg.jp/jin115/imgs/3/1/31a6f8e6.jpg

就職後
(p)livedoor.blogimg.jp/jin115/imgs/2/b/2b790359.jpg

街の人(やらせ業者)募集中です



317 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:57:15.66 ]
listViewで listView1.Items[0].Selected = true;
とやってもlistViewの先頭にフォーカスが当らないので
d.hatena.ne.jp/oui27/20080710/1215702413をみながらlistView用にコードを書いてるのですが
イベントの部分がどうしてもかけません
手直しをお願いできませんか

void listView1_Loaded(object sender, ListViewItemSelectionChangedEventArgs e)
{
if (listView1.SelectedIndices[0] >= 0)
{
ListViewItem item = (ListViewItem)(listView1.Items[listView1.SelectedIndices[0]]);
item.Focused = true;
}
//イベントハンドラを削除
listView1. -= new ListViewItemSelectionChangedEventHandler(listView1_Loaded); //←ここがわかりません
}


318 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 22:05:14.98 ]
Loadedでそういうのはダメかも

319 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 22:10:56.45 ]
>>317
元のサイトをもっとよく見ろよ

320 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 22:11:16.18 ]
>>317
本当は
listView1.Items[0].Selected = true;
listView1.focus()でアイテムが選択状態になってフォーカスが当っているのがいいんですが
別の方法ってありませんか?



321 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 22:16:57.85 ]
それWPFのサンプルじゃん
WPFの開発してるの?

322 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 22:24:09.89 ]
>>321
移植したらいいのかなと思ってまして すいません

323 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 22:24:46.64 ]
>>320
何だよまたひっかけ問題かよ

listviewの SelectionModeをSingleに…

324 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 22:26:26.91 ]
すいませんFocusedっていうのを使ったらフォーカスが当りました

325 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 22:31:31.14 ]
>>323
こういうのもあるんですね
ありがとうです

326 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 22:35:30.30 ]
winforms item.Focused=true;
WPF SelectionMode=Single;

結局さらされたブログの人が恥ずかしいだけになった

327 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 22:40:45.59 ]
沢山の短いWAVファイルをあらかじめ設定したタイミングでズレないように再生するにはどういう手順が良いですか?

328 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 22:45:44.36 ]
全部ミックスした音源を再生する

329 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 22:46:54.00 ]
そんなトンチみたいな回答は

330 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 22:50:03.83 ]
ぶっちゃけ>>328は正論だよ
ただし単一WAVの合成はプロセス内でやらないと要件にマッチしないけど



331 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 22:54:59.92 ]
ストップウォッチが作りたいのですが
c#で0.01秒ごとに処理(ラベルの書き換え程度ですが)を行い、
ボタンを押したら正確に止められますか?

332 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 22:56:59.00 ]
>>331
YO!久しぶり!メトロノームの調子はDO-DAY

333 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 23:00:16.91 ]
ストップウォッチっていうクラスあるよね

334 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 23:10:56.01 ]
まぁ無理だと思っていいよ

335 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 23:12:57.52 ]
System.IO.FileのCopy,Move,Deleteを行った場合のctrl+zのようなやり直しはどう実装したらよいのでしょうか?

336 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 23:13:07.03 ]
関係ないけどメトロノーム重りと針と円弧の座標の計算がめんどくさくて途中でやめたわ

337 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 23:19:06.46 ]
>>335
操作を覚えておけばいいでしょ

操作:MOVE 〜を〜へ移動した
操作:COPY 〜を〜へコピーした

って
Deleteはどこかに取っておかないと駄目だけどね
面倒くさいならShell使った方がいい

338 名前:デフォルトの名無しさん [2012/01/22(日) 23:20:25.68 ]
テキストボックスにファイルを保存するフォルダを書くこととしてて、でも
うっかり指定してなかった場合を想定して、マイドキュメントを指定してやろうとしてます。
if (textSaveFolder.Text == string.Empty) {
textSaveFolder.Text=Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); }

if文の条件ってこっちのほうがいいかなぁ
if (string.IsNullOrEmpty(textSaveFolder.Text))

センスの問題?

339 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 23:20:46.21 ]
この辺ね
msdn.microsoft.com/en-us/library/windows/desktop/bb762164%28v=vs.85%29.aspx

定義はP/Invoke探せばあるでしょう

340 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 23:22:01.99 ]
俺ならうっかり指定してなければフォルダ選択させるかなその場で



341 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 23:24:52.34 ]
>>337
>>339
よく読んでやってみます

342 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 23:46:31.95 ]
>>331
100fpsとか高望みにも程がある

>>338
未入力チェックならString.IsNullOrWhiteSpace

>>340
毎回入力することを想定していなければ、入力欄の近くに

相対パスならマイドキュメント以下(空欄はマイドキュメント)

のように明記するのはあり

343 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 23:56:14.16 ]
>>307-308

ビットにできないかと思って。
記述的にできないみたいで残念。

>>309
それじゃ意味ねーだろwww

344 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 23:57:50.32 ]
nullとemptyと どうちがうんだっけ?

345 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 00:18:52.35 ]
nullは文字列データが存在しない
emptyは長さ0の文字列

ちなみにstring.Emptyはリフレクションで再代入ができるので(Mono環境だとできないが)
空文字列かどうかを調べるのにstring.Emptyとの比較は微妙
string.Emptyをいじることはないと思うけどな

346 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 00:22:59.64 ]
なんでリフレクションでmscorlibを弄られた場合の耐性なんて論じる必要があるんだ?
そんなことを言いだしたら他のフィールドも全部信用できないだろ

347 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 00:24:29.39 ]
""
" "
使ってると、化石扱いされるの?

348 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 00:53:33.57 ]
の?
まで読んだ。

349 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 00:54:06.38 ]
の?
まで読んだ。

350 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 00:55:00.93 ]
全部読んでるんじゃねぇかw



351 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 01:16:44.04 ]
>>342
ラベルのText書き換えるだけなら100/sくらい全然余裕だろ
どうせ表示できないけど

352 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 11:35:34.27 ]
お世話になります。

作成したアプリケーションに関連付けしたファイルをダブルクリックすると、作成アプリが起動しファイルを読み込むようにしたのですが、現在このアプリは二重起動を禁止しています。

このアプリが起動中に、別の関連付けファイルをダブルクリックした時に、既起動中のアプリで新たなファイルを開きたいのですが、どのようにするのでしょうか?

二重起動禁止を解除するともちろん複数のアプリが起動してしまうのですが、そうではなく、既に起動中のアプリに読み込むことができません。

ご教授願えますでしょうか?

よろしくお願いいたします。

353 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 11:46:46.20 ]
ご教授〜

354 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 11:51:00.09 ]
実行ファイル名やウィンドウタイトル等から既に起動したプロセスのウィンドウを特定してプロセス間通信
この場合開いたファイルパスだけ送りゃいいだろ

355 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 11:51:09.81 ]
二重起動のチェックをしてるところで読み込めばいいだけでしょ

356 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 11:59:39.36 ]
は?

357 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 12:01:33.21 ]
ああわかった。OSの関連付けで起動プログラムが指定されるから
二重起動をさせずに2つめの関連付けされたファイルを起動済みの
プログラムに渡すにはどうすればいいか?って意味ね。

358 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 12:08:51.80 ]
じゃあソケット通信で


359 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 12:11:40.32 ]
プロセス間通信が必要だよ
ここでさらっとコード貼ったりできる程度じゃない

360 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 12:17:57.33 ]
面倒なのでMicrosoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase使う



361 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 12:19:14.97 ]
sendmessageで送って受信側に受け取りのイベントを書けばいいだけじゃないの?

362 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 12:21:04.32 ]
ちょっと上の方にWCFのサンプルもあったし、全然難しくないよ

363 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 12:28:48.58 ]
プログラムを2つに分ける。

1.関連付けで起動されるアプリケーションスタブ
2.アプリケーション本体

アプリケーション本体には、二重起動チェックはそのまま入れておく。
関連付けで起動されるスタブは、アプリ本体が起動されていなければ
起動して引数にファイル名を渡す。
アプリ本体がすでに起動されていればプロセス間通信でファイル名を
渡す。プロセス間通信というかスタブからのメッセージPOSTを受ける
だけでいい気もするけど。

364 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 12:35:38.81 ]
ファイルで渡せばいいよ

365 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 12:48:47.27 ]
秀丸のマクロから呼び出せるDLLはC#では作れないとご助言を受けたのですが
C#でもCみたいにexternする裏技みたいなのは無いのでしょうか?

366 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 12:50:06.13 ]
無いから無理だと言ってんだろカス

367 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 12:50:51.40 ]
プロセス間通信が理解できてるなら聞いてくるような内容じゃないだろ
お前には無理でFA

368 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 12:53:39.94 ]
WCFで書いた
ideone.com/fk8nr

369 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:14:14.74 ]
treeViewで隠し属性を表示させない方法はないでしょうか?

370 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:17:21.05 ]
隠し属性ってなんだよハゲ



371 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:18:57.19 ]
>>369
もしかすると「TreeViewでフォルダーツリー作っているんだが、hidden属性のフォルダー無視する方法ない?」って質問かな?

372 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:19:20.05 ]
はげてないよ

373 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:20:52.45 ]
ふっさふさだよ

374 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:22:15.42 ]
>>371
ですです

375 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:26:43.72 ]
>>374
hidden属性のフォルダーかチェックしてhiddennなら追加しない

376 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:31:25.40 ]
>>368
varで書くのはいいけどぱっと見で重要なオブジェクトかどうかわかりづらい
基本構造について理解が妨げられるような感じ

オブジェクト平等主義なんだろうけど定数の様な物や
stringはvarじゃないほうがいいような気がするなあ

377 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:36:07.31 ]
本題でもねえところに一々突っ込んでくんなよ

378 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:38:22.10 ]
触るな

379 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:43:12.62 ]
そうするよ

380 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:43:59.85 ]
language:がC++ (gcc-4.3.4)だとかどうでもいい



381 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 14:08:32.06 ]
>>365
C# で書いたDLLをCOMに見せかける機能はあるので、
C++ で一段階ラッパー書けば使えるとは思う。
結構大変(情報全然出てこない)と思うけど。

382 名前:デフォルトの名無しさん [2012/01/23(月) 14:15:35.43 ]
ツールボックスの中にあるフォルダダイアログって表示したままフォームの一部に貼り付けておくことって出来ないですか?

383 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 14:26:55.82 ]
LoadLibraryで.netのdllを呼んでくれるラッパーおれも欲しいで

384 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 14:59:02.80 ]
>>381
まじすか
これ需要あるますので有料でもいいのでほしいですよ

385 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 15:19:37.41 ]
ラッパーほしいとか有料でも欲しいと言ってる人は誤解している

386 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 15:20:15.01 ]
なぜよ?

387 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 15:26:58.33 ]
C++/CLIで作ればいいだけじゃないか

388 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 15:34:35.57 ]
ネイティブDllでは
CLIいれられないよ

389 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 15:36:27.02 ]
DllImportじゃダメなん?

390 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 15:39:31.33 ]
そのimportする対象のDLLが作れないってことだよ



391 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 15:52:32.08 ]
本当クソだなC#

392 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 15:56:26.14 ]
C++/CLIって何のためにあるんだw

393 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 16:16:22.16 ]
C++/CLIはいらない子、害悪

394 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 16:35:18.56 ]
listviewにヘッダーが一つだけあります
ヘッダーの列の幅を100%に自動調節したいので
ttp://dobon.net/vb/dotnet/control/lvautocolumnwidth.htmlをみながら
listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
と書いてみたのですがサイズが変わりません
どうかご教示お願いします

395 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 16:44:15.06 ]
>>394
変わるけどな?
先頭大文字なのが気になるけど、、、ちゃんと呼んでる?

396 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 16:44:49.22 ]
大文字なのはリンク先だった、失礼

397 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 16:50:07.58 ]
縦スクロールバーの処理入れると割と面倒だったな

398 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 17:06:49.15 ]
>>395
あれ?おかしいな?何でだろう
ヘッダーにwidth = -2にってやると100%で表示されるんですが
これだと画面の大きさや項目を変更したときには反映されないので困りました
ちなみに.Net4.0なんですけど項目は全部半角英数でaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaを10行挿入しました
ヘッダーめいはabcdeって入れてます

399 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 17:08:12.32 ]
>>389
やりたいことはその逆だからダメだろ。

>>392
ネイティブなものを .NET から使うためだよ。
今はその逆の話で、それは C++/CLI でやることじゃない。

400 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 17:09:47.19 ]
>>384
msdn.microsoft.com/ja-jp/library/8bwh56xe.aspx
こんなの。

別に無料版の VC#/VC++ でもできるんじゃないかな。
自分でやったことないからこれ以上はわかんない。



401 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 17:10:11.52 ]
まあ普通のDLL作ってそれがExeをキックすればいいな。

402 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 17:11:14.51 ]
>>400
ありがとう
もしよろしければこのリンク見てアフィリエイトふみまくるので誰か作ってください

403 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 17:15:19.68 ]
>誰か作ってください

まだ意味が解ってないみたいだな…

404 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 17:23:39.62 ]
c#で作った独自プログラムをCOM化してやって
それを使った中間ネイティブDLL作るんだよ

間に何かあって勝手にネイティブ変換してくれるもんじゃない
自分で作るもんだぞ

405 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 17:33:07.33 ]
つまり自分で作ったdllの中でそういう作業をしないといけないって事すか

406 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 17:34:44.84 ]
秀丸マクロでDLLを呼び出したらHello Worldを返すだけの処理なんですがサンプルお願いできませんか?

407 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 17:39:58.05 ]
秀丸マクロのつくり方のページをまじめに読んでいたら
そういうお願いは無駄だと感じるはずだけどなあ

408 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 17:52:33.58 ]
何かあったら金をちらつかせたり
他人に頼みごとをして解決する人は嫌いです

409 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 17:57:59.95 ]
ksなスレですねここは

410 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 18:35:17.92 ]
C++/CLIは.NETの上でC++を使いたい人用なんじゃないの。
ただのC++より安全だとは思うけどC++使うならネイティブの
ほうがいい。



411 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 18:40:02.57 ]
ごちゃごちゃ抜かさずCかC++覚えろ

412 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 18:59:36.52 ]
>>410
一番の用途はネイティブコードを .NET から参照する用よ。
.NET 使いたいだけなら素直に C# に移る方がよっぽど楽。

413 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 19:01:07.24 ]
つうかよ秀丸でC#のDLLを呼べるようにするのが一番いいよな

414 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 19:05:28.61 ]
もういいよ
まだ4000YENの話を続けなきゃいけないのか?

415 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 19:08:42.01 ]
MS製品ですら未だVB Scriptだからねぇ。
昔からあるものを、今のものに対応させるって大変。

416 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 19:14:06.86 ]
4000YENとか、金額の問題じゃないだよ

417 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 19:18:31.63 ]
どうしても金払いたいなら
日当三万払ってプロに頼めよ

418 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 19:26:45.99 ]
string[] a = {"a","b","c","d","e"};
という配列があって
インデックスAを指定して、指定した位置Bに移動する方法を伝授してください
例えばインデックス3を1の位置に移すなら
{"a","d","b","c","e"};
という結果にしたいのです

419 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 19:35:56.58 ]
string n = a[2];
a[3] = a[1];
a[1] = n;

これを書きたくないと言うならC#向いてないから今すぐ止めてくれ

420 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 19:38:18.56 ]
よく見ると処理内容が違ってるだろw

list<string>使えと言う回答はダメですかw



421 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 19:39:35.77 ]
>>419
止めるべきはお前だったな

ListならInsertで済むのにな
Listはメモリガーとか言う人かね

422 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 19:47:46.75 ]
後はまあ地道に、後ろにずらして行くしかないね
string b=a[3]
for (int i=2;i>=1;i++) {
a[i+1]=a[i];
}
a[1]=b;

423 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 19:52:04.57 ]
string[] a = {"a","b","c","d","e"};

a = new string[]{"a","d","b","c","e"};

424 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 19:56:00.16 ]
天才が出たぞ

425 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 19:56:46.40 ]
一時退避変数にインデックスの場所の値を入れておく
そこから後ろをArray.Copyで1個ずつ前にコピー
移動先を含めてArray.Copyで1個ずつ後ろにコピー
移動先に一時退避変数を代入

これでいいのか?

426 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 20:08:49.31 ]
余りにも身も蓋もないからちょっと改良

string[] a = {"a","b","c","d","e"};
a = new string[]{a[0],a[3],a[1],a[2],a[4]};

427 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 20:29:27.09 ]
リングバッファーではないよね。

428 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 20:58:54.10 ]
64バイトの中々ダブらない文字列を作るにはどうやれば良いですか?

429 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 21:04:30.13 ]
GUIDのテキスト表記からハイフン抜いて2つつなげる
っていうか64バイトもいらんだろ

430 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 21:05:09.40 ]
00000000
00000001
00000002
という感じで使える文字の範囲で順番に作ればダブらないよ



431 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 21:06:24.15 ]
GUID使うなら4つ必要じゃん

432 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 21:07:12.53 ]
guidって128ビットだった気がするんですが....

433 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 21:09:25.20 ]
33〜126の乱数をcharに変換して64個並べる

434 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 21:10:21.84 ]
>>423
wwwwwwwww

435 名前:429 mailto:sage [2012/01/23(月) 21:10:36.50 ]
2進数のテキスト表記で32文字x2ってこと

436 名前:429 mailto:sage [2012/01/23(月) 21:11:20.84 ]
すまん16進数の間違い

437 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 21:12:52.14 ]
>>431
Guid自体は128bitだけど文字だと32文字→とりあえず32バイト→2つ必要
ってことなんじゃね?

438 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 21:13:06.89 ]
>>419
何だそのしょぼコードは!
おまけに結果が変だろ!
dがないだろ!
{"a","c","c","b","e"};

439 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 21:26:35.48 ]
guidを調べて見ます。どうもありがと

440 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 21:35:35.57 ]
いやいやいや
どういう仕様なのか分からないからあれだが



441 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 21:37:32.99 ]
普通にGUIDをそのまま使えよ
64バイトもいらん

442 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 21:50:29.96 ]
64バイト使って256ビット分の情報量ってすごくもったいない感じだね

443 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 21:52:59.68 ]
んなこと言い出したらテキスト中の数値は全部バイナリにしないといけなくなるぞ

444 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 21:56:51.39 ]
テキスト中の数値はテキストとして価値があるだろ
今回UUIDを文字列にする価値があるのかは知らんが

445 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 22:01:29.10 ]
listViewのチェックを変更させないようにしたいのでchangedイベントで前の状態に戻すように書いたのですが
スタックオーバーフローになってしまいますがよい書き方や設定があったら教えてください。

446 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 22:15:20.97 ]
Checkedイベントでチェック状態変更したらループするだろ

チェック状態変更する前にフラグ立てて、2回目以降のCheckedイベントを回避しろ

447 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 22:21:17.99 ]
できた^−^ありがとん

448 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 22:21:55.11 ]
できません
>>447
この人は偽者です。

449 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 22:34:23.15 ]
あるかないか分からないファイルを沢山削除したいのですが、
fileExistsで確認してから削除するのととりあえずdeleteでエラーを受け取るのではどっちが良い(早い)ですか?

450 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 22:36:00.02 ]
そうですか、できないですか
困りましたね…



451 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 22:37:09.94 ]
そんなもんファイルが無い確率によるわ

452 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 22:38:48.73 ]
5000個のうち5-10%無いかもです

453 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 22:39:51.87 ]
じゃあExists使っとけ

454 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 22:40:50.26 ]
そうする

455 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 22:43:49.77 ]
例外が嫌ならP/InvokeでDeleteFile打ちまくれば?
良し悪しで言えば最悪だろうけど

456 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 22:48:40.28 ]
全てを消し去ってくれる

457 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 22:58:37.34 ]
僅かな速さの違いを気にするような案件とは思えないな

458 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:02:47.98 ]
クライアントが神経質って要件があるやも試練

459 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:04:49.19 ]
お前らまた騙されてるな

ファイル無くてもDeleteでエラー出ないぞ…

460 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:06:55.72 ]
PInvokeとInvokeとどっちがボケなの?



461 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:07:23.26 ]
普通、例外のコスト<Existsのコストなんじゃないの

462 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:07:29.28 ]
何というか最近ハメ質問ばかりだな

川俣でもいるんだろうか…

463 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:09:34.76 ]
ほら一応MSDNから

File.Delete メソッド
指定したファイルを削除します。指定したファイルが存在しない場合、例外はスローされません。

464 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:10:16.17 ]
listViewのチェックの状態を別スレッドで知りたいのですがどうやって書けば良いですか?
チェックを付けたり外したりするdelegateはできましたが戻り値を受け取る方法がわかりません。

465 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:18:09.80 ]
つまり
>>449はそのままDeleteで削除する

466 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:37:18.30 ]
>>464
Control.Invokeの戻り値に「デリゲートの戻り値」が戻ってくると書いてあるだろう
msdn.microsoft.com/ja-jp/library/zyzhdc6b%28v=vs.80%29.aspx

デリゲートの中でListViewのアイテムにアクセスして、returnでCheckedを返せばいい

467 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:40:01.54 ]
Webページを取得してるんですけど
例えばこんなURLで
hoge.com/hoge?id=1

id=1〜nまでのデータを取得したいんですけどどうすればいいですか?

468 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:41:53.30 ]
最近の初心者は文字列操作より先にWebClientが使えるようになるのか?

469 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:42:03.23 ]
URLのケツの数字をどうにかして書き替えるプログラムをまず書きます

WebClientでもなんでも使ってURLのリソースをGetします

Perfect!

470 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:42:40.41 ]
頭より手が動いてるんだろう
あとティンコ



471 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:47:41.96 ]
その方法教えろって言ってんだろくずが

472 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:49:05.44 ]
string filename = @"C:\sample.txt";
こんな感じの固定したい変数がたくさんあるんですが、
コード中の各メソッドにちりばめられてます
後で変更するときにきついのですが
これはどのように管理したらよいでしょうか?

473 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:49:57.94 ]
>>469
>>数字をどうにかして
どうすればいいんですか?

474 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:50:48.06 ]
よく分からないがフィールドに置いたらいかんのか?
メソッドの中にしか変数を置けないと思っているのなら入門を読み直した方がいい

475 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:52:01.70 ]
>>473
とりあえず=の後ろを切り取って、数字を付け直せばいいんじゃないのかな
そのくらいは調べてできるよな

476 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:55:08.01 ]
>>475
はい。 仮に今idが1〜10まであって
突然11までとかになったら自分で修正するしかないのですか?

477 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 23:55:18.02 ]
>>474
classの真下に
private string filename = @"〜";
って各方法以外にありませんか?
Cでいう構造体みたいなのができればいいんですが

478 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 00:01:23.76 ]
固定したいのか変更したいのかハッキリしなさい

479 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 00:06:41.79 ]
>>466
できたありがと。
でもデリゲート意味わからなすぎ

480 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 00:08:50.79 ]
>>478
あとでコード修正しやすいように1ブロックにまとめて管理したいんです



481 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 00:19:32.14 ]
internal static class XXX
{
internal static readonly string filename1= @"〜";
internal static readonly string filename2 = @"〜";
internal static readonly string filename3 = @"〜";
internal static readonly string filename4 = @"〜";
}

って感じでまとめれば

482 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 00:20:01.76 ]
フィールドだけ集めたクラスを作ったら同じように使えないかい

483 名前:476 mailto:sage [2012/01/24(火) 00:39:59.24 ]
返事待ってます!
分かる方お願いします!

484 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 00:41:12.81 ]
そこはenumじゃないのか

485 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 00:41:37.39 ]
>>483
アホらしいから何も言わなかったんだけどな
プログラムが「突然11になった」ことを認識できるように書けば自動化することもできるだろう

お前がAIを造ればいいんだよ

486 名前:476 mailto:sage [2012/01/24(火) 00:42:33.16 ]
>>485
どうすれば?

487 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 00:43:10.62 ]
そうだな、さしあたり人工知能関係の本でも読めばいいんじゃないか

488 名前:476 mailto:sage [2012/01/24(火) 00:45:38.15 ]
不可能ということですか?

489 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 00:48:07.60 ]
自動化するのに「必要なもの」があるなら
その「必要なもの」を入手する部分を自動化する
その「「必要なもの」を入手する部分を自動化するために必要なもの」があるならそれも自動化する
これを必要なものがなくなるまで繰り返してようやくあなたは仕事から解放される

490 名前:476 mailto:sage [2012/01/24(火) 00:50:56.01 ]
うーん。
+1を付け足しといたらいいんですかね



491 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 00:50:57.94 ]
その11って数字をどこからか探してこれるなら不可能じゃないさ。
どこから取ってくればいいかって?そんなことは知らん。

492 名前:476 mailto:sage [2012/01/24(火) 00:52:21.14 ]
うーん。意味ないっすね
難しいですね><

493 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 00:58:53.72 ]
winFormから別のスレッドを実行して
MessageBox.Show(this,"ほげ");
でモーダルなメッセージボックスを出したいのですがこれだとエラーになりますが
正しい書き方を教えて頂きたいです。

494 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 01:02:50.29 ]
>>493
>>466

495 名前:476 mailto:sage [2012/01/24(火) 01:43:02.69 ]
なんとかして出来そうな気がするんですけどね

496 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 03:35:34.40 ]
for 使えばできますよ。

497 名前:476 mailto:sage [2012/01/24(火) 06:49:56.59 ]
Forじゃできないと思うのですが、どういうことでしょうか?

1から10までってわけじゃないのですが


498 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 07:02:54.31 ]
C#にて下のページの上から5番目のようなフォントで文字を
描画したいのですがどのようにすればよいでしょうか?
www5f.biglobe.ne.jp/~ayum/gazouhenkan/jtrim/066.html

499 名前:476 mailto:sage [2012/01/24(火) 07:08:31.00 ]
相手が更新しなければ、うれしいんですけど。
うーん。突然idが20までになったら、、10以降のデータを取得てぎないんですよね。難しい。


500 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 07:08:45.82 ]
>>497
こういうことじゃないのけ?
ttp://ideone.com/9K7Rn

コレでいいなら基本だと思うんだけど。



501 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 07:20:09.48 ]
よく読んだらこういうことか。

リアルでやって捕まる前に「やめとけ」と一応言っておくよ。

ttp://ideone.com/YJuVK

502 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 07:25:11.44 ]
>>499
Accumulated PAIN revarse to you!! 

503 名前:476 mailto:sage [2012/01/24(火) 07:28:52.65 ]
え・・犯罪なのですか・・・
しりませんでした
ありがとうございます

504 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 07:31:34.10 ]
>>503
コレで鯖が止まったらどういう言い訳するんだよ。営利妨害じゃないか?

505 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 07:44:00.79 ]
岡崎図書館事件か
逮捕されて有罪になったんだっけ?
落ちる原因がなんであれ、侵入した事実があれば逮捕で臭いメシ食えるよ、やったね!

506 名前:476 mailto:sage [2012/01/24(火) 07:47:33.54 ]
リンクタグをパーサしたら出来そうな気がするんですけど

507 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 07:51:21.09 ]
じゃあそうすればいいじゃん

508 名前:476 mailto:sage [2012/01/24(火) 07:51:45.65 ]
専ブラ使っても2chが落ちないのはなんでだろう。。

509 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 07:59:34.21 ]
>>508
2chの鯖結構高性能なんだぜ。あとは専ブラ作者とユーザに良識があるからだな。
情報取りに行った鯖がMMXPentiumで運営してて、落ちたらどうするんよ。

相手が貧弱でした!って言って通るのかよ。

510 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 08:13:45.83 ]
専ブラは、dat だけ取ってきてHTML化はローカルでやるから、むしろ軽いのよね、普通にウェブブラウザーで見るよりも。
スレ一覧とかも、総当たりで取ってるんじゃなくてインデックス読んでるし。



511 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 09:03:16.39 ]
念のため通報しました

512 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 11:05:59.37 ]
意味不明なんだけど
ここまでの流れ詳しく…

513 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 11:12:50.89 ]
初心者向けに何かフォームプログラムのお題をください

514 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 11:22:07.10 ]
>>513
どのくらい初心者かわからんが、全くの初心者なら関数電卓とか
ちょっとかじったことあるならペイントとか静止画⇔動画変換とか

515 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 11:41:27.44 ]
アナログ時計もいいかもね

516 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 12:15:30.78 ]
関数電卓をぐぐって見たんですが
1+(2*3)+(4/5*(6/3))みたいに括弧が出てくるとどのようにパーサして計算していいのか分からず
JavaScriptみたいにevalってないんですね
これは初心者にはキツイです
静止画と動画はおもしろそうですね
アナログ時計なら出来そうです

517 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 12:21:18.92 ]
>>516
ツリーを作る

518 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 12:21:49.03 ]
二分木ね

519 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 12:22:52.76 ]
>>516
C# eval とか検索すればいいのに。

520 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 12:25:32.86 ]
アセンブリや型を生成せずにC#のコードを実行する方法は無い
オーバーヘッドがものすごいしメモリリークする



521 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 12:29:48.18 ]
別プロセスにすればリークは問題にならないな
AppDomainは動的コンパイルのリーク回避に使えなかったっけ?

522 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 12:32:29.12 ]
何でC#には数式のパーサライブラリがないんだろ

523 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 12:35:07.26 ]
カッコや演算子の優先順位くらいなら再帰下降パーサ手書きで案外簡単にできるよ
でも少なくとも初心者向けではないし頑張って勉強して作ったとしてもあんまり役に立たん経験

524 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 13:48:41.96 ]
Visual C# 2010 Expressなんですが、対象のフレームワークを「.NET Framework 4」に固定する方法はありますか?
毎回プロパティから変更するのは面倒&保存しなければならないので

525 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 13:50:44.34 ]
お金払えばできるよ

526 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 13:57:46.95 ]
なんてこった

527 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 14:22:40.88 ]
横だが、Expressはデフォが4.0だと思ってたw

528 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 17:18:22.87 ]
普通に前回使用したフレームワークになってないか? >Express

529 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 17:21:40.11 ]
そもそも4.0しか選べないし

530 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 17:24:49.05 ]
俺のは開いたら4.0Clientになってる

>>529
え?・・・え?



531 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 17:25:22.14 ]
>>529
嘘乙!

532 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 18:08:57.57 ]
「パーサする」じゃなくて「パースする」って言って欲しいなあ

533 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 18:26:57.27 ]
IMEの状態を知りたいのですが、自分にフォーカスがない状態や
何にもフォーカスがない状態でも知る方法を教えて頂きたいです

534 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:09:48.06 ]
数式をちょろっと計算したいだけならXPathNavigator.Evaluateあたりを流用すれば出来るんじゃね?

535 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:28:35.85 ]
すいませんDOSでdirの結果を取得したいのですが
なんてライブラリをusingして使うのでしょうか?

536 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:30:24.22 ]
System.Diagnostics.Process

537 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:33:31.75 ]
そしてStdoutをリダイレクトして受け取る

538 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:47:20.53 ]
sakurasite.homeip.net/imgboard/img-box/img20120124204241.png
新規プロジェクトのwindowsアプリケーションを作りテキストエリア(textBox1)を作って
string[] files = Directory.GetFiles("c:\\");
で取得したファイル一覧のテキストを表示してみようかな。と思っているのですが
static void fileListUpTest()内で"textBox1"にアクセスする方法がわかりません。
textBox1.Text="hogehoge";でテキストボックスの内容を書き換えるにはどうしたらよいのでしょうか

539 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:52:57.08 ]
そこでコード書くの?


540 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:53:10.40 ]
>>536
>>537
あいりがとうございます



541 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:53:32.12 ]
まずそんなとこにそんな処理を書くな

542 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:53:37.19 ]
まず
・fileListUpTestはフォームが閉じてメッセージループが終了してからしか呼ばれない
こう書いても理解できないと思うけど。

上の画像のフォームの何もないところダブルクリックすると
Form1_Loadというメソッドが作られるからそこにfileListUpTestの中を切り取って張り付けろ

543 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:56:08.44 ]
・STAThreadをMainから剥がすな
・素直にForm1内に書け
・一応そこからでもtextBox1にアクセスできなくはないが、実用性は無い

544 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:57:54.88 ]
Form1を右クリック→コードの表示

545 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:58:08.47 ]
素直も何もForm1の下に書くのを知らないんだと思うが

546 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:03:50.25 ]
文法は結構いくらでもあるんだが、まとまったFormsとかの入門になると川俣の駄文くらいしかないんだよな

547 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:13:20.40 ]
失礼しました。この通りに記述したら希望通りの処理が出来ました。
sakurasite.homeip.net/imgboard/img-box/img20120124210336.png

・・しかし、関数を書く場所がやはりわかりません。
20行目にfileListUpTest();と書いて処理を関数化する際
static void fileListUpTest(){textBox1.Text="okok";}(簡略化しました)
は何行目に入れればよいのでしょうか
sakurasite.homeip.net/imgboard/img-box/img20120124211203.png

548 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:14:40.99 ]
とりあえず21と22の間でいいよ

549 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:18:24.03 ]
staticの意味を正確に答えられるようになるまでstaticを書くな

550 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:21:10.60 ]
>>547
今書こうとしてるのがFormを継承したForm1クラスなので
その中に入れないとw



551 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:26:37.29 ]
>>548-550
ありがとうございます。21と22の間に
public void fileListUpTest() { textBox1.Text = "okok"; }
で動きました。


552 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 22:54:54.78 ]
前に同じコードを別の場所に複数書いたらダメと教えてもらいましたが
使う箇所は20箇所くらいあるものですが3行くらいのコードでもまとめないとダメですか?

553 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 22:56:05.94 ]
>>552
どういう処理かわからんけどクラスが別なら場合によっては分けるしかないんじゃないの?


554 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 22:56:53.75 ]
あくまでも決定を下すのはあなたの正義

555 名前:デフォルトの名無しさん [2012/01/24(火) 22:59:39.02 ]
>>552
関数の呼び出し自体は複数なってもいいぞ
ロジックを複数書くのはおかしいけど

556 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:00:21.55 ]
Cバカみたいに1行マクロみたいなことはしなくていい

557 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:06:29.73 ]
>>552
内容によるね

これは○○を〜する処理って明確にわかってるなら
メソッドに書き出したほうがいい

例えそれが一行だとしても明確な名前を付けてメソッドにしたら
確実にプログラムの理解度が上がるし後で変更しやすくなる

558 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:09:24.94 ]
こういう話は入門書では扱わないから
初心者は戸惑うよね

559 名前:デフォルトの名無しさん [2012/01/24(火) 23:15:35.49 ]
>>558
Cのころだとどこかのソースに関数置いておいて使うところでヘッダー取り込んで
使うっていうのが普通だったけどオブジェクト指向となるとその辺をどう吸収するかって
初心者は悩みそう

まあ悩んだら機能を持たせるクラスを作ってそこへほうりこんで必要になったら
newして使えばいいんだけどね

System.IO関連のクラスのような感じで

560 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:16:32.03 ]
こういう視点から見ると今の入門書はすべて落第点

プログラム入門と歌いながら他言語から移ってきた人用にしか見えない入門書ばかり



561 名前:デフォルトの名無しさん [2012/01/24(火) 23:19:33.78 ]
そこらへんは人のコード見て覚えた方が速いんだけどね
下手に考えながらやっても時間かかるだけ
最初は考えるより学ぶのが重要

562 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:22:20.77 ]
>>560
一応そういう本も擁護しとくと、「プログラミング入門」と「C#入門」はまた話が別。

まあそうは言っても、あえてそこを曖昧にしてたり、前書きにはっきりプログラミング初心者を
読者対象と書いてあるのに中身は全然そうなってない詐欺的な本とか実際あるね

563 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:22:53.32 ]
気になるならTargetedPatchingOptOutAttributeでも貼れば?

564 名前:デフォルトの名無しさん [2012/01/24(火) 23:23:26.70 ]
オブジェクト指向と一言で済ますけど
オブジェクト指向じゃない言語をやって
初めて理解できるものだと思う

565 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:23:40.78 ]
ピクチャーボックスが20個あってクリックしたらそれをボタン名にするというものなのですがどうでしょうか
if (e.Button == MouseButtons.Left)
{
button1.Text = "1";
}
の4行か下の呼び出しの1行か
void setButton1Text(MouseEventArgs e,int num)

566 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:24:45.80 ]
部分的なコードはるな

567 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:25:59.26 ]
でもC#はまだましな方だな。
Androidの本は本当に酷いのが多い。っていうか、まともな本ってあるのかな。

568 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:26:07.00 ]
よく分からんがループ内でクロージャ使ったイベントハンドラ作れば対処できそう

569 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:28:03.85 ]
大量のコード貼る場合は>>2のサイト使ってね

570 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:28:59.16 ]
>>565
その様子だと、個々のPictureBoxごとにイベントハンドラを用意してそうだなw
まずそれを1つにまとめることを考えた方がいい。



571 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:31:24.05 ]
>>565
setButton1Text
この名づけ方はただやってることをそのまま名前にしただけだよね

もっと意味のある言葉で書き換えられないの?

俺はそのソース見てないけど
何のためにあるボタンに
なんでテキスト変更してんのかわからない

選択した画像に何か処理するためのボタンじゃないかと思うけど

572 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:31:50.75 ]
PictureBoxを継承すればいいじゃまいか

573 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:31:56.48 ]
>>565
そういう機能があるカスタムコントロールを作ればいいじゃん
もしくは、ピクチャボックス作成時に、イベントハンドラを登録するとか
var pb=new PictureBox();
pb.Click=new EventHnder(rename())

574 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:41:53.93 ]
>>565
書き捨て
つまりもう二度と変更しないならそのままでいい

ただしこれは今のレベルでの話

575 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:44:18.56 ]
偉そうに言ってる奴らが一番ズレてるなw

576 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:47:29.61 ]
いくつか方法があるみたいですね
>個々のPictureBoxごとにイベントハンドラを用意してそうだなw
が気になります。object sender, MouseEventArgs eを丸投げして一まとめはわかりますが、
イベントプロシージャが20個要らない書き方があるということですか?

名前の付け方はいつもこんな感じでやってることを書くようにしてますが処理の内容を書くべき?
でもそうすると処理をするメソッド名が困るような気が・・

577 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:50:29.00 ]
>>576
>イベントプロシージャが20個要らない書き方があるということですか?
あるよ

どういう目的の物を作ってて現状どういうコードなのかとかわかれば
アドバイスもしやすいんだが・・・

578 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:51:23.04 ]
>>576
うん、今の段階で君が最初に調べて覚えるべきことは、
コードでコントロールのイベントをメソッドに紐付けする方法。

あとのことはそれから考えればいいよ。

579 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:55:30.52 ]
ピクチャーボックスが20個あってクリックするとbutton1.Textが「nの画像を縮小する」になって
それを押すと縮小して保存するというものなんですが・・
>>578調べてみます

580 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 00:09:13.33 ]
webプログラムからC#にきたんですけど
フォームアプリケーション製作にMVCで作成できますか?
フレームワークをググってもasp.netばっかり引っかかってしまうので



581 名前:デフォルトの名無しさん [2012/01/25(水) 00:11:29.74 ]
MVCぽいことをやる場合はWPFかな?
winformは・・・


582 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 00:26:23.87 ]
できた^^
pastebin.com/nbCye2hv
↑でいいですか? (ピクチャーボックス20個一まとめの件)

583 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 00:26:40.44 ]
javaといえばMVC
c#も言語的には大して変わらない

WPFは地獄w

584 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 00:29:15.66 ]
>>582
なんでインデックスが1からはじまってるんだろう・・・。
なぜfor文を使わないんだろう・・・。

585 名前:デフォルトの名無しさん [2012/01/25(水) 00:30:07.25 ]
>>582
静的に設置してあるpictureBoxのインスタンスを配列に入れるのは譲ったとしても
その後のClickイベント割り当てはせめてループにしろw

586 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 00:37:51.69 ]
あ、ほんとだ^^これはforでいいですね
インデックス番号はコントロール名と統一してみました。
でも大体正解みたいでよかったです。こんなまとめ方は想像もしてなかったのですごく良いことを知った気分です♪

587 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 01:26:45.39 ]
using されているのに
button.MouseDown += new MouseDown(button_Click)
としないのはなんで。自分で完全修飾名書いたのか。
俺は冗長なのが嫌いだから new MouseDown もかかないで、暗黙の型変換に任せるが。
まあ、これは人によると思うけど。

+= のあとに tab 2 回押せばコードスニペットっていう機能で勝手に
メソッドが追加される。
あと、こういったコードを書くときは短形編集機能を知っておくといい。
alt 押しながらマウスなりキーボードなり (Shift + 矢印) で選択すると短形編集ができる。

588 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 01:34:07.96 ]
あと、テスト・サンプルコードかもしれないけど一応突っ込んでおく。初心者スレなので。
Load イベント内でイベントを登録するのはよろしくない。
Form1 ってことは MainForm だろうから問題はおそらくでないが、
一般に Form.Load イベントは 1 回しか呼ばれるとは限らないから。

今後の拡張も考慮して、コンストラクタ内で追加するようにしたほうがいい。
public Form1() {
. InitializeComponent(); // コントロールの初期化部分。この後に記述する。
. RegisterEvent(); // イベント登録するメソッドとしてまとめるほうが多分いい。
}
private void RegisterEvent() {
. p[1] = pictureBox1;
. ...

589 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 02:27:40.37 ]
VC# 2010 Expressを使ってます。

メインフォームとサブフォームで「Listviewをcsvファイルに保存する」という
同じメソッドを使うのですが、やはりクラスファイルなどを別に作って呼び出した方が
良いのでしょうか?(と言ってもその方法がわからないのでこれから勉強するのですが)

それともこれくらいならわざわざ別ファイルを作るのはかえって効率悪いのでしょうか?

590 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 02:35:51.65 ]
どう考えてもフォームクラスからは分離するべき。
ファイルは同じでもいいがせめてクラスは別にしなさい。



591 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 02:41:57.21 ]
>>589
別のファイルに分けた方がよい
当然クラスも別物が必要になる

ただ小規模で単機能の共通関数をいくつか使うだけなら、あえて専用のクラスにしなくても、
MyCommon みたいな共通関数格納用のクラスをあらかじめ作っておき、
そこに関数だけを追加していく手もある

592 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 02:43:10.12 ]
static class ListViewHelper {
public static void SaveAsCSV(ListView listview, string fileName);
}
みたいなの作るとか。拡張メソッドにしてもいい。
データを持つクラスがあるならそこにメソッド書いたほうが見通しがいいかもしれない。

593 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 02:47:02.90 ]
すいません、589じゃないけど便乗です。
589が言ってるみたいに複数のフォームから呼び出す場合は別クラスでいいとして、
1箇所こっきりしか使わない場合でも別クラスにすべきでしょうか?
正直、クラスの作り方とか概念は理解できても、どういう場合にクラスを分けるかって
ところで毎回迷います。入門書みたいに、従業員クラスがあってどうのこうのみたいな話だと、
ついフォームクラス複数+データ保持クラス1個みたいなとこで満足してしまい結局はフォーム
クラスが肥大化しがちで、これでいいのか迷ってます。
すいませんなんか抽象的な話で。


594 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 02:49:23.54 ]
public PictureBox[] p = new PictureBox[21];

p[1] = pictureBox1;
  :
p[20] = pictureBox20;

VB脳…

595 名前:589 mailto:sage [2012/01/25(水) 02:49:39.45 ]
皆さんありがとうございます。

>>590
やっぱり分離すべきですよね。

>>591
なるほど、そういう方法もあるのですね。
関数の分だけクラスファイルを作るのはどうなんだろうと思っていたので
良い勉強になりました。

>>592
なるほど。詳しく説明していただいてありがとうございます。
とりあえず「格調メソッド」をggってきますw

596 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 02:50:00.39 ]
魔法の言葉
#region

597 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 03:10:21.20 ]
>>593
良くないよ。
フォームには、「このボタンが押されたらこの処理を呼ぶ」みたいなルーティングと、
「データが更新されたらしいので描画しなおす」って処理以外書かない方が無難。
処理の実体は分離。

598 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 03:17:41.66 ]
別に複数のフォームから使うから別クラスにするわけではなくて、
関係したものをクラスとして扱う。
関係ないものがそのクラスにあるのは気持ち悪いと思うべき。

だから、クラス名とそのメソッドの処理内容がかけ離れていないかを基準とする。
例えば、ListView を CSV 化するメソッドはリストビュー関連または、
そのデータ関連のクラスに書かれるべきだ。Form ではなく。
(プロジェクトが小さいのならば余り考えなくてもいいと思うが)

特に、見た目と処理部分を分けることをビューとモデルの分離といい、
MVC, MVVM とかいったパターンがあるくらい重要な概念。
だから最終目標は、UI (見た目)クラスには UI 関係のみが書かれていて、
イベントで処理メソッドを呼ぶだけ、とすること。
まあ、数年勉強してから勉強するのがいい。難しいと思う。

まずは、関連性からクラスを分け、private なりを駆使して
他のクラスから使いやすいようにする。
次に見た目の部分も、UserControl でパーツ分けをするといい。
この時、TextBox.Text とかは直接公開するのではなくプロパティを使う。
UserControl を作るころには必然とデータとビューが分離してくる。はず。

あとは region 使ってまとめる。

599 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 03:22:13.07 ]
クラスとしてまとまっていると気持ちいい、そうでしょ?

600 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 09:23:34.28 ]
他人に使ってもらうことを意識するといい



601 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 10:13:22.82 ]
MS以外の他の人の作ったライブラリ使ったことがあると
結構勉強になると思う

これは何でこんな場所だ とか この名前はちょっと
とか その逆もまたしかり

602 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 11:09:45.61 ]
配列をランダムに入れ替える関数の作り方を教えてくれ

a[0]=3、a[1]=1,a[2]=5で
randomarray(a)
ってやったら
a[0]=5、a[1]=1、a[2]=3
みたいに配列の内容がぐちゃぐちゃになる関数です

603 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 11:11:32.71 ]
配列のシャッフルでぐぐれ

604 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 11:42:47.03 ]
いったん全部Listに突っ込んで乱数で一個ずつ取り出してListから削除して配列に前から順に入れるのがわかりやすい
ちょっと工夫すればインプレースでもできるけど考え方は全く同じ

605 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 11:52:09.06 ]
>>604
というか配列なんて使わないでList<T>そのまま使ったほうがリアルなシャッフルに近くなるけどね
乱数ででた数字の場所を抜き取って後ろにつけるとかやっていけば

606 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 12:00:11.93 ]
それやるならリスト使わずにそのまま配列でやればよくね

607 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 12:11:55.00 ]
>>606
使った奴消さないと何回も同じ奴選んじゃうでしょ

608 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 12:43:28.54 ]
そんな小難しく考えなくておk
ideone.com/lvlG7

609 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 14:18:44.97 ]
for(i = 0;i < n;i++)
{
j = 乱数(0〜n-1)
array[i]とarray[j]を交換
}

610 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 15:39:56.18 ]
>>608
OrderByは同値の時に順序が残るから
同値の場合に元の配列の前にある方が前に来るので
完全なランダムになってないと思う



611 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 15:46:28.43 ]
for(int i = array.Length - 1; i >= 0; --i)
{
var r = rand.Next(i + 1);
array[i] = array[r];
}
これでいいはず
これが正解でしょ

612 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 15:50:46.77 ]
違うわ
for(int i = array.Length - 1; i >= 1; --i)
{
var r = rand.Next(i + 1);
var temp = array[i];
array[i] = array[r];
array[r] = temp;
}

こうかな

613 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 15:55:15.25 ]
適切なのはあっても正解なんざねぇよwww


614 名前:デフォルトの名無しさん [2012/01/25(水) 15:57:58.16 ]
そうだな
プログラムにあるのは参考例であって正解はないよ

結果的に目的の動作をすれば極端な話どんなコード書いてもいいし
動けばいいんだよ

ただそれだと困るので参考例は必要だけどw

615 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 16:49:02.93 ]
実数の限界があるから何をどうやったって偏りは残るわい
選択して抜いていく方式の場合はすべての要素を等確率で選ばなければいけないが
丸めのせいで無理

616 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 17:52:21.20 ]
俺だったらiはカウントアップするな

ソートの逆のような感じ

617 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:42:31.66 ]
丸めどうこう以前に、擬似乱数は均等に分布しないだろ。

618 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:44:45.54 ]
とりあえず今日は何もコード書いてません
何か地震雲が発生したらしいじゃないですか
何で先輩方はやる気あるんですか

619 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:49:43.11 ]
2ちゃんねるの専ブラを作りたいのですが細かい機能は省くとして
初心者がやると手間取ったり難しそうな処理はどんなのが考えられるでしょうか

620 名前:デフォルトの名無しさん [2012/01/25(水) 18:51:59.69 ]
>>619
今は作り方を解説してるところもあるので別になんにもないよw
cs2ch.blog123.fc2.com/blog-entry-1.html

面倒なのは今時差分取得を推奨する2ch特有のアクセス方法くらいかな?



621 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:09:35.51 ]
乱立してるからいまさら公開しても誰も使ってくれないだろうな
逆に使われだすと今度はキチガイユーザーの粘着に耐えられるかがポイント

622 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:17:02.77 ]
今から参入してもお金にならないので僕はこんなのやりたいと思いませんね
あるもの使えばいいじゃない

623 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:18:47.37 ]
ファイルを読み込んで1行ずつ配列にすることはできませんか?
PHPのfile関数と同じことがやりたいのです

624 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:33:11.34 ]
よく分からんが、File.ReadAllLines

625 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:37:17.25 ]
>>624
ありがとうございます

626 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:38:01.10 ]
richTextBox1.SelectionColorでColor.Blackみたいに指定するのではなくて
rgb 0,0,0と数字で指定する方法をご教示お願いします

627 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:52:36.44 ]
つ Colorのメンバ一覧

628 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 20:56:14.01 ]
Color.FromArgb メソッド

629 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 20:59:31.77 ]
>>627-628
補完だしたらBlackとかRedのところにそういうもの混じってたんですね
どうもありがとうございます

630 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:43:13.46 ]
Form1_Loadの中からフォームにキーダウンイベントを入れたいのですが
エラー 1 デリゲート 'System.EventHandler' に一致する 'form_KeyDown' のオーバーロードはありません
っていうエラーが出てしまいます
どうやってイベントを登録したらよいでしょうか?

this.KeyPreview = true;
this.KeyDown += new EventHandler(formEvent_KeyDown);
private void formEvent_KeyDown(object sender, KeyEventArgs e) { }



631 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:45:08.26 ]
自己解決
KeyEventHandlerって打ったらできました

632 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:46:02.82 ]
>>620
ブログって記事見難いんだよなー
そこもブラウザの記事見たくてもまとまってないからみれないし

633 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:46:08.62 ]
Form1_Loadから
private void formEvent_KeyDown(object sender, KeyEventArgs e) { }
を出す

それから入門書を読む

634 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:47:35.50 ]
>>632
そもそもc#の質問じゃないでしょ

635 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:55:45.12 ]
最近のVSならthis.KeyDown+=って打ってからTab連打すると勝手にハンドラー作ってくれなかったっけ?
アドインの機能かもしれないけど

636 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:58:22.52 ]
WinFormのwebBrowserはIEをアップデートすると一緒に新しいものになりますか?

637 名前:デフォルトの名無しさん [2012/01/25(水) 21:58:36.32 ]
>>632
monazilla.org/index.php?c=6-20

638 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:04:47.12 ]
教えてください。
クラスのプロパティにインデクサを利用したい場合、どのように実装するのが一般的でしょうか。

・やりたいこと
 xml 形式の設定ファイルを用意し、このファイルを管理するクラスを作成する。
 必要な要素にはプロパティを用意してファイルを意識させないように参照/設定を行う。
 参照する要素にはノードの属性値を利用したい項目があり、この属性値をインデクサで指定したい。

・対策案
  a. プロパティの型として専用のクラスを用意し、[] 演算子のオーバーロードを実装する。
   ‥‥ただ、基本的にはデータ型は string でやりたいのだけど、この代理クラスを用意すると
   プロパティへの参照をクラス経由で行うことになり煩雑? operator= があればなぁ。。。

  b. ファイルの内容をあらかじめ Dictionary なりに読み込んでおき、この Dictionary を直接外部公開してしまう。
   あるいは代理クラスを用意してそのインデクサを Dictionary のキーとして参照する。
   ‥‥必要ない項目をあらかじめ読むのもなぁ。。。

強引に書けばいくらでもやり方はありそうなんですが、なんだか美しくないような気がします。
美しいかどうかは別にいいとしても、一般的にわかりにくくなってしまっては面白くないので、どうしたものかと。

639 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:12:00.77 ]
普通にメソッドにする
C++脳みたいな妙なこと考えないで素直にするのが一番一般的にわかりやすい。

640 名前:デフォルトの名無しさん [2012/01/25(水) 22:18:47.26 ]
みんな>>637の資料みてC#なりの書き方してるのに否定する>>632ってw



641 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:18:59.72 ]
VC#の右下のプロパティから設定してもフォームデザイナに反映されないのに
コードからプロパティを設定すると反映されるプロパティってありますよねreadonlyプロパティとか。
やっぱりプロパティって右下で設定しないものでしょうか?

642 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:35:42.02 ]
>>624
ttp://air-snowly.cocolog-nifty.com/rakkyo/2008/02/c2_223f.html
のようなことがやりたいのですが.Net4.0だと簡単にできませんか?

643 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:36:40.98 ]
>>642は誤爆です

644 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:46:30.86 ]
>>638
いまいち要領を得ないんだが、operator implicitで良くない?
XLinq系のように

645 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:51:11.19 ]
属性値をインデクサで指定しないが正解っぽい

646 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:52:26.93 ]
#000000と0xFF000000って同じ?

647 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 22:56:18.75 ]
禅問答か

648 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 23:02:09.17 ]
プログラムを終了するときにApplication.Exit();だと確実に終了できないって電車の中で盗み聞きしました
どのようにして終わらすのでしょうか?

649 名前:デフォルトの名無しさん [2012/01/25(水) 23:07:50.24 ]
>>646
どういう状況においてだよ
色コード?

650 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 23:34:17.32 ]
c++/bliのwinフォームだとマネージ型classってexternできなかったんですが、
C#のwinフォームではマネージ型classをexternして別ファイルで参照。
みたいな事って出来るんですか?

後、できない場合、他の方法で上の条件を満足する動きをするように組むにはどうしたら良いですか?

最後に、今日からC#改めてやり始めようと思ってるんだけど、C++みたいなノリでは書けないですよね



651 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 23:39:30.50 ]
意味がわかってないかもしれない。すまん。
DLL にして(クラスライブラリを作成して) static なインスタンスとして
どっかに保持しておけばいいと思う。

そもそもマネージ型しか C# にはない。

652 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 23:39:54.04 ]
>>650
c++を使えて
c#やったら幸せになれる

653 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 23:46:00.43 ]
c#のバージョンと.netのバージョンって対応関係あるんですか?
c#4.0には、.net4必須みたいな。

654 名前:650 mailto:sage [2012/01/25(水) 23:48:16.20 ]
>>649
すいません、説明が足りませんでしたね。
外部からリソースを読み込んで、
その内容をclassに突っ込んで
他の.csから上のclassのメンバを参照しながら云々くんぬん処理してくって質問です。

655 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 23:48:41.41 ]
いまんところC#のバージョン=.NETのバージョン
少なくとも整数バージョンはね

656 名前:650 mailto:sage [2012/01/25(水) 23:50:14.49 ]
>>652
連レス申し訳ない。

なるほど。
二刀だとかなり良いみたいですね!
一度挫折しましたがもう一度頑張ってみます

657 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 23:50:55.93 ]
>>654
何だか20世紀の臭いがするな

658 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 23:53:21.13 ]
webBrowserでサイトを表示してファイル名の入力欄の隣にある参照というボタンを押したいのですが
DOMのエレメントの中には含まれないようなのでClickイベントを発生させられないみたいです
マウスポインタを操作する以外でほかに方法があったら教えてください。

659 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 23:55:09.69 ]
>>656
おれは >>652 じゃないけど、
C++ レベルで言語を知っていると C# を使う際にも効率的なコードが書けるよ、
という意味であって、C++ を頑張れという意味ではないと思うんだ。
もしくは、高速化のために部分的に C++ を使えるからいいという意味か。

マネージ型云々言うってことは、.NET 触っているのだろうけど、
それならば素直に C# 使うほうがいい。

660 名前:638 mailto:sage [2012/01/25(水) 23:56:21.77 ]
>>639,644,645
ありがとうございます。
operator implicit は知らなかったのですが、試してみます。

インデクサを使わずにメソッドを使うというのも選択肢ではあるのですが、
既存部分がプロパティを使ってるのと、自分の 趣 味 で。
前言と矛盾してますね。すみません。



661 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:01:49.86 ]
>>658
それC#の質問じゃないと思うけど、FileUploadはJavaScriptからロクに弄れないから無理だと思うよ

662 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:04:37.27 ]
>>658
セキュリティ的に無理じゃね

663 名前:650 mailto:sage [2012/01/26(木) 00:06:50.01 ]
>>659
回答ありがとうございます。
それはわかっていたつもりです。
C→C++とやってきてC#やってみようかな
と昔思った時にC#の本を借りてきたんですけどすぐ挫折してしまって
で、今またC#が必要っぽい状況になったので改めて学び直そうと思ったという事です。

664 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:08:11.23 ]
C++ ではなくて C# に挫折したのか。勘違いだったわ。ごめん。

665 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:13:12.60 ]
すいません、comoさんのところのサンプルコードなのですが、
var thumb = sender as Thumb;
if (thumb == null) return;
      var parent = thumb.Parent;
if (parent == null) return;

double x = Canvas.GetLeft(parent);
if (double.IsNaN(x)) x = 0;
double y = Canvas.GetTop(parent);
if (double.IsNaN(y)) y = 0;

Canvas.SetLeft(parent, x + e.HorizontalChange);
Canvas.SetTop(parent, y + e.VerticalChange);
というコードを実行するとParentに対して
'System.Windows.DependencyObject' から 'System.Windows.UIElement' に変換できません
というエラーが帰ってきます。親要素を取得したいのですが、どうすればいいのでしょうか?

666 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:16:32.48 ]
思っていたとおりだ。
Parent は DependencyObject という型だから、UIElement 型に変換しないといけない。
実際に、親要素はなんなのかな。

まあ、
if (parent == null) return; のあとに
parent = parent as UIElement; とでもしておけ。

667 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:17:22.66 ]
実際のUIツリーはVisualTreeHelperで調べるんだよ

668 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:18:30.59 ]
ごめんミスった。
var uiElement = parent as UIElement;
として、以降 parent -> uiElement

669 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:19:11.28 ]
それじゃだめだろ

var parent = thumb.Parent as UIElement;

としないと

670 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:21:10.77 ]
>>669 では return される。
>>668 なら throw される。



671 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:21:11.08 ]
(UIElement)で例外出す方が後の工程にやさしいと主張しておきたい

672 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:23:32.68 ]
>>670
returnされるならそれはそれで正しい動作だろ
あとでCanvas.GetLeft(parent);やってんだから

673 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:24:54.17 ]
おお、みなさん有難う御座います!とりあえずヒントもとにcomoさんのサンプルが再現できるよう頑張ってみます!
>>669さんのやり方でコンパイルは通りましたが後の処理がうまくいかないです…>>666さん、>>669さんのやり方試して見ます!本当に有難う御座います!

674 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:28:31.55 ]
Thumbだからドラッグアンドドロップでもやってんだろ

675 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:40:18.14 ]
だめですちょっと上手く動きません…みなさん本当にすいません。お力添えいただいたのですが完成させることできませんでした…
本当に本当にありがとうございました!

676 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:43:48.22 ]
Parent の中身がわからないと対応できないと思う
ステップ実行とか、ブレークポイントを覚えるといい
後は、というより前提として文法を覚えたほうがいい

677 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:44:14.88 ]
サンプルコードで勉強したいんだろうけど
そのサンプルコードすら動かせない

この世界ではそんなことが日常茶飯事だよ
でもめげないでね

678 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:47:33.90 ]
>>661-662
そうですか・・別の方法を考えて見ます。
ありがとうございました

679 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:48:42.10 ]
そうですね…知識、足りないですね。ExplessionBlendばっかりにかまけてて…
もっと勉強してきます!ありがとうございます!

680 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:48:48.59 ]
var parent = thumb.Parent;
Console.WriteLine(parent.GetType());

かなんかやると出力ウインドウに本当の型名が出てくるから
それをコピペしてググるといいよ

Console.WriteLineって書いてある行でF9を押して行を赤くしてから実行するとそこで止まるから
そうなったらparentにマウスカーソルを合わせても情報が見れる



681 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:51:05.48 ]
>>680
ありがとうございます!別の課題に当たってからもう一度やってみようと思います。その時参考にさせて頂きます!

682 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 00:53:20.45 ]
d.hatena.ne.jp/CoMo/20110316/1300288737
元ネタこれだろ?

double x = Canvas.GetLeft(parent);
ここが間違ってんだよ。親の位置取得してどうするのさ

683 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 01:01:16.11 ]
C#ユーザーの為のAndroidプログラムの本とかってないのかな

684 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 01:03:35.34 ]
queue はオワコン

685 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 01:05:17.37 ]
ないでしょ。
あなたが本の著者なら、そんな読み手をわざわざ限定するような本を書くでしょうか?
それもAndroidバブルの時に

686 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 01:08:12.97 ]
MONO for AndroidってGUIはXMLでしか編集できなくて端末内ライブラリがアプリ無しで50MBぐらいあるのな

687 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 02:46:33.85 ]
INotifyPropertyChangedの実装を簡単にする方法はありますか。
今は下のように書いてます。プロパティごとに毎回こんなの書きたくないです。
public string Hoge { get { return _hoge; } set { if (_hoge != value) { _hoge = value; if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs("Hoge"); } }

↓みたいなマクロを使えたら嬉しいんですが。
#define MAKE_PROPERTY(NAME, TYPE) \
private TYPE _##NAME; \
public TYPE NAME { get { return _##NAME; } set { if (_##NAME != value) { _##NAME = value; if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(#NAME); } }

MAKE_PROPERTY(Hoge, string)

688 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 06:47:36.70 ]
コードスニペットでも登録すれば

689 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 09:05:40.77 ]
>>682
ありがとうございます。そのページのコードは問題なくどうさするんですけど、問題は次のオブジェクトを並べる部分で…
自分で

690 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 10:37:33.40 ]
.Net4.0がインストールされてるかどうか調べる方法はありませんか?



691 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 10:39:55.40 ]
.net4でコンパイルしたのに3.5でも動くのはなぜ?

692 名前:690 mailto:sage [2012/01/26(木) 10:53:51.96 ]
>>691
それって.Net4.0の新機能を使ってないからじゃないですか

693 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 10:56:09.46 ]
>>692
そうか。新機能を使ってなければ3.5でいいのか。
ありがとん。

694 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 11:40:01.75 ]
初心者で文法は終わったくらいなんですが、上達するには何をしたらいいですかね?
XNAでゲーム作りたくて、C#からプログラミング初めました
文法はわかってるつもりですが、でかいものを作ることができません
少ないコードのサンプルがいいんですが、何かいいホムペとかないですか?

695 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 11:41:51.83 ]
自分が欲しいツールを作っていくのが一番
文法わかっているなら、少ないコードのサンプルなんて不要だろ
DOBONで十分

696 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 11:51:37.18 ]
他人のソースを読むことは大変勉強になる

海外ではオープンソースのコードがいっぱい落ちてるからそれでも読んだらいい
codeprojectなどがいいかもしれない

697 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 11:54:06.64 ]
理想的なコードだけじゃなく、酷いコード読むのも勉強になるしなw

698 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 11:56:28.96 ]
まずは小さいものを大きくしていくのをやってからでいいのでは?
読んでばかりじゃ自分のものにならない。

699 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 11:57:45.71 ]
みなさまありがとうございます。>>695です
なんというかプログラマ的思考法に慣れてないようでかなり苦手意識感じてるんで少ないコードのって話になっちゃいました
幸いxnaのサンプルがあるんでそれが近道のようなので読んでみます ありがとうございます

700 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 11:58:31.46 ]
ちょこっとした物も作れないようなスキル者がいきなりXNAでゲームなんか作れるわけないじゃん
作れるとしたら単なるコピペで動かせるようになるだけ



701 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 15:10:06.07 ]
public MainWindow()
{
InitializeComponent();

_mediaelement = new MediaElement();
_mediaelement.Source = new Uri(@"D:\test\test.mp4");//テスト用の動画を指定。長さは30分
_mediaelement.ScrubbingEnabled = true;//シーク中の動画が描画されるように設定
_mediaelement.LoadedBehavior = MediaState.Manual;//再生・一時停止・停止が行えるように設定
_mediaelement.Position = new TimeSpan(0, 10, 0);//動画を10分までシーク
_mediaelement.Pause();//動画が描画されるように一時停止。

MediaArea.Children.Add(_mediaelement);
}

この後、ボタンをクリックして _mediaelement.Play();を呼び出すようにしたのですが、なぜか10分から再生されず、動画の最初から再生されてしまいます。
どこがいけないのでしょうか。

702 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 15:31:39.92 ]
Positionは再生後にしかいじれない

それより…

703 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 19:21:14.80 ]
>>694
プログラミングコンテストの問題で練習するというのはどうだろう。
wmecast.net/user/jonosuke


704 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 21:29:44.55 ]
コンストラクタに渡すパラメータのチェックって呼び出し元ですべきですか?それともコンストラクタ内でやるべきですか?

705 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 21:39:05.19 ]
DbC的には呼び出し元

706 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 21:45:14.29 ]
外部に公開しないのならパラメータのチェックをする必要性すらない

707 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 21:48:11.00 ]
失敗したらバグと見做すチェックは呼び出し先でやる
それをあらかじめ回避するのは呼び出し元の責任

708 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 21:48:19.01 ]
DbCは契約が守られなければAssertするんだから内部でチェックしてないってのとは全く違う

709 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 21:53:02.58 ]
visual studio2010を使っています。
設定ファイルを開くとかそういった細かい関数、クラスを
include "library.cs";とか簡単に外部ライブラリ化するにはどうしたらよいのでしょうか

やりたい事はこのサイトで書いてある事でいいのですが
smdn.jp/programming/netfx/classlibrary/0_howtocreate/
このサイトはVSのバージョンが古く、2010と画面が違う箇所があって躓いてしまいました。

710 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 21:55:31.64 ]
新規プロジェクトでクラスライブラリを作成して
ライブラリを使うプロジェクトでは既存のプロジェクト追加して使うのが簡単



711 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 21:55:32.30 ]
呼び出される側がチェックするのは事後条件と不変条件
パラメータのチェックは呼び出し側の仕事

712 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 21:56:21.64 ]
保証されていることを確認すんのは誰だよマヌケ

713 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 21:58:35.31 ]
コンストラクタ内でパラメータエラー見つけたら
例外を投げないといけない

714 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 22:00:33.20 ]
呼び出し側はパラメータの細かい条件なんて知らないでしょ
同じ人が書いてるならいいんだろうけど

715 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 22:00:45.54 ]
リリースコードに入らないだけでDebug.Assert(String.IsNullOrEmpty(name));が並んでいる

716 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 22:02:06.87 ]
staticのCreateメソッドでも作っとけよ

717 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 22:06:53.39 ]
総武ソフトウェア推進所ってなんやねん

718 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 22:07:46.86 ]
VC#2012って出ますか?
2008から2010って3年で出てるのでもしかして出ますか?
今から2010を入れて勉強するのはやめるべきでしょうか?

719 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 22:11:34.31 ]
2012が出たって基本は何も変わらないと思うけど
2008以降そんなに変わってないよねC#

720 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 22:12:22.03 ]
VS2012って何?VS11とは違うもの?



721 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 22:12:26.04 ]
2012は出るよ
次のバージョンのC#は非同期サポートがはいるのでものすごく変わる

722 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 22:15:26.00 ]
「別スレッドからフォームにアクセスできません><」

これは変わらない

723 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 22:22:39.84 ]
別スレッドで処理が一区切りついたらUIスレッドに戻って更新して別スレッド処理を再開して…
のよくある流れが自然に書けるようになるからBeginInvokeを使う機会は減るんじゃないの
ちゃんと理解してないと使えないのは変わらないだろうけど

724 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 22:22:47.73 ]
XPだと使わしてくれないんだよな、次verからは

725 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 22:58:54.19 ]
すみません。質問いいですか?

コンボボックスにテーブルをバインドしてDisplayメンバとValueメンバを割り当てています。

そのValueメンバとある文字列が一致したDisplayメンバを得たいのですが

どうしたら効率がいいでしょうか?


お願いします。

726 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 23:02:50.30 ]
その程度の処理に効率もクソもないだろ

727 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 23:06:04.65 ]
うん
コンボボックスに一度に表示できる程度の常識的な数なら線形検索でも全く問題ない

728 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 23:11:44.83 ]
一応DataRowCollection.FindとかDataView.Findは気持ち効率的ではある
DataTable.Selectはダメだぞ
LINQ to DataTableは知らん

729 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 23:12:50.62 ]
ありがとうございました。

foreachでやる方法でいいですかね?

730 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 23:58:55.09 ]
n=>n=とある文字列



731 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 01:05:26.81 ]
Windows 用アプリケーションとASP.netってのがありますけど
ここはWindows用アプリケーションのことを質問するスレですか?

732 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 02:28:37.54 ]
ピクチャーボックスへ画像ファイルをD&Dでファイル名を取得する部分なのですが、
訳があってドロップではなくボタンでもドロップと同じ経路で画像を表示したいのですが、
下のコードの?の部分の書き方を教えて頂きたいです。

pastebin.com/mFqtV9aC

733 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 06:18:09.23 ]
>>731
いいえ、C#のことを質問するスレです

>>732
var dataObj = new DataObject( DataFormats.StringFormat, filename );
var e = new DragEventArgs( dataObj, 0, 0, 0, DragDropEffects.All, DragDropEffects.Copy );

かな
だけどこんな糞な呼び出し方しないで、
画像を文字列で設定するメソッドを書いて
それをpictureBox1_DragDropとbutton1_Clickの両方で呼ぶ方がいいよ

734 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 06:23:03.71 ]
ああ違うわ
DataFormats.FileDrop形式でデータオブジェクトにデータをセットしないといけないんだけど
それはグローバルメモリ確保したりCOMの知識がいるからこのスレ的にはほぼ無理

735 名前:650 mailto:sage [2012/01/27(金) 08:28:14.01 ]
ちょっとC#の入門ページみれば
ref修飾子がありました。
やりたい事にうってつけの動作でした。
ありがとうございます。

736 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 09:23:09.32 ]
refはすごく便利だからなぁ
よくわからんかったらとりあえずrefでいいし
でも、ちゃんとoutも理解しておくんだぞ

737 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 13:07:29.75 ]
c++の人はすんなりoutわかるだろ

738 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 13:18:26.28 ]
>よくわからんかったらとりあえずrefでいいし
おま・・・なんて恐ろしい事を・・・

739 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 13:50:08.38 ]
正直refの使い道は少ないし
多用するべきではない

740 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 14:08:07.70 ]
>>738
あ、dllの挙動がわからんかったら、とりあえずrefで渡して値が変わったか確認しろって意味ね
言葉足らずですまん



741 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 14:14:05.59 ]
dllの挙動ってDllImportのことか?

742 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 21:34:12.71 ]
>>733の方法でできました。
どうもありがとうございます

743 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 21:40:21.99 ]
Graphics.DrawImageについて教えてください。
マルチスレッドで、各スレッドの中でDrawImageを多用します。するとどうしても
CPU使用率が25%前後(クアッドコアなので1スレッドぶん)しか稼働しません。
いろいろ調べると、下記のサイトで全く同様の症状の人がいらっしゃったのですが、
どうも最終的には解決していないようです。ここにあるnew Bitmap(filename)で
ファイルをひらくのはやっています。

www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=42683&forum=7

また調べるとBitBltを使う方法もあるようですが、機能的にどうしてもGraphics
クラス、またはそれと同等の回転縮小平行移動が自由にできる機能が欲しいです。
高速化に良い方法ありませんか?

744 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 21:43:53.18 ]
DirectXかWPFを使う

745 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 21:51:30.81 ]
>>743
解決しているように見えるけど?

746 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 21:57:18.79 ]
ソフトウェア描画は遅いもの。どう頑張ってもGPUアクセラレーションには全然敵わないから
速度を求めるなら無駄な努力するよりWPF使ったほうがいいよ。
本当に画像の回転縮小平行移動だけでいいなら直Direct3Dも難しくないけど。

747 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 22:17:50.18 ]
なんか不思議な挙動だな
ideone.com/0fs5O

SetPixelを連打するだけなら余裕で100%行くんだけどな

748 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 22:20:28.66 ]
ownerって前もいたな
またお前か
注意力散漫だぞ

749 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 22:22:39.76 ]
すぐそうやってWPFを薦めるが、本当に速いと思っているのか?
WPFはGPU描画って鵜呑みにしてんじゃないの

750 名前:743 mailto:sage [2012/01/27(金) 22:30:03.87 ]
みなさんアドバイスありがとうございます。
GPUアクセラレーションより遅いのは仕方ないとして、1スレッドぶんしか動かない
ことが問題だと思っています。まさに>>747が指摘再現してくれているとおりです。

で、オススメしてくれたWPFはちょっと描画全体書き直しになりそうなので敬遠して
DirectXを調べてみようかと思います。今まで使ったことないのでまた苦労しそうだけど。
ちなみにDrawImageは画面描画のためではなくて画像処理だけに使うので、本当に回転
縮小平行移動しか使いません。>>746の難しくないという言葉をはげみに頑張ってみます。




751 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 22:43:21.97 ]
そもそもDirectXも仮想化レイヤ(GDIよりドライバに近いというだけ)だから、
DirectXを使用している=ハードウェア支援が受けられるではない。

752 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 22:55:45.76 ]
画像の線形変換付き描画だけならWPFは速いよ
ビットマップキャッシュをオンにすれば直接Direct3Dと遜色ない速度が出る

753 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 23:56:28.08 ]
>>747
Bitmapをファイルパス指定のコンストラクタで作るとロックがかかるから1スレッドしか動かんって>>743に書いてあるでしょうが

754 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 00:15:35.30 ]
ASPで、新しいタブで同じASPを表示したら同じセッションになってしまいます。
別のセッションにしたい場合はどうすればいいですか?
Abandonしたら元のタブのセッションも消えてしまいました。

755 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 00:20:42.22 ]
そういう仕様のブラウザをデプロイしてあげる

756 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 00:41:35.18 ]
>>754
同一マシンなら当然だろ…
タブ変えたら別セッションにしてたら通信できないだろ

757 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 11:15:24.64 ]
あるdllを参照に入れてから
そのdll用のusing System.○○をコードに書いてます
もしdllがない場合はエラーで例外とか強制終了になりますと思いますが
プログラム起動時にdllの存在を確認してなければエラーダイアログを出して終了させるという処理はForm_Loadに入れればいいのでしょうか?

758 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 11:36:56.36 ]
>>753
SetPixelは100%行くっていってんじゃん
人の話はちゃんと把握しろよ?

759 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 11:38:49.90 ]
>>757
プロジェクトの参照に追加しているのなら
プログラムのMainに入る前にロードの処理をやるから
確認する暇は与えられない

760 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 11:42:34.98 ]
いっそのことローカルコピーをtrueにしちゃえば

サイズはでかくなるけど



761 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 11:45:27.41 ]
だいたい>>743に書いてあれば正しいって頭おかしいんじゃねえか?
実測が最も正しいに決まってんだろ
そもそも>>743にすら

>Bitmapをファイルパス指定のコンストラクタで作るとロックがかかるから1スレッドしか動かん

などと書いていない

>using (FileStream fs = File.OpenRead("イメージファイル"))

>ここでファイル開いてますよね?
>そして、using句を抜けるまで、開きっぱなしってことですよね。
>この行をなくしたら、非同期になりません?

>Bitmap bitmap = new Bitmap("mypicture.jpg")

>とかならOKかと思いますが。

全然逆じゃねえか
ロックされたくなければnew Bitmap(fileName)使えといってんだよこいつは
自分が参照した文書すらまともに確認せずに人様にケチつけるとはどういう了見だ?
死ね
二度と俺に話しかけるな

762 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 11:59:13.29 ]
そんなことくらいでキレ過ぎw
初心者スレなんだから、回答者にもしたり顔の初心者くらい混じってるよ。
話に口を挟んだ挙句、それが間違ってるとなれば、腹が立つことは否定しないけど。

763 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 12:04:16.72 ]
>>181
>自分で提示したURLすらよく確認していない
>本当に死んだほうがいい

>>761
>自分が参照した文書すらまともに確認せずに
>死ね

引用するなら内容を確認しろ→死ねの流れが一緒だな
同一人物か?

764 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 12:22:29.01 ]
ildasmしても不審な部分は見当たらないんだよなあ。
www.dotup.org/uploda/www.dotup.org2568376.png

Gdipの方に何かあるとしか思えない。
だけどGdipはこのスレで扱うことじゃないよね。

765 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 12:41:12.18 ]
裏取ったわけじゃないから違ってても怒らないで欲しいが、以下にGDI+の話が。
social.msdn.microsoft.com/forums/en-US/winforms/thread/25cceaa4-f058-482a-8381-03698f73651a/
d.hatena.ne.jp/NyaRuRu/20061201/p1 (コメント欄)

中で何かやってるのは間違いなんだろうよ。
スレッドセーフでない=同期を使用していない、ではないからな。

766 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 12:53:32.70 ]
>>761

なんで最後まで読まないの?

>投稿日時: 2007-12-19 16:07
>あぶぽんさん、何度でも失礼してください(^^;
>ありがとうございます。

>FileStreamのCloseについて分かったことがあります。

>どうやら、Image.FromStream (Stream, Boolean, Boolean) メソッドの第三引数で動作が異なるようです。

>MSDNでは
> validateImageData
>  イメージ データを検証する場合は true。それ以外の場合は false。
>となっており、これを false にすると、FileStreamをクローズできません。
>true にするとクローズできます。
>new Bitmap()やFromFile()で作成した場合もクローズできます。

>true にすると new Bitmap() や FromFile と同等のパフォーマンスになるので、
>Imageオブジェクト内のデータの持ち方に違いがあるのだと思います。

>もう少し調査してみます。

767 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 12:58:21.16 ]
話しかけんなって言ってんだろゴミムシが

768 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 12:59:26.34 ]
お前ら土曜からら荒れててワロタ

それ以前に疑問があるんだけど
GDI+はSetpixelのような単機能とDrawImageのような複合機能を
同率に扱うと思うのか?

769 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 13:00:52.92 ]
しかも

>new Bitmap()やFromFile()で作成した場合もクローズでき
>true にすると new Bitmap() や FromFile と同等のパフォーマンスになる

読んでねえのはお前だろが下痢便野郎
「new Bitmap()と同等になった」と書いてあるだろが

770 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 13:08:25.10 ]
>>766
あぶぽんとやらが指摘しているのが、

>Bitmapをnewした方がファイルストリームをすぐ閉じるから速いのでは?

という点で、
それに対して質問者が、

>ファイルストリームを使用する場合はImage.FromStreamの第三引数をtrueにすると
>new Bitmapと同等のパフォーマンスが出るようになると確認できました

と報告しているんだと読み取れるが
一体これのどこからBitmapをファイル名でnewするとロックが掛かると読み取れたんだ?



771 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 13:12:34.73 ]
>>768
お前も論点把握してないのに口挟んでくるなよゴミムシ2号
100%行く処理もあるのにDrawImageだとシングルスレッドの制限が掛かるのはなぜかって話をしてんだよ
単機能がどうこう言う話じゃねえんだよ

772 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 13:19:41.71 ]
内部事情が分からない以上、仕方ないで済ますしかないんじゃないの。
構造体にin、outが使えないのはなぜですか?→内部事情です。
と同じで。
答えは出ないと思うよ。

773 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 13:22:52.99 ]
>>771
複合機能の処理部が一個しかないとは考えないのかね?

774 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 13:25:59.74 ]
下品な人を論破した

775 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 13:30:16.20 ]
>>773
どこかにそう書いてあるなら提示してみろよ
考えないのかね?
推測で全て知った風に語ってんじゃねえぞ

776 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 13:35:13.49 ]
>>772
別に答えを出したいとは思ってねえよ
人様に生意気なケチ付ける以上はそれ以上を提示してもらおうとしているだけさ

別にスルーされればそれでよかった
new Bitmapでロックとか抜かす勘違い野郎と
憶測で複合機能と単機能がどうたらと抜かす野郎と
このゴミ2名が現れなければ何も言わなかった
俺はな

777 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 13:43:09.84 ]
下品な人が負け惜しみ

778 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 13:52:06.02 ]
>>759
>>760
まじすか困りましたね
dllを更新できるようにdllとexeは分けたいのですが
dllがない場合の確認方法か
Form_Loadからusingの設定とdllを読み込む方法ってできないですよね?

779 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 14:00:25.41 ]
>>778
プラグイン形式のアプリケーションと同じ方法を取ればいいんだよ
.NET4ならMEF、それ以前ならインターフェースを定義しておいて、Assembly.Loadから使う
dobon.net/vb/dotnet/programing/plugin.html

780 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 14:06:17.14 ]
MEFは4だと.NET Frameworkに含まれているが
3.5以前でもcodeplexから落としてくれば使えることは補足しておく



781 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 14:17:25.34 ]
>>779
難しいそうですね
4なのでMEFでやるのが簡単にみえるのでやってみます

782 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 14:18:45.80 ]
MEFは、実際に動かしてみるとそうでもないが、解説が…。
msdn.microsoft.com/ja-jp/library/dd460648.aspx

783 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 15:40:24.26 ]
モーダルなダイアログが出たときはそこでコードの実行が止まりますが、
出た直後から違うスレッドを実行し始めたいのですが、
訳があって下のようにShowDialogの直前に書くことが出来ないでのすが
ダイアログが出るか監視していて出たら動き始めるイベントを作っておくことは出来るでしょうか?

System.Threading.Thread t = new System.Threading.Thread(hogeProces);
OpenFileDialog d = new OpenFileDialog();
t.Start();
d.ShowDialog(this);

784 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 15:47:05.87 ]
できないことはないが、そのイベントを発行する奴も別のスレッドでウィンドウが出るのを監視していることになる
本末転倒だろう

>ShowDialogの直前に書くことが出来ない訳を解消した方がいい

それと、本当にプリミティブなThreadが必要か?
ThreadPoolやTaskで代用できないか?

785 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 16:03:02.38 ]
>>783
Applicationクラスにおあつらえむきの静的イベントがあるよ

786 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 19:23:36.77 ]
描画処理に関して質問です。
BitmapクラスにはLockbits、UnlockBitsというものがあって、
ポインタを取得してその中身を高速で書き換えられるみたいですが・・・
それをフォームにGraphics.DrawImageメソッドで描画しようとするとDrawImageが遅いせいで
あまり何度も画面に書き換えが出来ません。。。

フォーム自体もポインタを取得して高速に書き換えることは可能でしょうか。

787 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 19:27:49.91 ]
そういう使い方はするなよ

788 名前:デフォルトの名無しさん [2012/01/28(土) 19:30:01.96 ]
何を作ろうとしてるんだろ

789 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 19:40:21.82 ]
PaintのeからhDC取れたろ
GDIで全部済ませればGDI+よりは格段に速いよ

790 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 20:27:17.68 ]
>>779
いや、DLLチェック出来ないか?
メソッドがスタックに積まれるタイミングでのロードだと思ってるんだけど



791 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 21:19:39.45 ]
>>787
すいません・・・
>>788
ゲームみたいに画面を1秒間に何回も書き換えるやり方を模索中でした
>>789
ありがとうございます。C#のをそのまま使うのよりよさそうですね、GDIのほうを調べてみます。

792 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 21:38:48.67 ]
もうDirect3DやWPFでピクセルシェーダ使えよ

793 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 22:43:56.56 ]
int i = 25;という型が決まった変数があります
この変数を100で割ってfloat型の0.25が欲しいのですが
int i = 25;
float f = i / 100;
これだと0になってしまいます
どのようにしたらよいでしょうか?

794 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 22:47:59.48 ]
float f = (float)i / 100.0;

795 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 22:49:54.83 ]
float f = i / 100.0f;
float f = (float)i / 100.0f;

どっちかでいけるかな?

IDEは
100 をint
100.0 をdouble
100.0f をfloatとみなす

ちなみに100の上にマウスカーソルを乗せるとIDEがどんな型としてみてるか
ポップアップされるはず

796 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 22:52:08.71 ]
個人的には途中の計算は全部doubleでやって最終的にもし必要ならfloatにしたい

797 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 22:52:12.14 ]
floatに型キャストしたら出来ました
ありがとうございます
msdn.microsoft.com/ja-jp/library/b1e65aza(v=vs.80).aspxみてたんですが
floatって整数1桁以上は使えないと思っててintをfloatに型キャストしたら桁が削れるのかなと勝手に思ってました

798 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 23:14:25.42 ]
short型を扱うとき、
x = x - 1;
みたいにできる方法はないですか?

799 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 23:21:12.22 ]
急募:エスパーさん

800 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 23:21:44.00 ]
float f = (float)(i / 100.0);

short x;
x = (short)(x - 1);



801 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 23:22:11.50 ]
これは…難しいw

802 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 23:24:55.57 ]
整数型はint
浮動小数点はdouble

でコード書いて必要になったらキャスト

803 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 23:26:57.43 ]
doubleとfloat使ったこと無いわー
decimalで十分だわー

804 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 23:32:28.05 ]
俺はdoubleは結構馴染みあるなー

805 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 23:46:54.62 ]
floatは結構普通に精度の悪さが表面化するから極力使いたくないな

806 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 00:01:07.06 ]
まあ、GPU か SSE 命令使わないと float 使う意味ない。

807 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 00:14:06.74 ]
そうでなくてもメモリバウンドならfloatの方が有利なんじゃないか

808 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 00:23:36.63 ]
ああ、float[] なら使う意味あるか。

(float)i / 100.0f みたいなのは意味ない。
特に、C# だと SSE 命令になったりするわけじゃなし。

809 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 00:31:27.59 ]
この流れももう10回ぐらい読んだ気がする

810 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 00:40:53.71 ]
>>798
x--



811 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 00:56:48.15 ]
過疎

812 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 01:52:12.26 ]
もうC#なんて使う人いないだろうな

object-cだ!

813 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 02:35:52.20 ]
Cメジャー7thとか名称変えてきたりして?

814 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 10:22:28.63 ]
>>812
新しい言語ですか?

815 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 11:20:12.25 ]
フォームにtextBox1とlistBox1があります
Form_LoadにlistBox1.focus()って書きました
実行するとtextBox1にフォーカスがあります
listBox1にフォーカスを移す方法を教えてください

816 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 11:20:57.31 ]
訂正
focus()はFocus()の間違え

817 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 11:30:15.39 ]
FocusじゃなくてSelect

818 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 11:39:32.87 ]
ActiveControl

819 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 11:40:49.78 ]
メモ
Focus は、主にカスタム コントロールの作成者が使用するための下位メソッドです。 代わりに、アプリケーション プログラマは、子コントロールには Select メソッドまたは ActiveControl プロパティ、フォームには Activate メソッドを使用する必要があります。

820 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 11:40:51.51 ]
フォームデザイナでTabIndexをListBoxの方を若くするか
Form_Loadで
this.ActiveControl = this.listBox1;



821 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 12:37:52.16 ]
C#は時代遅れ
今やってる奴はくるくるぱーm9(^Д^)

822 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 12:55:10.35 ]
Selectでやったらフォーカスできました
ActiveControlも覚えてみたいと思います

823 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 12:56:36.40 ]
pictureBox1.ImageLocationで今表示されている画像を切り替える場合
そのままpictureBox1.ImageLocationの値を変更するだけでいいですか?
メモリに表示されてきた画像のゴミ?みたいのが残ったりしますか?
一度pictureBox1を削除して再度設置して表示したほうがいいのでしょうか?

824 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 13:18:15.39 ]
>>791
そういう用途ならメモリイメージに上書きしていって最終内容を
描画したほうが早いんじゃないの?

825 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 13:26:48.34 ]
>>823
それでいいよ
ゴミが残るかどうかは保証できないけどな
リファレンスに書いてないことを前提にしてはいけないのよ

826 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 13:48:57.71 ]
TcpClient を使ってソケット通信をやってます。
これって送信してから受信側にデータが届くまでのタイムラグが大きいでしょうか?

次のような条件で試しています。
・ひとつのプロセス内に、送信側、受信側のスレッドを作る
・受信側は、stream.DataAvailable と Available でデータの着信を確認してから stream.Read で受信
 この受信確認は 30m秒くらいの間隔で実行している
・送受信は 127.0.0.1 でやっている
・他にもいくつか通信とは無関係のスレッドが走っている
・ログ出力を仕組んで、stream.Write による送信と受信の間隔を調べると 10 〜 20 秒くらい
 (結構な頻度で)開いている
・ログを見る限り、ある時点でそこまで送信されたデータをまとめて stream に読み込んでるっぽい動作をしている
 (データAを送信1秒後に送信したデータBもAを受信したタイミングで stream に乗っていた)

スレッドを使用してる関係で同期用の排他制御も組み入れてるので最初はそのせいかとも思ったのですが、
送信側はもとより、受信側の着信確認も意図した間隔で繰り返していて、受信が確認される直前までは
なにもデータが届いていないことを確認しています。

少しくらいのラグはともかく、普通に使っていてここまで間が開くとは思えません。
プログラムに問題があるとしたらどんな理由が考えられるでしょう?

いま書いてて思ったのだけど、stream.DataAvailable や Available にフラグが立っていなくても stream.Read では
データを読めるなんてことはないよなぁ。。。 だとしたら、ReadTimeout を仕込んで素直に受信待ちした方がいいのか。

827 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 13:55:21.70 ]
データのサイズはパケットの大きさと比べてどのくらい?

828 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 14:00:31.42 ]
パケット覗いてみれば送信側と受信側どっちに問題がありそうかは切り分けられるだろ

829 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 14:01:43.05 ]
ラーメンタイマーをこれから作ります

830 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 14:02:57.29 ]
どうぞ



831 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 14:04:08.81 ]
いま、なんどきですか?

832 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 14:04:53.48 ]
Thread.Sleep(180000);
Console.Beep();

833 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 14:08:41.87 ]
今は昼八つくらいですね

834 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 14:16:36.87 ]
出力のフォーマットで
Console.WriteLine("a:{0} b:{1} c:{2} d:{3}",a,b,c,d);

Console.WriteLine("x:{-1},a:{0} b:{1} c:{2} d:{3}",x,a,b,c,d);

みたいなに手軽になんとかしたいんですが...

835 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 14:17:41.72 ]
Console.WriteLine("x:{5},a:{0} b:{1} c:{2} d:{3}",a,b,c,d,x);
ではどう?


836 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 14:18:12.98 ]
おっと、4だったw

837 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 14:20:27.44 ]
>>835
うひょーーーーー
ありがとうございます

838 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 14:47:29.84 ]
>>826
TCPの理解が足りていない(C#の話ではないのでスレチ)だけじゃないのか
1回のWrite≠1パケットとか、バッファリングとか基本的なことを理解していないように見える

とりあえず、TCPの基礎を理解してから出直すと良い

839 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:09:38.51 ]
新規に作成したスレッドにメッセージループって持たせられますか?

840 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:18:56.60 ]
>>839
その質問の仕方じゃYes/Noしかかえってこないぞ。



841 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:33:56.06 ]
パラレルタスクを起動させると表示メニューのタスクの表示でタスクの名前が表示されます。嘘です。

842 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:41:37.77 ]
>>838
1回のWrite≠1パケットって、それがNagle のアルゴリズムのことならせいぜい200msまでの遅延しか発生しないし、
それ以外のバッファの話ならC#の問題なので、初心者スレには適した話題じゃないの
他人に聞くならもうちょっと情報が欲しいとは思うけど

843 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:49:16.12 ]
聞いてる分には、C#じゃなくても発生するような初歩の問題に見えるから
通信関係のとこで聞いた方が確実だとは思うけどなあ。

844 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 15:54:53.95 ]
StopWatchクラスのsw.Elapsed.toString()ってやると
00:00:00.ミリ秒みたいにして取得できました
これで3分経ったかどうかを判定させたいのですが、ifの判定式をsw.ElapsedMillisecondsを使わないで
sw.Elapsedと比較させて書く方法を伝授してください
if (){
// 3分経ったときの処理
}

845 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:03:37.07 ]
> ifの判定式をsw.ElapsedMillisecondsを使わないで
なんで?

846 名前:826 mailto:sage [2012/01/29(日) 16:09:11.96 ]
>>827,828
ネットワーク側の設定は不明ですが、送受信するデータはメッセージあたりで 20 〜 60000 バイトくらい、
TcpClient.SendBuffer は規定値のはずなので 8192 バイトだと思います。
TcpClient.NoDelay は true にしても変化が見られませんでした。

>>838 で言われてるように、バッファリングの影響などはもちろんあるはずだと思うのですが、
C# で TcpClient を使う場合にそれを乗り越える方法がないとは思えず、
遅延もローカルホストでやるにしてはかなり大きかったので質問してみました。

パケットを直接監視するってのは思慮から完全に抜けていたので、確認してみます。

847 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:09:31.77 ]
if (sw.Elapsed.Milliseconds > 1000*60*3){
// 3分経ったときの処理
}

848 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:10:28.06 ]
>>846
そういう「パケット見る」じゃねえよ
パケットアナライザでNICに届いてるタイミングを見ろって言ってんの

849 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:13:03.52 ]
文字列で"3:00"って指定できればなあと思ってます
やっぱりこういうときはsw.Elapsed.Millisecondsで比べるのが主流なのでしょうか?

850 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:13:43.20 ]
初めからそう言えよ
言われたとおりにElapsedMillisecondsは使わなかったのに



851 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:19:42.47 ]
TimeSpan.ParseExactで"3:00"をTimeSpan形式に直して比較
msdn.microsoft.com/ja-jp/library/ee372287.aspx

852 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:19:45.71 ]
許してください、すみません;;

853 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:21:52.18 ]
>>851
ありがとうございます
リンク先見に行くと結構難しいのですね

854 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:27:26.17 ]
>>853
難しくはない、というかこんなの使えないとstring.Formatも使えないということになるぞ
書式を全部覚えきる必要はないけど、書式リファレンスを見ながら普通に書ける程度にはならなきゃダメだ

855 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:29:09.98 ]
C#ってLinuxとMacでも動くようになりませんか?
monoをマイクロソフトも一緒になって開発してくれてたらいいんですが

856 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:30:27.64 ]
MacはともかくそのMonoがLinuxでうごいとるやんけ

857 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:31:07.26 ]
時間の書式なんてmm:ssで終わりじゃねえのか
TimeSpanは違うんだっけ?

858 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:31:15.56 ]
Javaでいいんじゃね?

859 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:36:09.85 ]
VC#で作ったものをそのままMacとLinuxでも動かしたいのですよ
Javaは・・・その・・・フォームを作って部品を配置するのがVC#より少なくて戸惑ってます
イベントハンドラの追加方法もよくわからないし・・・Javaは難しいなう

860 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:36:23.59 ]
new TimeSpan(6, 14, 8, 17, 685):

mm --> "08"

new TimeSpan(6, 8, 5, 17, 685):

d\.hh\:mm\:ss --> 6.08:05:17

m\:ssかな



861 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:36:34.05 ]

なうは打ち間違えです
×なう
○です

862 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:39:01.79 ]
ラベルを画面のサイズに合わせて横いっぱいに文字を大きくしたいのですが何か良い方法教えてください

863 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:39:11.87 ]
WinFormsはある程度Monoもサポートしていると思うが、何が足らんのだ?

864 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:39:40.34 ]
ってそういうことじゃないのか
バイナリ互換にしろってこと?そりゃ無理

865 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:46:55.01 ]
VC#で書いたソースコードをそのままLinuxとMacでもコンパイルできるようにしてほしいということです

866 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:48:49.86 ]
すみません質問です

System.Diagnostics.Process.Startメソッドを使って、複数のファイルを同時に1つのアプリケーションで開きたいのですがどのように記述すれば良いのでしょうか。

867 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:49:43.08 ]
無駄だろうね

868 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:50:48.73 ]
>>866
もう少し具体的に書けよ
ブラウザじゃないかと踏んだけど

869 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:52:33.27 ]
Monoにもwineみたいなのが出ても悪くないとは思うけど…。
誰かにメリットを提示できるかとなるとどうかな。

"monoをマイクロソフトも一緒になって開発"する理由は一つもないしw

870 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:55:03.51 ]
Microsoftが技術協力はしてるらしいけどね、一応は。



871 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:55:41.73 ]
>>868
失礼しました

例えば「@"C:\aaa.mp3"」「@"C:\bbb.mp3"」「@"C:\ccc.mp3"」を同時にWMPなりのメディアプレイヤーに受け渡して、この3つのファイルがプレイリストに入った状態で起動させたいのです

872 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:58:43.86 ]
それがProcess.Startで可能かどうかはプレーヤーの仕様に依存するな
コマンドライン引数に指定して開けないのならProcess.Start以外の方法を取ることになるだろう
プレーヤーによるから可能かどうかすら判断つきかねるが

873 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 16:59:53.12 ]
.Netが公式にクロスプラットフォームで動くように対応しないからいけないのだ
そしたら俺はJava勉強しなくてすむ

874 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:01:10.67 ]
IIS売るためだから我慢なさい

875 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:07:59.56 ]
>>872
ぐ・・・Process.Start以外の方法ですか・・・そんなものもあるんですね
エクスプローラなら複数選択→エンターキーを押してやれば勝手にそういう挙動になるので単純なものかと思ってたのですが難しいみたいですね
ありがとうございました

876 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:12:18.28 ]
最近そんな感じの質問があった気がした。

toro.2ch.net/test/read.cgi/tech/1325511769/373-376

うん。
簡単ではないと思う。

877 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:20:45.27 ]
>>876
あっ、わかりづらくてごめんなさい。この質問とは逆の状況なんです
自作のアプリケーション上でProcess.Startメソッドを使って、とあるディレクトリに存在する複数ファイルを同時に起動させたいのです

878 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:22:45.70 ]
ごめんなさい>>877は表現が間違ってました
起動させるというのはまた別のアプリケーションに受け渡すという意味です

879 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:23:50.80 ]
>>877
C:\aaa.mp3
C:\bbb.mp3
C:\ccc.mp3

って内容のテキストファイルを.m3uの拡張子で保存して、そのファイルをProcess.Startで実行すれば多分行けると思う
意味はwinampのプレイリストファイルを作って拡張子と関係づけられたプログラムを起動って手順です
m3uに何が関連づけられているかで起動プログラムは変わりますが

コレじゃ違うかな?

880 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:25:58.07 ]
>>875
Process.Startでプレーヤー起動させて、引数にmp3ファイルを渡せばいいんじゃない?



881 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:31:41.78 ]
>>877
いや逆とかじゃなくてね

>エクスプローラなら複数選択→エンターキーを押してやれば勝手にそういう挙動になる

というのが876を利用して実装されているわけで、
あなたのプログラムから同じようにエミュレートしてやれば同じように動作するべ。
って話。

882 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:32:16.18 ]
エミュレートするのはエクスプローラ側の動作な。
呼ぶ側な。

883 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:34:25.66 ]
今ラーメンタイマー完成しました
結構時間かかりますね

884 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:34:54.00 ]
>>879
確かにその方法なら実行できそうですが、一連の動作をアプリケーション内だけで完結させたいので・・・
あっ、でもその動作もプログラミングしてしまえば可能ですよね!!ちょっと遠回りですがそのアプローチは想像つきませんでした。参考にします。ありがとうございます!

>>880
その方法なら引数にmp3ファイルを複数指定できるんですか!?やってみます。ありがとうございます。

885 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:36:54.42 ]
>>881-882
おおお・・・すみません理解に時間がかかりそうですが参考にします。ありがとうございます。

886 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:38:06.62 ]
ラーメンにお湯入れて見張ってた方が良かったんじゃないですか?

887 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:44:23.18 ]
>>886
すいません、力を貸してください
今試しにトイレに行って戻ってくるまで3分で返ってこれるかやってみようと思って、
プログラムを起動したんですがtimerで定期的にlabelの時間を書き換えてるのに右上のタイトルバーの_■×ボタンあるじゃないですか
そこをクリックしてボタン押しっぱなしにすると処理が止まってしまいます
これは何が原因なんでしょうか?

888 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:44:29.70 ]
>>826
それはwindows7上だったらwindows7の問題だよ

889 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:47:20.69 ]
>>887

おれも5秒でラーメンタイマー作ったYO
>>832

890 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:49:09.19 ]
>>880
Process.Start(@"C:\player.exe", @"C:\aaa.mp3 C:\bbb.mp3 C:\ccc.mp3")
で動きました!!お騒がせしてすみませんでした。皆様本当にありがとうございました。



891 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 17:52:36.52 ]
>>855
自分も昔はJavaのマルチプラットフォームにあこがれたが、結局自分もユーザーもWinばっかりじゃないかと・・・
どうしてもって言うなら、C++でマルチプラットフォームなライブラリ使っとけ
Javaはポインタや参照使えない分、パフォーマンス的にどうしてもC#より不利な場面が出てくる

C言語 vs C#言語 vs C#言語ノーマル vs PHP
blog.livedoor.jp/campanella_77/archives/17983896.html

C# 最高速説
blog.livedoor.jp/campanella_77/archives/17986824.html



892 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 18:15:57.56 ]
Windowsフォトビューワーみたいに素早く拡大縮小、画像のスクロールができるプログラムを作りたいんですがどうすればいいですか?

893 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 18:18:06.92 ]
>>892
独学でググって頑張る || 本買って勉強

894 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 18:23:12.24 ]
ググっても本が欲しい時はあるので短絡評価はやめていただきたい(キリ

895 名前:826 mailto:sage [2012/01/29(日) 20:28:12.88 ]
>>848
それは承知していたつもりです。
ので、あのあと準備をして WireShark で見てみましたが、ログで確認した状態と大差ないようです。
つまりバッファにある程度蓄えてしまって実際には送信していないということなのだと思います。

>>888
だとすれば症状の説明が付くのかも知れません。
よろしければソースを教えていただけないでしょうか。自分でも探してみたのですが、これと思う記事を見つけられませんでした。
これだとするとスレチですが。すみません。

896 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:37:51.17 ]
バッファリングかあ…

897 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:45:38.16 ]
WPFアプリケーションを作っています
C#のコードで追加するThumbコントロールに画像を設定するにはどうしたら良いでしょうか

898 名前:897 mailto:sage [2012/01/29(日) 20:46:39.09 ]
リソースの画像ではなく、ディレクトリに存在する画像でお願いします

899 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 20:54:36.75 ]
ControlTempleteを作って中にImageを置けば良いのでは?

900 名前:897 mailto:sage [2012/01/29(日) 21:02:47.04 ]
<Thumb>
  <Thumb.Template>
    <ControlTemplate>
      <Image Source="C:\Pic\001.jpg"></Image>
    </ControlTemplate>
  </Thumb.Template>
</Thumb>

xaml側ではこんな感じで実装できたんですけれど、これのC#側での書き方がわからなくて・・・
初心者で申し訳ないのですが教えて頂けたら幸いです



901 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 21:20:16.68 ]
WPFスレってあるみたいだけど
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part12
toro.2ch.net/test/read.cgi/tech/1324366825/

902 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 21:20:58.15 ]
データバインディングとデータテンプレートでやるのではだめなの?

903 名前:897 mailto:sage [2012/01/29(日) 21:33:35.83 ]
>>901
該当スレありましたか、失礼しました

>>902
勉強不足で申し訳ないです。ググってみます

904 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 21:36:38.61 ]
var b = new BitmapImage();
b.BeginInit();
b.UriSource = new Uri(@"てきとうながぞう.jpg");
b.EndInit();

var f = new FrameworkElementFactory(typeof(Image));
f.SetValue(Image.SourceProperty, b);

var t = new ControlTemplate();
t.VisualTree = f;

th.Template = t;

スーパー天才の俺が教えてやるけどこうですよ

905 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 21:41:59.54 ]
さすが天才

906 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 21:49:46.06 ]
やはり天才……

907 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 21:50:05.28 ]
ゴクリ…

908 名前:897 mailto:sage [2012/01/29(日) 21:51:18.43 ]
>>904
あ、ありがとうございます!実装できました!
まさかスーパー天才な方が現れて下さるとは思ってもみませんでした!本当にありがとうございます!

909 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:01:01.15 ]
>>904
そんな面倒になるのか
やっぱバインディングでやったほうがいいな・・・


910 名前:897 mailto:sage [2012/01/29(日) 22:05:44.90 ]
度々すみません・・・・>>904で実装するThumbのWidthを設定するにはどうしたら良いでしょうか・・・



911 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:08:37.25 ]
Thumbだって普通にWidthプロパティあるんじゃないのか?

912 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:09:55.04 ]
あの10年前ってVB全盛期じゃないですか
でも今は消えつつあるじゃないですか
C#は消えたりしますか?

913 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:14:11.95 ]
>今は消えつつある

どこがだよ
ブウウウウウビィイイイイイイイイイイ6666666666666666666って唸ってるぞ
まだ

914 名前:897 mailto:sage [2012/01/29(日) 22:14:50.06 ]
あ、ごめんなさい勘違いしてました
ありがとうございました

915 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:17:51.97 ]
こんだけ普及しちゃったらもう消えるのは難しい
最新技術に取り残されても、古臭い糞言語うぜえとか言われながら保守運用で残り続けるよ

916 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:29:14.45 ]
>>912
その10年前のVBの問題を解消したのが今のC#だよ。
C#が消えるときは、次のC#的なものが出た時だ。

917 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:30:41.25 ]
でもこの後どこまでバージョン上がるかな
10.0はたぶん行かないよな

918 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:36:27.20 ]
Roslyn 来たら、言語内DSL + IDE 補助な方向で伸びそうだからなぁ。
汎用言語としての C# の進化はその辺りでいったん遅くなると思う。

919 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:39:47.84 ]
むしろ、Win8以降、ARM版ではMFC使えないから、商品価値が下がるだろうし、VSの高額な金額に見合う目玉商品は今後何になるのか?の方が疑問
winRTは有料版のみ開発可。とかかね・・・
もしくは、appleのAppStoreみたいにストアからしか入れられなくして、開発者からも年会費取る方向にシフトするとか
VSがフル機能でも格安で手に入るんなら、その方向でも良いかな


920 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:44:12.41 ]
今の時点ですでに、
言語がどうとか、個人レベルのものは全部無料になってるからねぇ。
個人のコーディング → 開発チーム → 関係各社全員のコラボ で金取ってる。

MS 全体で見ても、年々、OS のパッケージ販売から、
Azure とか Office 365 みたいな月額支払の方にシフトしてて、
開発ツールがらみも、TFS on Azure とかにシフトすると思う。



921 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:45:53.31 ]
>>915
C#というか、.NET Frameworkが旧VBほど浸透したとはちょっと思えんけどね。
なぜかフリー作者にも敬遠されてるし。

922 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:48:37.33 ]
standerd復活させて、またblendとセットで2万以内で売ってくれよ

923 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:49:12.71 ]
>>921
それは、旧VBと現.NETの差じゃなくて、
Win95時代のMSの躍進と、XPから移行してもらえなくて悩む今のMSの勢いの差だな。

伸びてる時期は、大部分のユーザーが新人だからしがらみがないけど、
安定期に入っちゃうと、一番の敵は過去の自分になっちゃう。

924 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:52:17.12 ]
ソースが復元できちゃうのがなー


925 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:55:06.98 ]
>>921
VB6以前で作ってた人は、VB6で作り続けてるか、.net版のVBに移行してると思うよ
敬遠してるのは、DelphiとかVC++で開発してた人たち
exeファイル一つで配布したい人は旧VBも敬遠してた


926 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:55:57.29 ]
それは余程の初心者以外気にしてないような気がするぜ
あれだけフリーのリポジトリサイトが生まれたことを考えたらね

927 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:56:53.38 ]
アメリカン、モカ、キリマンジャロ、オリジナルブレンド

928 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 22:58:52.74 ]
いつの間にかCodePlexでMercurial使えるようになっていて吃驚

929 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 23:02:26.83 ]
むしろ.net framework 4を入れないと動かないようにしたら
変なユーザーに絡まれなくなっていい。

930 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 23:16:25.99 ]
>>904
MSDN のどのページを読んだらこれに行き着けるんでしょうか?



931 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 23:17:46.75 ]
スーパー天才の俺はググってDataTempleteでそういうことしてる野良記事を発見して
試しに書いたら動いたから得意げに教えただけです

932 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 23:20:47.31 ]
>>931
やっぱり、スーパー天才な方は違いますねっ!

…WPF を、どうしてもコーディングで書かなくてはならないとき、
やり方が全然わからなくていつも困ります…

933 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 23:22:58.38 ]
WPFって結局流行るんだろうか

934 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 23:26:14.53 ]
まあ、WinRTもSilverlightも、ほんとやってることはWPFなんで大丈夫でしょ。
名前変わると別物だと思う人が多くて困るけど。

あと、他のGUIフレームワークも、最近データバインディングとMVVM的な仕組みを持ち始めてるし、その先駆者ではあるし。

935 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 23:31:31.95 ]
>>926
昔はVBとVC++の差が広すぎたからね・・・
難易度も、出来ることも(だからこそ、Delphiの入り込む余地があった)

今のVBやC#は難易度も出来ることも旧VBとVC++を埋める中間に位置する
(から、VBは難しくなったと言われる)



936 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 23:36:41.64 ]
VB と C++ の間に溝があることが一番の問題だったと思う。
両方の範囲をカバーしようとしたのが C#
(結局、C++ というか、ネイティブは今でも必要だけど)。

中間じゃなくて、範囲が広い。

937 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 00:15:19.88 ]
でVBとJAVAがいらなくなったと。

938 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 00:23:06.76 ]
VBAもVBScriptも現役だけどね

939 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 00:33:53.15 ]
>>937
Win限定なら、マジいらない

>>938
消えろとまでは言わないが、マジでそれらのC#版を出してほしい


940 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 00:36:15.43 ]
どっちもあるだろ



941 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 00:50:35.33 ]
>>940
マジか
時代がいつの間にか俺に追いついてたんだな


942 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 01:40:48.66 ]
今だと、Office 向けのプラグインを .NET で作るの推奨してるよね。
Visual Studio に標準で Office 開発テンプレート入ってるし。

でも、Office とかの中で C# スクリプトを使いたいって要求は多いけども。
それも Roslyn 待ち。

943 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 09:12:50.33 ]
自作アプリにC#風スクリプト機能をつけたりするのが簡単になるのかな

944 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 09:29:31.59 ]
>>942
どんな風なプラグインが人気なのか判りますか?

945 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 10:03:22.24 ]
PowerShellの構文は、もっとC#ライクになってくれてもよかった

946 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 10:42:45.52 ]
JScript.Netは違うの?

947 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 11:25:35.55 ]
違うの?とだけ言われても。何と?

948 名前:デフォルトの名無しさん [2012/01/30(月) 15:58:20.11 ]
テラバイトをバイトに変換したいのですが、変数を保存できる型がわかりません。
教えてください。

949 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 16:05:07.47 ]
Int64

950 名前:デフォルトの名無しさん [2012/01/30(月) 16:21:40.85 ]
Int64 WarningSize = 1024 * 1024 * 1024 * 1024;

ビルドすると以下のエラーがでます。
エラー CS0220: この操作はチェック モードでコンパイルしたときにオーバーフローします。



951 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 16:25:13.96 ]
残ってるのは、UInt64かDecimalくらいじゃね?

952 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 16:48:58.13 ]
先頭の1024にL付けるかlongにキャストしないとダメだろう

953 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 16:49:15.88 ]
BigIntegerはどうだ?

954 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 16:49:58.56 ]
整数リテラルは、int==Int32の範囲内に収まる場合はintになる
int同士の積はint

なので、途中でInt64==longを挟めば良い
long (C# プログラミングリファレンス)
とかを読んでみれば

955 名前:デフォルトの名無しさん [2012/01/30(月) 16:59:12.68 ]
ありがとうございます。
キャストしたらエラーがでなくなります。
(long)1024 * (long)1024 * (long)1024 * (long)1024;

956 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 17:30:17.00 ]
>>955
(long)1024じゃなくて1024Lって書けるよ

957 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 17:32:42.75 ]
whileでテキストファイルから値を取り出す関数intputを複数回回しているのですが、
ハンドルされていない例外: System.IO.IOException: 別のプロセスで使用されているため、プロセスはファイル 'C:\Users\**(ファイル名)**.txt' にアクセスできません。
となりプログラムが強制終了します。
わからないのが2回や3回のinputで止まるときもあれば、10回以上のinputをしても止まらない時があります。
StreamReaderを使用しています↓。原因はなんなのでしょうか?


StreamReader sr = new StreamReader("C:\\Users\\**(ファイル名)**.txt", Encoding.GetEncoding("Shift_JIS"));
string text = sr.ReadToEnd();
sr.Close();


958 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 18:07:26.27 ]
C#でアクションゲームが作りたいのですが
SDL.NETがいいかな〜と思いましたがライブラリは何を使うのが定番でしょうか?

959 名前:デフォルトの名無しさん [2012/01/30(月) 18:13:10.35 ]
>>957
そのアクセスしようとしてるテキストファイルを他に触るプログラムはないの?
あと

StreamReader sr = new StreamReader("C:\\Users\\**(ファイル名)**.txt", Encoding.GetEncoding("Shift_JIS"));
string text = sr.ReadToEnd();
sr.Close();

このコードとwhileの関係は?

960 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 18:14:09.67 ]
>>958
ゲーム作るならXNAとかでやった方がいいんじゃないかな?
winformとXNAでちょっとした動きのある物作ったことあるけど
実行効率はXNAには勝てないと思う



961 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 18:33:55.86 ]
>>960
XNAは避けて通れないのですね
インストールしてみます

962 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 18:41:36.01 ]
まあSDLの方もどっちもやっておくといいかもね

963 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 20:26:03.88 ]
SDLって基本ソフトウェア描画だからクソ遅いよ

964 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 20:58:25.99 ]
>>959
そのコードを関数input内に置いて、Main関数からwhileでinputを複数回呼び出しています。
アクセスしようとしているテキストファイルは実行時、他に誰もアクセスしていない状態です。
input内でexeファイルを実行して、アクセスしようとしているテキストファイルに一度書き出していますが、
そのexeファイルに問題は無いはずです。(私が作ったものではないのですが、不具合などの報告はありません。)

それと言い忘れていたのですが、
>わからないのが2回や3回のinputで止まるときもあれば、10回以上のinputをしても止まらない時があります。
についてなのですが、同じデータを用いても止まるタイミングがバラバラということです。

965 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 21:01:18.77 ]
今C#でDirectX扱おうと思ったらXNAなの?それともSlimDx?

966 名前:デフォルトの名無しさん [2012/01/30(月) 21:08:14.76 ]
>>964
おおざっぱな流れがわかるコードだせよw
そういわれてるんだよ

>>965
SlimDxはしらんけどXNAの場合はゲームループの基本はできあがってるんだよ

初期化、ループ中の入力、判定、移動などの所定のタイミングで呼ばれるのでそこにコードを書くだけで
結構楽だよ

967 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 21:16:02.71 ]
>>964
exeがまだ動いてるのに読みにいってるとかじゃないの
ためしにexe呼び出してるところコメントアウトして試してみたら

968 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 21:21:52.22 ]
XNAってXNAのランタイムが入ってるPCでしか動かないんですよね
このランタイムのみってのはどこにおいてあるのしょうか?
探してもフレームワークのダウンロードしか見つかりません

969 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 21:24:07.58 ]
>>83
SlimDXのサンプルコードにはXNAを参考にしたものもある。
最終的にどれ使うかはあとで決めたらいいと思うが、XNAは一通り触っておくといい

970 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 21:25:47.24 ]
SlimDXはまさにDirectX




971 名前:デフォルトの名無しさん [2012/01/30(月) 21:26:33.77 ]
>>968
利用者向けは「再配布」をつけるとでてくるよ
www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=53867a2a-e249-4560-8011-98eb3e799ef2

972 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 21:27:56.13 ]
WinFormのPictureBoxにXNAで描画できる?

973 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 21:35:06.13 ]
できる
AppHubにサンプルがある

974 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 22:16:43.13 ]
>>971
すみません
これはxna frameworkでググると
Microsoft XNA Framework Redistributable 3.1がトップに出てくるのですが
www.microsoft.com/download/en/details.aspx?id=20914のが4.0なので新しくてこっちをダウンロードしました
OSのアップデートをして再起動してないのでまだインストールはしてません
これらは開発用フレームワークじゃないのでしょうか?
ユーザーさんにはこれらをインストールさせればいいってことですか?

975 名前:デフォルトの名無しさん [2012/01/30(月) 22:20:42.41 ]
ランタイム欲しいっていうから配布用を見せたのにw
開発用が欲しいならこっち

Microsoft XNA Game Studio4.0
www.microsoft.com/download/en/details.aspx?id=237147

Microsoft XNA Game Studio 4.0 Language Pack (日本語)
www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=b3929d3b-3fe1-49dd-9cb1-c701b88d049d

976 名前:デフォルトの名無しさん [2012/01/30(月) 22:22:36.88 ]
XNA自体が日本では微妙な存在ぽいので情報が更新されてないかもしれないけど
sorceryforce.com/xna/tips.html

977 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 22:38:46.83 ]
XNAやるなら日本の情報はないものと思って英語上等でいかないとムリ

978 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 22:39:58.85 ]
XNA?プ 笑

979 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 22:58:32.21 ]
変な質問かもしれませんがよろしくお願いします。

設定を管理するクラスを作って、それをXmlSerializerでXMLに書き出しているんですが、
設定の数だけ
   public string name { get; set; }
みたいなのを羅列しなきゃならないですよね?

980 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 23:01:15.64 ]
具体的に何をどうしたいのか聞けよ
方法があるなら答えてやる



981 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 23:03:52.89 ]
static void Main(string[] atgs)
{
コード
}

static void Main()
{
コード
}

どっちも同じ動きするんだけど、Main()の中にstrgin[] argsを記述意味を教えてください。

982 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 23:04:24.35 ]
>>975
勘違いしてました
ランタイムの画開発用だと思ってました

983 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 23:05:24.61 ]
>>981
コマンドライン引数

984 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 23:06:17.37 ]
>>981
引数を取れるかどうかなだけだよ

コンソールアプリを実行する際にexeの後ろのコマンドオプションつけるケースとかあるでしょ

985 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 23:07:40.55 ]
>>980
具体的に言うと次スレを立てて欲しい

986 名前:979 mailto:sage [2012/01/30(月) 23:10:59.83 ]
>>980
具体的と言われても難しいですね・・・

まず全ての設定の一つのXMLファイルにまとめるため、シングルトンクラスを作って、
それをXmlSerializerで書き込みたいです。
例えばリストビューのカラム幅、入力されたテキスト、チェックボタン、ウィンドウの位置
などです。
それらをすべて設定クラスで管理したいのですが、
プロパティの数、クラスに格納する手順、XMLを読み込んでから設定を反映、
などと考えると量が多いため、
なにかもっと簡単にできる方法はないのかな、と思った次第です。

987 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 23:17:57.10 ]
>>983,984なるほど。
さんくす。

988 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 00:20:51.80 ]
charとstringの違いが分からんちん。

"A"と'A'は何が違うの???

989 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 00:25:18.44 ]
ttp://search.yahoo.co.jp/search?p=char%E3%81%A8string%E3%81%AE%E9%81%95%E3%81%84

990 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 00:36:57.94 ]
>>988
文字と文字列の違い
文字列は文字の集まりで長さがある



991 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 00:38:22.29 ]
>>986
www.atmarkit.co.jp/fdotnet/dotnettips/562appsettings2/appsettings2.html

992 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 00:44:36.63 ]
ふらっとC#,C♯,C#(初心者用) Part85
toro.2ch.net/test/read.cgi/tech/1327938237/

993 名前:979 mailto:sage [2012/01/31(火) 00:47:28.81 ]
>>991
あーやっぱりこれしかないですよね。
わかりました、ありがとうございます。

994 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 08:13:57.40 ]
>>992
素晴らしい。一乙

995 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 09:18:35.64 ]


996 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 09:24:17.41 ]
埋めないと落ちるぞ〜

997 名前:デフォルトの名無しさん [2012/01/31(火) 09:27:34.44 ]
うめさん

998 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 09:34:51.13 ]
うめてんてー

999 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 09:35:12.32 ]
うめ

1000 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 09:35:29.73 ]
次スレ

ふらっとC#,C♯,C#(初心者用) Part85
toro.2ch.net/test/read.cgi/tech/1327938237/



1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<221KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef