VB.net質問スレ (Part4)

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
VB.net初心者〜VB.net神
まで自由に書き込んでチョ。

過去スレ
【老若】VB.net質問スレ【男女】 (Part3)
http://pc2.2ch.net/test/read.cgi/tech/1056281084/
【老若】VB.net質問スレ【男女】 (Part2)
http://pc2.2ch.net/tech/kako/1043/10436/1043629429.html
【老若】VB.net質問スレ【男女】
http://pc2.2ch.net/tech/kako/1025/10258/1025848458.html

テンプレ >>2-10 あたり
どぼん!のVB道のトップページとTipsページ
http://dobon.net/vb/
http://dobon.net/vb/dotnet/index.html
Microsoftクイック スタート チュートリアル
http://ja.gotdotnet.com/quickstart/default.aspx
リソースセンター> .NET関連リンク
http://www.atmarkit.co.jp/fwin2k/rescenter/indexpage/net.html
Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
@IT: 連載 VB.NETプログラミング
http://www.atmarkit.co.jp/fdotnet/vb6tonet/index/index.html
@IT:連載 改訂版 C#入門
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/index/index.html
C#プログラミングTips
http://www.atmarkit.co.jp/fdotnet/csharptips/index/csharptips_index.html
宇宙仮面の C# プログラミング / C# Programming
http://ukamen.hp.infoseek.co.jp/
VB.NETとC#でデザインパターン
http://hccweb1.bai.ne.jp/tsune-1/
ConvertCSharp2VB
http://www.kamalpatel.net/ConvertCSharp2VB.aspx
WisdomSoft 〜Developers Network〜
http://black.sakura.ne.jp/~third/
CodeProject
http://www.codeproject.com/vb/net/
the GotDotNet Home Page
http://www.gotdotnet.com/
KEN's .NET
http://www5b.biglobe.ne.jp/~yone-ken/VBNET/index.html
ソース置き場.NET
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049
Cetus Links: 19,498 Links on Objects and Components / .NET
http://www.cetus-links.org/oo_dotnet.html
関連スレ
VisualStudio.NET(MSDN Deluxe) Part1
http://pc2.2ch.net/test/read.cgi/tech/1060335656/
ふらっとC♯(Part5)
http://pc2.2ch.net/test/read.cgi/tech/1065196964/
C♯相談室 Part11
http://pc2.2ch.net/test/read.cgi/tech/1061262958/
managed C++ やろうぜ!!
http://pc2.2ch.net/test/read.cgi/tech/1014486422/
フリーの.NET統合開発環境「SharpDevelop」
http://pc2.2ch.net/test/read.cgi/tech/1023727377/
消しゴムじゃない方のMONOを使ってみるスレ
http://pc2.2ch.net/test/read.cgi/tech/1020215602/
♯♯♯Shared Source CLI ♯♯♯
http://pc2.2ch.net/test/read.cgi/tech/1024222901/
v(・∀-)b VBプログラマ質問スレ(6.0以前) Part28
http://pc2.2ch.net/test/read.cgi/tech/1061296197/
5デフォルトの名無しさん:03/10/04 21:09
>>1
7デフォルトの名無しさん:03/10/04 21:36
VB.NETでお勧め本ってなんですか?プログラム初心者ですが、Visual Basic.NET入門という
本を読んで一応理解はしたのですが、次になにをよめばいいかと思って。最終的には
ASP.NETをVBでやりたいんですが・・・よい本あれば教えてください。お願いします
8デフォルトの名無しさん:03/10/04 22:07
http://sourceforge.jp/softwaremap/trove_list.php?form_cat=160
  1 146   C
  2 119   C++
  3  90   Java
  4  55   PHP
  5  44   Ruby
  6  32   Perl
  7  24   Delphi/Kylix
  8  21   Other
  9  17   Assembly
 10  16   Python
 11  13   Objective C <--------C++に敗北して廃棄状態
 12  12   C# <--------超負け組み
 13  7   Unix Shell
 14  5   Tcl
 15  5   Lisp
 16  4   Visual Basic <--------廃棄処分
