- 1 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 17:41:19 ]
- このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part26 pc11.2ch.net/test/read.cgi/tech/1206238049/
- 151 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 10:18:54 ]
- お前誰だよ↑
仕様にケチつけると話題がそっちに流れるだろ。 もうちょっと考えような。
- 152 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 10:38:38 ]
- 奇妙な仕様を指摘して何が悪いんだか。
- 153 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 11:00:52 ]
- ファシズムって言いたかったとエスパーw
- 154 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 11:17:48 ]
- むしろ悩んでる原因は変な仕様だってことが多いからな
- 155 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 11:20:40 ]
- 別にケチつけるわけじゃなく、スタンダードな方法を提示したレスをするならいいと思うけどね
- 156 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 11:21:45 ]
- まあ大体の初心者は変な思いつきと思い込みで阿呆な仕様にしてるよねw
- 157 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 12:11:42 ]
- >>155
それならいいよね。建設的だし。 でも批判するだけなら分かってない人でも出来ちゃうから厄介。
- 158 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 12:20:54 ]
- >>147
JavaとC#の二束の草鞋です。 C#の場合はリスナそのものに該当する仕組みは無く、 delegateを使用してリスナ相当を実装する必要があるのかなと考えているのですが
- 159 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 13:10:50 ]
- フォーム操作可能にしたいマルチスレッドならdelegate()が一番簡単と思うけど
- 160 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 13:21:20 ]
- >>158
@FtpClassにOwnerプロパティを実装 public Form Owner{ get; set;} AUploadMethodを呼ぶ前にOwnerにthis(つまりWinForm)をセット ftpClass.Owner = this; BUploadMethod内のイベントを通知したいタイミングでOwner.Invoke()を呼ぶ if(Owner!=null && UploadFileCheckEventHandler != null) Owner.Invoke(UploadFileCheckEventHandler(FtpEventArgs)) これでどうだろうか
- 161 名前:158 mailto:sage [2008/04/25(金) 13:28:19 ]
- ちと変だな
訂正 public event FtpUpLoadEventHandler UpFileChecked; public event FtpUpLoadEventHandler UpLoadStarted; public event FtpUpLoadEventHandler UpLoadFinished; こんなようなイベントを実装して、 if(Owner!=null && UpFileChecked != null) Owner.Invoke(UpFileChecked(FtpEventArgs)) とかで呼び出す
- 162 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 14:37:12 ]
- >>160
C#のイベント処理に疎いので、少し教えていただきたいのですが、 この場合Ownerで示されるFormクラスのインスタンスに、UpFileCheckedイベントが通達 されるという認識でよろしいでしょうか? その場合、Owner.Invokeでイベントを発行している形なので、FTPClassがイベントを 通達できるのはFormクラスのインスタンスに限られてしまい、FTPClassはFormクラスと 依存関係になってしまうのではと考えているのですが。
- 163 名前:デフォルトの名無しさん [2008/04/25(金) 14:49:02 ]
- C# (.NET) でコントロールを透明化したいんですけど、
obj.Parent 以外に対しても透明化というのは、無理なんでしょうか? もしくはレイヤードパネルみたいなものはないですか? やりたいのは // A,B 両方表示(A,B は完全に重なっているコントロール) A.Parent = parent; B.Parent = parent; // A だけ表示 A.Visible = true; B.Visible = false; // B だけ表示 A.Visible = false; B.Visible = true; みたいなことなんですが・・・
- 164 名前:134 mailto:sage [2008/04/25(金) 14:58:41 ]
- すいません今更ですが >>134
×(実際にはWinFormはSTAなのでBackgroundWorkerのメソッドを介してUI変更を行います) ○(実際にはWinFormはSTAなのでWinFormのInvokeメソッドを介してUI変更を行います)
- 165 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 15:12:27 ]
- >>164
FTP クラスが ProgressChanged みたいなイベント公開すればいい。 アップロード中に適当に状況が変わるなりすればイベントを起動する。 Form は その ProgressChanged イベントのイベントハンドラで Invoke して GUI に反映させる。 Owner はいらんな。SynchronzingObject ならあってもいいけど。
- 166 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 21:45:27 ]
- >>163
見た目を気にするなら諦めてWPFに乗り換えましょう
- 167 名前:デフォルトの名無しさん [2008/04/25(金) 22:03:36 ]
- proxy.f3.ymdb.yahoofs.jp/bc/4811d5fe_a9ed/bc/%a5%de%a5%a4%a5%c9%a5%ad%a5%e5%a5%e1%a5%f3%a5%c8/slot.txt?bcIzdEIBwa.jLV2N
これを見た感想おしてください(しょぼすぎますがその辺はご了承ください)
- 168 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 22:06:55 ]
- >>158
二足のわらじって、君思いっきりJava脳じゃん? まぁ>>161でもちらっと出てるけどeventを作ればいいよ dobon.net/vb/dotnet/vb2cs/event.html
- 169 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 22:10:55 ]
- >>167
たいへんよくできませんでした
- 170 名前:167 [2008/04/25(金) 22:12:08 ]
- それは自分でも自覚してる。
あとどんなものつけたら面白くなりますか?
- 171 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 22:28:51 ]
- はじめはこんなもんだとは思うけどとりあえずgotoは封印しましょう
同じような処理はメソッドにまとめましょう どうでもいいけどhRandomっていう名前がキモい 参照型変数にhを付けることにしてるのか知らないけどそんなのあんまり意味無いし 付けるならslotにも付けないとおかしい
- 172 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 22:29:17 ]
- >>167
感想言っていいのか?本当にいいのか?
- 173 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 22:31:06 ]
- いいよ
- 174 名前:167 [2008/04/25(金) 22:36:02 ]
- この場合gotoつかわないとすれば何つかえばいいですか?
- 175 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 22:37:36 ]
- Hyoujiメソッドを呼び出せばいいんじゃないか?
- 176 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 22:40:27 ]
- >>160,165,168
教えていただいたことを参考にFTPClassにイベントを追加し 呼出元でイベントをハンドリングすることで希望通りの動作ができました。 ありがとうございました
- 177 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 23:08:55 ]
- >>167 とりあえずコメントは書こうな
using System; class slot{ static void Main(){ Console.Write("コインのもち数を入力してください"); int coin = int.Parse(Console.ReadLine()); int bell = 10,suika = 6,replay = 3; int[] slot = new int[9]; Random rand = new System.Random(); while (coin >= 3){ coin -= 3; int koyaku = rand.Next(1, 101); //スロットの値設定 for(int i = 0;i < slot.Length;i++){slot[i] = rand.Next(1,4);} //約100回に一回当たるよく分からないなにか if(koyaku == 1){ coin += 5; Console.Write("○ ○ ○\n○ 5 ○\n○ ○ ○\ncoin={0}\n\n",coin); } //通常処理 for(int i = 0;i < slot.Length;i+=3){ if(slot[i] == slot[i+1] && slot[i] == slot[i+2]){ coin += (slot[0] == 1) ? bell : (slot[0] == 2) ? suika :replay; } } //表示 for(int i = 0;i < slot.Length;i+=3){Console.Write("{0} {1} {2}\n",slot[i]+i, slot[i+1]+i, slot[i+2]+i);} Console.WriteLine("ncoin=" + coin); Console.ReadLine(); } } }
- 178 名前:167 [2008/04/25(金) 23:25:09 ]
- 177さん手直しありがとうございます。
プログラム初心者なんでそんなfor文使うなんて考えてませんでした。 ありがとうございます。
|

|