VB.NET質問スレ (Part12)at TECH
VB.NET質問スレ (Part12) - 暇つぶし2ch2:デフォルトの名無しさん
05/07/17 20:34:37
MSDN
言語仕様などのリファレンス
URLリンク(www.microsoft.com)
.NET Framework リファレンス
URLリンク(www.microsoft.com)
.NET Framework を使用したプログラミング
URLリンク(www.microsoft.com)
正規表現
URLリンク(www.microsoft.com)
サンプルコード
URLリンク(www.microsoft.com)

3:デフォルトの名無しさん
05/07/17 20:35:00
どぼん!のVB道のトップページとTipsページ
URLリンク(dobon.net)
URLリンク(dobon.net)
Microsoftクイック スタート チュートリアル
URLリンク(ja.gotdotnet.com)
Insider.NET
URLリンク(www.atmarkit.co.jp)
宇宙仮面の C# プログラミング
URLリンク(ukamen.hp.infoseek.co.jp)
.NET のつぼ
URLリンク(park16.wakwak.com)
.NET TIPS
URLリンク(www.atmarkit.co.jp)
緑のバイク ★ 初めてのC# プログラム全般
URLリンク(homepage3.nifty.com)
VB.NETとC#でデザインパターン
URLリンク(hccweb1.bai.ne.jp)
C#プログラミングTips
URLリンク(www.atmarkit.co.jp)
WisdomSoft
URLリンク(wisdom.sakura.ne.jp)
CodeProject
URLリンク(www.codeproject.com)
the GotDotNet Home Page
URLリンク(www.gotdotnet.com)
KEN's .NET
URLリンク(www5b.biglobe.ne.jp)
Cetus Links: 19,498 Links on Objects and Components / .NET
URLリンク(www.cetus-links.org)

4:デフォルトの名無しさん
05/07/17 20:35:40
どっとねっとふぁん - C# Tips And Samples -
URLリンク(homepage3.nifty.com)
HIRO's.NET
URLリンク(vbdotnet.fc2web.com)
@IT:特集 .NET開発者のためのオンライン・リソース・ガイド
URLリンク(www.atmarkit.co.jp)
匣の向こう側
URLリンク(www.ne.jp)
.NETでいきまっしょい!
URLリンク(santamartadotnet.hp.infoseek.co.jp)
これがほしかった!厳選サンプルツール集
URLリンク(anetm.com)
ぬーやんのdotNET講座
URLリンク(www.geocities.jp)
PINVOKE.NET
URLリンク(www.pinvoke.net)
WinAPI Database for VB Programmer
URLリンク(www.geocities.co.jp)
Windows Api programming in C# , VB.NET, and VB6. Examples of P/Invoke and DllImport with Source code
URLリンク(custom.programming-in.net)
ConvertCSharp2VB
URLリンク(www.kamalpatel.net)
@IT:.NET Tools
URLリンク(www.atmarkit.co.jp)
SharpLibrary Redirector
URLリンク(www.sharplibrary.com)
MSDN アカデミック アライアンス 技術資料
URLリンク(www.microsoft.com)
「300 秒でズバリ !!」&「10 行でズバリ !!」シリーズ
URLリンク(www.microsoft.com)

5:デフォルトの名無しさん
05/07/17 20:36:17
PAPA'n VB
URLリンク(www.mitene.or.jp)
じゃんぬねっと
URLリンク(jeanne.wankuma.com)
VB レスキュー花ちゃん
URLリンク(www.bcap.co.jp)
(Java覚え書き)デザインパターンあれこれ
URLリンク(www.dmz.hitachi-sk.co.jp)
algorithm
URLリンク(www.mnet.ne.jp)
日本語RFCリスト
URLリンク(www.se.hiroshima-u.ac.jp)


テンプレ完

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

.NETの講習を受けつつVBAから地道に勉強してみます。
色々アドバイスありがっとー!!
では、お邪魔しました。

7:デフォルトの名無しさん
05/07/17 21:22:25
>>1


8:最凶VB厨房
05/07/17 22:09:58
1乙

9:デフォルトの名無しさん
05/07/18 11:01:56
1ぬるぽ

10:デフォルトの名無しさん
05/07/18 17:24:06
.SelectedText = "  "


「"  "」の中に「"」を入れても「"」は表示されないんだけど、
「"」を表示させたいときはどうしたらイイんですか?

11:最凶VB厨房
05/07/18 17:36:55
>9ガ
>10""らしい

12:デフォルトの名無しさん
05/07/18 17:39:15
>>11出来た。さんくすテラアリガタス

13:デフォルトの名無しさん
05/07/19 12:59:46 BE:48813833-
ぬるり

14:デフォルトの名無しさん
05/07/19 16:58:59
ColorDialogを呼んで、選択した色のコード(FF00FFみたいなやつ)を取得したいんだけど、
可能ですか??

15:超初心者
05/07/19 17:21:19
VB.NETでDeviceCapabilitiesを使ってプリンタ用紙名一覧を取得する方法
が分かりません。分かる方いらっしゃいましたら教えてください。


16:14
05/07/19 22:07:09
誰かタスケテ・・・


17:デフォルトの名無しさん
05/07/19 22:24:56
スレ違いだったら申し訳ないです。
DBサーバを立ててそこにPostgreSQL8のWindows版をインストールします。
このDBに対してアクセスをするクライアントアプリを作りたいのですが、
事前にコントロールパネルからODBCのデータソースを
登録することなくアクセスすることは可能でしょうか?
不可能なのであればインストーラー等で
データソースの設定を自動ですることは可能でしょうか?
よろしくお願いします。

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




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

っていうか、>>10と同一人物臭いけど、
こんなレベルの話をいちいち人に聞いてるんじゃいつまでたってもものにならんよ。
まずは入門書の一冊も読めよ。

20:デフォルトの名無しさん
05/07/20 00:45:29
>>14
可能かどうかを聞くなら、可能だ。

21:デフォルトの名無しさん
05/07/20 00:49:51
Environmentとかで
環境変数からエラーレベルって取得できないのかの?



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



23:デフォルトの名無しさん
05/07/20 07:15:02
>>18
そういう香具師は、SharpDevelopでも使うよろし

24:デフォルトの名無しさん
05/07/20 11:50:44
なんで?<23

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



26:25
05/07/20 17:16:06
C♯相談室 Part11 の856にありました。
URLリンク(pc5.2ch.net)
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:デフォルトの名無しさん
05/07/20 22:28:31
求められた機能を実現してれば、ソースなんてどうでもいいよな

28:デフォルトの名無しさん
05/07/20 23:28:44
質問させてください。

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

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

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

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

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

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

参考文献でも良いのでヒントをお願いします。

29:デフォルトの名無しさん
05/07/21 09:24:16
>>28
そのあたりのヒントになるのは、ノータッチデプロイとそのセキュリティ設定の話かな?
ブラウザベースよりこっちのほうが簡単だと思うよ。

30:デフォルトの名無しさん
05/07/21 20:20:40
>>29
ありがとうございます。

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

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

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

アドバイス、ありがとうございました。


31:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/07/21 22:41:49
DataGridのページング機能の表示を<<1 2 3>>(番号を押したらそれぞれのページへ移動、<< or >>を押すとひとつ前のページへ移動)としたいのですができるのでしょうか???


33:デフォルトの名無しさん
05/07/22 11:18:46
NetAdvantage2004のWebMaskEditを使っていおりまして、
クライアント側の処理としてJavaScriptでWebMaskEditの背景色を
変える動作を行いたいのですが、現在入っているWebMaskEditの色情報を
取得することは出来たのですが、その中に変更したい背景色を指定しても、
色が変わらなく、困っております。
どなたか教えていただければ幸いです。お願いいたします。


34:デフォルトの名無しさん
05/07/22 11:25:13
GrapeCityに聞けば?

35:31
05/07/22 20:21:46
自己解決しました。

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

 でOKのようです。お騒がせしました。

36:デフォルトの名無しさん
05/07/23 11:53:35
Compact Frameworkでイメージをファイルに保存する方法ないでしょうか?

