1 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 18:41:18 ] [前スレ]VB.NET質問スレ (Part17) pc8.2ch.net/test/read.cgi/tech/1155292844/
264 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 09:55:42 ] >>254 面倒くさいからためしてないけど、ダブルクリックイベントで イベントをキャンセルするか、現在選択している項目を再選択 させるかで実現できない? あと、一度に表示できる行数だけど、プロパティにないなら、APIじゃないと だめなんじゃないの? 最後に、スキルがあるなら、セルに合わせて通常のコンボボックスを ぴったり描画してやると、グレープシティのウンコグリッドよりも余程使い勝手が いいと思うよ。
265 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 10:15:10 ] >>257 String.Equalsメソッドは、引数オブジェクトのToStringメソッドをコールする癖をつけないと、 痛い目見るぞ それがいやなら=使っとけ あと>>261 の言うとおり、 ListItemCollectionのitemをRemoveすると、Collectionの中身が前詰めされるので、気をつけろ
266 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 11:11:18 ] >>265 2個前のレス(>>263 )くらい読めよ。 第一、step -1 で逆順にしてもループする回数がかわらねぇだろうが。 本当の意味で救いようがない。 バカなんだから、半年ROMってろ。
267 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 11:15:04 ] 逆順にしてケツから消していくのは定石じゃない?
268 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 11:28:43 ] 定石だよ
269 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 11:34:57 ] >>263 > たとえば、いきなり消すんじゃなくて、ループの中で消したいアイテムを > 選択状態にして、ループの終了後に選択項目だけを削除するようにするとか。 コードで書いてくれ
270 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 11:56:55 ] フラグ立てて刈り取りじゃないか
271 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 11:57:32 ] 質問させてけれ〜。 VS2003 VB.NET .NET Framework1.1 で開発してるんだけども、VB6以前で比較的よく使われてたフォームの表示の仕方 Load frmObj frmObj.Show と同じようなことってVB.NETで出来ないかな? 過去同じような質問がでてれば、ポインタかキーワード がもらえると助かります…。
272 名前:263 mailto:sage [2006/11/15(水) 12:21:30 ] >>269 そういう時は先生にエロ画像でも提供汁。気がきかねぇ。 Dim x As Integer Dim y As System.Windows.Forms.SelectionMode = ListBox1.SelectionMode '描画停止 ListBox1.BeginUpdate() '選択解除 ListBox1.ClearSelected() '複数選択可に変更 ListBox1.SelectionMode = SelectionMode.MultiExtended For x = 0 To ListBox1.Items.Count - 1 If TextBox1.Text.Equals(ListBox1.Items.Item(x).ToString()) Then ListBox1.SetSelected(x, True) End If Next x '選択されている項目を削除 For x = ListBox1.SelectedIndices.Count - 1 To 0 Step -1 ListBox1.Items.RemoveAt(ListBox1.SelectedIndices(x)) Next x '選択モードを退避前に戻す。 ListBox1.SelectionMode = y '描画再開 ListBox1.EndUpdate()
273 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 12:31:38 ] >>271 もし、それがドトネトでできないなら、OOPとは言わない。 うんこから帰ってきたら、教えてやるよ。
274 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 12:36:59 ] >>272 Equalsが一番レスポンスがいいとか言ってるくせに 非常に無駄なことをしているように見えるのは俺だけ?
275 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 12:39:53 ] なんか馬鹿と馬鹿が争ってる感じだねw このスレらしいけど。 .NETでは文字列の等価性の検査に= とか==演算子使え、っていうの自体は正論だけど Equalsが気持ち悪いっていうのはどうかね。 気持ち悪いっていうのは不自然と言い換えていいと思うが、文字列の等価性が =で検査できちゃうことの方が(便利ではあるが)不自然で気持ち悪いんだよ本来は。 それからコレクションのアイテムをシークして削除するときに シークしてるループの中で直接削除しちゃうデザインっていうのはどうなの?w ループカウンタをデクリメントで回すとかそういう問題か? そういうのは普通、あらかじめ削除する(または逆に「削除せず残す」)アイテムのコレクションを 作成しておいてからまとめて削除(あるいは総とっかえ)するコードを書くでしょ。
276 名前:263 mailto:sage [2006/11/15(水) 12:52:49 ] 本当にごめんなさい。 これですんでしまいました。 Dim x As Integer For x = ListBox1.Items.Count - 1 To 0 Step -1 If TextBox1.Text.Equals(ListBox1.Items.Item(x).ToString()) Then ListBox1.Items.Remove(ListBox1.Items.Item(x)) End If Next x ちょっと吊ってきます。
277 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 13:01:00 ] >>271 dim f As frmObj ’この時点で画面にあるコントロールのイニシャライズが走る。 Set f = New frmObj #Region " Windows フォーム デザイナで生成されたコード " ↑この中のNewのメソッド(オブジェクトのコンストラクタ)が走る。 次に自分がフォームに事前にやらせたい処理、例えば、VBの頃に ロードイベントに書いていたような処理をやらせたいのであれば、 その処理を外部に公開するメソッドとしてフォームに書いておいて Set f = New frmObj Call f.初期化処理 のようにメソッドをCallする。 もしくは、あまり進めないが、オブジェクトのコンストラクタ配下に書いても 処理は走る。 最後にShowすればおk。
278 名前:271 mailto:sage [2006/11/15(水) 13:03:52 ] ありがとう。助かったデス。
279 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 13:07:18 ] >>275 Items.RemoveAtによってSelectedIndicesも削除されるのを知ってて言ってるんだよな? 直接逆順ループでRemoveするのと何が違うんだ?
280 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 13:20:32 ] >>279 気にするな。 デザパタをちょっと勉強して、コードにデザインを持たせようと してるようだけど、全てが当てはまるわけじゃない良い例がコイツ>>275 ちなみに、>>275 はjava糞くせぇにおいがする。 C房はそんなことしない。
281 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 13:27:57 ] >275 定番中の定番なんだから、デクリメントで回せばいいって問題以外の何者でもないと 思うが。どうしてもインデックスループ中での削除が嫌ってのなら、効率は 落ちるが Dim count As Integer Do count = ListBox1.Items.Count ListBox1.Items.Remove(TextBox1.Text) Loop While count <> ListBox1.Items.Count とかもありだな。ListBoxで扱う量が大した事無ければ、実際には効率が 問題になることもないだろうし。 しかし、インデックスループがアレだからといいつつ、結局インデックスループを してるし、意図がよくわからん。
282 名前:デフォルトの名無しさん [2006/11/15(水) 13:46:21 ] >>264 こんなものに知恵なんか使うか、理屈ばっかりで頭は良くないな。 Dim i As Integer = 0 Do If ListBox1.Items(i).ToString.Equals(TextBox1.Text) Then ListBox1.Items.RemoveAt(i) Else i += 1 End If Loop While (i < ListBox1.Items.Count)
283 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 15:05:46 ] >>282 志村・・・あ、アンカー・・・ それに、お前のコードよりもまだ>>281 の方がマシ。 お前は理屈すら屁がついてる。
284 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 16:15:53 ] >275の9行目以降のような合理的というか効率的な(?)考え方ってどうやって身に着けるものなんでしょうか なぜ>275のようにした方が良いのかという点からしてわかりませんが・・・ 良い教科書無いかなぁ
285 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 16:18:07 ] >275を読んだ時点で書き込んだけど後についてるレス見ると>275が正しいとも云えないみたいですね でも結局>284の質問は変わらないのでよろしくお願いします
286 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 16:19:41 ] すぐ教科書を欲しがるのは良くないですよ。
287 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 16:22:23 ] >>284 オブジェクト指向を身につけて、デザインパターンを勉強汁。 参考までに ttp://www.objectclub.jp/ ガンガレ。
288 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 17:18:46 ] VB.netのくだしつスレが見当たらなかったからここで質問してみる P2Pのチャットソフト作ろうと思ってるんだけど 使う両者が特定の人間ならIPでつながる?
289 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 19:19:16 ] ttp://up2.viploader.net/pic2d/src/viploader2d156038.jpg ttp://up2.viploader.net/pic2d/src/viploader2d156023.jpg
290 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 20:10:30 ] >282 志村〜。やっぱ知恵は使ったほうがいいとおもうよ? あからさまにバグってるぞ。
291 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 21:15:35 ] ループの中で要素数が変わるんじゃないか
292 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 21:23:22 ] つか、境界条件。 空のリストで動かせば一発。
293 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 21:24:11 ] 空の境界。 ごめんなんでもない
294 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 21:28:26 ] >>272 があほにしか見えない
295 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 21:29:29 ] 本来=で比較できるのがおかしいって 本来ってなんだ本来って
296 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 21:36:56 ] >>295 いや、それに関しては否定できないと思う。
297 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 21:40:54 ] 演算子のオーバーロードはデグレードなのか?
298 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 21:52:50 ] 演算子のオーバーロードと言う言い方は良くない。 ちなみになんのことをいってるの?
299 名前:275 mailto:sage [2006/11/15(水) 22:01:19 ] >>284-285 正しい正しくないという問題というより、 どちらがシンプルで直観的であるか、あるいは応用が利くか、という問題だね。 まあどういう方法がより直観的かはあるいは意見が分かれるかもしれないけど、 応用度の方は自明だね。 例えば後から「文字列が一致するアイテムの前後のアイテムも削除する」という 仕様変更があった場合、>>261 みたいなプログラマは困るんじゃないの?w デザパタとか言ってる人がいるけど俺はいわゆるデザパタにこういうパターンが あるのかどうか知らない。 ただある程度まともなPGならこういう場合は>>275 のように考えるだろう。
300 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 22:04:21 ] >284-285 OOPらしくというなら、ListBox1に対し「○○をリストから消せ」と指示して Itemsの何番目かとかの細かい話はListBox1にやらせる>281の方が、言ってることと やってることがデタラメな>275よりずっと近いよ。
301 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 22:52:16 ] >>298 これの事を言ってるのだが。違うのか? スマンカッタ。Orz www.microsoft.com/japan/msdn/vs05/vbasic/vboperatoroverloading.aspx
302 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 01:06:01 ] 根本的に後で修正がきかないような箇所ならともかく、 その時点で完全に変えてしまうようなコードの部分に 応用度を最初から用意しておくのは、悪くはないけど、 そうしないのが馬鹿みたいなのはどうか。 XPの理念にも反する。
303 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 01:35:04 ] 応用にもなんにもなってない上に、>>272 にしても>>282 にしてもどっちも不必要に複雑にして さらに副作用やらバグありやらだしなー。 悪くはないじゃなくて、率直に言ってダメコードの見本だ。
304 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 06:34:45 ] >>301 いやいや! 本当に演算子の\だの=だのをオーバーロードしてるね! オレは2005はまだ案件も来てないし使ってないけど こんな機能が追加されたのか〜・・・ う〜ん?2005のフレームワークを逆コンパイルすると 演算子のクラスでもあるのかな? そこはちょっと興味ある。
305 名前:275 mailto:sage [2006/11/16(木) 08:15:10 ] >>302-303 まあ縁なき衆生は度し難しというからね。 俺は>>272 とか>>282 みたいなのが良いなんていってないしw
306 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 08:58:32 ] >>275 もうお前飽きたから、雑談がしたいなら雑談板にいけ
307 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 09:07:08 ] >>275 度し難しなのはお前。反論するならコードでも出してやるこった。 単なる俺様マンセーな話を続けるなら他所でやってくれ。
308 名前:デフォルトの名無しさん [2006/11/16(木) 09:53:58 ] >>307 同意、書けるんだったら初めから書いてる罠。 と言うことで一件落着、次いってみよう。
309 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 12:41:36 ] こんな奴らばっかりだからVBプログラマは一段下に見られるんだよね。 馬鹿な癖に馬鹿を自覚してないし、物事をシンプルに考える能力がない。 Private Sub RemoveMatchItems(ByVal Text As String) Dim aliveItems As New ArrayList For Each item As Object In ListBox1.Items If item.ToString <> Text Then aliveItems.Add(item) End If Next ListBox1.Items.Clear() ListBox1.Items.AddRange(aliveItems.ToArray) End Sub まあ>>261 のような考え方で書いたコードとどちらがより可読性があり どちらがより仕様変更に強いかの判断は任せるよ。 まあその判断能力自体がビッグクエスチョンなんだけどw
310 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 12:49:17 ] >>309 何度も同じ事を言わせんなよ。 >>306-308 もう終わったんだよ。 バカなのか? 失せろ。
311 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 12:59:24 ] >309 あのさ、さんざん指摘されてるが、そのコードでは削除対象に含まれない SelectedItem(s)とかもクリアされちゃうとか、リストビューが必要以上に スクロールしちゃうケースが出てくるとかの影響なんかは理解してる? 実務経験が少ないのなら仕方ないけど、リストボックスみたいな UIコントロールは見た目の動きも重要なんですよ。
312 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 14:59:21 ] だから>>309 は一段下に見られちゃうってことでFA?
313 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 15:05:49 ] >>312 見ろよ。こいつ>>309 >馬鹿な癖に馬鹿を自覚してない 一段どころか、モノホンのバカなんだよ。 で、もうこの話題は飽きたんだ。
314 名前:デフォルトの名無しさん [2006/11/16(木) 17:12:24 ] >>309 文字列どうしの比較はEquals()を使えって行ってるだろ。 まさかおまえ275と同一人物じゃないだろうな。 もういい、次、次、次。
315 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 17:47:11 ] エクアルスとか面倒なだけだろ
316 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 18:09:19 ] >>315 ( ・ω・)・・・イコールだよ・・・・
317 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 19:51:39 ] >>314 Equals使えってじゃばじゃないし。
318 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 19:52:42 ] ポカリスエットとはちがうのか
319 名前:デフォルトの名無しさん [2006/11/16(木) 19:55:34 ] >>318 それはアミノサプリだろ! …???あれ????
320 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 20:14:02 ] エアリスのことかーーー!!
321 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 20:41:19 ] >309が話題を流そうと必死になっているようだ。
322 名前:デフォルトの名無しさん [2006/11/16(木) 20:49:50 ] データグリッドについてきいてもいいか
323 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 20:56:37 ] 標準の? フレームワークは?
324 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 21:25:41 ] >>322 苦しゅうないよきに計らえ。
325 名前:デフォルトの名無しさん [2006/11/16(木) 21:57:18 ] データグリッドで、 プロパティから「編集、更新、キャンセル」 ボタンを追加したのですが、編集モードに 切り替わらないのです。もちろん、EditCommandの イベントハンドラにコードは記述してあります。 ステップ実行すると、イベントとして認識されて いないように思えるのですが。(Page_loadメソッドを見にいく) 教えてください、神様。
326 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 22:12:25 ] >>309 「物事をシンプルに考える能力がない」には同意。 簡単な事を小難しくコーディングするヤツが大杉。 物事の本質的な部分がわかってないからそうなるんだな。たぶん。
327 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 00:10:12 ] マッチする項目がなくても全部消して追加すんのかよ
328 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 00:28:59 ] >327 既出の動きが変わる件やら、DataSourceにbindingされていたらダメじゃんとか、 応用応用いいながらListboxコントロールをCheckedListBoxに変更されたら やり直しじゃんとか、突っ込みどころ満載なのはもう十分わかってるから、 せっかく逃亡しているんだからそっとしておいて、次の質問に備えようよ。 で、いまいち説明がよくわからんので、出せる範囲でいいのでコードを つけて説明してもらえるとコメントがつきやすいぞ >325 あと、DataGridなのか、DataGridViewなのかもね。
329 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 04:08:12 ] >>326 そういうやつらは少ない時間に多量のコーディングができると思われるので逆に評価が高い
330 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 08:20:37 ] >>328 突っ込みどころ満載、って それこそ突っ込みどころ満載だな。 馬鹿な癖に馬鹿を自覚してない、とはこういうことを言うんだけどねえw
331 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 08:50:06 ] 具体的に突っ込んでくれないと説得力ないよ
332 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 12:15:37 ] >>331 ウホッ!
333 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 13:25:15 ] >>330 せっかく逃亡したのなら、そのまま逃げてりゃいいのに。 なんでわざわざ恥をさらしに戻ってきたがるのやら。
334 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 14:34:15 ] >>333 >>330 は実は女でツンデレ。 このスレが好き。 もう少し、デレを出して欲しいよ。
335 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 20:56:46 ] 別にあんたたちのために帰ってきたんじゃないんだからね
336 名前:デフォルトの名無しさん mailto:sage [2006/11/18(土) 03:37:15 ] >>314 まだこんなこと言ってるやつがいるのか…… >>325 まさかまた、Page_LoadでPostBack時にもDataGridの中身をBindしている、 とかいうオチじゃないだろうな? 編集ボタンが押された後は Page.PageLoadイベント ↓ DataGrid.EditCommandイベント の順でイベントが発生するけど、 PageLoadイベントのイベントハンドラーで、DataGridの中身を、再バインドしてたら、 DataGridのイベントは、発生しないぞ
337 名前:デフォルトの名無しさん [2006/11/18(土) 18:48:23 ] 初めての質問です。プログラムを書いていて何点か質問です。 ビルドしたbin の中に ja ってフォルダがあるのですが、これも配布しなくては いけないものでしょうか?なくても動く気がしたので。 また、同様にFrameWorkに依存するのではなかろうかというDLL関係は 一緒に配布したほうがよいのでしょうか? Microsoft.VisualBasic.dll System.Web.dll 他 よろしくお願いします。
338 名前:デフォルトの名無しさん mailto:sage [2006/11/18(土) 19:06:05 ] >>337 jpフォルダはFormのLanguageプロパティを日本語にするなどで、日本語リソースを作るとできる。 要配布。もしその中が空なら無視してよい。 Microsoft.VisualBasic.dll 、System.Web.dll は.NETフレームワークが入っていれば必ずあるのもで、 配布したいなら再頒布可能パッケージ(dotnetfx.exe)を添付するべし。
339 名前:337 [2006/11/18(土) 19:32:13 ] >338 ありがとうございます。 もう一つ質問させてください。 .net 2003 使用してますが、SP1 を当てた場合。 配布先に新しくビルドしたプログラムを入れた場合、なにか注意点ありますか? FrameWork に準ずると思ってるので関係ないとおもってるのですが確信が なくて。また、Framework1.1 にも微妙にバージョン違いのものがあるかと 思いますが、開発環境ビルドものPCのFramework1.1 のバージョンと配布先 クライアントのFramework1.1のバージョンは合せて置くものでしょうか? グレープシティの製品のDLLが微妙にアップデートがあったりで 統一した方が良いのでしょうけど台数が数百台とかある場合みなさま どうされてるんだろうと思いまして・・・
340 名前:337 [2006/11/18(土) 19:36:58 ] 読み直したらめちゃくちゃ理解しがたい文章書いてしまいました。 すいません。 よろしくお願いします。
341 名前:デフォルトの名無しさん mailto:sage [2006/11/18(土) 20:02:41 ] 理解しがたいと自覚したならリライトしようよ。 SP はバグつぶしのためのものなので当然当てるべき。 SP 当ててりゃ .NET Framework のバージョンは悩まないで良い。同じ。 サードパーティのはサードパーティにバージョン管理のポリシを聞くべきだな。 Microsoft はマイナーバージョンまでが同じなら相互互換性を達成させておくべきだというガイドラインを示してるけど。
342 名前:デフォルトの名無しさん [2006/11/18(土) 20:19:39 ] NetworkStreamクラスのWriteメソッドについて質問させてください Writeメソッドは書き込むデータをbyteの配列で指定するようなのですが byte型だと負の値が使用できません NetworkStreamクラスで負の値を使用したい場合はどうすればいいんでしょうか?
343 名前:デフォルトの名無しさん mailto:sage [2006/11/18(土) 20:25:47 ] 何をしたいのかさっぱり分からんが、BinaryWriter 使えば?
344 名前:デフォルトの名無しさん mailto:sage [2006/11/18(土) 20:33:33 ] >>343 JavaのDataOutputStreamクラスのwriteメソッドと同じ機能を.NETで実現したいんです BinaryWriterだとファイルIOにしか使えなくないですか? ネットワークIOでbyte型の負の値を使用したいです
345 名前:デフォルトの名無しさん mailto:sage [2006/11/18(土) 21:25:06 ] BinaryWriter は Stream に対するバイナリ書き込み用クラスだ。 意味は分かるな? 言っておくが StreamWriter もそうだぞ。> Stream に対する
346 名前:デフォルトの名無しさん mailto:sage [2006/11/18(土) 23:16:11 ] つーか正か負かなんて関係ないんじゃね?
347 名前:デフォルトの名無しさん mailto:sage [2006/11/19(日) 00:02:02 ] >BinaryWriterだとファイルIOにしか使えなくないですか? 何を見てそう思ったのか不思議だ。
348 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 03:56:11 ] VB.NET 2003でボタンを押すたびに音声ファイル(WAV)が流れるように するにはどんなコードを書けばいいんでしょうか?
349 名前:337 [2006/11/20(月) 09:11:54 ] いつも、開発環境とクライアントの環境で意味不明のエラーがでてまして どうやらそのあたりに関係がありそうです。 これから調べはじめます。 .dll とかそのた依存ファイルがBin の中にうんざりするほど 入れてたのでそれの整理からはじめます。 いろいろありがとう御座いました。
350 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 10:49:16 ] あまりに初歩的な質問で恐縮なのですが、子供の為にボタンを使ったゲームを作っています。 ボタンが複数ある場合で任意のボタンの色を変えたいのですが、その際10個のボタンがある場合に b=変えたいボタンの番号 if b=1 then Button1.BackColor = System.Drawing.Color.Blue if b=2 then Button2.BackColor = System.Drawing.Color.Blue ・ ・ ・ のようなコードになるのでしょうか。 配列変数のように button(b).BackColor = System.Drawing.Color.Blue のようなボタンの指定の出来れば一行ですむのですが、VBでは出来ないのでしょうか?
351 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 11:15:13 ] >>350 Buttonをあらかじめ配列やリストにつっこんどいてループ。 あるいはform1.Controlsをループでまわして当該ボタンと比較
352 名前:350 mailto:sage [2006/11/20(月) 11:23:05 ] >>351 >Buttonをあらかじめ配列やリストにつっこんどいてループ。 回答ありがとうございます。 Buttonを配列変数に代入するということなのでしょうか?
353 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 12:19:16 ] Private btn(9) As System.Windows.Forms.Button とかでもいいんでね? で、最初に上の変数にボタンオブジェクトを代入しておいて 変えたい場合に btn(0).BackColor = System.Drawing.Color.AliceBlue
354 名前:337 [2006/11/20(月) 12:24:45 ] 度々すいません よく、Binの中に AxInterop.・・・ Infragistics.・・・ Interop.・・・ という、ある程度ルールに基づいてファイルができているかとおもいますが この3つのファイルの名前の付け方の意味をご教授願えますでしょうか 検索したのですが詳しくわかるページがなかったもので・・・ よろしくお願いします。
355 名前:350 mailto:sage [2006/11/20(月) 12:33:34 ] >>353 回答ありがとうございます。 ボタンのそれぞれの名前をbtn(0)〜btn(9)のようにしておけばよい ということなのでしょうか。 大昔の行番号のあるBASICしかやったことがないのでオブジェクトというものが理解出来ておらず 要領を得ない質問ですいません。
356 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 12:43:54 ] >>355 いやいや。 ドトネトになってコントロール配列は不可になったんだよ ボタンの名前はなんでもおk。 試しにボタンのオブジェクト名が【btnTest】【btnHoge】 として 最初の起動時にでもさっきのPrivateの変数に対して btn(0) = btnTest btn(1) = btnHoge ・ ・ ・ というように10個分変数に代入。 そのあとは変数を参照して5個目のボタンなら btn(4).BackColor = System.Drawing.Color.AliceBlue 見たいにすればおk
357 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 12:45:40 ] >>355 dobon.net/vb/dotnet/control/buttonarray.html の下の方
358 名前:350 mailto:sage [2006/11/20(月) 13:34:59 ] >>356 >>357 ありがとうございます! さっそくやってみます
359 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 13:44:30 ] >>354 フレームワーク以外の参照が必要なDLLとか、プロジェクトでbin配下に ファイルを入れてるなら、それがそこに入る。 ただそれだけ。
360 名前:350 mailto:sage [2006/11/20(月) 13:57:00 ] またひとつ疑問が。 今度は色の指定なんですが、こっちは配列変数には出来ないのでしょうか? c(0)=”red” c(1)="blue" c(2)="green" for i = 0 to 2 Button1.BackColor = System.Drawing.Color.c(i) 時間待ち next などとするとエラーになってしまいます。 算数で正解するとボタンがイルミネーションのようにくるくる色が変わるようにしたいのですが。 しかしVBってBASICって名ですが昔のとはかなり違いますね。
361 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 14:06:47 ] >>360 c(2) が、どう型を宣言しているかによる。 ボタンで勉強した応用だよ Private c(2) As System.Drawing.Color と今度は色の型宣言をして、この変数にいれるのもちゃんと 色の型を持つもの。 c(0) = System.Drawing.Color.AliceBlue みたいに。
362 名前:350 mailto:sage [2006/11/20(月) 15:02:50 ] >>361 そんな型宣言も出来るんですか。 変数にボタンやらを代入してそれを操作出来る、それがオブジェクト指向っていう理解でいいのかな??? 厨房の頃趣味でBASICとアセンブラをちょこっとやっただけなんで、すっかり様変わりした環境にとまどうばかりです。 ありがとうございました。がんばってみます。
363 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 16:07:00 ] >>362 そうだね〜 原点をオブジェクトとして、全てをオブジェクトから派生させたのが オブジェクト指向なのかなぁ フレームワークをみると、全てはオブジェクトから派生しているから その考え方はとってもスマートで、いい感じ。
364 名前:337 [2006/11/20(月) 20:44:09 ] bin の中身の件 いろいろありがとうございます。 もう一つ質問させてださい。 全部で10個くらいのEXEで運用してるアプリケーションです。 クライアントフォルダはC:\D-AP で固定としまして このフォルダの中にEXEを10個入れてます。 で、各EXEでコンパイルしたbinの中身をあわせた物を入れています。 ただ、新しくコントロールを追加した際DLLが足りない等の警告を極力 少なくしたいため、購入した.net ツールは前もって入れておきたい (NetAdvantege とかInputMan ) で、インストールされている関係する DLLやJaフォルダの中身を前もって全部入れて置くってのはありですか? いつもありがとうございます。 よろしくお願いします。