1 名前:最凶VB厨房 mailto:sage [05/02/26 00:00:13 ] VB.NETの質問全般です 過去スレ VB.NET質問スレ (Part9) pc5.2ch.net/test/read.cgi/tech/1106577850/ VB.NET質問スレ (Part8) pc5.2ch.net/test/read.cgi/tech/1102512868/ VB.NET質問スレ (Part7) pc5.2ch.net/test/read.cgi/tech/1096683017/ VB.NET質問スレ (Part6) pc5.2ch.net/test/read.cgi/tech/1088812165/ VB.NET質問スレ (Part5) pc5.2ch.net/test/read.cgi/tech/1078134703/ VB.NET質問スレ (Part4) pc2.2ch.net/test/read.cgi/tech/1065269043/ 【老若】VB.net質問スレ【男女】 (Part3) pc5.2ch.net/tech/kako/1056/10562/1056281084.html 【老若】VB.net質問スレ【男女】 (Part2) pc2.2ch.net/tech/kako/1043/10436/1043629429.html 【老若】VB.net質問スレ【男女】 pc2.2ch.net/tech/kako/1025/10258/1025848458.html
333 名前:最凶VB厨房 mailto:sage [05/03/20 02:12:03 ] 参照の追加 Microsoft.JScript Microsoft.Vsa '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Imports System Imports Microsoft.JScript.Vsa Imports Microsoft.JScript Public Class calc Public Shared Sub Main() Dim exp As String = "4+2*15/3" Dim ve As VsaEngine = VsaEngine.CreateEngine() Dim result As Double = CDbl(Eval.JScriptEvaluate(exp, ve)) '結果を表示 Console.WriteLine(result) Console.ReadLine() End Sub End Class 実行時の動的な式の評価 - Insider.NET www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=18271&forum=7 どぼん!のプログラミング道のメルマガ dobon.net/vb/melma/dotnet34.txt
334 名前:デフォルトの名無しさん [05/03/20 14:32:30 ] >>333 遅くなってすいません。 ありがとうございました。
335 名前:デフォルトの名無しさん mailto:sage [05/03/20 14:57:20 ] For文で繰り返し処理しているときでもユーザーの入力を 受け付けるようウェイトをかけたいんですが?
336 名前:デフォルトの名無しさん mailto:sage [05/03/20 15:00:32 ] そう言う処理は別スレッドでやって下さい。
337 名前:デフォルトの名無しさん mailto:sage [05/03/20 15:23:34 ] そして別スレッドのコントロールを触ってあぼーん
338 名前:デフォルトの名無しさん mailto:sage [05/03/20 16:37:32 ] え、waitとかsleepとかないんですか
339 名前:デフォルトの名無しさん mailto:sage [05/03/20 16:38:05 ] 基本だな。
340 名前:デフォルトの名無しさん mailto:sage [05/03/20 16:41:32 ] >>338 あるけどね。お薦めしない。 UIスレッドはユーザとの対話だけやって、重い処理は別スレッドでやるべき。 VB6までの常識は捨て去れ。 .NETでマルチスレッディングは簡単になったし。 コントロールを別スレッドから扱うのは工夫が必要だが。
341 名前:デフォルトの名無しさん mailto:sage [05/03/20 16:47:13 ] >あるけどね。お薦めしない。 一応教えてください。
342 名前:デフォルトの名無しさん mailto:sage [05/03/20 17:36:07 ] >>340 >>コントロールを別スレッドから扱うのは工夫が必要だが。 コントロールを貼り付けたりする方法を教えてけれ。
343 名前:デフォルトの名無しさん mailto:sage [05/03/20 17:45:10 ] >>342 端的に言えばFormのInvoke/BeginInvokeメソッドを使え、と言う事。 ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=18718 その辺をキーワードにぐぐればいろいろ情報も出てくるだろう。
344 名前:341 mailto:sage [05/03/20 17:51:08 ] 342とは別人なんですが >あるけどね。お薦めしない。 一応教えてください。
345 名前:デフォルトの名無しさん mailto:sage [05/03/20 19:38:13 ] なんだ、バカばかりだな。
346 名前:デフォルトの名無しさん mailto:sage [05/03/20 19:47:09 ] そうだな。
347 名前:デフォルトの名無しさん mailto:sage [05/03/20 19:50:15 ] バカで悪いか?
348 名前:デフォルトの名無しさん mailto:sage [05/03/20 21:08:59 ] >>347 悪いのでは?
349 名前:デフォルトの名無しさん mailto:sage [05/03/20 21:51:06 ] 質問です。VBには先人の開発したモジュール郡を無料で配布管理してる サイトが存在しますか? perlではCPANというボランティア団体が大量のモジュールを提供していました。 (ALL英語なので敷居が高く挫折気味ですが..) MSDNを彷徨って探してみてのですが、膨大なコンテンツ群に圧倒され お目当ての物はみつけられませんでした。
350 名前:デフォルトの名無しさん mailto:sage [05/03/20 21:53:46 ] GotDotNetとかthe Code Projectとか。 ん? .NETの話だよな?
351 名前:デフォルトの名無しさん mailto:sage [05/03/20 22:18:06 ] ええと...単体で買うとNETでは無くなるのかな? 新しいの買ってこようと考えていますが... the Code Projectは英語表記ですね>< GotDotNetはあまり20-30くらいしかモジュールないのかな... ...英語面倒だとか贅沢いうな ハゲとか言わないでください..>< 簡易にオブジェクト組めるVBに興味が湧き出しているのですが できれば、モジュールを組み立ててコーディングしたいのですので
352 名前:デフォルトの名無しさん mailto:sage [05/03/20 23:06:31 ] .NET Frameworks自体が、でかいモジュールの集まりだと言えなくも ない罠。
353 名前:デフォルトの名無しさん [05/03/21 02:11:58 ] .NETでは6.0で書かれたVBソースって見れないんでしょうか? 今日電気店にて聞いたところ 「6.0で書かれたソースを.NETで開くと .NETの形式に変換されて表示されちゃう。」 と言われました。 当方ソースを閲覧できさえすればよいのですが エディタを使うしかないのでしょうか? .NETを使用して見れるとよいのですが…。 6.0は販売してないし…。
354 名前:デフォルトの名無しさん mailto:sage [05/03/21 02:18:20 ] 閲覧だけならテキストエディタで良いじゃんと思うんだが。 VSは一々重いし。 VBの色つけならそれなりのエディタが対応してるんじゃない?
355 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 06:52:08 ] >>354 それなりとは?
356 名前:デフォルトの名無しさん [2005/03/21(月) 08:18:33 ] >>354 重いってどこが?
357 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 08:51:59 ] おまいら>>353 の電気店ってほうが突っ込むべきところだと思うが。
358 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 11:00:25 ] >>357 思いません。
359 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 14:47:34 ] すいません、質問させてください。 IEのフォームにVB.NETで文字を自動入力させることは可能でしょうか? 注文ページに住所氏名電話番号など、自動入力できる常駐ソフトなど、 よろしければ教えてください。
360 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 18:24:38 ] 'Yahooにログイン.vbs '------------------- Set ie = CreateObject("InternetExplorer.Application") ie.visible = True ie.navigate "www.yahoo.co.jp/r/l1 " Do WScript.Sleep 100 Loop While ie.Busy With ie.document.forms(0) .item("login").value = "なまえ" .item("passwd").value = "ぱすわーど" .submit End With
361 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 19:13:14 ] AddHandlerで、イベントをデリゲートした場合、 明示的に、RemoveHandlerを呼び出さないと、ガベージコレクトされませんか?
362 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 19:26:52 ] 361ですが、 イベントハンドラ(イベントを関連付けたメソッド) を持つクラスのインスタンスをNothingしても、RemoveHandlerを呼び出していなかった場合、 ガベージコレクトされずに、メモリに残ることはないのだろうかということです。
363 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 19:34:14 ] ないよ。普通にGCされる。
364 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 19:44:02 ] >>362 VB.NETではリソースの解放は一切必要ないよ。 ベストは1秒間隔くらいで動くタイマ仕掛けておいて、 その中でSystem.gc.Collect()しとけば絶対リークなしだよ。
365 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 19:47:21 ] ReDimも解放されますか?
366 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 19:47:43 ] 無茶言うな。
367 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 19:48:45 ] >>365 されるよ。GCは最強。
368 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 19:57:32 ] そうですか。レスありがとう 一応、REmoveやっとけばいい話だけども。 ヘルプによると、 Event ステートメントで型が定義されて、 AddHandlerで、その型にインスタンスされるそうです。(デリゲートが?) >>364 そりゃないよ。
369 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 20:34:25 ] 一応技術的な解説をしとこう。 イベントは、対応する引数・返値を持ったデリゲートの一種のプロパティだ。 デリゲートというのは、メソッドへの参照リストを保持する特殊なクラス。 Event Hogeを宣言すると、VB.NETコンパイラは以下の操作を行う。 ・MulticastDelegateを継承するHogeEventHandlerクラスを作成する ・HogeEventHandler型のフィールドHogeを追加する ・メソッドadd_Hogeとメソッドremove_Hogeを追加する イベントの実体は結局の所デリゲートの派生クラスであるHogeEventHandler型のフィールドHogeである。 AddHandlerステートメントは、まずメソッドの参照をラップするHogeEventHandlerインスタンスを作成する。 その後add_Hogeを呼び出して、フィールドHogeと作成したインスタンスを合成し、新しくHogeとする。 これでHogeにはメソッドの参照であるHogeEventHadlerインスタンスのリストがあることになる。 //このリストは飽くまでインスタンスの参照のリストである、という点を忘れてはいけない。クラスインスタンスは全て参照でやりとりを行う。 RaiseEventステートメントを使うと、このメソッドリストを最初から順に実行していくわけだ。 さて、Hogeが持ってるのはHogeEventHandlerインスタンスのリストである。 それぞれのHogeEventHandlerインスタンスはこのHogeからしか参照されていないわけで、 Hogeが他から参照されなくなると、自動的に各HogeEventHandlerインスタンスも他からの参照はなくなる。つまりGCの対象となる。 ではHogeの参照を持っているのは、というと(SharedのEventでない限りでない限り)、 Eventを持ってるクラスのインスタンスが ・明示的にHogeにNothingを代入する(ただしVB.NETでは不可能) ・クラスのインスタンス自身が他から参照されなくなった といった状況だ。 つまり、クラスのインスタンスがGCされる状況では必ずHogeとHogeが持っているHogeEventHandlerインスタンス達もGCの対象になっているというわけだ。 あと、RemoveHandlerすればHogeからHogeEventHandlerインスタンス(の参照)が一つはずれる。 はずされたHogeEventHandlerは当然他からの参照されていないためGCの対象になる。
370 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 21:13:16 ] >>368 >そりゃないよ。 理由言ってみ。
371 名前:368 mailto:sage [2005/03/21(月) 21:13:47 ] >>369 ダラダラ分かりにくい解説ありがとう
372 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 21:33:35 ] >>371 俺は369じゃないが君人間として終わっとるな。
373 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 22:17:23 ] >>372 理由言ってみ
374 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 22:34:07 ] 言われないと分からないようなやつがいるこんな世の中じゃ(ry
375 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 22:35:28 ] Python
376 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 22:37:24 ] うまいな。(w
377 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 22:48:36 ] >>374 つまり説明はできないということだね。
378 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 22:49:01 ] >>374-376 自演乙
379 名前:デフォルトの名無しさん mailto:sage [2005/03/21(月) 22:54:45 ] 分かりやすい自演をするのが最近の2ちゃんのトレンドだと思うが。
380 名前:デフォルトの名無しさん mailto:sage [2005/03/22(火) 17:07:50 ] ListViewのアイテムをカラムの値を使ってソートしたいのですがやり方がサッパリわかりません。 教えていただけないでしょうか?
381 名前:デフォルトの名無しさん mailto:sage [2005/03/22(火) 17:13:16 ] >>380 どぼん
382 名前:デフォルトの名無しさん [2005/03/23(水) 01:01:41 ] ブラウザコントロール(?)を利用してデータをPOSTで送信しているのですが、 特定のコード(Chr(81)〜Chr(9F))が00に化けてしまいます。 コードはこのような感じです。 Dim sendPOST As Object Dim i As Integer sendPOST = "test=" For i = 0 To 255 sendPOST += Chr(i) Next i sendPOST = Encoding.GetEncoding("Shift-JIS").GetBytes(sendPOST) AxWebBrowser1.Navigate2("xxxxxxxxxxx/test.php ", "", "", sendPOST, "") 化けない方法はありますか?
383 名前:382 [2005/03/23(水) 01:03:51 ] >特定のコード(Chr(129)〜Chr(159))が00に化けてしまいます。
384 名前:sage [2005/03/23(水) 01:48:09 ] 算術演算子はオーバーロードできないのですか?
385 名前:デフォルトの名無しさん mailto:sage [2005/03/23(水) 03:26:18 ] >>382 アスキー未定義コードだし、相手がLinux鯖じゃないのかな?
386 名前:デフォルトの名無しさん mailto:sage [2005/03/23(水) 05:12:48 ] >>384 できない。 VB2005では、できるようになるらしい。
387 名前:デフォルトの名無しさん [2005/03/23(水) 11:53:42 ] 最初の画面のコンボボックスで、”AAA”という値を選択したとして 次の画面のコンボボックスで、”AAA”という同じ値が存在したら 選択状態にしたいのですが、どーすればいいのでしょうか?
388 名前:368 [2005/03/23(水) 12:08:50 ] 371は俺じゃないぞ。
389 名前:デフォルトの名無しさん mailto:sage [2005/03/23(水) 13:29:56 ] >>387 そう言う風に書け、としか言いようがないな。
390 名前:デフォルトの名無しさん [2005/03/23(水) 14:01:51 ] >>389 すみません、具体的なコマンドが知りたいのですが。。。
391 名前:デフォルトの名無しさん mailto:sage [2005/03/23(水) 14:27:55 ] グローバルで値を渡してselectedItemに投げろ。
392 名前:デフォルトの名無しさん [2005/03/23(水) 14:40:59 ] サンクス子!
393 名前:デフォルトの名無しさん [2005/03/24(木) 08:27:18 ] VB.NETからボタンなどのコントロールの配列ができなくなって 結構めんどくさいのですが、 ボタンがcmdBtn00からcmdBtn99まであって、 String="33"の場合、cmdBtn33のボタンオブジェクトが欲しいのですが、 どうすれば可能でしょうか? Select Caseでだらだらと書くのでなく、 2,3行以内で書きたいのですが。
394 名前:デフォルトの名無しさん mailto:sage [2005/03/24(木) 08:28:03 ] VB.NETでアプリケーションを作りました。 配布のためにインストーラを作成したいのですが 定番はどのような方法でしょうか?
395 名前:デフォルトの名無しさん mailto:sage [2005/03/24(木) 08:44:44 ] >>393 コントロールの配列はできますよ
396 名前:デフォルトの名無しさん mailto:sage [2005/03/24(木) 08:47:18 ] >>393 ほら dobon.net/vb/dotnet/control/buttonarray.html
397 名前:デフォルトの名無しさん mailto:sage [2005/03/24(木) 08:50:04 ] >>393 6.0の頃みたいに添字で配列化はできないけれど、普通に1次元配列 を宣言して、そこにオブジェクトを代入すればそれっぽく使える。
398 名前:デフォルトの名無しさん mailto:sage [2005/03/24(木) 09:04:22 ] 配列いらないよ。 Formにボタンおいてるなら、そのフォームのControlsコレクションに入ってるから、 TypeOfで、取り出せる。
399 名前:デフォルトの名無しさん mailto:sage [2005/03/24(木) 10:40:07 ] ShowDialogで表示したページに 明示的にDislogResultを設定すると 勝手にページが閉じるんだが これは仕様?
400 名前:デフォルトの名無しさん mailto:sage [2005/03/24(木) 10:50:52 ] 仕様。
401 名前:デフォルトの名無しさん mailto:sage [2005/03/24(木) 11:41:14 ] >>400 トンクス
402 名前:デフォルトの名無しさん [2005/03/24(木) 12:30:08 ] >>393 です。 みなさんありがとうございます。 結果、下記のようになりました。 Private Function GetButton(ByVal a_str As String) As Button Dim objControl As Control Dim btn As Button Dim strWork As String For Each objControl In Me.Controls If objControl.GetType Is GetType(Button) Then btn = CType(objControl, Button) strWork = btn.Name If strWork = a_str Then GetButton = objControl Exit For End If End If Next End Function
403 名前:デフォルトの名無しさん mailto:sage [2005/03/24(木) 16:59:07 ] 俺のやり方が正しいかわかんないけど、 ボタンコントロールがたくさんあるなら、デザイナからも設定できるけど、プロパティにTagってのがあるでしょ。 そこに、1とか、2とか番号振っといて、 For Each C as Control In Me.Controls If TypeOf C Is Button Then If C.Tag.ToString = "1" Then Btn=DirectCast(C,Button) End If End If Next 試してはいないです。
404 名前:デフォルトの名無しさん [2005/03/24(木) 18:25:27 ] >>403 あーTagですか。 他社製品のコンポーネントでtagを使用してたのに Windows標準のコンポーネントでのTagの存在、 全く気づきませんでした。 軽く見ると、もしかしてコントロールには すべてTagがついてそうで、 そのやり方の方が短くていいかも。 やってみたら、5行も短くなりました。 さんくす。 Private Function GetButton(ByVal a_str As String) As Button Dim objControl As Control Dim btn As Button For Each objControl In Me.Controls If objControl.Tag = a_str Then GetButton = objControl Exit For End If Next End Function
405 名前:デフォルトの名無しさん mailto:sage [2005/03/24(木) 19:11:53 ] ここはバカが結構いるインターネッツですよね?
406 名前:デフォルトの名無しさん mailto:sage [2005/03/24(木) 19:12:29 ] そんなに自分を責めるなよ。
407 名前:デフォルトの名無しさん mailto:sage [2005/03/24(木) 21:00:36 ] いや、実際バカばかりだよな。 全員がそうではないけど。
408 名前:デフォルトの名無しさん mailto:sage [2005/03/24(木) 21:43:22 ] obj=controls.contains(Button1)とか。
409 名前:デフォルトの名無しさん mailto:sage [2005/03/24(木) 21:44:08 ] これじゃ意味内科。
410 名前:デフォルトの名無しさん [2005/03/25(金) 16:17:50 ] 質問です。 Windowsアプリケーションなのですが、 ShowDialogで表示したページを閉じて親ページにもどる時に親ページをリフレッシュ する一般的な方法ってありますか? Webアプリケーションの時はフレームを使ってJavaScriptを埋め込みました。
411 名前:デフォルトの名無しさん [2005/03/25(金) 16:19:36 ] >>410 のつづき しかし、Windowsアプリケーションでは方法が見つかりません。 回答よろしくお願いします。
412 名前:デフォルトの名無しさん mailto:sage [2005/03/25(金) 16:21:09 ] リフレッシュの意味がわからん。
413 名前:デフォルトの名無しさん [2005/03/25(金) 16:24:44 ] >>410 FormLoadを明示的に呼ぶ
414 名前:デフォルトの名無しさん [2005/03/25(金) 16:26:53 ] >>412 すいません。分かりにくかったですね。 >>413 やってみます。サンクス子
415 名前:デフォルトの名無しさん [2005/03/25(金) 16:42:27 ] ↓もしかしてこれだけとかゆう落ちだったかも・・ Dim f2 As New Form2 f2.ShowDialog() Me.Form1_Load(sender, e) Webアプリケーションももっと楽な方法がありそうですね。
416 名前:デフォルトの名無しさん mailto:sage [2005/03/25(金) 20:13:07 ] 閉じる時に、クローズドイベントとかあるのでは?
417 名前:デフォルトの名無しさん mailto:sage [2005/03/25(金) 23:18:14 ] VB.NETから簡単に使えるHTMLパーサはないでしょうか。
418 名前:デフォルトの名無しさん mailto:sage [2005/03/26(土) 20:42:12 ] >>413 おバカ!! イベントの概念勉強してこい。ぼけ。
419 名前:デフォルトの名無しさん mailto:sage [2005/03/26(土) 20:50:06 ] Form1_Loadメソッドを 呼びだすという意味じゃないの?
420 名前:デフォルトの名無しさん mailto:sage [2005/03/26(土) 20:54:20 ] ひとをバカ呼ばわりするなら、解決策も併記してほしいもんだな。
421 名前:デフォルトの名無しさん mailto:sage [2005/03/26(土) 22:13:40 ] >>420 Form1_Load()を呼び出しても何の問題もないよ。 でも>>418 さんの説明を待ってみましょうか?w
422 名前:デフォルトの名無しさん mailto:sage [2005/03/26(土) 22:15:52 ] すいません。どなたか>>417 のヒントかアイディアだけでも いいのでお願いします。
423 名前:デフォルトの名無しさん mailto:sage [2005/03/26(土) 22:15:53 ] >>418 は説明できなくて逃亡に65535バイト。
424 名前:デフォルトの名無しさん mailto:sage [2005/03/26(土) 22:26:17 ] >>422 ttp://www.microsoft.com/japan/msdn/academic/Articles/fun/03/
425 名前:デフォルトの名無しさん mailto:sage [2005/03/26(土) 23:25:30 ] >>423 つまんね
426 名前:デフォルトの名無しさん mailto:sage [2005/03/26(土) 23:26:38 ] >>424 どうもありがとうございました。
427 名前:デフォルトの名無しさん mailto:sage [2005/03/27(日) 06:44:06 ] ListBoxで一つの項目だけフォントを太字にすることはできないのでしょうか?
428 名前:デフォルトの名無しさん mailto:sage [2005/03/27(日) 06:55:38 ] listViewだとできますがいかがでしょう。
429 名前:デフォルトの名無しさん mailto:sage [2005/03/27(日) 08:16:40 ] >>427 できないのでしょうか?はご法度ですが?
430 名前:デフォルトの名無しさん mailto:sage [2005/03/27(日) 13:08:12 ] >>427 オーナードロー
431 名前:デフォルトの名無しさん mailto:sage [2005/03/28(月) 00:30:20 ] コントロールのフォントを太字にしたいとき Control.FontBold = True [VB] Control.Font = New Font (Control.Font, FontStyle.Bold) [VB.NET] 同時に斜体や下線も指定するときはVB.NETの方が一括で指定できて便利だが、 現在のフォントを指定することなくもう少し簡略に書く方法はないだろうか。
432 名前:デフォルトの名無しさん mailto:sage [2005/03/28(月) 00:38:50 ] ない。
433 名前:デフォルトの名無しさん [2005/03/28(月) 00:42:22 ] というか、>>431 は何が不満でどうしたいのかよくわからない。 旧VBライクに現在のフォントからスタイルだけを変更したいということ?