37:デフォルトの名無しさん
05/07/24 03:14:27
最近はじめてプログラミングを勉強してみようと思い、VB.NETを勉強し始めたのですが
このソフトで一体どの程度のアプリケーションが作成できるのでしょうか?
また、このソフトを使っている人って趣味の範疇ですか?
実際の業務でこのソフトで作ったアプリケーションが役に立つ機会ってありましたか?

自分としてはwebブラウザで動くプログラムを作りたいと思っているのですが、
そういう場合には、どういう言語を勉強するといいでしょうか?

38:デフォルトの名無しさん
05/07/24 03:16:57
それから、VB.NETとVBで作成できるアプリケーションの場合
どちらが優れたソフトを作成できるのでしょうか?

質問内容自体がおかしいかもしれませんが、宜しくお願いいたします。

39:デフォルトの名無しさん
05/07/24 03:18:27
質問がおかしすぎます
勉強し始めたならそのくらいわかるでしょう?

40:デフォルトの名無しさん
05/07/24 03:29:11
>>39
やっぱりおかしいですか・・・
変な質問だとは思いますが、できるだけ質問の内容を解釈して
回答いただけると嬉しいです・・・

41:デフォルトの名無しさん
05/07/24 03:32:58
>>37
>また、このソフトを使っている人って趣味の範疇ですか?

なめとんのかコラ
喧嘩売ってるとしか思えないな。

42:最凶VB厨房
05/07/24 04:29:29
漏れは趣味の範疇ですw
だけど非IT系企業の実際の業務でも使えます。
四則計算
ファイル入出力
ネットワーク通信
お絵かき
GUI
Webアプリ
.net frameworkが入ったWindows2000,XPであれば
特に問題無くいろいろ遊べます。
管理者権限がないと無理なものもありますが。

43:デフォルトの名無しさん
05/07/24 04:42:50
>>40
それはcgiだ。
スクリプト言語なんかだとより楽に作れる。
ソフトはそれぞれ得手不得手がある。調べろ

44:デフォルトの名無しさん
05/07/24 05:39:29
趣味の範疇でやめておいた方がいい言語ではあるな。
とくにプログラミング初心者の場合は。

45:デフォルトの名無しさん
05/07/24 08:01:50
>>41
す、すみません・・・

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

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

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

出かけるので夕方以降に見させて頂きます。

46:デフォルトの名無しさん
05/07/24 08:34:47
>>37
URLリンク(ja.gotdotnet.com)

47:43
05/07/24 14:28:50
どの言語がいいかは初心者によくある質問だが、
少ない情報で言い切れるヤシはいない。
それと、cgiを調べろということじゃあない。
ソフトは単純な良し悪しじゃないともいったつもりだが。考えて読め
本当に説明すると長長と語れてしまうことになるんだぞ。
情報がないぞ。何を優先するつもり?簡単さ?仕事案件の多さ?

48:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/07/24 20:56:15
>>46
どうもありがとうございます。難しそうですね・・・

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

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

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

みなさんはプログラミング言語の勉強は楽しかったですか?

50:デフォルトの名無しさん
05/07/24 21:12:21
>>48
例外メッセージの詳細は?

51:デフォルトの名無しさん
05/07/24 21:36:12
>>50
Fontを設定している個所で発生した例外をキャッチしたところ
System.Arithmetic Exceptionが発生しており、
Exception.Messeageには
「算術操作でオーバーフローまたはアンダーフローが発生しました。」
とのことです。

52:デフォルトの名無しさん
05/07/24 21:47:29
それは分かってる。ArithmeticExceptionはそう言う例外だ。
どのメソッドで発生してるかを聞いてる。

53:デフォルトの名無しさん
05/07/24 21:50:24
ああ念のために言っておくとキャッチしたExceptionを.ToString()したときにずらずら出てくる"場所"のことな

54:デフォルトの名無しさん
05/07/24 21:57:10
>>53
最近の若いもんはスタックトレースも知らんのか。


55:デフォルトの名無しさん
05/07/24 22:02:11
53としては知っているが、51がいかにも知らなさそうだったので。

56:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/07/24 22:08:13
>>53
わしも知らんぞw

58:デフォルトの名無しさん
05/07/24 22:30:32
ArrayListをカプセル化した場合のアクセサの書き方ってどうなるの?

59:デフォルトの名無しさん
05/07/24 22:39:21
VB.NETとVBAってどちらのほうが難しいんですか?

60:デフォルトの名無しさん
05/07/24 22:41:41
>>59
どっちもどっち

61:デフォルトの名無しさん
05/07/24 22:51:53
>>60
そうなんですか。
VBはアプリケーション開発用のソフトで、VBAはExcelとかAccessの機能拡張のための
プログラムなんですよね。
でも、いまいち違いがよくわらないです。
VBでExcelと連動するソフトが作れるし、逆にVBAでもできるですよね?

62:デフォルトの名無しさん
05/07/24 22:52:29
>>56
む~、Font.Initializeの中見てみたけど直接ArithmeticException投げるような操作が見つからね。
フォントを右クリックでリセットするとどうなる?
あるいは一旦コントロールを消して作り直したらどうなる?

>>58
カプセル化? 継承じゃなくて?
求めているのはDefaultキーワードかな?

63:58
05/07/24 22:55:05
>>62
いえ、getとかのほうです。

64:デフォルトの名無しさん
05/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厨房
05/07/24 23:39:49
>49
>構文覚えるの面倒だな
激しく同意!めんどくせーもんはめんどくせーよ。
>言語がほんの数年後には価値のないものになってしまうかもという不安感
もちろんそうなる可能性はある。
そう思うなら複数の言語を勉強すればよい。
だけどVB.NETの勉強が無駄になることは無い。
プログラミングしなくなるなら別だが。
>64
なるほど。( ..)φメモメモ
ってか思わずIntegerListって探してしまったわ。

66:デフォルトの名無しさん
05/07/25 00:14:30
最凶氏はデキる人なのか馬鹿なのかわからんな。
時々するどい回答をみせるかと思えば、デフォルトプロパティなんて
猿でも知ってるようなことに驚いているし。

C#のインデクサと対比してよく語られてる話題だと思うが。

67:最凶VB厨房
05/07/25 00:41:59
鋭い回答あったっけ?基本馬鹿だけどなー。
インデクサの実装したことないんよ。(゜∇゜)

68:デフォルトの名無しさん
05/07/25 14:33:11
> む~、Font.Initializeの中見てみたけど直接ArithmeticException投げるような操作が見つからね。
> フォントを右クリックでリセットするとどうなる?
> あるいは一旦コントロールを消して作り直したらどうなる?

作り直しても同じ例外。
違うフォントを指定しても同じ例外。
フォントを指定するのをやめてデフォルトのフォントにすると例外発生せず。
領域から文字がはみ出てはいけないのかと思い、
領域をうんと広げてみても同じ例外。
という状態です。

69:デフォルトの名無しさん
05/07/25 15:01:58
URLリンク(www.gdncom.jp)
ビデオカードのドライバが怪しいんじゃないかという意見。
Googleにもほとんど引っかからないなぁ……。

と思ったら良さげなの発見。
URLリンク(dturini.blogspot.com)

70:デフォルトの名無しさん
05/07/25 16:29:11
Basicの気持ち悪い構文どうにかなりませんか???

71:デフォルトの名無しさん
05/07/25 16:36:38
C#使え。

72:デフォルトの名無しさん
05/07/25 17:46:08
>>70
> Basicの気持ち悪い構文どうにかなりませんか???

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

おれは、= が代入記号になったり演算子になったりするのが気持ち悪いな。

73:デフォルトの名無しさん
05/07/25 17:56:37
代入も演算の一種だぜ。

74:デフォルトの名無しさん
05/07/25 18:03:04
>>73
> 代入も演算の一種だぜ。

えっ? ほんと? 知らんかった。

75:70
05/07/25 19:05:50
変に大文字の構文とか、{}がないとか、THENとか。
でもVBよりVC#の方が情報が少なくて困る