VectorじゃVBだらけだけどな
VectorじゃDelphiだらけだけどな
11 ◆eInTEL50Ug :03/10/05 01:27
なんだかんだでC++が多いけどな
確かに低レベル言語順だな
sourceforgeなんてオタクしか見ないよ
14デフォルトの名無しさん:03/10/05 04:46
事実を受け止められないか…
sourceforgeはUNIX系なものばかりだから参考にならないよ。
16デフォルトの名無しさん:03/10/05 21:10
VB6の初心者です。
複数の画面からなるプログラムを作っていますが、1画面から2画面に移った場合データが表示できません。
プログラムは1画面表示の次画面表示のコマンドにはFORM2.Show1の画面が出たまま止まってしまいます。
データ表示のプログラムは記述してますが、表示できません。
どのようにしたらいいのでしょうか?
わかる方、レスください。お願いします。
>>16
VB6の質問はこちらのスレで。
http://pc2.2ch.net/test/read.cgi/tech/1061296197/l50
このスレにVB6の質問を書くヤツは・・・
19デフォルトの名無しさん:03/10/06 10:14
神!
20デフォルトの名無しさん:03/10/07 23:46
今度、VB.NETでサーバーを開発することになりました
当方サーバー開発については全くの無知なので
時が来る前に本で学習しておきたいのですが
何かお薦めの本はありますでしょうか?
自分のレベルはサーバー開発を省けばCなら、大抵のことは出来ます
またVB.NETのほうは入門書はクリアしています
>>20
頑張ってWindows2003 Serverを超えるものを作ってください。
>>21 自分でも作れないもの出すなよ(w
23 ◆eInTEL50Ug :03/10/08 16:50
>>20
Net.Socket.Socketでがんがれ。
これ以上の事は分からん。
トリップ付けて無責任な発言するな。
今度、VB.NETでサーバーOSを開発することになりました
26デフォルトの名無しさん:03/10/09 10:58
ウィンドウの閉じるボタンが押された事は
VB側で拾えるの?
>>26
OnClose()だろ。
28デフォルトの名無しさん:03/10/09 13:22
Closingじゃだめか?
29デフォルトの名無しさん:03/10/09 14:39
>27、28
さんくす
30デフォルトの名無しさん:03/10/09 15:46
CreateObjectで起動したExcelファイルのプロセスIDって
狙い撃ちで取得出来るの?
ps = Diagnostics.Process.GetProcessesByName("Excel")
For Each p In ps
 MessageBox.Show(p.Id.ToString)
Next
とすると、起動中のExcelファイル全件分持ってきちゃうもので。
31デフォルトの名無しさん:03/10/10 01:02
オブジェクト指向の入門書を読んでC++で試したあと、GUIなプログラムを早く作ってみたくなり
試しにVB.NETでこれに従って作ってみようと思ったのですが、
これまでにWindowsプログラミングの経験がないためか、
CUIでやっていたことがGUIにどう繋がっていくのか具体的なイメージが浮かんできません。
フォームから送られてきた値を自分の作ったクラス(そのフォームの状態を表現している?クラス)が受け取り、
それを処理した後にその値をフォームに反映する、というようなことを考えたりしています。

どなたか「普通はこうやるよ」というのを教えていただけないでしょうか?
よろしくお願いします。
GUIアプリならDelphiを使おう。
とりあえずあれこれ考えずにサンプルこなしていくのがいいと思うよ。
34x:03/10/10 09:32
>>32
Delphiに慣れてるならC#がきっと気に入る!!
>>34
全然。
何やるにしても面倒くさい。
36最凶VB厨房:03/10/10 18:46
>>30
Dim p As Process
p=Process.Start("C:\hoge.exe")
Console.WriteLine(p.Id.ToString())
というふうにやるのはだめか?
>>33
Delphiに慣れてるなら、Delphi作った人が作ったVB.NETのほうが気に入るはず!

ごめん、漏れはDelもC#もVB.Netどれ一つとってもマトモに触ってないんだ。
ネイティブコンパイルのやり方を教えてください。
39デフォルトの名無しさん:03/10/12 23:02
VB.NETがわか〜るのナレーターの女って、説明下手くそすぎやしないか?
彼女の説明は、一度正しい日本語に直して、何がいいたいのか組み立てなおさなければ
ならない。
おまけに、内容が複雑になると説明を一切省き、さらに難しい用語を持ち出した挙句
その用語の説明を一言で済ませ、わかったつもりにさせている。

ファイルストリームについての説明をすべき章で、seekの説明を一言で済ませ、
その後たまたま出てきたFor each文の説明をしている。
For each文は以前の章で説明済みであるだけでなく、
For each文以降のwriter.flushメソッドやfstream.closeメソッドを「その他のコード」扱いし
「その他のコードで、ファイルの書き込みを完結させています」と説明する。

最後に、服ぬいで「こんな感じなんです」といってくれれば、全て理解できそうだけど(´д`)
やっぱ女はプログラミングには向いてねえのかなあ・・
男作ってセクースしてれば満足な生き物なのかなあ・・

真面目なVB.NET談義の最中スマソ
40最凶VB厨房:03/10/13 01:08
>>38
ms-help://MS.VSCC/MS.MSDNVS.1041/cptools/html/cpgrfnativeimagegeneratorngenexe.htm
これ使えばできそ

>>39
そーいう文句はナレーターじゃなくて台本書いたヤシに言うのがスジでは?
42デフォルトの名無しさん:03/10/15 00:20
VB.NET で ODBC 経由でデータベースに接続してます。
DataGrid に SetDataBindings で、DataSet をバインドしていて、
DataGrid1 では正常に表示されるのですが、
DataGrid2 では、一見正常ですが、Me.BindingContext(dataset_inst, "table1").AddNew()
しても、そのデータにアクセスできません。(DataGrid1 はアクセスできる)
Me.BindingContext(dataset_inst, "table1").Count はちゃんと増加しているのですが
Position を設定しても、そのPosition に行ってくれません。

何かヒントありませんでしょうか。
43デフォルトの名無しさん:03/10/15 13:09
VB.NETにIsNumeric関数に相当するものある?
VisualBasic.DLLを用いない方法で
IsNumericとは&HFFや1E10もTrueを返す関数ですね?
4543じゃないよ:03/10/15 16:41
>>44
ほんとだ、意外と高機能だったんだね。初めて知ったよ。
おまけに &HXX とかありえないやつだと、ちゃんとFalse返してら。
&HXXでTrueが返ってきたらIsNumericじゃないだろw
47最凶VB厨房:03/10/15 18:54
>>43
ms-help://MS.VSCC/MS.MSDNVS.1041/cpref/html/frlrfSystemCharClassTopic.htm
のメソッドに目的のものがあるかもしれない。
IsNumericとは(10)、\1,000、&15、20+、0001、123なんてのもTrueを返す関数だ。

49デフォルトの名無しさん:03/10/16 19:58
>>47
サンクスコ
IsNumber関数ですね

50こっちも頼む:03/10/16 20:14
こっちのスレ(VBAエキスパートについて)もよろしく
http://school2.2ch.net/test/read.cgi/lic/1066275292/l50
51デフォルトの名無しさん:03/10/16 23:52
vb.netとVBの違いがわかりません・・・。

.netってDataObjectとかを使って
完全にクライアントとサーバの処理をわけてしまう、とか
そのアタリが.net!って感じなのでしょうか?
Javaとあんまり違いがわかりません。
頭のてっぺんから爪の先まで違う。
似てるのは名前だけ。

今月号の.Netマガジンについてる過去記事CDでも見ながら勉強しな。
>>51
なにかつくったことあるのか?
やったことのある奴が言うセリフじゃない。
>>51
というかVB.NETとVBとJAVAのどれを比較しているのかわからん
>>51
違いがどうこういう前にそれぞれの言語をちゃんとヤリコメ。
5651:03/10/18 01:28
>>53
何も作ってません。
今から開発に入るところです。

すら、っと上のリンク見てきましたけど言語的に変わってる所はまぁいいとして、
業務的にどんな感じの開発に使うのかなと思って。
Javaと似たような感じでクライアントとサーバで完全に処理を分けるような形で開発するのが主なの?
それともDAOとかでオラクルでひっつなげる今までと同じような開発の仕方になるの?

上のリンクみたら.NET環境で他言語との隔たりがなくなることや、
フレームワークのDLLが1種類で良いこととか。ソースやクラスの流用ができること、ぐらいしか書いてなかった。

開発の感じなんかは特定のフレームワークを使って
XMLのマッピングファイルなども使ってJava的な感じでやってくんでしょうか?
うまくイメージつかめません。

それと例外処理や固定長取りやめなどは、逆にやりやすくなったね。VBが他言語に歩み寄ったって感じ。
エクセプションとばせるのは嬉しい。



57最凶VB厨房:03/10/18 09:06
>>56
上のリンク集はアマグラマが出したものだ。
こういうところも読んでみたのか?
http://www.atmarkit.co.jp/fdotnet/architecture/aafn_index/index.html
ms-help://MS.VSCC/MS.MSDNVS.1041/vsent7/html/vxoriDesignConsiderationsForDistributedApplications.htm
http://www.microsoft.com/japan/msdn/columns/default.asp
http://www.atmarkit.co.jp/fdotnet/t-interview/unisys_af/unisys_af01.html

とりあえず、なんか組めよ。言語仕様もある程度は把握する必要もあるだろうし、
.net frameworkを扱う知識もいるだろうから、そんなあなたに
ms-help://MS.VSCC/MS.MSDNVS.1041/vbcn7/html/vaconprogrammingwithvb.htm
ms-help://MS.VSCC/MS.MSDNVS.1041/cpguide/html/cpconprogrammingwithnetframework.htm
ms-help://MS.VSCC/MS.MSDNVS.1041/cpref/html/cpref_start.htm
あとは自力で調べてくれ。
5851:03/10/20 07:28
>>57
フーンなるほど。
ありがとう。参考になりました。

今ってその一番上のリンクにあるように
ユーザプロセスとビジネスロジックとサーバプロセスと分ける開発の仕方が主流なの?

.NETってウェブアプリケーションを作成するものかと思ったらそういうわけでもなかったのか。
ウィンドウズのアプリケーションを開発するのは従来と一緒で、
単に.NETフレームワークの中にみんな収まったってだけで
元々のVBとそんなにかわらないんだね。

継承とかJavaやCを若干噛んでいたら特に難しいわけじゃないのかな。
触ってみたところVB5以来VB触ってないけど
そんなに敷居高そうに見えないのは表面しかまだ触ってないからなのかな?
59デフォルトの名無しさん:03/10/20 13:01
.NetでのWebアプリの場合
DBから値を取得→DataTable→ASP.NET(DataGrid等)となる訳ですが、

1.DataTableでの受け渡しでは型が曖昧
2.ASP.NETに表示するときに値の変更がいる場合に
  どこで値を変更するか?
  例:DBの値が1→HTML上では「YES」と表示等

この2つが疑問です。
皆さんはどのように行っていますか?
60x:03/10/20 13:11
>>59
DataGrid用に全フィールドstring型のDataTableを構築しなおす。

オンメモリでDataTableを作れるのは死ぬほど便利。
DataSet内でリレーションも張れる点からもPowerBuilderのDataStoreより好き。
えらい人教えて!!
ある基本ホームを継承後オブジェクト(ボタン等)
を非表示にする方法(コーディングせずに)ってありますか?

上記のボタンオブジェクトのプロパティVisibleを
Falseにしても画面上には表示されます。

ちなみにEnableをFalseに設定したらちゃんと使用不可の
状態になるんだが…。

環境:Win2000 VB.NET Ver.2002
6249:03/10/20 18:38
>>61
いまいち意味が飲み込めないが
デザイン時にはボタン表示して
実行時にボタン不可視なら

InitializeComponentのところで
Button1.Visible = False
で出来る

ちなみにユーザコントロールはフォームに貼り付けた瞬間にロードされるので
ロードイベントで何かやらせてる場合は注意が必要
>>62 49さんレスありがとうです

説明不足ですみません
ご指摘のように
InitializeComponentのところで

Button1.Visible = False

とするとちゃんと不可視になるんですが
これをデザイナ上のプロパティウインドウの操作だけで
非表示には出来ないでしょうか?


なお、新規に貼り付けたボタン等に関しては
プロパティウィンドウのVisibleをFalseにすることで非表示になるのですが、
(ソースにはButton1.Visible = Falseと書かれる)
継承してきたボタン等のプロパティを変更しても非表示にならないのです。
(継承したフォームのボタン.Visible = Trueが消えているだけ)

宜しくお願いします。
VB.NETスタンダードにはAPIピューアは付いてないんですか?
これがないとかなりしんどい
Webアプリは.NETがまさるが、クライアント用アプリはVB6.0がよいな
66デフォルトの名無しさん:03/10/21 22:10
Dim cn As New SqlClient.SqlConnection()
Dim cmd As New SqlClient.SqlCommand()
Dim dr As SqlClient.SqlDataReader

で、'接続済みの Connection を指定する
cmd.Connection = cn 'あるいは cmd = cn.CreateCommand

としたとき、cmdはSqlCommandのインスタンスですが、
SqlCommandにはConnectionプロパティもメソッドもないのに、
なぜcmd.Connectionというふうにすることができるのでしょうか?
cmd = cn.CreateCommandの文なら理解できるのですが・・・
>63
ん?クラスの継承かユーザーコントロールかどっちだ?

まあどっちでも同じことだが、
元クラスにボタンのVisibleと連動するPublicプロパティを作っとくと、
デザイナにそのプロパティが出てくるようになる。
で、それをFalseにすれば、消えるよ。

プロパティはPublicじゃないと駄目だったような希ガスるが、
FriendやらProtectやらの組み合わせで出来ないか試してみれ。

>64
VS.NET Enterprise にも付いてません。
VB6から入れるか、Vector辺りで落としてくるか、
MSDNでリファレンス見て何とかするかだね。

>66
ほれ。パブリックプロパティの欄を良く見てみ。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdatasqlclientsqlcommandmemberstopic.asp
68デフォルトの名無しさん:03/10/22 01:48
おお、ありがとう
69デフォルトの名無しさん:03/10/22 01:53
いままで大学、会社ではC,C++,PerlなどなどUnix系でプログラムしていたんですが、
今度転職した会社でVB.netをやることになりました。ASP.netをやるのですが、
あまりのクラスに唖然。VBって簡単そうに思っていましたがとんでもなかったです。
VS.netの使い方、sql serverとの接続など新しいことがいっぱいで毎日勉強です。
VBを利用して茶筅DLLを組み込んだ分かち書き変換ソフトってないですかね?
71デフォルトの名無しさん:03/10/22 11:17
VB.NETをWindowsCE.NET上で動作させる場合、
母艦PCとのデータやり取りってどうしてます?

テキストデータの読み書きは出来ないみたいだし、
PocketAccessは入ってない、CE.NETから母艦
PC経由でOracle参照したり出来ないみたいだし。

とても困ったです

ネタイクナイ
73デフォルトの名無しさん:03/10/22 12:44
「.NET Framework SDK」ってどこにあるんですか

VB.NETやるんだったら、まずこれを読めって言われたんですが
>67さんレスありがとうございます。

アドバイス通りPublicに設定して
継承元のプロパティを予め Visible = False にしておき
経書後もプロパティを Visible = False にすると非表示になりました。

ただし問題点が…。
継承元が同じソリューション内にある場合は、上手くいったのですが
継承元をDLL化して配布した後、こいつを引っ張って継承させると
上手くいきませんでした…。
(プロパティウィンドウ上ではVisible Falseになってます)

なにか設定方法等違いがあるモノなのでしょうか?
>>73
見つけられない時点で、それを読んでも理解できないと思うよ。
そんなの気にせずにVB.NETはじめた方がいい。
76デフォルトの名無しさん:03/10/22 19:38
2つの条件を使ってレコードを抽出しています。
2つともLIKEを使ったところ、ANDではダメなようです。
どうしたらいいですか?

具体的にSQLを書いてくれたら、もう少し解答してやろうという気になれる訳だが。
>71
触ったことないからなんともいえないけど、
.NET Compact Framework でもSystem.IO 関連はサポートされてる。
つーかファイル操作が出来ない言語って何よ…

>73
とりあえずいった香具師に氏ねっていってこい。
で、最寄の本屋いって初心者向けの本を買ってこい。
初心者向けはたくさん出版されてるよ。
中級、上級向けは少ない。つーか、SDKはその後だね。

>74
漏れのところではDLL化してもうまくいくんだが。参照が古いのかな?
どうやってプロパティを作成したか、晒してみれ。
7976:03/10/23 10:02
>>77
すみません、具体的に書きます。

Dim r As DataRow()
Dim i As Integer
r = Dataset.Table.Select("AA Like 'モナー%'")
    AND ("title Like '2ちゃんねる%'")

これだと「ANDはstringに対して定義してません」とでます。
80x:03/10/23 10:49
>>79
VB.NET使いじゃないが、どう見ても構文が変だろ。

r = Dataset.Table.Select("(AA LIKE 'モナー%') AND (title LIKE '2ちゃんねる%')")

じゃないのか?
8176:03/10/23 11:09
>>80
ありがとうございました。
スレ汚して申し訳ないです。
8274:03/10/23 19:15
>>78さんレスサンクスです。

定義したプロパティは、こんな感じです。
#Region "独自プロパティ"
Private bOrgStatus As Boolean

Property OrgStatus() As Boolean
Get
Return bOrgStatus
End Get

Set(ByVal Value As Boolean)
bOrgStatus = Value
Me.Button4.Visible = Value
End Set
End Property
#End Region
8374:03/10/23 19:36
インデントできてなかった…すんません

上記の状態でプロパティを変更するとButton4の非表示設定が
Falseになりデザイン画面上から見えなくなるのですが
実行すると直前にボタンが表示され、実行中は表示されてしまう

という状況です。
84デフォルトの名無しさん:03/10/23 19:40
今まで、VB6を使って開発していたのですが、同じマシンに、VB.net
いれて、動きますか?
>>84
動きます。
>82
これでPublicになるの?
Privateになると思ってたんだが、漏れ間違ってた?

↓とりあえず、こんな感じにしてみれ。

Public Property OrgStatus() As Boolean
Get
Return(Me.Button4.Visible)
End Get
Set(ByVal Value As Boolean)
Me.Button4.Visible = Value
End Set
End Property
87デフォルトの名無しさん:03/10/24 01:31
コンボボックスの事で質問です。
データセット内のデータテーブルのデータ
例として商品マスタ(商品コード 商品名)をコンボボックスにセットしたいのです。

それはデータソースにテーブルを入れてしまえば入るとおもうのですが、
こうなった場合、コンボボックスのリストインデックス=−1って設定できないのでしょうか?
エラーが出てしまいます。
データテーブルを入れたはいいけれど、初期設定でコンボを空白にすることができません。
無理から空白をデータテーブルに入れる、という処理はできればやりたくありません。
イニ社ライズでコンボボックスのテキストを空白にもできませんでした。
データソースを設定する前に
items.addで空白をコンボに追加することももちろんできませんよね・・・。
色々試してみたのですがどなたか教えて下さい。宜しくお願いします。
88デフォルトの名無しさん:03/10/24 09:30
>>87
たしか、
ComboBox.Text = ""
だと空白に見えるが実際は最初のインデックス
が選択されていて
ComboBox.Text = Nothing
だと何も選択されていない状態
になるんじゃなかったっけ?
8982:03/10/24 09:50
レスありがとうです。

報告するのも恥ずかしいんですが
フォームロード中にTrueを設定するようなコードが
混じってました…小人さん召喚してたみたい;;

で、そのコードを取り除いたら意図した通りに動作しました。
自分で作った方も教えていただいた方も。

教えていただいた方
長々とありがとうございました。

プロパティのアクセス限定子は
>修飾子が指定されていないプロパティは、既定で Public になります。
と書かれてましたので省略しました。
90デフォルトの名無しさん:03/10/24 15:05
右シフトと左シフトに別々のコードを割り当てることは出来ますか?
>>90
はあ?馬鹿じゃねーのプオ
92デフォルトの名無しさん:03/10/24 17:21
VB.NET用のクラスビルダユーティリティってある?
VB6の奴は結構重宝してたんだけど
93デフォルトの名無しさん:03/10/24 19:08
教えてください〜(泣

VB6使ってます。
デザイナモジュールファイルをプロジェクトに取り込むにはDoしたらいいですか?

クラス {XXXXX-XXXXX}(コントロール XXXXX) はロードされていません。

というエラーが出ます。
よろしくお願いします。
>93
ネタですか?
マジレスしてほしかったらVB6スレ逝け
95デフォルトの名無しさん:03/10/24 20:27
なんらかの機能を作成する場合に、必ずメソッド化してコンポーネントクラスの
中にコーディングするようにしていますか?コードビハインドの対象となるVBファイル
には状態遷移にまつわるコードだけを記述したいためこのようにするっていう人が
いますがみなさんはどうですか?
コンポーネントクラス って?
97デフォルトの名無しさん:03/10/25 00:59
VSに項目の追加からコンポーネントクラス選べるけど
98デフォルトの名無しさん:03/10/25 01:17
VS.NET(2002?旧バージョン)では.NETFramework1.1を使用できないのでしょうか?
インストールしたのですが、Framework1.1が使えません。。どこかに。設定とかあ
るんでしょうか?開発言語はVB.NETです。

よろしくお願いしますm(__)m
>>98
残念ながら2003でないと無理。
100デフォルトの名無しさん:03/10/25 02:00
>>99
さっそくのレスありがとうございました。やっぱりそうですよね、、、
.NET2003はFrameworkのバージョンも選択できるんですよね。いいな
101Leliel(れりえる):03/10/25 03:14
>>98,100さん
.NET2003入れていないので、ホントかどうかわかりませんが、Cマガの話によると、.NETFramework1.0対応アプリは.NET2002で、
.NETFramework1.1対応アプリは.NET2003でないと完全に対応したモノが出来ないとか書いてありましたYO。
102デフォルトの名無しさん:03/10/25 05:26
>94
はぁーい☆
103初心者:03/10/25 09:17
宿題くれ
どのくらいの初心者かは知らんが、宿題を上げよう。
VB6しかやったことがなく、VB.netは全くやったことがない。ということを想定してだしてみる。


(宿題 LV1 テーマ:イベントメソッドを、複数のコントロールで共有する)

5個のボタンがあります。ボタンのテキストはそれぞれ、「1」〜「5」となっています。
ボタンが押されたときに、ラベルにそのボタンのテキストが表示されるようなメソッドを書きなさい。

※従来のVBに無く、VB.NETの新機能を利用して書くことを推奨する。
105デフォルトの名無しさん:03/10/25 16:40
自テキストをラベルに表示するクラスを作って
それ継承させて他のコントロールつくればいいんじゃないの?
今アプリの終了時に現在のフォルダ位置をテキストファイルに残し、次回起動時にそのフォルダをデフォルトで起動という処理をしようとしています
英語表記のフォルダは以上はないのですが漢字をを使っているフォルダにアクセスするとエラーが出ます
なにがいけないのでしょうか こんな感じです
なおfolder.iniには
c:\tempとかいう書き込みが入っています
Dim srFile As New System.IO.StreamReader("folder.ini", System.Text.Encoding.Default)
Dim strContents As String = srFile.ReadToEnd
DriveListBox1.Drive = strContents
DirListBox1.Path = strContents  'ここでエラー

FileListBox1.Path = strContents
宿題の答え…イベントメソッドに、ボタン1〜5のクリックイベントをハンドルする。
応えもクソも、テーマにそのまんまの事だが。


Private Sub BtnClick(byval Sender as Object,byval e as EventsArrgs) handled Btn1_Click,Btn2_Click,(以下略
    Label1.text = Sender.text
End sub


「VB6 だったら、各ボタンのクリックイベントから、メソッドを呼び出すように作るが、
VB.Net なら、メソッドにイベントを割り当てることができるようになりましたよ。」

ということを伝えてみたかった。
>>106
自己解決
JISだとコードを変えないといけないんですね
109デフォルトの名無しさん:03/10/26 00:02
>>107
すごい!まじで?
そんな事できるんだ。ありがとう。

でもコードの見やすさの点から言うと
それぞれのイベントにメソッドを呼び出すようにしたほうが
断然わかりやすいとおもうのだけど・・・。違う?
以外と実務では使えなかったりしないだろうか。
考えが古いだけかな。

便利な事は重々承知だけれど、見やすさ,読みやすさが第一だとおもうのだけどな。
ここはどんなレベルの人は対象ですか?
>>1を見れば判るとおり、VB.Net初心者から.Netの神まで。
>>103-109までは、いわゆる.Netの移行に難儀している.Net初心者群の質疑応答

停滞気味だから、なんかネタがあったら提供しておくれ。
112デフォルトの名無しさん:03/10/26 05:33
formを半透明にしてラベル上に書かれたテキストのみを通常(非半透明)表示させたいのですが
Delphi最強すぎ
>>113
信者の痛さがな。
>>113
君はDelphi信者かい?だったら、VB.Netをやってみる気は無いかい?
VB.Net設計チームの中の人は、Delphi4を作った人だよ!!
116113:03/10/26 12:50
VB.NETの方がDelよりいいと思ったからここに来てるんだよ。
117デフォルトの名無しさん:03/10/26 15:54
>>116
偉い!よく言った!!
118113:03/10/26 15:57
なんかVB.NET微妙に面倒な部分が多いな。やはりDelphiに戻ろうかな。
119デフォルトの名無しさん:03/10/26 18:18
textboxで最初にフォーカスが当たった時に
入力されている文字列を全選択した状態にしたいのだが、
Enterイベントに全選択のコードを書くと、Tabキーでの移動は全選択されますが、
クリックすると全選択されません。

どうもマウスでテキストボックスをクリックした場合、
Enterイベントの後にClickイベントが発生しているので、
全選択された後に、クリックによる全選択解除が起きているようです。

だれか、良い方法教えてください
120デフォルトの名無しさん:03/10/26 21:55
質問です。
>>119に似ていますが、
複数のTextBoxがありまして
最初のTextBox入力を終え、Enterを押すと次のTextBoxに
カーソルを移動するにはどうしたらいいですか?
Tabキーは使いたくないのです。
121119:03/10/26 22:31
>>120
似ているのだろうか??

キーが押された時の処理に書こう
System.Windows.Forms.SendKeys.Send("{TAB}")
122デフォルトの名無しさん:03/10/26 23:12
>>121
ありがとうございます
キーが押されたときっていうのは
この場合TextBox_Enterですか?
わからなかったです。
123デフォルトの名無しさん:03/10/26 23:23
>>119
私はこうしています。

1)Intervalを150程度にしたタイマと、全選択を行ないたいコントロールの
オブジェクトへの参照をStaticで記憶するルーチンを用意する。

ex.
Private sub SelectAllText(Optional Byval Obj as Objcet = Nothing)
Static Target as Object

If Obj is Nothing then
Target.SelectAll = True
else
Target = Obj

End If
End sub

2)全選択を行ないたいコントロールのクリックイベントルーチンで、
そのコントロールのオブジェクトへの参照を前述の記憶ルーチンに渡し、
タイマのEnabledをTrueにする。

3)タイマのイベントルーチンで、記憶ルーチンを引数を省略してコールし、
タイマのEnabledをFalseに戻す。
124123:03/10/26 23:30
あ、タイマのEnabledをTrueにするのはイベントルーチンの中より
オブジェクト参照を記憶させるルーチンに書くべきですね。

全選択を行ないたいコントロールが沢山あるとき、コードの冗長性を省く点からも
理解のしやすさの点からも。
125デフォルトの名無しさん:03/10/27 00:51
VB.NETのリッチテキストボックスでは、デフォルトで禁則処理が
なされているようです。この禁則処理をオン/オフにする方法が
分からないで悩んでいます。よろしくお願いします。
126デフォルトの名無しさん:03/10/27 14:29
VB.NETで名前付きコレクションを実現する方法はありますでしょうか?

ObjHoge = hogeCollection("HOGE")
のような感じのものを作りたいのですが
>>119
.NETは大変でつねw
>>126
System.Collections.Hashtable
129126:03/10/27 19:55
>>128
ありがとうございます
いままでCollectionBaseをぐるぐる回して同じ名前を取得していました
これだと一発ですね(^_^)
たすかりました
CStr(数字) = 数字.ToString
で合ってますか?
>>130
あってるよ。
132120:03/10/27 21:57
>>119
やっとできました。

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.KeyPreview = Not Me.KeyPreview
End Sub
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.Enter Then

e.Handled = True
System.Windows.Forms.SendKeys.Send("{TAB}")
End If
End Sub
>119
ClickイベントでSelectAllすればいーんじゃないの?
こんなカンジで。

Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Click, TextBox2.Click, TextBox3.Click
  Dim CNT As TextBox
  CNT = CType(sender, TextBox)
  CNT.SelectAll()
End Sub


>120
TabIndex順でいいのならSelectNextControlメッソド。
使い方は自分で調べれ…って、そうくるか>132


>125
何の禁則なのかわかんない……
どっちにしても↓に載ってないならわかんない。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformsrichtextboxmemberstopic.asp
134デフォルトの名無しさん:03/10/28 00:55
DataGridで質問です。

データグリッドの列をクリックすると行全部の色を変えたいのですが、
ネットで探してもその方法がみあたりません。
知ってる人いますか?

列指定はできたり、ウェブコントロール上のデータグリッドはItem_boundメソッドかなんかでできるみたいだけど
普通のwindowsアプリケーション上のデータグリッドで
上記のことはどうやればできるのでしょう?

datagrid.selectedbackcolorってのがあったけどできなかった・・・。
135デフォルトの名無しさん:03/10/28 01:33
.NET環境において、データを表形式に表示する方法(VB6にあったMSHFlexGridなど)
でどんなものがお勧めでしょうか?

標準のデータグリッドがありますが、使い勝手が悪く、悩んでおります。
理想的には市販製品のPerfectGridのようなものが欲しいでのすが、
費用的に厳しいです。

みなさん、入力可能な表を表示するときどんな手法を使われていますか?
136デフォルトの名無しさん:03/10/28 01:45
以前にも質問させて頂きましたが、答えが見つからず悩んでおります。

IEコンポーネントで画像を表示しない(テキストのみの)ブラウザを作りたいのですが
どういった方法をとれば画像を取得しなくなるのでしょうか?

マイクロソフトIEであればインターネットオプションの設定で画像を取得しないように
設定できますが、このコンポーネントで実現するにはどのようなコーディングに
なるのでしょうか?

大変申し訳ありませんが、お知恵を頂けないでしょうか。
137119:03/10/28 07:22
>>132
それだと、Clickされる度に全選択になってしまうよ
出来れば、イメージ的には、
フォーカスが無い状態から、当たった状態になった時、全選択される
すでにフォースが当たっている状態で、さらにClick等で選択されると、
そのClickされた文字にIビームが当たる状態となる
って感じにしたいのだが・・・うまく説明が出来ん・・・
138119:03/10/28 07:22
↑すみません 133 でした
139123:03/10/28 08:20
>>119
あのー、だからそういうことなら、タイマを使って
GotFocusイベント発生からSelectAllメソッドの実行までに
遅延を作れば実現可能ですよ。

ご自分でも問題の原因の特定はできておられるようだから、
なぜ遅延を作ることが解決になるのかも理解できると思うのですが。
ロジックを「時間」で解決するのはエレガントじゃないからいやだろ。
1つBooleanの変数作って、フォーカス当たったらTrue、
クリックする時それがTrueの時だけSelectAllメソッド、そしてFalseに戻しておく。
142123:03/10/28 12:33
>>140
確かに。でも私は詳しくないけどこれを「ロジカル」に解決するには
たぶんメッセージフックを使うしかないでしょ。

メッセージフックを使う方法がタイマで遅延する方法よりコードの可読性が
良いとは思えないし、.NETでそれを使うのがエレガントとも思えませんが。
143125:03/10/28 12:33
>>133
レスありがとうです。禁則処理とは、日本語の禁則処理のことです。
また、ワード・ラップもデフォルトでオンになってます・・・。これもオフに
切り替えられる機構を搭載したいと考えているわけです。。
144デフォルトの名無しさん:03/10/28 12:35
TextBox1に漢字を入力した痕
TextBox2にひらがなを入力
ということは実現できますでしょうか?

自分の名前を入力したら、読み仮名が同時に入力される
ってかんじです
>>142
つまり.NET自体に問題があるわけですね。
146デフォルトの名無しさん:03/10/28 17:32
>>144
あっ 俺もそれ知りたい
漢字→ひらがな の変換ってどうやるんだろうって
ちょうど悩んでた。


答えでなくてゴメン・・・・・・
>>144
>>146
標準のコントロールじゃできないと思われ。
>134
TableStylesから設定できる。
ただし、グリッド全体の反映になることは理解しておくように。
行単位に色をつけたいなどといってもまず返事は来ないよ。

>135
うちは葡萄都市だが、費用は小村とあんま変わらんなぁ。
個人的に使い慣れてるし、機能もナカナカだと思うけど、
手放しでオススメできるほどではないかな。

>136
System.Net.WebClientでプレーンテキスト取得して直書きすれば?(ワラ

……どーでもいいが、Windowsフォームで
HTMLを描画するコントロールとかって、ないかなぁ?

>141
だめぽ。Tabとかで移動した後でクリックすると、
最初の一回は全選択状態になるんだな。

>143
禁則処理はわかんね。
ワードラップはまんまWordWrapプロパティがあるね。
149120:03/10/29 23:31
>>144
>>146
「119の質問にコードで答える VBプログラミングテクニック」
っていう本に書いてあったような・・・・・。
しょーもない質問ですみません。

Labelコントロールの、PreferrWidth がインテリセンスに表示されません。
これだけでなく、そのコントロールが持つはずのプロパティがインテリセンス候補に挙がらないケースがあるのですが、
何が原因なんでしょうか(;´Д`)
151デフォルトの名無しさん:03/10/30 12:05
>>120

.NETやってる奴がみなその本を持ってるとは限らん罠
152144 :03/10/30 14:35
WORD98のCDに入ってるMSIME.TLBを使って解決・・・
って根本的な解決じゃないよな・・・(w
これって再配布していいのかしら?
153デフォルトの名無しさん:03/10/30 17:31
>>150
どこか別の行で文法間違いと貸してない?
ツール→オプション→テキストエディタ→Basic→全般→自動メンバ表示
「メンバの詳細を非表示」をオフにする。
S1=timeofday.tostring
S1=replace(S1,"/","_")
S1=replace(S1,":","_")
を実行すると
0001_01_01 1_59_58
がS1に入ってしまいます。
S1を1_59_58という日付部分の無い時刻部分だけにするにはどうすればいいのでしょうか?
156155:03/10/31 02:04
cstr(timeofday)にしたらできました。
timeofday.tostringでも同じ結果が返ってきそうなものなのですが、なぜでしょうか?
157デフォルトの名無しさん:03/10/31 12:02
内部で持ってる形式がそのまま出力されてる



















とおもふ
158155:03/10/31 12:34
>>157
そうですか・・・・もうToString使うのやめます。
159157:03/10/31 13:50
これでいかがでしょう
現在時刻をフォーマット書式で成型しています
MsgBox(Now.ToString("H_mm_ss"))

参考:
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpref/html/frlrfsystemglobalizationdatetimeformatinfoclasstopic.htm
160155:03/10/31 14:30
>>159
Formatと書かなくてもフォーマットしてるのでびっくりしました。
ToSringたまにつかうことにします。
Dim dirs As String() = Directory.GetFiles("C:\")
なぜStringに()がついてますか?
162デフォルトの名無しさん:03/10/31 15:01
COMの引数がLPBYTE pになってると、ByRef p As Byteになるのはわかるんだけど、
その引数にByteの配列を渡したい時はどう記述すればよいですか?

Dim a() As Byte

m_hogehoge.hoge(a, 100)

と書くとエラーになってしまうのですが・・・。
163デフォルトの名無しさん:03/10/31 16:08
win32APIとdirectXってどっちがはやいの?速さはおなじ?
は?
165デフォルトの名無しさん:03/10/31 18:29
VBで分割コンパイルしたいんだけど
どうやったらできるの?
166デフォルトの名無しさん:03/10/31 20:10
Cみたいにライブラリ(DLL)を埋め込むのってどうしたらよいデツカ?
167デフォルトの名無しさん:03/10/31 20:28
168デフォルトの名無しさん:03/10/31 21:05
>>166
      /::::::::::::::::::::::::::::::::::::::::::::::: ::::::::\
      (::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::\
     /:::::::::::/ノ::::::::ノ::::::::ヽ:人::::::::::ヽ::::::::::::::::)
    (::::::::::/:::ハ):::ノ::::ノ ) ノノヾ::::::::::::丶::::ヽ
     (:::::::::/ 彡  ノ   ノ  :: 彡:/)) ::::::::::)
    (::::::::::/彡彡彡彡彡   ミミミミミミミ :::::::::::)
    (:::::::// ̄ ̄ ̄ ̄ヽ===/ ̄ ̄ ̄ ̄ヽ |:::::::::)
     | =ロ   -=●=- ‖ ‖ -=●=-  ロ===
     |:/ ‖    //ノ  ヽ \      ‖ ヽ|ヽ
     |/  ヽ`======/ .⌒ ` ========ノ.   ..| |
    .(        (○  ○)        ‘)ノ
   (        /   l l   \         )
    (      // ̄ ̄ ̄ ̄\ \       )
    \    )  |   ̄ ̄ ̄ ̄  |  (     / 
     \      \____/       /
      (ヽ  ヽ                 ノ
       \丶\_ _  _   _/    /
        | \ \            __/
    ̄ ̄\ 丶  ̄ ̄ ̄ ̄ ̄ ̄ ̄    / ̄ ̄
169119:03/10/31 23:04
>>148
そうなんだ!どこに質問しても123のようにタイマで遅延処理を施すか、
141のように「厨め!!」と思いながら安直に逝ってくる奴がほとんどなのだよ…
もっとロジカルに解決する方法を求む

>>149
お願い♪サンプルプリーズ
無能な上に馬鹿なのか。最悪だな。
>>161
>Dim dirs As String() = Directory.GetFiles("C:\")
>なぜStringに()がついてますか?

String()という型だから。
Dim dirs() As Stringと同じ意味。
>>165
>VBで分割コンパイルしたいんだけど
>どうやったらできるの?

そんなことして何したいの?
DLL作るか、DOSプロンプトから手動コンパイルで/t:moduleにしとくか。
173161:03/11/01 01:02
>>171
つまり動的文字列配列型ってことですね??
174123:03/11/01 01:21
>>119
感じ悪いな。
厨というなら、.NETの枠内に準拠した「ロジカル」な解なんてあり得ないことが
わからない119こそ厨だろう。
Label3.Text = ListBox1.SelectedItem
これでエラーがでるのですがどうしてでしょうか。
Label3.Text = ListBox1.SelectedItem.ToStringもダメでした。
Console.WriteLine("{0} was copied to {1}.", path, path2)
{0}や{1}はどういった意味ですか?
177デフォルトの名無しさん:03/11/01 14:49
データグリッドでクリックした行の全体のフォントを変えるやり方ってどうしたらいいんでしょうか?
>>176
WriteLine(A,B,C)は、フォーマット指定出力。

この場合は
Console.WriteLine("{0} was copied to {1}.", path, path2)
{0}のところには、path(第一引数の値)が、
{1}のところには、path2(第二引数の値)が表示される。
179176:03/11/01 15:29
>>178さん
ありがとうございます。
{ }という記号はCっぽいのでちょっと抵抗がありました。
でも便利そうな記号だとわかりました。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="CompanyName.ProductName.YourApplication"
type="win32"
/>
<description>Your application description here.</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
>>175
エラーの内容くらいかけよ!
それとそのコードが実行されるときに、リストボックスのアイテムは選択されているんだろうな?
ここの質問はマジなのか、からかっているのか分からんなw
C#の方が優れているらしいのですがなぜVB.NETを使うのですか?
旧VBユーザだったから。
TBS必死だな(藁
>177
無理。市販の高機能グリッド使え。
いやむしろ高機能なグリッドを作って>>177が作って公開してしまうという選択肢もあり。 
openfiledialogから選択した画像ファイルをpictureboxに表示させたいのですが
>>188
こんなんでいいのか?

If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName)
End If
>>189
thx
>>190
naa
せめて一冊くらいは本を買ってくれ
193デフォルトの名無しさん:03/11/03 12:27
アプリの設定ってどうしてますか?
レジストリから移行するってことで調べてたんですが、app.configでは階層化できなそうなので、
結局自前でオブジェクトをつくってxmlでシリアライズなのかなぁと。
他にいい案ありますでしょうか。
Windowsアクセサリのメモ帳にVB.NETとASP.NETのインテリセンスを付加するフリーソフトみたいなのあるでしょうか?
またはインテリセンスのある、デザイン部分とコード部分を分離しないVB.NET記述用エディタはあるでしょうか?
いままでVB4とかVB6の開発をやってたんですが
こんど.netでやることになりました
ちょいと不安なんですが
そんなに構えないで平気ですか???
196デフォルトの名無しさん:03/11/04 11:46
>>195
まずは作る云々よりヘルプの読み方になれることです
いや、まずは作れ。
そしたらヘルプになれる。
198デフォルトの名無しさん:03/11/04 12:20
いやいや、ヘルプになれるほうが先だ
199デフォルトの名無しさん:03/11/04 15:43
openfiledialogから選択したテキストファイルをrichtextboxに表示させたいのですが
作らずにヘルプになれるってのはどういう意味だよw
ヘルプだけ眺めるのか?
まぁ、あれだ。
.NETマガジンの記事でも見れば、なんかの取っ掛かりは見えてくるだろう。
ちくちく勉強しよう。
202VB6使い:03/11/05 01:26
みなさんこんばんは。
VB6であったコントロール配列を.netで実現するにはどうすればよいのでしょうか?
TextCtrlという名のテキストボックスコントロール配列が100個あったとして、

//////////////// VB6 //////////////////
Private Sub TextCtrl_Change(Index As Integer)
処理
End Sub
///////////////////////////////////////

VB6だと、100個のテキストボックスのどれが変更されたかが、Indexを見て一発でわかるのですが、
VB.netだとコントロール配列が使えないみたいなので、例えばテキストボックスコントロールの名前を
「TextCtrl001、TextCtrl002・・・、TextCtrl100」として、VB.netヘルプに書かれてあるようなプログラム
(Visual Basic .NET におけるコントロール配列の変更点)を組むと、

////////// VB.net ////////////////////
Private Sub fncTextCtrl_Change(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) _
Handles TextCtrl001.TextChanged , TextCtrl002.TextChanged , TextCtrl003.TextChanged ... TextCtrl100.TextChanged
処理
End Sub
///////////////////////////////////////

となりそうなのですが・・・
コントロール配列数が少ないときはいいですが、上記みたいに100個とかある場合、Handles の後に、
TextCtrl***.TextChanged を100個も記述しないといけないのでしょうか?
さらに、どのコントロールが変更されたかを識別するのに、「Tagプロパティ等の共通プロパティ
を設定してそれを見る事でコントロール配列機能を複製できます」ってあるのですが、
例えばTagプロパティを他の事に使用していた場合、上記機能は実現できないって事なのでしょうか?

VB.netを始めたばかりで、まだよくわからないのですが、VB6でのコントロール配列の機能を、VB.netで
上記以外の方法にて実現する方法があったらご教授お願いします。
203デフォルトの名無しさん:03/11/05 03:46
VBの質問じゃないんだけど、VB使ったASP.NETで、例えばボタンとかラベルとか
をブラウザでセンターで表示したいって時、どうやればいいの?フロントページとかだったら
センターボタン押せば真ん中に移動してくれるから。
>>203
ttp://www5b.biglobe.ne.jp/~yone-ken/VBNET/special/sp02_event.html
このサイトの真ん中ぐらいに書いてあるポ
205204:03/11/05 09:32
間違えた
↑は203じゃなくて>>202
現在Exeが起動しているマシンのIPアドレスやMACアドレス、
コンピュータ名を取得することは出来ますか?
207206:03/11/05 14:03
自己レス
「ManagementObject」を使用することで
上記の三つを取得することができました。
208デフォルトの名無しさん:03/11/05 16:19
十進数を二進数に変換するプログラムを教えてください
209x:03/11/05 17:05
>>201
そういえば、最近 .NETマガジンの質が落ちたな・・・
読みごたえがなくなった
211202:03/11/05 20:36
>>204
ありがとうございます。
概念は理解できました。
しかし、これはコードでコントロールを追加していますよね?
すでにデザイナで配置済みのコントロールを配列化するには
どうすればいいのでしょうか?
212202:03/11/05 20:46
続きです^^;

デザイナにて、TextCtrl00 〜 TextCtrl99 という名ですでに配置済み。

Friend TextBox1 As TextBox() = New TextBox(100) {}

Public Sub New()

Dim i As Integer
For i = 0 To 99
''////////// VB6表記 ////////////////////
TextBox(i) = Me.Controls("TextCtrl" + Format(i,"00"))
''//////////////////////////////////////
AddHandler TextBox1(i).KeyPress , AddressOf TextBox1_KeyPress
Next

みたいな事ってできないのでしょうか?
>>210
同意。最近ASP.NETばっか特集してるけど、まともな記事がない
今月号のTIPSも基礎の基礎だったし
VB. NETの記事が3つしかないんだよな。

VB.NETのツボ(クラスの作成云々)
スモールパーツプログラミング(リストビューのソートテクニック)
たまひよクラブ(占いアプリ作成によるVB.NET基礎取得)


単体アプリに関する記事て、あんまり需要が無いという見解なのかもしれない。
それはそうかも。
たまひよの瀬戸遥が男なのがキモイ
VB.NETの勉強を始めました。
とりあえず思いつくコードを書いてみたのですが
Dim arr As New ArrayList()
arr.Add("AAA")
MsgBox(arr.IndexOf(0))
とすると
-1
と表示されます。
どこがだめでしょうか?
217デフォルトの名無しさん:03/11/06 13:34
>>216
IndexOf(Object)はそのオブジェクトが何番のインデックスかを調べるもので
-1になるのはアレイリスト内に「0」というオブジェクトがないから
もし「AAA」を表示させたいなら
arr.Item(0)
とする
>>217
アヒャ
ありがと!
VB.NET(・∀・)イイ!!ね。
早く仕事で使いたいよ。
220デフォルトの名無しさん:03/11/06 19:37
お前なんかに仕事ねーよハゲ
お前こそねーよ童貞
お前こそねーよたらし
223219:03/11/07 08:19
Java使いですが何か?
童貞はひっこんでろ
225219:03/11/07 09:45
童貞の何が悪い?
226童貞NET:03/11/07 13:51
 VB6からNETにいくと、テキストファイル出力はなに使ってる?
227デフォルトの名無しさん:03/11/07 14:02
OutputStream
228デフォルトの名無しさん:03/11/07 14:12
Declare の by ANYがエラーしまくる。 なんに変えるの?
おそらく相手は char *x; か char hairetu[20000];なんだけど。

229デフォルトの名無しさん:03/11/07 14:33
>>219
妖精様・・・私を天国へ連れて行ってください・・・
230219:03/11/07 14:41
三十路ですが、何か?
童貞はクサイ
Office2003もVBAなんでつか?
童貞の話はいい。
大体、セクースだのなんだのという行為は、この世には存在しない。
あれは、基地外どもの妄想だ。

だから、童貞の話なんかやめて、VBの話をするんだ。
>212
無理ざます。
そういう曖昧な指定ができないようにすることで、
バグを減らして効率を上げようというのが.NETの方向性。

↓でどうよ。
コントロール名にTextCtrlがついたヤツ全部を関連付けるよ。


Friend CNT As Control

Public Sub New()
  MyBase.New()

コントロール作成するロジック(省略)

  For Each CNT In Me.Controls
    If InStr(1, CNT.Name, "TextCtrl", CompareMethod.Text) > 0 Then
      AddHandler CNT.KeyDown, AddressOf Key_Down
    End If
  Next

End Sub
童貞じゃないけど妖精になれますか?
>>235
童貞でなくとも、処女なら妖精になれるよ。
もし処女でなくとも、童貞ならアーサー王の聖杯をゲトできる可能性あり。
ガンカレ。
237デフォルトの名無しさん:03/11/10 20:38
ファイルのサイズを表すfile1.lengthが
32145Byteだったとすると、3ケタごとにカンマをつけようと
format(file1.length,"Currency")
を実行すると
\32,145
と\までつけられてしまいました。\を空白文字にリプレイスする手もあるのですが、#を使ってカンマを打つことにしました。
format(file1.length,"######")
みたいにシャープを使って3ケタごとにカンマを打つにはシャープのところをどのように書いたらいいのでしょうか?
>>235
おまえはすでによごれている。しあわせな人生は送れない。
format(file1.length,"###,###")
240237:03/11/10 22:09
>>239
ありがとうございます。
241デフォルトの名無しさん:03/11/10 22:38
VB.netでWebアプリケーションを作っているのですが、shift-jisの扱いが分かりません。

<%@ Page Language="vb" ResponseEncoding="shift_jis" ・・・
と追加し、
Response.Charset = "shift_jis"
をPage_Loadに追加したのですが、
textarea とかで文字列を入力してもらい、それをGET/POSTで取り出そうとすして、Request.Formしてるのですが
入力が日本語だと、取り出せません。(表示は出来るのですが。。。)

どなたかスマートな方法をご教授ください
>>241
web.config
243デフォルトの名無しさん:03/11/10 22:48
web.configのどこをどうすればよいのでしょうか?初心者質問ですみません
244デフォルトの名無しさん:03/11/11 12:04
FindWindow等で使用するクラス名を変更する方法を教えてください。
VB.NETはOracle(9i)と接続できるんでつか?
>>245
もちろん
247245:03/11/11 20:46
>>246
ODBCとかADO経由じゃなくて、ネイティブドライバもある?
>>247
oracle.net
249デフォルトの名無しさん:03/11/12 07:52
クイズゲームを作っていまして、その問題と解答を集めたテキストファイルの扱い方に
悩んでいます。
できれば、プロジェクト内に含ませて、実行ファイル一つ(と.net Framework)で動く
アプリケーションにしたいのですがどのようにしたらよいのでしょうか?
問題集(テキストファイル)をアプリケーションと同じ階層に配置しなければならないのは配布時に面倒っぽいし、
問題集(テキストファイル)を書き換えられたり中身をのぞかれたりするのが嫌なのです。
でも、問題集はテキストファイルで簡単に編集していきたいのです。
どなたかよろしくご教授下さいませんでしょうか。
250デフォルトの名無しさん:03/11/12 08:08
フリーのライブラリとか使って暗号化すれば?
その状況だと、暗号化したものだけ配布すれば問題ななさそうだけど。

quizResource.txt -> encipheredQuizResource.txt
251デフォルトの名無しさん:03/11/12 12:24
>>249
htmlに汁
配布もクソもなくてウマー
252249:03/11/12 18:34
>>250
ありがとうございます
暗号化してやってみます。
フリーソフト探してこよっと。

>>251
htmlにするという意味がわからない初心者でして、すみません。
お答え頂きありがとうございます。

(はっ・・ホームページにして公開すれということか)
>>252
画面右上のソリューションエクスプローラが

ソリューション
 プロジェクト
  Form1.vb

となっているとして、
プロジェクトを右クリック

追加

新しい項目の追加

たくさんあるアイコンの中からテキストファイルというのを選択する。

そうすればコンパイルするとテキストファイルがexeファイルに含まれるようになる。
ListViewで多重ソート(項目Aでソートして、項目Aが同じなら項目Bの順で並べる)かます上手い手はないかな。
いや、下手でもいいけど。
255249:03/11/13 04:05
>>253
ありがとうございます!
暗号化ソフトを探していたのですがどうも自分の思考回路まで
暗号化されてしまいまして・・・・・・・。

早速、プロジェクトにテキストファイルを追加してやってみました。
そして、某HPにてプロジェクトへの埋め込みファイルの扱い方を見てみたのですが
ビットマップファイルを埋め込んで扱う方法しか載っていませんでした。
現在のアセンブリを取得した後、プロジェクト内のテキストファイルを
問題集として扱う方法がわかりません。

テキストファイルの内容は、

1(問題番号),グーに勝つのは?(問題),チョキ(選択肢1),パー(選択肢2),2(解答No),2(配点)
,2,チョキと引き分けるのは?,チョキ,パー,1,1
,3.・・・・・・・・・・・・・・

というようになっているのですが、
この問題番号、問題、選択肢1−2、解答、配点を順に読み出し変数(ストラクチャ)に格納していきたいのです。
(普通のシーケンシャルファイルのようにして読み込みたいのです。)
プロジェクトに取り込んだテキストファイルをシーケンシャルファイルのようにして扱う方法を教えていただきたいと
思い、再度書き込みさせていただきました。どなたかわかるかたよろしくお願いします。m(,_,)m
>>234
亀レスですが、ありがとうございました!
とても参考になりました!
257デフォルトの名無しさん:03/11/13 07:21
asp.netでウェブブラウザでボタンおすと違うページに飛んでくっていう
のってどうやってつくったらいいのですか?
258デフォルトの名無しさん:03/11/13 10:31
初心者の域なんですが、ExcelファイルをDataTableに読込むとき、
シート名に空白が混じってるときは どうしたらいいのでしょうか?

Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
MyCommand = New System.Data.OleDb.OleDbDataAdapter( _
"select * from " & sheetname, MyConnection)

として sheetname に"[aaa]"とかなら うまくいくんですが
"[a. 12]"などだと かっこの使い方が違います(?)のようなエラーが
でてしまうんです。

どなたか ご存知でしたら 教えて下さい。
259デフォルトの名無しさん:03/11/13 11:35
>>258
うろおぼえでスマソ。試してないので間違ってたらゴメン。

"'[a. 12]'" のように' で囲ってみたら?

 
260258:03/11/13 11:54
>259
ありがとうございます。 でも だめでした〜。(;_;)
エラーのメッセージも同じままでした。
261261:03/11/13 13:33
指定した時刻になったら、なにかのEXEを起動する
スケジュールソフトを作るにあたって、

Private thdThreading As System.Threading.Thread
Private Sub btnSt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSt.Click
thdThreading = New System.Threading.Thread(AddressOf Me.sThreadPg)
thdThreading.Start()
End Sub

Private Sub sThreadPg()
    Dim intCnt As Integer
Dim strNow As String

Do
strNow = Now
If mnowdate = "2003/11/13/ 13:00" Then
MsgBox("成功!")
End If
Loop Until intCnt <> 0
End Sub

てな感じで一応出来るんだけど
重くないし、他のアプリケーションには影響ないぐらいですが
見た目のCPU使用率が100%

他に方法ないですかね?
262261:03/11/13 13:34
ちょっと修正


Private thdThreading As System.Threading.Thread

Private Sub btnSt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSt.Click

   thdThreading = New System.Threading.Thread(AddressOf Me.sThreadPg)
   thdThreading.Start()

End Sub

Private Sub sThreadPg()

  Dim strNow As String
  Do
    strNow = Now
    If mnowdate = "2003/11/13/ 13:00" Then
     'ここにイベントを書きたい
     MsgBox("成功!")
    End If
  Loop Until intCnt <> 0

End Sub
263デフォルトの名無しさん:03/11/13 15:33
フツウにEXEを作ってタスクマネージャで起動するのでは?
264261:03/11/13 16:06
>>263
タスクマネージャを編集するソフトを考えたんですが
自分のソフトで出来る方法が・・・
>261
ずっとループさせてるんだから当たり前じゃん>100%

System.Threading.ManualResetEventオブジェクトの、
WaitOneメッソドでウェイトを取るってのはどーよ。
厳密な時間計測がいるなら話は別だけど。
266デフォルトの名無しさん:03/11/13 19:03
PictureBoxの上にマウスポインタがあるときに次のことを実現したいのですが、

○ ツールチップを表示しながら

○ マウスポインタ周辺のPictureBoxのビットマップを取得したい。
  ただしその表示しているツールチップが透過された(ツールチップを表示していない
  状態の)画像が欲しい。

現在、ビットマップを取得するのにWin32APIのBitBltを使っているのですが、
これで取得するビットマップにはツールチップがそのまま含まれてしまいます。

一見、ビットマップ取得直前にツールチップのActiveプロパティをFalseにして
表示を消して、取得後にTrueに戻せばよさそうですが、そうすると
たとえ本来ツールチップが表示されていなければならないようなタイミングでも
(マウスポインタが停止してからツールチップの表示期間のタイムアウトが来てなくても)
その後マウスポインタが動かされないとツールチップが表示されなくなってしまうので
困ります。

何かよい解決法はないでしょうか。
ツールチップを透過したビットマップを取得する方法か、あるいは
マウスポインタが停止していても強制的にツールチップを表示する方法があれば
よいと思うのですが。
ある構造体をFilePutでファイルに書き込もうとしてるのですが、
Structure STRC_TEST
Dim A As Long
Dim B() As Integer
Public Sub Initialize
Redim B(3)
End Sub
End Structure
Private Sub fncTest()
Dim intFn As Integer
Dim Test As STRC_TEST
Test.Initialize()
Test.A = 1
Test.B(0) = 2
Test.B(1) = 3
Test.B(2) = 4
Test.B(3) = 5
intFn = FreeFile()
FileOpen(intFn, "Test.tmp" , OpenMode.Binary)
FilePut(intFn, Test)
FileClose(intFn)
End Sub
で書き込んだ場合、
01 00 00 00 00 00 00 00 02 00 00 00 03 00 00 00
04 00 00 00 05 00 00 00
となると思ってたのですが、バイナリエディタなどで見ると
01 00 00 00 00 00 00 00 01 00 04 00 00 00 00 00
00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00
00 00
となっています。
Test.A と Test.B(0)の間にある10バイトは一体何なのでしょうか?
すいませんがご教授よろしくお願いします。m(__)m
268267:03/11/13 22:40
うあ、ソース見づらくてすいません・・・
スペースがなぜか書き込み時には詰められているみたいで・・・
>>254ではわかりにくいので具体的にさせて下さい。

「ソート後の各Itemの順番を値として取り出したい」

これで得た値をItemのIndexにすれば、ソートする項目が同じ時にIndex順に並ぶと思うんだけど…
270デフォルトの名無しさん:03/11/14 03:26
VB.NETでの質問です。
プロジェクトに取り込んだテキストファイルの中身を
「,」(カンマ)区切り毎に各変数に格納する方法を教えて下さい。
プロジェクトに取り込んだテキストファイルの内容を一文字ずつ変数に格納する
方法でもかまいません。
Dim I As Integer
Private Sub Timer1_Timer()
 If Text1.Text = "" Then
   Else
    If ti = 1 Then 'もしtiが1秒になったとき
    Timer1.Enabled = False 'まずタイマー終了させて
    Text2.Text = "Time over" 'timeoverと表示させる。
    Label3.Caption = "0秒"
    For I = 1 To 10
    Beep
    Next I
      Else 'tiが0秒でなければ
      ti = ti - 1 'tiを1秒ずつカウントダウン
      Label3.Caption = ti & "秒"
   End If
 End If
End Sub

テキストどおりにやってみたらBEEP音がなりません。
Timeoverとは表示されるのですがなぜ鳴らないのでしょうか?
宜しくお願いします。
272266:03/11/14 08:06
>>270
ただ単にSplit関数使うだけじゃないのですか?
ちょっとヘルプ検索すればすぐ見つかるようなこと聞くのは如何なものでしょう。

って、私みたいに回答しちゃう奴がいるからいけないのか。。
>266
PictureBoxのImageオブジェクトから直接取るってのはダメなん?
↓なカンジ。

Private BitImage As New Bitmap(100, 100)

Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
  Dim RECT1 As New System.Drawing.Rectangle(0, 0, 100, 100)
  Dim RECT2 As System.Drawing.Rectangle
  Dim g As Graphics

  RECT2.X = e.X
  RECT2.Y = e.Y
  RECT2.Width = 100
  RECT2.Height = 100

  g = System.Drawing.Graphics.FromImage(BitImage)
  g.DrawImage(Me.PictureBox1.Image, RECT1, RECT2, GraphicsUnit.Pixel)

End Sub

>271
こっちに逝け。
http://pc2.2ch.net/test/read.cgi/tech/1065446334/
>>269
ListViewItemSorterプロパティをしらべなされ。
web.config のファイル名って変更できるのでしょうか?
276266:03/11/14 21:50
>>273
あ、私の説明が足りなかったんですけど、グラフィクメソッドで描画した画像の
ビットマップを取得したいんですよ。VB.NET自分個人では持ってない(仕事で使ってる)
のでいま試せないのですが、確かグラフィックメソッドで描画した画像は
Imageプロパティでは取得できなかったですよね?違ったかな。

しかし.NETの+GDIってなんかすごく中途半端な気がするのは
私がまだよく理解してないせいだろうか?
277デフォルトの名無しさん:03/11/15 00:29
VB.NETで作ったWebアプリケーションからoo4oでオラクルにアクセスすると、
アクセス拒否のエラーが出ます。同じ環境で、Windowsアプリケーションだと大丈夫でした。
誰か、VB.NETのWebアプリケーションでoo4oを使う方法を教えてください。
素直にODP.NETを使えと。
279デフォルトの名無しさん:03/11/15 01:36
11月14日に
 Visual Studio Tools for Office
が一般発売されましたが、世間では全く話題になっていないようです。
WordやExcelにはVBAで十分で、.NETを持ち出す必要はないのかな。
280x:03/11/15 10:19
>>279
これって、Officeで.NET使えるようになるの?
知らなかった。さっそく試してみます。
281277:03/11/15 11:01
>>278
過去の資産が結構あり、ODP.NETもまだ出たてで当方の検証が終わっていないので、
できればoo4oを使いたいのです。使えないのでしょうか?
282デフォルトの名無しさん:03/11/15 13:51
Class a Inherits basea
End Class

Class b Inherits baseb
End Class

というaクラスとbクラスがあって、この両方に全く同じメソッドを実装したいんですが、
やはり両方に同じコードを書くしかないんでしょうか?
例えばC言語のようにソースの中に別のソースを#includeしたりは無理?
283デフォルトの名無しさん:03/11/15 16:39
Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As Long) As Long

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim hwnd As Long
Dim winame As String
hwnd = 0
hwnd = FindWindow("XLMAIN", 0)
If hwnd <> 0 Then
MsgBox(hwnd)
Else
MsgBox("取得できませんでした。")
End If
End Sub

エクセルが起動していないときも、
0以外の数字が返されるのですがなぜなのでしょうか?
全然わかりません。
284x:03/11/15 17:19
>>283
それ、起動してるときはちゃんとしたハンドル取れてるの?
285283:03/11/15 17:27
大きな桁の数字がmsgboxにでてくるのですが
それがちゃんとしたハンドルかどうかって
どうすれば判断できるのでしょうか?

それとコマンドボタンを押すたびに
前回と異なった値がmsgboxで帰ってくるのですが
これもおかしいですよね。
エクセルは起動しっ放しなのでハンドルは変わらないと思うのですが。
286x:03/11/15 17:33
>>285
VB使いじゃないんで詳細はわかんないけど、宣言がまずいんじゃない?

Declare Function FindWindow1 Lib "user32" Alias _
 "FindWindowA" (ByVal lpClassName As String, _
 ByVal lpWindowName As Long) As Long

Declare Function FindWindow2 Lib "user32" Alias _
 "FindWindowA" (ByVal lpClassName As Long, _
 ByVal lpWindowName As Long) As Long

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 MsgBox(FindWindow1("XLMAIN", 0))
 MsgBox(FindWindow2(0, 0))
End Sub

こうするとどうなる?
当てずっぽうで書いてるので、文法違ったら直してね。
287x:03/11/15 17:35
ハンドルが正しいかどうかは、、Spy++か何か持ってない?
288266:03/11/15 17:49
詳しくないので頓珍漢なレスかもしれませんが、
ウィンドウハンドルって4バイトじゃないの?
だから対応する型は旧VBならLongでいいけどVB.NETならIntegerでは?

で、たぶんウィンドウが見つからないときは4バイト符号付整数で
-1 = 0xFFFFFFFFを返すから、それをLongで受けるとまんま
0xFFFFFFFF = 4294967295になっちゃうのでは?
ハンドルが正しいかどうかをテストするには
IsWindow API はどうでしょ?
290283:03/11/15 18:27
>>286
hex()で16進数変換すると右半分の数字が
spx++でのハンドル値と同値になりました。
左半分は毎度変化します。

288さんのを参考に
Declareをintegerですると見事
spy++でのハンドルと同値となり
>>283がうまく実行できました。

ところがPostMessageでhwnd, 16, 0, 0を送っても
Private Const WM_CLOSE = &H10
Call PostMessage(hwnd, WM_CLOSE, 0, 0)
エクセルが終了しません。
正しいハンドル値でないのか、postmessageがおかしいのかわかりません。
291283:03/11/15 18:59
postmessageの宣言を
Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
(ByVal hWnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam _
As Integer) As Integer
とすべてintegerですると強制終了もできました。

どうもありがとうございました。
292デフォルトの名無しさん:03/11/15 19:04
ラベルの透明背景は下のコントロールを無視してしまいますが、これを回避する方法はあるのでしょうか?
VB6では、透明ラベルでテキストの重なり等を色々使っていたもので、結構困ってます。
VB6.0ではTimer1_Timer
だったが
VB.NETは
Timer1_Fuck
というイベントになってるね。
つまんね
Fomr1.Visible=Trueは
Me.Visible=Trueともかけますが、

Private Sub TextBox1_Click (ByVal Sender as〜)
ここで、TextBox1.Text=""ではなく
Me.Text=""のように、自分自身を指定するキーワードを使いたいです。
MeはForm1のことになっちゃうので、Fomrの中のコントールで自分自身を指し示すキーワードはなんですか?

End Sub
くだんね〜。VB1.0からやり直せ。
297269:03/11/15 21:54
>>274
いや、もちろんそれ使ってるんだけど、ListViewItemSorterにクラス代入してソートしても、
並び順が変わるだけでIndexは変わってないっしょ?
例えば、昇順ソートだと

(1)   甲 乙
ItemA 1 2
ItemB 1 1
ItemC 2 1

とある状態で、一度乙でソートすると

(2)   甲 乙
ItemB 1 1
ItemC 2 1
ItemA 1 2

となって、ここから甲でソートすると

(3)   甲 乙
ItemB 1 1 ←
ItemA 1 2 ←
ItemC 2 1

となる様にしたいんだけど、クラス作ってListViewItemSorterに代入すると
(1)→(2)→(1)ってなっちゃって、(3)の並び順になってくれないんだよ…
>276
>確かグラフィックメソッドで描画した画像は
>Imageプロパティでは取得できなかったですよね?

んー。何かPictureBoxの上に描画してるだけの予感。
Imageプロパティにセットしたオブジェクトに描画しないと、リフレッシュ時に消えちゃうぞ?

273はPictureBox1.ImageにセットしたImageオブジェクトの一部を、
BitImageというBitmapオブジェクトに取得(書き込み)してるんだよ。
これを、例えばPictureBox2.Imageにセットすれば、
PictureBox1.Imageの一部がPictureBox2.Imageに表示されるわけ。

>しかし.NETの+GDIってなんかすごく中途半端な気がするのは
>私がまだよく理解してないせいだろうか?

多分ね。
このあたりのことは過去に何度か出てきたから、ログあさってみれ。
>293,295
そんなことより聞いてくれよ。
実はMSのサイトでこんなの見つけたんだけどさ。

http://www.microsoft.com/japan/msdn/net/books/progwinvbnet/contents.asp
>>293
>Timer1_Fuck
301266:03/11/16 01:03
>>298
>んー。何かPictureBoxの上に描画してるだけの予感。
>Imageプロパティにセットしたオブジェクトに描画しないと、リフレッシュ時に消えちゃうぞ?
私は低レベルのコーダーですが、そのぐらいのことは知ってますよ。
ですが、普通はビットマップオブジェクトに描画してそれをPictureBoxのImageプロパティに
設定するってしないでしょ。メモリ無駄に使うから。
まあ変更の必要のないちっちゃな絵を書くときには私も使いますけど。

>>しかし.NETの+GDIってなんかすごく中途半端な気がするのは
>>私がまだよく理解してないせいだろうか?

>多分ね。
これは「反疑問」のつもりで書いたのですが。つまり本当は間違いなく中途半端だと
思っているわけです。だってちょっとしたことやるとすぐに+GDIだけでは実現不可能か、
可能であっても恐ろしく面倒なコード書く必要が出てくるから。

例えば>>266にも書いたWin32のBitBltや、DrawFocusRestに相当するものって
ないでしょう。
302266:03/11/16 01:11
あ、X反疑問→○半疑問、XDrawFocusRest→○DrawFocusRectでした。
>>280 Visual Studio Tools for Office
http://www.microsoft.com/japan/msdn/vstudio/office/productinfo/features/officetools.asp
 Officeで.NETを使うというよりは、
 Visual Studio .NET で VBAの高級代替品を作る
と思ったんだけど、本当のところはどうなんでしょう?
304デフォルトの名無しさん:03/11/16 18:29

SendMessage(hwnd, WM_SETTEXT, 0, "○○商事")
SendMessage(hwnd, WM_SETTEXT, 0, "株式会社")

テキストファイルに出力への出力を実行すると
「○○商事株式会社」とならずに
「株式会社」とだけなります。
上書きでなく、追記という形でするにはどうしたらいいでしょうか?
>301
>ですが、普通はビットマップオブジェクトに描画してそれをPictureBoxのImageプロパティに
>設定するってしないでしょ。メモリ無駄に使うから。

Imageの一部がビットマップに取得されるのが確認できるよって意味でなんだが。
つーか、漏れもそんなに詳しいわけじゃないけど、何が「普通」だと思ってるの?

>つまり本当は間違いなく中途半端だと思っているわけです。

そうですねー。
……といって欲しかったの?(w
306デフォルトの名無しさん:03/11/16 19:03
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)
Handles MyBase.Paint
Debug.WriteLine("paint")
End Sub

Private Sub Form1_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Handles MyBase.SizeChanged
Refresh()
End Sub
では、Paintは一回しか流れないんだけど、二回流れないとおかしいと思う。
SizeChangedに何も書かなかった場合、
サイズを小さくする場合は、Paintは呼び出されないということは、わかってるけど、
大きくする場合も一回しか流れない。なんでだろう?
どこかで、SizeChangedにRefreshが書かれているかどうかを判断しているとか?
うろ覚えだが、WM_PAINTは必ず送られるものじゃなかったような気がするが。
308266:03/11/16 22:20
>>305
基本が全然わかっておられないうえに、日本語も不自由でおられるようだ。

「PictureBoxの上に描画してるだけ」だと、「リフレッシュ時に消えちゃう」、
「Imageプロパティにセットしたオブジェクトに描画しないと」と、
こういう風におっしゃるから(本当は、こんな説明は全然なってないですが)
普通はそのようなメモリを無駄に消費する方法はとらない、と答えたのに、

>Imageの一部がビットマップに取得されるのが確認できるよって意味でなんだが。
訳がわかりません。全然受け答えになっていませんが。

>何が「普通」だと思ってるの?
普通はPictureBoxのデバイスコンテキスト(.NETのGDIではGraphicsオブジェクト)に
描画する処理をPictureBoxのPaintイベントをトリガーに呼び出すようなコードを
書きます。常識以前だと思いますが。

私は無知なことは悪いとまでは思わない。でも無知を自覚できず、
見当違いなことで食って掛かるのは如何なものか。
>>306
WM_PAINTは処理されるときに、溜まってる分を結合するんじゃないの?
>>308
自分の話が相手に伝わらないからって、全部相手のせいにしない方がいいよ。
自分の常識が世界の常識だと思い込まない方がいいよ。
理解してないのを自覚してるフリはしない方がいいよ。
おまえらウザイ
>308
不愉快な思いをする羽目になるから、
てめーは不自由な日本語で拙い説明文なんか作るな、一言で済ませろ。
ってことですね。なら改めて。

DrawImage
以上。

>普通はPictureBoxのデバイスコンテキスト(.NETのGDIではGraphicsオブジェクト)に
>描画する処理をPictureBoxのPaintイベントをトリガーに呼び出すようなコードを書きます。

( ´_ゝ`)フーン、それがフツーなんだ。
ま、保存する必要がないならそれでいいかもね。
313266:03/11/17 00:16
>>312
>ま、保存する必要がないならそれでいいかもね。
保存が必要なときは、一時的にビットマップオブジェクトを作成し、
その(CreateGraphicsメソッドで作成した)Graphicsオブジェクトを
描画ルーチンに渡して描画したものを保存します。
保存後作成したBitmapオブジェクトをDisposeします。
これが「普通の」処理ですが。ビットマップオブジェクトが存在し続けるような
間抜けな処理(Imageプロパティにbitmapオブジェクトを設定するような)
は「普通」のプログラマならしません。

ちゃんとヘルプとか読んでます?私みたいに.NETはじめて1月の人間でも知ってるのに。

しかしVB厨ってのはこういう人たちのことを言うのですかね。
無知の自覚がなく自分の恥を平気で晒すような。
VB厨=童貞
>313
色々ツッコミどころはあるが、もうどーでもいいや。
日本語が不自由なVB厨に教えられても不愉快なだけだろうし。
お前さんの問題が解決しなかろーが漏れにはまったく関係ないし。
まあ、せいぜいがんがってくれ。
総括
VBやってると妖精になれなす
問題なのは携帯アプリをVB.NETやVBやVB Scriptで作れないことである。
スマートデバイス用の.net Compact Framework下において
タブオーダーって、使えないんでしょうか。
319デフォルトの名無しさん:03/11/17 09:10
>277
>279
どなたかこちらもお願いします。
320デフォルトの名無しさん:03/11/17 10:23
あのー、すいませんが、
arraylist配列を2次元にする方法知ってる方いらっしゃいませんか?
2次元ともarraylistで。

とりあえずは自作structureを駆使してしのいでるけど・・

structure ST
dim array2 as arraylist
end structure

dim array1 as arraylist

dim tempST as ST

array1=new arraylist()
tempST.array2 = new arraylist()

array1.add(tempST)

こうすると、array1().array2()という形で()内の要素数が変わる2次元のarraylistになるけど、
もっと、スマートにいかないものでしょうか?


timer1.fuck
321デフォルトの名無しさん:03/11/17 10:48
>>307,309
再描画が必要ではない場合は、WM_Paintメッセージは発行されないわけですね。
322デフォルトの名無しさん:03/11/17 10:54
windowが重なっていて、クライアント領域を再描画する必要があるときに、発行されるのだけど、
直前でリフレッシュしているから、重なっていなかったとして、WM_Paintが発行されないということか。
323266:03/11/17 22:25
>>320
ArrayListって使ったことないので間違ってるかもしれませんが、
2次元のArrayListって定義矛盾というか、ありていにいうとそれは既に
ArraiListとは呼べないんじゃないですか?

だってAddとかRemoveメソッドはどんな動作すりゃいいの?

もし、単に2次元配列みたいに添字を2つ付けて各アイテムに
アクセスしたいってことなら、そういうクラスを書けばいいんじゃないですか?
例えばこんなのはどうでしょう。
324266:03/11/17 22:25
Public class c2DArrayList

  '枝ArrayListの入れ物のArrayList
Private mBranches As New ArrayList

'枝ArrayListの追加
Public Sub AddBranch
Dim NewBranch As New ArrayList
mBranches.Add(NewBranch)
End Sub

'枝ArrayListに葉っぱ(データ)の追加
Public Sub AddItem(BranchIndex As Integer, Item As Object)
Dim Branch As ArrayList = mBranches(BranchIndex)
Branch.Add(Item)
End Sub

'BranchIndex番目の枝のLeafIndex番目のデータの取得
Public Function GetItem(BranchIndex As Integer, LeafIndex As Integer) As Object
Dim Branch As ArrayList = mBranches(BranchIndex)
Return Branch(LeafIndex)
End Function

End Class

VB.NET個人では持ってないんで動作は未確認です。
なんじゃそら・・・
326320:03/11/18 00:14
>>324
さんくす

当方、VB.NET歴2ヶ月ちょっとのド素人なもので
超初心者的質問にお付き合い下さいサンクスコ。

なんにしろ、大きな勘違いを正せたので助かりました。

Timer1_Fuck
確かになんじゃそりゃだな(ワラ。
オーバーロードくらいすりゃい〜のに。
328デフォルトの名無しさん:03/11/19 15:07
厨な質問ですまそ

VB.NETって、クラス参照型ってのは、ないんすか?
ぐぐってみたけど、引っかかってこなかったもんで
>>328
そんなの気にするなよ。
>328
Delphiでつか?
なんにしても実現したいことを書いたほうが良かろうです。
331328:03/11/19 19:37
>>329-330

へい。Delphi屋です。
VB.NET、Delphiとほとんど同じなんで、バカスカ、実装してたんですけど、
「あれ、クラス参照、ねぇ〜じゃん」ってなちゃって。
ないんなら、ないで、何とかしますぅ〜

でも、VB.NET、よくできてますなぁ。VB6で拷問受けた身には
天国ですわ。
でも、もっさりしすぎだけど(藁
CのDLLに構造体を渡す為に、アライメント設定とマーシャリングをしたいのですが、

<StructLayout(LayoutKind.Explicit, Size:=10, CharSet:=CharSet.Ansi)> _
Structure STRC_TEST1
<FieldOffset(0)> Dim A As Short ''2バイト整数
<FieldOffset(2)> Dim B As Integer ''4バイト整数
<FieldOffset(6), VBFixedArray(1), MarshalAs(UnmanagedType.ByValArray, SizeConst:=2)> Dim C() As Byte ''2バイトのバイト配列 ''2バイト整数
<FieldOffset(8)> Dim D As Short ''2バイト整数
Public Sub Init()
ReDim C(1)
End Sub
End Structure

って定義すると

アセンブリ '6' の型 'STRC_TEST1' を読み込めませんでした。
オフセット 6 に不適切に整列されたか、オブジェクト以外のフィールドで
オーバーラップされたオブジェクト フィールドが含まれています。

ってなエラーが出るのですが・・・
どこか定義の仕方がおかしいですか?
スティーブバルマーが公演でイノベーションと言っていたのですが意味は何ですか?
334デフォルトの名無しさん:03/11/21 11:34
以下の定義で2階層の構造体を作ろうと思ったのですが

Private Structure Detal
Private m_szYyyyMm As String
Private m_szCP_Cyo As String
Private m_szCP_Cne As String
Private m_szCP_Ltc As String
Private m_szCP_Other As String
Private m_szAP_Engr As String
Private m_szAP_Cad As String
Private m_szAP_Cne As String
Private m_szAP_Ltc As String
Private m_szAP_Other As String
End Structure

Private Structure Import
Private m_sEX_FileName As String
Private m_bErrorFlag As Boolean
Private m_sPrj As String
Private m_sJobNo As String
Private m_sStartDate As String
Private m_sEndDate As String
Private m_sDepartment As String
Private m_sTblMax As Integer
Private m_sMH() As Detail
End Structure
↑型'Detail'が定義されてません

と出て、定義できませんでした。VB6では出来たのですが。。。
どうすれば定義できるでしょうか?ご教授願います。
335デフォルトの名無しさん:03/11/21 12:23
Private Structure Detal

Private m_sMH() As Detail

す@えるみす
336デフォルトの名無しさん:03/11/21 14:01
>>335
すみません。。。初歩的なミスでした。
337デフォルトの名無しさん:03/11/21 15:43
データグリッドでセル内を複数行にしたいのだが
その方法を教えてけろ。
338334:03/11/21 17:19
またまたすみません。

フォームの頭で

Public m_tblExDataFile() As Import

を宣言して

フォーム内のプロシージャで参照しようとすると

「オブジェクト参照がオブジェクト インスタンスに設定されていません。」

と出てしまいます。。。

どーすれば解決できるでしょうか?ご教授願います。





>>338
代入しろよ
イノベーション???
>>338
初期化しるかNewしる
342341:03/11/21 22:15
あ、書けた!OCN規制解除マンセー
Dim t As Date
t = CDate("2003/11/21 22:16:10")
TextBox1.Text = Year(t)
TextBox2.Text = Month(t)
TextBox3.Text = Day(t)
TextBox4.Text = Hour(t)
TextBox5.Text = Minute(t)
TextBox6.Text = Second(t)

について、TextBox3.Text = Day(t)のところでエラーが出るのはなぜでしょうか?
344デフォルトの名無しさん:03/11/21 22:28
Redimでm_sMHを宣言しなおす
>>343
TextBox3.Text = DateAndTime.Day(t)
またはTextBox3.Text = t.Dayとか
点を指定した座標にポチっと描画する時ってどうすればいいでしょう?
Graphics.Draw??? みたいなのが用意されてると思ったらなかったもので。。。

皆様はどうなさってるんでしょうか?
348デフォルトの名無しさん:03/11/22 01:14
今授業で電卓を作っているのですが
1+2+3=5になってしまいます。
最後の二つだけが計算されてしまうということなのですが、
どうやったら直すことができますか?

あと小数点以下の計算のさせ方について
よいアドバイスをください。
どなたかグラフを描くいい方法ご存知ないでしょうか?
例えば、データ点が1000個ある系列2つを、各々x、y軸として
グラフを表示させたいんですよ。

結構基本的なことだと思うので、何か既成のライブラリみたいのが
あると思うのですが、あれば教えて頂けないでしょうか?
点の描画が大ブレイク?
つか、何がわからんのかがわからん・・・。
351343:03/11/22 05:51
>>345-346
ありがとうございます。
>347
System.Drawing.Graphics

>349
Crystal ReportsとかCOMのMS CHARTを使うとか。
ベンダ製の有料コントロールもあるみたい。
Graphicsでシコシコ書くという方法もある。
office自身のサンプルコードをキボンヌ!
354349:03/11/23 20:56
>>352
お返事ありがとうございます。

早速MSChartで試してみたんですが、なんだか描画に異常に時間がかかるんですよ。。。
Chartに関する操作を含んだ関数呼出しの際に、実行終了まで10秒程かかります。
データ数も10そこそこで、CPUもPen4 1.8GHzなのでこれらは問題ないと思います。
しかもそのコードの最初に TextBox1.Text = "hoge"みたいな行を記述しても、やはりその実行に10秒程
かかるので、描画「自体」が原因というわけではなさそうです。

同じコードをVB6で記述したら一瞬で描画できました。聞きかじりですが、.netではCOM呼出しに
ラッパーを被せてあるそうなので、こちらが原因なのでしょうか?

どなたかこの問題について御存知の方、原因を御教授願えませんでしょうか?
(長文すみません)
>>347
FillRectangle
なぜそっちを教える?w
点ならSetPixelでいいだろ?
.NETの低レベルグラフィック描画(GDI+)は遅いよ。
DirectXが標準APIに変わるまで我慢だね。

んで、「ラッパー…」は関係ない。
ためしにVB6でPsetなコンポーネントを作って、VB.NETから呼んでみ。
VS.NETの起動自体が早くなれば結果としてプログラム自体も高速になったとみなしてよいんだけどね。
ボタンのクリックイベントに
Dim Fr2 As New Form2
Fr2.Show()

と書くと
ボタンを押すたびにForm2が何個も表示されてしまいますが、
何回ボタンを押してもForm2が一個だけ表示されている状態はどうやって作り出せばいいのでしょうか?
360デフォルトの名無しさん:03/11/24 18:34
Windowsコントロールライブラリについて質問ですが、
UserControlにButtonを1つ追加します。
で、そのButtonのModifiersプロパティをPublic指定します。

で、出来たDLLを他のプロジェクトで使用します。
そうすると、UserControl1のプロパティのその他の欄にButton1が追加されるのですが、
そのプロパティを変更してもデザイン時には、変わっているのですが、実行したら元のプロパティ状態に戻っています。
プログラムで、変更したプロパティは実行しても、ちゃんと反映されています。

これって、DLLを作るときに何かロジックを作らないといけないのでしょうか??
361デフォルトの名無しさん:03/11/24 18:40
fr2.ShowDialog()
362359:03/11/24 18:41
>>361
それだとfr2を閉じないとForm1を最前面に持ってこれないようですが???
363デフォルトの名無しさん:03/11/24 19:44
visual basic.netで作ったasp.netなのですが、サーバーで作った
asp.netソリューションをローカルに持ってきて、ローカル上で
実行したいのですが、ローカル上でどのようにソリューションを
作成すればよいかわかりません。どのようにソリューションを
作ればよいのでしょうか?
セットアップ作れば?
>>359
>Dim Fr2 As New Form2
↑の行を↓のようにイベントの外に出す
Private Fr2 As New Form2

わからなければボタンのクリックイベントに

Button1.Enabled = False

って書いとけw
366デフォルトの名無しさん:03/11/24 22:23
>>359
フォームのコレクション(Forms)の中にForm2のインスタンスが
既に存在しているかどうかを確認するコードを書くだけだと思いますが。
367デフォルトの名無しさん:03/11/24 23:01
TabControlのフォーカス枠を表示しないようにしたいんだけど、それを設定するプロパティってありませんか?
VB6なんかでいうShowFocusRectね。
消したければオーナードローするしかない?
368359:03/11/24 23:35
>>365-366
言ってる意味はわかりますがコードを書けるようになるにはまだ無理です。
>>368
STATICを付ける
370359:03/11/25 00:08
>>369
はじめてみるキーワードでしたがDimの代わりにつかってみたら成功して感動しました。
371デフォルトの名無しさん:03/11/25 00:38
>>370
Staticを知らないプログラマってのも驚きだけど、
Staticを指定するとインスタンスが1つに保たれる(恐らく既に存在している
インスタンスがdisposeされる)ってのはもっと驚き。

なんか間尺に合わない気がするのだが。
Static Fr2 As New Form2
          ↑
これは初期化宣言なんで1度しか通ってないってことじゃねの?
GCがそんなに都合よく動くとは思えん。
>>372
正解っすね
Static Fr2 As Form2 = New Form2
と考えたら一目瞭然
374デフォルトの名無しさん:03/11/25 01:14
staticにすると何処に書いても自動で関数の外に出されるよね。自動グローバル化(勝手に命名)というか何というか
>>366
それVB.NETにもあるの?
NewしたFormのインスタンスを自動で管理してるってことだよな。
そのFormsコレクションってなんのプロパティなんだ?
376デフォルトの名無しさん:03/11/25 13:05
VB6からVB.NETに移植しているのですが

APP.Pathが使えなくなってしまって困っています。

VB.NETの場合は何に置き換えればいいのでしょうか?
377デフォルトの名無しさん:03/11/25 13:10
>>376
Application.StartupPath
だったと思う。
378376:03/11/25 13:37
>>377
早速のレス、ありがとうございました。
Dim wc As New System.Net.WebClient()
wc.DownloadFile("http://img.yahoo.co.jp/images/main7.gif", "c:\test.gif")

を実行すると

'System.Net.WebException' のハンドルされていない例外が system.dll で発生しました。

追加情報 : 基になる接続が閉じられました : リモート サーバーに接続できません。

というエラーが出るのはなぜでしょうか?
>379
環境のせいだと思われ。
ちゃんとWebにアクセスできる?

ちなみに漏れの環境ではそのソースでOKです。
381disco:03/11/26 11:15
厨房ですがすいません。
結局VB.netでどの程度のゲームが作れるの?
382デフォルトの名無しさん:03/11/26 11:33
RPGやシミュレーションのような動きの少ないゲームなら余裕じゃないかね?
古いパソコンでも無い限り3Dのレースやアクションでも簡単なものなら
オンボードでPentium3とか言われるとつらい気がする
384disco:03/11/26 12:35
ありがとうございます。
ここ2ヶ月前からVB.netをはじめたものですが
以後よろしくお願いします。
385379:03/11/27 04:43
>>380
了解です。
386デフォルトの名無しさん:03/11/27 06:28
ユーザコントロール(コンボボックス&テキストボックス等で構成)を作成したのですが、
フォームにデザイン画面からではなくコードで
動的にユーザコントロールを追加しています。

その場合にユーザコントロール側で起きたイベントを拾いたいのですが
どうしたらよいでしょうか???
ユーザーコントロールでPublicイベントが発生するようにした上で、
WithEventsで宣言すればいいんじゃないの?試してないけど。
>>386
AddHandler
389デフォルトの名無しさん:03/11/27 12:22
Crystal ReportsのテキストオブジェクトがReadOnlyになっているようで
プログラム上からテキストの内容を変更できません。
どのようにしたらTextをプログラムで編集できるのでしょう?
390デフォルトの名無しさん:03/11/27 14:22
動的に増えるユーザーコントロールのイベントを拾う方法ってありますか??
391389:03/11/27 14:54
389です。
以下のソースでテキストオブジェクトが変更できません。
恐らくソースが間違っていると思いますが。

Dim Report As New rptOutPut()
Report.Section3.ReportObjects.item("txtComment").text = "TEST"
>>390

ユーザコントロール「UCON」が動的に「Panel1」追加されると仮定して
UCONにはHOGEHOGEというイベントがある

Private MyUCON as UCON <- これをフォームレベルで定義

MyUCON = New UCON
Panel1.Controls.Add(MyUCON)
AddHandler MyUCON.HOGEHOGE, AddressOf MyUCON_HOGEHOGE

'ここにイベント処理
Private Sub MyUCON_HOGEHOGE()

End Sub

判りにくくてスマソ
393デフォルトの名無しさん:03/11/27 18:35
質問です。過去ログを見ましたが解決方法が記載されてなかったようなのでお聞きします。

VS.netをインストールしました。プロジェクトを作り、保存しました。
DebugモードでF5でビルドを開始しました。するとエラーメッセージボックスが出てきて、

「エラーが発生したぞ!デバッグを切るとビルドできるがやるか?」
(意味はこうだったと思います。)

と聞かれたので[OK]を押しました。この件の後、ビルドは出来ますがブレークポイ
ントを置いても全くそこで止まらなくなりました。
現在全くデバッグが出来ない状況です。改善方法をお教え下さい。
よろしくお願い致します。
失礼しました。

プロジェクトはVisualBasicプロジェクトでASP.NET Web アプリケーション

を選択しました。
395393:03/11/27 18:45
ちなみにどこにブレークポイントを置いても動作しません。
必ず通るであろうPage_Loadの行にブレークを置いても全く動作しません。
396393:03/11/27 18:52
ははは・・・ 失礼しました・・・

http://support.microsoft.com/default.aspx?scid=kb;ja;306165&Product=aspnetINT

ここに記載されていました・・ ですが既に「OK」を押しているので多分この
プロジェクトでデバッグは動作しないのかな・・・
デバッグする方法をお教えください。
397393:03/11/27 19:06
といいますか・・・ もう俺ばか。解決しました。
1、ソリューションエクスプローラのプロジェクト名を右クリック
2、プロパティをクリック
3、TreeViewの構成マネージャを展開 → デバッグ をクリック
4、下のデバッガで「ASP.net デバッグ」にチェックを入れる
5、OK

これでOKでした。失礼しました。お次の方どうぞ。
398デフォルトの名無しさん:03/11/27 23:57
質問なんですが現在以下のサンプルを参考にチャットを作成しています。
今日本語を送れるようにしたいのですが、上手くいきません。
とりあえずエンコードは行っているのですが、なかなか正しく動いてくれなくて・・・。

http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=1381&lngWId=10

これを日本語送信できるようにするにはどうしたら良いのでしょうか?
399sage:03/11/28 10:13
>387,388,392
助言ありがとうございました。

なんとかできそうッス!!
400デフォルトの名無しさん:03/11/28 11:11
Shell関数を使ってワードパットを起動するのですが
開くファイルを指定できないんでしょうか?
write.exe c:\hogehoge\hogehoe.doc
402デフォルトの名無しさん:03/11/28 13:35
>>401
レスどうもです。


やってみたのですが、

SHELL("c:\wordpat.exe","C:\Documents and Settings\iki\デスクトップ\vb.txt")

とした場合、「C:\Documentsは存在しません。」のエラーが出て
出来ませんでした。

どーすれば解決できるでしょうか?
SHELL("""c:\wordpat.exe""","""C:\Documents and Settings\iki\デスクトップ\vb.txt""")
404デフォルトの名無しさん:03/11/28 14:17
>>403
出来ました。
誠にありがとうございました。
別解

Dim myp As New Process

myp.StartInfo = New ProcessStartInfo("write.exe", """C:\Documents and Settings\iki\デスクトップ\vb.txt""")
myp.Start()
406デフォルトの名無しさん:03/11/28 16:24
>>405
おぉっ!こんな方法もあるのですね。
アドバイス、ありがとうございます。
407デフォルトの名無しさん:03/11/28 19:31
起動されているメモ帳にtabキーと文字を送りたいのですが
文字だけが送られ、tabキーがおくられないです。
Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101
Public Const VK_TAB = &H9
↑この宣言に間違いがあるのでしょうか?

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 Dim hwnd As Integer
 Dim chwnd As Integer
 hwnd = 0
 chwnd = 0

 hwnd = FindWindowT(0, "テスト.txt - メモ帳")
 chwnd = FindWindowExC(hwnd, 0, "Edit", 0)

 SetForegroundWindow(chwnd)

 SendMessage_int(chwnd, WM_KEYDOWN, VK_TAB, 0)
 SendMessage_int(chwnd, WM_KEYUP, VK_TAB, 0)
 SendMessage(chwnd, EM_REPLACESEL, 0, "シャノー")
End Sub
408デフォルトの名無しさん:03/11/28 19:43
>>407

keybd_event() とか使いなはれ。
VK_RIGHT
なんかは正常に動作するのに
なぜtabが。
410デフォルトの名無しさん:03/11/28 20:08
たったいま
Call keybd_event(VK_TAB, 0, 0, 0)
をつかって試してみました。
tabキーを送ることはできたのですが
そのタイミングが文字入力の先だったり後だったりで安定しません。
「 シャノー」
「シャノー 」
↑こんなのがはっせいしてしまいます。
sendmessageでtabを送ることが出来ればおそらく
タイムラグがないと思うのですが、よい解決方法はないでしょうか?
411デフォルトの名無しさん:03/11/28 20:24
>>410
EM_REPLACESEL を使うなら、タブ込みでやっちゃえばいいやん。
412デフォルトの名無しさん:03/11/28 20:34
ボタン選択の移動もtabで行いたいのです。
tab無しの文字入力もありますのでできれば
sendmessageで処理したいです。
sendmessageでtab(インデントや項目移動)は
サポートされてないのでしょうか?
VBを買おうと思ってアマゾンで検索したら
VB.netっていうのばっかり出てきます。
VB6.0が最新のやつかと思ったんですが、netの方が新しいのでしょうか。
それとも質の違いなんでしょうか。
違いについて教えてください。

当方プログラミングの経験はほとんどなく
昔にMACのHyperCardをいじっていたくらいです。
友達に聞いた所、VBがオブジェクト指向で同じ感じだというので
購入を検討していたところ、上記のような疑問に出会ってしまいました。
初歩的な質問なのかもしれませんが、よろしくお願いします。
414413:03/11/29 02:53
あと
Visual Studio .NET とかいうのもあって更に混乱しています。
各ユーザのデスクトップなどの特殊フォルダーはFileSystemObjectで取得する方法はわかりましたが
せっかく.NETを使っているのでSystem.IOではどのように記述すればいいのでしょうか?
416415 自己解決:03/11/29 08:02
System.Environment.GetFolderPath(Environment.SpecialFolder.System)
417デフォルトの名無しさん:03/11/29 10:24
>>412
たぶん、サポートされてないんじゃないかな。タブキーを押したときの状況を
SPY++ で確認してみれ。

>>413
.NET の方が新しい。ぜんぜん違うものなので、まずは Microsoft のサイトなど
で確認してみるよろし。

>>414
それは、Visual C# だとか、Visual J# だとか、Visual C++ だとかがセットになった
やつ。お金に余裕があれば買ってもいいね。
>>413
VB6のユーザーは多いけど、
MSはVB6の系統は今後バージョンアップしないから、
今から覚えるなら避けたほうが良い。
エクセルとかのVBAが.NETになるのはいつ???
420413:03/11/29 11:51
>>417-418
ありがとうございます。
さっそくMicrosoft行ってみます。
あとで本屋にも行ってVB.netの入門書とか見てみることにします。
>>413
VS.NET MSDN何とかエディションにはVisualStudio6が付いてくる(会員登録後1週間ぐらいで送られてくる)
会社で買うのであればこれを買うことを進める
VB.netで、「マインスイーパ」って作れますか?
もし可能なら作ってソース公開してください。
勉強材料にさせていただきます。
う〜ん
君最強
う〜ん
VB.net最強
う〜ん
俺.最高
う〜ん
nakata.net最強


中田熊度でかいぞ
>>413
>>422
もうちょっと「ニオイ」を消すことをオススメする。
428デフォルトの名無しさん:03/12/02 12:59
ワイルドカード指定でファイルを削除する方法ってある?
System.IO.File.Deleteに("*.txt")とか指定するとArgumentExceptionが出ちゃう。
ファイル名拾ってループさせるしかないのかな。
429デフォルトの名無しさん:03/12/02 13:13
つーか声がエロすぎ
430デフォルトの名無しさん:03/12/02 14:00
Visual Basicのサービスパックは
オンライン上で入手することは可能なんですか?
431デフォルトの名無しさん:03/12/02 14:09
>>430
6.0はこれ
http://www.microsoft.com/japan/msdn/vstudio/downloads/sp/vbdownload.asp

.NET(2002)のサービスパックは.NET2003なので、それを買う。
432デフォルトの名無しさん:03/12/02 14:28
>431
ありがとうございました
>428
System.IO.File はファイルそのものだから、その指定は無理でしょ。
System.IO.Directory.GetFiles で、
指定したディレクトリ内のファイルをワイルドカード検索出来るみたいだけど、
返ってくるのはなんとString。ファイル名だけ。
FileのCollectionを自動生成するメソッドはなさげだし……

うーん、無理ぽ?
434デフォルトの名無しさん:03/12/02 23:50
VB.NETの先輩方に質問です。

自作クラスのインスタンスをNew演算子で次々と作成し、ArrayListに格納した後、
ArrayListをNewで初期化してしまうと、それまでArrayListに格納されていたインスタンス達は
どこへいってしまうのでしょう?
大量のインスタンスをAddしては、ArrayListの初期化でまた他のインスタンスをAddしていくという
処理を組んでいるので、記憶領域に負担をかけることにならないか心配になり、質問させていただきました。

こんな感じです↓

dim A as ArrayList
dim c as MyClass
dim i,j as integer

For i = 0 to 1000
A = New ArrayList()
For j = 0 to 1000
c = New MyClass
A.Add(c)
Next j
Next i

使わなくなったクラスのインスタンスや、アレイリストをそのまま放っておいて、
新たにNew演算子で作成し続けていっても大丈夫なのでしょうか?
>>434
まず、ガベージコレクタでググってください
436デフォルトの名無しさん:03/12/03 12:21
ガベージコレクタが理解できない場合、

| Private Sub SubA()
|
| dim A as ArrayList
| dim c as MyClass
| dim i,j as integer
|
| For i = 0 to 1000
| A = New ArrayList()
| For j = 0 to 1000
| c = New MyClass()
| A.Add(c)
| c = Nothing
| Next j
| A.Clear()
| Next i
|
| End Sub

でいいんじゃないの?
437デフォルトの名無しさん:03/12/03 12:33
VB6でボタンとかをダブルクリックしてもコード画面に切り替わらないように出来ますか?
>>437
なにがやりたいのかさっぱり分からんし、
方法も思いつかない。
439デフォルトの名無しさん:03/12/03 13:13
>>437
何かあったような気がしたけど方法忘れた
440デフォルトの名無しさん:03/12/04 04:34
>>437
カエレ
441デフォルトの名無しさん:03/12/04 06:18
フォームにデザイン画面でスクローラブルコントロールを貼り付けて
そのスクローラブルに動的にユーザーコントロールを追加&削除する処理を
作成しています。

ユーザコントロールの追加は上手くいったのですが
追加されたコントロールをDisposeした時の動きがおかしくなってしまいます。
画面上は消えているコントロールなのですが
スクローラブルのコントロールズのカウントを取り
for文でユーザーコントロールの値を取得すると
消えているはずのコントロールの値が取れてきてしまいます

ユーザーコントロールの消し方に問題があるのでしょうか??

442デフォルトの名無しさん:03/12/04 07:16
>>438>>440は真性
>>441
そのコントロールは具体的にどうやって削除してるんだ?
たしか強制的にGC動かす方法あったな。
Nothing は、Visual Basic .NET でオブジェクト変数がオブジェクトへの参照を含んでいないことを示すために使用されるキーワードです。
以前のバージョンの Microsoft Visual Basic では、使わないオブジェクトを Nothing に割り当てることによって、
オブジェクト変数をオブジェクトから切り離し、リソースを解放していました。Visual Basic .NET でも、使わないオブジェクトを Nothing に割り当てることはできますが、
リソースの管理方法が変更されているため、オブジェクトがすぐに解放されるとは限りません。
一般に、オブジェクトを Nothing に割り当てる必要があるのは、共有メンバやグローバル変数などの寿命の長いオブジェクトの場合だけです。
446デフォルトの名無しさん:03/12/04 14:50
オラクルテーブルの項目

SYMBOL VARCHAR2(30),

に値をセットしたいのですが、
入力される値が漢字、英数字を含むもの

例:2ちゃんねらー12345678901234567890


場合によっては入力される値がオラクルの設定桁数より
大きくて落ちます。

LEN関数で桁数チェックしようと思ったのですがうまくいきません。
どーすればうまくいくでしょうか?
VB.NETは文字をUnicode(2バイト)で扱うので
そのままをOracle(デフォルトはシフトJIS)に突っ込むと
場合によっては半分しか入らないとおもいます
VB6にはStrConv関数で対応できたが今は出来ないみたいですね

System.Text.Encoding.GetEncoding("Shift_JIS").GetByteCount("2ちゃんねらー12345678901234567890")

でいけるかと
448デフォルトの名無しさん:03/12/04 16:07
>>447
早速のレスありがとうございます。
早速試してみます。
449デフォルトの名無しさん:03/12/04 17:50
>>442 は無知
450デフォルトの名無しさん:03/12/04 21:18
VB.NETを修得できる学校を探しています。
どなたかご存知の方、お勧めの学校などありますか?
(国内外にこだわらず)
学校なんか行かなくても全然習得できるし、人に教えてもらうより自分で調べたほうが
身につくと思うけどなぁ。
452デフォルトの名無しさん:03/12/05 01:57
asp.net + win2kserver でWebサーバ並びにメールサーバを構築したいと思っていますが。
↑の本とか良いWebサイト知りませんか?
アマゾンを探してみたのですが、どうにもASP.netとWin2Kが切り離されて記載されてるから
調子が悪くて。そこら辺りを誰か知ってる人いたら教えてplz
453450:03/12/05 02:02
これまで、独学でやってきたんですけど、
サラリーマンにはなりたくないので、
(できれることなら自営を考えており)
社会的にも認められるような経歴にもなる
学校にいきたいと考えているのです。
海外留学でもかまわないので、
どこかいい学校を知っている人いませんか。
中国にそれらしき学校があったけれど、
他にもいろいろ探そうと考えてます。
VB.NETをしっかり身に付けて世に出たいと
思っています。
自営するならそんな学校の経歴なんぞいらんw
っていうか、プログラミング力を学校で判断するなんて考えたこともない。
それより会社で経験詰んだ方がいい。
ここで言う経験ってのは言語=プログラムじゃなくて、業務知識ってこと。

もしかして >453 って10代?
455デフォルトの名無しさん:03/12/05 09:24
VB.netでWebアプリケーションを作成しています。
Page上の全てのTextboxのプロパティを変更したい場合は
どうすればよいのでしょう?

Dim MyCtrl As Object
For Each MyCtrl In Page.Controls
Select Case TypeName(MyCtrl)
Case "TextBox"
MyCtrl.・・・
End Select
Next MyCtrl

だと、Textboxが引っかかってくれません。
>>455
Webに山ほどTextBoxを貼り付けている時点で設計失格。
457デフォルトの名無しさん:03/12/06 11:17
TextBoxのMultilineをTrue、ScrollBarsをVerticalにしました。
この、テキストボックスがスクロールされたというイベントを取得したいのですが、
どのイベントを使えばいいのでしょうか???
458デフォルトの名無しさん:03/12/06 19:05
フォームをOpacityで半透明にしているのですが
その下に見えている他のウィンドウなどを普通に
操作出来るようにしたいのですが出来ますでしょうか?
よろしくお願いします。
まるち
いちどOpacity変更すると描画速度が遅くなるのはどうしようもないのか・・・
Form1のTransparencyKeyプロパティで透明色を指定したところ、
ツールチップがフォームの後ろに隠れてしまいました。
最前面(フォームよりも上)に出すにはどうすれば良いですか?
※TransparencyKeyの設定を無くすと最前面に現れます。

どなたかご教授願います。
462PG:03/12/09 17:26
VB.NetでPGを作っています。で、dllがたびたび無くなってしまいます。
dllの消える原因として何があるのか教えてください。
プロパティの参照パスをいじると消えるということは分かっています。
よろしくお願いします。
>>462
PGの不具合だな。あるいは、
プロパティの参照パスをいじったからぢゃないかな?
プロパティの参照パスをいぢらなければ良いと思われ。
つか、釣りじゃないなら、もっと具体的に書き直せ。
464デフォルトの名無しさん:03/12/09 20:16
一つのプログラムを複数のプロジェクトに分けて作ってきました。
今!それらをまとめるときがきたのです!
が、やり方がわかりません(つд`;)

ソリューションに、複数の既存のプロジェクトを追加したのですが、
いったいどうやって扱えばよいのでしょうか?
465PG:03/12/09 20:31
「ファイル」の「既存項目の追加」で追加したい.vbを追加したらどうでしょうか
466PG:03/12/09 20:33
「ファイル」の「既存項目の追加」で追加したい.vbを追加したらどうでしょうか
467デフォルトの名無しさん:03/12/10 00:29
追加しました(・_・)
・・・。
何がどう変わったんだぁぁ(;;)ポロポロ
>>464
何が分からないのかが伝わらない。
[ファイル]-[プロジェクトの追加]-[既存のプロジェクト] じゃダメなのか?
>>462
SourceSafe使ってるとたびたび物が消えることがある
470デフォルトの名無しさん:03/12/10 22:37
asp.netでの質問なんですが、ボタンを押すと画面が変わるのではなく、ポップアップで
画面が立ち上がってくるっていう処理を作りたいんですが、どのようにやればいいんでしょうか?
そらJavaScriptだろ
472デフォルトの名無しさん:03/12/11 00:16
http://www5b.biglobe.ne.jp/~yone-ken/VBNET/series/VBNET4.html
のようなコンパイル方法が書いているのですが
クリック一つでコンパイル(デバック?)できるのではないのでしょうか?

当方、初心者なのでURLのような方法を使ったことがないです。
>>472
カネ出して、Visual Basic.NETを買えば、その統合開発環境でクリックひとつでコンパイルできる。
カネ出したくない人は、Microsoftから、.NET Framework SDKをダウンロードすれば、そのURLの方法でコンパイルできるYO!
474464:03/12/11 05:31
大変失礼しました。
自分も「プロジェクトの追加」の意味をわかっていないものでして。。
何がやりたいかと言いますと、

・ある一つのプログラムを作るのに、各処理毎にテストを行いながら作成する。
この際、面倒だから各処理を一つのプロジェクトとして作成し、
標準モジュールや自作クラスなどを扱いながらプロジェクト(一つの処理を
完成させる)

・各処理が一通り完成したら、今度は、それらを部品のように見て、
一つのプログラムを組み立てる。
まず、この時、各プロジェクトにある標準モジュールやクラスは、他の
プロジェクトから見れるもの、見れないもので扱いをわけたいのだが、
それが可能なのか不可能なのかわかりません。

・各処理がプロジェクト毎に分割された、とてもスマートなプログラムが
完成する。このように、プログラム=ソリューションと見ることができるのか
どうか、ソリューションに各プロジェクトを扱うロジックを持たせることが
できるのかわかりません。

このような漠然とした疑問なのですが、今後、分担作業で
プログラミングをしていくに当たって、とても重要な問題でもあります。
このVB.NETで新しく取り入れられた「ソリューション」という概念が
どのようなものなのか、把握したいと思い質問しました。

結局、プロジェクトに分けて作った処理をあとで一つのプロジェクトに
まとめてしまうのなら、平らでメンテナンスしづらいプログラムに
なってしまうので自分なりの対策が必要になると思いまして・・。

わかりづらい質問で申し訳ありません。藁をもつかむ思いで、ここ2chスレに
書き込みました。どなたかわかる方がいらっしゃったら是非ご教授下さい。
475デフォルトの名無しさん:03/12/11 06:55
>>474
プロジェクトをまとめるのがソリューションです。

簡単に言ってしまえば、「プロジェクト = アセンブリ」です。

簡単なアプリであれば、実行ファイル(EXE)ひとつのプロジェクトでよいですが、
ちょっと込み入ってくるとそうもいきません。

なので、コンポーネント(DLL)を複数と、実行ファイルをひとつ含むソリューション
を作成することになります。コンポーネントは使い回しが効くので、

・Aアプリ(ソリューション)
  ・Aメイン実行ファイル(プロジェクト)
  ・共通コンポーネント(プロジェクト)

・Bアプリ(ソリューション)
  ・Bメイン実行ファイル(プロジェクト)
  ・共通コンポーネント(プロジェクト)

というような使い方ができます。さらに、プロジェクトをソリューションに含める場合と、
参照設定して使う場合がありますが、この辺はさらにややこしくなるので割愛します。

>>474
ソリューションっていうのは、VB6のプロジェクトグループみたいなもので、
アプリ全体を一纏めにしたものです。Webアプリのように、
htmlやスクリプト(ASP)やライブラリ(DLL)が混在するような時に便利です。
ソリューション内のプロジェクトは、通常1つにつき1つのモジュールを生成するので、
複数プロジェクトが存在する場合は、それぞれ別のモジュールを生成するため、
>・各処理が一通り完成したら、今度は、それらを部品のように見て、
>一つのプログラムを組み立てる。
上記のような事(おそらく1つの.EXEを想定しているのだと推測)はできません。
既に共通クラス、共通関数単位のモジュールはあるんですよね?
これらはDLL化しないという前提で話を進めると、
分担する時一般的なのは、各ソースファイルを共有フォルダに置き、
他人の担当するモジュールは、リンク取り込みを行うという方法です。
ソースも、プロジェクトにフォルダを追加すると整理しやすいです。
他から呼ばれたくないモジュールは、宣言のキーワード(Public等)を変更します。
(自モジュールしか参照できないもの、サブクラス以外は参照できないもの等・・・)
方法としては、465のようになると思いますが、当然ながら取り込んだからといって
プログラム側で対応できていなければ、勝手に動作してはくれません。

以上、非常に大雑把ではありますが・・・。
477デフォルトの名無しさん:03/12/12 00:13
あるファイルAにボタンが一つあって、ファイルBにテキストボックスが1つある。
ファイルAのボタンを押したら、ファイルBのテキストボックスに文字列を表示させたいんだけど、
どうやるかわかりません。同じ画面でならば、text1.Text="abc"という処理を書けばいいのですが、
違うページをまたいだときにどうやってこの処理を行うかわかりません。よい知恵をお授けください〜
478デフォルトの名無しさん:03/12/12 08:56
>>476
>リンク取り込み

そうそう。普通に追加しただけだと、コピーしちゃうんです。ここ注意が必要。

>>477
ファイル = フォーム だとすると、フォームの参照をもらってからテキストボックス
に代入することになる。

ファイル = Web フォームだと、Sessionオブジェクトとかに入れておいて、
ページ遷移後に設定する、って感じかな。
479デフォルトの名無しさん:03/12/15 04:53
質問1

textbox1とtextbox2、button1があります。

button1をクリックするとtextbox1が空白の場合に
数字(例えば100)が入力されます。
それ以外の場合にはtextbox2に数字が表示されるような
コードはどうかけばいいのか教えて下さい。

なんとなくこの文章を書いてるとif文を使うのかなと言う予感が
しましたが漠然としているので教えて下さい。
480デフォルトの名無しさん:03/12/15 04:58
質問2

textbox1とtextbox2、button1があります。
button1をクリックすると
textbox1がアクティブ(カーソルが点滅している)の時には
textbox1に数字(例えば100)を入力します。

textbox2がアクティブ(?)の場合には
textbox2に数字を(例えば100)を入力します。

このようなコードはどう書けばいいのかわからないので
教えて下さい。
481デフォルトの名無しさん:03/12/15 04:59

なんとなく>480は不可能な予感がします。
482デフォルトの名無しさん:03/12/15 05:10
ソリューション名を日本語で書くのは厨ですか?
483デフォルトの名無しさん:03/12/15 05:19
>>482
大和魂が感じられて好感度が高い
484デフォルトの名無しさん:03/12/15 05:43
485デフォルトの名無しさん:03/12/15 06:35
日本語ベーシック(うそ)で書くとだな、

>>479

ボタン1のクリックイベント

 もし、テキストボックス1のテキストプロパティが空白なら
  テキストボックス1のテキストプロパティに「100」を代入
 そうでないなら
  テキストボックス2のテキストプロパティに数字を代入

クリックイベント終わり

>>480

フォームの ActiveControl で取れるかもしれんが、駄目なら Enter イベント
やらで、フラグを設定して判断、かな。


486デフォルトの名無しさん:03/12/15 06:40
>>485
>もし、テキストボックス1のテキストプロパティが空白なら
その空白ならと言う表現をコードでどう書けばいいのか
わからないのですよぉ。
Sendkeysすりゃいいじゃんと思ったが、よく考えたらbutton1をクリックで
フォーカスは移動しちゃうんだな。
やっぱフラグだね。
488デフォルトの名無しさん:03/12/15 10:30
>>486

空白 = 何もない = "" だね。
489デフォルトの名無しさん:03/12/15 11:34
ファイル操作について質問です。

Open ファイル名 For Input Access Read Write As ファイル番号
とすると、構文エラーが出てしまいます。

原因がわからないので教えて下さい。
490デフォルトの名無しさん:03/12/15 11:48
>>489

FileOpen() を代わりに使いませう。Open はなくなったみたい。
491498:03/12/15 12:02
>>490
ありがとうございます。
492デフォルトの名無しさん:03/12/15 22:10
>>486ですがいくつか解らない言葉があったので
教えて下さい。
Sendkeys
フラグ
493デフォルトの名無しさん:03/12/15 22:12
>>488
""か0の場合はやっぱりif文を使うのですよね。
494デフォルトの名無しさん:03/12/15 23:33
>>493
ふたつぐらいなら、If 文で OK でしょう。もっと多くなってきたら、Select Case〜End Select
を使いましょう。
495デフォルトの名無しさん:03/12/15 23:48
>>494
ありがとうございます。
また明日来ると思うのでよろしくお願いします。
496デフォルトの名無しさん:03/12/16 00:54
ttp://software.nikkeibp.co.jp/software/special/200212toku2/0212tk2b.html
にある暗号化・復号化のソースを実行すると,復号化の(17)のところで「暗号化を解除するデータの長さが無効です。」が出てしまいます。
この原因わかりますか?私の環境は「.net framework1.1」です。
よろしくお願いします。
497474(464):03/12/16 06:50
>>466,468,475,476
ご丁寧な対応(そうでない対応)、ありがとうございました。
ようやく目処がつきました。
「共通関数レベルのモジュール」という意味がわかりませんでしたが、
プロジェクトを進めていくうちに、それっぽいのが必要になってきたりと、
大変参考になりました。
・・「共通関数レベルのモジュール」って何だろう・・・(^^;
とまた新たな疑問が生まれたわけです。こうやって、少しずつ前に
進めるのも皆さんのおかげです。  m(._.)m
498yt:03/12/16 12:47
教えてください。
.NETでWinsock.ocxを使ってソケットプログラムを作るとき、
データの受信がうまくできないのですが、
何か良い方法しらないですか?

Private Sub Winsock_DataArrival(ByVal eventSender As System.Object, ByVal eventArgs As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles Winsock.DataArrival
Dim strData As String
Winsock.GetData(strData)
Text1.Text = strData
End Sub
質問です。
リストボックスで、垂直スクロールバーが出現するまで
項目を追加していった時、このスクロールバーを
スライドしたタイミングで、他のコントロールの表示を同期したいのですが、
このスクロールバーのイベントを拾う方法はありますか?
それとも、VScrollBar等を上に載っけるしかないのでしょうか。
>>498
個人的にはWinsockじゃなくてSystem.Net.Sockets.Socketクラスを使った方がいいと思う。
501デフォルトの名無しさん:03/12/16 16:52
>>499
WM_SYSCOMMAND の SC_VSCROLL とかが流れるっぽい。なので、それを
フックしてあげて、そのまま隣のリストビューに投げてやればよさげ。

>>500
激しく同意
502499:03/12/16 23:43
>>501
システムのメッセージを扱うのは慣れていないので、
なるべく触れずに済ませたかったのですが、その方法を試してみます。
どうもありがとうございました。
503デフォルトの名無しさん:03/12/16 23:53
VB.NETを始めたいんですが
購入するソフトとしては書籍に載ってる通りに
Visual studio .NETを購入しなければいけないのですか?
Visual Basic .NET standardでは駄目なんでしょうか?
違いが良く分かりません
Visual studio .NETは高くて、とても買えないので
>>503
VB.NETだけなら、VB.NETだけで十分。
あぁ、違いも知りたいのか。StudioはVB以外にC#やC++などが付いている。
さらにいろんなツールが付いているが、勉強用や趣味用では大体不要。
506503:03/12/17 00:24
>>504>>505
サンクス
早速VB.NET standardを注文します
オレはすごい発見をした。
Directory.CreateDirectoryはサブフォルダも一気につくることができたぞ
「やらないか」というファイルも一緒に出来てしまうのですが・・・
509デフォルトの名無しさん:03/12/17 17:26
>>508
僕のPCだとその後
「イヤです」というファイルも一緒に出来てしまうのですが・・・

510デフォルトの名無しさん:03/12/17 19:03
VB6とVB.netって同じPCにインストールできるんですか?
>>510
できま〜す。
今の所、私の端末ではそれぞれ問題なく動作しています。
512デフォルトの名無しさん:03/12/17 20:32
>>511
そうなんですか、よかった♪
今からインストールします。
513デフォルトの名無しさん:03/12/17 22:40
計算した結果をテキストボックスに
小数第1位まで表示してあとは四捨五入したいのですが
どういう方法があるのでしょうか?
>513
System.Math.Round()
Roundはいわゆる「四捨五入」ではないよ。
やるんなら自前でやるしかない。
516最凶VB厨房:03/12/18 07:32
>>513
Dim MyDouble As Double =123.45678
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-us")
Console.WriteLine(MyDouble.ToString("F1"))
517最凶VB厨房:03/12/18 07:38
>>513
Imports System
Imports System.Globalization
Imports System.Threading
518デフォルトの名無しさん:03/12/18 13:57
質問です。
VB6のラベルコントロールでは、
BackStyleプロパティでラベルの背景を簡単に透明にできましたが、
.NETで同様の事をしようとした場合は、どのような方法がありますか?
519518:03/12/18 14:04
質問に補足をさせていただきます。
やりたいことは、ラベルに表示した文字だけが、
他のコントロールの上に浮いて見えるようにしたいのです。
よろしくお願いします。
520デフォルトの名無しさん:03/12/18 14:20
>>519

透明色を使えるモードにし、
他のコントロール内にラベルをAddし、
ラベルの背景色を自作し、自作色のアルファ値を0(透明)に汁。

ヘルプでVB.NET語に翻訳すれ。
521デフォルトの名無しさん:03/12/18 16:22
>>520
めんどくせ
VB6.0使え
522 :03/12/18 17:27
くだらない質問ですが
ASP.NETでいったいどんな事が
できる??
523デフォルトの名無しさん:03/12/18 17:34
>>522
掲示板、eコマースサイト、コンテンツ管理、blog・・・要するに、Web アプリケーション
と呼ばれるもの。
524デフォルトの名無しさん:03/12/18 17:41
>>523
なるほど、やってみたいのですが
必要なものはなんですかね??
525デフォルトの名無しさん:03/12/18 18:28
>>524
Visual Studio/Basic/C# を買う、もしくは、WebMatrix をダウンロードして使う。
お試しって意味では、WebMatrix がお勧め。

OS は、Windows 2000/XP が必要ね。
526518:03/12/18 18:41
>>520
VBでは上手くいきそうにありません。
PictureBoxにラベルを貼り付けて、ラベルの背景色を透明にし、
PictureBoxの画像や、親コントロールに書き込んだ文字を
透過表示させるといったことはできるようですが、
コントロールの外観を透過させることはできそうにありません。

できるとしても、かなり複雑な方法になりそうですね。。。
諦めます。  どうもありがとうございました。
StrConvを使わずに
"012"→"012"
にしたいのですが
528デフォルトの名無しさん:03/12/19 01:00
>>527

If hoge = "012" Then
  hoge = "012"
End If

529デフォルトの名無しさん:03/12/19 01:53
DataGridを使って、フッターの所に合計を表示するような処理がしたいんですが、例えば
列が10行あって、各行に数字が入っていて、その合計をフッターの所にだすっていう
処理なんですけど、どなたか知ってればお教えください。
>>527
Format(CDec(s), New String("0", i)) とか?

531デフォルトの名無しさん:03/12/19 11:14
もしかして、
"!,$" → "!,$"
にできる?
>>526
背景を透明にできたんならそれでOKじゃ?
コントロールの外観ってなによ。
ボーダーなしにしてないだけなんじゃないのか?
>>527
なんでStrConvを使えないの?
Dim A, B, C, D As Integer

Dim A As Integer
Dim B As Integer
Dim C As Integer
Dim D As Integer
だったら速度の違いってあるんですか?
535デフォルトの名無しさん:03/12/19 23:07
form1のtextbox1の内容をform2のtextbox1の
内容に反映するにはどのようなコードを書けばいいのですか?
>>535
form1で、textbox1というインスタンスを作って
文字列を入れてるんでしょ?
それと基本的には一緒。
StrConv関数はWinXPで誤変換を起こすことが・・・
538デフォルトの名無しさん:03/12/20 00:18
>>536
すいません。全然わからないので
わかりやすく教えてもらえないでしょうか?
539デフォルトの名無しさん:03/12/20 00:39
だれかマジで>535を教えて下さい。
コードで説明していただければわかりやすいかと
思います。よろしくお願いします。
540デフォルトの名無しさん:03/12/20 01:31
>>539
コードで説明っていったってform1とform2の関係がわからないと
答えようがないと思うよ。

まあ、質問の仕方や内容からいってあなた自身がわかってないのだと
思うけど。

今は回り道だと思っても、まずはクラスとかインスタンスという概念を
理解するところから始めたほうがいいと思う。
541デフォルトの名無しさん:03/12/20 01:41
>>540
そうなんですか・・・。
逆引きなどにも載っていなかったですしね。
インスタンスとか意味わからないですし。
出直してきます!
>>541
・・・
>>542
いや・・・マジですいません。
趣味程度でやってる者で・・・ちょっと限界かな??
>>543
誰もが通る道だ。
がんがれ!
545デフォルトの名無しさん:03/12/21 03:26
>>544
一皮むけるにはどうすればいいのですか?
>>545
とりあいずVBは辞める事だw
547デフォルトの名無しさん:03/12/21 11:30
チンコの皮ならムケムケです
Visual Basic 言語リファレンス

\ 演算子参照
\= 演算子 | / 演算子 | 算術演算子 | Visual Basic における演算子の優先順位 | 機能別の演算子一覧 | 算術演算子 (概念)
2 つの数値の商を計算し、結果を整数で返します。

number1 \ number2
指定項目
number1
必ず指定します。整数型の任意の数式です。
number2
必ず指定します。整数型の任意の数式です。
-------------------------
とあり、\は整数同士の割り算にしかつかえないので、
少数÷少数の計算はどうすればいいのでしょうか?
>>548
うわぁぁぁぁ難しい問題だぁぁぁぁぁぁ
550最凶VB厨房:03/12/21 18:33
>>548
0.03/0.02を考えると、100倍して
3/2 → 1・・・1
で元に戻して
1・・・0.01

つまりは整数に直してやればいいんじゃないかな?ってこった。
551548:03/12/21 18:47
>>549
ですね。
>>550
小数A÷小数Bで、AもBもケタすうがまちまちだったら、
Cstr(A)とかして、ピリオドの位置を探して小数点以下のケタ数を求めて、
それで何倍にするかを自動決定するプログラムをつくるしかないですかね?
552最凶VB厨房:03/12/21 18:56
それかまず普通に割る。
少数A/少数B.
で整数部分だけ取り出す。

0.031/0.01315を考える。
0.031/0.01315=2.357・・・
で、2(w
553最凶VB厨房:03/12/21 19:01
余りは0.031-0.01315*2=
で求まるはず。
Mod 演算子を使って、2 つの数値の除算を行い、その剰余を取得する例を次に示します。どちらかの数値が浮動小数点数の場合、結果は剰余を表す浮動小数点数になります。
Dim myResult As Double
myResult = 10 Mod 5 ' Returns 0.
myResult = 10 Mod 3 ' Returns 1.
myResult = 12 Mod 4.3 ' Returns 3.4.
myResult = 12.6 Mod 5 ' Returns 2.6.
myResult = 47.9 Mod 9.35 ' Returns 1.15.
555548:03/12/21 20:33
>>552-554
割り算の記号には\のほかに/があって、/では小数を扱えることがわかったのでもういいです。
556デフォルトの名無しさん:03/12/22 04:13
初心者です。よろしくお願いします。
数字がスペース区切りで並んだデータがあります。ただ、
2 56 3 14
33 9
2 31 55
1 134 9 21 2
のよう各行に何列あるかはばらばらです。
行数と最大列数は分かっています。
このようなデータを上手く読み込みたいのですが、
どうしたらよいのでしょうか?
教えてください。お願いします。
すいません、愚問だとは思いますが質問させてください。
VB.NETとVB6は別物なんでしょうか?
最近.netを使いはじめたのですが、近所の書店ではVB6の本しかなかったので
これでもいいやと思い、本に沿ってやってみたところ
ラベルの項目を変える.captionという項目がVB6の本には書いてあったのに
.netではそういった項目が出てきません。
やなり仕様が違うのでしょうか…?
558デフォルトの名無しさん:03/12/22 04:47
>>557
過去ログぐらい読め
>>556
ReadLineメソッドで一行ずつ読み込みながら処理していく。あるいはvbCrLfなどの改行コードごとにSplitしたり。
560557:03/12/22 05:08
ごめんなさいごめんなさい
過去ログ読んだら発見しました。
VB6と.netは別物なんですね。
マウスのコードで吊ってきます。
561556:03/12/22 05:22
>>559
なるほど、ありがとうございます。やってみます。
さらに質問で申し訳ないのですが、
ここで読み込んだ数字を使って、
数字一つ一つについて、その上下左右の数字と足し引きなどを行い、
結果をもとの場所に返したいのですが、
どのようにすればよいのでしょうか?
隣に数字が無い場合には、0と演算をしようと思っています。
よく分からずに困っています。よろしくお願いします。
>561
特定文字で区切られた要素を配列に格納するには、
>559も言ってるけどSplitで出来る。
後はアルゴリズムの問題だろ。自分で考えれ。
563556:03/12/22 09:57
>>562
わかりました。がんばってみます。
レスどうもありがとうございます。
564デフォルトの名無しさん:03/12/22 15:13
糞初心者ですが、おながいします。

VB.NETで作ったアプリは、VB6.0アプリが動いていた端末でそのまま
動くでしょうか?やっぱ.net Frameworkが必要でしょうか?
>>564
知ってるくせに
566デフォルトの名無しさん:03/12/22 16:26
これからプログラムを覚えようと思っています。
VBをやろうと思うのですが、ググった所でVisual Basic Professional 6.0が紹介されていました。
それを買おうかと価格.COMで探してみたのですが、価格.COMに載っていません。
Visual Basic .NET Standard 2003 というのがありましたがこれが後継ソフトなんでしょうか?
そのサイトには高価と書いてあったのですが、
Visual Basic .NET Standard 2003の値段をみると1万7千円ぐらいです。
この価格ではアプリの価格としては普通より安いですよね?
7万とか10マンとかするVisual Studioというのがありますが
値段からしてVisual Basic Professional 6.0の後継はこっちですか?
教えてください。よろしくお願いします。
>>566
知ってるくせに
569566:03/12/22 17:18
>>567
レスありがとうございます。
ああ、やっぱり値段からしてVisual Basic Professional 6.0の後継はVisual Studioでしたか…
こっちの値段はさすがに簡単にホイと買うわけにはいきませんね。
Visual Basic .NET Standard 2003ってどんな物なんでしょうか?
俺、これから初めてプログラムに触れるのですが、
最初はVisual Basic .NET Standard 2003で問題ないですかね?
こっちなら値段的にもすぐ手の出る値段なので、入門としてはどうでしょうか?

>>568
すんません、マジで知らんかったです…(´Д` )
570最凶VB厨房:03/12/22 19:29
>>569
問題なし。
571566:03/12/22 19:47
>>570
どうもありがとうございます。
スレをざっと読んだ所、上のほうでも同じ質問が出ていました。
どうもすみませんでした。読まずに質問してしまいました。
早速Visual Basic .NET Standard 2003を買います。
ありがとうございました。
>>566
確かVB6.0って販売終わってたような。
今からVBやるんだったら、VB.netで間違いないと思う。
配列の要素の最大値を求めるにはどうしたら良いのでしょうか?
分からないので教えてください。
お願いします。
574デフォルトの名無しさん:03/12/23 18:21
>>573
UBound()
575573:03/12/23 18:49
>>574
レスありがとうございます。
UBound()って最大添字を返す関数ですよね。
そうではなくて、配列に含まれる数字の最大値を求めたいのです。
分かりにくい言い方ですみませんでした。
よろしくお願いします。
576x:03/12/23 19:04
>>575
Private Sub a()
  Dim l_ia As Variant
  Dim l_iIndex As Long
  Dim l_iMax As Long
  
  l_ia = Split("5 4 2 1 9 0 7 8 6 3")
  l_iMax = -2147483648#
  For l_iIndex = LBound(l_ia) To UBound(l_ia)
    If l_iMax < l_ia(l_iIndex) Then
      l_iMax = l_ia(l_iIndex)
    End If
  Next
  MsgBox l_iMax
End Sub
577573:03/12/23 19:54
>>576
どうもありがとうございます。
助かりました。
しかし、みなさんすごいですね。
みなさんはVBというかプログラミング歴はどのぐらいなのでしょうか?
私は3日前に始めたばかりの超初心者です。
先は長いなー。
578デフォルトの名無しさん:03/12/23 22:56
何か明らかに解りきった事聞いてる餓鬼が少なくとも一人いるだろう。

そんなのいちいち馬鹿正直に答えてやる奴もどうかしてると思うが、
こういう餓鬼には自意識ってものがないのかね。

普通の神経なら、わざと幼稚なこと書いて答えてくれる奴をみて喜んでる「寂しい自分」
なんて哀れな自己イメージには耐えられんと思うが。
配列を宣言するとき、例えばx(0)からx(100)すべて値を0にしたいとき
Dim x() As short = {0, 0, 0, 0, 0......0}
のようにいちいち0を101個書かなきゃいけないのでしょうか?
580x:03/12/24 09:24
>>577
「プログラミング歴」となると22年ぐらいになっちゃう。
VBは、.netはさわったことなくてVB6かVBAだけ。
普段はVC++かC#がほとんど。
>>579
Dim x() As short
ReDim x(101)
For i As Integer = 0 To Ubound(x)
  x(i) = 0
Next
と書くしかない気がする。
でも、VBなら自動で0に初期化されてるハズ。。。
582最凶VB厨房:03/12/24 17:58
Array.Clear(x,0,x.Length)
583デフォルトの名無しさん:03/12/24 18:52
>>576とか>>581みたいに配列の全要素に対して処理をする場合は、
配列の添え字をForで回すんじゃなくて、例えば

For Each ArrayItem in HogeArray
    '配列の要素(ArrayItem)に対する処理
  
Next

みたいに書くのが普通じゃないかな。それに>>576はMath.Max使ったほうが
簡単でわかり易いと思う。
584デフォルトの名無しさん:03/12/24 23:00
ソフトを作って配る時はみなさんフレームワークを
同封しているのですか?
585最凶VB厨房:03/12/24 23:03
no
>>585
使えねーよ!とか言ってくる輩はいないのですか?
587最凶VB厨房:03/12/25 00:29
一般公開してないし。
すいません
http://kakaku.com/txtsearch/txtsearchresult.asp?TopCategoryCD=6&CategoryCD=0310&SearchWord=Visual+Basic
のなかにあるVisual Basic .NET Standard 2003 と Visual Basic .NET Standard 2003 (AC)
の違いは何なんでしょうか...
589デフォルトの名無しさん:03/12/25 01:14
スイマセンageマス
590最凶VB厨房:03/12/25 01:17
お。アカデミックパックあるんか。
>>588
Microsoft Visual Studio .NET ファミリー 製品別機能一覧表
http://www.microsoft.com/japan/msdn/vstudio/productinfo/featureview.asp
Microsoft Education 学生教職員は安いアカデミックパッケージを買える。
http://www.microsoft.com/japan/education/purchase/academic.asp
592デフォルトの名無しさん:03/12/25 08:16
>>591
なんで放置できんのかね。本当に分からなくて聞いてるとでも思ってるの?

それとも街頭で『お祈りさせてください』とかやってる「自分さがし君」の
同類なのかキミは。
593デフォルトの名無しさん:03/12/25 10:31
>>592
なんでキミは「自分さがし君」なのかね。

それとも街頭の同類なのか。『させてください』
594588:03/12/25 15:57
>>591サマ
ありがとうございました



首吊ってきます
595デフォルトの名無しさん:03/12/25 23:05
http://vip.6to23.com/jpgman/gui/gui.htm
このサイトに置いているソフトはソースを展開しているのですが
VBで作っているのですか...
>>595
ブラクラ注意!
>>596
違うだろ
598デフォルトの名無しさん:03/12/27 03:03
HOGEってなんですか。
日本語で言う「ほにゃらら」にあたる英語です
600デフォルトの名無しさん:03/12/27 11:59
FOOは?
hogeとかfooとか
ttp://www.wdic.org/?word=hoge
602デフォルトの名無しさん:03/12/28 01:51
VB.NETで作ったプログラムは、
.NET Frameworksをインストールして無いPCだと動かないのですか?
>>602
動かない
教えて下さい。
1つの画像ファイル(bmp)から、指定したサイズ毎に
絵をとりだすには、どのようにすればよいのでしょうか?
※1つの画像に4個の画像がくっついているのを変数に分けたいたいのです。
TextBox1.Textの値とHScrollBar1.Valueの値を連動させたいのですが、

HScrollBar1.Maximum=200009
HScrollBar1.Minimum=1
HScrollBar1.Value=10000
TextBox1.Text=10000

Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles TextBox1.TextChanged
HScrollBar1.Value = Val(TextBox1.Text)
End Sub

で以下のエラーがでます。↓
'System.ArgumentException' のハンドルされていない例外が
system.windows.forms.dll で発生しました。
追加情報 : '10000' は 'value' に有効な値ではありません。
'value' は 'minimum' と 'maximum' の間でなければなりません。

なんでエラーになるのでしょうか?









606605:03/12/28 22:52

HScrollBar2.Maximum=30
HScrollBar2.Minimum=1
HScrollBar2.Value=15
TextBox2.Text=15

Private Sub TextBox2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles TextBox2.TextChanged
HScrollBar2.Value = Val(TextBox2.Text)
End Sub

こっちだとエラーは出ないで、ちゃんと連動してくれてます。
ご教授お願いします。
607最凶VB厨房:03/12/29 00:41
>>604
白紙のbitmapオブジェクト4つ作ってそれぞれGraphicsオブジェクト(g)を(4つ)作る。

もうひとつ"1つの画像ファイル(bmp)"を入れるbitmapオブジェクト(bigbmp)を作る。

g.DrawImage(bigbmp,**位置を調節して**)
これを4個の画像についてそれぞれ実行。

>>605
わかんないねー。

HScrollBar1.Maximum=200009
HScrollBar1.Minimum=1
HScrollBar1.Value=10000
TextBox1.Text=10000
↑これはどこに?
608デフォルトの名無しさん:03/12/29 01:13
とあるアプリケーションを作っていて、
BGMを鳴らしたいが為にPlaySound文の使い方を勉強しました。

結果、PlaySound文ではwaveしか扱えず、mp3が使えない。
mp3やmidi等を使いたい場合、どの関数を使えばよいのか、
どなたか教えて下さい。著作権は侵害しません。
609604:03/12/29 01:48
>>607
なるほどお。ありがとうです。
試してみます。
610最凶VB厨房:03/12/29 01:53
DirectX9.0b使用。

Microsoft.DirectX.AudioVideoPlaybackの参照追加とImports

Dim a As New Audio("山嵐 - 山嵐.mp3")
a.Play()
611最凶VB厨房:03/12/29 01:55
>>609
がんばれー。
612最凶VB厨房:03/12/29 01:56
>>608
midiは試してないけど、
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=2917
よろしく。
613605:03/12/29 07:12
>>607
レスどうもです

Private Sub Form1_Load(ByVal ....略
 HScrollBar1.Maximum=200009
 HScrollBar1.Minimum=1
 HScrollBar1.Value=10000
 TextBox1.Text=10000
End Sub

です。わけわかめです。何か分かったらよろしくお願いします。

614デフォルトの名無しさん:03/12/29 10:08
>>613
試してみたけど、エラーでないよ?
615605:03/12/29 10:47
>>614
私ももう一度最初から作ってるんですけど、
確かに上記のコードだけならちゃんと動いてくれますね。
つまりどっかにミスがあるのかなぁ
色々いじって考えてみます。
ありがとうございました


>>605
スクロールバーのMaxかMinがどっかで変わっちゃってるんじゃないの?
エラーのでる行の前にMsgboxでも突っ込んで調べてみ。
617605:03/12/29 12:04
最初から作り直して、コーディング→デバッグ→コーディング→デバッグ→コー・・・
って地道な作業繰り返していたのですが、結局エラーは出ませんでした。
全く同じ内容なはずなのですが・・・謎だ
一応解決できました。ありがとうございました
618毛ブリ42歳:03/12/29 18:01
VBでPocket PCの開発を勉強しようとしているものです。(VB.NETです)

参考書籍が皆無ですし、Web上で初心者向けのサイトを探しているのですが
どこかいいところをご存じの方教えてください。
620822:03/12/29 18:13
もしOCX化できなくても
http://www.mvps.org/vbnet/index.html?code/subclass/comboflexgrid.htm
のようなことを実現できるコントロールってありませんかね?

もちろん、DataSourceプロパティとかで引っ張ってこれないと困りますが。
3,000円くらいしか予算がありませんが
621デフォルトの名無しさん:03/12/30 00:35
VB.NETでフラッシュ(swfファイル)を扱う方法を教えて下さい。
フラッシュ(swfファイル)は、アニメーションと、
簡単なキー判定だけを持っているものを使います。

VB.NET2003 AC
Flash MX
初歩的で恐縮なのですが、
Dim N As Short = Val(TextBox1.Text)
これを複数のプロシージャで扱うには
どのようにすればよいのでしょうか?
623デフォルトの名無しさん:03/12/30 08:24
>>621
なんかコントロールを探すことになるんじゃないかな?
ありがちなのは、WebBrowser + Flash プラグイン

>>622
意味がよくわからないんだけど、変数 N を他のプロシージャから参照
したいってこと?

それなら、フォームレベルの変数として宣言すればいい。具体的には、
フォームモジュールの頭(クラス定義内)で、

Private N As Short

とする。
624622:03/12/30 09:09
>>623
Private N As Short だけなら、大丈夫なんですけど、
それといっしょに N = Val(TextBox1.Text) とやろうとすると
「オブジェクト参照がオブジェクト インスタンスに設定されていません。」
と怒られてしまうんです。
各プロシージャ内で N = Val(TextBox1.Text) と書かないと、
やっぱだめなんでしょうか?

625デフォルトの名無しさん:03/12/30 09:44
>>624
だって、その時点では TextBox が存在しないわけだし。そういうときは、
フォーム上の各コントロールが生成された後の Load イベントなどで
やるのが定石。

値が変わらないのなら、各プロシージャでやる必要はまったくなし。
626最凶VB厨房:03/12/30 09:46
>>620
詳しく知らんがDataGridではあかんの?
627デフォルトの名無しさん:03/12/30 13:18
>>622
それって、(仮にTextBox1がForm1にあるとして)Form1のTextBox1の内容(Textプロパティ)
に、他のフォーム(本当はフォームに限らないけど)からアクセスしたい、ってことでしょ?

旧VBだったら直接Form1上のオブジェクトのプロパティにアクセスすればよかったのですが、
(もっとも、旧VBであってもこういうコードを平気で書く人は「VB厨」と呼ばれて蔑まれても
仕方ないと思いますが。。).NETではそういう時は普通はTextBox1のTextプロパティの値を
返すようなパブリックプロパティをForm1に書きます。

で、多分上に書いていることが理解できないから質問しているんだろうけど、
それならオブジェクト指向の意味から勉強するか、そういうことを実現するのは
諦めたほうがいいと思う。変にグローバル変数なんかを使ってその場をやり過ごす
ことを覚えると、「VB厨」への道まっしぐらです。
628最凶VB厨房:03/12/30 13:49
理解できんな(ハゲワラ
Module Module1
Public frm2 As New Form2
End Module

Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
frm2.Show()
End Sub

form1のbutton1をクリックすると、form2が表示されるんですが、form2を閉じた後に再び、
form2を表示しようとして、form1のbutton1をクリックすると、
「Form2" という名前の、破棄されたオブジェクトにアクセスできません。」
とエラーが出てしまいました。
form2を閉じた後も、再び表示できるようにするには、どうすればよいのでしょうか?
630デフォルトの名無しさん:03/12/31 16:29
>>629
も一回生成すればいい。つか、エラーメッセージどおりだろ?
理解できんな(ハゲワラ
プロパティを入れ子にする方法キボンヌ
これだとできないです。教えてエロイ人

Public Property Hoge() As String
  Public ReadOnly Property Count() As Integer
    Get...
  End Property

  Public Property Value(Byval n As Integer) As String
    Get...

    Set...
  End Property
End Property
633デフォルトの名無しさん:04/01/02 14:12
>>632
クラスを受け取るプロパティを作ればよいかと。
>>633
詳細キボンヌ
635デフォルトの名無しさん:04/01/02 17:38
当方VisualStudioは2003のアカデミックを使用。
ついこの間、VB.NETの参考本買ったんですが、
その本についてたサンプルプログラムを動かしてみたら、
「旧形式です」のビルドエラーがちらほら出てきたんですが…

2002と2003でそんなに違うもんなんですか?
海外掲示板用オフラインリーダーを作るスレ
http://pc2.2ch.net/test/read.cgi/tech/1072883528/

海外でよく使われていうる掲示板スクリプト
専用のオフラインリーダー作って下さい。

必要な条件はID、PASSを管理できること、
OpenJaneみたいな三面型の見た目。
簡単にローカライズできるように言語ファイルを採用
>>622
文法くらい勉強しろといいたい
638最凶VB厨房:04/01/04 20:24
2003買ってないからわかんないや。
639デフォルトの名無しさん:04/01/04 21:31
>>632
632はそれでいったい何がしたいんだと小一時間問い詰めたい。

もし、Hogeの中のCountというのがHogeの文字数を意図してるんなら、
HogeをString型にしてるんだから、
そのクラスのインスタンス変数.Hoge.Lengthで文字数は取れるじゃないか。
部分文字列を取り出したいなら、SubStringメソッド使え。
>>627
なんか目が覚めた。
初心者向けの本だけ読んで627の言う通りのことをやってきちゃったよ。
パブリックプロパティとか、オブジェクト指向について再考するよ。
マジ、ありがとう。
641デフォルトの名無しさん:04/01/06 07:16
大変お忙しい中失礼致します。どうしても分からなかったので質問させてください。
ピクチャーボックス内の好きな位置に好きな色の点を打つというプログラムを作りたいのですが、うまくいきません。6.0の場合だと、
 picture1.DrawWidth=10
picture1.Pset(x,y)=RGB(100,100,100)
のようなプログラムになるそうなんですが(どこか間違ってるかも)。どうかよろしくお願いします。
642デフォルトの名無しさん:04/01/06 20:27
TreeViewでラベルの右横に文字を表示するにはどうすればよいでしょうか。
Outlook Expressのツリーで、未読の数が表示されるような。
643初心者です。:04/01/07 02:09
【VisualBasic.NET】質問スレのみなさんに質問です!
今私は学校の課題でMP3のタグエディタ(ID3v1)のプログラムを作ろうとしています。
テキストボックスに文字を入力してボタンコントロールを押すと(タイトル、アーティスト、コメント…etc)
がMP3ファイルに書き込まれるような概要にしたいと思っています。

・・・ですが、テキストボックスに書いた物をどのようにしてID3に書き込めばいいのかが
まったくわかりませんでした。(4月から始め初心者ようの参考書も購入したのですが;;)

↑についてのアドバイスよろしくお願いします<m(__)m>
645デフォルトの名無しさん:04/01/07 14:43
質問なんですが、VB6.0の時にあったDoEventって使えないんですね。
じゃあ、以下のような内容の時、どうすればTextBox1.Textの内容がカウンターのように1ずつ動くのか
教えて頂けないでしょうか。お願いします。

Dim i As Integer
For i = 0 To 10000
TextBox1.Text = str(i)
Next
646デフォルトの名無しさん:04/01/07 16:09
>>645

Dim i As Integer


For i = 1 To 1000
TextBox1.Text = i.ToString
TextBox1.Refresh() '<--これ
Next

じゃだめ?
Public Shared Sub DoEvents()
次のメンバ : System.Windows.Forms.Application

概要 :
メッセージ キューに現在ある Windows メッセージをすべて処理します。
648デフォルトの名無しさん:04/01/07 17:29
教えて下さい m(__)m
今テキストファイルから
StreamReaderのReadLine使って読み込んでいるんですが
半角カナがあると文字化けしてしまいます。
なにか設定が必要ですか?それとも別の方法で読み込むんでしょうか?
649645:04/01/07 17:43
>>646
>>647
ありがとうございます。
これで内部で演算しているのか、単にフリーズしているのか
わかりやすくなりました。
650643:04/01/07 17:56
>>644さん、ありがとうございました。
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Ansi, Pack:=1)> Public Class ID3tag
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=3)> Public ID() As Byte
<MarshalAs(UnmanagedType.ByValArray, Sizeconst:=30)> Public TITLE() As Byte
・・・・・・・End Class
ID3の構造体はこの様な感じでいいと思いますがTextBox1の内容を
ID3のTITLEに書き換えるプログラムがわかりません(ノ_・、)
**【ID3tag.TITLE.Items.Add(TextBox1.Text)】**
上の命令ではエラーがでてしまいます。どなたかアドバイスを宜しくお願い致しますm(__)m
651デフォルトの名無しさん:04/01/07 18:16
質問:dosバッチファイルをVBスクリプトでの記述を教えたて下さい。VBスクリプト単体で無理なら、実現方法。VB初心者(勉強して2日目)です。

バッチファイルの記述。(XMLに変換するフリーソフトにパラメタを渡し実行)
cd C:\Program Files\Filistry101
Filistry.exe "D:\xml\2test\test220\moe" "D:\xml\2test\test220\moe\file-lists.xml"

追伸:最終的には、VBスクリプト+WHSで、定時に動かします。参考とかになるサイト有ったら教えて下さい。
今勉強中のサイト: 
ttp://www.roy.hi-ho.ne.jp/mutaguchi/wsh/wshtop.htm
thtp://nacelle.info/wsh/01002.php
ttp://www.atmarkit.co.jp/fwin2k/win2ktips/335tasksched/tasksched.html
スレ違いということを教えよう
653デフォルトの名無しさん:04/01/07 19:01
>>652
失礼しました。別の所にカキコしてみますハイ。
654デフォルトの名無しさん:04/01/07 19:20
655最凶VB厨房:04/01/07 22:58
>>641
ピクチャボックスに線を引くだけのプログラム
Dim g As Graphics=picture1.CreateGraphics()
g.DrawLine(New Pen(New SolidBrush(Color.Coral),0,0,30,30)

>>648
Encodeが適切で無いと見た。shift-jisの部分は適当にかえてくれ。

Dim sr As New StreamReader(てくすと , Encoding.GetEncoding("shift-jis"))
While sr.Peek()>-1
Console.WriteLine(sr.ReadLine())
End While

コンパイル通らんかったらスマソ

>>642
ラベルをハッつけるのは・・・だめ?w
656648:04/01/07 23:41
>>655
shift-jisでできましたー
ありがとうございますー!!!
DatasetにFillでDBからデータを取得し、そのデータを
各テキストボックスにバインドしているのですが、この
テキストボックスの値を画面から変更して、Dataset
のupdateで更新したいのですが、肝心のDatasetの
方に変更が反映されません。どうしたらよいでしょうか?

Windowsアプリケーションです。
DBはDB2で、OleDataAdapter(?)を使用しています。
1テーブルの全項目を各テキストボックスに出力して
画面で各値を変更してそれを更新するという、簡単な
ものなのです。
DataGridではカラム数が多すぎ(100以上)て横長に
なってしまうので上記のような方法にしてみたんですが、
他になにか簡単な方法があるでしょか?
658デフォルトの名無しさん:04/01/08 00:35
フォームの表示位置と種類について教えてください
Form1からForm2を開く際にForm1から少しずれて表示させるようにしたいのです。
Class Form1
Private Sub Button1_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim Frm2 As Form2
Dim Frm1Point As Point = New Point
Frm2 = New Form2
Frm1Point = Me.Location()
Frm.Show()
Frm2.Location = New Point(Frm1Point.X + 20, Frm1Point.Y + 20)

Form2はme.closeで閉じる

このようにすると、Form1を移動させてからButton2を押してもFrom2はちゃんとずれて
表示ます。また、一度From2を閉じてから再びButton2をしても大丈夫です。
しかし、これだと一瞬違う場所にでてから少しずれた場所に移動します。
これはShowが先にあるため当然だと思うのですが、そこでShowを最後にもってくると
くるとlocationが反映されずに違う場所に表示されてしまいます。
また、ShowDialogにすると順序に関係なくlocationが反映されません。
できればShowDialogでForm1が触れないようにしたいのですがどうすれば
よいのでしょうか。よろしくご教授願います
>658
Frm2.Location = New Point(Frm1Point.X + 20, Frm1Point.Y + 20)
Frm2.Show()

で普通にうまくいくと思うが。
Form2のStartPositionプロパティはちゃんとManualになってるかえ?
>>657

コマンドビルダでUpDateコマンドを生成してますか?
また対象のテーブルに主キーが無い場合は実行できなかったような記憶があります

環境が違うため正解となるかわかりませんが

Dim HogeCB As OleDb.OleDbCommandBuilder
HogeCB = New OleDb.OleDbCommandBuilder(MyDA)
HogeDA.Update(HogeDS,"テーブル名")

小生の場合DataSet内のDataTableを取得して
DataTabeのRowごとに更新かけています
誤:HogeCB = New OleDb.OleDbCommandBuilder(MyDA)
正:HogeCB = New OleDb.OleDbCommandBuilder(HogeDA)
教えてください。
コマンドプロンプトから
nslookup -type=mx hoge.jp
と打ち込むと、ドメイン名からメールサーバー名が確認できます。
vb.netで同じような機能のクラス、メソッドはないでしょうか?
663デフォルトの名無しさん:04/01/08 18:15
>>659
Form2のStartPositionプロパティがdefaultのままでした。
Manualにしたらうまくできました。

ありがとうございました。
664最凶VB厨房:04/01/08 19:29
>>662
ms-help://MS.VSCC/MS.MSDNVS.1041/cpref/html/frlrfSystemNetDnsClassTopic.htm
一応DNSクラスはあるね。でもできないくさい。あんましわからんが。
自前でSocketとか使ってやるべし。POP3プロトコルも専用クラスはなくて、
helo(だっけ?)とか送って通信しないと・・・だし。
っと適当なことを言ってみるテスト。
665最凶VB厨房:04/01/08 19:48
できるんかな?!わっかんねぇや
Windowsフォームでtextboxとbuttonを作成したら・・・
buttonはEnterKeyで実行できるのにtextboxはフォーカスが移動しない!
なんで??TabIndexで次のtextboxはあるのに。
Web仕様??誰か助けてー
やりたいことは2点です。
・二重起動の防止
・もともとあったウィンドウをアクティブにする

アプリの内容はフォームにボタンが一つあってクリックでHelloWorldを表示するだけのものです。
やりたいことの一連の処理はForm_Loadに書いています。

二重起動の防止は、1を使って実現できましたが、
その後もともとあったウィンドウをアクティブにする方法がわかりません。
2、3を参照したのですが、どうしてもわからないのでご教授願います。
2をそのままコピペしてフォームのtextだけ変更しても動きませんでした。

1.httphttp://dobon.net/vb/dotnet/process/checkprevinstance.html
2.http://www7.big.or.jp/~pinball/discus/vb/log/030731/48140.html
3.http://techtips.belution.com/ja/vc/0025/
>>660
OleAdapterのプロパティでUpdateCommandを書いてます。
主キーがうまくとれず、ウィザードで自動生成されなかったので
手動で書きました。DataGridで更新はできました。

1画面1レコードを各テキストボックスに表示して、それらを
更新できればいいのですが。

>小生の場合DataSet内のDataTableを取得して
>DataTabeのRowごとに更新かけています

すみません。具体的にどういったコードになるのでしょうか?
VBの経験はまったくなく(Javaのみ)、チュートリアルを
みながら作っているのです。

テキストボックスの値を更新しても肝心のデータセットが更新
されないため、updateコマンドを発行しても空振りしちゃうんです。

DataGridを別に表示しておいて、テキストボックスを更新した
あと、DataGridの任意の列にフォーカスをあわせるとDataGrid
の中の値も更新され、その状態でUpdateコマンドで更新までは
できました。DataGridを使わずにDatasetの値を更新できないで
しょうか?

669660:04/01/09 11:28
DataSetはAccessでいうMDBファイルのようなもので、DataTableはその内部のテーブル構造だと思って下ください

hogeDT = hogeDS("テーブル名")で更新したいテーブルを取得して
For Each vRow In hogeDT.Rows
  vRow.Items(0) = 更新値
Next
でDataSet内の仮想テーブルを更新しています
ここで更新されるのはあくまでもPC上のメモリのテーブルなので
この後にDataAdapter.Updateで実際の更新をかけます

これで更新がかからない場合はもしかしたらトランザクションの関係があるかもしれません
どこかのコードでロールバックしてないか確認してみてください

DataGridは使ったことが無いので良く解らないんですが
もしかしたら内部に更新用の処理を持ってるかも???
>666
コーディングしない限り、フォーカスが移動しないのは当然だろ。
つーか何が言いたいのかワケわからん。


>667
APIのFindWindowとSetForeGroundWindowを使えば実現できる。
「FindWindow SetForeGroundWindow VB」でググればサンプルはいくらでも出てくるよ。

しかし、少し調べてみただけだけど、これ以外の方法は見つからないなぁ。
APIは使いたくないから他になんかいい方法がないものかね?
>>670
ありがとうございます。
ほとんど>>667の2のコピペなんですが、Me.Textを変更したら動きました。
以下のコードをForm_Loadに書いてます。


' 二重起動チェック
If existPrevInstance() Then
Me.Text = "二重起動"
MessageBox.Show("このアプリケーションは既に起動しています。", "二重起動禁止")

' トップレベルのウィンドウハンドルを得る。
lngFirstTophWnd = FindWindow(vbNullString, pCstStrAppTitle)
If lngFirstTophWnd <> 0 Then
' 直前にアクティブなウィンドウハンドルを得る。
lngFirstPophWnd = GetLastActivePopup(lngFirstTophWnd)
' ウィンドウをアクティブにする。
lngResult = SetForegroundWindow(lngFirstPophWnd)
' 最小化されタスクバーに格納されてある場合があるので、ウィンドウを通常表示にさせる。
lngResult = ShowWindow(lngFirstTophWnd, SW_RESTORE)
End If

End
End If
VB.NET開発と微妙にズレるますが、ご教授お願いします。
つい先日買った本のサンプルコードが
ttp://www.vbvbvb.net/jp/guide/ip/code.xml
にあったんで、ダウンロードして実行してみたんですが
「SocketExceptionにハンドルされてない例外が、System.dllで発生しました」
ってエラーが出るんです。

友達に聞いたら、プログラムにエラーがあるか
レジストリが壊れてるかどっちかだと言うんですが、市販されてる本の
サンプルにそんなにエラーがあるとあんまり思えないんで…

他の人でもエラーが出るなら、プログラムの問題だと思って
新しい本でも買って勉強します。
エラーが出ないようなら、とりあえずOSの再インストールでもしてみたいと
思っているので、すいません、どなたか試してみてください。
古い話題になってしまうのですが、質問があります。
MP3がならなくて困ってます。過去スレも見ながらVBMP3.dllの付属の宣言モジュールを
書き換えているのですが、part1スレ460の
 1:VBmp3.basをVBmp3.VBとしてプロジェクトに追加
 2:type を Structure に置換
 3:As LongはAs Integer
 4:Byvalと書いてない関数の引数にByrefと書く
 5:下記のようにStringのサイズを宣言
 <StructLayout(LayoutKind.Sequential)> _
 Public Structure InputInfo
 <MarshalAs(UnmanagedType.ByValTStr, SizeConst := 128)> _
 Public szTrackName As String '曲名
のように書き換え、ファイルの文頭にImports System.Runtime.Interopservices
をつけたのですが、ファイルオープンに失敗してしまいます。
それと、basファイル冒頭のAttribute VB_Name = "VBMP3"の部分の扱いがわかりません。
初心者なしれませんが、上記以外の変更など教えていただきたいです。
初心者な質問かもしれませんが、、、、、、でした。
675デフォルトの名無しさん:04/01/10 00:39
TextBoxを動的にFormに追加する方法について教えてください
データベースより取得したRecordsetの件数分、Textboxを追加し、Recordsetのフィールドの値をテキストボックスに代入したいのです。
Recordsetを取得してからの処理を以下に掲載します。
Dim i As Integer = 0
Dim UDColl As New Collection
Dim oneTbxFdate As TextBox
Dim FormUriageData As New UriageData '(←Form名)

Do Until i = Koncnt '(←Recordsetの件数)
Dim TbxFdate As New TextBox
UDColl.Add(TbxFdate, i.ToString)
i += 1
Loop

rstkon.MoveFirst() '(rstkonはRecordset名)
For Each oneTbxFdate In UDColl
oneTbxFdate.Text = CStr(rstkon("Fdate").Value) '(フィールドの値)
oneTbxFdate.Location = New Point(10 + i * 5, 10 + i * 5)
FormUriageData.Controls.Add(oneTbxFdate)
rstkon.MoveNext()
Next
Debug.Write("UDColl.Count=" & UDColl.Count)
Debug.Write("Controls.Count" & FormUriageData.Controls.Count)
FormUriageData.ShowDialog()

実行するとFormが表示された際にTextboxがひとつしか表示されませんが、そのTextboxには正常な値が代入されています。
Collection.Count、Controls.CountともにRecordsetの数と一致しています。少なくともControl.Countが増加しているということは、FormにTextboxが
追加されているはずだと思うのですが、どこがおかしいのかわかりません。
間違いを指摘していただくか、ほかの方法をご教授ください。(そもそもCollectionを使わなくてもできるとか・・・)
よろしくお願いします。
676デフォルトの名無しさん:04/01/10 16:18
windowsアプリケーションを作りたいです。
VBとVB.net どちらを勉強するべきでしょうか?それとももっと他のものでしょうか。
>>675
こんな感じではダメなんですか?
Dim TbxFdate As TextBox
rstkon.MoveFirst()
Do Until i = Koncnt
  TbxFdate = New TextBox
  TbxFdate.Text = CStr(rstkon("Fdate").Value)
  TbxFdate.Location = New Point(10 + i * 5, 10 + i * 5)
  FormUriageData.Controls.Add(TbxFdate)
  i += 1
  rstkon.MoveNext()
Loop
678最凶VB厨房:04/01/10 18:21
>>672
めんどくさいので>>2のどぼんのページからいける
http://dobon.net/vb/dotnet/internet/
などのコードを試すべし。
>レジストリが壊れてるか
ってのはなんでそう考えるのか、俺には全くわからん。

>>673
めんどくさいので>>610をみとくべし。

>>676
とりあえずVB.NETでよし。
679デフォルトの名無しさん:04/01/10 18:57
>>677
ご提示いただいたコードでできました!!
最初にそのようなコードで試したのですが、その際もTextboxがひとつしか
追加されなかったので、先に私が掲示したようなややこしいというか無駄なコード
にしてしまったのです。最初に試したコードをはっきりと記憶してないのですが、
TextboxのNewをDo Loopの外側にしてたのか何かだと思います。
どうもありがとうございました。
680デフォルトの名無しさん:04/01/11 03:29
そもさん!

テキストボックスの表示フォントのサイズをpixel単位で指定したいのですが、
テキストボックスのプロパティ上では指定できるものの、ダイアログボックス
から変更処理をするとpoint単位になってしまいます。
変更ルーチン上で、textbox.font.unitプロパティを戻そうとしても、ReadOnly
とのことではじかれてしまうのですが、どうすれば良いでしょうか。

先生がた、ぜひご教授ください。
681デフォルトの名無しさん:04/01/11 14:27
>>680
桔梗屋かよ!(藁

フォントサイズをピクセルで指定ってなんか印刷プレビュー画面でも作らない限り
いらない気もするのですが、こんな感じかなあ。

1インチ = 72ポイント = 96ピクセル

∴1ピクセル = (72/96) ポイント

つまり例えば10ピクセル(に相当する?)のフォントを表示したいなら、
10 * (72/96) = 7.5 ポイントに設定すればいいんじゃないでしょうか。

ただし、厳密には1インチ = 96ピクセルってのはあくまでWinのデフォルト値に
過ぎず、たしか「画面のプロパティ」の設定で変わるからその点には
要注意かもしれません。

ていうかフォントサイズいろいろ変えたいのなら、フォームかピクチャーボックスに
描画したほうが良いような気が。
682680:04/01/11 14:54
>>681
ありがとうございます。

メルマガ用の入力システムを作ろうかと思っていじっているのですが、
固定フォント(MSゴシックとか)を指定していても表示上は半角/全角
のサイズ比率が1/2ではない(文字数ドット分ずれる)ようなので、
どうにかならないものかと…。
(テキストボックスでunitプロパティをpixelにしたらなんとなくOK
でしたが、どうも考え違いっぽい…)

なるほど、直接文字をレンダリングしてしまえば良いんですね。
ご教授ありがとうございました。

ぽくぽくぽくぽく…
mshtml の使い方きぼんぬ

Dim Document As mshtml.HTMLDocument

Document.titile = "タイトルです"
Document.body.innerHTML = "本文テスト <b>太字</b> <i>これは斜め</i>"

とやってみるんですけど "オブジェクト参照がオブジェクト インスタンスに設定されていません。"ってエラーになるです。
要は HTML の文字列を Document にセットしたいんですけど。
>>683
mshtml とやらの事はサッパリ分かりませんが、
要するにインスタンスを作成しろって事なのでは・・・?
→ Dim Document As New mshtml.HTMLDocument
685683:04/01/12 11:12
>>684
>Dim Document As New mshtml.HTMLDocument もだめですた。
さっきやっとMD5算出が・・・^^
報告(誰にだか....)
687デフォルトの名無しさん:04/01/13 02:33
6.0の頃のGETとOPENを.netではどう使ったらいいか分かりません。例えば、6.0だと
Open fil For Random Access Read As #1 Len=256  (filはstringで定義)
や、
Get #1,RNN,RdRdd  (RNNはLong ,RdRddはRddで定義)
のようなプログラムです。上はFileOpen,下はGET...END GET を用いればいいのかと思いましたが、うまくいきませんでした。
これじゃわかりにくいかもしれませんし、自分の使い方が間違ってるだけかもしれませんが、どちらのことでもほんの些細なことでもいいです。何かアドバイスを頂けませんか?
688デフォルトの名無しさん:04/01/13 03:33
>>687
Open fil For Random Access Read As #1 Len=256
Get #1,RNN,RdRdd
は、
Open fil For Random Access Read As #1 Len=256:Get #1,RNN,RdRdd
と同じ結果が得られる。
689デフォルトの名無しさん:04/01/13 11:20
Crystal Reports で質問があります。

テキストオブジェクトにデータが出力される際、
データがフィールド幅より長い場合にされる改行なのですが、
この改行が場合によって、下記のような妙な場所で改行されてしまいます。


<-------------------------フィールド幅--------------------------------->
C:\Documents and Settings\user\デスクトッ
プ\user1\myProgram\program1\xxxx\xxxxx\xxxxx\xxxx\


この改行位置はどうもならないんでしょうか?
できれば一行目はフィールド幅いっぱいいっぱいに表示させるなどしたいのですが
690デフォルトの名無しさん:04/01/13 16:36
>>689
英語と日本語でワードラップの仕様が異なるのが原因ぽい。
そういうときは、明示的に空白を入れるってのが解決策。
TextboxのReadOnlyについて
Trueにすると実行時のユーザーとの対話においては変更不可。
コード内でのテキストのプロパティの設定は可能とのことですが、
ForeColorも変更可能なのでしょうか?

TextBoxを動的にPanelに追加し、ReadOnlyをTrueにしているのですが
BackColorなど変更できるのに、ForeColorが黒のままで変更できません。

以下、実行コードの抜粋です
      Dim TbxKinSum As New TextBox
      TbxKinSum.Text = CStr(Format(CInt(KinSum), "#,##0"))
TbxKinSum.ForeColor = System.Drawing.Color.Blue
TbxKinSum.TextAlign = HorizontalAlignment.Right
TbxKinSum.Location = New Point(130, 10 + i * 20)
TbxKinSum.Width = 50
TbxKinSum.ReadOnly = True
DataPanel.Controls.Add(TbxKinSum)
よろしくお願いします。
691です。
BackColorと同時に設定した場合はForeColorの値が反映しました。
とりあえずはやりたいことができたのですが原因が知りたいです。
BacKColorのみ設定→○
ForeColorのみ設定→×
両方設定→○(両方反映)
ReadOnly=True既定のBacK,ForeColorに起因しているのでしょうか?
ご存知の方がいらっしゃいましたら教えてください。
>692
関係ないかと・・・

Private Sub CheckBox1_CheckedChanged...............
If CheckBox1.Checked = True Then
TextBox1.ReadOnly = True
Else
TextBox1.ReadOnly = False
End If
End Sub

Private Sub Form1_Click.............
TextBox1.BackColor = System.Drawing.Color.White
TextBox1.ForeColor = System.Drawing.Color.Black
End Sub

Private Sub Button1_Click.............
TextBox1.BackColor = System.Drawing.Color.Red
TextBox1.ForeColor = System.Drawing.Color.Blue
End Sub

Private Sub Button2_Click.............
TextBox1.ForeColor = System.Drawing.Color.Blue
End Sub

これで普通にできましたよ
>693
すみません。同じようにやってみたのですが、ひとつ確認させてください。
Button2をクリックした時の順序は
@CheckBox1をチェック(Backがグレーに変更される=ReadOnly)
AButton1をクリックしてBack,Foreが反映
BForm1をクリックしてBack,Foreを白,黒に変更
CButton2をクリック
でしょうか? これならできたのですが
@Cの順序でやるとReadOnlyの色のまま変わりませんでした。
お手数ですが、再度教えていただけますでしょうか。
よろしくお願いします。
>694
どうもそのようですm(_ _)m
Formクリックのイベントを間違って起こしてしまっていて
容易に"ForeColor"を変更できたようです。

解決ではないですが、一度でも"BackColor"を変更・明確に設定しておくと
ReadOnlyをTrueにしても「"ForeColor"のみ変更可 "BackColor"が変更されない(グレーにならない)」
ので、デザイン時にBackColorをWhiteなど・・・に設定すれば良いのでは?
696デフォルトの名無しさん:04/01/14 22:32
質問させてください。
VBAやVBScriptで使われるEval関数というものは、
VBには存在しないのでしょうか。

今使っているのはVB5なのですが、最新のVB.netには
実装されているのかと考え質問しました。

文字型の引数を評価して、ステートメントとして扱いたいのです。
たとえば[textbox1]というテキストボックスにxを変数とする
任意の関数を文字列として入力し、コードで

strFx=Me![textbox1]
for x= 0 to 100
i=eval(strFx)
 Me![textbox2] = i
(中略)
next x

のようにしたいのですが。
697デフォルトの名無しさん:04/01/14 23:02
質問です

ユーザー定義型の配列変数を初期化したいのですが、
udtDCInfo()=0
で修飾子不正のエラーが出てしまいました。
何のステートメントを使えばいいんでしょうか…
698697:04/01/14 23:03
板間違いました。取り下げます
>695
やはりそうでしたか。安心しました。
とりあえずはご提案されているような内容で対応しています。
でも・・気になりますよね。。
再試行していただきありがとうございました。
>696
ない。
されるのは次のリリースだってどこかで読んだ希ガス。
701デフォルトの名無しさん :04/01/15 11:48
はじめまして。
VB.NETのWEBサービスでasmxと同じフォルダにあるファイルを読み込みたいのですが、相対で指定すると取得できません。
これは絶対パスで指定するしかないのでしょうか?
702デフォルトの名無しさん:04/01/15 13:26
すみません。
DB接続なのですが、今までJavaだったのでJDBCドライバを
プロジェクトのライブラリに入れてあげれば
わざわざパソの環境にドライバをいれなくてもOKだったのです。
が、VBは違うのでしょうか?
VB.netとかでODBCドライバなどをパソ環境にわざわざ設定せず
DBに接続する方法はないのでしょうか?
よろしくお願いします。
703696:04/01/15 23:37
>>700
お答えいただきありがとうございました。
多少場違い化とも思いましたが、思い切って
質問してみました。本当に困っていたので、助かりました。
>702
.NET Framework さえ入れればADO.NETが使える。
ドライバを追加する必要がそもそもない……と思ってたけど、
漏れの認識は間違ってるかなぁ?
705デフォルトの名無しさん:04/01/16 09:11
>>704
MDAC が必要だから、ドライバがまったく不要、ってわけではないね。
706デフォルトの名無しさん:04/01/16 10:37
はじめまして。
Socket.Selectメソッドのような感じで、イベントの状態変化を
検知してくれるようなメソッドって無いですかね?

自分なりに調べてみましたが、無さ気なもんで質問させていただきました。
>>702
DSNの設定のことか?
MSSQLなら(たしか)ダイレクト接続できるがOracleなら無理
その他のDBはよくわからんが多分無理
708デフォルトの名無しさん:04/01/16 13:27
>>707
DSN レス接続ってしってる?
709デフォルトの名無しさん:04/01/16 15:46
DataGridの行ヘッダ
(一番左にある固定行。">"見たいな文字が入力セル位置にあわせて移動するところ)
に文字列を突っ込みたいんだけど、方法ないのかなぁ?

なけりゃ、代替案として、">"列に文字列を突っ込まなくてもいいんで、
一番左を1列だけ固定行にする方法、ないですか??
DataGridTextBoxColumnのインスタンス作って、
こやつのReadOnlyをTrueにするのは思いついたけど、今一。。。
>709
DataGridにそんな器用なことはできないと思うのです。
高性能なGrid製品を買うのが一番手っ取り早い。
711デフォルトの名無しさん:04/01/16 18:46
vb.NETで開発をしています
「C:\TEST\」にあるクリスタルレポートのファイル直接印刷したいのですが
そういうことは可能でしょうか?

>>708
半年ぐらい前にOracle9でDriverキーワード設定してやったら激しく安定しなかったもので
安定稼動してるようであればスマソ
7136.0→.net:04/01/17 15:47
6.0であったツール→プロシージャの追加というのは.netでは
どうすればいいのでしょうか?初心者質問で申し訳ないです。
714デフォルトの名無しさん:04/01/17 23:41
6.0でのショートカット Shift (+Ctrl) + F2 にあたる機能(定義へジャンプ/戻る)は
vb.netでの統合開発環境には存在しないんでしょうか。
(一応過去ログ検索かけてみましたがHitしませんでしたので。かぶってたらすいません)
>>713
自分でコーディング汁
716709:04/01/18 12:07
>>710

やっぱ、無理すかぁ。

あんなバカ高いGrid(FlexGridのことだ、ぐるぅぁ〜〜)
買えないもんなぁ。。。

Com使って、VB6時代のGrid、使おうか、思案中
717デフォルトの名無しさん:04/01/18 12:34
>>714
あるよ。キーボードスキームを Visual Basic 6.0 にしておけば、同じ
ショートカットが利用できる。Visual Studio だと、キーボードショートカット
が違う。
7186.0→.net:04/01/18 15:32
ないんですね。
>715そのようにします。
DBへの接続。

UDLだったっけ、
あれでいけるんじゃない?

とりあえず、テキストファイル作って、拡張子をUDLに変更してみてください。
720デフォルトの名無しさん:04/01/18 19:08
すみません。質問があります。ListViewなんですが、
まず、Form1に貼り付けたListView1に
データを表示させることはできました。

Public Class Form2
  Private Form2_Load(略)
    ListProc() 'Form2起動と同時にリスト表示
  End Sub

  Private sub ListProc()
    ListView1.Items.Add・・・・
  End Sub
End Class

次に、下のようにしたのですが
Module Module1
  Public gList As New ListView
  Public sub ListProc()
    gList.Items.Add・・・・
  End Sub
End Module
-----------------------------------------
Private sub Form1_Load(略)
  ListProc() 'Form1起動時にリストを作成
End Sub

Private sub Button_Click(略)
  Form2.ShowDialog()
End Sub
-----------------------------------------
Private sub Form2_Load(略)
  ListView1 = gList 'Form2起動時に、リストをコピー
End Sub
-----------------------------------------
リストが表示されてくれません。
コピー後、ListView1のプロパティとかをみると、
値は入っているようなのですが、表示がされません。
なぜなんでしょうか・・・
722デフォルトの名無しさん:04/01/18 19:38
>>721

それはリストビューをコピーしてるんじゃなくて、リストビューの参照を
突っ込んでるだけ。アイテムを追加しなきゃだめ。
723721:04/01/18 19:56
>>722
そ、そうなんですか・・・ 
すみません。レスありがとうございました。
724デフォルトの名無しさん:04/01/19 00:34
>>717
できました。ありがとうございました。
質問に挙げたショートカット以外の操作も6.0のものが使えていい感じ。
やっぱ慣れ親しんだ操作の方が扱いやすいし効率もいい。
でも、最初は戸惑ってでも新しい環境に慣れたほうがいいのかなぁ・・・
VBでさえも、解説書(サイト)の説明で眠くなる・・・
やっぱディベロッパには向いてないのかな・・・
C++もDelphiもかじったけど、すべでだめぽ・・・
726デフォルトの名無しさん:04/01/19 10:48
テキストボックスに入力されている文字が半角英数字のみか
どうかって、どうやって調べるんですか?
727デフォルトの名無しさん:04/01/19 11:39
.NETで
ShellExecute
って使えなくなったの???

728デフォルトの名無しさん:04/01/19 12:57
>>726
正規表現か、一文字ずつ確認

>>727
使えるよ。
動的に追加したコントロール配列にイベントを設定する方法を教えてください
追加したコントロールすべて共通でも、個々に設定でもどちらでもよいのですが・・

具体的には
Dim TxtBox() As TextBox = New TextBox(19) {} '20個のTextBoxを作成
Do-Loopの中でTextBoxのプロパティを設定して
Me.Controls.Add(TxtBox(i)) 'MeはメインのForm
というようにしています。

コントロール一つのみの場合は
Friend WithEvents txtbox As TextBox を宣言して
Private Sub txtbox(......)Handles txtbox.イベント
ですが、配列の場合はどのようにすればよいのでしょうか?
よろしくお願いします。
730デフォルトの名無しさん:04/01/19 23:23
Pictureboxに写真をプログラムに載せたいのですがどう書いたらいいのでしょう?
写真はVBと同じフォルダに入れているのですが、指定の仕方がわからないです。
初心者です、よろしくお願いします。
>729
AddHandler TxtBox(i).Click, AddressOf Me.TxtBox_Click
でTxtBox_Clickのコードを実行することができました。
お騒がせしました。
732デフォルトの名無しさん:04/01/19 23:36
>>730
loadPicture
733デフォルトの名無しさん:04/01/19 23:59
>>732
すいませんが、一文教えて頂けたら・・。meとかiとかdimとかもはっきりわからなくて・・
>>733
ヘルプで検索すれば、サンプルソースが載ってる。
735デフォルトの名無しさん:04/01/20 15:57
質問です。

VB6.0だと、プロジェクトエクスプローラのところで、
右クリック→追加→既存のBasファイル 等で
共通basファイルを参照で追加できますよね。

でも.NETでこれと同じようにやると、プロジェクトフォルダの中に
追加したファイルそのものが新しく出来てしまい、共通化できません。
先のVB6.0と同じことをVB.NETではできないのでしょうか。
736x:04/01/20 16:52
>>735
ソリューションエクスプローラでプロジェクトを選択し、
ソリューションエクスプローラのツールバーの
「すべてのファイルを表示」を押す。
で、淡色表示されたファイルを右クリックし、
「プロジェクトに含める」
737.net買いました。:04/01/20 17:52
ということで取り合えずなんか作ろうと思って三次の正方行列の
逆行列を求めるプログラムを作っていたのですが結構多くの手順が
必要になりそうなんです。わたしがやっているのは線形代数で習った
(A|E)を簡約化していくとAの部分が単位行列になったときにEの部分に
Aの逆行列が現れるという方法なんですけど1つの手順ごとに新しい
行列を用意してやっています。
何か無駄が多いように感じているのですがこれで正解?ほかにスマートな
方法はありますか?プログラム初めてまだ2日の超初心者なんですが
よろしくお願いします。長々と失礼しました。
>>735
参照取り込みができないってこと?
それなら、ファイルを選択後、「開く」ボタンで確定するんじゃなくて、
その横の「▼」ボタンを押し、「リンクファイル」を選択すればOK。
739デフォルトの名無しさん:04/01/20 19:16
Visual Basic .NET Resource Kit
ってのがあるらしいけど、これってどうよ

http://msdn.microsoft.com/vbasic/vbrkit/
740デフォルトの名無しさん:04/01/20 19:53
Cだと、
 /* コメント1
 コメント2 */
なんて、あったけど、
VBって複数行にコメント打つ場合
どうするんだYO!




’おねがい教えてください。
741735:04/01/20 20:09
>>736
>>738
レスありがとうございます。さっそく試してみます
742デフォルトの名無しさん:04/01/20 21:41
>>737
ここは房の集まる場所だから大学レベルの数学は・・・
743デフォルトの名無しさん:04/01/20 21:53
昨日も似たような事質問したんですが、背景に使う写真を使うのに、
「挿入」ってやってできますか?ヘルプにそのような事が書いてあった
んですが、挿入ボタンが見当たらなくて読み違いかと思ってるんですが・・
744.net買いました。:04/01/20 23:00
>742
そうですか‥
誰かわかる人いたら答えてね!
またあとで覗きに来ます。
745デフォルトの名無しさん:04/01/21 00:51
>>742
逆にそんな方法で逆行列を求めるコードが書けるってのはある意味すごいな。
もっと機械的に求める方法って線型代数の本に書いてあると思うんだけど。。?
746デフォルトの名無しさん:04/01/21 02:10
>>745
>>737がいっているのが線形代数の本には書いてあったと思うが?
(A|E)→簡約化→(E|A^-1)というのじゃなくて?

>>737
一般的なやつを紙の上で計算して公式みたいにしちゃったら?
ベクターエンジン積んでるコンピュータってどういうプログラム書くんだろう・・・
教えてエロイ人
>739
最初のほうしか見てないけど、
結構基本的なところから始めてるね。初心者にも優しい。
色んな情報があるみたいだし、サンプルもある。
いいんじゃねぇの?

 英 語 が 苦 な く 読 め る な ら な 。

日本語版は出ないんだろーなぁ……
749745:04/01/21 19:09
>>746
だから間違ってる(線型代数の本にそんなこと書いてない)なんて言ってないよ。
もっと機械的に解ける、つまりコードにしやすい別の方法があるでしょ、って話。
それにその方法だと誤差の問題もあるんじゃない?

早い話コーディングの問題というより数学の問題じゃないのかなってこと。
750デフォルトの名無しさん:04/01/22 11:32
DatSel()関数でマーシャリングのエラーになってしまいます。どこが悪いかご教授願います。

Public Structure S_DAT
<VBFixedArray(9)> Public Sdate() As Byte
Public Sub Initialize()
ReDim Sdate(9)
End Sub
End Structure

Public Declare Function DatSel Lib "MORE.dll" ( _
ByVal nm As String, _
ByVal fl As Integer, _
ByRef Sdate() As S_DAT _
) As Integer

ret = DatSel(nm, fl, SdateDat)

************** 例外テキスト **************
System.TypeLoadException: 型 SDATE_DAT のフィールド Sdate をマーシャリングできません : この型は構造体フィールドとして、マーシャリングできません。
at MORE.modMORESTORE.DatSel(String& nm, Int32 fl, SDATE_DAT[]& Sdate)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
751デフォルトの名無しさん:04/01/22 16:11
ちょっとお邪魔します、、、

配布先PCでクリスタルレポートを開くと
[Cannot Find KeycodeV2.dll, or invalid keycode]というエラーが出ます。

regwiz.msm に License Key の設定もしてあります。

設定するキーはメールで送られてきた形をそのままコピペすればよいのですよね?
カンマでくくらなければならないとか、そういう特別なことはするのでしょうか?

初歩的な質問かもしれませんが、行き詰まっています(涙

ちなみにCR9,VB.net2003,Win2000の環境です。
どなたかわかりましたら助けてください。よろしくお願いします。
>750
過去スレに
構造体の中に構造体の配列があるとダメ
という情報があったぞ。それとは違うかね?

初代の最後とPart2の最初にあるはず。
確認してみては?
リレーションを定義したDataViewで、子テーブルの条件にしたがってフィルターをかけたいのですが、
DataViewのRowFilterの書き方がわかりません

つーか子テーブルの値を参照する方法もわかりません
グーグル検索でもはっきりしたやり方は探せませんでした
どなたか助けてください・・・
ずばり質問します。

Visual Basic時代のテクニックややり方や、プロジェクトファイルは
活用することが出来ますか?
>>754
出来るものと出来ないものがある。
>753
どんなフィルタをかけたいのか書かないと答えようがない。
とりあえずここ見て何とかしる。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdatadataviewclassrowfiltertopic.asp

>754
そんなくそ曖昧な質問でズバリもへったくれもないと思うのです。
と言ってみるてすとー。
757753:04/01/23 13:42
>>756
かけたいフィルタの例をあげます

親テーブル=Customers
列=CustomersID

子テーブル=Orders
列=CustomersID
列=Order

でCustomersIDで、一対多のリレーションを設定しているとします

この状態でOrderの値がhogeであるというフィルタをかけたいのです

>ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdatadataviewclassrowfiltertopic.asp

一応ここはすでに目を通しています
DataColumn.Expressionを使えばいいんでしょうか?
申し訳ない。質問させて下さい。

PL/SQLのストアドDBにアクセスし、複数レコードを一度に取得したいと思います。
その際VB側ではどのようにコールすれば宜しいか
ご存知の方おられたら、回答していただけますでしょうか?
がいしゅつだったらすみません。
>>758
Oracleのストアドを呼び出して複数のリザルトセットを取得ってことでスカイ?
For i=1 to 5
Dim sr As StreamReader = New StreamReader(Dfile2)
Dim line,lineAll As String

Next

DimがFor Nextの中にあるのに
変数srはすでに宣言されています
というエラーがでないでちゃんと動くのはなぜですか?
>>760
明らかに解ってて聞いてるでしょ。
そんなにしてまで「誰かに相手にされたい自分」に悲しくならないの?
762760:04/01/25 14:18
>>761
VB.NETの仕様だから、だと思う
http://www.vector.co.jp/soft/win95/home/se110749.html
こういうソフトを作りたいのですが
設定の保存はどうやっているのでしょうか?
SaveSetting等でレジストリに保存する
>757
RowFilter 値を作成するには、列名の後に演算子とフィルタ処理をする値を付けて指定します。
値は引用符で囲む必要があります。

って書いてあるじゃん。
つーか使用例にそのままのが載ってるじゃないか。

>DataColumn.Expression
こっちでも出来るけど、列名指定はいらない。当然だけどね。
理由がわからないようならDataTableとDataViewについて理解を深めたほうがいいと思われ。
766753:04/01/26 11:19
>>765
その検索する列名に子テーブルの列を指定する方法がわからないのです

DataView.RowFilte="Order = 'hoge'"

では、列名[Order]が見つかりません。 とエラーが出ます
>766
指定方法はそれで間違ってないはず。
RowFilter以外の場所が悪いんだろ。

DataColumnを調べてあなたがOrder列だと思ってる列の名前を確認すれ。
768sage:04/01/27 00:16
動的に作成したDataGridに
サブウウィンドウから値を渡して行を増やしたいのですが
そういうことは可能なんでしょうか?
配列の配列を使用して動的にLabelを作成したのですが、
LabelがClickされた際のイベントをすべて共通のイベントで処理したいのです。
@AddHandlerおよびAddressOfの指定方法
Aクリックされたラベルがどの配列に格納されているのかを取得する方法
 (共通のイベントの中で条件判断を行うため)
例えば、
Label(0)=Label0(3)、Label(1)=Label1(5)、Label(2)=Label2(7)
があり、Label(1)(2)のラベルがクリックされた際に
Label(X)(Y)のXにあたる値を取得したいのです。

各配列ごとの@はわかるので、
現在は各配列を追加する際にLabel.NameにXにあたる値を含めて無理やり
取得しているという非常に情けない状態で動いてはいるのですが・・
よろしくお願いします。
770753:04/01/27 08:45
>>767
レスありがとうございました

もう少し勉強してから出直します
DataColumについてあんまり理解してないんだろうと思います
771inv:04/01/27 18:12
以前に三次の逆行列のプログラムについて質問したものです。
がんばって作ったのですが答えが合いません。間違いがあったら
指摘してください。
For k = 1 To 3
P = A(k, k)
For i = k To 6
A(k, i) = A(k, i) / P
Next i
For i = 1 To 3
If i <> k Then
For j = k To 6
A(i, j) = A(i, j) - x * A(k, j)
Next j
End If
Next i
Next k
>768
DataGridがPrivateならフツーに出来ると思うけど?

>769
Label(1)(2)ってのは何?
よくわかんないけど、Label作成時に配列の位置をTagプロパティに入れるとか。
クリックした場所はイベントのsender引数に入る(と思う)から、
そのオブジェクトが持ってるTagプロパティで条件分岐。
検討外れだったらスマソ。
773山羊:04/01/28 12:05
携帯から失礼します。
VB.netとCで作るDLL間で構造体の配列の受け渡しをしたいのですが上手くできません。
どうすれば実現出来るか知っている方いますか?

VB6ではAs Anyを使ってたのですがVB.netへ移植したら出来なくなってお手上げ状態なんです
774崖っぷち:04/01/28 13:14
誰か助けてください!
大学でレポートが出されまして、これが明日までに出来ないと留年してしまいます!
どなたか宜しくお願いします・・・・(T_T)

配列Aのデータをソートせよ。ただしAの入力は Void getdata(int *n,double *a)
を呼び出せば入力できるものとする。

っていうものです。このままでは本当に留年が確定してしまうのでどなたか助けてください・・・・・
775デフォルトの名無しさん:04/01/28 14:10
>>773
Marshal すれば、Any でも渡せる。

>>774
VB じゃポインタは使えません。さようなら。
776デフォルトの名無しさん:04/01/28 14:12
>>775
> VB じゃポインタは使えません。
ネタ?
ネタにしてもちょっと寒いな
778デフォルトの名無しさん:04/01/28 18:53
>>775
>Marshal すれば、Any でも渡せる。

お前嘘つきだな
Directory クラスは、ディレクトリのコピー、移動、名前変更、作成、削除などの一般的な操作に使用します。 Directory クラスは、ディレクトリに対する作成、アクセス、および書き込み操作についての DateTime 情報の取得および設定にも使用できます。

Directory のメソッドはすべて静的であるため、1 つの操作を実行するだけであれば、 File のメソッドを使用する方が、対応する DirectoryInfo のインスタンス メソッドを使用するよりも効率的な場合があります。
----------------------------------
この文に出てくる静的とはなんですか?
780最凶VB厨房:04/01/28 19:22
dim di as new DirectoryInfo("ファイル名とか")'インスタンスを作る。
di.メソッド 'インスタンス.メソッド がインスタンスメソッド

Directory.メソッド 'クラス名.メソッド が静的メソッド(インスタンスを作らない)

の違い。
質問です
リターンキーを押した場合
とにかく次のインデックスへフォーカスをいどうするということは出来ますか?
そのときにより使用できるコントロールが異なるので
それぞれ記述するとものすごくめんどくさいんです
>>780
ありがとうございます。
>>781
SelectNextControlメソッドでいけると思いますよ
784デフォルトの名無しさん:04/01/29 07:52
>>778

UnmanagedType.AsAny って知ってる?

785773:04/01/29 10:40
>>778
それを使ってアンマネージDDLと構造体配列の値の受け渡しができますか?

<VB.net>
Public Structure DAT
 <VBFixedString(10), MarshalAs(UnmanagedType.ByValTStr, SizeConst:=10)> Public ch() As String
 Public Sub Initialize()
  ReDim ch(9)
 End Sub
End Structure
Public Declare Function GetData Lib "AAA.dll" ( _
ByRef Dat As DAT _
) As Integer

Dim Dat As DAT
Dat.Initialize()
ret = GetData(Dat)
For i = 0 To 9
Msgbox(Dat.ch(i))
Next

<C>
typedef struct{
 char chr[10];
} DAT;
extern int WINAPI GetData(char *buf ) {
 DAT *ptr = (DAT*)buf
 for (i=0;i<10;i++) {
  memcpy(ptr + i, 編集データ, sizeof(DAT));
 }
}
786773:04/01/29 10:42
>>778>>784の間違いでした

>>784さんお願いします
787やまごろ:04/01/29 12:38
こんにちは。VB.NET 2003初心者です。
構造体のメンバのサイズをLenで調べようとしてますが、
0が返ってきて困ってます。以下がコードです。
型宣言は、
 Public Structure strMsgStruct
  <VBFixedStringAttribute(10)> Public member1 As String
  <VBFixedStringAttribute(10)> Public member2 As String
 End Structure
で、実体宣言は、
 Dim msgStruct As strMsgStruct
で、サイズ取得部分は、
 Len(msgStruct.member1)
です。
ちなみに、そのメンバに、何か値を代入すれば、その長さがlenで返ってくるのですが・・・。
(値を代入するまで、そのメンバがNothingになってるのがまずいんだと思う。)
もしかするとLen以外に何か在るのかな?
788やまごろ:04/01/29 13:21
そもそも固定長になってないことが判明しました。
よく見たら、<VBFixedStringAttribute(10)>って、ファイルI/O用途以外は関係無いとヘルプに在りました。
ファイルI/Oの用途以外で固定長文字列の構造って定義出来ないんですかね・・・?
メッセージ電文とかでは必須ですよね・・・?
789773:04/01/29 15:01
>>788
Public Structure strMsgStruct
  <VBFixedString(10), MarshalAs(UnmanagedType.ByValTStr, SizeConst:=10)> Public member1 As String
  <VBFixedString(10), MarshalAs(UnmanagedType.ByValTStr, SizeConst:=10)> Public member2 As String
End Structure
Dim msgStruct As strMsgStruct

msgStruct.member1.Lengthで取れないですかね?
790やまごろ:04/01/29 15:30
「型'MarshalAs'が定義されていません。」とコンパイルエラーが出ます。
791773:04/01/29 15:44
System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValTStr,〜

もしくは、頭に
Imports System.Runtime.InteropServices を追加
792デフォルトの名無しさん:04/01/30 00:28
WEBアプリを作成しています。
DataGridの一部のセルの色を変えたいのですが方法がよくわかりません。
調べてみるとオーバーライドしたクラスを作る、みたいなことが
あるのですが。。。
直接プロパティをコードからいじれないのでしょうか?
リストをループ表示させているときにある条件にマッチしたら色を変えたいです。

あとDataGridの特定セルのコントロールを非表示にしたりできるでしょうか?
文字列:文字列:文字列:ボタン:ボタン:ボタン
という配置でコントロールブレイクを使用してループ表示。
ブレイクしたときにその1行のボタンを非表示にしたいのです。。

どなたか、お願いします。
793やまごろ:04/01/30 09:09
>>791
度々すんません。変数を参照した時点で、
'System.NullReferenceException'のハンドルされていない例外がxxxx.exe
で発生しました。
追加情報:オブジェクト参照がオブジェクトインスタンスに設定されていません。
と出ます・・・。
>>792
データリピータコントロールを使え
795773:04/01/30 09:52
>>793
>変数を参照した時点で、
その構造体はVB.net内部でのみ使ってるのかね?ひょっとして参照する前にインターフェースに使用してる?
796773:04/01/30 10:13
>>793
仕様がいまいち分からんのと今手元に.net無いからわからんけど
↓でもだめかい?

Public Structure strMsgStruct
<VBFixedArray(10), MarshalAs(UnmanagedType.ByValArray, SizeConst:=10)> Public member1 () As Byte
<VBFixedArray(10), MarshalAs(UnmanagedType.ByValArray, SizeConst:=10)> Public member2 () As Byte
Public Sub Initialize()
ReDim member1(9)
ReDim member2(9)
End Sub
End Structure

Dim msgStruct As strMsgStruct
Dim Strmember1 As String
'初期化
msgStruct.Initialize()
For i = 0 To 9
msgStruct.member1(i) = 32
msgStruct.member2(i) = 32
Next


此処になんらかの処理があるんだろ?


Strmember1 = Trim(System.Text.Encoding.ASCII.GetString(msgStruct.member1))
Strmember1.lengthで取れると思うがだめかい?
797デフォルトの名無しさん:04/01/30 10:33
誰か構造体の配列データをDLLから受け取る方法教えてください。
できればサンプルがあればいいのですが
798x:04/01/30 11:34
>>797
同じようなことをやってるWin32APIのインポート例がどっかにあるだろ。
799デフォルトの名無しさん:04/01/30 12:09
>>798
う〜ん...VB.netの情報って少ないんですよね〜
探してあれば苦労しないのですが...
アンマネージDLLからの構造体配列データの受けは無いんですよ。
800デフォルトの名無しさん:04/01/30 12:51
すみませんが教えて下さい。Excelファイルをデータテーブルに読み込みたいのですが
MyConnection = New System.Data.OleDb.OleDbConnection( _
"provider=Microsoft.Jet.OLEDB.4.0; " & _
"data source=" & FileName & "; " & _
"Extended Properties=Excel 8.0;")
Dim MyCommand As System.Data.OleDb.OleDbCommand
Dim MyAdapt As New System.Data.OleDb.OleDbDataAdapter
DTable = New System.Data.DataTable
' Select the data from Sheet1 of the workbook.
MyCommand = New System.Data.OleDb.OleDbCommand( _
"select * from " & name, MyConnection)
MyAdapt.SelectCommand = MyCommand
MyAdapt.Fill(DTable)
とやって 文字列は読込むのですが 数値などが入ったところは全てnullになって
しまいます。
全てを文字列として読込むには どこに何を設定したらよいのでしょうか?
801デフォルトの名無しさん:04/01/30 17:46
データグリッドで、エンターキーで右移動したいのですが、
http://dobon.net/vb/dotnet/datagrid/cellkeypress.html
での上記構文で入力文字の取得はできたのですが「キー」(エンター、シフト等)
の取得ができません。もしご存知の方があればよろしくおねがいします。
On Error Resume Nextでエラーを流してしまっているときに
ふたたびエラーが起こるようにしたい場合は
On Error GoTo 0

On Error GoTo -1
の2行を書かなければなりませんか?
それとも
On Error GoTo 0
の1行だけ書けばOn Error Resume Nextを書く前の状態にもどれますか?
803デフォルトの名無しさん:04/01/30 20:03
VBでbtn1, btn2, btn3...........btn100と、ボタンを100こ作りたいとすると、
loopでまわして、書けるのかなと思ったのですが、配列にしても
どうやってもループで100こつくることができません・・・どうやったら
いいのでしょうか?
>>803
こんな感じ。
Dim btn(99) As Button
Dim k As Integer = 0

Do Until k = 100
btn(k) = New Button
btn(k).Location = New System.Drawing.Point((k Mod 10) * 25, (k \ 10) * 25)
btn(k).Size = New System.Drawing.Size(25, 25)
btn(k).Text = CStr(k)
Me.Controls.Add(btn(k))
k += 1
Loop
805デフォルトの名無しさん:04/01/31 16:29
マウスカーソルの位置をピクチャボックスの左上端を
原点にして取得するにはどうすればいいのでしょうか
>>805
mouse_moveイベント等で
e.X e.Y
で取れない?
807デフォルトの名無しさん:04/02/01 04:57
>>805
少しはマニュアルを読めよ。
808デフォルトの名無しさん:04/02/01 07:43
VB7は、いつ発売されるの。アメリカではもう発売されてるの。
809デフォルトの名無しさん:04/02/01 07:56
class オブジェクトでデータベースの関数を1本化したやついるか。
 
810デフォルトの名無しさん:04/02/02 01:07
>806
thx
811デフォルトの名無しさん:04/02/02 01:15
axWebBrowserコントロールでIEのお気に入りを
表示するにはどうすればいいんでしょうか
現行のVisualStudioはVS8だな
813デフォルトの名無しさん:04/02/02 09:24
○ 今だに、VB6.0を使用しているが、VB.netへの移行はむずかしいのか。
○ 金融、保険、その他のシステムの開発は VB.netに移行しているのか。
 だれか教えて。
814デフォルトの名無しさん:04/02/02 10:08
教えて下さい。
Socketサーバを開発しているのですが、クライアントの接続要求毎に
通信を処理するThreadを立ち上げ、処理終了後にThreadを終わらせる
ようにしたいのですが、Threadの管理はどのようにすればよいのでしょうか?
thrThreadを配列で持てばいいのか・・・?
  ↓
thrThread = New System.Threading.Thread(AddressOf ReceiveData)
815デフォルトの名無しさん:04/02/02 11:05
http://www.vector.co.jp/soft/win95/home/se110749.html
↑のソフトみたいな別のフォームの入力内容の設定を反映する
方法ってどうすればいいのですか?
おねがいします。
>>813
ソースの変換という意味での移行は不可能に近い(リソースの移行は努力次第)
金融(銀行)ではユニシスが.netのシステムを受注してる
817デフォルトの名無しさん:04/02/02 22:42
>>816
ありがとう
818最凶VB厨房:04/02/02 23:49
819最凶VB厨房:04/02/03 00:31
820やまごろ:04/02/04 13:00
>>796
すんません。仕様を変更して、固定長でなく、CSVにしてしまいました。
なるほど。.NETで固定長を使おうとすると、そんな感じになるんですか。
Cで使うヘッダファイルみたいに、実体が無くても簡単に構造体のメンバの
サイズは取れないんですね〜。
そうすると、固定長の扱いはVB6の方が楽ですね。
.NETのドキュメントにある、「.NETからは固定長を使うな」
という旨の一節の意味が理解出来た方、いらっしゃいますか・・・?
821どっどくり:04/02/04 13:55
.netで開発している物です。
クリレポのデザイン時に下の用紙(白色)が
右に広がらないんですが、無理なんですか?
822デフォルトの名無しさん:04/02/04 14:52
簡単なランチャーを作ってるんですけど
アイコンをドロップして登録するタイプにしようと思ってるんです
でもそのアイコンの取得方法がわかりません
つД`)どなたかわかる方いませんか
823デフォルトの名無しさん:04/02/04 21:54
質問というか、暇な方がいたらちょっと確認していただけると助かるのですが、
なんかNumericUpDownってツールチップ設定しても表示されないことないですか?
私の環境だけ?
824デフォルトの名無しさん:04/02/05 11:02
>>821

用紙の余白設定を変えると勝手に広まったり縮まったりするみたい。
825デフォルトの名無しさん:04/02/05 15:22
正規表現について教えてクンです

\COMMANDNAME FILENAME XXXX XXXXX XXXXX ...

というコマンドを正規表現で分解したいのですが、どう書いたらいいのでしょうか?

因みにグループっていうので値も取得しようとしております。

<C#だけど正規表現は同じなので気にしないで>

Regex r = new Regex(@"(?<commandname>\w+)\s+(?<filename>)\s", RegexOptions.Compiled);

"\COMMANDNAME" と "FILENAME"の部分だけ取得したいのですが
XXXXXの部分は捨てたいです

どしたらいいの??
826デフォルトの名無しさん:04/02/05 19:16
VB.Netで2次元配列をパラメータとして渡す記述がわかりません。教えていただきたいです。
>>823
あ、ホントだ。 ShowAlwaysでもダメぽ。
>>826
Private Sub Monar(ByRef Teston( , ) As String)
とかじゃダメなの?

配列ではなく、時にはコレクションも使うように・・・と一応言ってみた。
コントロールが重なる場合の表示優先順位について。
優先順位を設定するプロパティはあるのでしょうか。
それらしいものが見当たらなかったのですが・・・

デザインでは後から作成したコントロールが手前に表示されますが、
実行時に動的にコントロールを追加した場合、逆に先に作成(New)した方が手前に表示されます。

よろしくご教授願います。
830デフォルトの名無しさん:04/02/07 00:39
>>829
まずはコントロールを選択してから右クリック汁!
そして出てきたポップアップメニューの真中あたりの項目を凝視すべし。
それでも分からなかったらプログラミングは諦めたほうが吉かと。
>>829
親コンポーネントにAddされた順も影響しているようですね。
とりあえずはBringToFront、SendToBackというメソッドで制御できるようです。
832初歩的ですが・・・:04/02/07 18:46
ウインドウのサイズに合わせてその中身もリサイズするにはどうすればいいでしょうか?
AnchorとDockを調べる
>831・830
BringToFront、SendToBackでできました。
どうやら、Newした順は無関係でAddされた順に影響しているようでした。
デザイナで変更した場合もAddの順番が変わっていました、
Newに捉われていてAddの順番に気づきませんでした。

どうもありがとうございます。
MDIのブラウザを作っていてます。
ここで困ったことがあるんですが、ページは表示できるのに、
ページの検索ボタンやリンクをクリックするとIEでそのページが開いてしまいます。
MDIの中に新しくページを開いたり、その開いてあるページで指定した先を開くにはどうすればいいんですか?

それと、ウェブページを開くのはScriptBridgeを使っていますが、これを使っている限りでは解決しないんですか?
836霧隠lo:04/02/08 11:34
メモリがちゃんと開放されたかどうか、調べる方法はないんでしょうか。
837霧隠lo:04/02/08 12:22
>>835
NewWindow2ってイベントがIEコンポーネントにあるから、その引数eをe.Cancel=trueにする。
>>835
そのイベント無いんですが・・・
WindowsXPでVB.netを
「ひと目でわかる Microsoft Visual Basic.NET 入門」
っていう本読みながら学ぼうと思うんだが、
肝心のVBがパソコンに全く入っていない!
どっかでダウンロードできない?

>>839
VB.net(Visual Basic.NET)は、有料です。
最新版の2003のVB.netだけ(単体)なら15000円くらいあれば買えます。(問題は無い範囲での制限はちょっとある)
学生の場合、単体で7000円くらいで売ってます。

ダウンロードはMicrosoftのMSDNからダウンロードできますが、契約(有料)しなければなりません。

お金払わずにソフトを作りたいなら、Borland社がいくつかの制限を含んだ(ex.シェアウェア配布不可)
などをつけた物を配布しています(要情報登録)。
ただし、これはDelphiやBorland仕様?のC#等、Visual Basicとは違います。

このほかに無料のソフト開発環境はJavaが有名です。
841839:04/02/08 22:36
>>840レスサンクス。確認してみるよ。
842839:04/02/08 23:10
お店で買おうと思ったんだけど、
何で学生は安くなるの?
843デフォルトの名無しさん:04/02/08 23:49
すみません、VisualBasic.NETなんですが、
テキストボックスの高さだけ、変えることができません。。
なぜでしょうか?教えてください・・(_ _(--;(_ _(--; ペコペコ
844デフォルトの名無しさん:04/02/09 00:00
>>843
なぜってそういう「仕様」っすよ。
でもMultiLine(だったっけ?微妙に違うかも)ってプロパティTrueにすれば
高さ自由に変えられるんじゃないかな。
まあ、(必要なら)Enter押された時の処理書いてやらないとならなくなるけどね。
845デフォルトの名無しさん:04/02/09 00:00
親画面(form A)にはコンボボックスとボタンAがあります。
子画面(form B)にはTextBoxとボタンBがあります。

ボタンAを押すと子画面を表示し、
TextBoxに文字列を入力後、ボタンBを押すと、子画面を閉じ、親画面のコンボボックスにTextBoxに入力された文字列を追加します。

こんなものを作りたいんですが、うまくいかないので教えてください。
お願いします。
846デフォルトの名無しさん:04/02/09 00:04
>>845
もうずっと激しく既出杉。
OO勉強する気がないならNetでそういう処理は諦めましょう。
847843:04/02/09 00:04
>>844
ありがとうございます!!すみません、、こんなくだらないことで。。
でも、なんで、テキストボックスだけこんな仕様なんですか??
visualbasic6では、普通に変えれたのに・・・
848デフォルトの名無しさん:04/02/09 00:08
>もうずっと激しく既出杉。

そうだろうとは思っていたんですが、時間がないものであせって聞いてみました。
849デフォルトの名無しさん:04/02/09 00:17
>>847
入力した文字に対してテキストボックスが高すぎたり低すぎたりしたら
カッコ悪いからでしょう。(.NETだと、TextBoxの高さはフォントによって決まるみたい)
まあ、余計なお世話な気もしますけど。
>>842
いわゆる学割ってやつですよ。
VB.netからCでつくったDLLに配列要素を参照渡したいのですが上手くいきません。
"オブジェクト参照がオブジェクト インスタンスに設定されていません。"
というエラーが出ます。

C側の宣言は、
_declspec(dllexport) int _stdcall function1(int *a);
で、a[20]の配列に値を入れてVB側で読み出したり、逆に値を渡したりしたいのですが・・・。

VB側では、標準モジュールに
Public a(50) As Integer

Public Declare Function funtion1 Lib "my.dll" (ByRef a() As Integer) As Integer
Call function(a)
とやってみたり、
Public Declare Function funtion1 Lib "my.dll" (ByRef a As Integer) As Integer
Call function1(a(0))
とやってみたりしたのですが実行すると上記のエラーでとまってしまいます。た・す・け・て
852851:04/02/09 04:32
失礼しました。
自分の頭に問題があったことが分かったので、自己解決できました。
誰も突っ込まないのか・・・。

>>843
AutoSize = False にするだけでいい。
Multiline は変える必要なし。
854デフォルトの名無しさん:04/02/09 11:26
くだらない質問ですが、聞いてください。
 私はずーと、VBを使用して社内アプリを開発してます。これからも
 そのつもりです。皆さんは、これからもVBで開発していくつもりですか?
 それとも、他の言語への移行を考えていますか。
聞いた
856デフォルトの名無しさん:04/02/09 11:33
聞いてもらった。
857霧隠lo:04/02/09 11:38
VB2003の体験版付初心者用解説本が本屋に会ったよ。おととといぐらい。

>>835
あるとおもうよ。IEのコントロールに。
他の言語に移行する理由がない。
他の言語よく知らないので理由が思いつかない。
VB.NETでやりたいことがすべてできるのに他の言語に手を出す必要はない。
>>854
VB6からVB.netへ移行するんならC#へ行った方がいいと思ふ
理由かいてなかた・・・・絶対て理由はないけど、
ただ、C++やってた人はC#へ移行するでしょう。C/C++をやってる人はVBをやってた人よりも多い。多分←
故に、C#利用者は今後増える。社内アプリということはいずれ引継ぎがあるだろうし、後輩の指導もしなきゃならないだろうし、
そんなときC#の方がいいでしょ。VBもC#も難しさは大差ないと思うし、C#が分かればJavaもすぐ飲み込めるようになるという特典付き。
はじめにスレ違いすまそ。
ヲレがC#に移行しない理由:
C#はVBとC++の中間(どちらよりなのかは議論があるが)に位置してる。
しかもいいとこ取りではなくてただの中途半端。
VB6.0からVB.NETとC#のどちらに移行すべきか迷っています。
VB.NETのほうが見慣れた記述形式だから理解は早そうだとは思うのですが、
C#が標準になってVB.NETの存在が消えていかないかどうかが心配です。
865霧隠lo:04/02/09 16:32
まずものになるかどうかVB.NETから入ってみれば?
クラスやメソッドは共通だから、後から移行するにしても文法だけの問題だし。
866デフォルトの名無しさん:04/02/09 18:26
C#の記述形式もみなれたもんだろ?
VBとC#で同じようなコード書いてコンパイルした香具師いる?
バイナリレベルで同じものが出来るらしいんだけど
868デフォルトの名無しさん:04/02/09 20:30
VB6を使って業務システムを開発しているんだけどVB.netへの移行
タイミングを決めかねている。一応テストでの使用は問題はないような
んだけど、実際業務システムを開発してSQLサーバーなりオラクル
なりと連携して本格的に使用されている方はいる?

 VBも業務用の開発ツールとしてさんざん痛い目にあい、VB5のSP
3辺りでやっと問題なく使える事になった事を考えるとNET2005までは
まだまだ不安で、どうも様子見という所が多いようだんだけど、、
 
869最凶VB厨房:04/02/09 21:59
>>867
ちと試してみたところ、
同じようなコードでも完全に同じでなく若干違うようだ。
ILレベルでなー。
870デフォルトの名無しさん:04/02/09 22:54
858以降有難う、もっと俺も自分で思考錯誤してみるよ。
もともとが、建設屋の独学なんで、IT情報を人と話してを得る機会
がない。
871デフォルトの名無しさん:04/02/10 02:36
アカデミック版は商用利用可でしょうか?
>>871

確かLearning Edition以外は商用利用可能だったと思いますが。。。
873871:04/02/10 02:45
>>872
ありがとうございました。
>>869
サンクスコ
自分も気になったので仕事の合間にC#やってみまつ

>>868
基幹システムというほど大げさなシステムではないのですが
いわゆるフルフィルメントという分野?の物を作ってます
画面のデザインは楽になったのですが(リサイズとかその辺のめんどくさいのが)
VB6みたいに、いきなりゴリゴリコード書いて動くようなものではなくなってしまってますね
ダマシが利かなくなってるのできっちりデザインしてからコードの落とすようにしてます
まぁ本来はこのやり方が正道なんでしょうけど(^_^.)

Oracleとのデータベース接続をADO2.7→ADO.NETにしたのが一番戸惑いました
1年弱やってますがいまだに良く解ってません・・・
>>868
販売管理のシステム(1日のトランザクションが300件程度)を
VB.NET2003とSQL2000で開発したよ。
ぜんぜん問題ないってどころか、.NETにしてよかった。

俺の周りで「.NETは使えん」って言ってるやつのほとんどがVB6のプログラミングしてる。
>>868 さんも言うように.NETらしい書き方ができないと、VB6のがよかったってことになるよ。

開発ツールも言語も、それで出来る事と出来ない事を把握してなければ何使っても同じ。
過去に「さんざん痛い目に」あった理由が何か解決してなければ、また会うかもしれない。
>>868さんじゃなくて>>874さんでした。
877デフォルトの名無しさん:04/02/11 01:20
VB.netでシリアルポートを扱うにはどうすれば良いでしょうか?
以前のVBにあったMSCommは無くなってしまったのでしょうか?
>>867
実行時エラーの時に出てくるメッセージを見ていると、
VB.NETっていっても、内部的には、
本来C#用に作成されたライブラリを呼んでるだけじゃないのかなーって思う。
そういう意味では、バイナリレベルでは同じもの・・・?
>>878
.NET FrameworkはC#用ってわけじゃないけど。
マルチプラットフォームへの移行はJava対策でもある。
880デフォルトの名無しさん:04/02/11 15:44
>>877
MSCommって電話アイコンのやつだっけ?
VB.Net(.NET Framework)にMSCommは無かったと思うけど←たぶん・・・。
ただVB.NetからMSCommは普通に使えたよ。
以前のVBをそれだけのためにインストールしたけど・・・・。
>>877
http://www.mentalis.org/classlib/class.php?id=15
This class adds serial comunication to your VB.NET applications.
今から始めようと思うんだけど、
VB.NETってVisualStudio.NETを買わなきゃついて来ないの?
単体で売ってないかなぁ・・・。
>>882
単体で売ってるよ。
>>883
本当ですか!名前だけでもいいので教えて頂けますか?
>>884
Visual Basic.NET
VB.NET2002(VSシリーズ全般)使いがVB.NET2003(VSシリーズ全般)に移行するメリットって見当たらないんだけど・・・。
.NET Frameworkも今度は2.0で1.0、1.1、2.0の共存って言ったらただの容量のムダとしか思わないし・・・。
.NETも個別インストールな限り普及しなそうだし、上記の問題もあるし。
どうにかしてよMicrosoftさん。

>>885
Standardね。
>886
M$も迷走しているんだよ。いつものことだけど。
とりあえず、M$の新しいテクノロジは、Ver.3まではクソで
Ver.4あたりになってようやく他から買い付けて安定する
というのが定石となっている。
888830:04/02/13 11:18
2003
じゃないと、DIrectX Summerは使えないよう。
.NETはマイクロソフトが社運をかけた技術です
890デフォルトの名無しさん:04/02/13 23:02
それにしてもXボックスは大失敗だったね。
>>890
日本以外ではそうでもない
892デフォルトの名無しさん:04/02/15 00:46
教えてクソですまそ。

フォームにボタンコントロールがあって、それらを配列として扱うとき

Private Button(4) As System.Windows.Forms.Button

Private Sub Form1_Load(sender As Object, e As System.EventArgs)
Handles MyBase.Load

Buttons(0) = Button1
Buttons(1) = Button2
Buttons(2) = Button3
Buttons(3) = Button4
Buttons(4) = Button5

Dim i As Integer
For i = 0 To 4
AddHandler testButtons(i).Click, AddressOf testButtons_Click
Next i
End Sub

こんときButtons(0) = Button1とかをForNextとかで代入できないですかね?
ForEachとかでなく・・・

>>892
Controlsを使えばできなくも無さそうだけど、
Formにはボタン以外にも色々と貼ってるだろうから、
Typeチェックとかをせんといかんな・・・なんでそんなことを。
894デフォルトの名無しさん:04/02/15 01:51
>>893
コントロール配列の代わりってことでネットでみつけたんです。
初めはForEach BB as Object in Me.Controlsとかで拾って
TypeNameで分けていたんですが、なんせおっしゃるとおりFormに
いろいろ貼ってありまして・・・
せっかく単純な名前付け(連番)にしてるんだから
ループで代入できないかなぁ〜って・・・
895デフォルトの名無しさん:04/02/15 02:42
>>892
どぼんさんのとこにあるサンプルみたいだけどそれって結局何がしたいのか
意味不明な気がするなあ。。

VB6なんかのコントロール配列のキモは、イベントハンドラで
イベントが発生したコントロールをインデックスで識別できることに
あったと思うんだけど、それじゃイベントが発生したコントロールのインデックスは
(コード書かないと)得られないよね。

プロパティとかまとめて変えたい、ってことなら配列よりコレクション使ったほうが
後々楽だと思うし。

単にイベント発生源のコントロールのインデックスを取得したい、
ってことなら、コントロールの.Nameプロパティから取得するコード書くほうが
簡単じゃない?

どうしても配列に入れたいならこんな感じですかね。
For i = 0 to 4
  Dim MyControl as Control
  Dim ButtonName as String = "Button" & (i+1).ToString

  For Each MyControl in Form1.Controls
    If MyControl.Name = ButtonName Then
      Buttons(i) = MyControl
    End If
  Next
Next i
896895:04/02/15 02:50
あと、やっぱり単純に配列に単純に代入する、ってことなら
配列初期化子使ったほうが記述がスッキリするんじゃないかと。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbls7/html/vblrfvbspec7_5_4_2.asp?frame=true
897デフォルトの名無しさん:04/02/15 13:32
3日前に.NETマスターしろっと言われまして。VB6からの変わりようにビビてました。
>>895さん、勉強になりました。
サンプルはまさしく「どぼんさん」とこのです。VB6コントロール配列については
895さんのおっしゃるとおりです。

サンプルはボタンでしたが、自分がやってるのはテキストボックスで、128bitの各ビットを
見立てて128個配置して、クリックされるたびbitを01かえるっていう単純な使い方でした。

VB6のときは発生源ごとのイベントはどうでもよく、コントロール配列で十分事足りてまして。
.NETになって単純なリプレースをしてみて、ふと「128個も代入かよ・・・」ってふと思い、
カキコしました。

マジレスありがとうございました
>>892
この辺りの仕様って、Delphiだよな。
さすが、.netは引き抜いて作っただけあると思った。
899デフォルトの名無しさん:04/02/16 10:07
VB.NetでのDebugとReleaseのコンパイルの違いが分かりません。おしえてください
900デフォルトの名無しさん:04/02/16 12:14
>899
そりゃ、Debugはデバッグ用に余分な情報が入っているってこと、Releaseはそれが取れて実行速度が速くなります。
901デフォルトの名無しさん:04/02/16 13:00
ありがとうございます。
902デフォルトの名無しさん:04/02/16 13:54
ODBC(Mysql)接続の仕方教えてください。
ODBCの設定はしてあるのでVB.NETからのコードをお願いします。
OdbcDataAdapter使っても使わなくてもいいです。
904デフォルトの名無しさん:04/02/17 00:15
VB.net2004って出る予定あるのでしょうか?
それともとっとと2003買ったほうがいい?
905デフォルトの名無しさん:04/02/17 07:47
>>904
そりゃ、2004が出なくても次期バージョンは必ず出るわけで、学習者なら早めに始めたほうがいいと思う。
.NET開発者なら、ケースバイケースだけど。。。
906デフォルトの名無しさん:04/02/17 20:03
vb.netでAccessみたいなサブフォームのあるフォームって作成すること
できますか?
Accessしか触ったことないけど、Vb.Netでできるならやってみようかと
初めてまだ一週間程度なのですが、現在のテキストボックスネームを取得して、
隣のテキストボックスにフォーカスを移したいのですが・・・

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim box(20, 4) As TextBox

For i = 0 To UBound(box, 1)
For j = 0 To UBound(box, 2)
box(i, j) = New TextBox
中略
box(i, j).Tag = i
Me.Controls.Add(box(i, j))
AddHandler box(i, j).KeyPress, AddressOf keypressed
Next
Next
End Sub

Sub keypressed(ByVal o As [Object], ByVal e As KeyPressEventArgs)
中略
box(i, j).focus ←ここのところがわかりません、、、
End Sub

これで、sub keypressedの中で、どのテキストボックスから飛んで来たか
値を取り、次のテキストボックスにフォーカスを移すにはにはどのように
すればいいのでしょうか?
908デフォルトの名無しさん:04/02/18 00:12
2つ質問があります。。

1、ASPボタンを使わないでHtmlボタンを非表示にしたいんですがどうやったらできますか?
VBソースからではなくてASPコードで。
Disableではないです。

2、これはVB.NETの話ではないんですが。。。
TEXTBOXのReadonlyをtrueにした状態で(変更不可の状態)
マウスのポインタをTEXTBOX中に落としてカーソル移動させるみたいなことは
可能でしょうか??長い文字列を画面に表示するのに画面を横長にしたくないので
テキストボックスを使用してユーザがスクロールさせるようにしたいのですが、
そのデータを変更されるとDB登録とのからみがあり困るんです。。

どなたかご伝授お願いします。
実際に自分でやってみてないの?
910デフォルトの名無しさん:04/02/18 08:16
>>907
イベントの付け替えとか、コードでフォームにコントロール追加とかが理解できる人が
そんなことができないなんて信じられないのですが。。
911907:04/02/18 14:58
>910
え?簡単なんですか?(^^;;;
すみません、ヒントだけでも下さい・・・
912906:04/02/18 15:35
自己解決しますタ

パネルコントロールにユーザコントロール貼り付けて擬似的に実現できました
>>907
Me.GetNextControl(o, True).Focus()
914907:04/02/19 14:44
>913
ありがとうございました。これで先に進めます、、、
915デフォルトの名無しさん:04/02/19 19:28
データグリッドについて教えて下さい。

SQLServerのデータベーステーブルをメンテする
WindowsアプリケーションをC#で作成しています。
データグリッドにテーブルの内容を表示はさせてことは出来ました。
(SqlDataAdapter、SqlConnection、DataSetを使用しています)
その表示の際に、テーブルの表示項目はint型なのですが、その内容を判断して
int型の項目の変わりにstring型の文字を表示したいのです。
例:int項目=1ならばデータグリッドに“OK”、
  int項目=0ならばデータグリッドに“NG”の様にしたいのです。

もう、わけわからん・・・。

>915
SQLでCase関数を使うか、データグリッドのフィルタを使う。
個人的には前者が好き。
917デフォルトの名無しさん:04/02/20 13:14
DataGridにおいて特定のカラムのフォーカスを飛ばすことは出来ますか?
用はTabStopプロパティをくっつけたいのですが・・・
DataGridTextBoxColumn.TextBoxのタブストップはFalseにしたのですがどうも
グリッド自身の制御が難しいです。
918デフォルトの名無しさん:04/02/20 17:22
>916
お答え、サンクスです。
前者の方向で組みなおしてみます。
919デフォルトの名無しさん:04/02/20 18:17
テキストボックスの入力を全角カナに制限したいときにはどうすればいいんですか?
920やまごろ:04/02/20 18:52
メインから作成・開始した別スレッドからフォームのVisible等をいじると、
プロセス全体が固まってしまいます。
どうやらInvokeとかを使ってメインのスレッドにやらせる必要がある
らしいのですが、デリゲートとか散々試してついにギブアップ!!
誰か助けてちょ〜!!
921デフォルトの名無しさん:04/02/21 05:26
VB.NET 2003を使っています。
MP3、AVI、MPEGを再生するにはどうしたらいいのでしょうか。
WAVEはAPIを使って再生できました。
>>921
メディアプレーヤーを使えば?
923830:04/02/21 11:21
>>921
DirectXを使うと簡単。
924最凶VB厨房:04/02/21 13:38
Form1にあるButton1を不可視にするだけのサンプル
''''''''''''''''''''''''Form1.vbの一部'''''''''''''''''''''''''''''''''''''''
<STAThread()> _
Shared Sub Main()
Application.Run(New Form1())
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim vtf As vbthreadfirst = New vbthreadfirst(Me)
Dim t As Thread = New Thread(New ThreadStart(AddressOf vtf.VBisSaikyo))
t.IsBackground = True
t.Name = "vtf Thread"
t.Start()
End Sub

Public Sub SetButton1Visible(ByVal vis As Boolean)
Button1.Visible = vis
Console.WriteLine("SetButton1Visible: Thread.Name = {0}", Thread.CurrentThread.Name)
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Thread.CurrentThread.Name = "GUIThread"
Console.WriteLine("Form1_Load: Thread.Name = {0}", Thread.CurrentThread.Name)
End Sub
'''''''''''''''''''''Form1.vbの一部のおわり'''''''''''''''''''''''''''''''''
925最凶VB厨房:04/02/21 13:40
'''''''''''''''''''''vbthreadfirst.vb'''''''''''''''''''''''
Imports System.Threading
Public Class vbthreadfirst
Public f1 As Form1
Public Delegate Sub MyDelegate(ByVal visible As Boolean)
Public Sub New(ByVal f1 As Form1)
Me.f1 = f1
End Sub
Public Sub VBisSaikyo()
Dim i As Integer
Console.WriteLine("VBisSaikyo: Thread.Name = {0}", Thread.CurrentThread.Name)
Dim md As New MyDelegate(AddressOf f1.SetButton1Visible)
Dim ar As IAsyncResult
Dim args() As Object = {False}
ar = f1.BeginInvoke(md, args)
ar.AsyncWaitHandle.WaitOne()
If ar.IsCompleted Then
Console.WriteLine("おわったーヽ( ゚∀゚)ノ")
End If
End Sub
End Class
'参考URL
'http://ukamen.hp.infoseek.co.jp/Programming/Asyncro/index.htm
926最凶VB厨房:04/02/21 13:50
別スレッドからButton1のTextとVisibleいじっても
固まらなかったのだが。。。
ぬぅ。
2002。
927最凶VB厨房:04/02/21 13:53
iはいらんかったな。まっいいか。
928デフォルトの名無しさん:04/02/21 22:59
学校で.NETのWEBアプリケーションを作る課題が出されたのですが、CGIではなくVBでアクセスカウンタを作れ、と言われて切れそうなんですが
作れるのでしょうか?
>>928
ASP.NETでやるってことでしょ。CGIといっしょだべ。
学校で.NET教えてるとこがあるとは
931デフォルトの名無しさん:04/02/22 00:04
デスクトップの壁紙を変更するプログラムを書きたいのですけど、
どうすればいいでしょうか?
>>931
ChangeDesktop()を使いなされ。
933931:04/02/22 00:22
>>932
ありがとうございます。早速試してみます。
934931:04/02/22 00:45
>>932に教えていただいたChangeDesktop()ですけど、
検索しても適当なページが見つからないので、
恐縮ですが、使い方教えていただけないでしょうか?
935最凶VB厨房:04/02/22 04:26
936最凶VB厨房:04/02/22 04:58
関連スレはいらんくさいな。
937デフォルトの名無しさん:04/02/22 12:14
VB.NET 2003を使っています。
ActiveXコントロールにExplorer(WebBrowser)を追加して、
VB.NETのフォーム上でインターネット上やハードディスク上に保存された
htmlファイルを閲覧することができるようになりました。
ここで質問があるのですが、
ハードディスク上に保存されたhtmlファイルをアプリケーションに埋め込んで、
その埋め込まれたhtmlファイルを閲覧するにはどうしたらよいのでしょうか?
どなたかわかる方、いらっしゃいましたらご教授下さい。
938デフォルトの名無しさん:04/02/22 12:22
タイマコントロールだけ使いたいクラスってどうしてます?

私はただタイマ使うためだけにフォーム使ってるんですが、これってやっぱり
余分にリソース食うんでしょうか?

コンストラクタで親のフォームのタイマ渡してやるってのもなんかエレガントで
ない気がするし。

クラスにコードでタイマ追加できればいいと思うのですが、これは可能でしょうか?
939デフォルトの名無しさん:04/02/22 12:34
>938
たしか、timerって関数が普通にあったはず。
大麻コントロール使う必要がない、単純な操作用。
>>939
午前零時越えにバグる悪寒
941938:04/02/22 12:44
>>939
いや、タイマ使いたいってのは、つまり一定間隔で何らかの処理をしたい、
ということでして。。(それが普通のタイマコントロールの用法ですよね?)

いまVB.NET手元にないんで確かめられないけど、Timerってたしかシステム起動
からのmSecオーダーの経過時間ですよね?
>>941
そんなあなたにWithEventsステートメント
943942:04/02/22 13:09
ごめんキーワードだった。
.NETはフォームなしでもコントロール使える
System.Timers.Timer 使えばいいじゃん。
946やまごろ:04/02/23 09:32
>>926
レスありがとう。早速トライしてみます。ちなみに当方2003です。
また、最上位フォームのvisible等では固まらず、
そのフォームから開いた子フォームのvisible等では固まりました。
具体的には、その子フォームに張り付いてる2つのラベルのvisibleをそれぞれ
TrueとFalseにして、その子フォーム.refreshして、その子フォーム.BringToFront
しました。
947やまごろ:04/02/23 13:07
>>926
いや〜出来ました!!最凶VB厨房様万歳!!BeginInvoke万歳!!
しかしなんでドット入れて出てこない!?
948デフォルトの名無しさん:04/02/23 14:10
vbとvb.netの違いを教えてくれ
KeyPreviewのマウス版みたいなのってどうやれば実現できますか?
>>948
すべて違う
>>948
チンコとマンコほどにも違う
952デフォルトの名無しさん:04/02/24 11:10
あの〜
VB.NET2003でFlashを再生してるんだけど、
Flashのムービー再生が終わったことをどうやってアプリから判断するのでしょう。
>>852
ユーザーが判断します
954デフォルトの名無しさん:04/02/24 13:46
作成したアプリケーションを配布する際に、WindowsUpdate以外で、 .NET Framework
をインストールする方法が分かりません。
できれば、インストーラに含めて、setup.exeをクリックしたら、アプリケーションと、.NET Frameworkの両方がインストールできるような物を作りたいのですが、可能でしょうか?
955デフォルトの名無しさん:04/02/24 14:54
>>864
両方使った立場から言えば、これを機会にC#に
移行した方が良いと思う。
他の人も書いているけど、C系やっとけばJavaとかを
吸収しやすいし、VBよりも文法的にもすっきりしている。
また、VBだと今までの癖で.Netのメリットが活きてこない旧
VB的なコードを書いてしまう様な気がする。


>>878
フレームワーク用の中間コードに落としているので
同じものになるけど、VBの方が本来のターゲット文法
(C*やJ*)よりも少し遠いから多少の差異がでるらしい。

フレームワーク1.0の頃に試した人の日記によるとVBの
方が遅かったとのこと。いまはどうだか不明。

>>891
基本的に北米市場だけ。

>>894
出来ない。
その様な場合、ポトペタでやるよりもループ回してnewして
いった方が楽。初めは面倒に感じるかもしれんけど。

旧VBのコントロール配列はなくなっちゃったけど、
継承したクラスのオブジェクト突っ込めたり、多次元配列化
出来たり、コレクション使えたりするので、ちょっと馴れれば
今の方が遥かに便利になる。頑張れ。
956952:04/02/24 19:56
>>953
一理あります。
でも、もしフラッシュムービーがループしていたらどうしたらいいのでしょう
957いずみんせんせぇ:04/02/25 01:48
フォルダ内のファイルをファイル名で昇順に取得したいんだけど
System.IOクラスでできますか?
誰かそれ以外の方法でもいいから取得方法知ってたら教えて下さい
958デフォルトの名無しさん:04/02/25 02:01
>>957
フォルダを開いて、表示形式を詳細にし、
名前タブをクリックして下さい。
959いずみんせんせぇ:04/02/25 02:13
え?プログラムで取得する方法なんだけど。。
そんなのわかってるよ
>>957
データセット(データビュー)に一度書くって方法は?
>>957
昇順に取得するんじゃなくて、取得してから昇順に並べ替えろ。
962デフォルトの名無しさん:04/02/25 07:49
>>957,959
こいつは、荒らしに来ただけ
みなさん、軽く煽ってやって下さい。
963デフォルトの名無しさん:04/02/25 11:09
できました。
>>953,957
気合入れて調べたら半日で方法が見つかりました^^
964デフォルトの名無しさん:04/02/25 14:35
VB.NETで、ActiveMovieControlを追加して使っているんだけど、
このコントロールのムービー表示部分以外(ムービー進捗バー、再生ボタン、
一時停止ボタン、停止ボタン、タイムカウント)を全部消して、
ムービーの表示部分だけにするにはどうしたらいいのでしょうか?
965964:04/02/26 02:44
解決しました。
プロパティでいいんだね。
ところで、ムービーを自動で元のサイズにして再生する方法が
わかりません。
MSDNの説明どおりにやってもうまくいきません
AllowChangeDisplaySize = true
AutoSize = true
DisplaySize = mpDefaultSize
これだけではダメなのでしょうか。
966やまごろ:04/02/26 15:46
毎度お世話になります。
コンソールアプリで作成したアプリのコンソールを見えなくする方法を探してて、
試しにプロパティをWindowsアプリに変更してみたら見た目上うまくいってます。
この方法に問題は無いでしょうか?
もし、他に普通の方法があれば教えてください。
スレたてお願いしますヽ(´ー`)ノ
俺、やったことないんでw
For each im as system.陰毛 in 俺の体
Console.WriteLine ("埋め立て中..." & im.Index)
Next
969Star:04/02/26 21:22
こんばんわ,VBも2chも始めて初心者の厨房です('A`)ノ
本を読んでコツコツと勉強してます,よくサボってますがね….

Left関数について質問があります.このようなソースを書いてみたのですが,

' Left関数を使ったプログラム
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As String = TextBox1.Text
Dim b As String = Val(TextBox2.Text)
TextBox3.Text = Left(a, b)
End Sub
End Class

「Left() As Integer には引数がないため、戻り値を参照出来ません」
とエラーが出ます…(´・ω・`)
ヘルプを見て4行目を『Microsoft.VisualBasic.Left(a,b)』にしたら出来ました.
Microsoft.VisualBasic.って何ですか?本には書いてないので必要無いと思ったんですが…….
本でのバージョンが6.0だからかなぁ…….教えてください(;´Д`)人
970Yosuke:04/02/26 21:26
すいません,
クッキーの設定で、別のスレで使っていたハンドルにしてしまいました.
>>968は僕です.
971Yosuke:04/02/26 21:27
>>969だった………○| ̄|_
>>969
Dim b As Long = Val(TextBox2.Text)
973972:04/02/26 23:15
Dim b As Integer = Val(TextBox2.Text)
974最凶VB厨房:04/02/26 23:18
>>やまごろ
BeginInvokeおめでとう。.NETのみ触っているわけでもないから。
>>966
コマンドプロンプト上から起動しないのであれば問題ないだろう。
>>969
単純にLeftと書くとForm1クラスのLeftプロパティの意味になるようだ。
Microsoft.VisualBasicは名前空間。
Val関数は省略しないでかくとMicrosoft.VisualBasic.Valになる。
Microsoft.VisualBasic.Left(a,b)と省略しないで書くことによって
Form1クラスのLeftプロパティでなくて
Microsoft.VisualBasicという名前空間にあるLeft関数なんですよーと教えてやる必要がある。
VB6.0の本はほとんど役に立たないだろう。
VB6.0やOfficeVBAを触るつもりが無ければその本はポィ。
app.Configファイルを動的に更新する方法ってありますか?
イメージ的には.iniファイルの更新みたいな感じです
976デフォルトの名無しさん:04/02/27 19:18
MailMessageをつかってメール送信をしてるんですが
1件の場合普通に送信できるのですが
ループで複数件メール送信しようとするとエラーとなってしまいます
MailMessageを初期化するような処理が必要なのでしょうか?
初心者のため質問の論点がずれていたごめんなさい

>976
UGツールでも作る気ですか?
978Yosuke:04/02/27 21:40
>>973
御指摘有難う御座います.
数値型でしたね(;´Д`)
>>974
なるほど,
Leftだけ書くとForm1クラスとVBが認識してしまうんですね,有難う御座います.
またお世話になると思いますがその時は宜しく御願いします.

……本買い換えなくちゃ(つД`)
お奨めとか有りましたら宜しく御願いします.
979デフォルトの名無しさん:04/02/28 08:33
VB.netでADOでデータベースに接続したいんだけど、
このサイトをみながらやったんだけど、なんかダメなんだよ。

http://www-6.ibm.com/jp/software/data/developer/library/techdoc/vb6ado.html

VB6と.netはずいぶん違うのかな?
明日本屋に行って、解説書を買ってくるから、
とりあえずどうしたらいいか、誰か教えて。
> とりあえずどうしたらいいか

とりあえず本買ってこい
>>980
Help見りゃじゅうぶんだろ。何故IBMのサイトなんぞを見ているのだ
982デフォルトの名無しさん:04/02/28 20:17
ええと、もうまもなくスレ埋まってしまいますが質問です。

よく、コード中にファイルパスを指定するシーンが出てきます

****.FileName = "c:\あいうえお\ABC\ファイル.txt"

のように。
ここで、ハードディスク上のファイルではなく、アプリケーションに埋め込まれた
ファイルとして
***.FileName = "RES://プロジェクト名.exe/埋め込まれたリソース.txt"
と指定する方法があるらしいのですが、
(アプリに埋め込まれたリソースをあたかもディスク上にあるかのような
パス形式で読み込める。)
この方法をどなたか知ってる方いるでしょうか?
マネージリソースではなく、Win32リソースとして埋め込まれていなければ
ならないそうなので、
そのやり方をご存知の方、よろしくご教授の程お願い申し上げます。

IEで実在しないURI開いて、"ページを表示できません"画面のプロパティ見てみ
っと、、参照の仕方は分かってるのか。
/win32resスイッチでもにゃもにゃするか、できたEXEにリソースエディタで埋め込め。
あと14発言で埋まってしまうけれど、

>>984

/win32resスイッチでのもにゃもにゃの仕方か、
できたEXEにリソースエディタで埋め込む方法を教えて下さい(⊃Д`;)

>>985

filenameとして取得したいのです。
例えば、ファイルの場所を指定するメソッドがあった時、
「ああ、そのファイルならアプリ内に埋め込まれているから、
そこからとってきて〜」
の意味で、「RES://」でパスを与える方法があるらしいのです。
Win32リソースとして埋め込めばいい、ところまで突き止めたのですが
Win32リソースとして埋め込むには、どうしたらよろしいのでしょうか?;;
987986:04/02/29 11:11
できたEXEにリソースエディタで埋め込む方法を
教えて下さい・・。

/win32resでもにゃもにゃの仕方はわかりました。
「1..rcに定義を書き、rc.exeでresファイルを作る。
 2.vbc.exeでコンパイルする際、
   /win32resourceオプションでresファイルを指定する。」

リソースエディタって、インターネッツで調べたところ
Mac版や、C++用等ばかりで・・・。
>987
ResHacker.exeは?
989最凶VB厨房:04/02/29 11:51
>>975
こんなところはどうか?
http://dobon.net/vb/dotnet/programing/editappconfigfile.html
>>976
特に問題なかったが?
>>987
適当にやってみた。
///////////r.bmp//////
(落書き)
////////////sample.rc////(textfile)///
1 BITMAP r.bmp

/////////rc.exe///////////////
rc /v /x sample.rc
/////////////Test.vb/////////
Imports System
Imports System.Windows.Forms
NameSpace vbchu
Public Class Test
<STAThread()> _
Shared Sub Main(args As String())
Console.WriteLine("This is a Test")
MessageBox.Show("MessageBoxTest")
End Sub
End Class
End NameSpace
//////////vbc.exe///////////////
vbc /r:System.Windows.Forms.dll /win32resource:sample.RES Test.vb
オブジェクト配列で作ったテキストボックスから Me.ActiveControl.Nameで
コントロール名を取得しようとすると””になって、名前が取得出来ません。

オブジェクト配列からコントロール名を取得するにはどのようにするので
しょうか?
991987:04/02/29 20:20
残り10発言ですが・・・

>>988
ResHacker、今度使ってみます。
(自己責任で)

>>989(最凶VB厨房)
うまくいきました!
最初、自分でvbcでコンパイルをしてみたところエラーでまくりで
Dosプロンプトがスクロールしきって上の方が切れてしまうほどでしたが、
同じソースを書いて同じコンパイルをしたところ、うまくいきました。
びっくりです。

・まず、rcファイルをRESファイルにコンパイルし、
 MyResource.rc → [rc.exe] → MyResource.RES
・その後、ResSet.vbという名前で作ったソースをvbcでコンパイルしResSet.exeを作成しました。
 vbc /r:system.windows.forms.dll /win32resource:MyResource.RES ResSet.vb

すみません、できたのに質問するのも何ですが、
1.ソースファイル内にある、<STAThread()> Shared Sub main(略)は、なぜ必要なのでしょうか?
2.ソースでImportsしてる、SystemとSystem.Windows.Formsは、なぜ必要なのでしょうか?
3.vbcコマンドで/r:system.windows.forms.dllは、私は最初Microsoft VisualBasic.dllを指定していましたが、
 どうしてこちらではダメなのでしょうか?
4.今回、作成できたResSet.exeには確かにリソースがアタッチされています。しかし、
  このResSet.exeをリソース群として他のアプリから参照したい場合、どのように組み込めばいいのでしょう;;
  (***.filename = "res://プロジェクト名?/ResSet.exe?/?/リソースファイル名?)

すみませんが、再度 ご登場お待ちしております・・。
初心者本ぐらい読んでからコード書け
993991
質問が多すぎました。
>>989(最凶VB厨房)さん
のやり方でwin32リソースがアタッチされたexeを作りました。

このwin32リソースにアクセスする方法を教えて頂けないでしょうか。
単純にプロジェクト1にexeを追加して、それに
***.filename = "res://〜"
の形式でアクセスしようとしてもできませんでした。