VB.NET質問スレ (Part12)

このエントリーをはてなブックマークに追加
1前スレ972
VB.NETの質問全般です

過去スレ
VB.NET質問スレ (Part11)
http://pc8.2ch.net/test/read.cgi/tech/1114217190/
VB.NET質問スレ (Part10)
http://pc8.2ch.net/test/read.cgi/tech/1109343613/
VB.NET質問スレ (Part9)
http://pc5.2ch.net/test/read.cgi/tech/1106577850/
VB.NET質問スレ (Part8)
http://pc5.2ch.net/test/read.cgi/tech/1102512868/
VB.NET質問スレ (Part7)
http://pc5.2ch.net/test/read.cgi/tech/1096683017/
VB.NET質問スレ (Part6)
http://pc5.2ch.net/test/read.cgi/tech/1088812165/
VB.NET質問スレ (Part5)
http://pc5.2ch.net/test/read.cgi/tech/1078134703/
VB.NET質問スレ (Part4)
http://pc2.2ch.net/test/read.cgi/tech/1065269043/
【老若】VB.net質問スレ【男女】 (Part3)
http://pc5.2ch.net/tech/kako/1056/10562/1056281084.html
【老若】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デフォルトの名無しさん:2005/07/17(日) 20:34:37
3デフォルトの名無しさん:2005/07/17(日) 20:35:00
どぼん!のVB道のトップページとTipsページ
http://dobon.net/vb/
http://dobon.net/vb/dotnet/index.html
Microsoftクイック スタート チュートリアル
http://ja.gotdotnet.com/quickstart/default.aspx
Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
宇宙仮面の C# プログラミング
http://ukamen.hp.infoseek.co.jp/
.NET のつぼ
http://park16.wakwak.com/~mimi/dotnet/top.html
.NET TIPS
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
緑のバイク ★ 初めてのC# プログラム全般
http://homepage3.nifty.com/midori_no_bike/CS/
VB.NETとC#でデザインパターン
http://hccweb1.bai.ne.jp/tsune-1/
C#プログラミングTips
http://www.atmarkit.co.jp/fdotnet/csharptips/index/csharptips_index.html
WisdomSoft
http://wisdom.sakura.ne.jp/
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
Cetus Links: 19,498 Links on Objects and Components / .NET
http://www.cetus-links.org/oo_dotnet.html
4デフォルトの名無しさん:2005/07/17(日) 20:35:40
どっとねっとふぁん - C# Tips And Samples -
http://homepage3.nifty.com/dotnetfan/index.html
HIRO's.NET
http://vbdotnet.fc2web.com/index.html
@IT:特集 .NET開発者のためのオンライン・リソース・ガイド
http://www.atmarkit.co.jp/fdotnet/special/onlineres/onlineres_01.html
匣の向こう側
http://www.ne.jp/asahi/nami/mei/index.html
.NETでいきまっしょい!
http://santamartadotnet.hp.infoseek.co.jp/
これがほしかった!厳選サンプルツール集
http://anetm.com/dev/tools/vbdotnet.htm
ぬーやんのdotNET講座
http://www.geocities.jp/nuu_yan/dotNET/index.html
PINVOKE.NET
http://www.pinvoke.net/
WinAPI Database for VB Programmer
http://www.geocities.co.jp/SiliconValley-Cupertino/5872/
Windows Api programming in C# , VB.NET, and VB6. Examples of P/Invoke and DllImport with Source code
http://custom.programming-in.net/
ConvertCSharp2VB
http://www.kamalpatel.net/ConvertCSharp2VB.aspx
@IT:.NET Tools
http://www.atmarkit.co.jp/fdotnet/tools/index/index.html
SharpLibrary Redirector
http://www.sharplibrary.com/
MSDN アカデミック アライアンス 技術資料
http://www.microsoft.com/japan/msdn/academic/articles/
「300 秒でズバリ !!」&「10 行でズバリ !!」シリーズ
http://www.microsoft.com/japan/msdn/thisweek/wednesday/default.asp
5デフォルトの名無しさん:2005/07/17(日) 20:36:17
PAPA'n VB
http://www.mitene.or.jp/~sugisita/index.html
じゃんぬねっと
http://jeanne.wankuma.com/
VB レスキュー花ちゃん
http://www.bcap.co.jp/hanafusa/dotnet/index.html
(Java覚え書き)デザインパターンあれこれ
http://www.dmz.hitachi-sk.co.jp/Java/Tech/pattern/
algorithm
http://www.mnet.ne.jp/~tnomura/algorithm.html
日本語RFCリスト
http://www.se.hiroshima-u.ac.jp/~isaki/rfc/list.html


テンプレ完
6デフォルトの名無しさん:2005/07/17(日) 20:38:35
前スレでは、どうもありがとうございました。
VBAの講習もあったのですが、応募者多数で落選しました(≧−≦)

.NETの講習を受けつつVBAから地道に勉強してみます。
色々アドバイスありがっとー!!
では、お邪魔しました。
7デフォルトの名無しさん:2005/07/17(日) 21:22:25
>>1
8最凶VB厨房:2005/07/17(日) 22:09:58
1乙
9デフォルトの名無しさん:2005/07/18(月) 11:01:56
1ぬるぽ
10デフォルトの名無しさん:2005/07/18(月) 17:24:06
.SelectedText = "  "


「"  "」の中に「"」を入れても「"」は表示されないんだけど、
「"」を表示させたいときはどうしたらイイんですか?
11最凶VB厨房:2005/07/18(月) 17:36:55
>9ガ
>10""らしい
12デフォルトの名無しさん:2005/07/18(月) 17:39:15
>>11出来た。さんくすテラアリガタス
13デフォルトの名無しさん:2005/07/19(火) 12:59:46 BE:48813833-
ぬるり
14デフォルトの名無しさん:2005/07/19(火) 16:58:59
ColorDialogを呼んで、選択した色のコード(FF00FFみたいなやつ)を取得したいんだけど、
可能ですか??
15超初心者:2005/07/19(火) 17:21:19
VB.NETでDeviceCapabilitiesを使ってプリンタ用紙名一覧を取得する方法
が分かりません。分かる方いらっしゃいましたら教えてください。
1614:2005/07/19(火) 22:07:09
誰かタスケテ・・・
17デフォルトの名無しさん:2005/07/19(火) 22:24:56
スレ違いだったら申し訳ないです。
DBサーバを立ててそこにPostgreSQL8のWindows版をインストールします。
このDBに対してアクセスをするクライアントアプリを作りたいのですが、
事前にコントロールパネルからODBCのデータソースを
登録することなくアクセスすることは可能でしょうか?
不可能なのであればインストーラー等で
データソースの設定を自動ですることは可能でしょうか?
よろしくお願いします。
18デフォルトの名無しさん:2005/07/19(火) 22:27:42
おい!おまいら!あほのマイクロソフトの3万近くの有償サポートについてどう思う!?
完全に自社製品のサポートに対する怠慢だとおもうのだが!
自社製品の不備が多すぎるので答えるのが面倒で防御策をしていると
思われるがどう思う?


19デフォルトの名無しさん:2005/07/19(火) 22:42:56
>>14
自分自身がよく意味がわかってない"FF00FFみたいなやつ"取得してどうするの?
Color構造体が取得できればそれで必要十分でしょ?
どうしても欲しけりゃColorにToArgbがあるよ。

っていうか、>>10と同一人物臭いけど、
こんなレベルの話をいちいち人に聞いてるんじゃいつまでたってもものにならんよ。
まずは入門書の一冊も読めよ。
20デフォルトの名無しさん:2005/07/20(水) 00:45:29
>>14
可能かどうかを聞くなら、可能だ。
21デフォルトの名無しさん:2005/07/20(水) 00:49:51
Environmentとかで
環境変数からエラーレベルって取得できないのかの?

22デフォルトの名無しさん:2005/07/20(水) 01:35:50
おい!おまいら!あほのマイクロソフトの3万近くの有償サポートについてどう思う!?
完全に自社製品のサポートに対する怠慢だとおもうのだが!
自社製品の不備が多すぎるので答えるのが面倒で防御策をしていると
思われるがどう思う?

23デフォルトの名無しさん:2005/07/20(水) 07:15:02
>>18
そういう香具師は、SharpDevelopでも使うよろし
24デフォルトの名無しさん:2005/07/20(水) 11:50:44
なんで?<23
25デフォルトの名無しさん:2005/07/20(水) 15:41:33
教えて下さい。
PictureBoxに画像を表示する際、
PictureBoxのSizeModeはCenterImageを使い
中央に表示させるようにしています。
そこでPictureBoxに入りきらない画像を表示する場合は
画像をPictureBoxにFit(縦横比は変えず)するように
縮小率を求めたいのですがどうしたらいいでしょうか?
Forで1から0まで0.01刻みの倍率で縮小していき
画像の縦横ともPictureBoxのSizeより小さくなったら
Exit Forするやり方と、
PictureBoxの縦がPictureBoxの横より長い場合
画像の横が画像の縦より長い場合
縦横比率が画像の方が大きい場合など
一つずつ場合分けしていくやり方しか思いつきません。
よろしくお願いします。

2625:2005/07/20(水) 17:16:06
C♯相談室 Part11 の856にありました。
ttp://pc5.2ch.net/tech/kako/1061/10612/1061262958.html
Dim scale As Single = Math.Min(1F, Math.Min(pictureBox1.Width / CSng(bmp.Width), pictureBox1.Height / CSng(bmp.Height)))
pictureBox1.Image = New Bitmap(bmp, New Size(CInt(bmp.Width * scale), CInt(bmp.Height * scale)))
で無事解決しました。
お騒がせしました。
27デフォルトの名無しさん:2005/07/20(水) 22:28:31
求められた機能を実現してれば、ソースなんてどうでもいいよな
28デフォルトの名無しさん:2005/07/20(水) 23:28:44
質問させてください。

VB.netを使用して以下の様な仕組みを作る事は可能でしょうか?

【サーバ側】
HTMLページ上にスキャナを使用してスキャニングする機能を持ったDLLを
オブジェクトとして表示する。

【クライアント側】
上記サーバーページをIEから参照し、スキャニングを行う。

【現在の状況】
フォームを使用したローカルアプリケーションであれば、
スキャニング機能を実装する事が出来たのですが、
ユーザーコントロールにした場合に、メソッド等が違う為動作しません。

また、IE上にユーザーコントロールを貼り付ける所までは実現できています。

【お尋ねしたい事】
01.サーバーサイドに置いたユーザーコントロール上で
   クライアントに繋がったスキャナを制御出来るか?

参考文献でも良いのでヒントをお願いします。
29デフォルトの名無しさん:2005/07/21(木) 09:24:16
>>28
そのあたりのヒントになるのは、ノータッチデプロイとそのセキュリティ設定の話かな?
ブラウザベースよりこっちのほうが簡単だと思うよ。
30デフォルトの名無しさん:2005/07/21(木) 20:20:40
>>29
ありがとうございます。

私も今日ノータッチデプロイ辺りを見ていたのですが
サンプルページを動かしてみると、ちょっと運用に耐えれるレベルじゃ
なさそうなので、今回は.net化を見送る事になりました。

>ブラウザベースより
そうなんですよねぇ。
絶対Webでブラウザベースにするより、大人しくCSにしておけば
速度も速いし、保守も楽なのに。。。

既存システムが大抵Webシステムなので、それにあわせるとなると
なかなかいい方法がありませんでした;

アドバイス、ありがとうございました。
31デフォルトの名無しさん:2005/07/21(木) 20:35:51
検索の際に"あ"と"ア"を分けて検索するために、VarBinary(2)と宣言したフィールドhogeを
もつテーブルfugaがあります。
#AccessのMDBファイルに作成。
フィールドhogeを検索キーにして検索を行うため、OledbDataAdapter1のSelectCommandに、
Select hoge From fuga WHERE hoge = ?
 と宣言し、フォーム上から検索キーを取得してデータを抽出しようと試みました。

 OleDbDataAdapter1.SelectCommand.Parameters.Item("hoge").Value = "あ"c
 DataSet11.Clear()
 OleDbDataAdapter1.Fill(DataSet11, "fuga")

 のように、コーディングを行い、実行してみたところ、Fillの段階で例外が発生しました。
「System.Char から System.Byte[] へのキャストが無効です。」となっていたため、
"あ"をCByteで囲ったりしてみましたが、うまくいきません。
 どなたか正しいやり方について教えていただけますでしょうか?
32デフォルトの名無しさん:2005/07/21(木) 22:41:49
DataGridのページング機能の表示を<<1 2 3>>(番号を押したらそれぞれのページへ移動、<< or >>を押すとひとつ前のページへ移動)としたいのですができるのでしょうか???
33デフォルトの名無しさん:2005/07/22(金) 11:18:46
NetAdvantage2004のWebMaskEditを使っていおりまして、
クライアント側の処理としてJavaScriptでWebMaskEditの背景色を
変える動作を行いたいのですが、現在入っているWebMaskEditの色情報を
取得することは出来たのですが、その中に変更したい背景色を指定しても、
色が変わらなく、困っております。
どなたか教えていただければ幸いです。お願いいたします。
34デフォルトの名無しさん:2005/07/22(金) 11:25:13
GrapeCityに聞けば?
3531:2005/07/22(金) 20:21:46
自己解決しました。

OleDbDataAdapter1.SelectCommand.Parameters.Item("hoge").Value = _
System.BitConverter.GetBytes("あ"c)

 でOKのようです。お騒がせしました。
36デフォルトの名無しさん:2005/07/23(土) 11:53:35
Compact Frameworkでイメージをファイルに保存する方法ないでしょうか?
37デフォルトの名無しさん:2005/07/24(日) 03:14:27
最近はじめてプログラミングを勉強してみようと思い、VB.NETを勉強し始めたのですが
このソフトで一体どの程度のアプリケーションが作成できるのでしょうか?
また、このソフトを使っている人って趣味の範疇ですか?
実際の業務でこのソフトで作ったアプリケーションが役に立つ機会ってありましたか?

自分としてはwebブラウザで動くプログラムを作りたいと思っているのですが、
そういう場合には、どういう言語を勉強するといいでしょうか?
38デフォルトの名無しさん:2005/07/24(日) 03:16:57
それから、VB.NETとVBで作成できるアプリケーションの場合
どちらが優れたソフトを作成できるのでしょうか?

質問内容自体がおかしいかもしれませんが、宜しくお願いいたします。
39デフォルトの名無しさん:2005/07/24(日) 03:18:27
質問がおかしすぎます
勉強し始めたならそのくらいわかるでしょう?
40デフォルトの名無しさん:2005/07/24(日) 03:29:11
>>39
やっぱりおかしいですか・・・
変な質問だとは思いますが、できるだけ質問の内容を解釈して
回答いただけると嬉しいです・・・
41デフォルトの名無しさん:2005/07/24(日) 03:32:58
>>37
>また、このソフトを使っている人って趣味の範疇ですか?

なめとんのかコラ
喧嘩売ってるとしか思えないな。
42最凶VB厨房:2005/07/24(日) 04:29:29
漏れは趣味の範疇ですw
だけど非IT系企業の実際の業務でも使えます。
四則計算
ファイル入出力
ネットワーク通信
お絵かき
GUI
Webアプリ
.net frameworkが入ったWindows2000,XPであれば
特に問題無くいろいろ遊べます。
管理者権限がないと無理なものもありますが。
43デフォルトの名無しさん:2005/07/24(日) 04:42:50
>>40
それはcgiだ。
スクリプト言語なんかだとより楽に作れる。
ソフトはそれぞれ得手不得手がある。調べろ
44デフォルトの名無しさん:2005/07/24(日) 05:39:29
趣味の範疇でやめておいた方がいい言語ではあるな。
とくにプログラミング初心者の場合は。
45デフォルトの名無しさん:2005/07/24(日) 08:01:50
>>41
す、すみません・・・

>>42
非IT系の企業としたのはどうしてでしょうか?

>>43
CGIですか、調べてみます。ありがとうございます。

>>44
それはどうしてでしょうか?
>とくにプログラミング初心者の場合は
自分が初心者なのですごく気になります。

出かけるので夕方以降に見させて頂きます。
46デフォルトの名無しさん:2005/07/24(日) 08:34:47
4743:2005/07/24(日) 14:28:50
どの言語がいいかは初心者によくある質問だが、
少ない情報で言い切れるヤシはいない。
それと、cgiを調べろということじゃあない。
ソフトは単純な良し悪しじゃないともいったつもりだが。考えて読め
本当に説明すると長長と語れてしまうことになるんだぞ。
情報がないぞ。何を優先するつもり?簡単さ?仕事案件の多さ?
48デフォルトの名無しさん:2005/07/24(日) 19:34:18
VB.NET初心者ですが質問です。
例外を防ぐ方法をお聞きしたいと思います。
VisualStudio.NETを利用してフォームを作成し実行したところ
System.Arithmetic Exceptionが発生しました。
デバッグモードで調べたところ、以下の部分で例外が発生していることが
わかりました。


#Region "Windows フォーム デザイナによって生成されたコード"
 :
 :
Me.txtHogeHoge.Font = New System.Drawing.Font("MS ゴシック", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(128, Byte))

この部分は直接コーディングしたのではなく、フォームデザイナ上でプロパティ画面をいじって
フォントを設定したのですが、なぜ例外になってしまうのでしょうか?
他にもラベルなどでフォントを指定した部分で例外が発生します。
フォントをデフォルト設定にすると例外は発生しません。
MSゴシックもインストールされているのですが、なぜ例外になるのか
いまいちぴんとこず悩んでいます。。。
サイズを変えてもMSPゴシックにしても同じ例外が。。。
ただ、同じフォント設定でも全く例外が発生しないテキストボックスもあり、
何がいけないのかわからないんです。
49デフォルトの名無しさん:2005/07/24(日) 20:56:15
>>46
どうもありがとうございます。難しそうですね・・・

>>47
思いやりのあるレスありがとございます。

自分で作ったプログラムが動くって楽しそうだな、
自分の仕事をもっと効率よくできるようなソフトを自分作れるといいな
プログラミングってかっこよさそうだな
という、ごく単純な動機でプログラミングに興味を持ったのですが、
勉強しはじめると、そういった動機より、大変だな・・・構文覚えるの面倒だな・・・という
気持ちが強くなってきてて、しかも、業界の流れが早く、自分の勉強した
言語がほんの数年後には価値のないものになってしまうかもという不安感

こういう自分は向いてないのかもしれませんね・・・

みなさんはプログラミング言語の勉強は楽しかったですか?
50デフォルトの名無しさん:2005/07/24(日) 21:12:21
>>48
例外メッセージの詳細は?
51デフォルトの名無しさん:2005/07/24(日) 21:36:12
>>50
Fontを設定している個所で発生した例外をキャッチしたところ
System.Arithmetic Exceptionが発生しており、
Exception.Messeageには
「算術操作でオーバーフローまたはアンダーフローが発生しました。」
とのことです。
52デフォルトの名無しさん:2005/07/24(日) 21:47:29
それは分かってる。ArithmeticExceptionはそう言う例外だ。
どのメソッドで発生してるかを聞いてる。
53デフォルトの名無しさん:2005/07/24(日) 21:50:24
ああ念のために言っておくとキャッチしたExceptionを.ToString()したときにずらずら出てくる"場所"のことな
54デフォルトの名無しさん:2005/07/24(日) 21:57:10
>>53
最近の若いもんはスタックトレースも知らんのか。
55デフォルトの名無しさん:2005/07/24(日) 22:02:11
53としては知っているが、51がいかにも知らなさそうだったので。
56デフォルトの名無しさん:2005/07/24(日) 22:07:14
> ああ念のために言っておくとキャッチしたExceptionを.ToString()したときにずらずら出てくる"場所"のことな

ToString()してみました。おっしゃっているのはここでしょうか。
at System.Drawing.Font.Initialize(FontFamily family, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont)
at System.Drawing.Font..ctor(String familyName, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet)
57デフォルトの名無しさん:2005/07/24(日) 22:08:13
>>53
わしも知らんぞw
58デフォルトの名無しさん:2005/07/24(日) 22:30:32
ArrayListをカプセル化した場合のアクセサの書き方ってどうなるの?
59デフォルトの名無しさん:2005/07/24(日) 22:39:21
VB.NETとVBAってどちらのほうが難しいんですか?
60デフォルトの名無しさん:2005/07/24(日) 22:41:41
>>59
どっちもどっち
61デフォルトの名無しさん:2005/07/24(日) 22:51:53
>>60
そうなんですか。
VBはアプリケーション開発用のソフトで、VBAはExcelとかAccessの機能拡張のための
プログラムなんですよね。
でも、いまいち違いがよくわらないです。
VBでExcelと連動するソフトが作れるし、逆にVBAでもできるですよね?
62デフォルトの名無しさん:2005/07/24(日) 22:52:29
>>56
む〜、Font.Initializeの中見てみたけど直接ArithmeticException投げるような操作が見つからね。
フォントを右クリックでリセットするとどうなる?
あるいは一旦コントロールを消して作り直したらどうなる?

>>58
カプセル化? 継承じゃなくて?
求めているのはDefaultキーワードかな?
6358:2005/07/24(日) 22:55:05
>>62
いえ、getとかのほうです。
64デフォルトの名無しさん:2005/07/24(日) 23:08:12
普通に引数付きプロパティを書けばいい。
Public Property Item(ByVal v As Integer) As Integer
とか。
Defaultキーワードを付ければ
Dim a As New IntegerList
a.Add(3)
a(0) = a(0)
とか書けるようになる。
65最凶VB厨房:2005/07/24(日) 23:39:49
>49
>構文覚えるの面倒だな
激しく同意!めんどくせーもんはめんどくせーよ。
>言語がほんの数年後には価値のないものになってしまうかもという不安感
もちろんそうなる可能性はある。
そう思うなら複数の言語を勉強すればよい。
だけどVB.NETの勉強が無駄になることは無い。
プログラミングしなくなるなら別だが。
>64
なるほど。( ..)φメモメモ
ってか思わずIntegerListって探してしまったわ。
66デフォルトの名無しさん:2005/07/25(月) 00:14:30
最凶氏はデキる人なのか馬鹿なのかわからんな。
時々するどい回答をみせるかと思えば、デフォルトプロパティなんて
猿でも知ってるようなことに驚いているし。

C#のインデクサと対比してよく語られてる話題だと思うが。
67最凶VB厨房:2005/07/25(月) 00:41:59
鋭い回答あったっけ?基本馬鹿だけどなー。
インデクサの実装したことないんよ。(゜∇゜)
68デフォルトの名無しさん:2005/07/25(月) 14:33:11
> む〜、Font.Initializeの中見てみたけど直接ArithmeticException投げるような操作が見つからね。
> フォントを右クリックでリセットするとどうなる?
> あるいは一旦コントロールを消して作り直したらどうなる?

作り直しても同じ例外。
違うフォントを指定しても同じ例外。
フォントを指定するのをやめてデフォルトのフォントにすると例外発生せず。
領域から文字がはみ出てはいけないのかと思い、
領域をうんと広げてみても同じ例外。
という状態です。
69デフォルトの名無しさん:2005/07/25(月) 15:01:58
ttp://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=15108
ビデオカードのドライバが怪しいんじゃないかという意見。
Googleにもほとんど引っかからないなぁ……。

と思ったら良さげなの発見。
ttp://dturini.blogspot.com/2004_08_01_dturini_archive.html
70デフォルトの名無しさん:2005/07/25(月) 16:29:11
Basicの気持ち悪い構文どうにかなりませんか???
71デフォルトの名無しさん:2005/07/25(月) 16:36:38
C#使え。
72デフォルトの名無しさん:2005/07/25(月) 17:46:08
>>70
> Basicの気持ち悪い構文どうにかなりませんか???

どうにもならんと思うが、どの辺が気持ち悪いのか教えてくれ。

おれは、= が代入記号になったり演算子になったりするのが気持ち悪いな。
73デフォルトの名無しさん:2005/07/25(月) 17:56:37
代入も演算の一種だぜ。
74デフォルトの名無しさん:2005/07/25(月) 18:03:04
>>73
> 代入も演算の一種だぜ。

えっ? ほんと? 知らんかった。
7570:2005/07/25(月) 19:05:50
変に大文字の構文とか、{}がないとか、THENとか。
でもVBよりVC#の方が情報が少なくて困る
76デフォルトの名無しさん:2005/07/25(月) 19:07:20
>>75
方言みたいなもんでほとんど一緒だからなんとかなる
77デフォルトの名無しさん:2005/07/25(月) 19:13:51
C#の情報、少ないか?
VB6を含めるならともかくVB.NETとC#ではそう差はないと感じるんだが。
78デフォルトの名無しさん:2005/07/25(月) 19:25:42
>>77
相互に変換できるから
79デフォルトの名無しさん:2005/07/25(月) 21:02:06
VB.NETもC#もたいして変わらんやんか
80デフォルトの名無しさん:2005/07/25(月) 21:13:45
っそ、大して変わらん。
ちょっとしっくり来なくて気持ち悪いという程度。
だから>>70もそういっとる。

おれは大文字なのは馴れたな。
81デフォルトの名無しさん:2005/07/25(月) 21:15:58
Whileの条件節で代入できないのは痛いな、とか
82デフォルトの名無しさん:2005/07/25(月) 21:47:57
あれ?C#ってCみたいに"="は演算子で結果は右辺の値になるんだっけ?
なんか違うような気がしたけど。

まあ、おれはあれは悪弊だと思うんで使わないけど。

しかし2005年にもなってまだCの文法が読みやすい、なんてほざくのがカコイイなんて
思ってるお方がいるのね。

自分に正直になれよ。読みにくいっしょ、Cのコードって。
俺は組み込みメインなんでCはよく使うけど、(c#は使ったことない)本当にCの表記法は糞だと思う。
丁寧にラベルつけたアセンブラのコードの方が余程可読性が高いケースもある。
83デフォルトの名無しさん:2005/07/25(月) 22:23:26
だからもう趣味のレベルだろ。どうせ同じアセンブリ吐けるんだし。
C/C++はポインタのせいで面倒なことになってるが、それをなくしたC#/Javaなら問題なし。
私はVBより好きだし読みやすく感じる。慣れてるからと言うのも大きいけど。
84デフォルトの名無しさん:2005/07/26(火) 14:08:21
フォームの大きさを変えた後にフォームを閉じ、再度、フォームを開いたら、フォームの大きさが保存されるようにしたいのです。なにかいい方法はないでしょうか?
もしありましたら、ご教授下さい。よろしくお願いします。
85デフォルトの名無しさん:2005/07/26(火) 14:33:14
アプリケーションの終了/開始時って話じゃなくて、同一プロセスの中での話だよね?
CloseイベントでSizeを適当なフィールド変数に保存してやればいいじゃん。
86デフォルトの名無しさん:2005/07/26(火) 14:58:10
>>85
アプリケーションの終了後なんですよー。
プロセスも異なっています。
87デフォルトの名無しさん:2005/07/26(火) 15:18:55
INIかコンフィグファイルに書き込むようにする
88デフォルトの名無しさん:2005/07/26(火) 15:36:31
.Net Frameworkって、INIやコンフィグファイルを読み書きするようなクラスって、ありましたっけ?
その辺のクラスやサンプルってご存じないですか?
89デフォルトの名無しさん:2005/07/26(火) 16:02:16
まあ自分で書け。
設定用の各種プロパティを含んだクラスを作ってそのインスタンスに値を入れてXmlSerializerで永続化というのが一つの手法だ。
90デフォルトの名無しさん:2005/07/26(火) 16:09:19
横に細長いPictureBoxを作り、そこを塗りつぶしたいと考えています。
コントロールの中に文字を表示させるので、反転モード(?)にしたいです。
そこで下記のようなコードを書きました。

Dim frm As Form1 = ActiveForm
Dim intTop As Integer = PicBox1.Top
Dim intLeft As Integer = PicBox1.Left
Dim intWidth As Integer = PicBox1.Width
Dim intHeight As Integer = PicBox1.Height
Dim intDrawWidth As Integer = 50
Dim r As Rectangle = New Rectangle(frm.Left + frm.PicBox1.Left, frm.Top + intTop, intDrawWidth, intHeight)
Dim lngBarColor = Color.FromArgb(0, 0, 128)

ControlPaint.FillReversibleRectangle(r, lngBarColor)

上記のコードだと、塗りつぶされる範囲がPictureBoxの右下にずれてしまいます。
Dim r As Rectangle = New Rectangle(frm.PicBox1.Left, intTop, intDrawWidth, intHeight)
このようなコードも試しましたが、フォームを移動しても
常に左上の方が塗りつぶされてしまいます。
コントロールにぴったり収まる感じで、反転モードで塗りつぶすにはどうしたらよいのでしょうか?
91デフォルトの名無しさん:2005/07/26(火) 20:59:50
>>90
MSDNちゃんと見てる?まあ見てないんだろうけど。
そんなのタイプしてる間にMSDN見たほうがよほど早いよ。この程度の問題なら普通ね。

試したわけじゃないけど、コントロールにRectangleToScreenメソッドというのが
あるようだから、これを使えばうまくいくんじゃないか。

あとはWin32APIのInvertRectを使う手もある。
92デフォルトの名無しさん:2005/07/26(火) 21:00:26
>>90
MSDNちゃんと見てる?まあ見てないんだろうけど。
そんなのタイプしてる間にMSDN見たほうがよほど早いよ。この程度の問題なら普通ね。

試したわけじゃないけど、コントロールにRectangleToScreenメソッドというのが
あるようだから、これを使えばうまくいくんじゃないか。

あとはWin32APIのInvertRectを使う手もある。
93デフォルトの名無しさん:2005/07/27(水) 00:05:17
>>84
レジストリに書いちゃうって手もあるよ。
94デフォルトの名無しさん:2005/07/27(水) 06:37:29
>>93
それを如何に簡単にやるかの議論だろ?w

おしゃれで融通が利くのは、>>89が書いたクラスのシリアル化・逆シリアル化を行う方法だと思う。
9590:2005/07/27(水) 09:30:05
>>91
ありがとうございました。無事コントロールの位置を取ることができました。
3D表示にすると高さと幅があやしいですが・・・なんとかなりそうです。

MSDN・・・見てるつもりですが見方が甘いです。。。
VB5からの移行作業を始めて一週間。
なんだか難しくなってるな〜という印象。
JavaとかCとかやったことあると簡単なんですかね?
96デフォルトの名無しさん:2005/07/27(水) 12:34:13
>>94
横から突っ込んで悪いけど、「レジストリに書く」っていう話と
「シリアル化する」って話は抽象水準変わらないと思うよ。
97デフォルトの名無しさん:2005/07/27(水) 18:17:36
ブラウザとかで選択された文字列を取得したり
ブラウザなどのテキストボックスに文字を送ったりするのにはどうしたらいいですか??
98デフォルトの名無しさん:2005/07/28(木) 10:24:01
とりあえずVisual Basic.NET2003を買えば
開発できるのですよね?
99デフォルトの名無しさん:2005/07/28(木) 10:28:19
>>98
できる
100デフォルトの名無しさん:2005/07/28(木) 10:28:23
とりあえず腕も必要。
101デフォルトの名無しさん:2005/07/28(木) 10:54:34
とりあえず、買わなくても出来るから、SharpDevelopとかをぐぐって落とせ。
それで満足できなくなったら金を出せ。
102デフォルトの名無しさん:2005/07/28(木) 11:12:31
最低限、.NET Frameworkさえあればできる。IDEはつかないが。
103デフォルトの名無しさん:2005/07/28(木) 17:16:13
.NETフレームワークの2.0を入れれば
1.1のソフトも動作しますか?
104デフォルトの名無しさん:2005/07/28(木) 20:50:07
動く可能性はそれなりにある。
動かす場合は.configファイルにサポートする.NETのバージョンを書く必要がある。
<supportedRuntime>要素。
105デフォルトの名無しさん:2005/07/29(金) 00:04:38
VB.NETで他のアプリケーションの情報ってどうやって手に入れるんでしょうか?
例えばヤフーメッセンジャーのチャットの他人の発言のどんなログを受信したとか
106デフォルトの名無しさん:2005/07/29(金) 00:17:43
>>105
わけわからん質問だなあ。。
君が作った、君独自の「俺様フォーマット」である情報を記録するソフトがあるとする。

その「俺様フォーマット」をたちまち解析して、必要な情報を取り出すような
エスパーみたいなソフトがありうると思うか?
107デフォルトの名無しさん:2005/07/29(金) 04:44:42
>>106
それを質問してるんだろ?
わからねーなら口出すな
108デフォルトの名無しさん:2005/07/29(金) 08:42:48
>>107
106 をどう読むと 「わからない」 になるんだ?
おおむね無理って内容だろうが。
109デフォルトの名無しさん:2005/07/29(金) 09:22:57
>>105
この質問って質問になってないよ。
外を歩いている人の年収や健康状態をとりあえず知りたいんだけど、どうすればって言ってるのと同じ。
110デフォルトの名無しさん:2005/07/29(金) 09:51:14
>>107
ばーかばーか
111デフォルトの名無しさん:2005/07/29(金) 10:00:52
>>105
そんなことはできません。きっぱり。
112デフォルトの名無しさん:2005/07/29(金) 13:55:28 BE:347117388-
>>105
メッセンジャーのDLLインポしたら?
知人がヤフチャのログ解析して
「占い」とか「天気予報」ってログ書き込んだら
自動的に「大吉」とか「www.tenki.jp」とか発言するツール作ってる
113デフォルトの名無しさん:2005/07/30(土) 10:26:55
よそで聞いたらヤフーメッセンジャーの発言を読む方法が分かりました。
ここで無理って言ったやつはただの馬鹿。


みたいなあほな書き込みが返って来るぞ

114デフォルトの名無しさん:2005/07/30(土) 10:30:11
ここにそんな期待をするほうが間違っている。
115デフォルトの名無しさん:2005/07/30(土) 10:33:34
>>114
仲間か?
116デフォルトの名無しさん:2005/07/30(土) 10:34:54
さあまたいつもの流れの時間がやってきました
117デフォルトの名無しさん:2005/07/30(土) 16:26:25
元の質問はヤフーのログ読みの質問じゃないよな。
汎用的な他のアプリ情報奪取方法。
118デフォルトの名無しさん:2005/07/30(土) 16:27:41
>>117
で、どうやったら汎用的な他のアプリ情報を取れるんですか?
119デフォルトの名無しさん:2005/07/30(土) 17:12:13
エスパーだったら可能です。
120デフォルトの名無しさん:2005/07/30(土) 17:23:40
>>119
まじめに答えてくださいよ
そんなくだらない事言って何が面白いんですか?
121デフォルトの名無しさん:2005/07/30(土) 17:29:29
パケットキャプチャでよければ作れるけど?
あと、キーボードフックとかも作れるけど
122最凶VB厨房:2005/07/30(土) 17:49:25
そんな手間かからんのであれば作って欲しいぞなもし。
123デフォルトの名無しさん:2005/07/30(土) 17:59:24
そんなもんわざわざ作らんでもすぐ見つかるじゃん。
124デフォルトの名無しさん:2005/07/30(土) 18:37:07
>>105あたりから>>110で回答済みなのに。
>>120みたいなパターンの煽りって正直しつこい。
125デフォルトの名無しさん:2005/07/30(土) 18:41:08
>>124
わからねーなら口出すな
126デフォルトの名無しさん:2005/07/30(土) 18:45:33
>>125
じゃあ具体的にどのような仕様のアプリを作りたくて、
何を試したり調べたりしたのか出してくれよ。
あんな漠然とした質問じゃ誰も答えられませんよ。

隣のアプリが何をしてるかなんて、知らないのが当然なんですから。
127デフォルトの名無しさん:2005/07/30(土) 18:49:20
128デフォルトの名無しさん:2005/07/30(土) 18:57:15
>>125
ばーかばーか
129デフォルトの名無しさん:2005/07/30(土) 19:11:04
130デフォルトの名無しさん:2005/07/30(土) 19:37:42
もう、面白くもないな。
131デフォルトの名無しさん:2005/07/31(日) 02:02:15
急速にスレの質が低下してまいりました
132デフォルトの名無しさん:2005/07/31(日) 02:04:38
>>112
DLLインポートってどうやるんですか?
133デフォルトの名無しさん:2005/07/31(日) 04:52:33
( ´ー`)y―┛~~夏ですなぁ・・・・
134デフォルトの名無しさん:2005/07/31(日) 08:05:18
まったくのVB.NET初心者なのですが、
VBでパラメータを指定して、SQLのSPを呼び出すという簡単なプログラムを作りたいのです。
で、MSDNの10行でズバリシリーズにやり方が書いてあるのですが、質問させてください。

'DataSet の生成
Dim ds1 As DataSet = New DataSet("CustomerOrders")

という一文があるのですが、"CustomerOrders"というのは何なのでしょうか?
もともとのDBにはこのような名前のテーブルはありません。

ユーザーが任意につけるものなのでしょうか?それならば、これは何の名前で
たとえばどのようにつかうのですか?

レベルが低くてすみません。
135デフォルトの名無しさん:2005/07/31(日) 08:38:52
>>134
@ITに簡単なADO入門の記事があるからそれを見ろ。
136デフォルトの名無しさん:2005/07/31(日) 09:25:05
>>134
CustomerOrdersというデータセットを作るということだよ。
137デフォルトの名無しさん:2005/08/01(月) 10:00:15
test
138デフォルトの名無しさん:2005/08/01(月) 10:04:24
test
139デフォルトの名無しさん:2005/08/01(月) 16:29:16
VB.NET ASP のTextBoxの改行消えてします。


この様な現象が発生して困っています。

画面にTextBox(MultiLine)とButtonを配置する。


実行してTextBoxに
[改行]
[改行]
あいうえお

と入力してButtonを押すと。
[改行]
あいうえお

となって、改行が消えてしまいます。Buttonには、何も処理を入れていません。


解決方法がないでしょうか?

.Net 2003
FrameWork1.3

140デフォルトの名無しさん:2005/08/01(月) 20:29:59
やっぱり1.3はつっこむところか
141デフォルトの名無しさん:2005/08/01(月) 20:30:32
複数人で開発するプロジェクトの環境構築で質問です。
Visual Source Safe は使ってはいけないと言われています。

VB6では画面単位でプロジェクトを作成し、子画面のフォームを
別フォルダの別プロジェクトから追加して、画面単位でexeを
作成していました。フォルダ構成としては
Common
メニュー
画面1
画面2
というようにして、それぞれのフォルダが別々のプロジェクトです。

VB.NETでも同様なことはできるでしょうか?
新たにソリューションなる単位ができて、ちょっと厄介だなと
感じています。

VB6でいうところの *.bas も簡単に別ソリューションからインクルード
できなくなっているようにも感じたのですが。

142デフォルトの名無しさん:2005/08/01(月) 21:08:29
出来る。
プロジェクトへの追加のデフォルトはコピーなので、開くボタンの右の小さい奴からリンクの追加を選択。

あと、回答になってるかわからんが、DLLの作成をして参照したほうがスマート。
クラスでもフォーム(・・これもクラス)もDLLでコンパイルして、使う側で参照すればいい。

143デフォルトの名無しさん:2005/08/01(月) 21:18:05
そしてできあがる相互参照。……できあがってない。
144デフォルトの名無しさん:2005/08/01(月) 21:19:41
>>142
本日はこの点ではまっていたため、少し安心しました。
ありがとうございました。
また明日試してみたいと思います。

時間があればDLLも検討してみたいですが、あまり
使ったことがないので後々責任問題になるとちょっと怖い。。

145デフォルトの名無しさん:2005/08/01(月) 21:23:22
>>140
1.3探しちゃいました
146デフォルトの名無しさん:2005/08/01(月) 22:07:38
>>144
DLLいっても、今までのActiveXDLLとかと違って、普通のライブラリだ。
この部分の仕様は凄くシンプルになって、それこそ抵抗なく入れるから使ってみたほうがいいよ。
構える必要全くなし。
147デフォルトの名無しさん:2005/08/03(水) 19:41:21
Win2000 SP4で開発しています。

メモ帳を起動しようとして

Shell("notepad.exe", AppWinStyle.NormalFocus, True)

としたのですが、プロセスは起動するんですが、メモ帳が表示されなくて困ってます。
引数に適当なファイルを渡しても同様です。
何か他に設定が必要なのでしょうか。

148デフォルトの名無しさん:2005/08/03(水) 19:50:31
>>147
画面の領域外に表示されてるんでない?
マイナス座標とか
149デフォルトの名無しさん:2005/08/03(水) 19:50:48
System.Diagnostics名前空間のProcessクラス使えー。
150146:2005/08/03(水) 22:53:37
>147

そんなことあるんですか
画面の領域内に表示するにはどうすればよいのでしょう

>149

プロセスが終了するまで待たねばならないので、何とかShell関数でやりたいのです。
151デフォルトの名無しさん:2005/08/03(水) 23:01:18
>>150
ProcessクラスにはWaitForExitメソッドなんてのもある。
152デフォルトの名無しさん:2005/08/04(木) 00:23:35
単精度浮動小数点数型 (Single) の変数は、IEEE 32 ビット (4 バイト) の浮動小数点数の変数です。
負の値は -3.402823E38 〜 -1.401298E-45、正の値は 1.401298E-45 〜 3.402823E38 の範囲の値をとります。
単精度浮動小数点数型の型宣言文字はエクスクラメーションマーク (!) です。

上記のうち
1.401298E-45 〜 3.402823E38 は何を示しているのでしょうか。

Eとは自然対数の底であり、2.171828...
ということらしいですが、これだけでは十分理解できませんでした。
どなかたご教授下さい。
153デフォルトの名無しさん:2005/08/04(木) 00:32:31
この場合のEは自然対数とは関係ない(自然対数の底は通常、小文字eで表す)。
これは指数表記。
例えば 1.3E2 なら、1.3 * (10^2) = 1.3 * (10 * 10)を表す。
負の指数は、正の指数の逆数。 1.32E-2 = 1.32 * (1 / (10^2)) = 1.32 * 0.01
154デフォルトの名無しさん:2005/08/04(木) 00:33:43
ちなみに
Dim a As Single = 1.3E-4
なんて記述は有効だから試してみると良い。
155デフォルトの名無しさん:2005/08/04(木) 00:48:17
>>153-154
感謝感激。
これから試して見ます。
156最凶VB厨房:2005/08/04(木) 01:23:54
自然対数の底
2.7182818284590452354
157デフォルトの名無しさん:2005/08/04(木) 12:43:17
まあ他に優先的に覚えなきゃいけないことが増えたからしょうがないんだけど
こういう昔はどんな入門書にも書いてあったことが、
今の時代には入門書には全然解説されてなく、かといって中上級者向けの本や
MSDNでは知ってて当然の前提として書かれているわけで、今の若い人はそういう意味じゃ不幸だな。
158デフォルトの名無しさん:2005/08/04(木) 14:51:52
http://pc.watch.impress.co.jp/docs/2005/0804/mobile301.htm

マイクロソフトOBでWindows 1.xの時代からWindowsの開発に関わっていた方(2000年に退職)から
コメントをいただいた。引用させていただくと、

“私の住むシアトル近辺のマイクロソフトOBの間では、2004年の前半に「Longhornがキャンセルに
なったらしい」という噂がさかんに交わされ、その後次々と「OFSはLonghornとは別」、
「Managed APIは採用しない」とのアナウンスがありました。結局の所、もともと計画していた
Longhorn は出せなくなったけれども、いまさらキャンセルになったとは言えないので、出せるもの
だけかき集めてLonghornと呼ぶことにした、という見方がこちらでは一般的です”
159デフォルトの名無しさん:2005/08/05(金) 12:31:54
ディスクの空き容量調べる場合はどうすればいいですか?
160デフォルトの名無しさん:2005/08/05(金) 12:39:35
マネージドで書くならWMIを使う
ttp://homepage3.nifty.com/midori_no_bike/CS/filesys.html#181

CreateObjectでFileSystemObjectを作ってGetDrive/FreeSpaceを使う
Win32APIのGetDiskFreeSpaceExを使う
シェル関数のSHGetDiskFreeSpaceを使う
161159:2005/08/05(金) 21:27:50
>160
なるほど、ありがとうございました。
162デフォルトの名無しさん:2005/08/05(金) 21:40:15 BE:347117388-
クリレポ.NETについて

通常は帳票を印字するときに

No. | 県名(ヘッダ)
1, 東京都
2, 神奈川県
3, 千葉県
4, 埼玉県
5, 静岡県
6, 長野県

なぐあいに↓方向に描画するんだけど
これを横にして

ヘッダ 詳細
No.  1,    2,       3,    4,     5,    6,
県名 東京都 神奈川県 千葉県 埼玉県 静岡県 長野県

のように表示させたい
横方向に描画する方法まではわかったんだけど
ヘッダの部分(No,県名)を詳細の左側に持ってくる方法がわからない

解決方法をご存じだったらご教示いただきたい


163デフォルトの名無しさん:2005/08/07(日) 03:09:16
VB.NETから「VS.NETで作られたマネージドC++のdll」を利用したいのですが
アンマネージドC++と同様の方法で利用できますでしょうか?

昔VB6.0のときにC++(アンマネージド)のdllを利用するときは
このような↓感じだったと思うのですが。
Declare Function Add Lib "test32.dll" (ByVal nLeft As Integer, ByVal nRight As Integer) As Integer
このような書き方で構わないでしょうか。実際にやってみると稼動しているようですが
もっと望ましい書き方があるのかなー?と疑問に思いまして。

VB.NETからC#のメソッドを利用するときはインスタンスをnewして
簡単に利用できたのですが…。
164デフォルトの名無しさん:2005/08/07(日) 03:11:59
>>163
本当にManagedのC++なら、参照設定で追加するだけで使える。C#で作ったクラスを利用するのと同じ要領で。
165デフォルトの名無しさん:2005/08/07(日) 03:23:29
>>163さんと似たような問題、というか状況なので
少し質問させてください。

現在、
VB.NETからManagedC++
(とはいってもunManagedC++をVisualStudio.NETでManaged用に
手直しした程度)のdllをDeclareで呼び出し、その中でさらにunManagedC++のdllを
呼び出すプログラムを作成しています。

しかし、なぜかVB.NETで例外が頻発し、
ラベルやテキストボックスのサイズを指定するところで
System.Arithmetic.Exceptionが頻発してしまいます。
ラベルの色指定もできず困っています。
ただ、unManagedC++のdllの利用をやめるとそれが解消します。
unManagedC++のdllの利用って、何か注意が必要でしょうか?
166デフォルトの名無しさん:2005/08/07(日) 03:26:15
> Declare Function Add Lib "test32.dll" (ByVal nLeft As Integer, ByVal nRight As Integer) As Integer
> このような書き方で構わないでしょうか。実際にやってみると稼動しているようですが

自分もこの呼び出し方を利用していました。
それで稼動していたし。
C#みたいに参照設定でしようできるんですね。
どっちのほうがいいんですか?
何か違いがあるんでしょうか?
167デフォルトの名無しさん:2005/08/07(日) 04:44:03
>>69さんの意見も参考にしてねv
168デフォルトの名無しさん:2005/08/07(日) 05:18:49
システムが用意しているアイコンをForm上のPictureboxに
表示したいと思っています。

下記のようにすればコーディングできるとわかりましたが
これをどのイベントが発生したときに行えばいいのか悩んでいます。
FormがLoadされたタイミングでやればずっと表示され続けるのかと
思ったのですが、デバッグモードで1行ずつ表示させると一瞬表示されるけど
その後見えなくなってしまいます…PaintとかActivatedとかもあるかと思いますが
「一般的なメッセージボックスみたいにアイコンを表示しっぱなしにしたい」とき
皆さんはどうされますか?

'システムのアイコンを表示する
'PictureBox1のGraphicsオブジェクトの作成
Dim g As Graphics = PictureBox1.CreateGraphics()
'既定のアプリケーションアイコン(WIN32: IDI_APPLICATION)
g.DrawIcon(SystemIcons.Application, 0, 0)
169デフォルトの名無しさん:2005/08/07(日) 05:28:51
>>164さんありがとうございます。
以前C#みたいにできたらいいのに、と思っていたので実現できそうと知り安心しました。
「本当にManagedのC++なら」という部分の「本当に」が気になりますが
(他社の方が作ってくれたのですが、
一応managedとはいいつつも
既存のC++のソースをVS.NETで開きMFC化しただけ、とも聞いてます…
「本当に」ManagedC++といえるのか、ちょっと心配ですが)
ちょっとためしてみます。
170デフォルトの名無しさん:2005/08/07(日) 11:41:36
>>168
自分で出来ることは自分でする、出来る範囲で調べてみる、って意欲がないのなら
悪いこと言わない、プログラミングなんて止めとけ。

>>3
>どぼん!のVB道のトップページとTipsページ
>http://dobon.net/vb/
>http://dobon.net/vb/dotnet/index.html
171デフォルトの名無しさん:2005/08/08(月) 21:57:18
C#のbase キーワードはVB.NETでは何ですか?
172デフォルトの名無しさん:2005/08/08(月) 22:00:22
MyBase
もうちょっと具体的に説明した方が良いよ。基底クラスのメンバにアクセスするためのキーワード、とか。
173デフォルトの名無しさん:2005/08/08(月) 23:30:38
残念だがそれが出来るやつは聞かんでも分かっとる。
174デフォルトの名無しさん:2005/08/09(火) 22:54:30

アクセスからVB.NETへの移植をやっていますが、
.NETのコンボボックスで質問です。

コンボボックスのドロップダウンリストでいずれかの項目を
選択したときに、それとは別のテキストを表示させたい
のですが、そういうことは可能でしょうか?

例えば
0001 ABCDEF
0002 DEFCFE
0003 XYZXYZ
というリストがあったときに3番目を選んで、表示は
0003 だけにしたいのです。

ダメなら別の実装方法を考えないといけないです。
可能だとすれば、どの辺のイベントをどのように
処理したら良いものでしょうか?

175デフォルトの名無しさん:2005/08/09(火) 23:02:08
そのリストとやらはどういうオブジェクトなんだ?
ArrayList? Stringの配列?
それとも単純にItemsプロパティに一つ一つ"0001   ABCDEF" "0002   DEFCFE"……ってAddしていったのか?
176デフォルトの名無しさん:2005/08/09(火) 23:17:40
>>174
DropDownStyleをDropDownにしといてSelectedIndexChangedイベントで
Text設定するだけちゃうの?

>>175は池沼か?
177デフォルトの名無しさん:2005/08/09(火) 23:27:55
>>176
試してみた?
178デフォルトの名無しさん:2005/08/10(水) 00:35:03
ああそうか、単純にイベントでText設定してもダメだったような記憶がある。
ドロ臭い方法だけど、SelectedIndexChangedでタイマ起動して
タイマのイベントでText書き換えれば確実に出来る。

ドロ臭いのが嫌ならComboBox継承してOnSelectedIndexChangedをオーバーライド
してやれば可能じゃないか?
179デフォルトの名無しさん:2005/08/10(水) 00:39:11
>>178
泥臭い。
DisplayMemberを利用すべき。
180デフォルトの名無しさん:2005/08/10(水) 00:44:33
え?
181デフォルトの名無しさん:2005/08/11(木) 09:13:29
長時間掛かる処理にキャンセルボタンを付けたいのですが
キャンセルボタンだけがあるフォームをポップアップして
メイン画面のほうはさわれないようにしたいんですが
どうしたらよいでしょうか?
182181:2005/08/11(木) 10:06:43
できました。
183デフォルトの名無しさん:2005/08/11(木) 13:09:44
まあ、あれだ、ホントにキャンセルボタン押せるか確認してくれ
184181:2005/08/11(木) 13:54:56
押せたよ。マルチスレッドって便利すぎ
185デフォルトの名無しさん:2005/08/11(木) 15:51:33
テキストボックスに余白を設定したいのですが、どうすればよいでしょうか?


VB6なら、SendMessageを使って出来たのですが、.NETの方は同じやりかただと出来なかったので。

以下が書いてみたコードです。

 Private Const EM_SETMARGINS As Integer = &HD3s
 Private Const EC_RIGHTMARGIN As Integer = &H2s
 Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByRef lParam As Integer) As Integer
 Private Function MAKELONG(ByVal i As Integer, ByVal j As Integer) As Integer
   Return (i And &HFFFF) Or (j * &H10000)
 End Function

 Call SendMessage(textbox1.hand, EM_SETMARGINS, EC_LEFTMARGIN, MAKELONG(lngNewValue, 0)
186デフォルトの名無しさん:2005/08/11(木) 16:19:49
>>185
lParamを何故かByRefで渡しちゃってるよ。
187185:2005/08/11(木) 16:36:40
>>186
Σ(゚д゚ )
うぉ。ホントだ

ByVal に直したらいけました。
なんて初歩的なミスを、、、_| ̄|○

お騒がせして申し訳ありませんでしたm(_ _)m
188デフォルトの名無しさん:2005/08/11(木) 23:09:50
VB.NETでクッキーを作ることって可能ですか?
ヤフーチャットにブラウザからLOGONする時、
ユーザ名とパスワードを自動で入れたいのですが

現在自宅にネット接続環境が無いため
ネットカフェor職場での利用となるので履歴が残せず、
項目を毎回入れなければなりません
同じようにメールチェックなどが非常に困難です・・・。
クッキーは1分で消えるように設定したいと思ってます

VB.NET初級者の私でも作れるでしょうか?
どうかアドバイスお願いいたします・・・
189デフォルトの名無しさん:2005/08/11(木) 23:13:27
IEのクッキーを作りたいのか、独自アプリでクッキーに対応したいのかどっちだ。
190デフォルトの名無しさん:2005/08/11(木) 23:29:37
>>189
レスありがとうございます
IEのクッキーを作りたいです

まずはexeを実行して
comboboxからユーザー名を選択して実行すると
パスワードと共にクッキーとして保存されて、
LOGONページを開くとユーザ名とパスワードが入力済みとか。

アカウント数とユーザ名が長いので
複数件の登録をしたいんですが・・・。
初級者には不可能でしょうか??
191デフォルトの名無しさん:2005/08/11(木) 23:52:49
>534: 名無しさん@お腹いっぱい。 [sage] 04/10/23 14:37:24 ID:fg9Ewxsa
>'Yahooにログイン.vbs
>
>'-------------------
>
>Const login = "なまえ"
>Const passwd = "ぱすわーど"
>Set ie = CreateObject("InternetExplorer.Application")
>ie.visible = True
>ie.navigate "http://www.yahoo.co.jp/r/l1"
>Do
>    WScript.Sleep 100
>Loop While ie.Busy
>With ie.document.forms(0)
>    .item("login").value = login
>    .item("passwd").value = passwd
>    .Submit
>End With
192デフォルトの名無しさん:2005/08/12(金) 00:17:54
>>191さん
188です!
拡張子をvbsにして実行したところ、成功いたしました!
本当にありがとうございました!
193デフォルトの名無しさん:2005/08/12(金) 17:22:03
VB6ではtextBoxをコントロール配列に出来たと思うのですが、VB.Netでは出来なくなったのでしょうか?
何か変わりの方法が用意されてますか?
----VB6-----
for i = 0 to 10000
textbox(i)=i
next i
みたいなのです。
194デフォルトの名無しさん:2005/08/12(金) 17:30:25
自分で作るしかない。どぼんにそれっぽい実装コードがある。
というかそんな不安定な機構いらない。
195181:2005/08/12(金) 17:33:44
え?不安定な機構?
196デフォルトの名無しさん:2005/08/12(金) 18:35:52
197デフォルトの名無しさん:2005/08/12(金) 19:39:34
>>193
自分で別途コントロールの参照変数を配列にして参照するやり方が1つ。

または、名前を連番にしてコントロールを名称で呼び出すやり方。

または、Tagプロパティを上手く使ってやるやり方。

.net推奨は最後のTagか?
198デフォルトの名無しさん:2005/08/12(金) 22:36:13
コントロール配列にはVB特有の曖昧さがもたらす暗黒面もあったものの、
便利な面があったのも事実だと思うけどね。

あと、一応.NETでもコントロール配列の代替手段は容易されているよ。
VB6でコントロール配列つかった簡単なプロジェクト作って
アップグレードウィザードでアップグレードしてみ?

っていうか、質問する前になんでこんな当たり前のこと試してみないんだろう。
199最凶VB厨房:2005/08/12(金) 22:39:37
アップグレードウィザードはどこにあるんだ?
200デフォルトの名無しさん:2005/08/12(金) 22:53:25
>>199
知ってるくせに(笑)
厨房氏はスレが荒れそうになると現れるな
プレデターか君はw
201最凶VB厨房:2005/08/12(金) 23:43:24
>>200
しらねーから聞いてんだ!
何もしらねー何もわかんねー!!はぁぷみー
202デフォルトの名無しさん:2005/08/13(土) 00:57:53
質問させてください。
複数のラベルが存在しているユーザーコントロールを作成しました。

その中にとあるラベルの前景色、背景色を指定するプロパティがあり、
初期値をユーザーコントロールの前景色、背景色としたいのです。

貼り付けた時点では確かにその色がプロパティへセットされるのですが、
ユーザーコントロール自体の色を変更した際、そのプロパティの値は
変わらない状態です。

なにかいい方法はありませんでしょうか?

通常のForeColor、BackColorプロパティのように、
初期値なしみたいな設定できればいいのですが・・・。
203デフォルトの名無しさん:2005/08/13(土) 01:00:10
ユーザコントロールのBackColorChanged&ForeColorChangedで変更すればいいだろ
204デフォルトの名無しさん:2005/08/13(土) 01:17:10
>203
それも試してみたんですが、
今度は「とあるラベルの色を指定するプロパティ」に独自の値を
設定していた場合、「コントロール自体」の色を変更すると、指定していた色が
クリアされてしまいました・・・。

あと、プロパティブラウザで常に太字になるのは避けたいんですが・・・。
205デフォルトの名無しさん:2005/08/13(土) 01:22:48
イベントを作成する場合に(例えば、Clickの場合)
「OnClick」と「Click」がありますが、違いがよくわかりません。
どのように使い分けたらいいのか教えてエロい人!
206デフォルトの名無しさん:2005/08/13(土) 01:33:25
>>204
「とあるラベルの色を指定するプロパティ」で、値を別フィールドにとっておいて
イベントで独自色を使用してるかどうか判断すればいいだろ。
プロパティブラウザ? 気にするな。
気になるのならParentChangedでParentのBackColorとForeColorに合わせるようにするとかどうだ。

>>205
Onの方はProtectedなメソッドなので継承したクラスでオーバーライドするしかない。
そのかわり基底クラスのイベントを多少コントロールできる。
派生コントロールを作らないのならOnをいじる機会はない。
派生コントロールを作るのならデリゲートオブジェクトを作らないのでOnをオーバーライドする方が多少効率的。
207デフォルトの名無しさん:2005/08/13(土) 03:30:00
教えてください。
関数の中には、引数を指定しない場合、デフォルトの値が適用されるものがありますが、
これを自分で作成した関数で再現する場合、どのようにすれば良いのでしょうか

例えば↓で、bolFlag が指定されていないときは、True を指定したい
Public Function MyModule(Byval strData As String, Byval bolFlag as Boolean) As String
  ...
End Function
208デフォルトの名無しさん:2005/08/13(土) 03:33:55
ヘルプで調べると良いよ Visual Basic 言語リファレンス
209デフォルトの名無しさん:2005/08/13(土) 04:22:36
Optional ByVal bolFlag As Boolean = True ですね。
ありがとうございました。
210204:2005/08/13(土) 13:37:52
>206
重ねてのアドバイスありがとうございます。
OnForeColorChangedと、その追加したプロパティのセッターで
コントロール自体の色と一致しているかを保存しておき、
一致している場合のみ連動させるようにしました。
今のところ意図した動きになっているようです。
211デフォルトの名無しさん:2005/08/13(土) 17:27:56
追加で自己レス
ShouldSerialize[プロパティ名]を利用することで、
プロパティブラウザでコントロールの色と同じであれば
太字にならない(=ソースに色指定が出力されない)
ようになりました。
212デフォルトの名無しさん:2005/08/13(土) 21:29:40
質問です。
グローバルIPアドレスを取得したいのですが、どうすればよいでしょうか?

ttp://dobon.net/vb/dotnet/internet/dnslookup.html

このページの方法では、LANやルーターから割り振られたアドレスしか取得できないので。
213デフォルトの名無しさん:2005/08/13(土) 22:14:57

   〃∩ ∧_∧
   ⊂⌒(  ・ω・)  はいはいわろすわろす
     `ヽ_っ⌒/⌒c
        ⌒ ⌒





じゃかわいそうなのでマジレス。
内側だけで直接グローバルIPを見ることはできない。

たぶんDiCEみたいなDDNS更新ツール
(それかネットワークゲーマー用のユーティリティ?)を作りたいんだと思うけど、
やるなら外のページを定期的に見に行って、環境変数のREMORT_ADDRを
取得して比較するくらいしか方法ないと思う。

せめてルータが決めうちできれば、コマンドでの取得できそうだけどね。
214デフォルトの名無しさん:2005/08/13(土) 22:17:54
ギャース、REMOTE_ADDRだった。
逝ってきます・・・。
215デフォルトの名無しさん:2005/08/14(日) 10:27:19
DataGridで、カラムを複数行にする方法はありませんか?
テーブル:項目1,項目2,項目3,項目4,項目5
みたいなのを
項目1|項目2|項目3
     |項目4|項目5
みたいな感じに表示させたいです。
よろしくお願いします。
216デフォルトの名無しさん:2005/08/14(日) 13:18:42
SELECT 項目1,項目2,項目3 FROM HOGE
UNION
SELECT NULL,項目4,項目5 FROM HOGE
217215:2005/08/14(日) 21:31:19
>>216
ありがとうございます。
やってみたのですが、データの中身は2段になったのですが、項目名称が2段にならなかったです。
項目名称は1行しか無理でしょうか。
218デフォルトの名無しさん:2005/08/15(月) 10:31:59
CheckBoxにReadOnlyプロパティを追加したユーザコントロールを
作ろうとしています。

イメージとしては、チェックボックスがEnabled=Falseの状態、
文字列は通常のままにしたいのですが、
何かいい方法はありませんでしょうか?

できればCheckBoxを継承して作成したいのですが。
219デフォルトの名無しさん:2005/08/15(月) 10:39:17
CheckStateプロパティと、OnCheckStateChangedメソッドのオーバーライドでいいんじゃね?
220デフォルトの名無しさん:2005/08/15(月) 13:21:55
>>217
SELECT 項目1,項目2,項目3 FROM HOGE
UNION
SELECT NULL,'項目名4','項目名5'
UNION
SELECT NULL,項目4,項目5 FROM HOGE

てか、たぶんあなたのやりたいことは無理です。
221デフォルトの名無しさん:2005/08/15(月) 17:23:25
vb.net(プログラム自体も・・・)始めたばかりのピヨピヨです。
いろいろ調べたんですがどうしても解らないことがあります。
質問してもいいですか?
222デフォルトの名無しさん:2005/08/15(月) 17:25:13

VB6のころはテキストボックスのGotFocusでテキストを
全選択するのが良く行われてましたけど、VB.NETでは
これはできるのでしょうか?

単純にGotFocusでSelectAllメソッドを使ったのでは
できないようなのですが。

もともと、これは好きじゃないのですが、業務アプリの
慣習というのがあるんですよね。できない、かなり難しい
というのであれば、上の人を説得できるので。

223デフォルトの名無しさん:2005/08/15(月) 17:42:13
ん? 普通にできるけど?
ちなみに.NETではGotFocus/LostFocusよりもEnter/Leaveが推奨されている。
224デフォルトの名無しさん:2005/08/15(月) 17:45:07
>222
私もあまり好きじゃないのですが、同じく業務アプリ屋なので・・・。
VB.netの場合、EnterとLeaveで出来ます。
もしクリックした場合も全選択させたいなら、MouseDownも。
(うちはマウスクリックの場合は全選択させません)

ちなみに、Enterでもタブ移動させたいって言われてませんか?w
225デフォルトの名無しさん:2005/08/15(月) 19:39:32
妙なこと言う人たちだなあ。。
それって好き嫌いの問題か?

フォーカス移動時の全選択って合理性あるでしょ。
テキストエディタのように既存の文字列を編集する、ってアプリならともかく、
ほぼ毎回入力されるデータが変わる、っていうようなアプリなら。

だいいち、客に出すラーメンの味にラーメン屋自身の好みを押し付けるって不遜じゃないか。
226デフォルトの名無しさん:2005/08/15(月) 19:54:41
なんでそんなことでケチつけるかなぁ?
個人的に好きじゃないことの何が悪い?

意固地になって実装しないわけじゃないし。
注文されればその通りに作ってるさ。
227デフォルトの名無しさん:2005/08/15(月) 19:58:31
>225
コボラー乙
228最凶VB厨房:2005/08/15(月) 20:58:20
こだわりのラーメンは是非食いたいネ
あー腹減った。
229デフォルトの名無しさん:2005/08/15(月) 23:05:29
TcpClient で存在しないアドレスにconnectすると、
えらい時間が掛かってExceptionが返ってくるのだけど、
connectのタイムアウトを設定ってできないの?
230デフォルトの名無しさん:2005/08/15(月) 23:40:07
できない。
別スレッド作るかSystem.Timers.Timerを使うかして、そっちで強制的にCloseするぐらいか。
でもTcpClientでは接続中かどうかを判断もできないんだよね。.NET 2.0で思い出したように追加されたけど。
派生クラスを作ればProtectedメンバのClientプロパティ経由で状態を知ることはできるんだが。
派生クラスでタイムアウト付きConnectでも定義するか。
素直にSocket使った方が早いかもね?
231デフォルトの名無しさん:2005/08/16(火) 00:01:14
>>230
粗雑な問いに、丁寧にお答えいただき、大変恐縮でございます。
ご意見、参考にさせて頂きます。ありがとうございました。
232デフォルトの名無しさん:2005/08/16(火) 09:03:51
>>224
Enterイベントだとタブでの移動では全選択されるようなのですが、
マウスでクリックした場合は全選択されないですよね?
Clickイベントで実装するとテキストボックス内で他の場所を
クリックしたときにも全選択されてしまうし。

233デフォルトの名無しさん:2005/08/16(火) 10:36:43
>232
いや、だからMouseDown

>テキストボックス内で他の場所
これってどういう意味ですか?
234デフォルトの名無しさん:2005/08/16(火) 11:20:26
>>232
>Enterイベントだとタブでの移動では全選択されるようなのですが、
>マウスでクリックした場合は全選択されないですよね?
いや、実際は一旦全選択されているはずだけれどもね。
恐らく一旦全選択された後、解除されてしまうんだよね。
単にクリックしたはずが、クリックしたついでに微妙にドラッグになってしまっているために。

>>233
だいたい話の文脈でわかるでしょ?
そうでないならこの話題にのっかる資格はないと思うけど。
フォーカスが来たとき以外も全選択されてしまうということでしょう。
235デフォルトの名無しさん:2005/08/16(火) 11:57:37
>234

>恐らく一旦全選択された後、解除されてしまうんだよね。
これはあってる。

>単にクリックしたはずが、クリックしたついでに微妙にドラッグになってしまっているために。
これはちがう。単なるクリックでも全選択は解除される。
イベントハンドラの発生順の問題。
もし微妙にドラッグしちゃった時でも全選択させたいならMouseUp。

フォーカスが元々ある状態の場合は全選択したくないということであれば、
フラグでEnter経由かどうか判断するのがいいかと思う。

あと、いちいち絡むなよ。
236デフォルトの名無しさん:2005/08/16(火) 12:07:32
あー、ごめ。単にEnter経由で判断だけだと、
タブ移動後にクリックした時にも全選択になっちゃうわ。
なんかうまい方法ないかなぁ。
237デフォルトの名無しさん:2005/08/16(火) 12:12:18
Private mouseEnter As Boolean = False
Private Sub TextBox_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Enter
Me.SelectAll()
If Me.MouseButtons <> MouseButtons.None Then
mouseEnter = True
End If
End Sub
Private Sub TextBox_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp
MyBase.SelectAll()
mouseEnter = False
End Sub
238235-237:2005/08/16(火) 12:13:56
マウスクリックでのEnterかどうかを判断するようにしてみた。
239デフォルトの名無しさん:2005/08/16(火) 12:14:22
>あと、いちいち絡むなよ。
馬鹿じゃないの。
「何も分かってないならだまってろ」
それを君に遠まわしに言ってるのに。。
240デフォルトの名無しさん:2005/08/16(火) 16:31:55
なんだもっと煽り合いになるかと思ったのに過疎っちまいやがったつまらん
241最凶VB厨房:2005/08/16(火) 17:02:40
次はもうちょっとうまいこと釣ってくれよ。
242デフォルトの名無しさん:2005/08/17(水) 22:21:50
>>all
色々ありがとうございます。

MouseDownで実装してみましたが、これもClickと
同様、テキストボックスのテキストの一部だけを選択
することができなくなるという問題がありました。

>>237 オリジナルのテキストボックスを作るのかな?
面倒だから、そこまでは勘弁して欲しいな・・・。
VB.NETの継承とかコントロールの作り方はまだよく
分からないので。

243デフォルトの名無しさん:2005/08/17(水) 22:34:07
>>242
ユーザーコントロール作るの意外と簡単だよ。
前にも書いたけど、例えばここで解説されてる
http://www12.plala.or.jp/pc-labo/vb_net/14/main.htm

まあ実際には、ここの方法を応用してクラスライブラリ化した方が使いやすいと思う。

ユーザーコントロール作らないとしても、Tagにフラグ(mouseEnter)を食わせれば
ソースを必要以上に汚さずに>>237のやり方が使えると思う。
244デフォルトの名無しさん:2005/08/17(水) 23:00:54
会社で作った.netのソリューションファイルを家に持ってきて開こうとしたら開けません。
家のは2002で会社のは2003なんですけど、全く互換性無いんですか?
245デフォルトの名無しさん:2005/08/17(水) 23:03:31
2002のを2003のにするのはできるけど逆は無理。
一度2002のから2003のに変換したら逆変換は不可能。
246237:2005/08/18(木) 00:20:27
>242
243に同意。テキストボックスが複数あるなら(というかあるだろうし)
絶対にユーザーコントロール作ったほうがいいと思います。
おんなじロジックを全てのテキストボックスに組み込むなんて
ありえないっすよ。

あと、237のですが、mouseEnterがイベントハンドラの名前と
かぶってます。ちゃんと見直してからうpしろよ俺。
とりあえず、他の名前にしてください。
247デフォルトの名無しさん:2005/08/18(木) 17:13:45
VB.NETというよりAxWebBrowserの質問になるんですけど、
AxWebBrowserで表示されているPageからzipファイル等がResponse.Redirectされた場合、
ダウンロードが開始されるんですけど、そのダウンロードされているファイルのURLは取れますか?
248デフォルトの名無しさん:2005/08/18(木) 18:12:00
普通にBeforeNavigate2とかで取れるだろ
249247:2005/08/18(木) 21:15:24
実際に画面表示しないと取れないんですよ・・・。
zipとかのファイルであった場合、ダウンロードされるだけで画面表示されないので、
URLが変更されないみたい・・・。
250デフォルトの名無しさん:2005/08/18(木) 21:27:33
変更?
AxSHDocVw.DWebBrowserEvents2_BeforeNavigate2EventにuRLプロパティが存在するが?
251247:2005/08/18(木) 22:25:54
確かに存在するのですが、ダウンロードされるファイルのURLがuRLプロパティには入っていないんです。
nRLプロパティには現在表示しているURLが入っています・・・。
252247:2005/08/18(木) 22:26:51
ひょっとして、Response.Redirectがだめなんですかね・・・?
253デフォルトの名無しさん:2005/08/19(金) 00:05:39
リダイレクトが発生したときのリダイレクト先のURLはNavigateComplete2が一番早く取得できるみたいだね。
リダイレクトでダウンロードが発生するところを知らないから試せないが。
で、これがzipとかの場合AxSHDocVw.DWebBrowserEvents2_NavigateComplete2EventのuRLプロパティが正しく指さないってこと?
リダイレクトでhtml、直接zipはどっちも正しく指すんだけど。
//ん〜、FileDownloadが発生しない……
254デフォルトの名無しさん:2005/08/19(金) 06:54:28
VB.NETかVB6でできるだけ多くの環境で動くネットワークプログラムを作りたいんすけど
その場合VB6を選択すべきですか?
.NET FrameworkってXPでもデフォルトでインストールされてないし。
255247:2005/08/19(金) 09:21:50
AxWebBrowser.Navigate2でzipファイルを指定するとNavigateComplete2.uRLで確かにzipファイルのURLが取得出来るんですが、
webForm1.aspxをNavigate2した後に、aspxのButton_ClickでzipファイルをResponse.Redirectしても
NavigateComplete2.uRLにはwebForm1.aspxのURLが入ってる状態です。
FileDownloadは発生しないですね・・・。
256デフォルトの名無しさん:2005/08/19(金) 09:24:12
>>254
別にインストーラー作ればいいだけだし。
今更新規にVB6で作るって何考えてるのって思うし。
257デフォルトの名無しさん:2005/08/19(金) 09:37:01
>>256
んだな。今更ocx入れるのマンドクセ。
258デフォルトの名無しさん:2005/08/19(金) 13:50:47
別のPCのLAN上にIISがインストールされていれば
ローカルにIISがインストールされていなくても
ASPとかつくれますかね?
259デフォルトの名無しさん:2005/08/19(金) 14:27:04
何作るかしらんが、作るだけなら作れるでしょ。
ASPってのが何指してるのか不明だけど。
260デフォルトの名無しさん:2005/08/21(日) 06:12:21
>>69は天才だと思います。
261デフォルトの名無しさん:2005/08/21(日) 07:17:27
>>254
本当に「できるだけ多くの環境で動く」事が優先されるなら、VB6もVB.NETも不可だろう。

VB6で作成した場合、Windows Vistaまでしか動作保障されない。
VB.NETで作成した場合、Windows95や98は切り捨てることになるな。
262デフォルトの名無しさん:2005/08/21(日) 07:46:31
一応98は.NET動くぜ。
263デフォルトの名無しさん:2005/08/21(日) 21:58:21

名前空間に漢字使ってますが問題ないですかね?
問題あったら教えてください。

264デフォルトの名無しさん:2005/08/21(日) 22:06:07
少なくとも日本国内で開発する分には問題ないだろう。
実行には全く問題ない。
265デフォルトの名無しさん:2005/08/21(日) 22:06:07
>>263
漢字を使うという頭が問題あり
266デフォルトの名無しさん:2005/08/21(日) 22:09:45
現在Visibleプロパティがtrueになっているformを知りたいときって
どのようにしたらいいでしょうか?
If フォームA.Visible = True Then
 〜処理〜
ElseIf フォームB.Visible = True Then
 〜処理〜
 :
 :
みたいにif文やswitch文を書き連ねていくと、ソースが汚らしく思えるのですが。。。
267デフォルトの名無しさん:2005/08/21(日) 22:11:57
ActiveForm/ActiveMdiChildとかそんなんじゃ駄目か?
ていうか何をどうやったらそんな判断が必要になるんだか。
268デフォルトの名無しさん:2005/08/21(日) 22:26:40
ありがとうございます。
Form.ActiveFormで現在アクティブなフォームを表すFormが取得できるんですね。
if文やらswitch文よりすっきり書けそうですね。
269デフォルトの名無しさん:2005/08/21(日) 23:19:32
>>264-265
サンクス。
楽に仕事がこなせるならそれで良いのです。
270デフォルトの名無しさん:2005/08/22(月) 12:57:22
フォーム(Public Class WebForm1)にラベルがあります。
Public WithEvents Label1 As System.Web.UI.WebControls.Label

別モジュール(Module1)に関数(sub kan1)を作りました。その中で
Dim refForm1 As New プロジェクト名.WebForm1
というインスタンスを作りました。
で、refForm1.Label1.Text = "1"
とやると「オブジェクト参照がオブジェクトインスタンスに設定されていません」
と出ます。refForm1.Label1 ← ここでNothingになります。
なぜですか?
271デフォルトの名無しさん:2005/08/22(月) 13:36:13
Newしてないからだろ
272デフォルトの名無しさん:2005/08/22(月) 13:38:44
これじゃダメでしょうか?他のNewを思いつきません。
>Dim refForm1 As New プロジェクト名.WebForm1
273デフォルトの名無しさん:2005/08/22(月) 13:50:51
いや、あのよ、何がNothingなのか考えろ?
274デフォルトの名無しさん:2005/08/22(月) 14:16:49
横からでWebFormは知らんが、WebFormのインスタンスを生成しても、中のLabelのインスタンスが生成されてないんですよ。

Winformだと、コンストラクタからInitializeComponentが呼び出されてNewしてるんだけど、Webはしらん。しらべてみ。
275デフォルトの名無しさん:2005/08/22(月) 18:41:54
テキストボックスでIMEが変換中かどうか取得する目的で
WndProcをオーバーライドしているのですが
スペースのみ入力してタブキーで次のテキストボックスに移ったときは
ENDCOMPOSITIONが来てくれません。

If m.Msg = &H10F Then 'WM_IME_COMPOSITION
bIMEmode = True
End If
If m.Msg = &H10E Then 'WM_IME_ENDCOMPOSITION
bIMEmode = False
End If

対策としてとりあえずKILLFOCUSでIMEモードのフラグを
OFFにしてみましたが、あまり美しくありません。
If m.Msg = &H8 Then 'WM_KILLFOCUS
bIMEmode = False
End If

スペースのみの場合はWM_IME_COMPOSITIONが飛んでこないように
するにはどうすればよいでしょうか?
276デフォルトの名無しさん:2005/08/23(火) 00:20:20
え、飛んできてるんだけど>WM_IME_ENDCOMPOSITION
あとWM_IME_COMPOSITIONじゃなくてWM_IME_STARTCOMPOSITIONじゃないかなぁ
277デフォルトの名無しさん:2005/08/23(火) 08:20:20
>>276
WM_IME_STARTCOMPOSITIONにしたら期待通りの動作をしてくれました。
ものすごく感謝です。
278デフォルトの名無しさん:2005/08/24(水) 10:31:47
AccessのMDBからOelDbDataReaderを使用してデータを取得したいのですが、
OelDbDataReaderのループの中でもう1つOelDbDataReaderを実行すると
「この接続に関連付けられているDataReaderがすでに開いています。」とエラーになってしまいます。

OleDbConnectionを複数作成してコネクションを複数張れば出来ると思うのですが、
色々と不都合(トランザクションが作れないとか)がありそうなのでやりたくありません。

OelDbDataReaderをネストしない場合は正常にデータを取得できています。
下はエラーになるサンプルです。
何か根本的に間違えているのでしょうか?
よろしくお願いします。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Dim DbConn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\test.mdb")
  DbConn.Open()
  Dim dbCmd1 As OleDbCommand = DbConn.CreateCommand
  dbCmd1.CommandText = "select * from TEST_TAB "
  Dim dbReader1 As OleDbDataReader = dbCmd1.ExecuteReader()
  While dbReader1.Read()
    Trace.WriteLine(dbReader1("TEST_NO").ToString)

    Dim dbCmd2 As OleDbCommand = DbConn.CreateCommand
    dbCmd2.CommandText = "select * from TEST_TAB "
    Dim dbReader2 As OleDbDataReader = dbCmd2.ExecuteReader()  '← *** ここでエラー発生 ***
    While dbReader2.Read()
      Trace.WriteLine(dbReader2("TEST_NO").ToString)
    End While
    dbReader2.Close()
  End While
  dbReader1.Close()
  DbConn.Close()
End Sub
279デフォルトの名無しさん:2005/08/24(水) 10:40:33
MSDNにしっかり

> OleDbDataReader の使用中は、関連付けられた OleDbConnection は、
> OleDbDataReader によって使用されるためビジー状態になります。
> この間、 OleDbConnection に対して、閉じる以外の操作は実行できません。
> OleDbDataReader の Close メソッドを呼び出すまでこの状態が続きます。
> たとえば、 Close を呼び出すまでは、出力パラメータは取得できません。

と書かれている。
280>278:2005/08/24(水) 11:08:49
>>279
レスありがとうございます。
確かに解説の所に書いてありました・・・

皆様はDBからデータの取得中(OleDbDataReaderの使用中)に
他のデータを取得する場合どのように実現されているのでしょうか?

それともDataSetみたいに全データを取得してから次のデータを取得、
みたいな方法でやっているのでしょうか?
よろしくお願いします。
281デフォルトの名無しさん:2005/08/24(水) 11:35:16
・順次、配列等に読み込む
・DataAdapter & DataSet を使う
・複数のコネクションを張る
・ストアドプロシージャを使う
282デフォルトの名無しさん:2005/08/24(水) 11:47:56
>>281
ここの使用って改悪だよな。
バッチ的なテーブル処理に対して厳しいところがある。
ロックかけながらカーソル処理していくような処理で必ず詰まる。
283デフォルトの名無しさん:2005/08/24(水) 11:51:23
ADO.NET 2.0では一つのConnectionから複数のDataReaderを同時に開くことができるようになるとどこかで聞いた。
284デフォルトの名無しさん:2005/08/24(水) 14:30:05
接続ドライブのプロパティに表示されるようなドライブ固有の名前(例:Maxtor 6Y160P0)を取得する関数というのはあるのでしょうか?
285デフォルトの名無しさん:2005/08/24(水) 14:35:07
WMI使えば?
286284:2005/08/24(水) 14:43:56
>>285
ありがとうございます。ググってみます。
287284:2005/08/24(水) 15:02:11
解決しました。ありがとうございました。
288278:2005/08/24(水) 15:31:57
>>281-283
レスありがとうございます。
今のところ直接目的にかなう解決方法がないのですね。
それが分かっただけでも良かったです。

ADO.NET 2.0では可能になるみたいですね。
http://www.microsoft.com/japan/msdn/vs05/adonet/ado2featurematrix.asp
の「SqlClient における SQL Server 2005 固有の機能」に書かれていました。

「SQL Server 2005 固有の機能」と言っているだけに
SQL Server 2005だけのような気がしますが・・・

ありがとうございました。
289284:2005/08/24(水) 18:54:36
すいません。再度質問させてください。
>>284にあるドライブ固有の名前の取得方法はわかったのですが
これとドライブレター名(例:C)とを関連付ける方法がわかりません。

Select * From Win32_DiskDrive
でドライブ固有の名前を

Select * From Win32_LogicalDisk
でドライブレター名を取得することはできたのですが・・・
290デフォルトの名無しさん:2005/08/24(水) 19:47:54
まあ基本的に物理ドライブと論理ドライブはあんまり相関のないものだからねー。
Win32_LogicalDiskToPartition/Win32_DiskDriveToPartitionクラス辺りを使って頑張ればいけそうかな。

ん〜、Win32APIでやろうとしたらどうだろ。
DeviceIoControlを駆使することになるのかな。
ttp://66.102.7.104/search?q=cache:LVJxUPDlORYJ:vbnet.mvps.org/code/disk/+API+%22physical+disk%22+partition+volume&hl=ja
とてもお薦めできなさそうだ。
291284:2005/08/24(水) 19:50:01
>>290
ありがとうございました。これからぐぐります。
292デフォルトの名無しさん:2005/08/25(木) 00:38:17
VBとVB.netの違いって何?
293デフォルトの名無しさん:2005/08/25(木) 04:40:59
.net
294デフォルトの名無しさん:2005/08/25(木) 11:19:54
DBMS_SQL.NUMBER_TABLEをパラメータに持つ
ストアドファンクションに
VBから配列を渡したいのですが
myOracleCommand.Parameters.Add()だと
InvalidCastExceptionが出ます。
どうやればよいのでしょうか?
私が書いたのはこんな感じです

myOracleConnection.Open()
myOracleCommand = New OracleCommand("sf_test", myOracleConnection)
myOracleCommand.CommandType = CommandType.StoredProcedure
Dim id(500) As Int32
〜中略〜
'コマンドパラメータ設定
myOracleCommand.Parameters.Add(id)←ここでInvalidCastException
295デフォルトの名無しさん:2005/08/25(木) 11:50:25
ODP.NETだよね?
どちらかといえばデータベース板のOracleスレ向きな気もするけど。

PL/SQL表をバインドする場合、
OracleParameter.CollectionTypeを
OracleCollectionType.PLSQLAssociativeArrayにしないと駄目。

詳しくはOTNのODP.NET開発者ガイドを参照してください。
296デフォルトの名無しさん:2005/08/25(木) 13:02:05
かなり初歩的な質問だと思うのですが・・・
ある処理中に処理中であることを示すウインドウを表示させたいのですが
どうにもうまくいきません。どのような方法が考えられるでしょうか?
297デフォルトの名無しさん:2005/08/25(木) 13:05:19
抽象的すぎる質問だな。
どうやってみてどううまくいかないんだ?
298295:2005/08/25(木) 13:19:55
今調べてみたらODP.Net入れてなくて
DBアクセスしてたんだけどこれは
ODBCなのかな?

299デフォルトの名無しさん:2005/08/25(木) 13:22:21
>>296
まずWindowsFormsなのかASP.NETなのか書いてくれ。
300294:2005/08/25(木) 13:28:56
>>295
調べたらOLE DB .NETでした・・・(しかも自分は294だしorz)
これでもやり方は変わらないのかしら?
301デフォルトの名無しさん:2005/08/25(木) 13:38:15
>298
ちょいまて、295は俺だ。

てか、どのDataProvider使ってるかくらいは把握しといたほうが・・・。
ODP.NETじゃなく、.NET Framework Data Provider for Oracleだったとしたら
MSDNにPL/SQL表は使えないと書いてある。
使いたければMSDAORAと共に.NET Framework Data Provider for OLE DB使えってさ。
302デフォルトの名無しさん:2005/08/25(木) 13:40:58
>>300
いや、Oracleが出してるやつじゃないと無理だと思う。
303294:2005/08/25(木) 16:58:17
>>295、302
返事遅れましたが、とりあえず何とかなりそうです。
感謝感謝。
304デフォルトの名無しさん:2005/08/25(木) 17:05:18
vb.netでoracleのあるテーブルからデータを取得し、
そのデータを新規で作成したmdbに登録したいのですが。
そのようなことは可能でしょうか?
よろしくお願いいたします。
305デフォルトの名無しさん:2005/08/25(木) 17:20:04
そのようなことは可能です。
よろしくお願いいたします。
306デフォルトの名無しさん:2005/08/25(木) 17:30:36
超初心者です。

PUBLIC:COMPONENT

で始まるのってなんですか?

307デフォルトの名無しさん:2005/08/25(木) 17:42:45
vb.netでプロセス間通信の質問です。
現在WIN XP上でvb.net(単品)の環境。
プロセス間通信を行いたいのですが、ファイルマッピング、パイプ、メールスロットなどなどことごとく失敗します。
今は名前付きパイプに絞っているのですが、パイプをクリエイトしてもハンドルが返ってこないのです。
下記のように単純化したプログラムでもNGです。

宣言部に
Public Structure SECURITY_ATTRIBUTES
Public nLength As Integer
Public lpSecurityDescriptor As Integer
Public bInheritHandle As Integer
End Structure

Declare Auto Function CreateNamedPipe Lib "kernel32.dll" Alias "CreateNamedPipeA" ( _
ByVal lpName As String, _
ByVal dwOpenMode As Integer, _
ByVal dwPipeMode As Integer, _
ByVal nMaxInstances As Integer, _
ByVal nOutBufferSize As Integer, _
ByVal nInBufferSize As Integer, _
ByVal nDefaultTimeOut As Integer, _
ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES _
) As Integer

ボタンクリックで
hpipe = CreateNamedPipe("\\.\pipe\test", &H3, &H80000000, 255, 1024, 1024, 5000, Nothing)

これでhpipeに「-1」しか返ってきません。正常に行うにはどうすればいいのでしょうか?
よろしくお願いします。

308デフォルトの名無しさん:2005/08/25(木) 18:37:02
>>307
Declare構文のAutoが解釈間違ってるよ。
Autoを指定する場合、プラットフォームに従ってStringをAnsiかUnicodeにマーシャリングする。
つまりNT系ならUnicodeで関数に渡される。
ところが実際に呼ぶ関数をAliasでCreateNamedPipeAとAnsi版を呼んじゃっている。
Ansi版は与えられたバイト列を当然Ansiとして解釈するから、&h00がすぐに見つかってしまって使用不能の文字列になってしまう。
解決法は
・Autoの代わりにAnsiを使う
・AliasをCreateNamedPipeにする(プラットフォームによって呼ばれる関数が実行時に切り替わる)
・Aliasを指定しない(プラットフォームによって呼ばれる関数が実行時に切り替わる)

それから、最後のパラメータSECURITY_ATTRIBUTEも。
ByRefは参照渡しなのは分かるよね。
Nothingは、構造体(Structure)の場合全てのフィールドが0のインスタンスを表す。
だからNothingと言いつつ実際にはnullではなく、結果として関数に新しく作られた構造体インスタンスのアドレスが渡ってしまってるわけ。
こういう場合、パラメータを
ByVal securityAttribute As System.IntPtr
と宣言して、IntPtr.Zeroを渡すのが良い。これはC/C++においてNULLポインタを渡すことと同義の行為。

あと、ハンドルの類はInteger(System.Int32)よりもSystem.IntPtrで宣言した方が良いよー。
309デフォルトの名無しさん:2005/08/26(金) 00:21:18
>>308
レスサンクス
いやぁ、いろいろ見直すべきところが多くてお恥ずかしい。
破れかぶれでいろいろ変えてみて、元に戻し忘れてたところとかもあるし。
明日、早速試してみます。
ありがとうございます。
310デフォルトの名無しさん:2005/08/26(金) 03:18:22
ソートツールを作りたいので可逆ソートがしたいです。
自分としてはBlockSortingがしたいです。
アルゴリズムは分かるのですが、実装方法がいまいちわかりません。
311デフォルトの名無しさん:2005/08/26(金) 03:39:47
アルゴリズムが分かるならあとはそのまま実装するだけじゃないか
312310:2005/08/26(金) 03:49:31
実装がC++ではできますがVB.NETではなぜか出来ません。
313デフォルトの名無しさん:2005/08/26(金) 06:35:30
VisualStudio.NET2003 を手に入れて、
VB.NET でちょっとした GUI ソフトを作りますた
それを別の PC で起動しようとしたら、何やらが見つからないといって動きません

要するに .NET Framework をインスコしないと動かないということだと思っておりまつ
おいらの PC ではないので、できればインスコしないで動けばありがたいのでつが、
何か方法はありまつか?
そもそも、VB.NET の GUI ソフトで .NET Framework を入れなくても動くものは作れまつか?
314デフォルトの名無しさん:2005/08/26(金) 07:32:07
無理 入れろ
315デフォルトの名無しさん:2005/08/26(金) 11:19:29
最近VBを使うようになって、クリック連打するソフトを作りたいと思ったのですが
マウスクリックをする命令が見つかりません。
どうやったらできますか?
316デフォルトの名無しさん:2005/08/26(金) 11:30:07
画面上の好きなところをクリックしたいというのならWin32API。
SendInput関数かmouse_event関数。
317デフォルトの名無しさん:2005/08/26(金) 12:06:38 BE:113897873-##
>>315
MouseDownとか
318デフォルトの名無しさん:2005/08/26(金) 14:45:19
ありがとうございます。
思ったより大変そうだけどがんばってみます。
319デフォルトの名無しさん:2005/08/27(土) 17:11:57
かなり、初歩的な質問だと思うのですが、
変数を宣言した時にクラス名の後ろの()
を記入しても消えてしまうのですが、なせなんでしょうか?
たとえば、、、
dim A as new frmLogon()

dim A as new frmLogon
になってしまうのですが。
何が原因なのでしょうか?
320デフォルトの名無しさん:2005/08/27(土) 17:45:29
配列宣言したいのか?
321デフォルトの名無しさん:2005/08/27(土) 17:51:53
>>320
いや別に配列宣言とは関係ないだろ。
引数無しのコンストラクタメソッド呼出を明示してるだけで。
C#とかだと必須だからなー。
//メソッドの括弧と配列の括弧が同じなのはややこしい……。

>>319
まあVBからのクセなのであまり気にしない。
322デフォルトの名無しさん:2005/08/27(土) 18:18:40
>>321
ありがとうございます。
括弧はあってもなくても動きは変わらないと考えてよろしいのでしょうか?
323デフォルトの名無しさん:2005/08/27(土) 21:30:11
Formデザイナに関する質問なんですが、TabPageコントロールを使っていると、
最初のタブページ以外のタブページ内のコントロールをデザインしていると
マウスポインタが各タブページのクライアント領域から外に出られなくなったり、
Formデザイナのコンテクストメニューが「コードの表示」以外の項目が
全部無効になったりする症状が出て困っています。

これって何か解決法ご存知ないでしょうか?
# どうもこの症状は環境依存というか、どの環境でも再現するわけではないみたいですね。
324デフォルトの名無しさん:2005/08/28(日) 01:39:08 BE:54237825-##
RAM少ないんじゃない?
325さとみん。:2005/08/28(日) 14:16:48
VB6.0のツールバーのプロパティーにはHotTracking(?)があったのですが、VB.NETではなくなってし
まいま
したよね?ボタンの外観を変更できるプロパティーです。

ツリーノードのプロパティーには、HotTrackingが設けられています。
ツールバー上のアイコンにマウスポインタが配置された時、ボタンの外観を変更する方法はありませ
んか?

分かりにくい説明で申し訳ありませんが、お願いいたします。
326デフォルトの名無しさん:2005/08/28(日) 20:55:09
test
327デフォルトの名無しさん:2005/08/28(日) 21:05:04
>>325
いまいち質問が明示的じゃない気がする。
On Mouseでボタンの画像を変えたいってこと?
それはそういうコードを書くしかないよ。
ToolBar自体の機能としてはビルトインされてないから。
328デフォルトの名無しさん:2005/08/28(日) 21:14:21
>>327
流せ。転載だから。
他でそれなりに詳しい解答貰ってるからして本人でもなかろうし。
329デフォルトの名無しさん:2005/08/29(月) 10:12:57
vb.netの質問というよりvs.netの質問なのですが、
現在VS.NET2003のVB.NETを使っています。
.NET Frameworkのバージョンが1.0だったのですが、1.1の機能を使いたかったので
1.1のもろもろをダウンロードしてインストールしました。
しかし、VB.NETのヘルプにあるMicrosoft Development Environmentのバージョン情報にある
.NET Frameworkのバージョンが1.0のままで当然1.1の機能も使えません。
1.0があるせいかとも思い1.0をアンインストールしてみましたが、バージョンは変わらず
プログラムすることすらできなくなりました。
ただインストールするだけじゃだめなんでしょうか?
それとも何か根本的な勘違いをしているのでしょうか?
330デフォルトの名無しさん:2005/08/29(月) 10:18:19
うん。
2003じゃ.NET 1.1の開発しかできない。2003を入れたときに自動的に.NET 1.1がインストールされる。
逆に2002では.NET 1.0の開発しかできない。2002を入れたときに自動的に.NET 1.0がインストールされる。

あなたの環境は矛盾している=何らかの勘違いが存在している。
331デフォルトの名無しさん:2005/08/29(月) 10:23:29
>>330
今パッケージをよく調べたら2002と書いてましたorz
何を勘違いしていたのかずっと2003だとばかり思ってました。
ということは.NET 1.1は使えないのですね。
ありがとうございます。
332デフォルトの名無しさん:2005/08/30(火) 00:45:34
すみません、VBで作ったGUI上からコマンドシェルの結果って取得できますか?
単純に
"ping 10.10.10.10"
ってStringを与えて、結果を取得する方法があればご教授ください。
333デフォルトの名無しさん:2005/08/30(火) 00:55:11
System.Diagnostics.Processクラス
334デフォルトの名無しさん:2005/08/30(火) 11:36:00

「管理ツール」の「データソース(ODBC)」のシステムデータソースに登録したデータソースに、ADO.NETを使って、システムデータソースの名前でアクセスしたいのですが、どうしたらいいのでしょうか?
ユーザーによってデータベースも異なります。
よって、データソースに名前でアクセスできるような方法をご存じないでしょうか?
よろしくご教授願います。
335デフォルトの名無しさん:2005/08/30(火) 16:28:53
VB6のコード画面で [CTRL] + [↑] で一つ上のプロシージャに移動できた
はずなんですが、VB.NETで同様のことができるキー操作はないでしょうか?
336デフォルトの名無しさん:2005/08/30(火) 18:21:28
すいません。学生でVisual Studio.net the Spokeのサイト
http://jp.thespoke.net/qotd/firstpage.aspxが落ちてるのですが
なぜでしょうか?
337デフォルトの名無しさん:2005/08/31(水) 12:54:22
質問です。
OS:win xp
バージョン:VB.net
です。よろしくお願いします。

ピクチャーボックスを一つ用意して、もう一つをコントロール配列でその上にかぶせます。
そしてコントロール配列のほうのピクチャーをシャッターとし、タイマーで管理して開閉させます。
手動で用意したほうのピクチャーにはイメージリストから当たりとはずれの2種類をランダムで
選んできます。そしてキーダウンを有効にさせて、シャッターがあいていて、かつ、ピクチャーが当たり
の場合、tensuuを1足しこむ処理をしたいのですが、連打するとtensuuが何度も足しこまれてしまいます。
その・・・理由はわかっているのですが、どうすれば回避できるかがわかりません。
一回目に打鍵した直後にDo eventsで空ループを入れてみてもだめでした。
かといってスリープにすると他の処理まで止まってしまうと考えられるので試していません。

もう一つ考えたのは、打鍵した直後にフラグを立ててキーダウンを無効にし、そしてDo eventsで空ループを
適当にまわし、ループ終わった後にフラグを戻してキーダウンを有効に戻す。という方法ですが、
ちょっと今エラーが出てしまっています・・・。デバック中です。

でもなんかこう、ピンときません。よい解決方法をご教授いただけないでしょうか。
お願いします。
338デフォルトの名無しさん:2005/08/31(水) 13:04:05
キーダウン>フラグ立てる>加点もろもろの処理>画像を変更するときにフラグおろす
で何か問題でも?
なんでDoEventsだのが出てくる?
339デフォルトの名無しさん:2005/08/31(水) 14:49:26
質問です。
DirectPlayを使用したソフトを通信ソフト作ったのですが、DirectX 9.0c Runtimeだけをインストールしているユーザーだと、使用することが出来ません。
調べてみると、9.0a以降のバージョンでは、必要なファイルがインストールされない仕様に変更になっているようで、、、
ユーザー側で、別途「Managed DirectX」をインストールするか、SDKの方をインストールしてもらわないと使えないみたいな感じです。

セットアッププロジェクトでインストーラーを作成すれば、不足しているファイルもユーザー側の方にもインストールされるでしょうか?
340デフォルトの名無しさん:2005/08/31(水) 23:33:17
基本的な質問ですまんです。
プロパティって、オーバーロードできないんでしょうか?

Dim _number as Integer

Property Number() As Interger
 (Get略)
 Set(ByVal Value As Integer)
  _number = Value
 End Set
 Set(ByVal Value As String)
  _number = Integer.Parse(Value)
 End Set
End Property

みたいなことをやりたいわけなんですが。
オーバーロードしたけりゃ、SetNumber()みたいなメソッドを作らないとダメ?
341デフォルトの名無しさん:2005/08/31(水) 23:35:14
Overridable
342デフォルトの名無しさん:2005/08/31(水) 23:43:50
ってオーバーロードか。
Integer型のNumberプロパティにStringを代入できちゃ拙いだろう。
引数付きプロパティの引数違いのオーバーロードならできるけど。
343デフォルトの名無しさん:2005/08/31(水) 23:51:59
thanx.
まあたしかに、class.Number = "774" なんてできたらマズそうですな。
素直にclass.SetNumber("774") みたいなメソッドにしときます。
(実際は単純な型変換だけじゃなくて、すこしロジックが入ります)
344デフォルトの名無しさん:2005/09/01(木) 19:09:06
ASP.NETのResponse.FilesからHttpPostedFileを
For Each文を使って取り出したいんですが
キャストが有効でないといわれてしまいます

解決方法ってありますか?
345デフォルトの名無しさん:2005/09/01(木) 19:09:44
VBコード内に記述するSQLについては。。。。

やっぱ、ここではなくてSQLスレだよね?
346デフォルトの名無しさん:2005/09/02(金) 00:15:30
XP端末でVB.NETのアプリを起動したところ、例外が発生し悩んでいます。
ShowDialogで下記のようにフォームを表示しています。
フォームA→フォームB→フォームC
フォームC表示時にEnterキーを押下すると
System.InvalidOperationExceptionが発生します。
例外の内容としては、フォームC表示時にも関わらず、
フォームA内のフォームB起動ボタンがクリックされたイベントが発生し、
フォームBは表示済みなのに再度表示しようとしたために例外が発生した、というものでした。
しかし、ShowDialogで他の画面を表示しているのに
フォームAでイベントを拾うっていうのは本来ありえないはず、ですよね?

それが起きちゃうってことは、コーディングが間違ってるんですよね・・・
コーディング以外の要因でありがちな問題ってあるでしょうか。
あまりにもわからないので
「まさかFramework自体がバグッテルのでは?」なんてあるわけないことを疑うようにまでなってます・・・
347デフォルトの名無しさん:2005/09/02(金) 00:44:54
>>346
もうすこし他人が読んで意味わかるような文章書かないと
誰も助言のしようがないよ。

とりあえず意味が読み取れる範囲で応答すると、
フォームBのボタンクリックのイベントハンドラでモーダルなフォームCを表示しているのなら、
フォームCでキャッチされてない例外が発生すれば、例外はフォームBのボタンクリックの
イベントハンドラまで遡ってくるんじゃないの?
348最凶VB厨房:2005/09/02(金) 01:04:52
>>344
For Each文を使わない。
1個1個取り出せ。
>>345
対象DBサーバ。データベース名、テーブル名、カラム名、型、制約
OS、.net frameworkのバージョンなどの中で必要最小限のものを
全部書くならこのスレで質問しても問題はない。
返答があるかはわからんが。
>>346
コードさらせ。例外メッセージ全部さらせ。
349最凶VB厨房:2005/09/02(金) 02:25:21
>>344
Request?AllKeysがあるぞ。
350質問房 ◆v.TAYcWkbs :2005/09/02(金) 11:54:21
質問させてくだされ。

strSQL = "select " & _
" 伝票年月 as 入出庫年月," & _
" 得意先名称," & _
" 得意先コード," & _
" 部品番号," & _
" 部品色," & _
" 部品名" & _
" from " & _
" dbo.E_入出庫" & _
" where " & _
" 事業所 =" & data_factoryCD & " and " & _
" 伝票年月 =" & data_yymm & " and " & _
" 得意先コード = '" & costormerCode & "' and " & _
" 部品番号 = '" & data_partsnumber & "'" _
'" 部品色 = '" & data_partsColor & "'"
If data_partsColor <> "" Then
strSQL &= " and 部品色 = '" & data_partsColor & "'"
End If (ここでブレーク)

今、TESTサーバーでテーブル作成して、そのテーブルからデータを読んでいます。
検索先テーブルにはselectの対象になる部品が存在しています。
EndIfにブレークポイントを設定。デバッグ開始〜ウオッチにて確認〜SQLに
条件式をコピー。

(次に続く)
351質問房 ◆v.TAYcWkbs :2005/09/02(金) 11:56:31
SELECT 伝票年月 AS 入出庫年月, 得意先名称, 得意先コード, 部品番号, 部品色,
部品名
FROM E_入出庫
WHERE (事業所 = 8) AND (伝票年月 = 200504) AND (得意先コード = 'xxxxxx') AND
(部品番号 = 'xxxxxxxxx')

と、SQL(エンタープライズマネージャー)では指定した部品内容が表示される。
しかし、VBの実行結果では表示されない。
この検索項目内容に部品の色があります。
SQL文で示す様に検索時、部品の色は絶対条件にしてません。色在り部品と無し部品在るからです。
色無部品を検索するとテーブル内にあるにもかかわらず検索されない。
色付の部品で実行するとVBの処理結果はOK。
これは何が原因と思われるでしょうか???

実行環境
OS:W2K-sp4
VS.NET2003//VB.NET 69516-006-0172567-18781
Framework 1.1(1.0も一緒に入っています)
352デフォルトの名無しさん:2005/09/02(金) 16:02:25
関連のある複数のテーブルのいっぺんに消す方法ないでしょうか?
やりたいイメージはこんな感じです。

delete from (select * from a, b where a.id = b.id and a.last_date < '20050902')

もちろんこんなSQLは実行できませんが・・・

353デフォルトの名無しさん:2005/09/02(金) 16:16:02 BE:32542823-##
>>348
トンクスコ
ググって見てもFor Eachでまわしてるサンプル見かけないので
出来ないようですね・・・
バグなのかなぁ・・・
354デフォルトの名無しさん:2005/09/02(金) 16:17:49
>>352
CREATE TABLEの時にきちんとON DELETE CASCADEを設定してれば幸せになれるかも
355デフォルトの名無しさん:2005/09/02(金) 16:24:04
>>353
サンクスコ

>>354
うほ!
ちょっと調べてみます。
356デフォルトの名無しさん:2005/09/02(金) 23:36:50
>355
354さんの助言は、ALTER TABLEの時にも有効。
# M$ SQL Serverだよね?
357最凶VB厨房:2005/09/02(金) 23:54:21
>344

  Private Sub Submit1_ServerClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Submit1.ServerClick
    Dim hpf As HttpPostedFile
    Dim s As String
    For Each s In Page.Request.Files.AllKeys
      hpf = Page.Request.Files.Item(s)
      Console.WriteLine(s)
    Next
  End Sub
Submitボタン配置サーバコントロール化
File Field配置サーバーコントロール化
358最凶VB厨房:2005/09/03(土) 00:14:56
>>350-351
よくわからんぞ。ウォッチで何を確認したんだ?
部品色がないときは空文字列なんだよな?nullじゃねぇよな?
data_なんとかは型はなんだ?String型か?
カラムの型はなんだ?さっぱりわからんぞ。
VBの実行結果では表示されない。ってどういうこった?
何に表示させてんだ?さーーーーーーっぱりわからんぞ。
とりあえずSQL文削って試せ。
>>352
ストアドトリガっちゅう手もあんぞ。ゴルァ!!!!!!!!!!!
359最凶VB厨房:2005/09/03(土) 00:18:05
>>350-351
ってかプライマリキーはってんのか?
@はどうした?わけわからんぞ。
360デフォルトの名無しさん:2005/09/03(土) 23:44:10
複数行のインデントはどうやるのでしょうか?
<編集>の行インデントがグレーアウトになって選べないのですが?
361最凶VB厨房:2005/09/03(土) 23:56:52
ツール→オプション→Basic→タブ
インデント→スマート以外
362最凶VB厨房:2005/09/03(土) 23:59:39
×ツール→オプション→Basic→タブ
○ツール→オプション→テキストエディタ→Basic→タブ
363デフォルトの名無しさん:2005/09/04(日) 00:17:15
>>362
できました。。
ありがとうございます。
364デフォルトの名無しさん:2005/09/05(月) 02:12:51
質問です。
内容は、既に起動しているエクセルに対して,vb.netで作成したアプリケーションから
セルに数値を記入するにはどうすればいいか、です。
やりたいことは、エクセルマクロ(VBA)からvb.netで作成したアプリケーションを呼び出し、
その処理結果を呼び出し元のエクセルのセルに書き込みたいのです。

今現在は、参照の追加でExcelObjectLibraryを追加し、
Dim xlApp As New Excel.Application
・・・
な感じで指定しています。
問題は、エクセルファイルを指定するときに
Dim xlBook As Excel.Workbook = xlBooks.Open(ファイル名)
とやると、元々そのファイルが起動しているため、2重に起動してしまいます。
新たにopenせずに、既に起動しているファイルを指定してやるにはどう
すればよいでしょうか?
(元々そのエクセルのVBAから呼び出しているため、そのエクセルが起動していることは
保証されている)


ちなみに起動していないエクセルのセルへのアクセスは成功しています。

365デフォルトの名無しさん:2005/09/05(月) 02:18:41
366デフォルトの名無しさん:2005/09/06(火) 14:33:26
タブコントロールを使ってプログラムを作っています。
選択されているタブによって処理内容を変えるようなプログラムです。
そのために、現在選択されているタブを取得するようなプロパティやメソッドがあれば知りたいのですが、どなたか、ご存じないですか?
よろしくご教授願います。
367デフォルトの名無しさん:2005/09/06(火) 14:34:39
ちょっとはTabControlのプロパティ&メソッドに目を通してみたのか?
368デフォルトの名無しさん:2005/09/06(火) 16:29:41
RTFM
369デフォルトの名無しさん:2005/09/06(火) 17:47:56
>>366
ええええええええ?????????
370デフォルトの名無しさん:2005/09/06(火) 18:25:42
ΩΩ Ω
371デフォルトの名無しさん:2005/09/06(火) 18:41:43
釣りだよな?
ご存知もなにも、普通にやってれば気づくと思うんだが・・・。
372デフォルトの名無しさん:2005/09/07(水) 14:03:42
タブコントロールを使ってプログラムを作っています。
選択されているタブによって処理内容を変えるようなプログラムです。
そのために、現在選択されているタブを取得するようなプロパティやメソッドがあれば知りたいのですが、どなたか、ご存じないですか?
よろしくご教授願います。
373デフォルトの名無しさん:2005/09/07(水) 16:24:25
ttp://www.grapecity.com/japan/support/database/P1_80.htm
コレみたいに、複数列表示できるツリービューを.netで実現したいんですけど・・・
どーすればいいんでしょうか。
374デフォルトの名無しさん:2005/09/07(水) 16:54:00
取りあえず見つけてみた
ttp://www.codeproject.com/vb/net/vbnettreelistview.asp
375デフォルトの名無しさん:2005/09/07(水) 19:47:21
初歩的な質問ですみません
dir()で「ディレクトリ以外」って指定はどうするんでしょ?
vbnormal+vbreadonlyとかやったら「readonlyなディレクトリ」も引っかかるんですけど…
376デフォルトの名無しさん:2005/09/07(水) 20:05:21
System.IO名前空間、DirectoryクラスのGetFilesメソッド使ったら?
377デフォルトの名無しさん:2005/09/07(水) 21:39:17
>>372

>>367->>371
378デフォルトの名無しさん:2005/09/07(水) 21:59:11
>>376
むう、やはりそれしかありませんか…
どもでした
379デフォルトの名無しさん:2005/09/07(水) 23:50:08
デザイン時にマウスクリックでコントロールを移動できるように、
実行時でも、コントロールをマウスクリックで移動
ということは出来るのでしょうか。

実行時、iniファイル等から各画像の x,y を読み込み描画、
マウスで編集して、配置を保存、というようなことを目的としています。
380デフォルトの名無しさん:2005/09/08(木) 00:13:03
381デフォルトの名無しさん:2005/09/08(木) 19:43:52
超初心者です。質問です。XP HomeでVB.NET2003を使っています。

COMからMicrosoft Web Browserを追加し、
 AxWebBrowser1.Navigate("http://www.yahoo.co.jp")
のようにしてForm起動時にWeb表示させています。
VB.NETの「開始」(F5)だとうまくいくのですが、
Releaseとしてビルドし、
\obj\Releaseにあるexeを起動させようとするとうまくいきません。

例外 'System.IO.FileNotFoundException' が WindowsApplication4.exe で発生しました。

とのエラーメッセージが出て、これをデバックしようとすると

'System.IO.FileNotFoundException' のハンドルされていない例外が WindowsApplication4.exe で発生しました。
追加情報 : ファイルまたはアセンブリ名 AxInterop.SHDocVw、またはその依存関係の 1 つが見つかりませんでした。

とのメッセージが出ます。

なにをどうすれば解決するのでしょうか。。。
よろしくお願いします<m(__)m>
382デフォルトの名無しさん:2005/09/08(木) 20:05:47
\objじゃなくて\bin。
\objは中間ファイル用のディレクトリ。
383長谷川友よ:2005/09/10(土) 11:04:04
ド・ラ・ルーブルの方法の3×3のプログラムが書けないんですが教えてもらえます?
vb.net2003です
384デフォルトの名無しさん:2005/09/10(土) 11:06:47
宿題は自分でやらにゃいかんよ。
385デフォルトの名無しさん:2005/09/10(土) 15:58:53
初心者ですみません。
c++ でAVIファイルを開きたいのですが、さっぱりわかりません。
DirectShowあるいはVideo for Windowsを使うのでしょうか?
386デフォルトの名無しさん:2005/09/10(土) 16:23:56
>>385
VBとC++の区別もできない馬鹿に何を言うことがあろうか
387名無しさん@そうだ選挙に行こう:2005/09/11(日) 02:54:26
Windowsのソフトでフォルダーを選択するダイアログが出てくるやつありますよね。
あれはなんていう名前のコントールなんですか?
それともVB.NETだと使えないの?
388名無しさん@そうだ選挙に行こう:2005/09/11(日) 02:55:37
#include <stdio.h>
#include <stdlib.h>
main(){
int a[15][15],i,j,k,n;
printf("奇数の魔方陣\nn = ");
scanf("%d",&n);printf("\n");
if(n<0 || n>15 || n%2==0) {
printf("1〜15の奇数やでぇ〜.\n");
exit(1);
}
i=0;
j=n/2;
a[i][j]=1; //手順1第1行中央列に1
for(k=2;k<=n*n;k++){
if(k%n==1) { i++; } //手順3真下に書く
else if(i==0) { i=n-1; j++; } //手順41つ右の列の最下段
else if(j==n-1){ i--; j=0; } //手順51つ上の行の最左端
else { i--; j++; } //手順2次の数字を右斜め上
a[i][j]=k;
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%4d",a[i][j]);
}
printf("\n");
}
printf("\n要素の和=%d\n",n*(n*n+1)/2);
}


389名無しさん@そうだ選挙に行こう:2005/09/11(日) 02:56:08
390名無しさん@そうだ選挙に行こう:2005/09/11(日) 03:00:37
>>387
.NET 1.1から追加された、System.Windows.Forms.FolderBrowserクラス。
.NET 1.0/VS.NET2002(VB.NET2002)ならちと手間がかかるが
ttp://support.microsoft.com/default.aspx?scid=kb;ja;811004
391名無しさん@そうだ選挙に行こう:2005/09/11(日) 11:17:14
>>390
ありがとうございました。
メッセージが英語なのと初期フォルダーが一部しか選べないのがちょっと残念。
392名無しさん@そうだ選挙に行こう:2005/09/11(日) 11:37:10
TreeViewの再表示で質問なのですが
.Nodes.Clear()で全てのノードをクリアし、再度ノードを追加して再表示させている画面があります。
その時にクリアのアニメーション効果をなくす事はできないでしょうか?

Windowsの画面のプロパティでアニメーションの効果をOFFにすればいいのですが、
インストールする全パソコンの設定を変更するわけにもいかず困っています。

表示する内容がDBのモニタ情報なので、再表示する前と後で情報が大きく変わってしまうこともあり、
部分的な再表示は難しいと考えています。

何か良い方法は無いでしょうか?
よろしくお願いいたします。
393名無しさん@そうだ選挙に行こう:2005/09/11(日) 19:05:12
質問です。
作ったDLLをEXEファイルと別の場所に置きたいんですけど、
コンパイルするときにその場所が決まってません。

実行したときにユーザーにパスを指定させる形にしたいんですけど、
そのDLLをEXEに関連づけるにはどうすればいいですか?

パスを通そうと思ってProccess.Start("set path=c:\aaaa")とかやってみたら、
実行ファイルじゃないのでだめだと言われました。

いい方法があったら教えてください。
394最凶VB厨房:2005/09/11(日) 19:51:15
>>393
どぼんのサイトのどこかに
プラグインがどうたら解説したページがある。
メルマガの方だったかな。
探してくれ。
それかGACにインストールとかもあるか。
やったこたぁねぇからやってみて報告よろ。
395デフォルトの名無しさん:2005/09/12(月) 13:08:41
>393

Path通すなら、
CMD /C "set path=c:\aaaa"
を実行しては?

詳しくはCMDのヘルプを
396デフォルトの名無しさん:2005/09/12(月) 23:58:56
>>392
BeginUpdate/EndUpdateメソッドはどう?

>>393
メインになるプロジェクトのapp.configの
<configuration>
  <runtime>
    <assemblyBinding>
      <dependentAssembly>
以下の
        <assemblyIdentity>
        <codebase>
の二つの要素を書くことで実行時にバージョンリダイレクトできるんだが、
sn.exeを使って厳密名をつけてやれば、
codebase要素のhref属性で絶対パス指定や自身のディレクトリよりも上のディレクトリを相対パス指定したりできるようになる。

この一連の記事を読んでみると色々勉強になる。
ttp://www.atmarkit.co.jp/fdotnet/technology/idnfw11_index/index.html
397最凶VB厨房:2005/09/13(火) 01:38:19
ほー( ..)φメモメモ
398デフォルトの名無しさん:2005/09/13(火) 13:27:12
質問です。
ASP.NETWebアプリケーションを作成しているのですが。

[モジュールにて以下のようにクラス変数をPublic変数を宣言しました。]

Module AAA

Public g_HHH As clsHoge1

End Module


[ページクラスにて、いろいろ設定します。]

g_HHH.iParam1 = 1
g_HHH.strParam2 = "ABC"
:


この状態にて、
Webサーバマシンに、異なるクライアントマシン2台から作成したページにアクセスします。
[マシンA] ページアクセス

[マシンB] ページアクセス

[マシンA] 同じページにポストバックすると、マシンBで設定した値がg_HHHに入ってしまっています。

[マシンA]のアクセスと、[マシンB]のアクセスで、Module内のPublic変数をそれぞれ別々に持つことってできないんですか?
399デフォルトの名無しさん:2005/09/13(火) 13:45:10
DateTimePickerコントロールで、カレンダーを表示させるメソッドは無いでしょうか?
400デフォルトの名無しさん:2005/09/13(火) 16:44:04
>>395
おお!CMDですね。助かりました!
401デフォルトの名無しさん:2005/09/13(火) 16:47:13
そして9x系で例外
402デフォルトの名無しさん:2005/09/13(火) 16:49:11
そもそも.NETではPATHとは無関係にアセンブリを探索するんだが。
403デフォルトの名無しさん:2005/09/13(火) 17:44:39
デバック時にフォームの起動位置を画面右上にしたいのですが、
どうすればよろしいのでしょうか?
404デフォルトの名無しさん:2005/09/13(火) 17:52:08
#IF DEBUG
Me.StartPosition = FormStartPosition.Manual
Me.Location = New Point(任意の位置)
#ENDIF
405デフォルトの名無しさん:2005/09/14(水) 12:01:05
DefaultValueでEnumを指定したいのですが
<DefaultValue(GetType(enmAAA), "2")>
とかにするしかないのでしょうか?
"2"がちょっといやなのですが・・・
406デフォルトの名無しさん:2005/09/14(水) 12:34:12
何故2?
普通にメンバ名書けば良いんだが。
GetType(Keys), "F10"
とか。
407405:2005/09/14(水) 13:12:41
>406
出来ました。

もう一点。
リセットができません。
Reset<Property>の実装は呼ばれないみたいです。
408デフォルトの名無しさん:2005/09/14(水) 13:41:05
それは
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconshouldpersistresetmethods.asp
と言う話か。

> メモ   DefaultValueAttribute を適用するか、
> または ResetPropertyName メソッドと ShouldSerializePropertyName メソッドを指定します。
> この 2 種類の操作を同時に実行しないでください。

と書いてあるが。
409405:2005/09/14(水) 16:21:36
>408
Enumだと
ResetPropertyName メソッドと ShouldSerializePropertyName メソッド
が呼ばれないみたいなんですよ・・・
410デフォルトの名無しさん:2005/09/14(水) 16:28:43
呼ばれてるよ。
DefaultValue属性消せば。
411デフォルトの名無しさん:2005/09/14(水) 16:45:50
>410
ダメです。呼ばれません。
コードがダメなのでしょうか?

Public Shadows Property HighlightText() As GrapeCity.Win.Input.HighlightText
Get
Return MyBase.HighlightText
End Get
Set(ByVal Value As GrapeCity.Win.Input.HighlightText)
MyBase.HighlightText = Value
End Set
End Property

Public Function ShouldSerializeHighlightText() As Boolean
Return Not MyBase.HighlightText.Equals(_DefaultHighlightText)
End Function
412デフォルトの名無しさん:2005/09/14(水) 17:25:10
ん〜、どうやら基底クラスのプロパティをShadowsで隠蔽した場合、
ShouldSerialize/Resetは基底クラスのが優先されちゃうようだねぇ。

逃げ方としては、ShadowsしたプロパティをBrowsable(False)で修飾して見せなくした上で、
似た名前のプロパティを作ってそっちでShouldSerialize/Resetを実装する、くらいかなぁ……。
413405:2005/09/14(水) 18:17:04
>412
なるほど・・・

やっぱ別プロパティにしないとダメですね。
ありがとうございました。
414デフォルトの名無しさん:2005/09/15(木) 01:18:37
VB6のファイルアクセス(ランダムアクセスとバイナリアクセス)に相当する機能って
クラスライブラリにはないでしょうかね?

具体例でいうと、例えばSingle型の配列を逐次ファイルに追記したり、
そうして作成したファイルをSingle型の配列に一挙に変換したり、
任意の位置のSingle型のデータにアクセスしたり、といった処理が
実現できるクラスはないだろうかということです。

いや、互換性ライブラリにVB6と互換性のある関数があるのは知っていますが
できればクラスライブラリの方を使いたいので。
415デフォルトの名無しさん:2005/09/15(木) 01:28:58
System.IO名前空間下のクラスを舐めるように見ていったら?
416932:2005/09/15(木) 06:04:44
>>396
レスを貰っていることに気がつきませんでした。ごめんなさい。

BeginUpdate/EndUpdateで目的のことが出来ました!
ありがとうございます。
417デフォルトの名無しさん:2005/09/15(木) 09:41:38
>>414
ハァ?テンプレ読めないのか?
メクラなのか?池沼なのか?
どちらにしても君にはプログラム無理だから^^
施設に帰りなさい。ね?
418414:2005/09/15(木) 12:23:41
>>415
舐めるように見ましたが、該当するクラスは見当たらないようですが。
ご自分が見てないんじゃないの?ひょっとして。

>>417
なんだコイツは。
419デフォルトの名無しさん:2005/09/15(木) 12:35:14
探し方が下手かクラス名を見ただけか探してないかのどれかだ。
420414:2005/09/15(木) 12:40:49
>>419
口調が偉そうな奴ってどうして例外なく無能なんだろう。
へえ〜、そうなんだ。

じゃあ試しに次のコードを例示してみてもらえますか?
いや、できないなら無理することないですけどね。

■ Single型の配列を引数にとって既存のバイナリファイルに追記するメソッド

■ バイナリファイルのファイル名を引数にとって、それをSingle型の一次配列に
変換したものを返すメソッド。
421デフォルトの名無しさん:2005/09/15(木) 13:10:36
ライブラリを探せもしない低能は煽りも下手らしい
422デフォルトの名無しさん:2005/09/15(木) 14:47:22
>>414
聞いてる立場なら煽るんじゃなくて無視しろよ
答える気、無くすな・・・
423デフォルトの名無しさん:2005/09/15(木) 18:21:46
>420

煽ってサンプル作らそうってんだなw
424デフォルトの名無しさん:2005/09/15(木) 19:10:44
デバッグ時に保存しちゃうけどこれってやめれんですか?
職場のが保存しないもんで
つい閉じちゃって戻りたくてももどれないときあるですけど
どこで設定できるかわかならいです
425デフォルトの名無しさん:2005/09/15(木) 20:45:33
>>420
お前のようなクズを性帝様が放っておくわけないよ?
426デフォルトの名無しさん:2005/09/15(木) 23:21:43
ListViewのSubItemsにセットした文字列の260文字目以降が表示されません。
どなたか、回避方法を知っている方教えてください。
下記にサンプルをつけておきます。
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
ListView1.View = View.Details
ListView1.Columns.Add("test1", 200, HorizontalAlignment.Left)
ListView1.Columns.Add("test2", 4000, HorizontalAlignment.Left)
Dim item As New ListViewItem("aaa")
Dim buf As String
For ii As Integer = 0 To 257
buf &= "あ"
Next
buf &= "END"
item.SubItems.Add(buf)
ListView1.Items.Add(item)
End Sub
427デフォルトの名無しさん:2005/09/15(木) 23:32:21
428426:2005/09/16(金) 00:10:28
そうですか・・・仕様ですか。
ログとか(日付、区分、内容みたいな奴)を表示するのに手軽なコントロールだったんですけどね
どうしよう・・・
>> 427
とりあえず、納得しました。ありがとうございます。
429デフォルトの名無しさん:2005/09/16(金) 00:37:54
ListView本来の使い方をすればいいだけじゃないの?
っていうか、カラムにそんな長文表示するってそもそもBad Designにも程があるような。

ListViewはアイテムを選択させる用途に徹して、選択したアイテムの詳細は
別途テキストボックスなりラベルなりで表示するようにするんじゃない普通は。
430デフォルトの名無しさん:2005/09/16(金) 11:39:44
>>424
[ツール]→[オプション]→[環境]→[プロジェクトおよびソリューション]→ビルド/実行オプション
431デフォルトの名無しさん:2005/09/16(金) 12:06:55
十進型より桁数の大きい数値を使って計算をしたいのですが
何かいい方法はありますか?
432デフォルトの名無しさん:2005/09/16(金) 12:27:41
自分でそう言う構造体を書く

まあ.NET Frameworkのライブラリには存在しないので、どこかから流用したりするしかないな。
C#のサンプルだが
ttp://www.codeproject.com/csharp/biginteger.asp
あるいはこことか
ttp://www.tokyo-pax.co.jp/pasovbmenu.htm
いっそC++のを移植するか。
433デフォルトの名無しさん:2005/09/16(金) 13:08:18
Direct3Dで3Dのモデルをフォームに表示したいと思っています。
当方、VisualStudio.NET(2003じゃない)を持っており、DirectX9をインストールしました。
VisualStudio.NETで、(できればVBで)
DirectXインストールから、マウスドラッグで簡単な3Dモデルが動かせるようなプログラムを
書くまでを解説してるようなサイトってないでしょうか?
434デフォルトの名無しさん:2005/09/16(金) 13:12:39
本屋に行けば売ってるじゃん
435デフォルトの名無しさん:2005/09/16(金) 14:21:27
>>432
参考になりました。
ありがとうございます。
436デフォルトの名無しさん:2005/09/16(金) 16:52:53
すいませんが、以下の質問があるのですが、教えてください。
・動的にSQLの変更が可能か?
・出力プリンタは、クライアントのプリンタを使用して出力が可能か?
・プレビュー出力は可能か?また、その方法は?
・VB.NETよりクリスタルレポートファイルを呼び出すコード記述例
複数の質問すいません。
437デフォルトの名無しさん:2005/09/16(金) 17:12:50
まあまずどういう構成を考えているのかからだな
ASP.NETなのかそうでないのかすらわからんし
438デフォルトの名無しさん:2005/09/16(金) 17:48:41
・可能
・逆にサーバのプリンタに出すほうが・・・。
下の2つはお試し版ダウンロードして試せば?クリスタルレポートはお試しあるのか知らんが。

ActiveReportならば、3番目も出来る(Webでも)、サンプルは製品についてくるからそれ見れば?
439436:2005/09/16(金) 19:17:00
ありがとうございます。試してみます
440デフォルトの名無しさん:2005/09/16(金) 19:19:19
uをtext1に入力するとtext2に坪数がでるプログラムをつくりたいのですが、流れを教えてくれませんか?
坪数=u*0.303です
441デフォルトの名無しさん:2005/09/16(金) 19:29:05
Double.Parseして乗算してToString
442デフォルトの名無しさん:2005/09/16(金) 22:36:36
テキストボックスで、AutoScrollPositionのようにスクロールの位置を取得したいのですが、どうすればよいでしょうか?
443デフォルトの名無しさん:2005/09/16(金) 23:43:52
>>442
EM_GETFIRSTVISIBLELINEを使えば行番号で取得できるな。
444最凶VB厨房:2005/09/18(日) 10:20:42
445デフォルトの名無しさん:2005/09/18(日) 11:31:03
スレ的にはこっちでしょ。

Overview of Visual Basic 9.0
http://msdn.microsoft.com/vbasic/future/default.aspx?pull=/library/en-us/dnvs05/html/vb9overview.asp
446最凶VB厨房:2005/09/19(月) 00:43:50
すまぬの。
447デフォルトの名無しさん:2005/09/19(月) 03:14:34
「グーグルをつぶす」--S・バルマー、幹部の転職に激怒

 「話の途中で、 Ballmer氏は『まさかGoogleではないだろうね』と口にした」とLucovoskyは述べ、
それに対し同氏はGoogleに転職することを伝えたという。
 「Ballmer氏はそのとき、椅子を手に取り部屋の反対側に向けて投げつけた。
椅子はそこにあったテーブルに当たった」(Lucovosky)。
Ballmerはその後、 GoogleのCEO、Eric Schmidtを激しく非難し始めたという。
「あいつを業界から葬ってやる。その程度のことは前にもやったことがある。
何度でもやってやる。Googleを抹殺してやる」

http://www.japan.cnet.com/news/biz/story/0,2000050156,20086932,00.htm
448デフォルトの名無しさん:2005/09/19(月) 03:19:45
戦場は中国なのにMSに何が出来るんだろうね
449424:2005/09/19(月) 09:54:48
>>430
たすかりますた
ありがとう遅レスすいません
450デフォルトの名無しさん:2005/09/19(月) 21:16:39
会社でVB.NETのを使って開発予定なんですが、
自宅で練習したい場合はどうすればよいですか??
451デフォルトの名無しさん:2005/09/19(月) 21:29:33
VS2005β
452デフォルトの名無しさん:2005/09/19(月) 21:37:18
これっていつまで使うことができますでしょうか??
453デフォルトの名無しさん:2005/09/20(火) 11:20:44
>>444-445
情報ありがとうございます。
今から翻訳しながら勉強してきます。
454デフォルトの名無しさん:2005/09/20(火) 18:38:18
かなり初歩的な質問です。
今、vb.netの勉強をしているのですが、
msgbox("test")
messagebox("test")
これはどう使い分けるのでしょうか?
私には同じ動きをしているように見えるのですが?
455デフォルトの名無しさん:2005/09/20(火) 20:04:15
>>454
その通りです。
456デフォルトの名無しさん:2005/09/20(火) 20:36:43
>>454
MsgBoxはVB6.0までのMsgBox関数との互換性のために残されたレガシ関数。
与えられた値を内部で整理してSystem.Windows.Forms.MessageBox.Showを呼び出している。
System.Windows.Forms.MessageBox.Showは親ウィンドウを明示的に指定するオーバーロードがあるのが利点だな。利点を使うことはまず無いが。
457デフォルトの名無しさん:2005/09/20(火) 20:57:59
>>456
ありがとうございます。
今後はMessageBoxを使っていきます。
458デフォルトの名無しさん:2005/09/20(火) 23:53:39
WinFormにて、メッセージボックスから、呼び出し元に戻ってきた時の
イベントはどうすればとれるのでしょうか?
Enterは発生しませんよね??
459デフォルトの名無しさん:2005/09/20(火) 23:57:10
MessageBoxなら閉じられるまでメソッドの流れはそこで止まるんだからイベントとか別に必要なくね?
なんでそう言う機能が欲しいと思った?
460デフォルトの名無しさん:2005/09/21(水) 00:02:50
アクティブな項目の背景色を制御したいんです。
テキストボックスにフォーカスがある状態でメッセージボックスを出すと
ロストイベントは発生するのですが、
メッセージボックスが消えてもフォーカスイベントが発生しないため、
色が戻らず悲しいことになってます・・
461デフォルトの名無しさん:2005/09/21(水) 00:24:41
メッセージボックスは別ウィンドウなわけで、
それが表示されたからってアクティブな項目が変わるわけでも無し、
背景色を変える必要はないと思うが……。
462デフォルトの名無しさん:2005/09/21(水) 01:14:23
よくわからんけど、どうしてもイベント発生したければ、
MessageBox.Show()のラッパーメソッドを作って、
最後に自力でイベント投げればいいんじゃ?
463デフォルトの名無しさん:2005/09/21(水) 11:11:04
System.ExecutionEngineExceptionの例外エラーは、なにが原因ででるんでしょうか?
.NET始めて、1週間。こんなエラーに困ってます。
464デフォルトの名無しさん:2005/09/21(水) 11:22:44
どんな状況で出るのか、どんなコードで出るのか分からないのに答えようもないって。
465デフォルトの名無しさん:2005/09/21(水) 12:02:18
下記のような.NETコードがあったとします。ComDll.dllに構造体を渡そうとしているのですが、
どうやら、下記のGetStatusの部分でSystem.ExecutionEngineExceptionがでるようです。

Public Declare Function GetControl Lib "ComDll" (ByVal hDev As Integer, ByVal CtlCode As Integer, ByRef SData As Integer, _
ByVal SDataNum As Integer, ByRef pStatus As GETSTATUS, ByVal RDataNum As Integer) As Integer

Public Function GetStatus(ByVal hDev As Integer, ByRef pStatus As GETSTATUS) As Integer
GetStatus = GetControl(hDev, CTRL_GET_STATUS, VariantType.Null, 0, pStatus, Len(pStatus))
End Function
466デフォルトの名無しさん:2005/09/21(水) 12:11:34
まださっぱり情報が足りないが、取りあえず.NETの再インストールでもすれば?

引数や構造体のサイズの不整合っぽい気がするが……。
あとLen関数じゃなくてSystem.Runtime.InteropServices名前空間MarshalクラスのSizeOfメソッドを使うのが吉。
467デフォルトの名無しさん:2005/09/21(水) 12:40:10
情報不足ですみません。なにを書いたらいいのかわからなくて・・・。
下記のコードは、GETSTATUSのストラクチャの宣言の部分。VB6.0ならば、Type
ですよね。
Public Structure GETSTATUS
     .
.
<VBFixedArray(3, MAX_NUM - 1)> Dim AdditionalFlag(,) As Short
.
.
Pub Sub Initialize()
ReDim AdditionalFlag(3, MAX_NUM-1)
End Sub
End Structure

そして、GetStatusファンクションが呼ばれた場合、上でDefineしたものがすべて
Updateされるという役割をComDll.dllはしているわけですが、まだまだですみません。
468デフォルトの名無しさん:2005/09/21(水) 12:58:30
ん、VBFixedArray属性使っても、アンマネージドとデータを相互変換するマーシャラは理解できない。
System.Runtime.InteropServices.MarshalAs属性を使って、(Cスタイルの配列なら)UnmanagedType.ByValArray(とSizeConstフィールド)を使わないといけない。
で、こいつは多次元配列は扱えないので一次元配列に開く必要がある。
469デフォルトの名無しさん:2005/09/21(水) 13:07:26
返答ありがとうございます。

>System.Runtime.InteropServices.MarshalAs属性を使って、(Cスタイルの配列なら)UnmanagedType.ByValArray(とSizeConstフィールド)を使わないといけない。
VB6.0で作られた既存のプログラムを、Upgrade wizardを使って、.NETに変換しようとしているのですが、その場合でも、UnmanagedType.ByValArrayを使うべきでしょうか?
470デフォルトの名無しさん:2005/09/21(水) 13:15:19
当たり前だ。Update Wizardは到底完全じゃない。
しかしまあ案の定Update Wizardか。典型的バグの元だ。
471デフォルトの名無しさん:2005/09/21(水) 13:19:40
わかりました!
試してみます。ありがとうございました。
472デフォルトの名無しさん:2005/09/21(水) 15:53:32
vb.netを勉強しているところなのですが、このようなエラーが出てきてしまいます。
エラーの意味自体があまりわかってないのですが、対処法を教えていただけないでしょうか?
宜しくお願いいたします。
'System.Data.SqlClient.SqlException' のハンドルされていない例外が system.data.dll で発生しました。
追加情報 : システム エラーです。

コードはこのような感じなんですが。
dr2 = cmd.ExecuteReader()で止まっています。

Private Sub frmA_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim cmd As SqlClient.SqlCommand = SqlConnection1.CreateCommand()
Dim dr2 As SqlClient.SqlDataReader

'コマンドのコネクション設定
cmd.Connection = SqlConnection1

'コネクションを開く
SqlConnection1.Open()

'コマンドの定義
cmd.CommandText = "SELECT a, b FROM c "

'データリーダーからのデータの読み出し
dr2 = cmd.ExecuteReader()

''データリーダーを閉じる
'dr2.Close()


End Sub
473デフォルトの名無しさん:2005/09/21(水) 21:06:06
>472
そこまで分かっているなら、トラップしてSQLExceptionのMessageを
読むことだな。
474デフォルトの名無しさん:2005/09/22(木) 01:07:02
>>473
レスありがとうございます。
>>、トラップしてSQLExceptionのMessageを読むことだな。

このご回答の意味がいまいち、わからないのですが、
なにか書き加えなければ駄目ということなのでしょうか?

475デフォルトの名無しさん:2005/09/22(木) 01:38:45
>>474
解決しました。
例外を作って見てみたところ、SQLServerのユーザーに問題があったようです。
ありがとうございました。

476デフォルトの名無しさん:2005/09/22(木) 22:19:55
関数ヘッダって皆さんどんなの使ってます。
関数を宣言部分だけ表示したとき、コメントが一行分表示かのうじゃないですか。
いいのありませんか?
477デフォルトの名無しさん:2005/09/23(金) 21:02:43
今さらな内容で悪いのですが質問です。

WebBrowserコントロールでNavigateする際に、
WebResponseやらで通信した際に使ったCookieをつけてリクエストしたい。

つまるところ、WebBrowserコントロールで任意のクッキーつける方法が知りたいです。

ご存じの方おられましたらご伝授よろしくお願いします。
478デフォルトの名無しさん:2005/09/23(金) 21:22:53
ん〜、Win32APIのInternetSetCookieを使うしかないんじゃない?
479477:2005/09/23(金) 23:36:45
>>478
GetResponsした戻り値のHttpWebResponseであるresについて、

Cookie = res.Cookies(0).Value()

で値を取得(名前は既知なので要らなかった)し、

Call InternetSetCookie("http://〜〜〜/", クッキー名, Cookie)

としてexpires指定は無しで(つまりオンメモリクッキーとして)記憶させて、

WebBrowserControle.Navigate2("http://〜〜〜/")

これで(擬似的実装ではあるが)なんとか望み通りの動作をさせることができました。
どうもありがとうございました。
480デフォルトの名無しさん:2005/09/24(土) 02:02:36
すんません
listboxのD&DのサンプルはあるけれどlistviewのD&Dのサンプルが
見つかりません
どうやればいいのでしょう
481デフォルトの名無しさん:2005/09/24(土) 07:47:58
何かのボタンを押せば、新しいウィンドウが開く操作が、
4冊本買って、どれにも載ってませんでした。
優しい人、教えてください。
別のウィンドウが開いたときの、変数の扱いもお願いします。
482デフォルトの名無しさん:2005/09/24(土) 11:55:52
新しいウィンドウって新しいフォームのこと?
483デフォルトの名無しさん:2005/09/24(土) 12:54:06
>482
そうです。初心者なので。。。
表現がおかしかったら、ごめんなさい。
484デフォルトの名無しさん:2005/09/24(土) 15:01:44
まあ本書く人もあらゆる状況を想定してフォローしていくわけにも行かないよな
485デフォルトの名無しさん:2005/09/24(土) 15:15:56
買ったけど読んでないだけでしょ。
正直、その程度の気力もないならプログラミングの舞台から退場すべきだよ。

プログラミングが、比較的能力の低い人間でもできるお手軽なものだった時代は
もうとっくに過ぎているんだから。
486デフォルトの名無しさん:2005/09/24(土) 15:16:37
FormA.show で開く
487デフォルトの名無しさん:2005/09/24(土) 16:09:09
書き込んだら、調べなきゃいけない気分に捕らわれて、
なんとかできました。
みなさん、ありがとうございました。

ちなみに、本には載ってなかったです。
488デフォルトの名無しさん:2005/09/25(日) 22:14:01
Dim frm2 as Form = New Form2だと調子悪くて
Dim frm2 as New Form2だとちゃんと動作するのはなぜだろう
489デフォルトの名無しさん:2005/09/25(日) 22:19:52
調子悪いって(w
490デフォルトの名無しさん:2005/09/25(日) 23:10:01
MainMenuの項目を動的生成したい。

項目を追加するのは普通にAddすりゃいいのでできるんですが、
そのAddで作った項目がクリックされた時の判定方法がわからない・・・。

デザイン時に作ってある項目のようにClickイベントをあらかじめ用意することはできないし・・・。
どーやってクリックイベントを捉えればいいのでしょうか。
491デフォルトの名無しさん:2005/09/25(日) 23:27:52
AddHandler メニューアイテム.Click, AddressOf メソッド
492デフォルトの名無しさん:2005/09/25(日) 23:54:31
>>490
どぼんの配列の所を参考に。
493デフォルトの名無しさん:2005/09/26(月) 00:08:55
っていうか、せっかくC#じゃなくVB.NET使うならもっと手を抜いて簡単にできるよ。
まずMenuItemをWithEvents付きでフィールドとして宣言する。
そんでそいつを必要なときにMainMenuのItemsに追加/削除すればいいだけ。

っていうか、本当にメニューを動的に生成なんてする必要があるかどうか
一度よく考えたほうがいいと思うけどね。

単にVisibleをいじるだけでもいいんじゃないの?
494490:2005/09/26(月) 00:26:49
>>491 >>492
キーワードでぐぐってみたら多数ヒット。
なんというか初歩的なことだったようで情けないですが、
おかげで無事所望していた動作をさせることができました。

>>493
今回の場合「最近使ったファイル」的な機能の実装だったので、
動的に生成という仕様にしました。

みなさんどうもありがとうございました。
495デフォルトの名無しさん:2005/09/26(月) 09:44:31
>>476
VBCommenter nDoc でグーグル様にお尋ねしてください。
ヘブンにいけますよ。
496デフォルトの名無しさん:2005/09/26(月) 22:57:57
どうしてもわからないので質問させていただきます。
AddRemoveProgramsIconにアイコンファイルを設定したのですが
インストール後、アプリケーションの追加と削除の所のアイコンが
フォルダになってしまいます。
どなたか解決法をご存知の方教えていただけませんか。
497デフォルトの名無しさん:2005/09/26(月) 23:09:31
エスパーが必要だなw
AddRemoveProgramsIconってデプロイメントプロジェクトのかなあ。
解決法って言ったって普通にやればそんな風にはならないけど。
問題のアイコンがインストール先にインストールされないようになってるとかかなあ。
498デフォルトの名無しさん:2005/09/27(火) 14:24:41
質問です。

構造体を使用すると、メモリを大量に消費するという話しを耳にしたんですが、構造体とクラス。
使用するならどちらを使ったほうが賢いのでしょうか?
499デフォルトの名無しさん:2005/09/27(火) 14:31:11
>>498
入門書、ページを読むのが賢いと思う。
@ITのVB.net入門でもきちんと書かれてる。
値型と参照型の違いそのものだから。
500最凶VB厨房:2005/09/27(火) 20:14:40
>>498
どこで耳にした?
501デフォルトの名無しさん:2005/09/27(火) 20:27:06 0
それ聞いてどうすんのw

しかし、>>498みたいにMSDNなり解説書なり読めば解決するような類の問題を
他人に投げる人って最初から終わってると思う。
正直、俺が上司とか学校の先生だったらコイツは見込みがないと判断して切るね。
502デフォルトの名無しさん:2005/09/27(火) 21:13:25 0
>>501
うわ、なにこいつ偉そう・・・(;^ω^)
503デフォルトの名無しさん:2005/09/27(火) 21:44:00 ID:0
2chねらが答えてくれることに意味があるですよ。
調べればわかるとかとは別次元の質問者の意図をくみ取れない人こそ天才ではありませんね
504最凶VB厨房:2005/09/27(火) 22:07:46 ID:0
俺見込みねぇーーーーーーーw

ってーか、構造体もクラスもフィールドのサイズが
あんまり変わらんのであれば
>構造体を使用すると、メモリを大量に消費する
なんてこたぁないわけで。
となれば可能性としては二つ。
コピー時の動作の違いかスタック・ヒープのことかどっちか。
構造体の値渡しや代入ならば消費するメモリはその構造体の
分だけは少なくとも増える。
クラスの場合なら参照がコピーされるだけなんでたいして増えない。
という可能性と、
構造体の場合はスタックに取られる可能性がある。
クラスはヒープだけなはずだ。
となると>構造体を使用すると、メモリを大量に消費する
ってのはメモリはメモリでもスタック領域かもしれねぇ。
これなら間違っているわけじゃぁない。
大量に消費したからといってスタックを食いつぶすとは
到底思えんけどな。配列にしたらヒープにとられるしよ。
要は耳にした話の文脈がわからんのだから聞いただけだがや。
耳にした話がわかりゃぁそりゃちょっと違うとか指摘もできるがや。
>>498ってなわけでや。
代入の時の違いがわかっとりゃぁええのや。サイズなんぞ普通は気にするな。
サイズなんぞ気にしてたら頭はげるぞ。
505デフォルトの名無しさん:2005/09/28(水) 00:35:59
http://www.unisys.co.jp/club/net_view/20030124.html

しかしなんとなくstructで設計して、あとからnull(Nothing)の状態が欲しくなって困る罠。
506デフォルトの名無しさん:2005/09/28(水) 00:43:09
>>505
そんな理由で困ることなんてありえんと思うが。
507デフォルトの名無しさん:2005/09/28(水) 09:31:16
>>504
その説明は元質問の回答になってないと思うよ。
そもそも、スタックとヒープの違いというか存在を理解してないから、ああいう質問なわけで。
だから入門書嫁っていう回答が出るわけで。
508デフォルトの名無しさん:2005/09/28(水) 12:02:44
>>504
要約すると
私:「ファイルから読み込んだデータは構造体を使ってArryListでAddしてる」
相手:「それなら構造体よりクラスでやった方がいい。メモリの消費を抑えられるし、構造体の多用はメモリの消費が激しいから」
という感じです。

>>499
読んでみます。

>>501
お気遣いありがとうございます。
しかし心配はありません。
職場はプログラム系の仕事とはかけ離れており、通っていた学校もプログラムに関連するものではないので。
509デフォルトの名無しさん:2005/09/28(水) 12:07:33
うん、相手は丸ごと勘違いしてるね。
あとデータによっては構造体でやるのは拙いかもね。
510デフォルトの名無しさん:2005/09/28(水) 12:35:12
別にそんなに勘違いしてないんじゃないの?
ArrayListに突っ込むとボクシングされちゃうわけだから。
クラスで同じことをした場合の二倍弱のメモリを食うはず。
511デフォルトの名無しさん:2005/09/28(水) 12:41:52
まあオリジナルのデータを捨てちゃってもよければその限りじゃないけど。
512デフォルトの名無しさん:2005/09/28(水) 14:37:15
変なIDでてるけど何?
513デフォルトの名無しさん:2005/09/28(水) 16:17:47
病気
514デフォルトの名無しさん:2005/09/28(水) 21:23:15
>>491
490じゃ無いけど便乗質問
クリックイベントは拾えたんだけど、じゃあどのアイテムクリックしたの?
てのはどうやればいいんでしょ
515デフォルトの名無しさん:2005/09/28(水) 21:31:00
時と場合によるが、Indexつかったりとか、HashtableでMenuItemインスタンスと情報を関連づけて管理するとか。
MenuItemを派生させてTagプロパティを作って、そこに必要な情報を詰めるとか。
//.NET 2.0ではMenuItemにもTagが標準装備されるんだけど。
516最凶VB厨房:2005/09/28(水) 21:44:51
>>508
>>509に同意。

'''''''''''''''''''''''''''''''''''
>>514
Object型senderをMenuItemにキャストすりゃいいんじゃね?
517514:2005/09/29(木) 00:02:18
>>516
それで出来ました
どーもでした
518496:2005/09/29(木) 11:23:59
みなさんお疲れ様です。
>497 さん返事が大変遅れまして申し訳ありません。
アイコンなのですが、結局わからずじまいです・・・
「すべてのユーザー」でインストールすれば、
アプリケーションの追加と削除にアイコンが出てくるのですが・・・

AddRemoveProgramsIconはデプロイメントプロジェクトのやつです。
519デフォルトの名無しさん:2005/09/29(木) 11:42:52
DataTableクラスで、SELECTメソッドを2回続けて使うとどうなりますか?
両方の条件に合うレコードのみが残りますか?
それとも、2回目の条件に合うレコードのみが残りますか?
どうでしょうか?
よろしくご教授願います。
520デフォルトの名無しさん:2005/09/29(木) 12:10:17
自分で試せよ・・・。
521デフォルトの名無しさん:2005/09/29(木) 14:29:57
>>520
動作を見る限り、2回目の条件に合うレコードのみが残っているように思えます。
それを確認したかったのです。
522デフォルトの名無しさん:2005/09/29(木) 14:32:26
そもそもDataTable.SelectはDataTableそのものを変更するメソッドじゃないしな。
523デフォルトの名無しさん:2005/09/29(木) 15:16:05
ですよね。
DataSetのDataViewの問題でしょ。この辺りの仕様をきちんと理解しないとDataSetつかっちゃだめだよ。
クライアントで絞るのが性能的に良いのか、仕様と適合してるかとか。
非接続型という部分の理解も必要。
524デフォルトの名無しさん:2005/09/29(木) 16:23:40
>>522
>>523
目的は検索のみで、更新処理はしません。
DataViewの方が適してますでしょうか?
525デフォルトの名無しさん:2005/09/29(木) 16:50:57
>>524
検索した結果のDataSetに対して、クライアント側で絞り込むのがFilterだったりSelectとかFind。
初期状態で絞りこんだほうが件数とかレスポンス考えてよさそうなら、DataAdapterのSQL文でしぼってしまうべき。
クライアントでちょこちょこ絞り込み条件を変えてやるならば、いちいちサーバに検索じゃあれだから、SelectなどでDataSet内で絞るべき。
526デフォルトの名無しさん:2005/09/29(木) 18:48:13
VB.NETでFormに棒グラフを描画しています。
このフォーム上でマウスの動きに連動してマウスポインタを中心に十字線を描きたいのですが
どうしたらよいか分かりません。
Mouse_Moveイベントの中にDrowで描くのは出来るのですが、直前の線が消えず動かすたびに描画
されてしまいます。
form.Invalidate()
を呼び出せば直前の線も消える(線だけでなく全部)のですが、マウスを動かすたびに全画面が再描画
されるのでチラチラしてしまいます。
直前に描いた線だけを消す方法はどうしたらよいでしょうか?
エロイ人教えてください。
527デフォルトの名無しさん:2005/09/29(木) 18:52:17
マウスポインタを十字にするんじゃ駄目か?
Me.Cursor = Cursors.Cross
528526:2005/09/29(木) 18:56:51
>527
レスありがとうです。

画面の端から端までの十字線を描きたいんです。
イメージとしては戦闘機の照準みたいな感じです。
529デフォルトの名無しさん:2005/09/29(木) 19:54:07
>>526
いろいろ手はあるけど、簡単にやるならフォームのダルブバッファを有効にすれば
とりあえずいけるんじゃない?
http://www.gotdotnet.com/japan/team/windowsforms/windowsformspainting.aspx
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformscontrolclasssetstyletopic.asp

まあ棒グラフの描画が重い場合は他の方法をとる必要があるかもしれないけど。
530526:2005/09/29(木) 20:19:57
>529
レスありがとうです。
甘く考えてたけど、結構大変そうなんですね。
じっくり読んでみます。
531デフォルトの名無しさん :2005/09/30(金) 01:20:50
はじめまして♪DDE通信をVB.NETでやろうとしているものですが、
みなさんのお知恵をお貸しください。
Ddeconnectの部分なのですが
DdeConnect(m_ddeinst, hszServiceName, hszTopicName, Nothing)で
最後の引数にNothingを指定するとエラー値の0が返ります。これを
成功させたいのですが、Nothingではなく何を指定しなければいけないのでしょうか?
具体的に教えてもらえたらありがたいです。
他の部分は多分あっていると思います。違ってたら教えてください。
宜しくお願いします。
532デフォルトの名無しさん:2005/09/30(金) 01:29:38
DDEを使いたいのならVB6使えと言うのがMicrosoftの方針だからー
533デフォルトの名無しさん:2005/09/30(金) 01:58:12
VBではなくVBAでエクセルのオートシェイプを利用したアニメーションを作ったのですが
当然CPUのクロックの違いで再生速度に差が出てしまいました

CPUのクロックを検出する事ってできないんですか?
それができればクロックによって処理を分岐させる事ができるのですが・・・
534デフォルトの名無しさん:2005/09/30(金) 02:01:43
VBAはスレ違い VBもスレ違い
535デフォルトの名無しさん:2005/09/30(金) 02:23:41
>>533
APIで情報読み込めばいい。何かそのようなAPIがあるさ。
536デフォルトの名無しさん:2005/09/30(金) 02:52:29
>>532
方針はおいて置くとしてどなたか宣言の仕方を教えてくださいませ。
>>531 ←質問
537デフォルトの名無しさん:2005/09/30(金) 09:26:42
NullポインタはNothingじゃないだけでしょ?
きちんとConvContext構造体を定義して渡してみるとか、VB6と同じで32ビットの0を渡すとか。
538デフォルトの名無しさん:2005/09/30(金) 09:49:57
>>536
お前なんか偉そうだなー
聞く態度なってねーよ
539デフォルトの名無しさん:2005/09/30(金) 09:57:34
540デフォルトの名無しさん:2005/09/30(金) 11:12:16
>>531, 536
ケロンキタ━━━━(゚∀゚)━━━━!!!!
いつ来るかと待ちわびていたよ。

相変わらずふてぶてしい態度でつね。
541デフォルトの名無しさん:2005/09/30(金) 12:24:02
>>531
>>537を敷衍すると、
まずDdeConnectのインポートのコードを晒した方がいいんじゃない?
ナルポはNothingじゃなくてIntPtr.Zeroだね。
542デフォルトの名無しさん:2005/09/30(金) 14:19:58

>>541さん、親切にありがとうございます。おっしゃる通りです。
構造体の宣言とインポートの部分はこんな感じになっていますが、
なにか構造体に間違いはございませんか?
Structure SECURITY_QUALITY_OF_SERVICE
Public Length As Integer
Public Impersonationlevel As Short
Public ContextTrackingMode As Short
Public EffectiveOnly As Integer
End Structure
Structure CONVCONTEXT
Public cb As Integer
Public wFlags As Integer
Public wCountryID As Integer
Public iCodePage As Integer
Public dwLangID As Integer
Public dwSecurity As Integer
Public qos As SECURITY_QUALITY_OF_SERVICE
End Structure

'DdeConnect宣言
Declare Function DdeConnect Lib "user32" Alias "DdeConnect" _
(ByVal idInst As Integer, ByVal hszService As Integer, ByVal hszTopic As Integer, ByVal pCC As CONVCONTEXT) As Integer

IntPtr.Zeroというのはどのようにどこに指定したらよいのでしょうか?
よろしくです♪
543デフォルトの名無しさん:2005/09/30(金) 14:41:00
>>542
日本語も読めない。ためしもしない。最低だな。
544デフォルトの名無しさん:2005/09/30(金) 18:19:49
すいません、ExcelのVBAについて質問したいんですが、スレが見つかりません。
どっかにあれば教えていただきたいので、ご存知の方よろしくおねがいします。
545デフォルトの名無しさん:2005/09/30(金) 18:33:53
>>544
VBAについてスレが落ちてるな。
ここは読んだことないけど。
●EXCEL・VBAの勉強法教えてスレ●
http://pc8.2ch.net/test/read.cgi/tech/1054356121/
ここにも上級者がいる。
Excel総合相談所 37
http://pc8.2ch.net/test/read.cgi/bsoft/1125178942/
546デフォルトの名無しさん:2005/10/01(土) 13:29:15
>>542
お前ほんと糞だな。


262 名前:山師さん [] 投稿日:2005/09/25(日) 10:44:18 ID:lZdxzg4r
>>260
そんなに簡単だというのなら
ETWrapperのソースを元にVB.NETに書き換えてみろ。
C#の時ほどは容易でないことに気がつくから。
まずCの知識がないVBユーザーには読むことがちょっと難しいわけよ。
これがVBで書かれているのなら多分容易だと思うのだが。
できたら俺にミシテネ♪

264 名前:山師さん[] 投稿日:2005/09/25(日) 10:59:07 ID:lZdxzg4r
友達がいなくて暇人キタ━━━━(゚∀゚)━━━━!!!!

267 名前:山師さん[] 投稿日:2005/09/25(日) 11:30:21 ID:lZdxzg4r
>>266
だからさ、簡単だとおもうならさぁ。実際にやってみろっつーの。
やってみたことがない人間が何言っても想像でしかないわけよ。
なんでも想像していたより難しいってことあんだろうが。
とりあえずやってみて俺に教えることをお勧めする。
547デフォルトの名無しさん:2005/10/01(土) 14:13:57
、i`ヽ                        ,r‐'ァ 
 `ヽ::                      ::´
   ヽ ヽ        , -‐--、         / /
    ヽ \      I:::::::I_      _ / / 
     ヽ  ヽ    i,(;;;ノI、;;;)l    ,,/  , '  VB.NETフォーーーーーーーーー!
      ヽ  ` ー 、.,,ゝ´ヮ`,ノュ_, - '   r'    
        ` 、_ /::: `山':::::    /
         ヽ:::::::::::|::::::::"",r‐'
          〉::::::::|::::::::::¨/
         /;;;;;;;/;;;;;;;;;;/
        /;;;;;;;/:::::::::::《
        <;;;;;;;《:::::::::::::ヽ   ))
      /   ヽI,r''"""^~ヽ
     /   ,/ ヽ    ヽ
548Hello! World:2005/10/01(土) 22:05:03
If regKey2 Is Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\test\Data\",false) then
End If
の実行をしたけど、ステートメントを指定してくださいとエラーが出ます。
エラーを回避したいんです。誰か教えて下さい。お願いします。
549デフォルトの名無しさん:2005/10/01(土) 22:12:59
おやおやどこかで見た質問だね? マルチポスト君。
550デフォルトの名無しさん:2005/10/02(日) 17:38:37
REGファイルの読み込みと書き出しを行うアプリを作りたいのですが、
REGファイルに関する技術文書かサンプルルーチンなどを教えていただけないでしょうか。
551デフォルトの名無しさん:2005/10/02(日) 18:16:02
>>550
何故敢えてVB.NETで? とは思うけど。
ttp://support.microsoft.com/?scid=kb;ja;310516
一応解説。極めて大雑把だけど。
自前で読み取ってMicrosoft.Win32.Registryクラスで書き込むって手もあるけど、
Win32APIのRegSaveKeyとその周辺の関数を使うのが楽かな。
ttp://www.kt.rim.or.jp/~yuta/prog/win32/Registry/
552550:2005/10/02(日) 18:40:30
>>551
ああ、助かりました。ありがとうございます。

直接書き込みのほうが何も考えなくていいのでコーディングはラクですが、今回はグループポリシーと
連携させたPC管理や設定の履歴管理を考えているので、REGファイルにしたいのです。
アプリ上で特権の取得とか考えなくていいし。

.NETなのは、単にそれしかないから。とはいってもこれが.NETではじめて作るツール。
PerlとVBAしか使ったことないのでVB.NETの勉強もかねてます。

INIファイルと同じという理解でよいのだろうか・・・
GetProfileStringとか使える?だけど一括で取得ができない、あたりで悩んでます。

どういうアプローチがいいんだろう。テキストとして馬鹿正直に取り込んで加工?
553デフォルトの名無しさん:2005/10/02(日) 23:58:12
(´・ω・`)知らんがな
554デフォルトの名無しさん:2005/10/03(月) 22:46:51
すみません、質問です
ツールバーにドロップした時に、どのボタンにドロップされたか調べるには
どうすればいいのでしょう
555デフォルトの名無しさん:2005/10/03(月) 23:11:16
TB_HITTESTを使うのがベターだけど。

次善の策として、ButtonsをFor Eachで回して、
それぞれのToolBarButtonのRectangleにマウスの位置がContainsしているかどうか確認するとか。
e.X/e.Yはスクリーン座標だから、ToolBarオブジェクトのPointToClientメソッドを忘れずに。
556554:2005/10/04(火) 00:21:45
>>555
for eachでいけました
ありがとうございました
557544:2005/10/04(火) 13:35:05
>>545
ありがとうございました。助かります。
558デフォルトの名無しさん:2005/10/05(水) 17:12:18
VB.Netでファイルに1行出力するのに
普通はどんな関数を使用するのでしょうか?

現状WriteLineで出力しているのですが
文字列を出力した際に、
文字列の最初と最後に”が付加されてしまいます。

”が付加されないようにしたいのですが、
なにかよい関数ないでしょうか?
559デフォルトの名無しさん:2005/10/05(水) 17:15:27
まあ普通にStreamWriterのWriteLineだな。
ダブルクォーテーションが付くのは558が変なことしてるからだ。
560デフォルトの名無しさん:2005/10/05(水) 17:58:10
>>559
558です
PrintLineでの出力したらうまくいったので
WriteLineは使用しないことにしました。
レスありがとうございました。
561デフォルトの名無しさん:2005/10/05(水) 22:19:34
vb.netでsusieプラグイン使うのは可能でしょうか?(事前バインドでなくて動的に)
どぼんだとinvoke.dllがあれば出来るとありましたが、コンパイル出来なかったのと
配布のこと考えるとちと無理かなと
他の方法があればいいのですが…
562デフォルトの名無しさん:2005/10/05(水) 22:29:29
まっとうにVB.NETだけでアンマネージドをレイトバインディングするには.NET 2.0が必要だね。
Managed C++を使えるのならそれでラップしてやれば簡単に作れるけど。
563561:2005/10/05(水) 23:58:23
やっぱ無理すか…
ついでにもう一つ質問
ホバーってホバーと見なす時間ってどこで指定するんでしょう
つーか、本当はホバーじゃなくて、「マウスオーバーで選択はしないが
3秒間ポイントしたら実行」ってのがやりたいんだけど(リストビュー)
564デフォルトの名無しさん:2005/10/06(木) 00:13:16
.NETの範囲内じゃ不可能だね。
Hoverの時間間隔を取得するのも.NET 2.0でようやく追加された。
//System.Windows.Forms名前空間SystemInformationクラスのMouseHoverTime静的プロパティ。取得のみ。
変更するのはWin32APIのTrackMouseEvent関数。とは言えこれの使い方は微妙かも。
それくらいなら、MouseMoveイベントとタイマを駆使すればなんとかなるかな?
565デフォルトの名無しさん:2005/10/06(木) 00:49:29
質問させてください。
フォームの×や_ボタンを消して、
しかもフォームを動かせないようにするにはどのようにすればよいのでしょうか?
566デフォルトの名無しさん:2005/10/06(木) 00:57:46
タイトルバーごと消して良いの?
タイトルバーがあるのに動かせないのはユーザへの嫌がらせにしかならないけど。
567デフォルトの名無しさん:2005/10/06(木) 08:52:21
>>565
Form.ControlBox=False

Load時にLocationの値を覚えておいて、
Moveイベントが発生するたびに、覚えていたLocation値に置き換える。

でいけるんじゃね。
568デフォルトの名無しさん:2005/10/06(木) 10:15:37
.NETって、標準のグラフコンポーネントとかないですか?
VB6.0のころはあったんですが、いくら調べても見つからないですよね。
クリレポについているみたいなんですけど、帳票じゃないやつではないですか?
ご存知だったらお教えください。
よろしくお願いします。
569じゃんぬねっと:2005/10/06(木) 12:28:35
>>565
ControlBox プロパティを False にするか、
Maximize, Minimize プロパティを False にします。

移動は、API の DeleteMenu で消してしまえば OK です。
570デフォルトの名無しさん:2005/10/06(木) 15:43:52
VB.Netで以下のようなINIファイルのデータを
タグ名のAAAAA、キーワードのbbで値の123が取得できる
関数とかありませんでしょうか?

XXXX.ini
-----
[AAAAA]
bb=123
571デフォルトの名無しさん:2005/10/06(木) 16:17:40
>>570
.NET Frameworkにはありません。
APIを使うかStreamReaderなんかで手動で読み取りましょう。

っていうか、XMLファイルを何故使わないんですか?
使いましょう!
572デフォルトの名無しさん:2005/10/06(木) 16:27:59
>>571
APIを使うことにします。GetprivateProFileStringでしょうか。
教えていただきありがとうございました。
573563:2005/10/06(木) 21:50:32
>>564
mouseenterで大麻をイネーブル、mousemoveでディセーブル&イネーブルで
何とかなりました
つか、タイマのリセットってこれでやり方合ってるんでしょか?
574デフォルトの名無しさん:2005/10/06(木) 21:56:01
ドキュメントには何も書いて無いのな。
まあちゃんと動いてるのならそれで良いでしょ。
575デフォルトの名無しさん:2005/10/06(木) 23:37:53
エディタを自作するにはどうしたらいいですか?
改行マークやらを表示したいのです
576デフォルトの名無しさん:2005/10/07(金) 00:02:25
>>573
通報しますた
577デフォルトの名無しさん:2005/10/07(金) 13:45:16
VB.NetでOracle9iにDB接続、切断する方法を
教えて下さい、よろしくお願いします。
(OracleClient.OracleConnectionを使う?)
578デフォルトの名無しさん:2005/10/07(金) 14:40:29
またぐぐれば数分のことを・・・。
ORACLE VB.net 入門でぐぐれば、本関係以外で最初に@ITが出てくる。
579デフォルトの名無しさん:2005/10/07(金) 16:21:07
>>578
ぐぐってみました。
VB.NetでDB接続、切断するには
ODP.NETをインストールしないとダメなんですか?
もしくはした方がよいのですか?
何度もすいません。
580デフォルトの名無しさん:2005/10/07(金) 16:33:16
>>579
つうか、その回答も@ITの別の記事で書かれてるはずだが。
OleDBとか選択肢あるから、必要条件を自分で決めて選択してくれ。
581デフォルトの名無しさん:2005/10/07(金) 16:45:44
>>580
回答ありがとうございました。
(ODP.NETを選択しました。)
582デフォルトの名無しさん:2005/10/08(土) 00:28:16
初歩的な質問ですみません
SHELLでカレントを変えたい時は呼び出す前に自分のカレント変えて、
呼び出して、また戻して、ってやるしか無いのですか
583デフォルトの名無しさん:2005/10/08(土) 00:42:05
いつまでもShellなんてレガシ使ってないで
System.Diagnostics名前空間Processクラス使えという啓示。
584デフォルトの名無しさん:2005/10/08(土) 14:24:27
かなり、初心者な質問なんですが、 これを2行にわける時は
どう書けば、いいのでしょうか?

Dim cmd As SqlClient.SqlCommand = SqlConnection1.CreateCommand()
585デフォルトの名無しさん:2005/10/08(土) 14:28:08
>>584
Dim cmd As SqlClient.SqlCommand = _
    SqlConnection1.CreateCommand()
586デフォルトの名無しさん:2005/10/08(土) 14:54:12
>>585
レスありがとうございます。
質問の仕方がまずかったみたいです。

Dim cmd As SqlClient.SqlCommand = SqlConnection1.CreateCommand()

これを = で繋がないで2行に分けたいのですが、

Dim cmd As SqlClient.SqlCommand
cmd =

なんかこんな感じで書けないかなぁと思ったのですが。。
よろしくおねがいします。

587デフォルトの名無しさん:2005/10/08(土) 15:12:15
Dim cmd As SqlClient.SqlCommand
cmd = SqlConnection1.CreateCommand()
じゃないの?え、ちがう?すまぬ。VB.NETはちょっとかじっただけ


588デフォルトの名無しさん:2005/10/08(土) 15:14:13
>>586
VB.NETを使ったことの無い俺が言うのもアレだけど、

Dim cmd As SqlClient.SqlCommand
cmd = SqlConnection1.CreateCommand()

じゃダメなん?
589デフォルトの名無しさん:2005/10/08(土) 15:52:14
>>587
>>588
ありがとうございます。。
590デフォルトの名無しさん:2005/10/08(土) 18:50:28
変数とインスタンス(実体)の違いを理解できてないってことですね。
.netというかまあ基礎から勉強しましょう。
591デフォルトの名無しさん:2005/10/08(土) 20:16:49
他フォームへの移動なのですが、
下記のような記述でよろしいのでしょうか?


Dim frmC As FormC = New FormC

If A = B then
frmC.Show()
Me.Hide()
Else
xxxxx
End If



592デフォルトの名無しさん:2005/10/08(土) 20:28:12
何をもって良しとするかも判らんのにどうしろと。
自分の思い通り動いてるならいいんじゃないんですか?
593デフォルトの名無しさん:2005/10/09(日) 09:31:22
うちの猫をVBライクからC#ライクにしたいのですが

どうしたらいいですか?


VBから卒業させてやりたいんでちゅ
594デフォルトの名無しさん:2005/10/09(日) 21:08:25
まずはカッコつけさせることだな。
595デフォルトの名無しさん:2005/10/10(月) 00:07:00
コーディングの常識かもしれないんですが

If chkVisible.Checked = True Then
  mblnVisible = True
Else
  mblnVisible = False
End If

というコードを参考書で見るけれども

mblnVisible = chkVisible.Checked

では問題があるのでしょうか。

可読性の問題?
596デフォルトの名無しさん:2005/10/10(月) 00:10:32
別に問題ないな。
私も後者の表記をするし。
597デフォルトの名無しさん:2005/10/10(月) 08:10:31
私だと例えばそのIFブロックにもう1つ処理足したくなったときに下だと直しが面倒なので
IFブロックは極力上の書き方してます
598デフォルトの名無しさん:2005/10/10(月) 08:42:49
直しが面倒なのはイヤなのに初めて書くときに面倒なのは許容するのか
理解できんな
599595:2005/10/10(月) 09:26:23
上とはちょっと違うんだけど、以前外注したベンダは画面上のコントロールの値をわざわざ
変数に突っ込んで、

mblnVisible = chkVisible.Checked

If mblnVisible = True Then
  処理1
Else
  処理2
End If

という処理を書いていた。mblnVisibleを他で使うでもなく。

結構大手ベンダだったので、画面上のコントロールの値を直接つかわないとかなんとか、
俺のしらないコーディング作法があるのかなぁ、と思っていたりして。
600デフォルトの名無しさん:2005/10/10(月) 10:10:19
>>599
そのフラグを使う回数によるけど。
オブジェクト参照のスピードと変数参照のスピードの違いがあるから。
ループの中で死ぬほどのそのフラグで分岐するならば、変数にコピーして使うべき。
601595:2005/10/10(月) 10:47:09
>>600
いや、それならわかるんだけど、使うのも一回だけ。
それも画面上の全コントロールの値を全部変数に代入してた。

単に駄目コーディングなのか・・・
602デフォルトの名無しさん:2005/10/10(月) 10:54:35
>>600を考慮した習慣ではないかと。
603デフォルトの名無しさん:2005/10/10(月) 11:08:23
hotmail用のメーラーを作りたいんですが、
どこか参考になるサイトをご存知の方がいらしたら
教えていただけないでしょうか?
604デフォルトの名無しさん:2005/10/10(月) 11:09:50
どっちかってーと、
>>600を考慮した結果何でもかんでもそれにしちゃえという安直な発想の元根付いてしまった習慣、かな。
605デフォルトの名無しさん:2005/10/10(月) 11:14:52
いや、後の拡張など考えた場合は機械的にやるのもありだとは思う。
ただ、MVCがきちんと分離できてれば、そのチェックボックスを引っ張るなんてありえないけどね。
606デフォルトの名無しさん:2005/10/10(月) 11:28:03
MVCなんて知らなくて良いから、各位仕様変更に耐えうるコードとは何かを考えてほしいす。

どのフォームがアクティブかでで引数決定したり、入力部品を計算処理から直接参照して計算とかカンベンシテクレと。
氏ね中国外注・・・
607デフォルトの名無しさん:2005/10/10(月) 11:36:29
chkVisible.CheckedはmblnVisibleの1条件と見るべき、たまたま条件が1つだっただけ。
従って、mblnVisible = chkVisible.Checked は良くないな。
608595:2005/10/10(月) 11:41:55
んー、なんとなく了解しました。

まあ俺の作法が駄目ということではなさそうなので安心。
可読性と速度と保守性と一貫性を考慮してればいいよってことだよね。

MVC初めて知ったので、これから勉強。でもVB.netのユーザー入力部分だけ
のコーディングにMVCもくそもないかw
分離できてるってことか。

相手してくれた方々、ありがとう。
609デフォルトの名無しさん:2005/10/10(月) 12:00:15
>>608
例えば、ユーザー入力に対するチェックだって、きちんと分離しろ。
関数化して、I/Oをきちんとすること、そこから始まりだよ。
イベント関数はそれらを呼ぶだけにする。
610デフォルトの名無しさん:2005/10/10(月) 12:12:28
言葉遣いが偉そうな奴ってなんで例外なく無能なんだろう。。

>例えば、ユーザー入力に対するチェックだって、きちんと分離しろ。
>関数化して、I/Oをきちんとすること、そこから始まりだよ。
>イベント関数はそれらを呼ぶだけにする。
もう馬鹿丸出し。そんなの程度問題でしょ。
611デフォルトの名無しさん:2005/10/10(月) 12:18:44
>>610
出来もしない奴がよく言う言い訳だね。
612デフォルトの名無しさん:2005/10/10(月) 13:22:18
>>606
それは設計規約、コーディング規約、設計書等の記述が甘いからです。
中国人プログラマー相手であればコーディングの1行がこうなると設計書の記述から100%読めない限りダメです。
その為ブリッジSEの単価は跳ね上がるのです。

SEで来てるんなら、そいつはSEじゃなくてPGだという事で単価交渉しろ
613デフォルトの名無しさん:2005/10/10(月) 17:03:51
複数選択する時にマウスでドラッグして選択する場合がありますが、その時の「四角い枠で
選択中」ってイベントはどうやって知ればいいのでしょう
つーか複数選択解除しただけで何でselecteditemchangeが選択してたアイテム数回
発生しやがるんでしょうね
614613:2005/10/10(月) 17:06:13
間違えました
selectedindexchangedでした
615デフォルトの名無しさん:2005/10/10(月) 17:10:01
MouseMoveでe.Buttonのチェックでもすれば?
616デフォルトの名無しさん:2005/10/10(月) 20:02:26
ソース修正後に追加した覚えのない存在しないコントロール「_label4」など
が参照できないためコンパイル不可に陥るのは、vb.netの仕様ですか?
617613:2005/10/10(月) 20:52:01
>>615
この間のイベント
mousemove
 :
mousemove
mousedown
ドラッグ開始
selectecindexchanged
 :
selectecindexchanged
ドラッグ終了
mouseup
mousemove
 :
mousemove
ドラッグの間はmousemoveが発生しないし、mousedownの時点ではこれからドラッグ
するのか分からない、
要はselectecindexchangedが連続して発生しているものなら最初の1回以外無視
したいのです
618デフォルトの名無しさん:2005/10/10(月) 21:27:58
必然性の良く分からない要求だなぁ……。

派生クラスを作る。
フラグを用意。
OnSelectedIndexChangedで、
・フラグが立ってれば返る。
・Control.MouseButtonsがMouseButtons.Noneでないのなら、フラグを立てて返る。
・どちらでもないのなら基底クラスのOnSelectedIndexChangedを呼ぶ
 (SelectedIndexChangedイベントに登録されたハンドラを処理する)。
OnMouseUpで、
・フラグが立ってれば、フラグをおろし、
 必要ならOnSelectedIndexChangedを呼ぶことでSelectedIndexChangedを処理させる

とかどう?
619613:2005/10/11(火) 00:11:46
ちょっと複雑に考えすぎてた
要はmousedownで右クリ、Ctrl、Shiftでスキップ用のフラグ立てるだけで良かった
んでselectedindexchangedの中で処理回避してフラグ立てて、mouseupで解除する、と

要は、選択したファイルのサイズとか作成日とか表示してるのだけど、複数選択
してもどうせ最初の1つしか表示しないので、最初の1回しか表示ルーチンに
回さないようにしたかったってこと
(実際チラチラして見辛かったし時間も僅かとは言え食ってたから)
620デフォルトの名無しさん:2005/10/11(火) 04:20:25
文法エラー(青色の波状の下線)の場所にマウスカーソルをあてても、
何か設定を弄ったのか、エラー内容が出なくなりました。
「ツール」→「オプション」や、説明書を確認してみても分かりませんでした。

アホな質問ですみませんが、どこの設定を確認してみればいいのでしょうか。
621デフォルトの名無しさん:2005/10/11(火) 09:40:12
ASP.net、VB.NETにてウェブアプリケーションを作製しています。
DataGridコントロールのテンプレート(TextBox)に配列の内容を表示したいのですが、
以下の様に書くとエラーがでてしまいます。
なにか方法があるのでしょうか。

<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn HeaderText="名前">
<ItemTemplate>
<asp:TextBox id="TextBox1" runat="server"><%# Container.DataItem %></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>



Public a() As String = {"あああああ", "いいいいい", "ううううう"}
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DataGrid1.DataSource = a
DataGrid1.DataBind()
End Sub

622デフォルトの名無しさん:2005/10/11(火) 09:55:01
取りあえずエラーの内容ぐらい書こうよ
623621:2005/10/11(火) 10:00:32
すいません。
以下のようなエラーが出ています。

例外の詳細: System.Web.HttpException: 'TextBox' に型 'DataBoundLiteralControl' の子を指定することはできません。



TextBoxのところをLabelに変更するとエラーもなく動きましたが、TextBoxだと動きません。
624デフォルトの名無しさん:2005/10/11(火) 10:52:47
すいません。自己解決しました。
TextBox部分を以下のように変えたら動きました。

<asp:TextBox id="TextBox1" runat="server"><%# Container.DataItem %></asp:TextBox>
      ↓
<asp:TextBox Runat="server" Text="<%# Container.DataItem %>"></asp:TextBox>
625デフォルトの名無しさん:2005/10/11(火) 16:51:08
Fromを最大化、最小化した際のWidth, Heightプロパティの値を取得すると、
最大、最小化時の値が取得されますが、
そのままの状態で、Normal時に戻したときのWidth,Heightの値を取得する方法はありますか?

Form終了時に、Width,Heightの値を設定ファイルに記憶したいのですが、
最大、最小化時に終了した際に、最後の時点のNormal時の値を書き込みたいのです。
(次回起動時に反映させたい為)
626デフォルトの名無しさん:2005/10/11(火) 17:07:29
ResizeイベントでWindowStateがNormalの時にフィールドに保存。
627デフォルトの名無しさん:2005/10/11(火) 17:14:25
>>626
ありがとうございます。
やってみます。
628デフォルトの名無しさん:2005/10/11(火) 23:35:18
構造体の初期化はどうやって行うのでしょうか?
Constraction DATA
dim A as integer
dim B as string
end Constraction

dim tData as DATA

Redim tDatata ←これもだめ
Erase tData     ←これもだめ

教えてください。
629デフォルトの名無しさん:2005/10/11(火) 23:38:39
Structure
630デフォルトの名無しさん:2005/10/11(火) 23:38:51
Dim dData As Data
dData = New Data()
'むしろDim dData As Data = New Data()


ところでConstractionってなんだ
631デフォルトの名無しさん:2005/10/11(火) 23:46:16
wordのスペルチェック機能を
vb.netで作ったテキストエディタで利用したいんだけど(もちろんwordが既にインストールされている状態
どうすればいいの?
632デフォルトの名無しさん:2005/10/11(火) 23:46:21
ストラクチャでコンストラクタ書けばいいんでねーけ?
633628:2005/10/12(水) 01:41:03
>>629 >>630 >>632
ありがとうございました。Newキーワードについて調べてみます。
Structureですね、初心者なので間違えました。
634デフォルトの名無しさん:2005/10/12(水) 09:51:17
ODBC接続をするアプリケーションを作成しているのですが、
接続情報が顧客によってちがいます。OdbcConnectionクラスで
接続していますが、どんなDBでも対応できるようにできますでしょうか?
VC++6.0で作成したプログラムを見たことがあるのですが、
ODBC接続情報を入力する標準のダイアログが出てきました。
こういうものは、VB.NETにはないでしょうか?
どなたかお聞かせ下さい。
よろしくお願いします。
635デフォルトの名無しさん:2005/10/12(水) 11:03:35
>>634
なぜにODBC?
接続情報は当然顧客毎に違うでしょうね。
DBMS差を吸収するのがODBCだと思いますが。
ユーザー名等は設定ファイルなどで記述して、接続先はインストール時に作るか手順書では?

まあ、.netっぽくやるのであればOLEDBに移行すべきだと思う。
636デフォルトの名無しさん:2005/10/12(水) 14:02:16
中国人のブリッジSEがODBCにしろというんですよね。
彼が言う標準のODBCダイアログというのは、どうやら、「SQL Serverログイン」のことのようですね。
ODBCデータソースアドミニストレータで、システムDSNにある特定の名前を入れるんだけど、
アクセスだとパスワードの入力要求はされないが、SQLServerでSQLServer認証を使うと、
パスワードが入力要求されるんです。
中国人BSEが言う「ODBC用の標準的な接続ダイアログ」なんて、本当にあるんですか?
よろしくお聞かせ下さい。
637デフォルトの名無しさん:2005/10/12(水) 14:04:12
その中国人BSEに聞いたらあかんの?
638デフォルトの名無しさん:2005/10/12(水) 14:43:54
ACCESSで出るダイアログと同じものが出るはず
VB6ではお世話になったが.NETでは使わなくなったから検証できず
639デフォルトの名無しさん:2005/10/12(水) 15:54:30
>>637
中国人BSEも、遠い記憶を基にして言っているので、ソースが定かではない。
結局、中国人の思いつきを、おれが調査しなくてはならない。

>>638
VB6では、どんなダイアログか分かりますか?
教えて下さい。
お願いします。
640デフォルトの名無しさん:2005/10/12(水) 16:06:54
>>639
接続先データソース名
ID
パスワード
の入力ダイアログが出る(はず
641デフォルトの名無しさん:2005/10/12(水) 16:56:38
>>640
どんなコントロールですか?
コントロール名とか分かりますか?
642デフォルトの名無しさん:2005/10/12(水) 17:04:58
>>620ですが、
fixでOS(XP)を再起動したら回復しました。
よく見たら、他のソフトも表示されておらず、
どうやらポップアップがウィンドウの背後に出ているようでした。
(些細な事で、数時間無駄にしてしまいました)

3週間位連続して使っていたのですが、まれにこんなことがあるんでしょうかね。
643デフォルトの名無しさん:2005/10/12(水) 17:57:30
>>636
それはODBC ドライバ マネージャが表示するもので、
RDOでOpenConnectionするとき、DSNが無かったり接続情報が不完全な場合に出てた。
もっぱら開発時やデバッグ用の機能で、通常のアプリケーションではDNS情報が不完全な場合は
rdDriverNoPromptを指定してプロンプトを出さずにエラーにしてプログラムで処理する。
ADO.NETはもちろんADO以降そんな機能はない。
第一バックグランドで動くかもしれないプログラムが勝手に妙なプロンプトを出したらユーザーが困る。
System.Data.OdbcはOLEDBや専用の.NET Driver(SQLServerやOracle)が無い場合にやむなく使う機能。
もしプロンプトを出したいだけの理由でODBCを使いたいといってるなら却下だな。
644デフォルトの名無しさん:2005/10/12(水) 19:17:05
sub とか function の内部でローカル宣言した const に2040バイトほどの
文字列を入れるとコンパイル時にVisualStudioごと落ちるんですが、これは
仕様なんでしょうか?
645デフォルトの名無しさん:2005/10/13(木) 00:02:03
TcpClientについて質問です。

現在、DataAvailableのプロパティで、読み取りデータがあるかないかを調べ、
データがある場合はデータを読み込み、無い場合はスルー
という感じで、受信待ちの形(Do Loop)にしているのですが、

WinsockのDataArrivalイベントのように、データを受信した場合にイベントなどで知リたいと思うのですが、何か良い手立ては無いでしょうか?


646デフォルトの名無しさん:2005/10/13(木) 01:06:22
BeginRead使うとか?
なぜそうしたいのか分かれば代替案も出せるかも知れないけど
647デフォルトの名無しさん:2005/10/13(木) 02:04:29
基本的なことで恐縮です。
タイマーについての質問です。

Form上にTimer1とTimer2の2つを実装したとします。
仮に
Timer1 Interval 500ms Tickイベント時の処理時間100ms
Timer2 Interval 150ms Tickイベント時の処理時間10ms
とし、正確な処理時間はさほど必要ないとします。

このとき、Timer1のTickイベント処理中にTimer2の処理のタイミングが重なった場合の
動作は、処理を割り込んでくるのでしょうか?それともTimer2は待機しているのでしょうか?
要は、割り込んでほしくないときは、Timer2を止めるなどの処理が必要なのかどうかです。
逆に、Timer2の処理を優先したいときなどはどのようにすればいいのでしょうか?
648デフォルトの名無しさん:2005/10/13(木) 02:16:26
>>647
System.Windows.Forms.Timer なら割り込んでこない。
649デフォルトの名無しさん:2005/10/13(木) 02:34:16
>>648
レスサンクス。
ということは、System.Windows.Forms.Timer を使用していると
割り込んでくるな処理は不要ということですね。
逆に割り込ませたいときは、System.Timers.Timerとかかな?
もう少し調べてみます。ありがとうございました。
650デフォルトの名無しさん:2005/10/13(木) 05:48:27
>>644
VisualStudioのバージョンと言語、落ちるソースを出さないと誰も相手にしないよ。
651デフォルトの名無しさん:2005/10/13(木) 08:19:07
>>649
「割り込む」とかいう言葉遣いの人が
安易にSystem.Timers.Timerとか使うと危険。
危険ってのは別に煽って言ってるわけじゃなく、本当に危険だよ。
652デフォルトの名無しさん:2005/10/13(木) 09:22:52
WindowsでのTimerって、メッセージキューにTimerイベントが置かれるだけですよ。
それを理解すれば答えは出ると思うんだが。
まあ、メッセージループを知らずに、メッセージも知らずにプログラム書けるのも一長一短だな。
653デフォルトの名無しさん:2005/10/13(木) 09:31:08
>>650
ここはVB.NETスレでしょ?
なんで言語を書く必要が?
654デフォルトの名無しさん:2005/10/13(木) 10:30:46
>>653 揚げ足取っておもしろいか?
655デフォルトの名無しさん:2005/10/13(木) 10:38:09
>>652
System.Windows.Forms.Timerはその通りだが、全てのタイマがそうというわけではないぞ。
656デフォルトの名無しさん:2005/10/13(木) 10:43:41
>>655
その程度のこと元質問を読めば自明。
657デフォルトの名無しさん:2005/10/13(木) 10:59:50
System.Timers.TimerとSystem.Windows.Forms.Timerは何が違うんディスカ?
658デフォルトの名無しさん:2005/10/13(木) 11:40:20
>>654
じゃあちゃんと書くから追試よろしく。

Visual Studio .NET 2003でVB.NETを使用し、以下のコードをコンパイル。

Public Class Test

Privete Sub TestMethod()
  '↓改行記号で連結した2040バイトの文字列定数(長くなるので省略)
  Const TestConst As String = _
   "abcdef ..... xyz" & _
   ....
End Sub

End Class

これだけでコンパイル完了前にVisual Studioが突然死する。
659デフォルトの名無しさん:2005/10/13(木) 12:15:03
>>658
2036バイトまでなら通った。
2037バイトの文字列にすると落ちた。
660デフォルトの名無しさん:2005/10/13(木) 12:42:19
しかし.NETってバグフィックスがちっとも出ないのはなんでかね?
これ以外にも小さな(?)バグって山ほどあるよな
発売以来二年以上経過してるのにフレームワークのSP1がでてそれきり。
661デフォルトの名無しさん:2005/10/13(木) 14:39:12
DataGridに列を追加し、さらに列名(列見出し)を表示させるには
どうしたらよいのでしょうか?
画面の何かのプロパティで追加できるのでしょうか?
手順を教えてください、よろしくお願いします。
662デフォルトの名無しさん:2005/10/13(木) 15:39:02
>>661
入門書を買うか、入門HPを嫁。
663デフォルトの名無しさん:2005/10/13(木) 17:30:34
>>660
バグではありません,それは仕様です,,なのでは?
664デフォルトの名無しさん:2005/10/13(木) 17:31:29
>>661

'Test Data 作成
ds = New DataSet("testDs")
Dim dt As DataTable = ds.Tables.Add("testTable1")
dt.Columns.Add("id", Type.GetType("System.Int32"))
dt.Columns.Add("value", Type.GetType("System.String"))
dt.Columns.Add("date", Type.GetType("System.DateTime"))
Dim row As DataRow
For i As Integer = 1 To 100
row = dt.NewRow()
row.Item("id") = i
row.Item("value") = "Test" & i.ToString
row.Item("date") = Now
dt.Rows.Add(row)
Next

'DataGrid.DataSourceにDataTableを設定
Me.DataGrid1.DataSource = dt

'Columnを1つ追加(この時点でDataGridにはColumnが追加されている)
dt.Columns.Add("addCol", Type.GetType("System.Int32"))
'Columnのキャプション設定(この時点で追加されたColumnのキャプションが変わる)
dt.Columns("addCol").ColumnName = "Add Column"
665デフォルトの名無しさん:2005/10/13(木) 19:07:06
新しいフォームを作ってそれを呼び出し元のフォームより後ろに表示したい
んですが、何とか実現する方法ってないですか?
666デフォルトの名無しさん:2005/10/13(木) 20:02:40
>>665
アブフレックス
667デフォルトの名無しさん:2005/10/14(金) 18:28:18
>>664 さん
661です、サンプル例ありがとうございました。
おかげでできました、助かりました。どもです。
668647:2005/10/15(土) 12:44:49
レスサンクスです。
最近プログラミングの基本を勉強する必要を痛感していただけに・・

System.Timers.Timer・・・いまんとこはやめときます orz
669デフォルトの名無しさん:2005/10/15(土) 15:49:25
クラス内変数なのですが、

private SqlConnection sqlConnection = null ;

と C# で書かれていたものをVB.NETで書く場合はどう書けばよろしいのでしょうか?

670デフォルトの名無しさん:2005/10/15(土) 16:05:55
番号 データ
1   10
2   12
3   10

のようなテーブルを作ってDataGridに表示していて、
ボタンを押すと、
4   13
などとデータが追加されていきます。

どんどん追加していくと、追加した行が見えなくなってしまいますが、
追加した行にフォーカスを移して、その行が見えるようにする方法を教えてください。

DataGrid1.Select(dataTable1.Rows.Count - 1)
だと選択されるだけで、見えるようにはなりませんでした。

671670:2005/10/15(土) 16:16:23
DataGrid1.CurrentCell = New DataGridCell(dataTable1.Rows.Count - 1, 1)
でした。
672デフォルトの名無しさん:2005/10/15(土) 16:18:15
>>669
君はどの部分が変換できないの?
あと「クラス内変数」って表現は「フィールド」と言った方が良いよ。
673デフォルトの名無しさん:2005/10/15(土) 16:33:27
>>672
レスありがとうございます。

private SqlConnection sqlConnection = null ;
と、C#で書かれているものを

VBNETで書くとこんな感じかなと思ったのですが、これだとエラーになってしまいます。
Private sqlConnection As SqlConnection = New SqlConnection
sqlConnection = null

よろしくお願い致します。
674デフォルトの名無しさん:2005/10/15(土) 16:42:28
>>673
Private sqlConnection As SqlConnection = Nothing
または
Private sqlConnection As SqlConnection

参照無しの状態になるのを明示して欲しいから、上の書き方が良いかな?
意図的にインスタンス生成してませんよって。
675デフォルトの名無しさん:2005/10/15(土) 17:23:56
自分もC#のソースVBで書き換えたいのですが、

If color = Color.Empty Then

と書きたい時に、
Color.Empty が color.Empty に(大文字が小文字に)
強制的に代えられてしまうのは何故でしょうか?

知ってる方お願いします。
676デフォルトの名無しさん:2005/10/15(土) 17:28:44
すみません、color は
Dim color As Colorです。
677デフォルトの名無しさん:2005/10/15(土) 18:16:28
VBは大文字小文字が区別されないから。
C#なら大小の区別で別物になるがVB.NETではそうもいかないので、できれば別のネーミングにすることを薦める。
678デフォルトの名無しさん:2005/10/15(土) 20:49:19
>>677
大文字と小文字の区別が無い事は全然知りませんでした。
どうもありがとうございます。
679673:2005/10/15(土) 21:37:36
>>674
大変参考になりました。。
ありがとうございます。
680デフォルトの名無しさん:2005/10/15(土) 23:27:36
でも Dim color As Color ってつい書いちゃうんだよな。
大文字小文字の区別はないけど、
クラス名とインスタンス名はいちおうちゃんと別物として扱われるんで。
681デフォルトの名無しさん:2005/10/16(日) 03:15:24
int, str, bol, tbx, lbx, objとか出来るだけ接頭子付けているが
color は col だとフィールド関係と間違えそうだし、clr かな?
682デフォルトの名無しさん:2005/10/16(日) 07:55:17
ハンガリアンは捨てたのさ。
683デフォルトの名無しさん:2005/10/16(日) 13:58:11
webbrowserコントロールでエクセルファイル表示するとおもむろにエクセル立ち上がるのって
どうにか出来ないでしょうか?(せめて最小化とか)
そして閉じてもエクセルやワードのプロセスが残ってるのも何とかしたいんです
684デフォルトの名無しさん:2005/10/16(日) 15:53:06
Webブラウザコントロールを使って表示しなければいいんじゃないか?
これってたぶんだけどIEで表示してるのと同じだよね。
関連付けで開いた相手のプロセスはIEの監視下?

レガシーなOLE連携でCreateObjectでやった場合でもプロセスは起動するのはやむなしだな。
でもプロセスは残らない。

単純にファイルの関連付けで開いた場合、プロセスの終了は使用者任せだね。

そうじゃなければ、市販コントロールであると思うよ。
685デフォルトの名無しさん:2005/10/16(日) 18:02:04
>>684
それ言っちゃうと身も蓋も無いんだけどねw
フリーソフト作るのに市販コントロール買ってまでするってのも…
ヘルプ見ようとしても出てこんし
諦めた方がいいかな
686デフォルトの名無しさん:2005/10/16(日) 20:29:09
>>681
その調子で一度すべてのクラスに識別可能なプレフィックスを付けながら
コーディングしてみ?プレフィックスが変数名より長くなるか、
プレフィックスを覚えきれなくなるのが落ち。まともなOOの環境で
コーディングしたことあるやつなら、プレフィックスを付けることの
無理にとっくに気がついている。だから最近はプレフィックスを付けないのが主流。
687デフォルトの名無しさん:2005/10/16(日) 22:59:06
>>685
それを言うならば、フリーソフトでEXCELマクロでもないアプリなのに、要EXCELってのも・・・。
企画原案を変えるべきでは?
688デフォルトの名無しさん:2005/10/17(月) 00:57:28
>>660
Javaやってりゃ分かるが細かいバグもチョコチョコ直されると激しく迷惑
689デフォルトの名無しさん:2005/10/17(月) 13:31:05
IPメッセンジャーのようなメッセージ配信機能を電話オペレータの操作画面の一部にテロップのような形式で配信したいと考えています。
また、配信する人は一部の管理者を想定しているのですが、この管理者の権限でメッセージ表示を削除する機能も付加したいと考えています。

VB.NETのWindowsアプリケーション開発で技術的に可能でしょうか?教えてください。お願いします。
690デフォルトの名無しさん:2005/10/17(月) 13:46:13
可能です
691デフォルトの名無しさん:2005/10/17(月) 13:50:39
すいません、具体的なヒントとか頂けたら嬉しいです。。
692デフォルトの名無しさん:2005/10/17(月) 15:20:36
690じゃないが、具体的じゃない質問に対して具体的なヒントって?
まず、何が疑問なのか。
693デフォルトの名無しさん:2005/10/17(月) 16:18:35
特定のURLから内容を表示するプログラムを造ってますが、ウェブページ上の表形式のデータを取得する場合、
便利な方法は何かないでしょうか。Ezcelのウェブクエリを高速化したかったのですがwebtableのような概念が
見つけられないもので。VB.NETは質問からも分かるように初心者です。本2冊買ってHELPもあたったのですが・・

Imports System.Net
Imports System.Text
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Text = ""’URLを入力
TextBox2.Text = ""
End Sub

694デフォルトの名無しさん:2005/10/17(月) 16:19:08
693の続き

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

Dim wreq As HttpWebRequest
Dim wres As HttpWebResponse
'ウェブリクエストでテキスト1の内容表示、エンコード
wreq = HttpWebRequest.Create(TextBox1.Text)
wres = wreq.GetResponse()
Dim enc As System.Text.Encoding = _
System.Text.Encoding.GetEncoding("euc-jp")
Dim s As IO.Stream = wres.GetResponseStream()
Dim sr As New IO.StreamReader(s, enc)

'コンテンツ内容をテキスト2に表示
Dim Textline As String = sr.ReadToEnd()
TextBox2.AppendText(Textline)

sr.Close()
s.Close()

End Sub
End Class
695デフォルトの名無しさん:2005/10/17(月) 21:24:43
>>689
まずはTCP/IPの勉強をして来なさい
696デフォルトの名無しさん:2005/10/17(月) 21:38:51
>>693
整形式XML(のフラグメント)になりうるんであればXmlReaderとかが使えるけど、HTMLだと難しい場合も多いだろうね。
素直なのは、正規表現(System.Text.RegularExpressions名前空間のRegexを中心とする各クラス)を使って整形するとか。
mshtmlを使って解析させるって手もあるけど……。
697デフォルトの名無しさん:2005/10/17(月) 23:41:11
タスクバーを扱うには、どのあたりのクラスを使えばいいんでしょうか。
シンプルにクイックラウンチをON/OFFしたいだけなんですが。
698デフォルトの名無しさん:2005/10/17(月) 23:51:21
他のプロセスのコントロールをいじるってのは.NETのクラスライブラリでは無理。
Win32APIを駆使することになる。
Shell_TrayWnd の ReBarWindow32 に
RB_GETBANDINFO で ToolbarWindow32 のハンドルと一致するの探して
RB_SHOWBAND で操作、かねぇ。
構造体ポインタのやりとりとなるとVirtualAllocExとかCreateFileMappingとか使う必要もあるね。
699デフォルトの名無しさん:2005/10/17(月) 23:54:41
トレイアイコンのこと?
notifyiconをフォームにドロップするだけ
でフォームのresizeとnotifyiconのmousedownあたりにゴニョゴニョ書けばok
700デフォルトの名無しさん:2005/10/18(火) 00:13:55
>>698
あ、サンキューです。
そのあたりの情報までは見つけていたけど、「.NETならもっと簡単なんじゃねぇの?」と
思ったんですが、できないというのがわかればがんばってAPI叩きます。助かりました。

>>699
いえ、>>698に書いてあるあたりです。
701デフォルトの名無しさん:2005/10/18(火) 00:59:19
>>696
調べを進めていく上でのキーワードがいただけました。ありがとうございます。
(実は何を書いてあるのか殆ど分かりませんがw XMLは聞いたことがあるので、ググリまくります。)
702デフォルトの名無しさん:2005/10/18(火) 02:38:28
>>698

あくまで他スレッドがコントロールを直接操作できないだけ

他スレッドがよんだ自スレッドのメソッドがコントロールをそうさするのはok
703デフォルトの名無しさん:2005/10/18(火) 02:42:19
>>702

いつスレッドの話になった?
704デフォルトの名無しさん:2005/10/18(火) 03:46:05
XMLをQueueメモリに保存し、適時取り出して再度Xmlとし、処理していきたい
と考えています。

次のようなコードでQueueに書き込む分にははエラーは出ませんが、

 Dim WriteQueue As Queue = New Queue
 Dim xmlDoc As New System.Xml.XmlDocument
 (ここにXMLを構築するコードを書き込んでいます)
 WriteQueue.Enqueue(xmlDoc)

DequeueメソッドでXMLに書き戻すのがうまくいきません。Queueに書き込んだ
ものとソックリ同じ物を、新しく作成したXmlDocumentとしたい(つまり、コピー
を作る)んですが・・・・・

705デフォルトの名無しさん:2005/10/18(火) 05:52:26
>>702
話がずれてる上に間違ってる。

>他スレッドがよんだ自スレッドのメソッドがコントロールをそうさするのはok
okじゃないから Control.Invoke / BeginInvoke を使おうな。
706デフォルトの名無しさん:2005/10/18(火) 06:31:27
>>704
インスタンスとか参照とか理解してなさそうだが……。
取りあえずClonseメソッド。
707デフォルトの名無しさん:2005/10/20(木) 07:09:58
.netではDDE通信が推奨されていないらしいですが
代わりにどのような方法が推奨されているでしょうか?
708最凶VB厨房:2005/10/20(木) 07:12:12
リモチン?
709デフォルトの名無しさん:2005/10/20(木) 09:34:36
>>707
.net Remoting
情報少ないけど、ほぼ唯一でてるオレンジの本見れば、DDE程度はOK。
ただ、自アプリ同士の連携の場合だからね。

昔のOfficeとかがDDEを提供していた(?)のと同じように、OfficeとかがRemoteオブジェクトを提供してるわけじゃないので。
(.netの弱点ってネイティブでOffice連携が無いことなように思える)
710デフォルトの名無しさん:2005/10/20(木) 10:11:43
>>708, 709
thx.調べてみます。
代わりにソケット通信っていうのはありでしょうか?
711デフォルトの名無しさん:2005/10/20(木) 12:13:24
>>710
.NET RemotingはTCP/HTTPをベースにしてる(内部で利用している)。
712デフォルトの名無しさん:2005/10/20(木) 12:46:14
>>711
さんくす。じゃ、簡単にソケット通信でやっちゃおうかな
713デフォルトの名無しさん:2005/10/20(木) 13:01:00
ソケットは単なる文字列の送受信。
リモーティングはシリアル化されたオブジェクトのやり取り。

目的が全く違います。
714デフォルトの名無しさん:2005/10/20(木) 13:27:10
質問です。
スタートアップに指定したフォームを判断することはできますか?

 if Form1 = Application.StartupForm then

みたいなことをしたいんですがー。。
715デフォルトの名無しさん:2005/10/20(木) 14:00:22
画面から『閉じる(×)』ボタンを非表示にしたいです。
最大化・最小化は残したいので、ControlBoxでは実現できませんでした。
何かいい方法はないでしょうか
716デフォルトの名無しさん:2005/10/20(木) 14:54:17
Visual Studio の操作?に関してになるのですが、

C# の場合 メソッドのオーバーライドを行なう際は

Protected Override とタイプすると、インテリセンスが開き、
その中からオーバーライド可能なメソッドを選択すると自動的に
シグネチャ含めてコードが追加されるのですが、VB.NET の場合は

Protected Overrides とタイプしてもインテリセンスが開きません。
VB.NET の場合は、エディタの左上から (overrides) を選択し、
その右からオーバーライドしたいメソッドを選択する、といったように
マウスでカチカチやるのが一般的なのでしょうか?
717デフォルトの名無しさん:2005/10/20(木) 18:28:22
>>715
無効化なら
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/142closebtn/closebtn.html
だが、さて非表示にはできたかねぇ……。
718デフォルトの名無しさん:2005/10/20(木) 19:06:49
>>714
プログラマがどれで起動したか把握できないってのはどうよ?
719デフォルトの名無しさん:2005/10/20(木) 19:44:58
ASP.NET、VB.NETで開発しております。
ログをテキストファイルに出力するような共通関数を作成したいのですが
どうにも行き詰って困っております。

wwwroot下にフォルダを作成し、その下に動的にログファイルを作成したいのですが
何かいい方法ありますでしょうか?
よろしくお願いします。
720デフォルトの名無しさん:2005/10/20(木) 19:46:50
どこで行き詰まったの?
721デフォルトの名無しさん:2005/10/20(木) 23:03:31
>ソケットは単なる文字列の送受信。
やはりそういうことか!
722デフォルトの名無しさん:2005/10/21(金) 09:28:57
でも簡単なやり取りだけならソケット通信でもいいよね?
723デフォルトの名無しさん:2005/10/21(金) 09:51:56
>>722
だから自分で目的を考えてでしょ。
単なる非同期・同期での通信ならばソケットでコマンドで十分。
イベント+情報の送受信ならばリモーティング。
724デフォルトの名無しさん:2005/10/21(金) 13:32:37
VB.NETの勉強としてTextBoxクラスを継承して
書式チェック機能を持ったTextBoxを作成しようとしています。

Validatingイベント内で、書式チェックエラーとなった場合に
フォーカスの移動をさせないようにしたのですが
Formの閉じるボタンを押しても同イベントが発生して
閉じるボタンが無効になってしまいます。

イベント内でイベントをキャンセルしているので当然なのですが
チェックを行ってエラー時はフォーカスを移動させないが
特定の処理(画面を閉じるなど)の場合はチェックしない
という機能を作ろうとした場合、どのようにすればいいでしょうか?
先人達の知恵を貸してください。
725デフォルトの名無しさん:2005/10/21(金) 20:28:20
>>724
>閉じるボタンが無効になってしまいます。
普通そんな事にはならないと思うけど。
閉じるボタンってウィンドウの右上のXのことだよねえ?

フォーム上にフォームを閉じるためのコマンドボタンが用意してあって、
それをクリックしようとしてもクリックできない、なんてオチだったりして。
726デフォルトの名無しさん:2005/10/22(土) 08:06:42
>何かいい方法ありますでしょうか?

log4net
EntLib/LoggingAB
727デフォルトの名無しさん:2005/10/22(土) 16:45:43
TextBox1 - TextBox10 の .Text にすべて"*"を表示させたいのですが、

それぞれに
TextBox1.Text = "*"
TextBox2.Text = "*"



TextBox10.Text = "*"

より頭のいい方法を教えていただきたいのですが、
728デフォルトの名無しさん:2005/10/22(土) 17:03:24
>>727
TextBox配列にいったん格納してからループで値セット、ってあまり手間は変わらんか。
729最凶VB厨房:2005/10/22(土) 17:14:01
TextBox型のものに"*"をFor Eachでセットしていくとか。
730デフォルトの名無しさん:2005/10/22(土) 18:00:23
>>728, >>729

727ですが、私は初心者ですので、
具体的にお願いできますでしょうか?

教えていただいてるのにすみません。。。
731デフォルトの名無しさん:2005/10/22(土) 18:09:10
初心者ならまずは地道にやっとけってこった
732デフォルトの名無しさん:2005/10/22(土) 18:54:52
>>727
http://dobon.net/vb/dotnet/control/tbpasswordchar.html
↑のようなことをやりたいってわけじゃないってこと?
733最凶VB厨房:2005/10/22(土) 20:51:25
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Const kome As String = "*"
    Dim c As Control
    For Each c In Me.Controls'フォームのコントロール全部に対して
      If c.GetType() Is GetType(TextBox) Then'テキストボックス型のものなら
        Dim t As TextBox
        t = CType(c, TextBox)'コントロールをテキストボックスとして扱って
        t.Text = kome'テキストプロパティに*をセット
      End If
    Next'していく
  End Sub'とかネ
734デフォルトの名無しさん:2005/10/22(土) 21:00:24
>>733
ControlにTextがあるんだからCType(c, TextBox)は必要ないぜ。
それより「結果を表示するTextBox11まで*になってしまいましたどうしたらいいですか」とか返されそうだな。
735デフォルトの名無しさん:2005/10/22(土) 21:01:41
あ、それと型判定は
If TypeOf c Is TextBox Then
な。
736最凶VB厨房:2005/10/22(土) 21:06:09
具体的な指摘どもども。
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Const kome As String = "*"
    Dim c As Control
    For Each c In Me.Controls   'フォームのコントロール全部に対して
      If TypeOf c Is TextBox Then       'テキストボックス型のものなら
        c.Text = kome         'テキストプロパティに*をセット
      End If
    Next     'していく
  End Sub 'とか
737デフォルトの名無しさん:2005/10/22(土) 21:07:10
>>733
そんな気張って答えるような質問とも思えんが。。

>>734
突っ込む奴が馬鹿だと萎えるなw
738最凶VB厨房:2005/10/22(土) 21:09:46
>>737
最近コードを書いてなかったので
ちょっとしたリハビリや。
739デフォルトの名無しさん:2005/10/22(土) 21:15:06
第一さ、そういうの「頭のいい方法」って呼んでよいものかどうか。。
サンプルコードとしてもあまり良質と思えないし。
俺がサンプルかくならせめて、

(1) Nameが"TextBox*"に一致するTextBoxのコレクションを作る関数を示す

(2) Nameが"TextBox*"に一致するTextBoxのコレクションを内部的に作って、それを
  操作するクラスを示す

このぐらいするよ。
740デフォルトの名無しさん:2005/10/22(土) 21:17:31
>>739
先生、VSを使ってないのでNameプロパティは基本的に空です! どうしたらいいですか!
741先生:2005/10/22(土) 21:23:20
742デフォルトの名無しさん:2005/10/22(土) 23:04:42
10個くらいなら手で書いちゃえよ
743デフォルトの名無しさん:2005/10/22(土) 23:27:21
初回しか埋めないってんなら、>>742で。
何度か*でクリアするってんなら、>>728で。
744デフォルトの名無しさん:2005/10/22(土) 23:29:20
>>743
いや、複数回クリアするならメソッドに切り出せばいいと思うんだな
745初心者:2005/10/23(日) 11:48:58
USBドライブを差し込んだことを検知する方法ありますでしょうか?
746初心者自己レス:2005/10/23(日) 12:11:14
745 自己レス
C#ですけど、http://www.publicjoe.f9.co.uk/csharp/snip/snippets.htmlにありました
お騒がせ
747デフォルトの名無しさん:2005/10/23(日) 12:54:15
Range("D2:D6").Value = Array("国", "数", "理", "社", "英")

エクセルのマクロでこうやって入力すると全部国ってなってしまいます
D2が国D3が数D4が理って具合になればいいんですが
どうすればいいんですか?
748デフォルトの名無しさん:2005/10/23(日) 13:04:09
749デフォルトの名無しさん:2005/10/23(日) 13:13:32
>>748
マルチだっていいたいのかな?
嫌味な奴w
マルチの何が悪いのかサッパリわからんが、マルチが気に入らないなら放っときゃいいのに。

>>747
自分で答え見つけた方が楽しいだろうからヒントだけ。
ヒント:直線は平面の特殊ケースだと考えよう。
750デフォルトの名無しさん:2005/10/23(日) 14:02:28
VBでスロットのプログラム作ってるのですが、「スタート」ボタンを押したら
0.1秒単位でラベルの数字が回転しているように見せるにはどうしたらいいのでしょうか。
お願いします。
751デフォルトの名無しさん:2005/10/23(日) 14:04:46
>>749
お前馬鹿ですね。

「 V B . N E T 質 問 ス レ 」
752デフォルトの名無しさん:2005/10/23(日) 14:06:22
>0.1秒単位でラベルの数字が回転しているように見せる
まず日本語の勉強をした方がいいね。意味不明。
753デフォルトの名無しさん:2005/10/23(日) 14:36:06
>>750
数字をパラパラ切り替えるんじゃなくて、リアルに上下スクロール
しているように見せたいってこと? けっこう面倒だと思うよ。

すべての数字や絵柄をピクチャ扱いで配列に入れて、乱数を元にス
タックしたシリンダ用の配列を使って、Y軸方向に詰めながらスラ
イド表示させるくらいかな?

0.1秒を刻むならEnvironment.TickCountプロパティでどうにかな
るかと。数字の全体が表示されるまでに0.1秒かかるようにしたい
ってのは、自分で管理する必要あり。
754デフォルトの名無しさん:2005/10/23(日) 14:40:56
>>753
おいおい750も750だが、あんたもあんただなあ。。
いったい750のどこをどう読めばそういう解釈がw
755デフォルトの名無しさん:2005/10/23(日) 17:56:30
>>719
そういや俺もできなかったわ
結局トレースログのテキストをそのまま使った記憶あるな
そもそもファイル自体が作れなくない?
ファイル作れない、既存ファイルへの書き込みができないみたいな状態になって
すげぇ困ってトレースログをそのまま使ったな。できるのかな、これ
756デフォルトの名無しさん:2005/10/23(日) 20:10:17
IISのセキュリティー設定とかきちんとやった?
プロセスの所有者が書き込み権限あるかとか。
757デフォルトの名無しさん:2005/10/23(日) 21:00:45
VB.NETを使用して、Winアプリを開発しています。
アプリは、画像アップローダなんですが、VB.NETでサーバにファイルを
アップロードする方法がわかりません。
どなたかわかる方がいたらお教えください。
758デフォルトの名無しさん:2005/10/23(日) 21:06:36
サーバによる。
759757:2005/10/23(日) 21:09:24
言葉が足らず申し訳ございません。
サーバは、webサーバです。
760757:2005/10/23(日) 21:14:06
まだ足りませんでした、IISではないです。
よろしくお願いします。
761デフォルトの名無しさん:2005/10/23(日) 21:35:34
>757
相手がWebサーバーなら受け取る側もアプリが必要だが・・・

アプリが必要かどうかはアップする方法やサーバーの設定による。
762デフォルトの名無しさん:2005/10/23(日) 21:38:16
>>757
ヒント:<input type="file">
    HttpWebRequest
763757:2005/10/23(日) 21:55:18
ヒントありがとうございます。現在はこのように処理をしてるんですが
req = CType(System.Net.WebRequest.Create(url), System.Net.HttpWebRequest)
req.Method = "POST"
req.ContentType = "multipart/form-data"
reqStream = req.GetRequestStream()
reqStream.Write(data, 0, data.Length)

さて?こっからファイルのアップロードは
どうやるんだろうとなってしまっています。

もう少しヒントを頂けたら幸いです。
764デフォルトの名無しさん:2005/10/23(日) 22:06:37
つうかね、入門書かってこいよ。
ファイルのアップロードなんて入門書に載ってる。
765デフォルトの名無しさん:2005/10/23(日) 23:32:18
winXP、vb.net2003、office2003使用です。


vb.net側で、「Imports Microsoft.Office.Interop」と「Dim ThisApplication As New Excel.Application」を利用してエクセルを起動した後、エクセル側で「ファイル」→「終了」の操作をしてエクセルを終わらせた場合に、
「エクセルが終了した」ことをvb.net側で情報として捉えることができるコマンドはありませんか?
766デフォルトの名無しさん:2005/10/23(日) 23:39:36
>>765
それってVB4+Office95時代からある問題だけど今でも出来ないんじゃない?
767デフォルトの名無しさん:2005/10/23(日) 23:55:41
どうしても必要ならタイマ使ってポーリングすればいいじゃん。
エクセルが生きているかどうかの確認は工夫すれば出来たはずだよやった記憶があるから。
768デフォルトの名無しさん:2005/10/23(日) 23:56:15
MSDN2のVSTOのリファレンスにWorkbook.Shutdownイベントなんてのがあったけどこの辺?
解説読むと違う気もするけど。
769765:2005/10/23(日) 23:57:16
>>766
ホエ!やっぱムリなのか〜?
ネットで調べても、VB側ですべて処理させたら、プロセスの終了まで出来ることはわかってんだけどね。。
やってることは、VB側でマクロを含んだエクセルを起動させて、あとの処理はエクセルのマクロまかせでエクセル側で終了まで処理させるのよ。。
マクロでやらせてるのは、定型の様式への入力支援で、文字の入力まですれば、罫線や結合や印刷範囲の指定までマクロで一気にやらせてます。ただ、そのほかの処理もあるんでエクセル側での終了は必須なんだよな〜
で、エクセル側で終了しても、VB側のフォームが終了するまで起動したエクセルのプロセスが残るもので、それを何とか終了できないかと。。

>>766
回答サンクスです。も少し研究してみます。
770デフォルトの名無しさん:2005/10/24(月) 00:05:07
ポーリングしてたら、もしExcelファイル開いていたら保存ダイアログ出る場合に固まっちゃうぞ
771765:2005/10/24(月) 00:18:17
ThisApplication.ActiveWorkbook.Nameで既存ファイルを呼び出した場合でも、起動したworkbookの名前は取得できるんで、それから何とかできないかと考えてるんですが。。
「ポーリング」はよくわからないですが、一定時間ごとに監視するというやり方ですかね?だとしたらなるべくパソコンには余計な負担はかけたくないですが。。
できれば、「エクセルが終了した時点で」その情報を取得する方法がないかと。。

明日もあるんで今日は寝ます。レスくれた皆さんありがとうございました。。
772765:2005/10/24(月) 00:26:32
>>768
Visual Studio Tools for Office..
たかがこんなプログラムにこんな高い製品は買えない。。
今の.netも個人持ちなのよ。。
773デフォルトの名無しさん:2005/10/24(月) 09:27:56
お世話になります。
データセットのDataRowの値が「H」だった場合には、データグリッドに、「ハードディスク」と表示するというような処理をしたいのですが、MSDNで調べても方法が分かりません。
できれば、データグリッドの値だけを変えるようにしたいのですが、どなたか方法をご存じないでしょうか?
よろしくお願いします。
774デフォルトの名無しさん:2005/10/24(月) 09:33:39
WinFormかASP.NETかどっちだ?
775デフォルトの名無しさん:2005/10/24(月) 09:51:01
すいません。WINDOWSのFORMです。
776デフォルトの名無しさん:2005/10/24(月) 09:57:59
あげ
777724:2005/10/24(月) 14:16:12
返事が遅れてすみません

>>725
×ボタンの事であってます
Validatingイベント内で

If IsNumeric(CType(sender, TextBox).Text) = False Then
e.Cancel = True
Exit Sub
End If

のようにしているだけです
Validatingイベント内でキャンセルしているので
フォーカスは移動できないのですが(これが当然の動作という事は判ってます)
Formの×ボタンを押そうとした時はValidatingを発生させないような事はできますでしょうか?
778デフォルトの名無しさん:2005/10/24(月) 15:30:11
>>777
.NETフレームワークのアップデート汁
779デフォルトの名無しさん:2005/10/24(月) 15:39:26
>718
そのレスはもしかしてVB.NETで派生フォームとか使ってないの?

フォームAからフォームB、フォームC、フォームDを派生させたとして、
B〜Dのいずれかがスタートフォーム。
それをフォームAの中で判断したい。

フォームAの記述

 If ( me = StartupForm) Then
  ・・・
End If

780デフォルトの名無しさん:2005/10/24(月) 19:40:10
ユーザーコントロールを派生したくラスの
デフォルトのイベントを OnLoad 以外にすることって可能ですか?
781デフォルトの名無しさん:2005/10/24(月) 19:53:11
デフォルトのイベントって何?
782デフォルトの名無しさん:2005/10/24(月) 20:43:47
>>777
あ、なるほど確かにそうなるね。
確信はないけどコントロール側で対処するのは正攻法では難しいんじゃないかな。

フォームのClosingイベントハンドラで引数のeの値をヲチすると、
コントロール側でそういうことをしている場合これのCandelメンバが
Trueに設定されるようだから、これをFalseに書き戻してやれば
いいんじゃないかな。

とりあえず俺の環境ではうまくいった。
783デフォルトの名無しさん:2005/10/24(月) 22:09:58
先生、0除算をしたら、DivideByZeroExceptionが投げられると思ったら、
なんか無限記号が表示されるんですけど、どういうことなのでしょうか?
784デフォルトの名無しさん:2005/10/24(月) 22:39:32
>>783
浮動小数を使った場合のデフォルトの動作。
で、VB.NETは特に指定しなかったら除算は大体Doubleとして計算されるから。
判断はDouble.IsInfinityメソッドとか。
785最凶VB厨房:2005/10/24(月) 23:30:36
無限記号だって?
よっこらせーっと
786最凶VB厨房:2005/10/24(月) 23:36:36
Dim a As Single = 30
a = a / 0
MessageBox.Show(a)
+∞

ぽっかーん
787757:2005/10/25(火) 00:46:32
もう一度質問させてください。
VB.NETを使用して、Windows Applicationを開発しています。
POSTによりWebサーバに画像ファイルをアップロード(PHP使用)する方法がどうしてもわかりません。
どなたか教えていただけませんか?

現在はこのように書いています。
Dim req As System.Net.HttpWebRequest = CType(System.Net.WebRequest.Create(url), System.Net.HttpWebRequest)
req.Method = "POST"
req.ContentType = "multipart/form-data"
Dim reqStream As System.IO.Stream = req.GetRequestStream()
↓ ここにが画像を入れるのかなと思っていますが…
Dim data As Byte() = System.Text.Encoding.ASCII.GetBytes("?key=11&gazou='バイナリ?'")
reqStream.Write(data, 0, data.Length)
Dim res As System.Net.WebResponse = req.GetResponse()
Dim resStream As System.IO.Stream = res.GetResponseStream()
Dim sr As System.IO.StreamReader = New System.IO.StreamReader(resStream, enc)
Dim html As String = sr.ReadToEnd()
788757:2005/10/25(火) 00:49:30
追記させてください。
PHP使用とは、受け取り側のWEBサーバーはPHPを使用しています。
789デフォルトの名無しさん:2005/10/25(火) 00:49:59
FileStreamで読み出せば
790757:2005/10/25(火) 01:02:37
レスありがとうございます。
ほんとに最近こればかりに時間を割かれているので・・・。泣きそうです。
Dim wkStream As New System.IO.FileStream("C:\gazou.jpg", System.IO.FileMode.Open)
のように読み込んで、
dim inData as byte = new byte(4096)
dim bytesRead integer = wkStream.Read(inData, 0, inData.Length);
while (bytesRead > 0)
reqStream.Write(inData, 0, bytesRead);
bytesRead = wkStream.Read(inData, 0, inData.Length);
end while

って感じになるのですか?
791757:2005/10/25(火) 01:52:37
やっぱりだめでした。
Dim reqStream As System.IO.Stream = req.GetRequestStream()
reqStream.Write(data, 0, data.Length)
Dim wkStream As New System.IO.FileStream("c:\gazou.jpg", System.IO.FileMode.Open)
Dim inData(wkStream.Length) As Byte
Dim bytesRead As Integer = wkStream.Read(inData, 0, inData.Length)
While (bytesRead > 0)
↓ここでバイト数オーバーとでます、。
reqStream.Write(inData, 0, bytesRead)
bytesRead = wkStream.Read(inData, 0, inData.Length)
End While
reqStream.Close()

すでに画像のアップロードに成功された方、
どうか教えてください。
792デフォルトの名無しさん:2005/10/25(火) 08:31:58
普通にHTMLページでそのファイルアップロード画面へアップした場合と、
なにか悩んでるプログラムでの、
HTTP通信の差を見た?
ログとるなり、他のツール使うなりすれば見れるでしょ。

つうか、サーバもいじれるならFTP立ち上げたほうが早いし問題ないし。
HTTPのファイルアップロードは所詮オマケというか無理がある仕様だし。
793デフォルトの名無しさん:2005/10/25(火) 08:36:29
ところでGetRequestStreamの解説を読んだことがなさそうだな>質問者
794デフォルトの名無しさん:2005/10/25(火) 16:07:35
DataColumnCollectionの列順を変えたいのですが、どなたかよい方法をご存じないですか?
MSDNで調べても、方法が載っていません。
よろしくお願いします。
795デフォルトの名無しさん:2005/10/25(火) 17:26:38
新しいDataTableを作る
796デフォルトの名無しさん:2005/10/25(火) 19:13:31
その並び順を気にする発想が理解できん。
797デフォルトの名無しさん:2005/10/25(火) 19:59:06
一度取得したテーブルをどうこうするより、希望する列順で取得できる
クエリを出したほうが楽かと。
798デフォルトの名無しさん:2005/10/25(火) 23:39:21
どうもこんばんわ。
VB.NETでクォータービューの、FFTみたいなのを考えているんですが、アルゴリズムに
いまいち自信がもてません。
今は、Form1Paintに2次元配列から取得したマップデータをもとに、DrawImageで
全てのマップチップを描画しています。コントロール配列でピクチャーボックスにしなかったのは
重いかなぁとおもったからです。DrawImageでも普通にちらつきますのでバックバッファいれなきゃなりませんが。

今は、iとjで2重ループで回して左奥から順番に右手前まで描画しています。
マップ回転は描画する順番を変えてやっています。

それでとりあえずはそれっぽいマップが出来上がったのですが、その上にキャラを
置いたり、カーソルを表示したりする時に、その座標をどのように取得するべきなのかが
よくわかりません・・・。

DrawImageだと座標が取れないので、自分でxとyを決めるのでしょうか。
でもそういうのだとなんだか・・・単に座標は合っていて、見た目は正しいけれど、
実際はそこに見えているだけで配列データにリンクしていないので、どうもしっくりこないなぁ。
と感じます。

すみません・・自分で書いてても判りにくいんですが、正しいアルゴリズムの
ヒントでも結構ですので教えていただけないでしょうか。
799デフォルトの名無しさん:2005/10/26(水) 00:05:28
>>798
ヒント: 内部的に2次元で処理して、クォータービューはDirect3Dまかせ
800デフォルトの名無しさん:2005/10/26(水) 00:14:16
>>798
なんて事は無い質問だな
3次元クリッピングっていう奴だ
801デフォルトの名無しさん:2005/10/26(水) 09:59:20
例えば、
On Error Goto ErrHandler
    :
    :
ErrHandler:

で、ErrHandlerに飛んできた時に、呼び出し元の行番号を取得する方法ってあります?
現在の行番号を取得することはできるんだけど・・・
802デフォルトの名無しさん:2005/10/26(水) 10:47:43
>>801

そんなんも考えつかない or 調べられないのだったら、
プログラマー辞めたら?
803デフォルトの名無しさん:2005/10/26(水) 10:51:59
>>802
うはw
なにコイツw
プログラミング以外人に誇るモノがない人ですか?
804801:2005/10/26(水) 11:05:45
New StackFrame(True).GetFileLineNumber
で現在の行番号を取得したり、

Reflection.MethodBase.GetCurrentMethod.Name
で現在実行中のメソッド名を取得はできたんですけどね・・・

これくらいしか調べられなかったオレって・・・
805デフォルトの名無しさん:2005/10/26(水) 12:10:12
行番号???
まあ、ログ吐きたい場合などにほしくなるけど、結論的には不可です。
デバックコンパイルすれば例外の中に履歴的に出るから見れるけど、実行時はありません
806デフォルトの名無しさん:2005/10/26(水) 12:26:07
>>801
On Errorより、Try〜Catchを使った方がいいのでは?
807デフォルトの名無しさん:2005/10/26(水) 12:30:01
そそ
ワシもtry-catchでexception.stacktraceじゃいかんのか?とオモタ
808駆け出しのPG:2005/10/27(木) 00:41:10
Windowsフォームで作ったアプリに簡単なプロテクトを掛けたいのですが、良い方法はありませんか?
809デフォルトの名無しさん:2005/10/27(木) 00:41:56
プロテクトって何をプロテクトするのよ
810駆け出しのPG :2005/10/27(木) 00:44:12
EXEコピーを防止したいです。
もちろんユーザーが素人に限定されますが。
811デフォルトの名無しさん:2005/10/27(木) 00:50:50
それは何故?
812駆け出しのPG :2005/10/27(木) 00:56:34
依頼されてアプリを作りましたが、依頼者の仕事仲間で需要があるそうです。
依頼者は業務上の使用ですので著作権を完全には放棄したくありません。
813デフォルトの名無しさん:2005/10/27(木) 00:58:20
>もちろんユーザーが素人に限定されますが。
>それは何故?
という意味でしたか?
814デフォルトの名無しさん:2005/10/27(木) 01:57:54
ん、取りあえず思いついたいい加減なやり方。

ライブラリプロジェクトHogeを作って、ライセンスドクラス一つだけ用意。メンバはライセンスキーだけ。取りあえず空。
メインのプロジェクトはそれを参照。
Hoge.dllを除いてユーザに配布。
ユーザのLANアダプタのMACアドレスのMD5を取得。
送信して貰う。
そのMD5をライセンスキーと言うことにして、それをHogeのライセンスドクラスのライセンスキーに設定。
Hogeを再コンパイルして、単独で配布。
あとは起動時にHogeのライセンスキーとユーザのLANアダプタのMACアドレスのMD5が一致するか確認。
毎回ユーザのLANアダプタのMACアドレスのMD5を取得するのは面倒なのでレジストリに取っておくとか。

.NETの知識が多少でもある人ならすぐあれこれできてしまうな。
許可の取消もできないし。

いずれにせよユーザの何らかの情報を元に制限を加える必要がある。
単なるパスワードじゃ教えて終了だし、バイナリごとに異なるキーでも実行ファイルのコピーには無力だし。
815デフォルトの名無しさん:2005/10/27(木) 06:50:09
>814
ありがとうございます。
試してみてまたここにカキコします。
数日下さい。
816デフォルトの名無しさん:2005/10/27(木) 08:42:19
不思議な日本語を見た
817デフォルトの名無しさん:2005/10/27(木) 14:59:47
あるファイルが他のプロセスにロックされているかどうかを知る方法はありますでしょうか?
818デフォルトの名無しさん:2005/10/27(木) 15:06:09
実際に開いてみる
819デフォルトの名無しさん:2005/10/27(木) 15:51:31
2005 Express Edition Beta 2を使ってツールを使ってるんだけど、結構いい感じ。
ヘルプが日本語で無いのは残念だけど。
製品版では日本語ヘルプがちゃんと用意されるだろうから、オレみたいなホビーユーザーなら、Expressで不足は無いと思う。

んで、質問。
Expressで作ったブツは自由に配布できるの?
完全に学習用限定な「Borland C#Builder Personal ダウンロード版 1.0」みたいな例があるから、ちょっと不安になる。
820デフォルトの名無しさん:2005/10/27(木) 16:46:51
>>819
Go-Liveの申請をすれば、配布は出来る。
諸注意等は、ググって調べてくれ。
821デフォルトの名無しさん:2005/10/27(木) 20:24:38
VB.NET のお試し版をダウンロードできるサイト、教えてもらえませんか。
822デフォルトの名無しさん:2005/10/27(木) 21:22:41
823デフォルトの名無しさん:2005/10/27(木) 21:48:17
NDOCでソリューションファイルの読み込み方教えろや!
ニートども!
824デフォルトの名無しさん:2005/10/27(木) 22:21:18
>>820
製品版についての話だと思うんだが>配布
825デフォルトの名無しさん:2005/10/27(木) 22:22:54
>>824
??脳が不自由な方?
826デフォルトの名無しさん:2005/10/27(木) 22:33:35
>>825
ほへ?
>819「Expressで作ったブツ」の"Express"はベータでない製品版で、
それで作ったものを配布可能かどうかを聞いてる、と読んだんだが。
そうなるとGo-Liveとは関係ない。
827819:2005/10/27(木) 23:43:31
どちらとも解釈できる書き方して申し訳ない m(_ _)m
実は、オレ自身、同じエディションでもベータ版と製品版でライセンスが違うとは知らなかったよ。

製品版Expressなら、ブツは配布できるって事でOK?

>821
ttp://www.microsoft.com/japan/msdn/vstudio/2005/express/vbasic/default.aspx
一応、復元ポイントを作成してからインストールする方がいいかも。
828デフォルトの名無しさん:2005/10/27(木) 23:51:31
>>826
「ほへ?」はねぇべ?
わやきもいじゃ。
829デフォルトの名無しさん:2005/10/28(金) 01:17:27
>>828
824と823を間違えてるのに気づけよ
830801:2005/10/28(金) 10:29:57
>806
>807
exception.stacktraceでこんな情報を取得できるって気づきませんでしたw
Try〜Catchは場合によって使用していたのに・・・。

遅レススマソ。
831デフォルトの名無しさん:2005/10/29(土) 08:26:33
教えてください。
http://mbm.livewiredev.com/
[INFORMATION]で[SHARED MEMORY]の項目を選び、[C CODE]の中の
:: VB.NET Code
» VB.NET code can be downloaded here, thanks to Pedro Navarro
を選んでダウンロードし解凍してVB 2005 Express Edition Betaで[ビルド]し、[デバッグ開始]したら、
[sensor 2]のほうの[name]での表示(“CPU”)が“PU”に化けたり、”U”だけになったりする。
また[sensor2]の[Current value]の表示が整数できちんと出ることもあるが、しばらくすると、
Eの型で表示されてしまう。時々(っていうか、なりっぱなしになってしまうこともある)、
まるで表示されなくなってしまうこともある。何故なんだろうか。

VB.netは持ってないんで、ベータ版でしかテストできないので、誰か他のバージョンで
動作確認をして報告してもらえるとありがたいです。
(尚、上記は、”Mother Boardmonitor5が動いている状態でないとテストできません。)
832デフォルトの名無しさん:2005/10/29(土) 08:35:49
Cでのchar[]を全部Char()で宣言してる……。
833デフォルトの名無しさん:2005/10/29(土) 10:24:40
>>832
レス、どうも
ちょっと、その意味がわかりません

834デフォルトの名無しさん:2005/10/29(土) 12:59:16
「bitmapinfo構造体のメモリハンドルとビットマップデータのメモリハンドル」が
与えられて、そのデータをピクチャボックスに表示したいのですが、どうやったら
いいのかさっぱり分かりません
ヒントだけでもお教え頂けませんでしょうか
835デフォルトの名無しさん:2005/10/29(土) 13:37:14
簡単に言えばー、
Win32APIのCreateDIBitmap関数でHBITMAP作ってー、
Image.FromHbitmapメソッドでBitmapにする。
メモリハンドルというのがHLOCALならアドレス取得にはLocalLock関数。そうでないのならそれに応じた関数。
Win32APIでは使い終わったGDIオブジェクトやメモリ領域の後かたづけに気を付けて。
836デフォルトの名無しさん:2005/10/29(土) 13:37:57
ヒント

(1) MSDN(ドキュメントビュア)を起動して、"bitmapinfo"を検索する

(2) 検索結果の「場所」のカラムヘッダをクリックしてソートし、
  「場所」が「プラットフォームSDK: GDI」になっている適当な項を表示する。

(3) 表示されたページ、およびその一番下の「参照」にリンクされているページを
  注意深く読む。ドキュメントビュアのツールバーの「同期」ボタン(←→)を押して、
  関連するページも読む。

(4) このスレのテンプレに紹介されているウェブサイトなどで、グラフィックを
  扱っているサンプルを探してピクチャーボックスに画像を描画する一般的な方法を掴んでおく。

(5) Graphicsクラスのメンバを見て、デバイスコンテキストを取得する方法はないか調べる。
837831,833:2005/10/29(土) 17:23:14
>>832->>836
尚、サンプルコードでは、Refresh() した直後には、senssor1のデータ関数を読んでるだけで、
Sensor2のほうはしてないようなので、タイムラグによるデータの変質なのかなとも思いました。
なので、sensor2のほうもsensor1と同時に新たに宣言したstring変数に代入し、更に、sensor2の
データがtext表示される直前に、その変数(温度データ)の長さが2バイトかどうかでデータチェック
して、2バイト以外の場合は、もう一度、refresh()してから変数にとりこむようにしたら、表示
そのもとしては、なんとか格好はついたようです。
838831,833:2005/10/29(土) 17:25:44
つまり、sensor1の表示の前に
 Dim sensorname1 As String
Dim sensorname2 As String
Dim sensortemp1 As String
Dim sensortemp2 As String
  sensorname1 = MBMInfo.Sensor(1).ssName
sensortemp1 = MBMInfo.Sensor(1).ssCurrent
sensorname2 = MBMInfo.Sensor(2).ssName
sensortemp2 = MBMInfo.Sensor(2).ssCurrent

を加え、sensor2の表示の直前で

While Len(sensortemp2) <> 2
MBMInfo.Refresh()
sensorname2 = MBMInfo.Sensor(2).ssName()
sensortemp2 = MBMInfo.Sensor(2).ssCurrent
End While

を加えたら、少なくとも表示としては良くなって、「ひょっとして内部的」にも
なんとか、うまく動いているような感じもします。えへへ(-_-;)
839831,833:2005/10/29(土) 17:30:10
While Len(sensortemp2) <> 2

While Len(sensortemp2) > 2

のほうがいいですかね
840デフォルトの名無しさん:2005/10/29(土) 18:27:55
ところで、誰か、Microsoft Visual Studio.net Academic version2002
を使ってる人っていますか?
841sage:2005/10/30(日) 16:43:44
FlexGridの表の幅をドラッグで変更できるようにするにはどうすればいいのでしょうか?
842デフォルトの名無しさん:2005/10/30(日) 20:03:03
すいません、質問です。

VB.NET 2003 で作ったアプリのメモリ消費量に関することなのですが、
フォームを表示するだけのアプリでもメモリ16Mぐらい消費しています。
これってこんなもんなんですか?何かやったら減らせるもんなんでしょうか?

レジストリ読み書き(するだけの)ツール作ったらメモリ消費30M近くになって
「iTunesよりすげー」とか言われてショックでした・・・
843デフォルトの名無しさん:2005/10/30(日) 20:05:37
>>842
.NETはJava並みの重さだからしょうがないよ
844最凶VB厨房:2005/10/30(日) 20:16:51
最小化するとWorking Setは減る。
845デフォルトの名無しさん:2005/10/30(日) 20:44:06
タスクマネージャのメモリ使用量なんて目安の一つでしかないのに随分幅きかせてますね
846デフォルトの名無しさん:2005/10/30(日) 23:46:17
というかVB.NETの新バージョンはほんとに年内に出るの?
847デフォルトの名無しさん:2005/10/31(月) 09:17:37
2003と2005では何が変わるんですか?
848デフォルトの名無しさん:2005/10/31(月) 12:34:20
バグが変わる。
849デフォルトの名無しさん:2005/10/31(月) 14:21:53
shgetfileinfoでファイルのアイコン取得してるのだけど、最初はいいのだけど
しばらくほっておくと破棄されたアイコンにアクセス出来ないとかってエラーが出る
(タイマーで再表示してる)
これって何がいかんのでしょう
850デフォルトの名無しさん:2005/10/31(月) 16:30:36
DataTableで、DataTableAからDataTableBにデータを丸写ししたいのですが、
DataTableAには列C、列D、列Eがあり、DataTableBには列C、列Dがあります。
そして、DataTableBは、列順が、列D、列Cとなっています。
こういう場合、CLONEやCOPYだと、スキーマまでコピーされてしまいます。
どなたか、スキーマはコピーせず、データのみを丸写しするよい方法を
ご存じないでしょうか?
よろしくお聞かせ願います。
851842:2005/10/31(月) 21:06:51
気にするとハゲるってことですね。
どうもありがとうございました。

>>845さん
あなたを含めた識者はその詳細なメモリ使用量とやらの測り方を知ってるんでしょうけど。
たとえばPCの性能をクロックだけでしか見れないような人も多いですので。
そんなクラスの人はメモリ使用量というとタスクマネージャでしか測れないもんです
(下手するとタスクマネージャすら知らない)。うちもそんなクラスのマです。失格ですね。
852デフォルトの名無しさん:2005/11/01(火) 01:03:46
>>850
地道にDataTableAをループ走査。
853デフォルトの名無しさん:2005/11/01(火) 01:35:03
vbにはIME周りのAPIはないんですか?
854デフォルトの名無しさん:2005/11/01(火) 10:02:16
Control.ImeModeくらいだな
855デフォルトの名無しさん:2005/11/01(火) 15:52:01
なんだ、結局
VB.NETのユーザってVBユーザとあんま変わってないのか。
856デフォルトの名無しさん:2005/11/01(火) 16:08:45
開発環境が変わった程度で人がそうそう変わるわけはない
857デフォルトの名無しさん:2005/11/01(火) 18:21:15
>>856 格言ですな
858デフォルトの名無しさん:2005/11/01(火) 18:47:58
人がそうそう変われないのに、開発環境はどんどん変わる。

‥‥せめて互換性は残しておいてよ。orz
859デフォルトの名無しさん:2005/11/01(火) 21:36:50
VBAってVB.NETになるんですか?
今からVBA勉強するより、VB.NET勉強しておいたほうがいいですか?
860デフォルトの名無しさん:2005/11/01(火) 21:55:40
当分は消えないだろうなぁ……(遠い目
861デフォルトの名無しさん:2005/11/01(火) 22:41:16
>>860
あれじゃね・・・・・・・スr(ry
862半人前:2005/11/02(水) 00:55:02


VB.net を使用してWindowsの
「ブー」(警告音)
っていう音を出したいのですがどのようなコード
を書けば宜しいでしょうか?

お教え願います。
863デフォルトの名無しさん:2005/11/02(水) 00:59:45
ビープならBeep関数があるが、それじゃなくて?
コンパネのサウンドで設定するような奴?
864半人前:2005/11/02(水) 01:02:07
>>863
>ビープならBeep関数があるが、それじゃなくて?
>コンパネのサウンドで設定するような奴?
レスありがとうございます。
ビープというのは、Windowsの警告音の事を指すのでしょうか?
ちょとVSを立ち上げて【Beep】を試してみます。
どうもありがとうございます(^_^)b

865半人前:2005/11/02(水) 01:17:00

すみません。VS2003にて下記のコードを試して
みたのですがどうもうまく行きません。一体何が原因
なのでしょうか?

For i As Integer = 0 To 100
Beep()
Next
866デフォルトの名無しさん:2005/11/02(水) 01:20:50
何がどううまくいかないんだっての
そこを説明しろ
それだから半人前なんだ
867半人前:2005/11/02(水) 01:25:32
>>866
申し訳ありません。
上記のコードをButton押下のタイミングで鳴らそうとして
いるのですが、全く音が鳴りません。

※当方、スピーカー(安物ですが、、、)を一応つけてしっかり
映画を再生すると音が鳴っているのを確認した上で、
上記のコードを実行してはいるのですが一向になりません。
868半人前:2005/11/02(水) 01:29:39

失礼しました。一応押下したタイミングで鳴っておりました。
しかしながら、
例え100回ループのコードを記述してもスピーカーから流れる音というのは
「ブ」
 でありできれば
「ブブブブブブブブ・・・」
 といった風に連続で鳴らしたいです。。。
869デフォルトの名無しさん:2005/11/02(水) 01:35:45
まずそもそもBeep関数で鳴る音は>>862で望んでいる音なのか?
ループ回数を2桁増やしたりしたらどうなのか?
870半人前:2005/11/02(水) 01:45:27
上記に関連して一ついい案が浮かんだのですが、
1秒毎にBeepを発生させれば
人間の耳には、ブブブ・・・と聞こえる気が致しました。

そこで、はたまたご質問なのですが1秒毎に実行させたい
場合には、どの様なコードを記述すれば良いでしょうか?

ぐぐって
System.Windows.Forms.Timer
を使うらしいという事は、分ったのですが肝心のサンプル
ソースが無い為に不完全燃焼中です。。。
871半人前:2005/11/02(水) 01:50:52
>>869
>まずそもそもBeep関数で鳴る音は>>862で望んでいる音なのか?
>ループ回数を2桁増やしたりしたらどうなのか?
半人前でして、音の種類には特にこだわっていない
ですからひとまずOKです。
あと、二桁増やして For i as integer = 1000 としても
やはり最後の1回分しか音は聞えませんでした。

1秒間隔で鳴らすというのが一番無難なのでしょうか?
私の手元の書籍を参照しても時間制御に纏わる開設が無いので
どうすれば、時間制御が出来るかいまひとつ分りません。
どうか、深夜に申し訳無いですがお教え下さいませ。



872デフォルトの名無しさん:2005/11/02(水) 07:31:38
1秒だと間があきすぎだと思う。
Sleep(200)くらいでいいんじゃね?
873半人前:2005/11/02(水) 08:05:16
>>872
おはようございます。
早速のレスをありがとうございます(^_^)b
試してみます。
874半人前:2005/11/02(水) 08:10:38
>>872
解決しました。ありがとう!!
875デフォルトの名無しさん:2005/11/02(水) 11:28:54
ASP.NET Web Matrixで作成されたシングルファイルをVS.NET 2003のVB.NET ASP Webアプリケーション用の
フォームとコードビハインドのファイル(HTMLとコード部分)に分割する方法というかコツはないでしょうか?

何度やってもエラーが取れず困っております。


※適切な板が見つからなかったのですがASP.NETもこの板でいいのでしょうか?
876デフォルトの名無しさん:2005/11/02(水) 23:19:27
VS.NET2003プロフェッショナルのVB.NETで開発しています。
↑このパッケージにについてるクリスタルレポートを使って印刷機能を実装しようと思うのですが、
完成したexeを不特定多数に配布してもライセンスは問題ないでしょうか?
またクライアントにexe以外の何かを入れないと動かないのでしょうか?
877デフォルトの名無しさん:2005/11/03(木) 02:51:32
起動時に解像度の変更をしたくて、

    Imports Microsoft.DirectX
    Imports Microsoft.DirectX.DirectDraw

Dim device As New Device
Dim Width As Integer
Dim Hight As Integer

Width = 800
Hight = 600

Me.FormBorderStyle = FormBorderStyle.None
device.SetCooperativeLevel(Me, CooperativeLevelFlags.Exclusive Or CooperativeLevelFlags.Fullscreen)
device.SetDisplayMode(Width, Hight, 16, 0, False)

フォームロードにこんなコードを書いてみたのですが、実行すると数秒で解像度等々元に戻ってしまいます。
ずっと設定の解像度を保持してるには、どうしたらよいのでしょうか?

望む動作としては、ゲームにあるような解像度を変えつつ、フルスクリーン表示という感じです
878デフォルトの名無しさん:2005/11/04(金) 14:23:53
WB.NET+ASP.NETで開発をしております。
ボタンを押された時にメッセージボックスを出すような処理を作ったのですが
メッセージ表示時に何故か画面がリロードされてしまうのです。
ネットのサンプル等を見るとリロードせずに普通にメッセージが出ているのですが
何が原因なのかわかりません。詳しい方教えてください。

Response.Write("<script language=JavaScript>window.alert('aaa')</script>")

これだけなんですが・・・
879デフォルトの名無しさん:2005/11/04(金) 21:15:04
>>878
runat="server"になってないか?
880デフォルトの名無しさん:2005/11/06(日) 13:22:33
質問です。
delegateとeventは、いったい、何が違うのでしょうか?
調べれば、調べるほど、「????」と、なってしまいます・・・。
eventは、handles句で、静的に関連付けができるとかなのか・・・。
881デフォルトの名無しさん:2005/11/06(日) 13:48:55
>>880
@ITのVB.net入門にその記述があったような無かったような。
882デフォルトの名無しさん:2005/11/06(日) 13:50:07
delegateは型。
eventはdelegateのインスタンスに対するプロパティ的存在。
883デフォルトの名無しさん:2005/11/06(日) 17:00:12
Public Declare Function SelectObject Lib "gdi32" (ByVal hdc As Integer, ByVal hObject As Integer) As Integer

hDC = GetDC(Picture1.Handle.ToInt32)
hbmp = CreateCompatibleBitmap(hDC, ImgX, ImgY)
hSelObj = SelectObject(hDC, hbmp)
とした時にエラーコード126(モジュールが見つからない)が返るんですけど何故なんでしょう
hDCとhbmpには値が返っています(hSelObjは0)
884デフォルトの名無しさん:2005/11/06(日) 17:40:25
再現しないな
関係ないがハンドルはIntPtr型で宣言すれ
885デフォルトの名無しさん:2005/11/06(日) 20:14:52
エラーコード126ってそれ。。
886デフォルトの名無しさん:2005/11/07(月) 01:20:21
すみません。
どなたか暇つぶしに教えてくださいませ<m(__)m>

1)ドイツ語単語(などの外国語単語)をテキストファイルに
1行1単語ずつバーッと書いてあるものを用意する。

2)単語ごとにttp://www5.mediagalaxy.co.jp/sanshushadj/
(←ドイツ語の場合)のような辞書サイトに検索させる。

3)1単語につき1ブラウザ開くようにする
(だから300単語とかになるとひどいことになるけど……)

3’)もしくは検索結果のみを1ファイルに書き込む。


……というようなことをVB.NETをつかってやりたいのですが
(EXCEL VBAとかでもいい)、具体的にどうすればいいのか、
いまから自分で調べたりしてると時間がないので、
お知恵をお借りしたく、投稿させていただきました。
887デフォルトの名無しさん:2005/11/07(月) 02:45:02
http://www.ringolab.com/note/daiya/archives/002070.html
をみてWebサービスで翻訳する
888デフォルトの名無しさん:2005/11/07(月) 07:43:30
時々セーブデータで
[configre]
a1 =50
a2 =90
みたいな書式のデータ見るんだけど、あれって何使って出力すればいいの?
889デフォルトの名無しさん:2005/11/07(月) 07:55:12
ストリームライターで、ってことじゃ無くて?
890デフォルトの名無しさん:2005/11/07(月) 09:37:21
PanelをFixed3Dに設定した場合凹んで見えるのがデフォルトみたいですが
逆に見えるようにするにはどうすればいいですか?
891デフォルトの名無しさん:2005/11/07(月) 10:16:53
PocketPC用のソフト作ってます。
compact framework で使えるグリッドコンポーネントってないでしょうか?
セルの色さえ指定できればいいんですが。
グレープシティのを見かけたけど、抱き合わせ販売で高すぎ。。
892デフォルトの名無しさん:2005/11/07(月) 11:23:53
今考えているのですか、ちょっとしたポータルサイトを作ろうとした場合
.netとsql serverがあればつくれますか?
登録されたアドレス等をsqlに溜め込んでHP上でselectしてあげれば
いい気がするのですが、普通にできますかね?
893デフォルトの名無しさん:2005/11/07(月) 15:21:54
>>888
Win32APIのGetPrivateProfileString、
WritePrivateProfileStringをMSDNなりぐぐるなりで調べてみるといい
894デフォルトの名無しさん:2005/11/07(月) 18:41:06
>>886
"http://www5.mediagalaxy.co.jp/CGI/sanshushadj/search.cgi?cmd=list&serch2=%8C%9F%8D%F5&key_word="
この文字列の末尾に、調べたい単語を連結したURLにアクセスすればいい。

以下のリンクをクリックすると"ich"の検索結果が出る。
http://www5.mediagalaxy.co.jp/CGI/sanshushadj/search.cgi?cmd=list&serch2=%8C%9F%8D%F5&key_word=ich
895デフォルトの名無しさん:2005/11/07(月) 19:05:17
>>888
>>893の言う通りMSDNで調べて、使えそうだと思ったら以下の使ってみるといい。
ヌル文字、ヌルポインタなどのC言語の知識が少し必要になるけどね。
もし使いたければ以下のAPI宣言文を使ってくれ。

Public Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" _
(ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
Public Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" _
(ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Integer

Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Integer
Public Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Integer, ByVal lpFileName As String) As Integer
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
896デフォルトの名無しさん:2005/11/07(月) 19:26:22
そんな面倒なことしてまでWin32API使うことないんでないの?
自分で書いたってたいしたことないと思うんだけど。

作るときはフツーにテキストファイルに書くだけ。
読むときは一行ごと読んで“=”ぶったぎってアイテムと値を分けるだけ。
何も難しくないじゃん。
897デフォルトの名無しさん:2005/11/07(月) 19:31:23
XmlSerializerやらSoapFormatterやらなら考える必要もほとんど無いが。
898デフォルトの名無しさん:2005/11/07(月) 20:09:39
>>896
コメントやらセクションやらを考えるとメンドクセ
おっと、それなりの大きさの規模のアプリケーションを作った事の無い人でしたか。
毎回ご自分でその位実装してくださいね。
899デフォルトの名無しさん:2005/11/07(月) 21:07:21
>>898
馬鹿じゃないの。
キミ、自分でそういうコード書いたことないでしょw
Win32API使えば面倒じゃないとでも思ってるのかね。
シリアライズ/デシリアライズしてくれるわけでもなく、結局アイテムを
一つずつ書き出し/読み出ししなきゃならないわけで、そんなものの
いったいどこにメリットがあるのか。

リストみたいなものも保存できないしね。
自分でスルスクラッチすればどうってことないのに。

セクション?
そんなもの実装するのわけないだろ普通。
900895:2005/11/07(月) 21:34:31
偉そうに書いてしまった>>895の宣言文は一部間違ってたわ。
As Anyは.NETではエラーになる。スマン。
以下を参照してくれ。
ttp://www5b.biglobe.ne.jp/~yone-ken/VBNET/special/sp06_GetPrivateProfileString.html
901デフォルトの名無しさん:2005/11/07(月) 21:58:21
APIコールすんのが面倒臭いから同じ処理を自力で書くのか?
結果が同じなら先人の資産を活用する方が楽に決まってるだろ。
APIをコールするやり方知らないだけじゃん m9(^Д^)プギャー
セクションを実装しないiniファイル? ハァ( ゚Д゚)? それiniじゃねーだろwww
スルスクラッチってどこの世界の単語なんだよwww
902デフォルトの名無しさん:2005/11/08(火) 01:26:31
なにこの必死な奴が多いスレ
903デフォルトの名無しさん:2005/11/08(火) 02:25:07
>>899
設定ファイルにコメントが書けるのってのは非常に重要だし、設定ファイルの更新をしたときに元のファイルの体裁が残っている事も重要。それを真面目に実装すると結構な手間になる
904デフォルトの名無しさん:2005/11/08(火) 09:40:18
お世話になります

VB.netでタイマーを3つ用意し、1つをプログラム起動時に停止(仮称A)、1つをAからの差を取り
カウントダウンタイマーとし(仮称B)、1つをBが0カウントになった時点で起動(仮称C)
というものを作っていますが
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Timer1.Stop()

timers1 = (Now)

Label1.Text = timers1

End Sub

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick

REM 時間の演算
' 時間計算の問題を解決すること
' 1 キャスト問題を解決すること
' 2 タイマー2つの時差をとること
timers2 = (Now)

Label2.Text = CDate(CDate(timers2) - CDate(timers1)) REM この演算を入れると死ぬ
                           ' キャストが悪さしてるみたい
どうやってもうまくキャストできません
どなたか妙案があったら御教授願います
905デフォルトの名無しさん:2005/11/08(火) 09:53:06
>>904
秒単位の精度でいいなら、DateDiff関数でいいんでは?
906デフォルトの名無しさん:2005/11/08(火) 10:20:24
つか減算よりも比較演算の方が良くないか?
907デフォルトの名無しさん:2005/11/08(火) 12:01:22
Panelの凹凸は逆に出来ないんでしょうか?
908デフォルトの名無しさん:2005/11/08(火) 12:35:43
>>904
キャストが悪さしてるみたい、ってそれ確認したの?
本当にそれが原因か確認する方法を考えた?
っていうか、エラーの内容は?
んなことやってると永遠に三流PGでっせ。

MSDN見るとVBの日付型の正体はDateTime構造体だとわかる。
DateTimeに対して‘-’演算子は定義されているんだろうか。
909904:2005/11/08(火) 12:43:28
>>905,906
ありがとうございます
とりあえずカウンタをすべて動かすところまではいけました
またお願いします

>>908
ありがとうございます
三流だなんてとんでもない 中途入社のVB暦1週間のペーペーです
またお願いします
910デフォルトの名無しさん:2005/11/08(火) 12:51:58
>>907
自分で派生クラスを再定義すればいけるかもしれんね。
そんな手間かけるくらいなら、画像ファイルを用意してピクチャ貼り
した上にコントロール配置したほうが楽かも。
911デフォルトの名無しさん:2005/11/08(火) 13:03:40
ここで聞くもんかわからんが
VBCommenterっていうコメント書きアドインツールがあるんだが
米サイトからDL出来なくなってる(エラーになる)
どこかミラーでおいてあるところ無い?
912デフォルトの名無しさん:2005/11/08(火) 14:46:34
今までVB 6で開発してましたが、遅まきながら.NETに移行しようと思います。

そこでちょっと調べたのですが、.NET用の市販ライブラリがあまり見つかりません。
今まではVB 6の標準コントロールが貧弱ということもあり、ほとんどのコントロールは
購入したライブラリのものを使用していました。

皆さんは、.NET用の市販ライブラリはどのようなモノを使っていますか?
グレープシティやWindows Developerマガジンを調べてみたのですが、
他にもどこかで紹介されているサイトがありましたら、お教えいただきたく。

それとも、使う必要の無いほど.NETのライブラリは高機能なんでしょうか。
913デフォルトの名無しさん:2005/11/08(火) 14:58:21
>>912
まず、どんなライブラリが必要か列挙したほうがいんじゃまいか?
914デフォルトの名無しさん:2005/11/08(火) 15:20:19
親クラスが overridable されているかどうかを調べる方法は
ありますか?

例えばグレープシティの InputMan の EditMode を
overrides したかったのですが EditMode が overrides できなかった
ので、overridable されているかを調べたくなりました。

方法があれば知りたいのでよろしくお願いします。

915デフォルトの名無しさん:2005/11/08(火) 15:21:33
普通はリファレンスに書いてるんじゃね?
916デフォルトの名無しさん:2005/11/08(火) 15:27:16
それが書いてないんですよね。

例えば
Public Property ControlEffect As GrapeCity.Win.Input.ControlEffect
は overrides できて、
Public Property EditMode As GrapeCity.Win.Input.EditMode
はできない。

リファレンスじゃわからないんですよね。

というか、リファレンスを見るしか方法ないんですかね?
917デフォルトの名無しさん:2005/11/08(火) 17:21:56
VB6の「debug.print」は、vb.netでは「system.Diagnostics.Debug.WriteLine」ということですが
VB6のイミディエイトウインドウのようなものは、visual studioに無いのでしょうか?
918デフォルトの名無しさん:2005/11/08(火) 17:41:18
ある
ほとんど同じ使い方が出来る

つか、ヘルプ見(ry
919917:2005/11/08(火) 18:08:28
Microsoft Script Debugger でしょうか?
表示メニューでは選択できませんが、どうやって表示するのでしょうか?
920912:2005/11/08(火) 18:17:02
>>913 あ、すいません。カテゴリーを示すことにしますが、そうすると次に
「どんな仕様なら良いんだ?」とさらに質問が来そうなので、今使っている
コントロールを示すことにします。

入力系:グレープシティ InputMan
グリッド系:グレープシティ SPREAD
グリッド系:グレープシティ VS-FlexGrid
フォーム系:グレープシティ Active 3D Plus
フォーム系:グレープシティ VS-Resizer
グラフ系:グレープシティ True WinChart
ヘルプ系:グレープシティ True Help
インストール系:グレープシティ InstallStudio
帳票系:H.O.S シーオーリポーツ

グレープシティのものが多いですが、これは文化オリエント時代のVBXから
使っているというだけで、気に入ってるわけではありません。
ですから、.NET用はグレープシティのものではなく、他社のモノも
使ってみたいと思います。
921デフォルトの名無しさん:2005/11/08(火) 18:35:05
>>919
コマンドウインドウというのがそれにあたる
> ←これが出てるから
immedと入力するとデバッグ中に変数の中身表示させたり出来る
922917:2005/11/08(火) 18:48:47
>>921
どうもありがとう。助かりました。
「表示」の「その他ウインドウ」に気づきませんでした。
923デフォルトの名無しさん:2005/11/08(火) 18:49:02
Debug.Print は Console.WriteLine で置き換え
出力のウインドウで確認
924デフォルトの名無しさん:2005/11/08(火) 18:59:38
C# から VB.NET に移行してきました。
コントロールのイベントの追加の方法を知りたいのですが、
C#はコントロールを選択してプロパティの画面から追加するイベントを
選択してコードを書いていくのですがVB.NETの場合はコード画面の
上のほうにあるコンボボックスの左側からコントロールを選択し、
その右のコンボからコードを追加したいイベントを選択するという方法
になるのでしょうか?
これ以外のイベントの追加の方法がありましたら教えてください。

あと、複数のコントロールで発生したイベントで処理する内容が同じ場合、
Handles のうしろに、そのイベントで処理したいコントロールを
手書きで追加していくっていうやり方であっていますか?
これもC#の場合はプロパティの部分でイベントを開くと既に存在する
関数が一覧で表示されそこから選択する事ができたので、
VB.NET でも同じように IDE で処理する方法があれば教えてください。
925デフォルトの名無しさん:2005/11/08(火) 19:00:31
なんでそんな移行するんだろう
926917:2005/11/08(火) 19:31:29
>924

>その右のコンボからコードを追加したいイベントを選択するという方法
>になるのでしょうか?

そうです。

>これ以外のイベントの追加の方法がありましたら教えてください。
私にはわかりませんので、レスを待ってください。

>あと、複数のコントロールで発生したイベントで処理する内容が同じ場合、
>Handles のうしろに、そのイベントで処理したいコントロールを
>手書きで追加していくっていうやり方であっていますか?

あってます。
927デフォルトの名無しさん:2005/11/08(火) 21:17:35
ラベル コンボボックス ピクチャボックス

これら全てを表示はさせつつ、
一つのチェックボックスがチェックされていないと構えないようにしたいんだけど、
どうしたらいいですかね?
visible=falseは消えちまうからイクナイ
928デフォルトの名無しさん:2005/11/08(火) 21:28:55
C#でいうところの using() {} のように 自動でIDisposable させる為の
構文はVB.NETにありますか?
929デフォルトの名無しさん:2005/11/08(火) 21:30:07
enabled=false
つーかラベルをどういじるの?
930デフォルトの名無しさん:2005/11/08(火) 21:32:31
なんつうか、グレー表示にならんかな
931デフォルトの名無しさん:2005/11/08(火) 21:33:09
>>929
えーと、これチェックしたらコレ使えるで、みたいな雰囲気を出しときたい
932デフォルトの名無しさん:2005/11/08(火) 21:37:23
自分でコントロール作ればいいんだよ。
ラベルなりなんなり継承して。
そんなの三分もあれば出来るよマジで。
933デフォルトの名無しさん:2005/11/08(火) 21:47:14
windows.formsなアプリで、起動直後に設定ファイルの有無の判断を行ない、
設定ファイルがある場合フォーム(A)を表示、なければ設定用のフォーム(B)
を表示といったアプリケーションを作りたいと思っています。

この時、A.exeを起動して設定ファイルのチェックをし A.exe のフォームを
表示せずにB.DLLを表示させられなくてつまづいています。
A.exeのフォームが必ずでてしまいます。

A.exe を起動しつつ、A.exeのフォームを表示したくない場合には
どのようにすべきでしょう?
934デフォルトの名無しさん:2005/11/08(火) 21:51:38
>>928
現在無し。2005から。
935デフォルトの名無しさん:2005/11/08(火) 22:02:53
モジュール作ってプログラムのプロパティのスタートアップの設定で
そのモジュールにする
で、そのモジュール(のmain)でApplication.Run(_form1)の前にForm2.Showdialogかな?
936デフォルトの名無しさん:2005/11/08(火) 22:03:34
>>933
適当なクラスにMainって共有メソッドを作って
そいつをプロジェクトのスタートアップにすべし。
っていうか、こんなのドトネトのTips紹介してるサイトをちょっと巡れば
調べがつくでしょ。
937933:2005/11/08(火) 22:06:53
ありがとうございます。
自分で Main メソッドを作ればいけるんですね。
助かりました。
938デフォルトの名無しさん:2005/11/08(火) 23:16:16
オプション画面を作る時、左側のツリー選択で右側の画面を切り替える場合は、新しいフォームのインスタンスを作って右側だけに呼び出すという形でいいのでしょうか?
それとも、もっと一般的な形があるんでしょうか?
939デフォルトの名無しさん:2005/11/09(水) 00:08:57
>>938
Formを普通のコントロールにして右にLoad

TopLevelだっけかな?
940デフォルトの名無しさん:2005/11/09(水) 00:10:23
ナンノコチャw
941デフォルトの名無しさん:2005/11/09(水) 00:15:10
TopLevel = FalseにしないとForm内にFormを追加できねぇ
942904:2005/11/09(水) 12:10:31
1つのソースで完結する(ビルドできる)ソースファイル2つを
1つの実行ファイルにまとめたい(ソース1でソース2に記述したクラスを
呼び出す?)のですがMSDN見てもやり方がまったくわかりません

実際こういうことは不可能でソース2を解体してソース1に組み込まないとだめなのでしょうか?
943904:2005/11/09(水) 14:10:58
>>942は解決できました
ありがとうございました
944デフォルトの名無しさん:2005/11/09(水) 16:21:38
今日VB.NET始めたばっかですが質問させてください
テキストボックスに入力した値を変数xに入れて
別の変数nを10のx乗させて変数yに格納したいんですが
Dim y As Double = n * E(x)
これだとだめでした
どうしたらいいんでしょうか^^;
945デフォルトの名無しさん:2005/11/09(水) 17:03:23
べき乗するなら
^
を使う
10^2 は 10の2乗^^
946デフォルトの名無しさん:2005/11/09(水) 17:15:50
E(x)って書くと、「xを引数として関数Eをコールする」か「配列Eのインデックスx番の値」って意味になっちゃう。

階乗演算子は ^
10のx乗は 10^x

変数nを10のx乗するってのは意味がわからんけど、察するに以下のようにすればいいと思う。
Dim y As Double = n * (10^x)
947944:2005/11/09(水) 17:44:30
>>945-946
できました!
ありがとうございます^^
948デフォルトの名無しさん:2005/11/09(水) 19:56:38
ファイル→新規作成→プロジェクト→新しいプロジェクト→OK
とすると「オブジェクトでサポートされていないプロパティまたはメソッドです。」
と出て、新しく始める事ができません。
どうか、解決策を教えてください。
949デフォルトの名無しさん:2005/11/09(水) 20:16:06
開発環境を入れ直せ。
950デフォルトの名無しさん:2005/11/09(水) 20:37:23
>>949
ありがとうございます。さっそく、やってみます。
951デフォルトの名無しさん:2005/11/09(水) 20:47:01
>>938
PanelかUserControlを派生させて、そこにそれぞれの画面を作る。
Formにそれぞれを重なるように配置して、表示するのを変えるにはそのコントロールをBringToFrontする。
952948:2005/11/09(水) 21:23:14
探したのですが、どこで開発環境の変更をするかわかりません。
誰か、教えてください。
953デフォルトの名無しさん:2005/11/09(水) 21:26:12
変更って何?
954948:2005/11/09(水) 21:28:43
間違えました。入れ直す、でした。
955デフォルトの名無しさん:2005/11/09(水) 22:33:41
vb.net で作成した DLL(Windows.Forms) を、参照設定する事なく、
インスタンスの生成を行ないたいのですが(フォームの表示をさせたい)
実現させる方法はありますか?

956デフォルトの名無しさん:2005/11/09(水) 22:38:20
System.Reflection.Assembly.LoadFromでアセンブリをロードして、
そのAssemblyでGetTypeして型情報を取得、
System.Activator.CreateInstanceでその型のインスタンスを作成。
957デフォルトの名無しさん:2005/11/09(水) 23:02:51
ありがとうございます。

GetType する時にクラス名がわかっていないといけないようですが、
クラス名がわからなくてもアセンブリのインスタンスを生成する
なんて事はできないでしょうか?

958デフォルトの名無しさん:2005/11/09(水) 23:11:48
型名も分からないのにインスタンスを作るってのもなかなか有り得ないと思うが……。
Assembly.GetTypesでType配列を取得して、それぞれBaseTypeを遡っていって調べてみるとか。

> アセンブリのインスタンスを生成する
これは意味不明だ。
959デフォルトの名無しさん:2005/11/10(木) 07:48:54
>>952
VisualStudioをアンインストールして
もう一度インストールする
960デフォルトの名無しさん:2005/11/10(木) 09:38:57
あるDBのマスタテーブルからデータを読み込む(書き込む機能は不要)クラスを作るとした時。
このデータの読み込むタイミングは以下のどちらが一般的でしょうか?

・コンストラクタでマスタのCodeを渡して読み込む
・コンストラクタでは何もせず、DataRead(Code)のようなメソッドを持ちそこで読み込む

上司に「コンストラクタは初期化なんだから何もせず、読み込むメソッドを持った方がいい」と指摘をうけたのですがどうなんでしょう。
なんか「初期化」の意味を取り違えてるような気がしないでもないのですが・・・
作る側としては読み込むメソッドを持つと、使う側で呼び忘れてエラーの元になってしまうと思ったので
コンストラクタで読み込んでしまうような作り方をしていました。
961デフォルトの名無しさん:2005/11/10(木) 09:45:39
一般的にはその上司の言が正しい。
特に処理が重くなる場合はコンストラクタに実装するのは避けるべき。
962デフォルトの名無しさん:2005/11/10(木) 12:27:53
ケースバイケースだろうけど俺は>>960の設計の方をむしろ推すね。
要するに読み込みを非同期にすりゃいいだけでしょ?
客から注文もらってから問屋に注文だすような店なら最初からイラネ。
963デフォルトの名無しさん:2005/11/10(木) 12:58:49
コンストラクタではまず重い処理はやるべきではない。
次に、どっちにも対応すればいいんだから・・・。

上司コンストラクタ − インスタンス生成だけ
>>960コンストラクタ − 生成して検索関数呼ぶ
検索ぱぶりっく関数 − 検索実行

面子潰さず、自分の意見通しつつ。
964デフォルトの名無しさん:2005/11/10(木) 16:32:06
textboxコントロールがフォーカスを受け取った時にコントロールの
背景色を変えようと思っているのですが、
フォーカスを受け取ったイベントとして、
Enter を使うべきか、GotFocus を使うべきか、どちらを
使うべきでしょうか?
965デフォルトの名無しさん:2005/11/10(木) 16:39:18
Enterを使うべきだとあちこちに書かれてると思うんだが。
GotFocus使ったらフォームをアクティブにしたときも発生したりするぞ。
966デフォルトの名無しさん:2005/11/10(木) 17:09:41
VB.NETのIF文で最初の条件がFALSEの場合2番目以降の比較は行なわないように
記述する方法はありますか?
dim x as boolean = false
dim y as boolean = true
if(x and y = nothing) then
の場合、xがFALSEなのでyの値が何であっても条件に該当しないので
このように最初の条件がFALSEになった場合、それ以降の条件判断を
して欲しくないのですが。IF文を2つにわけるしかないでしょうか?
よろしくお願いします。
967デフォルトの名無しさん:2005/11/10(木) 17:15:09
AndAlso
ちょっとはリファレンス見ようぜ
968960:2005/11/10(木) 17:48:52
>>961
>>962
>>963
レス感謝です。

「コンストラクタには重い処理を書くべきではない」ってのを今日まで知りませんでした。
1万件のレコードを、960に書いた2通りの方法でそれぞれ試してみましたが時間的な差は無かったです。
なにか実感できるようなサンプルってありますか?
969デフォルトの名無しさん:2005/11/10(木) 18:02:03
厳密にはデバッグできなくなるって理由でないの?>コンストラクタに書かない
970デフォルトの名無しさん:2005/11/10(木) 18:29:26
>>968
>「コンストラクタには重い処理を書くべきではない」ってのを今日まで知りませんでした
単に961の俺様ルールだと思うよそれ。
だってそんなルールに何の合理性のないじゃん。
すくなくとも無条件にいつでも合理的とはいえないよ。

というか、重いなら単に非同期で処理すればいいだけの話で
どうせ必須の引数なら最初から受け取っておく、必須の処理なら最初からやっておく
これが普通の考え方でしょう。
もちろん「特に理由がない限りにおいては」ね。
971デフォルトの名無しさん:2005/11/10(木) 18:35:08
つ コンストラクタの使用方法のガイドライン
972デフォルトの名無しさん:2005/11/11(金) 01:03:50
Cで作った xxx.dll 中の

typedef struct {
  int a;
  int b[50];
} X;
int test(X *z) {}

な関数を、VBで、

Structure X
  Dim a As Integer
  Dim b(50) As Integer
End Structure
Declare Function test Lib "xxx.dll" (ByRef z As X) As Integer

として使おうとしたのですが、VBでは構造体に固定長配列が使えないらしく、
エラーが出てしまいます。
構造体の中では b() だけ宣言して後でReDim b(50) しても、
アドレス的に a に連続しないのか、test を呼び出したときに落ちます。
どうしたらいいでしょうか。
973デフォルトの名無しさん:2005/11/11(金) 03:50:01
C#.NETでは書けて、VB.NETで書けないものってありますか?
974デフォルトの名無しさん:2005/11/11(金) 04:40:09
>>972
Imports System.Runtime.InteropServices 'コードの先頭で宣言

<MarshalAs(UnmanagedType.ByValArray, SizeConst:=50)> _
Dim b() As Integer

>>973
VB2005で可能になるけど、カスタムイベント、演算子のオーバーロード、XMLドキュメントあたり。
975デフォルトの名無しさん:2005/11/11(金) 09:27:36
つうか、コンストラクタで非同期処理なんてしてほしくないよな。
976デフォルトの名無しさん:2005/11/11(金) 12:58:19
>>973
unsafe コード
977デフォルトの名無しさん
質問です。

データグリッドで、1つのセルに文字を打ったとき、
打たれた文字を判別することはできますか?

データベースと連携させていて、aと打たれたらaから始まるコード(商品コードなど)を
そのセルの部分でコンボボックスで表示させたいのですが。