76:デフォルトの名無しさん
05/07/25 19:07:20
>>75
方言みたいなもんでほとんど一緒だからなんとかなる

77:デフォルトの名無しさん
05/07/25 19:13:51
C#の情報、少ないか?
VB6を含めるならともかくVB.NETとC#ではそう差はないと感じるんだが。

78:デフォルトの名無しさん
05/07/25 19:25:42
>>77
相互に変換できるから

79:デフォルトの名無しさん
05/07/25 21:02:06
VB.NETもC#もたいして変わらんやんか

80:デフォルトの名無しさん
05/07/25 21:13:45
っそ、大して変わらん。
ちょっとしっくり来なくて気持ち悪いという程度。
だから>>70もそういっとる。

おれは大文字なのは馴れたな。

81:デフォルトの名無しさん
05/07/25 21:15:58
Whileの条件節で代入できないのは痛いな、とか

82:デフォルトの名無しさん
05/07/25 21:47:57
あれ?C#ってCみたいに"="は演算子で結果は右辺の値になるんだっけ?
なんか違うような気がしたけど。

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

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

自分に正直になれよ。読みにくいっしょ、Cのコードって。
俺は組み込みメインなんでCはよく使うけど、(c#は使ったことない)本当にCの表記法は糞だと思う。
丁寧にラベルつけたアセンブラのコードの方が余程可読性が高いケースもある。

83:デフォルトの名無しさん
05/07/25 22:23:26
だからもう趣味のレベルだろ。どうせ同じアセンブリ吐けるんだし。
C/C++はポインタのせいで面倒なことになってるが、それをなくしたC#/Javaなら問題なし。
私はVBより好きだし読みやすく感じる。慣れてるからと言うのも大きいけど。

84:デフォルトの名無しさん
05/07/26 14:08:21
フォームの大きさを変えた後にフォームを閉じ、再度、フォームを開いたら、フォームの大きさが保存されるようにしたいのです。なにかいい方法はないでしょうか?
もしありましたら、ご教授下さい。よろしくお願いします。


85:デフォルトの名無しさん
05/07/26 14:33:14
アプリケーションの終了/開始時って話じゃなくて、同一プロセスの中での話だよね?
CloseイベントでSizeを適当なフィールド変数に保存してやればいいじゃん。

86:デフォルトの名無しさん
05/07/26 14:58:10
>>85
アプリケーションの終了後なんですよー。
プロセスも異なっています。

87:デフォルトの名無しさん
05/07/26 15:18:55
INIかコンフィグファイルに書き込むようにする


88:デフォルトの名無しさん
05/07/26 15:36:31
.Net Frameworkって、INIやコンフィグファイルを読み書きするようなクラスって、ありましたっけ?
その辺のクラスやサンプルってご存じないですか?

89:デフォルトの名無しさん
05/07/26 16:02:16
まあ自分で書け。
設定用の各種プロパティを含んだクラスを作ってそのインスタンスに値を入れてXmlSerializerで永続化というのが一つの手法だ。

90:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/07/26 20:59:50
>>90
MSDNちゃんと見てる?まあ見てないんだろうけど。
そんなのタイプしてる間にMSDN見たほうがよほど早いよ。この程度の問題なら普通ね。

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

あとはWin32APIのInvertRectを使う手もある。

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

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

あとはWin32APIのInvertRectを使う手もある。

93:デフォルトの名無しさん
05/07/27 00:05:17
>>84
レジストリに書いちゃうって手もあるよ。

94:デフォルトの名無しさん
05/07/27 06:37:29
>>93
それを如何に簡単にやるかの議論だろ?w

おしゃれで融通が利くのは、>>89が書いたクラスのシリアル化・逆シリアル化を行う方法だと思う。


95:90
05/07/27 09:30:05
>>91
ありがとうございました。無事コントロールの位置を取ることができました。
3D表示にすると高さと幅があやしいですが・・・なんとかなりそうです。

MSDN・・・見てるつもりですが見方が甘いです。。。
VB5からの移行作業を始めて一週間。
なんだか難しくなってるな~という印象。
JavaとかCとかやったことあると簡単なんですかね?

96:デフォルトの名無しさん
05/07/27 12:34:13
>>94
横から突っ込んで悪いけど、「レジストリに書く」っていう話と
「シリアル化する」って話は抽象水準変わらないと思うよ。

97:デフォルトの名無しさん
05/07/27 18:17:36
ブラウザとかで選択された文字列を取得したり
ブラウザなどのテキストボックスに文字を送ったりするのにはどうしたらいいですか??

98:デフォルトの名無しさん
05/07/28 10:24:01
とりあえずVisual Basic.NET2003を買えば
開発できるのですよね?

99:デフォルトの名無しさん
05/07/28 10:28:19
>>98
できる

100:デフォルトの名無しさん
05/07/28 10:28:23
とりあえず腕も必要。

101:デフォルトの名無しさん
05/07/28 10:54:34
とりあえず、買わなくても出来るから、SharpDevelopとかをぐぐって落とせ。
それで満足できなくなったら金を出せ。

102:デフォルトの名無しさん
05/07/28 11:12:31
最低限、.NET Frameworkさえあればできる。IDEはつかないが。

103:デフォルトの名無しさん
05/07/28 17:16:13
.NETフレームワークの2.0を入れれば
1.1のソフトも動作しますか?

104:デフォルトの名無しさん
05/07/28 20:50:07
動く可能性はそれなりにある。
動かす場合は.configファイルにサポートする.NETのバージョンを書く必要がある。
<supportedRuntime>要素。

105:デフォルトの名無しさん
05/07/29 00:04:38
VB.NETで他のアプリケーションの情報ってどうやって手に入れるんでしょうか?
例えばヤフーメッセンジャーのチャットの他人の発言のどんなログを受信したとか

106:デフォルトの名無しさん
05/07/29 00:17:43
>>105
わけわからん質問だなあ。。
君が作った、君独自の「俺様フォーマット」である情報を記録するソフトがあるとする。

その「俺様フォーマット」をたちまち解析して、必要な情報を取り出すような
エスパーみたいなソフトがありうると思うか?

107:デフォルトの名無しさん
05/07/29 04:44:42
>>106
それを質問してるんだろ?
わからねーなら口出すな

108:デフォルトの名無しさん
05/07/29 08:42:48
>>107
106 をどう読むと 「わからない」 になるんだ?
おおむね無理って内容だろうが。

109:デフォルトの名無しさん
05/07/29 09:22:57
>>105
この質問って質問になってないよ。
外を歩いている人の年収や健康状態をとりあえず知りたいんだけど、どうすればって言ってるのと同じ。

110:デフォルトの名無しさん
05/07/29 09:51:14
>>107
ばーかばーか

111:デフォルトの名無しさん
05/07/29 10:00:52
>>105
そんなことはできません。きっぱり。

112:デフォルトの名無しさん
05/07/29 13:55:28 BE:347117388-
>>105
メッセンジャーのDLLインポしたら?
知人がヤフチャのログ解析して
「占い」とか「天気予報」ってログ書き込んだら
自動的に「大吉」とか「www.tenki.jp」とか発言するツール作ってる

113:デフォルトの名無しさん
05/07/30 10:26:55
よそで聞いたらヤフーメッセンジャーの発言を読む方法が分かりました。
ここで無理って言ったやつはただの馬鹿。


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



114:デフォルトの名無しさん
05/07/30 10:30:11
ここにそんな期待をするほうが間違っている。

115:デフォルトの名無しさん
05/07/30 10:33:34
>>114
仲間か?


116:デフォルトの名無しさん
05/07/30 10:34:54
さあまたいつもの流れの時間がやってきました

117:デフォルトの名無しさん
05/07/30 16:26:25
元の質問はヤフーのログ読みの質問じゃないよな。
汎用的な他のアプリ情報奪取方法。

118:デフォルトの名無しさん
05/07/30 16:27:41
>>117
で、どうやったら汎用的な他のアプリ情報を取れるんですか?

119:デフォルトの名無しさん
05/07/30 17:12:13
エスパーだったら可能です。


120:デフォルトの名無しさん
05/07/30 17:23:40
>>119
まじめに答えてくださいよ
そんなくだらない事言って何が面白いんですか?

121:デフォルトの名無しさん
05/07/30 17:29:29
パケットキャプチャでよければ作れるけど?
あと、キーボードフックとかも作れるけど

122:最凶VB厨房
05/07/30 17:49:25
そんな手間かからんのであれば作って欲しいぞなもし。

123:デフォルトの名無しさん
05/07/30 17:59:24
そんなもんわざわざ作らんでもすぐ見つかるじゃん。

124:デフォルトの名無しさん
05/07/30 18:37:07
>>105あたりから>>110で回答済みなのに。
>>120みたいなパターンの煽りって正直しつこい。

125:デフォルトの名無しさん
05/07/30 18:41:08
>>124
わからねーなら口出すな

126:デフォルトの名無しさん
05/07/30 18:45:33
>>125
じゃあ具体的にどのような仕様のアプリを作りたくて、
何を試したり調べたりしたのか出してくれよ。
あんな漠然とした質問じゃ誰も答えられませんよ。

隣のアプリが何をしてるかなんて、知らないのが当然なんですから。


127:デフォルトの名無しさん
05/07/30 18:49:20
>>126
>>125

128:デフォルトの名無しさん
05/07/30 18:57:15
>>125
ばーかばーか

129:デフォルトの名無しさん
05/07/30 19:11:04
>>116

130:デフォルトの名無しさん
05/07/30 19:37:42
もう、面白くもないな。


131:デフォルトの名無しさん
05/07/31 02:02:15
急速にスレの質が低下してまいりました

132:デフォルトの名無しさん
05/07/31 02:04:38
>>112
DLLインポートってどうやるんですか?

133:デフォルトの名無しさん
05/07/31 04:52:33
( ´ー`)y―┛~~夏ですなぁ・・・・

134:デフォルトの名無しさん
05/07/31 08:05:18
まったくのVB.NET初心者なのですが、
VBでパラメータを指定して、SQLのSPを呼び出すという簡単なプログラムを作りたいのです。
で、MSDNの10行でズバリシリーズにやり方が書いてあるのですが、質問させてください。

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

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

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

レベルが低くてすみません。


135:デフォルトの名無しさん
05/07/31 08:38:52
>>134
@ITに簡単なADO入門の記事があるからそれを見ろ。


136:デフォルトの名無しさん
05/07/31 09:25:05
>>134
CustomerOrdersというデータセットを作るということだよ。

137:デフォルトの名無しさん
05/08/01 10:00:15
test

138:デフォルトの名無しさん
05/08/01 10:04:24
test

139:デフォルトの名無しさん
05/08/01 16:29:16
VB.NET ASP のTextBoxの改行消えてします。


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

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


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

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

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


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

.Net 2003
FrameWork1.3



140:デフォルトの名無しさん
05/08/01 20:29:59
やっぱり1.3はつっこむところか

141:デフォルトの名無しさん
05/08/01 20:30:32
複数人で開発するプロジェクトの環境構築で質問です。
Visual Source Safe は使ってはいけないと言われています。

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

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

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



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

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



143:デフォルトの名無しさん
05/08/01 21:18:05
そしてできあがる相互参照。……できあがってない。

144:デフォルトの名無しさん
05/08/01 21:19:41
>>142
本日はこの点ではまっていたため、少し安心しました。
ありがとうございました。
また明日試してみたいと思います。

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



145:デフォルトの名無しさん
05/08/01 21:23:22
>>140
1.3探しちゃいました

146:デフォルトの名無しさん
05/08/01 22:07:38
>>144
DLLいっても、今までのActiveXDLLとかと違って、普通のライブラリだ。
この部分の仕様は凄くシンプルになって、それこそ抵抗なく入れるから使ってみたほうがいいよ。
構える必要全くなし。

147:デフォルトの名無しさん
05/08/03 19:41:21
Win2000 SP4で開発しています。

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

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

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



148:デフォルトの名無しさん
05/08/03 19:50:31
>>147
画面の領域外に表示されてるんでない?
マイナス座標とか

149:デフォルトの名無しさん
05/08/03 19:50:48
System.Diagnostics名前空間のProcessクラス使えー。

150:146
05/08/03 22:53:37
>147

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

>149

プロセスが終了するまで待たねばならないので、何とかShell関数でやりたいのです。

151:デフォルトの名無しさん
05/08/03 23:01:18
>>150
ProcessクラスにはWaitForExitメソッドなんてのもある。

152:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/08/04 00:33:43
ちなみに
Dim a As Single = 1.3E-4
なんて記述は有効だから試してみると良い。

155:デフォルトの名無しさん
05/08/04 00:48:17
>>153-154
感謝感激。
これから試して見ます。

156:最凶VB厨房
05/08/04 01:23:54
自然対数の底
2.7182818284590452354

157:デフォルトの名無しさん
05/08/04 12:43:17
まあ他に優先的に覚えなきゃいけないことが増えたからしょうがないんだけど
こういう昔はどんな入門書にも書いてあったことが、
今の時代には入門書には全然解説されてなく、かといって中上級者向けの本や
MSDNでは知ってて当然の前提として書かれているわけで、今の若い人はそういう意味じゃ不幸だな。

158:デフォルトの名無しさん
05/08/04 14:51:52
URLリンク(pc.watch.impress.co.jp)

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

“私の住むシアトル近辺のマイクロソフトOBの間では、2004年の前半に「Longhornがキャンセルに
なったらしい」という噂がさかんに交わされ、その後次々と「OFSはLonghornとは別」、
「Managed APIは採用しない」とのアナウンスがありました。結局の所、もともと計画していた
Longhorn は出せなくなったけれども、いまさらキャンセルになったとは言えないので、出せるもの
だけかき集めてLonghornと呼ぶことにした、という見方がこちらでは一般的です”

159:デフォルトの名無しさん
05/08/05 12:31:54
ディスクの空き容量調べる場合はどうすればいいですか?

160:デフォルトの名無しさん
05/08/05 12:39:35
マネージドで書くならWMIを使う
URLリンク(homepage3.nifty.com)

CreateObjectでFileSystemObjectを作ってGetDrive/FreeSpaceを使う
Win32APIのGetDiskFreeSpaceExを使う
シェル関数のSHGetDiskFreeSpaceを使う

161:159
05/08/05 21:27:50
>160
なるほど、ありがとうございました。


162:デフォルトの名無しさん
05/08/05 21:40:15 BE:347117388-
クリレポ.NETについて

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

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

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

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

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

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




163:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/08/07 03:11:59
>>163
本当にManagedのC++なら、参照設定で追加するだけで使える。C#で作ったクラスを利用するのと同じ要領で。

165:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/08/07 03:26:15
> Declare Function Add Lib "test32.dll" (ByVal nLeft As Integer, ByVal nRight As Integer) As Integer
> このような書き方で構わないでしょうか。実際にやってみると稼動しているようですが

自分もこの呼び出し方を利用していました。
それで稼動していたし。
C#みたいに参照設定でしようできるんですね。
どっちのほうがいいんですか?
何か違いがあるんでしょうか?

167:デフォルトの名無しさん
05/08/07 04:44:03
>>69さんの意見も参考にしてねv

168:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/08/07 05:28:51
>>164さんありがとうございます。
以前C#みたいにできたらいいのに、と思っていたので実現できそうと知り安心しました。
「本当にManagedのC++なら」という部分の「本当に」が気になりますが
(他社の方が作ってくれたのですが、
一応managedとはいいつつも
既存のC++のソースをVS.NETで開きMFC化しただけ、とも聞いてます…
「本当に」ManagedC++といえるのか、ちょっと心配ですが)
ちょっとためしてみます。

170:デフォルトの名無しさん
05/08/07 11:41:36
>>168
自分で出来ることは自分でする、出来る範囲で調べてみる、って意欲がないのなら
悪いこと言わない、プログラミングなんて止めとけ。

>>3
>どぼん!のVB道のトップページとTipsページ
>URLリンク(dobon.net)
>URLリンク(dobon.net)

171:デフォルトの名無しさん
05/08/08 21:57:18
C#のbase キーワードはVB.NETでは何ですか?


172:デフォルトの名無しさん
05/08/08 22:00:22
MyBase
もうちょっと具体的に説明した方が良いよ。基底クラスのメンバにアクセスするためのキーワード、とか。

173:デフォルトの名無しさん
05/08/08 23:30:38
残念だがそれが出来るやつは聞かんでも分かっとる。


174:デフォルトの名無しさん
05/08/09 22:54:30

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

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

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

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



175:デフォルトの名無しさん
05/08/09 23:02:08
そのリストとやらはどういうオブジェクトなんだ?
ArrayList? Stringの配列?
それとも単純にItemsプロパティに一つ一つ"0001   ABCDEF" "0002   DEFCFE"……ってAddしていったのか?

176:デフォルトの名無しさん
05/08/09 23:17:40
>>174
DropDownStyleをDropDownにしといてSelectedIndexChangedイベントで
Text設定するだけちゃうの?

>>175は池沼か?

177:デフォルトの名無しさん
05/08/09 23:27:55
>>176
試してみた?

178:デフォルトの名無しさん
05/08/10 00:35:03
ああそうか、単純にイベントでText設定してもダメだったような記憶がある。
ドロ臭い方法だけど、SelectedIndexChangedでタイマ起動して
タイマのイベントでText書き換えれば確実に出来る。

ドロ臭いのが嫌ならComboBox継承してOnSelectedIndexChangedをオーバーライド
してやれば可能じゃないか?

179:デフォルトの名無しさん
05/08/10 00:39:11
>>178
泥臭い。
DisplayMemberを利用すべき。

180:デフォルトの名無しさん
05/08/10 00:44:33
え?

181:デフォルトの名無しさん
05/08/11 09:13:29
長時間掛かる処理にキャンセルボタンを付けたいのですが
キャンセルボタンだけがあるフォームをポップアップして
メイン画面のほうはさわれないようにしたいんですが
どうしたらよいでしょうか?

182:181
05/08/11 10:06:43
できました。

183:デフォルトの名無しさん
05/08/11 13:09:44
まあ、あれだ、ホントにキャンセルボタン押せるか確認してくれ


184:181
05/08/11 13:54:56
押せたよ。マルチスレッドって便利すぎ

185:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/08/11 16:19:49
>>185
lParamを何故かByRefで渡しちゃってるよ。

187:185
05/08/11 16:36:40
>>186
Σ(゚д゚ )
うぉ。ホントだ

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

お騒がせして申し訳ありませんでしたm(_ _)m

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

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

VB.NET初級者の私でも作れるでしょうか?
どうかアドバイスお願いいたします・・・

189:デフォルトの名無しさん
05/08/11 23:13:27
IEのクッキーを作りたいのか、独自アプリでクッキーに対応したいのかどっちだ。

190:デフォルトの名無しさん
05/08/11 23:29:37
>>189
レスありがとうございます
IEのクッキーを作りたいです

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

アカウント数とユーザ名が長いので
複数件の登録をしたいんですが・・・。
初級者には不可能でしょうか??

191:デフォルトの名無しさん
05/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 "URLリンク(www.yahoo.co.jp)"
>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:デフォルトの名無しさん
05/08/12 00:17:54
>>191さん
188です!
拡張子をvbsにして実行したところ、成功いたしました!
本当にありがとうございました!

193:デフォルトの名無しさん
05/08/12 17:22:03
VB6ではtextBoxをコントロール配列に出来たと思うのですが、VB.Netでは出来なくなったのでしょうか?
何か変わりの方法が用意されてますか?
----VB6-----
for i = 0 to 10000
textbox(i)=i
next i
みたいなのです。

194:デフォルトの名無しさん
05/08/12 17:30:25
自分で作るしかない。どぼんにそれっぽい実装コードがある。
というかそんな不安定な機構いらない。

195:181
05/08/12 17:33:44
え?不安定な機構?

196:デフォルトの名無しさん
05/08/12 18:35:52
>>193
URLリンク(dobon.net)

197:デフォルトの名無しさん
05/08/12 19:39:34
>>193
自分で別途コントロールの参照変数を配列にして参照するやり方が1つ。

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

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

.net推奨は最後のTagか?

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

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

っていうか、質問する前になんでこんな当たり前のこと試してみないんだろう。

199:最凶VB厨房
05/08/12 22:39:37
アップグレードウィザードはどこにあるんだ?

200:デフォルトの名無しさん
05/08/12 22:53:25
>>199
知ってるくせに(笑)
厨房氏はスレが荒れそうになると現れるな
プレデターか君はw

201:最凶VB厨房
05/08/12 23:43:24
>>200
しらねーから聞いてんだ!
何もしらねー何もわかんねー!!はぁぷみー

202:デフォルトの名無しさん
05/08/13 00:57:53
質問させてください。
複数のラベルが存在しているユーザーコントロールを作成しました。

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

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

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

通常のForeColor、BackColorプロパティのように、
初期値なしみたいな設定できればいいのですが・・・。


203:デフォルトの名無しさん
05/08/13 01:00:10
ユーザコントロールのBackColorChanged&ForeColorChangedで変更すればいいだろ

204:デフォルトの名無しさん
05/08/13 01:17:10
>203
それも試してみたんですが、
今度は「とあるラベルの色を指定するプロパティ」に独自の値を
設定していた場合、「コントロール自体」の色を変更すると、指定していた色が
クリアされてしまいました・・・。

あと、プロパティブラウザで常に太字になるのは避けたいんですが・・・。


205:デフォルトの名無しさん
05/08/13 01:22:48
イベントを作成する場合に(例えば、Clickの場合)
「OnClick」と「Click」がありますが、違いがよくわかりません。
どのように使い分けたらいいのか教えてエロい人!


206:デフォルトの名無しさん
05/08/13 01:33:25
>>204
「とあるラベルの色を指定するプロパティ」で、値を別フィールドにとっておいて
イベントで独自色を使用してるかどうか判断すればいいだろ。
プロパティブラウザ? 気にするな。
気になるのならParentChangedでParentのBackColorとForeColorに合わせるようにするとかどうだ。

>>205
Onの方はProtectedなメソッドなので継承したクラスでオーバーライドするしかない。
そのかわり基底クラスのイベントを多少コントロールできる。
派生コントロールを作らないのならOnをいじる機会はない。
派生コントロールを作るのならデリゲートオブジェクトを作らないのでOnをオーバーライドする方が多少効率的。

207:デフォルトの名無しさん
05/08/13 03:30:00
教えてください。
関数の中には、引数を指定しない場合、デフォルトの値が適用されるものがありますが、
これを自分で作成した関数で再現する場合、どのようにすれば良いのでしょうか

例えば↓で、bolFlag が指定されていないときは、True を指定したい
Public Function MyModule(Byval strData As String, Byval bolFlag as Boolean) As String
  ...
End Function


208:デフォルトの名無しさん
05/08/13 03:33:55
ヘルプで調べると良いよ Visual Basic 言語リファレンス

209:デフォルトの名無しさん
05/08/13 04:22:36
Optional ByVal bolFlag As Boolean = True ですね。
ありがとうございました。

210:204
05/08/13 13:37:52
>206
重ねてのアドバイスありがとうございます。
OnForeColorChangedと、その追加したプロパティのセッターで
コントロール自体の色と一致しているかを保存しておき、
一致している場合のみ連動させるようにしました。
今のところ意図した動きになっているようです。


211:デフォルトの名無しさん
05/08/13 17:27:56
追加で自己レス
ShouldSerialize[プロパティ名]を利用することで、
プロパティブラウザでコントロールの色と同じであれば
太字にならない(=ソースに色指定が出力されない)
ようになりました。

212:デフォルトの名無しさん
05/08/13 21:29:40
質問です。
グローバルIPアドレスを取得したいのですが、どうすればよいでしょうか?

URLリンク(dobon.net)

このページの方法では、LANやルーターから割り振られたアドレスしか取得できないので。

213:デフォルトの名無しさん
05/08/13 22:14:57

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





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

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

せめてルータが決めうちできれば、コマンドでの取得できそうだけどね。

214:デフォルトの名無しさん
05/08/13 22:17:54
ギャース、REMOTE_ADDRだった。
逝ってきます・・・。

215:デフォルトの名無しさん
05/08/14 10:27:19
DataGridで、カラムを複数行にする方法はありませんか?
テーブル:項目1,項目2,項目3,項目4,項目5
みたいなのを
項目1|項目2|項目3
     |項目4|項目5
みたいな感じに表示させたいです。
よろしくお願いします。

216:デフォルトの名無しさん
05/08/14 13:18:42
SELECT 項目1,項目2,項目3 FROM HOGE
UNION
SELECT NULL,項目4,項目5 FROM HOGE

217:215
05/08/14 21:31:19
>>216
ありがとうございます。
やってみたのですが、データの中身は2段になったのですが、項目名称が2段にならなかったです。
項目名称は1行しか無理でしょうか。

218:デフォルトの名無しさん
05/08/15 10:31:59
CheckBoxにReadOnlyプロパティを追加したユーザコントロールを
作ろうとしています。

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

できればCheckBoxを継承して作成したいのですが。

219:デフォルトの名無しさん
05/08/15 10:39:17
CheckStateプロパティと、OnCheckStateChangedメソッドのオーバーライドでいいんじゃね?

220:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/08/15 17:23:25
vb.net(プログラム自体も・・・)始めたばかりのピヨピヨです。
いろいろ調べたんですがどうしても解らないことがあります。
質問してもいいですか?

222:デフォルトの名無しさん
05/08/15 17:25:13

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

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

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



223:デフォルトの名無しさん
05/08/15 17:42:13
ん? 普通にできるけど?
ちなみに.NETではGotFocus/LostFocusよりもEnter/Leaveが推奨されている。

224:デフォルトの名無しさん
05/08/15 17:45:07
>222
私もあまり好きじゃないのですが、同じく業務アプリ屋なので・・・。
VB.netの場合、EnterとLeaveで出来ます。
もしクリックした場合も全選択させたいなら、MouseDownも。
(うちはマウスクリックの場合は全選択させません)

ちなみに、Enterでもタブ移動させたいって言われてませんか?w


225:デフォルトの名無しさん
05/08/15 19:39:32
妙なこと言う人たちだなあ。。
それって好き嫌いの問題か?

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

だいいち、客に出すラーメンの味にラーメン屋自身の好みを押し付けるって不遜じゃないか。

226:デフォルトの名無しさん
05/08/15 19:54:41
なんでそんなことでケチつけるかなぁ?
個人的に好きじゃないことの何が悪い?

意固地になって実装しないわけじゃないし。
注文されればその通りに作ってるさ。


227:デフォルトの名無しさん
05/08/15 19:58:31
>225
コボラー乙

228:最凶VB厨房
05/08/15 20:58:20
こだわりのラーメンは是非食いたいネ
あー腹減った。

229:デフォルトの名無しさん
05/08/15 23:05:29
TcpClient で存在しないアドレスにconnectすると、
えらい時間が掛かってExceptionが返ってくるのだけど、
connectのタイムアウトを設定ってできないの?

230:デフォルトの名無しさん
05/08/15 23:40:07
できない。
別スレッド作るかSystem.Timers.Timerを使うかして、そっちで強制的にCloseするぐらいか。
でもTcpClientでは接続中かどうかを判断もできないんだよね。.NET 2.0で思い出したように追加されたけど。
派生クラスを作ればProtectedメンバのClientプロパティ経由で状態を知ることはできるんだが。
派生クラスでタイムアウト付きConnectでも定義するか。
素直にSocket使った方が早いかもね?

231:デフォルトの名無しさん
05/08/16 00:01:14
>>230
粗雑な問いに、丁寧にお答えいただき、大変恐縮でございます。
ご意見、参考にさせて頂きます。ありがとうございました。

232:デフォルトの名無しさん
05/08/16 09:03:51
>>224
Enterイベントだとタブでの移動では全選択されるようなのですが、
マウスでクリックした場合は全選択されないですよね?
Clickイベントで実装するとテキストボックス内で他の場所を
クリックしたときにも全選択されてしまうし。



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

>テキストボックス内で他の場所
これってどういう意味ですか?

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

>>233
だいたい話の文脈でわかるでしょ?
そうでないならこの話題にのっかる資格はないと思うけど。
フォーカスが来たとき以外も全選択されてしまうということでしょう。

235:デフォルトの名無しさん
05/08/16 11:57:37
>234

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

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

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

あと、いちいち絡むなよ。


236:デフォルトの名無しさん
05/08/16 12:07:32
あー、ごめ。単にEnter経由で判断だけだと、
タブ移動後にクリックした時にも全選択になっちゃうわ。
なんかうまい方法ないかなぁ。


237:デフォルトの名無しさん
05/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


238:235-237
05/08/16 12:13:56
マウスクリックでのEnterかどうかを判断するようにしてみた。


239:デフォルトの名無しさん
05/08/16 12:14:22
>あと、いちいち絡むなよ。
馬鹿じゃないの。
「何も分かってないならだまってろ」
それを君に遠まわしに言ってるのに。。

240:デフォルトの名無しさん
05/08/16 16:31:55
なんだもっと煽り合いになるかと思ったのに過疎っちまいやがったつまらん

241:最凶VB厨房
05/08/16 17:02:40
次はもうちょっとうまいこと釣ってくれよ。

242:デフォルトの名無しさん
05/08/17 22:21:50
>>all
色々ありがとうございます。

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

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



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

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

ユーザーコントロール作らないとしても、Tagにフラグ(mouseEnter)を食わせれば
ソースを必要以上に汚さずに>>237のやり方が使えると思う。

244:デフォルトの名無しさん
05/08/17 23:00:54
会社で作った.netのソリューションファイルを家に持ってきて開こうとしたら開けません。
家のは2002で会社のは2003なんですけど、全く互換性無いんですか?

245:デフォルトの名無しさん
05/08/17 23:03:31
2002のを2003のにするのはできるけど逆は無理。
一度2002のから2003のに変換したら逆変換は不可能。

246:237
05/08/18 00:20:27
>242
243に同意。テキストボックスが複数あるなら(というかあるだろうし)
絶対にユーザーコントロール作ったほうがいいと思います。
おんなじロジックを全てのテキストボックスに組み込むなんて
ありえないっすよ。

あと、237のですが、mouseEnterがイベントハンドラの名前と
かぶってます。ちゃんと見直してからうpしろよ俺。
とりあえず、他の名前にしてください。


247:デフォルトの名無しさん
05/08/18 17:13:45
VB.NETというよりAxWebBrowserの質問になるんですけど、
AxWebBrowserで表示されているPageからzipファイル等がResponse.Redirectされた場合、
ダウンロードが開始されるんですけど、そのダウンロードされているファイルのURLは取れますか?


248:デフォルトの名無しさん
05/08/18 18:12:00
普通にBeforeNavigate2とかで取れるだろ

249:247
05/08/18 21:15:24
実際に画面表示しないと取れないんですよ・・・。
zipとかのファイルであった場合、ダウンロードされるだけで画面表示されないので、
URLが変更されないみたい・・・。

250:デフォルトの名無しさん
05/08/18 21:27:33
変更?
AxSHDocVw.DWebBrowserEvents2_BeforeNavigate2EventにuRLプロパティが存在するが?

251:247
05/08/18 22:25:54
確かに存在するのですが、ダウンロードされるファイルのURLがuRLプロパティには入っていないんです。
nRLプロパティには現在表示しているURLが入っています・・・。

252:247
05/08/18 22:26:51
ひょっとして、Response.Redirectがだめなんですかね・・・?

253:デフォルトの名無しさん
05/08/19 00:05:39
リダイレクトが発生したときのリダイレクト先のURLはNavigateComplete2が一番早く取得できるみたいだね。
リダイレクトでダウンロードが発生するところを知らないから試せないが。
で、これがzipとかの場合AxSHDocVw.DWebBrowserEvents2_NavigateComplete2EventのuRLプロパティが正しく指さないってこと?
リダイレクトでhtml、直接zipはどっちも正しく指すんだけど。
//ん~、FileDownloadが発生しない……

254:デフォルトの名無しさん
05/08/19 06:54:28
VB.NETかVB6でできるだけ多くの環境で動くネットワークプログラムを作りたいんすけど
その場合VB6を選択すべきですか?
.NET FrameworkってXPでもデフォルトでインストールされてないし。

255:247
05/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:デフォルトの名無しさん
05/08/19 09:24:12
>>254
別にインストーラー作ればいいだけだし。
今更新規にVB6で作るって何考えてるのって思うし。

257:デフォルトの名無しさん
05/08/19 09:37:01
>>256
んだな。今更ocx入れるのマンドクセ。

258:デフォルトの名無しさん
05/08/19 13:50:47
別のPCのLAN上にIISがインストールされていれば
ローカルにIISがインストールされていなくても
ASPとかつくれますかね?

259:デフォルトの名無しさん
05/08/19 14:27:04
何作るかしらんが、作るだけなら作れるでしょ。
ASPってのが何指してるのか不明だけど。

260:デフォルトの名無しさん
05/08/21 06:12:21
>>69は天才だと思います。

261:デフォルトの名無しさん
05/08/21 07:17:27
>>254
本当に「できるだけ多くの環境で動く」事が優先されるなら、VB6もVB.NETも不可だろう。

VB6で作成した場合、Windows Vistaまでしか動作保障されない。
VB.NETで作成した場合、Windows95や98は切り捨てることになるな。

262:デフォルトの名無しさん
05/08/21 07:46:31
一応98は.NET動くぜ。

263:デフォルトの名無しさん
05/08/21 21:58:21

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



264:デフォルトの名無しさん
05/08/21 22:06:07
少なくとも日本国内で開発する分には問題ないだろう。
実行には全く問題ない。

265:デフォルトの名無しさん
05/08/21 22:06:07
>>263
漢字を使うという頭が問題あり

266:デフォルトの名無しさん
05/08/21 22:09:45
現在Visibleプロパティがtrueになっているformを知りたいときって
どのようにしたらいいでしょうか?
If フォームA.Visible = True Then
 ~処理~
ElseIf フォームB.Visible = True Then
 ~処理~
 :
 :
みたいにif文やswitch文を書き連ねていくと、ソースが汚らしく思えるのですが。。。

267:デフォルトの名無しさん
05/08/21 22:11:57
ActiveForm/ActiveMdiChildとかそんなんじゃ駄目か?
ていうか何をどうやったらそんな判断が必要になるんだか。

268:デフォルトの名無しさん
05/08/21 22:26:40
ありがとうございます。
Form.ActiveFormで現在アクティブなフォームを表すFormが取得できるんですね。
if文やらswitch文よりすっきり書けそうですね。

269:デフォルトの名無しさん
05/08/21 23:19:32
>>264-265
サンクス。
楽に仕事がこなせるならそれで良いのです。

270:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/08/22 13:36:13
Newしてないからだろ

272:デフォルトの名無しさん
05/08/22 13:38:44
これじゃダメでしょうか?他のNewを思いつきません。
>Dim refForm1 As New プロジェクト名.WebForm1

273:デフォルトの名無しさん
05/08/22 13:50:51
いや、あのよ、何がNothingなのか考えろ?

274:デフォルトの名無しさん
05/08/22 14:16:49
横からでWebFormは知らんが、WebFormのインスタンスを生成しても、中のLabelのインスタンスが生成されてないんですよ。

Winformだと、コンストラクタからInitializeComponentが呼び出されてNewしてるんだけど、Webはしらん。しらべてみ。

275:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/08/23 00:20:20
え、飛んできてるんだけど>WM_IME_ENDCOMPOSITION
あとWM_IME_COMPOSITIONじゃなくてWM_IME_STARTCOMPOSITIONじゃないかなぁ

277:デフォルトの名無しさん
05/08/23 08:20:20
>>276
WM_IME_STARTCOMPOSITIONにしたら期待通りの動作をしてくれました。
ものすごく感謝です。

278:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/08/24 10:40:33
MSDNにしっかり

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

と書かれている。

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

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

それともDataSetみたいに全データを取得してから次のデータを取得、
みたいな方法でやっているのでしょうか?
よろしくお願いします。

281:デフォルトの名無しさん
05/08/24 11:35:16
・順次、配列等に読み込む
・DataAdapter & DataSet を使う
・複数のコネクションを張る
・ストアドプロシージャを使う

282:デフォルトの名無しさん
05/08/24 11:47:56
>>281
ここの使用って改悪だよな。
バッチ的なテーブル処理に対して厳しいところがある。
ロックかけながらカーソル処理していくような処理で必ず詰まる。

283:デフォルトの名無しさん
05/08/24 11:51:23
ADO.NET 2.0では一つのConnectionから複数のDataReaderを同時に開くことができるようになるとどこかで聞いた。

284:デフォルトの名無しさん
05/08/24 14:30:05
接続ドライブのプロパティに表示されるようなドライブ固有の名前(例:Maxtor 6Y160P0)を取得する関数というのはあるのでしょうか?

285:デフォルトの名無しさん
05/08/24 14:35:07
WMI使えば?

286:284
05/08/24 14:43:56
>>285
ありがとうございます。ググってみます。

287:284
05/08/24 15:02:11
解決しました。ありがとうございました。

288:278
05/08/24 15:31:57
>>281-283
レスありがとうございます。
今のところ直接目的にかなう解決方法がないのですね。
それが分かっただけでも良かったです。

ADO.NET 2.0では可能になるみたいですね。
URLリンク(www.microsoft.com)
の「SqlClient における SQL Server 2005 固有の機能」に書かれていました。

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

ありがとうございました。


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

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

Select * From Win32_LogicalDisk
でドライブレター名を取得することはできたのですが・・・

290:デフォルトの名無しさん
05/08/24 19:47:54
まあ基本的に物理ドライブと論理ドライブはあんまり相関のないものだからねー。
Win32_LogicalDiskToPartition/Win32_DiskDriveToPartitionクラス辺りを使って頑張ればいけそうかな。

ん~、Win32APIでやろうとしたらどうだろ。
DeviceIoControlを駆使することになるのかな。
URLリンク(66.102.7.104)
とてもお薦めできなさそうだ。

291:284
05/08/24 19:50:01
>>290
ありがとうございました。これからぐぐります。

292:デフォルトの名無しさん
05/08/25 00:38:17
VBとVB.netの違いって何?

293:デフォルトの名無しさん
05/08/25 04:40:59
.net

294:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/08/25 11:50:25
ODP.NETだよね?
どちらかといえばデータベース板のOracleスレ向きな気もするけど。

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

詳しくはOTNのODP.NET開発者ガイドを参照してください。


296:デフォルトの名無しさん
05/08/25 13:02:05
かなり初歩的な質問だと思うのですが・・・
ある処理中に処理中であることを示すウインドウを表示させたいのですが
どうにもうまくいきません。どのような方法が考えられるでしょうか?

297:デフォルトの名無しさん
05/08/25 13:05:19
抽象的すぎる質問だな。
どうやってみてどううまくいかないんだ?

298:295
05/08/25 13:19:55
今調べてみたらODP.Net入れてなくて
DBアクセスしてたんだけどこれは
ODBCなのかな?



299:デフォルトの名無しさん
05/08/25 13:22:21
>>296
まずWindowsFormsなのかASP.NETなのか書いてくれ。

300:294
05/08/25 13:28:56
>>295
調べたらOLE DB .NETでした・・・(しかも自分は294だしorz)
これでもやり方は変わらないのかしら?


301:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/08/25 13:40:58
>>300
いや、Oracleが出してるやつじゃないと無理だと思う。

303:294
05/08/25 16:58:17
>>295、302
返事遅れましたが、とりあえず何とかなりそうです。
感謝感謝。

304:デフォルトの名無しさん
05/08/25 17:05:18
vb.netでoracleのあるテーブルからデータを取得し、
そのデータを新規で作成したmdbに登録したいのですが。
そのようなことは可能でしょうか?
よろしくお願いいたします。

305:デフォルトの名無しさん
05/08/25 17:20:04
そのようなことは可能です。
よろしくお願いいたします。


306:デフォルトの名無しさん
05/08/25 17:30:36
超初心者です。

PUBLIC:COMPONENT

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



307:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/08/26 00:21:18
>>308
レスサンクス
いやぁ、いろいろ見直すべきところが多くてお恥ずかしい。
破れかぶれでいろいろ変えてみて、元に戻し忘れてたところとかもあるし。
明日、早速試してみます。
ありがとうございます。


310:デフォルトの名無しさん
05/08/26 03:18:22
ソートツールを作りたいので可逆ソートがしたいです。
自分としてはBlockSortingがしたいです。
アルゴリズムは分かるのですが、実装方法がいまいちわかりません。

311:デフォルトの名無しさん
05/08/26 03:39:47
アルゴリズムが分かるならあとはそのまま実装するだけじゃないか

312:310
05/08/26 03:49:31
実装がC++ではできますがVB.NETではなぜか出来ません。

313:デフォルトの名無しさん
05/08/26 06:35:30
VisualStudio.NET2003 を手に入れて、
VB.NET でちょっとした GUI ソフトを作りますた
それを別の PC で起動しようとしたら、何やらが見つからないといって動きません

要するに .NET Framework をインスコしないと動かないということだと思っておりまつ
おいらの PC ではないので、できればインスコしないで動けばありがたいのでつが、
何か方法はありまつか?
そもそも、VB.NET の GUI ソフトで .NET Framework を入れなくても動くものは作れまつか?

314:デフォルトの名無しさん
05/08/26 07:32:07
無理 入れろ

315:デフォルトの名無しさん
05/08/26 11:19:29
最近VBを使うようになって、クリック連打するソフトを作りたいと思ったのですが
マウスクリックをする命令が見つかりません。
どうやったらできますか?

316:デフォルトの名無しさん
05/08/26 11:30:07
画面上の好きなところをクリックしたいというのならWin32API。
SendInput関数かmouse_event関数。

317:デフォルトの名無しさん
05/08/26 12:06:38 BE:113897873-##
>>315
MouseDownとか

318:デフォルトの名無しさん
05/08/26 14:45:19
ありがとうございます。
思ったより大変そうだけどがんばってみます。

319:デフォルトの名無しさん
05/08/27 17:11:57
かなり、初歩的な質問だと思うのですが、
変数を宣言した時にクラス名の後ろの()
を記入しても消えてしまうのですが、なせなんでしょうか?
たとえば、、、
dim A as new frmLogon()

dim A as new frmLogon
になってしまうのですが。
何が原因なのでしょうか?


320:デフォルトの名無しさん
05/08/27 17:45:29
配列宣言したいのか?

321:デフォルトの名無しさん
05/08/27 17:51:53
>>320
いや別に配列宣言とは関係ないだろ。
引数無しのコンストラクタメソッド呼出を明示してるだけで。
C#とかだと必須だからなー。
//メソッドの括弧と配列の括弧が同じなのはややこしい……。

>>319
まあVBからのクセなのであまり気にしない。

322:デフォルトの名無しさん
05/08/27 18:18:40
>>321
ありがとうございます。
括弧はあってもなくても動きは変わらないと考えてよろしいのでしょうか?


323:デフォルトの名無しさん
05/08/27 21:30:11
Formデザイナに関する質問なんですが、TabPageコントロールを使っていると、
最初のタブページ以外のタブページ内のコントロールをデザインしていると
マウスポインタが各タブページのクライアント領域から外に出られなくなったり、
Formデザイナのコンテクストメニューが「コードの表示」以外の項目が
全部無効になったりする症状が出て困っています。

これって何か解決法ご存知ないでしょうか?
# どうもこの症状は環境依存というか、どの環境でも再現するわけではないみたいですね。

324:デフォルトの名無しさん
05/08/28 01:39:08 BE:54237825-##
RAM少ないんじゃない?

325:さとみん。
05/08/28 14:16:48
VB6.0のツールバーのプロパティーにはHotTracking(?)があったのですが、VB.NETではなくなってし
まいま
したよね?ボタンの外観を変更できるプロパティーです。

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

分かりにくい説明で申し訳ありませんが、お願いいたします。

326:デフォルトの名無しさん
05/08/28 20:55:09
test

327:デフォルトの名無しさん
05/08/28 21:05:04
>>325
いまいち質問が明示的じゃない気がする。
On Mouseでボタンの画像を変えたいってこと?
それはそういうコードを書くしかないよ。
ToolBar自体の機能としてはビルトインされてないから。

328:デフォルトの名無しさん
05/08/28 21:14:21
>>327
流せ。転載だから。
他でそれなりに詳しい解答貰ってるからして本人でもなかろうし。

329:デフォルトの名無しさん
05/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:デフォルトの名無しさん
05/08/29 10:18:19
うん。
2003じゃ.NET 1.1の開発しかできない。2003を入れたときに自動的に.NET 1.1がインストールされる。
逆に2002では.NET 1.0の開発しかできない。2002を入れたときに自動的に.NET 1.0がインストールされる。

あなたの環境は矛盾している=何らかの勘違いが存在している。

331:デフォルトの名無しさん
05/08/29 10:23:29
>>330
今パッケージをよく調べたら2002と書いてましたorz
何を勘違いしていたのかずっと2003だとばかり思ってました。
ということは.NET 1.1は使えないのですね。
ありがとうございます。

332:デフォルトの名無しさん
05/08/30 00:45:34
すみません、VBで作ったGUI上からコマンドシェルの結果って取得できますか?
単純に
"ping 10.10.10.10"
ってStringを与えて、結果を取得する方法があればご教授ください。

333:デフォルトの名無しさん
05/08/30 00:55:11
System.Diagnostics.Processクラス

334:デフォルトの名無しさん
05/08/30 11:36:00

「管理ツール」の「データソース(ODBC)」のシステムデータソースに登録したデータソースに、ADO.NETを使って、システムデータソースの名前でアクセスしたいのですが、どうしたらいいのでしょうか?
ユーザーによってデータベースも異なります。
よって、データソースに名前でアクセスできるような方法をご存じないでしょうか?
よろしくご教授願います。


335:デフォルトの名無しさん
05/08/30 16:28:53
VB6のコード画面で [CTRL] + [↑] で一つ上のプロシージャに移動できた
はずなんですが、VB.NETで同様のことができるキー操作はないでしょうか?

336:デフォルトの名無しさん
05/08/30 18:21:28
すいません。学生でVisual Studio.net the Spokeのサイト
URLリンク(jp.thespoke.net)が落ちてるのですが
なぜでしょうか?

337:デフォルトの名無しさん
05/08/31 12:54:22
質問です。
OS:win xp
バージョン:VB.net
です。よろしくお願いします。

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

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

でもなんかこう、ピンときません。よい解決方法をご教授いただけないでしょうか。
お願いします。

338:デフォルトの名無しさん
05/08/31 13:04:05
キーダウン>フラグ立てる>加点もろもろの処理>画像を変更するときにフラグおろす
で何か問題でも?
なんでDoEventsだのが出てくる?

339:デフォルトの名無しさん
05/08/31 14:49:26
質問です。
DirectPlayを使用したソフトを通信ソフト作ったのですが、DirectX 9.0c Runtimeだけをインストールしているユーザーだと、使用することが出来ません。
調べてみると、9.0a以降のバージョンでは、必要なファイルがインストールされない仕様に変更になっているようで、、、
ユーザー側で、別途「Managed DirectX」をインストールするか、SDKの方をインストールしてもらわないと使えないみたいな感じです。

セットアッププロジェクトでインストーラーを作成すれば、不足しているファイルもユーザー側の方にもインストールされるでしょうか?

340:デフォルトの名無しさん
05/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()みたいなメソッドを作らないとダメ?


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch