VB.NET質問スレ(Part14)

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
VB.NETの質問全般です

過去スレ
VB.NET質問スレ (Part13)
http://pc8.2ch.net/test/read.cgi/tech/1131755402/
VB.NET質問スレ (Part12)
http://pc8.2ch.net/test/read.cgi/tech/1121600038/
VB.NET質問スレ (Part11)
http://pc8.2ch.net/test/read.cgi/tech/1114217190/
VB.NET質問スレ (Part10)
http://pc5.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デフォルトの名無しさん:2006/01/31(火) 10:17:46
3デフォルトの名無しさん:2006/01/31(火) 10:19:09
どぼん!の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/
匣の向こう側
http://www.ne.jp/asahi/nami/mei/index.html
WisdomSoft
http://wisdom.sakura.ne.jp/
じゃんぬねっと
http://jeanne.wankuma.com/
どっとねっとふぁん - C# Tips And Samples -
http://homepage3.nifty.com/dotnetfan/index.html
C#プログラミングTips
http://www.atmarkit.co.jp/fdotnet/csharptips/index/csharptips_index.html
CodeProject
http://www.codeproject.com/vb/net/
4デフォルトの名無しさん:2006/01/31(火) 10:20:49
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
HIRO's.NET
http://vbdotnet.fc2web.com/index.html
@IT:特集 .NET開発者のためのオンライン・リソース・ガイド
http://www.atmarkit.co.jp/fdotnet/special/onlineres/onlineres_01.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/
5デフォルトの名無しさん:2006/01/31(火) 10:21:54
6デフォルトの名無しさん:2006/01/31(火) 14:21:25
重複スレ立てんなよ
もう普通に進行してるし↓の方がいいだろ
http://pc8.2ch.net/test/read.cgi/tech/1138618698/l50
7デフォルトの名無しさん:2006/01/31(火) 14:43:03
新スレage
8デフォルトの名無しさん:2006/01/31(火) 14:44:24
ageといいつつsageてる>>7を笑いつつ新スレage
9デフォルトの名無しさん:2006/01/31(火) 14:46:34
まあ、あっちのスレタイトルがなんでああなったのかは詳しく聞いて
みたいがな。
10デフォルトの名無しさん:2006/01/31(火) 14:48:43
>>9
テンプレちゃんと貼ってるから荒らし目的じゃないだろうけど、なんなんだろうな
11デフォルトの名無しさん:2006/01/31(火) 18:28:15
お知恵を拝借。
Graphics.DrawString で文字を均等割り付けして表示したいのですが…
12デフォルトの名無しさん:2006/01/31(火) 18:38:42
mid関数ってsubstringより圧倒的に遅いのでしょうか?
13デフォルトの名無しさん:2006/01/31(火) 19:02:54
>>11
文字間隔計算して一文字ずつ書いていく。

>>12
それぐらい自分で計れ
14デフォルトの名無しさん:2006/01/31(火) 19:09:35
>>12
気にする程の違いはないと思うが
15デフォルトの名無しさん:2006/01/31(火) 19:11:40
MIDIの再生ってVB.netで出来るのでしょうか?
16デフォルトの名無しさん:2006/01/31(火) 19:31:25
できるが.NET Frameworkのライブラリには無いのでAPI使う。
17デフォルトの名無しさん:2006/01/31(火) 21:16:41
マルチメディア関係のAPIのリスト及びそれらの使い方が乗ってるサイトないかな?
18デフォルトの名無しさん:2006/01/31(火) 21:28:10
ここが定番じゃない?
まあマルチメディアっていう言い方は風呂敷が大きすぎると思うけどね
http://wisdom.sakura.ne.jp/system/winapi/
19デフォルトの名無しさん:2006/01/31(火) 21:40:35
むむむ・・・
難しい。VB6のときはサンプルが腐るほどあったのになぁ
20デフォルトの名無しさん:2006/01/31(火) 21:55:31
ひょっとしてtrimが遅い?
21デフォルトの名無しさん:2006/01/31(火) 21:57:15
ここはお前の日記帳じゃないんだ、チラシの裏にでも書いてろ、な?
22デフォルトの名無しさん:2006/01/31(火) 22:41:56
redim preserveが遅いのか〜
もっと速い可変配列ない?
23デフォルトの名無しさん:2006/01/31(火) 22:44:53
もっと速い可変配列ない!
ただし文字列型だけを扱うなら、String型の変数を工夫して使う事で超高速化が出来ることがある。
24デフォルトの名無しさん:2006/01/31(火) 22:48:58
>>23
きぼんぬ
25デフォルトの名無しさん:2006/01/31(火) 23:15:11
擬似配列なら一次配列しか出来ないでしょ。(工夫次第で出来るかも)
ようは、文字列データをトークン分けするだけ。

A(0) = "北海道"
A(1) = "青森"
A(2) = "秋田"
   ・
   ・
   ・
   ・

   ↓

B = "北海道,青森,秋田,・・・・"

後は何らかの方法でインデックスを用意しておけばいいってやつじゃない?
これなら内部のデータを探すときに凄く速くなるよね。
でも扱いにくいから微妙・・・

>>23間違ってたらごめん
26デフォルトの名無しさん:2006/01/31(火) 23:38:19
必要なデータ型は作るって時代に何やってんのw
時代錯誤も甚だしいよ。

っていうか、ArrayListじゃいかんのか?
27デフォルトの名無しさん:2006/01/31(火) 23:40:44
遅さ一番!ArrayList!!
28デフォルトの名無しさん:2006/01/31(火) 23:45:33
>26
データ型ってどうやって作るの?
29デフォルトの名無しさん:2006/02/01(水) 00:14:43
畜生!一番の知ったかは>26だったのか!?
答えてくれー!!
30デフォルトの名無しさん:2006/02/01(水) 00:22:19
なんか幼稚臭いノリの奴だなあ。
ArrayListがそんなに遅いとは思えんが、どうしても気に入らないなら
配列をラップするクラス自分で書けばいいだけでしょ。

可変長とかいっても別に難しく考える必要はなく、
あらかじめ最初から大き目の配列を用意しといて、必要に応じてサイズが変わった
「かのうように」振舞えばいいだけでしょ。
ArrayListの内部実装と(恐らく)同じようにね。
31デフォルトの名無しさん:2006/02/01(水) 00:24:16
>>30
>あらかじめ最初から大き目の配列を用意
メモリもったいNeeeeeeeeeeeeeeeeeee!!!
32デフォルトの名無しさん:2006/02/01(水) 00:27:48
速度とメモリは大抵トレードオフの関係にある、というのは常識だぞ
33デフォルトの名無しさん:2006/02/01(水) 00:29:03
>あらかじめ最初から大き目の配列を用意
ってまさか本気じゃないよな?
34デフォルトの名無しさん:2006/02/01(水) 00:29:53
>>31
馬鹿でしょ君
ならおとなしくサイズを変更するたびに新しい配列を作成してbltするしかないよ。
VBでいえばPreserve指定してRedimするってことね。

それがパフォーマンスを低下させるのがいやならどうするか、って前提の
話をしてるのに。
35デフォルトの名無しさん:2006/02/01(水) 00:31:26
この流れは時代錯誤の>>25にすべき?
36デフォルトの名無しさん:2006/02/01(水) 00:32:51
今の流行はList(Of String)ですよ
//Genericsの話題がちっとも出ないなこのスレ
37デフォルトの名無しさん:2006/02/01(水) 00:32:57
VBでプログラムを作る宿題でつまづいたので教えてください
指数関数はどうやって表現すればいいんでしょうか?
Expっていう関数は存在しないみたいで・・・
38デフォルトの名無しさん:2006/02/01(水) 00:35:02
System.Math.Pow
eの累乗ならSystem.Math.Exp
39デフォルトの名無しさん:2006/02/01(水) 00:36:34
>35
確かに理にかなってるけど、どうだろ?
40デフォルトの名無しさん:2006/02/01(水) 00:42:02
>>38
できました!
教えてくれてありがとうございます(T-T)
41デフォルトの名無しさん:2006/02/01(水) 01:15:52
初歩的な質問かもしれませんがお願いします
クリアボタンを押したときに
TextBox1〜10の内容を全て削除したくて
Dim i As Integer
For i = 1 To 10
Me.Controls("TextBox" & i).Text = ""
Next
このように書いたんですが、うまくいきません

>'System.InvalidCastException' のハンドルされていない
>例外が microsoft.visualbasic.dll で発生しました。
>追加情報 : 文字列 "TextBox1" から
>型 'Integer' へのキャストが有効ではありません。

ご指摘お願いします。
42デフォルトの名無しさん:2006/02/01(水) 01:26:52
今ユーザーコントロールを作っています。
そこで聞きたいことがあるのですが、

@独自のイベントの作り方。

AButtonコントロールのように、MouseDownしたときとMouseUpしたときなどイベントが発生したときに、表示されている画像を変更する方法。

B独自のプロパティに説明をつける方法。

CTextやBackColorプロパティのように独自のプロパティを変更したらすぐにコントロールの表示も変更するように設定する方法。


以上です。
どなたかご教授ください。お願いします。
43デフォルトの名無しさん:2006/02/01(水) 01:32:05
>>42
> @独自のイベントの作り方。
イベント でヘルプ見れ

> AButtonコントロールのように、MouseDownしたときとMouseUpしたときなどイベントが発生したときに、表示されている画像を変更する方法。
それぞれのイベントで処理する Formでやるのと変わらん

> B独自のプロパティに説明をつける方法。
VB.NET2002/2003じゃ無理
VB2005なら XML ドキュメント コメント でヘルプ見れ

> CTextやBackColorプロパティのように独自のプロパティを変更したらすぐにコントロールの表示も変更するように設定する方法。
プロパティのSetでInvalidate呼ぶ
44デフォルトの名無しさん:2006/02/01(水) 01:36:48
>>43
ありがとうございます。
早速調べてみます
45デフォルトの名無しさん:2006/02/01(水) 01:44:13
あ、XMLドキュメントは無理と言い切るのは駄目だな
・自力でXMLを書く
・VBCommenterなるアドインを使う
4642:2006/02/01(水) 02:18:14
>>45
@とCについては解決しました。
Aは諦めることに、Bは2005インストールして出直してきます。
ありがとうございました。
47デフォルトの名無しさん:2006/02/01(水) 02:23:10
>>46
Aも解決しました
48デフォルトの名無しさん:2006/02/01(水) 02:40:51
文字を描画してそのサイズを得る方法ってありますか?
49デフォルトの名無しさん:2006/02/01(水) 02:42:34
Graphics.MeasureString
2.0ならTextRenderer.MeasureTextも
5042:2006/02/01(水) 02:49:24
相変わらずコントロール作ってます。
質問です。
『Text』という名前のプロパティは作れますか?
51デフォルトの名無しさん:2006/02/01(水) 02:52:46
オーバーライドする。
作る意味が分からんが。
52デフォルトの名無しさん:2006/02/01(水) 03:00:29
>>51
やってみましたが出来ませんでした。
以下がコードです。

Private _Text As String = Name
Public Overrides Property Text() As String
Get
Return _Text
End Get
Set(ByVal Value As String)
_Text = Value
Invalidate()
End Set
End Property

本来なら標準のTextを利用しようと思ったのですが、それが無かったので作ることにしました。
よろしくお願いします。
5342:2006/02/01(水) 03:05:42
>>51
すみません。Textプロパティがないのでは表示されていないようでした。
54デフォルトの名無しさん:2006/02/01(水) 03:19:19
system.Drawing.Colorをsystem.Drawing.Brushに変換する方法?
55デフォルトの名無しさん:2006/02/01(水) 03:31:58
可変長配列にあらかじめ確保しておく領域程度で
メモリもったいないって、いつの時代の人間だ?
そんなこといってたらWindowsなんて使えねーよ。
56デフォルトの名無しさん:2006/02/01(水) 03:33:39
Labelコントロールの背景を透過することは出来ますか?
57デフォルトの名無しさん:2006/02/01(水) 03:54:55
>>54
変換っつーか作れ。単色ブラシならBrushの派生クラスSolidBrushだ。

>>56
ttp://dobon.net/vb/dotnet/control/labelonpicturebox.html
これか?
5856(42):2006/02/01(水) 04:13:24
>>57
出来ませんでした。
自分の場合はコントロールに画像を描画した上で、ピクチャーを貼り付けているのでその時点で消えてしまうのかもしれません。


コントロール-ピクチャー-ラベル

コントロール・・・画像を描画

ピクチャー・・・背景色Transparent

ラベル・・・ピクチャーの子コントロール。背景色Transparent
59デフォルトの名無しさん:2006/02/01(水) 08:17:58
>>52
俺も含めて回答者は知ったかぶりやだからあんまり真に受けちゃダメだよw
最終的には自分で判断しないと。

とりあえず、独自プロパティーの「説明」っていうのが、デザイナのプロパティグリッドに
表示されるやつのことを指しているなら、それは2002,2003でも実現可能。

DescriptionAttribute属性を参照。

っていうか、君レベルの奴がそんなにいっぺんに欲張って大丈夫?
二兎を追うものは〜な気がするけど。
60デフォルトの名無しさん:2006/02/01(水) 13:23:37
VB.netで作ったプロジェクトを
VB.netがインストールされていないパソコンで動かしたいのですが
binにあるexeファイルをクリックするだけではだめなのでしょうか?
61デフォルトの名無しさん:2006/02/01(水) 13:30:22
.NET Framework再頒布可能パッケージをインストール汁
62デフォルトの名無しさん:2006/02/01(水) 13:43:39
>>59
ありがとうございます。
2chは適度に参考させてもらうことにしますw
63デフォルトの名無しさん:2006/02/01(水) 13:58:40
DBにアクセスするプログラムを開発しています。
開発用マシンでは動作するのですが、

他のマシンでプログラムを動かすと
ttp://www.imgup.org/iup155977.jpg

のようなエラーが出て動作しません。
原因が判る方よろしくお願いします。
64デフォルトの名無しさん:2006/02/01(水) 14:37:13
System.IO.FileNotFoundExeption
てな具合に激しく超ヒントが書いてあるわけだが?

出直して来いや無能が
65デフォルトの名無しさん:2006/02/01(水) 14:56:17
速報
『タブ切り替えやRSSに対応した「Internet Explorer 7」Beta 2が一般公開』
http://www.forest.impress.co.jp/article/2006/02/01/ie7pr2.html
66デフォルトの名無しさん:2006/02/01(水) 18:39:14
System.Windows.Forms.Button で、FlatStyle = FlatStyle.Flat に
しました。.Image に画像をセットした時に .Enabled = false にすると
画像がグレーになってしまいます。


画像をグレーにせずに、かつボタンがクリックできないように
するには何か方法はありますか?
67デフォルトの名無しさん:2006/02/01(水) 18:48:18
クリックできないようにってのは、押下の動きもしないようにするのか?
それともただたんにClickのイベント処理が進行しなければいいのか?

後者なら、ボタンのプロパティとは別にEnableを判断するフラグを用意しといて、
それに従ってClickのとこでExit Subしとけばいい

前者はすまんが知らない
68デフォルトの名無しさん:2006/02/01(水) 18:51:49
>>67
前者です。

ボタンにフォーカスもあてたくなく、クリックもしたくない。
なので、画像がグレーにならない Enabled = False の状態を
作りたいのです…。
69デフォルトの名無しさん:2006/02/01(水) 19:08:59
そういう俺様仕様UIなコントロールってユーザーをイラつかせるだけだと思うけど。。
まあオーナードローでできまっせ。
70デフォルトの名無しさん:2006/02/01(水) 19:19:09
私も DISABLE = グレーでいいじゃん、と思うのですが、
これがユーザーからの要求なので仕方なく。。。

で、教えて頂いたオーナードローで、との事ですが、OnPaint を
オーバーライドして画像を描画する事はできたんですが、今度は
標準のボタンがもっている、フォーカスがあたった時に描かれる
線?を書く方法がわかりません。

度々すみませんが、アドバイス頂けるとうれしいです。
71デフォルトの名無しさん:2006/02/01(水) 19:23:19
System.Windows.Forms.ControlPaint
っていうかどぼんに解説があるじょ
72デフォルトの名無しさん:2006/02/01(水) 19:25:25
っていうか、ベースクラスのOnPaint呼んでから描画すれば問題ないと思ったけど
違ったかな。
73デフォルトの名無しさん:2006/02/01(水) 23:59:01
>>70
APIにDrawForcusRectってのがあるけどこれじゃだめかな?
74デフォルトの名無しさん:2006/02/02(木) 03:53:00
質問です

EXE、DLL内の指定したインデックス番号のアイコンを取得する方法を教えてください。

ちなみにttp://support.microsoft.com/default.aspx?scid=kb;EN-jp;319340を参考にしてコードを書いたところ
インデックスが1のアイコンしか表示されませんでした。
よろしくお願いします。
75デフォルトの名無しさん:2006/02/02(木) 03:59:54
関連付けられたアイコンとDLLにまとめられたアイコンとは直接関係無いんだが。
ExtractIconEx使いな。よくMSDNやサンプルを見ないとリークするぞ。
7674:2006/02/02(木) 04:29:10
ExtractIconExを使って解決しました。ありがとうございます。
一つ聞きたいのですが、EXE、DLL内のアイコンのインデックス番号にマイナスという値はありますか?
77デフォルトの名無しさん:2006/02/02(木) 12:51:20
vb6ではラベルを透明にできましたがVB.NETではできないのでしょうか?
78デフォルトの名無しさん:2006/02/02(木) 18:29:54
できる
79デフォルトの名無しさん:2006/02/02(木) 18:35:00
>>77
きぼんぬ
80デフォルトの名無しさん:2006/02/02(木) 18:41:08
>>79
注意

・頼むならそれなりの態度がある。

・過去のレスを見てから質問すること。

以上を次から気をつけて!

そして↓が詳細。
ttp://dobon.net/vb/dotnet/control/labelonpicturebox.html
81デフォルトの名無しさん:2006/02/02(木) 18:45:18
>>80
ありがとん。って激しく不便でつね。
8274:2006/02/02(木) 20:21:43
EXE、DLL内の指定指定したリソース番号からアイコンを取得する方法を教えてください。
インデックス番号とは違うみたいです。
よろしくお願いします。
83デフォルトの名無しさん:2006/02/02(木) 20:45:17
vb.net(2003)で開発を行っています。
プログラム中でローカルマシンのバッチファイルを呼び出し、
処理の終了を検出したいのですが巧い方法はありませんか?
84デフォルトの名無しさん:2006/02/02(木) 21:01:58
Processクラス
85デフォルトの名無しさん:2006/02/02(木) 21:24:59
>>82
MSDNの解説よく嫁
86デフォルトの名無しさん:2006/02/02(木) 22:24:37
>>84
アリガト。カイケツシタヨウds
87デフォルトの名無しさん:2006/02/03(金) 00:14:23
はじめまして。おとといからBasicの本を買って勉強し始めた超初心者です。
今アプリケーションのテキストボックスの例題をやっているのですが、
ひとつのテキストボックスでTextChangeとKeyPressをどうやって入力すればいいのか分かりません。
フォームでTextbox1をクリックするとTextChangeのイベントプロシージャは出てきますが、つぎにクリックしてもKeyPressのイベントプロシージャが出てきません。
手動で入力なんてことはないですよね?どうすればいいのでしょうか?
88デフォルトの名無しさん:2006/02/03(金) 00:15:18
はじめまして。おとといからBasicの本を買って勉強し始めた超初心者です。
今アプリケーションのテキストボックスの例題をやっているのですが、
ひとつのテキストボックスでTextChangeとKeyPressをどうやって入力すればいいのか分かりません。
フォームでTextbox1をクリックするとTextChangeのイベントプロシージャは出てきますが、つぎにクリックしてもKeyPressのイベントプロシージャが出てきません。
手動で入力なんてことはないですよね?どうすればいいのでしょうか?
89デフォルトの名無しさん:2006/02/03(金) 00:19:36
コード画面の上のほうのコンボボックス
90デフォルトの名無しさん:2006/02/03(金) 02:50:52
>>85
MSDNよく探しても見つかりませんでした。
9188:2006/02/03(金) 02:52:49
>>89ありがとうございました!できました。
92デフォルトの名無しさん:2006/02/03(金) 02:55:00
>>90
だからExtractIconExの解説をよく嫁って言ってんの
// ExtractIconでも同じ要領でできる
93デフォルトの名無しさん:2006/02/03(金) 03:33:50
>>92
解決しました。ありがとうございます。
94デフォルトの名無しさん:2006/02/03(金) 17:39:44
2003でプログラミングしてると出てくる混合モードって何!?
エラーが発生すると機械語見せてくるし、ブレークポイントは無視するし・・・
95最凶VB厨房:2006/02/04(土) 05:10:24
ブレークポイント無視するか?
Releaseビルドじゃないだろうね?
96デフォルトの名無しさん:2006/02/04(土) 05:13:06
アセンブラを見るのが混合モードなんだけど・・
でもソースと全然合ってないことがあるので使えん(C++の話)
元ソースの途中なのにアセンブラ側はretで切れてたり
97デフォルトの名無しさん:2006/02/04(土) 08:58:48
Releaseビルドじゃねぇの
98デフォルトの名無しさん:2006/02/04(土) 10:07:23
おはようございます。

MDI親フォームの背景色を変更する事は出来ますが、
MDI親フォームの背景色を透明もしくは半透明にする方法はありますか?

情報がありましたらよろしくお願いします。
99デフォルトの名無しさん:2006/02/04(土) 13:42:41
質問です。
createprocessを使ったプログラムのVB6.0→.netへの移行を
行ったのですが、Windows2000では呼び出したプログラムの
ウィンドウが表示されるのに対し、XPでは表示されません
(タスクマネージャを見ると起動はしている)。
移行前のVB6.0の方では、2000・XPどちらでも表示されます。

いろいろ調べてるうちに↓のページに辿り着き、
こちらでも試してみたのですが同様の結果となります。
ttp://s.microsoft.com/japan/msdn/vbasic/migration/tips/UpGrade/

何が原因なのでしょうか?よろしくお願いします。
100デフォルトの名無しさん:2006/02/04(土) 13:45:56
とりあえずSystem.DiagnosticsのProcessクラスつかっとけ
101デフォルトの名無しさん:2006/02/04(土) 14:05:21
うちも時々Debugモードでも迷走することがある
一度VisualStudio閉じて再度開いてリビルドコンパイルかけて〜

とかやると治るな
10294:2006/02/04(土) 16:49:49
>>95,97
両方で発生します。
その状態になったときは、治し方が分からないのでメッセージボックスをブレークポイント代わりにしたりしてます。
開発効率下がりまくり・・・
103デフォルトの名無しさん:2006/02/04(土) 18:00:26
ContextMenuとかToolTipみたいにフォームをはみ出すことが出来るコントロールの作り方を教えてください。
よろしくお願いします。
104デフォルトの名無しさん:2006/02/04(土) 18:16:07
MSDNで「混合モード」で検索すれば意味はだいたいわかると思うんだが。。

っていうか、ブレークポイントなんてそんな使わないし、
それで開発効率が下がるってそりゃ使い手の腕の方に問題があると思うぞ。
いや、煽りじゃなくてマジで。

まあMSDN検索する能力もないんだから当然か。

それに.NETのコードぐらい記述性があって可読性のあるコードが書けると
そんなにデバッガのお世話にならないと思うんだけど。
105デフォルトの名無しさん:2006/02/04(土) 18:29:03
>>104
天才プログラマ発見
106デフォルトの名無しさん:2006/02/04(土) 18:33:35
>>104
オレは無理だ
107デフォルトの名無しさん:2006/02/04(土) 18:37:11
>>106
オラも・・・
108103:2006/02/04(土) 18:42:38
どなたか分かる方いらっしゃらないでしょうか・・・
109デフォルトの名無しさん:2006/02/04(土) 18:44:45
デバッガいらんならIDEもいらんだろ
110デフォルトの名無しさん:2006/02/04(土) 18:46:03
ウィンドウからはみ出すんだったら別ウィンドウにするしかないですよ。
コントロールの中でウィンドウ作るしかない
111103:2006/02/04(土) 19:07:27
>>110
やっぱり、新しいウィンドウにするしかないですか・・・
ありがとうございます。
112デフォルトの名無しさん:2006/02/04(土) 19:59:33
売上TBLから商品マスタを参照するSQLでDataSetを取得しているのですが、
Form上で、売上TBL側の商品コードを変更しても、
該当する商品マスタの商品名が更新されません。
(変更前の商品名が表示されたままです)

どうすればいいのでしょうか?


113デフォルトの名無しさん:2006/02/04(土) 20:28:56
>>112
コードを出せ。
話はそれからだ。
114最凶VB厨房:2006/02/04(土) 21:04:48
104の言い分はなるほどなーとオモタ。
が、若干誤解されたか?

ブレークポイントに相当するなんらかの機能orやり方を
使っているはずだ。
ほむほむ。
115デフォルトの名無しさん:2006/02/04(土) 21:10:56
俺もデバッガいらないな。
コンパイルエラーさえ取ればだいたい思ったとおりに動いてしまう。
116112:2006/02/04(土) 21:16:49
1.アダプタにSQLを設定
SELECT 売上.*, 商品.商品名
FROM 売上 LEFT JOIN 商品 ON 売上.商品コード = 商品.商品コード;

2.アダプタからDataSetを生成
3.DataSetをDataGridに表示するように設定
4.アダプタにFillを行いデータ表示

ここまでで、データの表示はできているのですが、
DataGridで、商品コードを変更しても、
商品名が変わりません
117デフォルトの名無しさん:2006/02/04(土) 21:51:58
>>116
DataGrid上にでろーっと並んでる売上詳細で、特定の行にある商品
コードを直接変更したら、その横に表示されている商品名がぱっと
変わるはずなんですけど動きませんってことかな?
118112:2006/02/04(土) 22:04:48
>>117
そういうことです
つたない説明で申し訳ありません

なんで商品名がぱっと変わらないのか、わからないのです
119デフォルトの名無しさん:2006/02/04(土) 22:06:22
変わるはずありません
120デフォルトの名無しさん:2006/02/04(土) 22:25:30
>>118
DataGridはインメモリのDataSetをそのまま読み書きしているだけ。
言うなれば値は入ってるけど式の無い、エクセルシートみたいなもん。
自分でコードを追加しないと、そんな都合のいい動作はしないよ。

変更した商品コードをもとにして商品テーブルを検索、ヒットした値
をDataGridのセルに代入するような処理がいるかと。

つか、売上詳細で商品コードを書き換えるっておかしいと思わない?
売上小計や総合計、果ては日報以降にまで波及する操作だけど、そこ
まで考えが及んでる?
121112:2006/02/04(土) 22:31:40
>>120
例えば、DataGridでなければ大丈夫ですか?
テキストボックスを使った場合とかです

更新してるのは、売上TBL側の商品コードです
マスタ側の商品コードは更新してないので、大丈夫です


122デフォルトの名無しさん:2006/02/04(土) 22:34:27
こいつは言ってること全然分かってないみたいだから
多分何言っても無駄だな。
ていうか、自分のプログラムが何やってるのかも全然分かってないな。
123デフォルトの名無しさん:2006/02/04(土) 22:36:42
良く読まずにレス

JOINした結果だと
DataSetの更新って効かないんじゃなかった?
124デフォルトの名無しさん:2006/02/04(土) 22:38:10
更新出来るのはデータセットだけ。
125デフォルトの名無しさん:2006/02/04(土) 22:48:57
>>121
どんなコントロールにバインドしても変わらないよ。
商品テーブルをDataSetに取り込む&商品コードを入れたら商品名を
返すような関数を自作して、表示している値を更新するような感じに
してみたら?

で、そうやって変更したDataSetを使ってマスタファイルに更新をか
けるのは、けっこう面倒だからがんがってくれ。
126112:2006/02/04(土) 22:52:51
わかりました、やってみます
初心者質問に、みなさんありがとうございました
12798:2006/02/05(日) 00:00:05
解決したわけではないですが一応自己解決です。
SDIタイプでMDIっぽいアプリを作ってやってみます。
お騒がせいたしました。
128デフォルトの名無しさん:2006/02/06(月) 11:22:05
教えていただきたいのですが。
USING句の利用にはIDisposable インターフェイスを実装する必要があります。
独自クラスの作成時にIDisposable インターフェイスを実装する方法はどのようにしたらよろしいのでしょうか?
129デフォルトの名無しさん:2006/02/06(月) 11:28:26
何が分からないのか分からん。
130デフォルトの名無しさん:2006/02/06(月) 11:33:01
とりあえずimplementsしてみる?
131デフォルトの名無しさん:2006/02/06(月) 11:57:10
Public Class UserClass01
Implements IDisposable
Sub Dispose() Implements IDisposable.Dispose
Dispose(True)
GC.SuppressFinalize(Me)
End Sub

このコードで
'Public Sub Dispose()' に対する引数が多すぎます。
というエラーになります。
132デフォルトの名無しさん:2006/02/06(月) 11:59:53
>>131
うん
多いんだろうなぁ
> Dispose(True)
133デフォルトの名無しさん:2006/02/06(月) 13:10:23
意味も分からずに部分的にまるごと写して
一体どうするつもりなんだよ。
134デフォルトの名無しさん:2006/02/06(月) 13:11:54
そのクラスにはファイナライザなんかあるのか?
ないんだろ?
135デフォルトの名無しさん:2006/02/06(月) 13:29:48
FlexGrid for .NETについて教えてください。
MSFlexGridの場合
msfg.col = 10
msfg.row = 10
msfg.text = "hoge"

を記述するには
msfg.Item(msfg.row, msfg.col) = "hoge"
しかないでしょうか?
136デフォルトの名無しさん:2006/02/06(月) 13:35:53
で、どうしたいんだ?
137デフォルトの名無しさん:2006/02/06(月) 17:32:41
今、二つのグループボックスに3つづつのラジオボタンを使ってテキストボックスの文字修飾と文字色を変えるプログラムのデータを本のとおりに入力したのですが、
実行すると文字色の方は問題ないのですが字体を変えるほうのラジオボタンをクリックすると
emSizeとかゆうのが"0"じゃダメってエラーが出てくるのですが、コードやプロパティを見てもemSizeなんてものがありません。
どうしたらいいのでしょうか?分かる方お願いします。
138デフォルトの名無しさん:2006/02/06(月) 17:35:56
まずその入力したプログラムのデータとやらをコピペしろ。話はそれからだ。
139デフォルトの名無しさん:2006/02/06(月) 17:39:00
分かると思って聞いてんのか?
絶対に誰も分からんとまでは言わんが…
140デフォルトの名無しさん:2006/02/06(月) 17:39:47
>>137
デバッグしる
141137:2006/02/06(月) 17:58:10
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
If RadioButton1.Checked = True Then
TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Or FontStyle.Bold)
Else : TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Xor FontStyle.Bold)
End If
End Sub

Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
If RadioButton2.Checked = True Then
TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Or FontStyle.Italic)
Else : TextBox1.Font = New Font(TextBox1.Text, TextBox1.Font.Style Xor FontStyle.Italic)
End If
End Sub
142137:2006/02/06(月) 17:58:43
上の続きです。
Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged
If RadioButton3.Checked = True Then
TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Or FontStyle.Underline)
Else : TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Xor FontStyle.Underline)
End If
End Sub

Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged
TextBox1.ForeColor = Color.Red
End Sub

Private Sub RadioButton5_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton5.CheckedChanged
TextBox1.ForeColor = Color.Blue
End Sub

Private Sub RadioButton6_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton6.CheckedChanged
TextBox1.ForeColor = Color.Yellow
End Sub
End Class
143デフォルトの名無しさん:2006/02/06(月) 18:05:10
> emSizeとかゆうのが"0"じゃダメってエラーが出てくるのですが、コードやプロパティを見てもemSizeなんてものがありません。
確かに俺がみてもコードにプロパティにも「emSize」なんてないが、
それならコンパイラから見ても「emSize」なんて見つからないはず。

少なくともオマエが「emSize」ってどこかに書いちゃったから、
コンパイラタンがそれを見つけてくれて「そんななものは参照できませんことよ!!」って叱ってくれているとおもう

きっと
144137:2006/02/06(月) 18:12:30
ありがとうございます・・・・・
何とか自力でやってみます。
145最凶VB厨房:2006/02/06(月) 18:14:11
emSizeってフォントか文字列描画あたりじゃないか?
ちょぃと調べてみるかのぅ
146デフォルトの名無しさん:2006/02/06(月) 18:15:29
>Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
> If RadioButton2.Checked = True Then
>  TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Or FontStyle.Italic)
>  Else : TextBox1.Font = New Font(TextBox1.Text, TextBox1.Font.Style Xor FontStyle.Italic)
> End If
>End Sub

ここに間違いがある
あとは自分で考えろ
147デフォルトの名無しさん:2006/02/06(月) 18:16:25
目で追うんじゃない・・・F3検索で「emSize」を検索するんだ・・!!

(V)(´Д`)(V) フォッフォッフォォ
148デフォルトの名無しさん:2006/02/06(月) 18:16:53
しかしなんていうか、無駄の多いサンプルプログラムだな
149最凶VB厨房:2006/02/06(月) 18:27:09
Else : TextBox1.Font = New Font(TextBox1.Text, TextBox1.Font.Style Xor FontStyle.Italic)
これか?
ってことはキャストのエラーにはならんということか。ほー
150137:2006/02/06(月) 18:28:07
>>145-148
ありがとうございます!
Text→Fontでした。
しかし独習はつらい・・・
151デフォルトの名無しさん:2006/02/06(月) 18:28:43
>>150
で、emSizeはどうなった?
152137:2006/02/06(月) 18:33:59
エラーも出なくなったし、忘れることにしました・・・・
153デフォルトの名無しさん:2006/02/06(月) 18:37:22
>>152
バカ

せっかく良いチャンスなんだから、
ちゃんと原因を突き止めてごらん

何でコンパイラがコンパイルエラーを出したのか、
どうすれば解決できるのか、
それが分からないでデバッグできるようになるはずがないよ。

まぁ、「とりあえず動けばいいや。後で苦しんでもしんでもいいや」と思ってるなら別だけどね。
154デフォルトの名無しさん:2006/02/06(月) 18:37:33
こういうところがVBの嫌いなところだ。
FontStyleとSingleは型違いだってコンパイル時にせめて警告ぐらい出せ。
155最凶VB厨房:2006/02/06(月) 18:39:24
156デフォルトの名無しさん:2006/02/06(月) 18:39:35
>>154
ん・・・??
157デフォルトの名無しさん:2006/02/06(月) 18:40:55
なるほど
Font(string,single)なのか・・・ってそれじゃ>>137の参考書って・・・Σ
158デフォルトの名無しさん:2006/02/06(月) 18:43:02
>>157
ちょっと落ち着け
159デフォルトの名無しさん:2006/02/06(月) 18:43:20
>>157
Fontクラスのコンストラクタはそれ以外にも8種類近くある
>>137の参考書が使ってるのは、Font(Font, FontStyle)の方
160デフォルトの名無しさん:2006/02/06(月) 18:45:11
Option Strict Onは強力お勧めだが、今回のはそれじゃコンパイル時には分からんよ。
その形式でオーバーロードされてるんだから。
気付くとしたらインテリセンスで違うパラメータが出てくるってとこじゃない?
161デフォルトの名無しさん:2006/02/06(月) 18:46:22
enumにctype()かければ動くんか?
162デフォルトの名無しさん:2006/02/06(月) 19:00:03
trace.writeline の意味がいまいちよくわからない
本やhpを見る限り、メッセージボックスまたはdebug.printのような使い方なのだが、
実行してもどちらにもならない。
誰か教えてください
163最凶VB厨房:2006/02/06(月) 19:01:28
ま、まじや・・・w

C#だと明示的にキャストせなあかんな。
textBox1.Font=new Font(textBox1.Text,(float)(textBox1.Font.Style ^ FontStyle.Italic));

ほほぅ。
164最凶VB厨房:2006/02/06(月) 19:14:32
とりあえずデバッグウィンドウにでてくるが?
165デフォルトの名無しさん:2006/02/06(月) 19:46:50
>>162
トレース リスナ クラスを*.exe.configで追加してやるとファイルやコンソールに出力できる。
<configuration> 要素 の「トレースおよびデバッグ設定のスキーマ」を参照。
166最凶VB厨房:2006/02/06(月) 19:59:20
Option Explicit On
Option Strict On
Imports System
Imports System.Diagnostics

Public Class EntryPoint
Shared Sub Main(args() As String)
Trace.Listeners.Add(New TextWriterTraceListener(Console.Out))
Trace.WriteLine("aaa")
End Sub
End Class

vbc /r:System.Dll /d:TRACE=True a.vb

これでも一応でてきた。
167デフォルトの名無しさん:2006/02/06(月) 20:02:10
Explicitとかソースに書き込むヤツ居たんだ・・・
168デフォルトの名無しさん:2006/02/06(月) 20:03:42
そういう、大して役に立つとも思えん知識までよくカバーする気になるよな。
いや馬鹿にしてるんじゃなくて関心してるのよ、俺はそんなにモチベーションないから。
仕事でいやいやコード書いてる人間なんで。
169最凶VB厨房:2006/02/06(月) 20:03:46
オプション派なのけ?
170最凶VB厨房:2006/02/06(月) 20:11:48
何が役に立つかどうかなんてすぐにはわからんやんか・・・。
役に立ちそうにないからやらんとこってのは
やめたんだ。特にすぐに試してみればわかることは。ネ!
171デフォルトの名無しさん:2006/02/07(火) 00:33:17
オプションでつけたら自動でソースに書き込まれるんじゃなかったっけ
172最凶VB厨房:2006/02/07(火) 00:45:44
書き込まれんようだ。
173デフォルトの名無しさん:2006/02/07(火) 01:11:40
そうなんだ・・・VB6じゃ書き込まれるよね。
何でソースだけで再現できるようにしないのかなぁ
174デフォルトの名無しさん:2006/02/07(火) 01:20:51
VB.NETは基本的にそういう方向になってるような希ガス。
名前空間の設定とかもそうだねぇ。
175デフォルトの名無しさん:2006/02/07(火) 08:21:15
>>173
何でって、C系と違って、そもそもあのIDE環境で作ることが絶対前提の言語だから
176デフォルトの名無しさん:2006/02/07(火) 09:03:11
SDKでやってる自分の立場は
177デフォルトの名無しさん:2006/02/07(火) 09:25:14
SDKが何なのかわかってる?
178デフォルトの名無しさん:2006/02/07(火) 09:44:35
179デフォルトの名無しさん:2006/02/07(火) 13:07:34
C#だってそういう部分があるだろが
180デフォルトの名無しさん:2006/02/07(火) 13:10:53
Visual Basic コンパイラ オプション

/optionexplicit参照
Visual Basic コンパイラ オプション | /optionstrict | コンパイル コマンド ラインのサンプル | Option Explicit ステートメント
宣言されていない変数を使用している場合に、コンパイラによってエラーが報告されます。

---------------------------------------------------------
Visual Basic 言語リファレンス

Option Explicit ステートメント参照
Const ステートメント | Dim ステートメント | Function ステートメント | Option Compare ステートメント | Private | Public | ReDim ステートメント | Sub ステートメント | /optionexplicit | /optionstrict | /optioncompare:binary | /optioncompare:text
ファイル内のすべての変数を明示的に宣言するためにファイル レベルで使用します。
181デフォルトの名無しさん:2006/02/07(火) 15:46:15
>>178
そ れ の ど こ が V B
182デフォルトの名無しさん:2006/02/07(火) 15:53:24
>>181
流れはこんな感じ

>>175 VBの話からIDEの話になる
>>176 メモ帳か何かでコーディング派
>>177 「SDKが何なのかわかってる?」発言
>>178 IDE使わないでコーディングできる予感
>>181 急にVBに戻る
183デフォルトの名無しさん:2006/02/07(火) 15:55:05
VBが関係なくなってると思ってる>>182=178にワロタ
184デフォルトの名無しさん:2006/02/07(火) 15:58:10
>>183
そんな事はどーでもいいw よよよ。
185デフォルトの名無しさん:2006/02/07(火) 15:58:23
>>183
残念だけど>>182!=178
186デフォルトの名無しさん:2006/02/07(火) 16:01:31
>>183
たしかにワロスw
187デフォルトの名無しさん:2006/02/07(火) 16:39:18
>>182ってIDEって言葉を理解してないんじゃないの?
188デフォルトの名無しさん:2006/02/07(火) 16:58:19
>>187
つ [ttp://yougo.ascii24.com/gh/00/000090.html]
俺んちにもintegrated development environment 入ってないよ
189デフォルトの名無しさん:2006/02/07(火) 17:12:15
IDEってらっきょだろ?

・・・言ってみたかっただけ 吊ってくる。
確か統合開発環境・・・であってるよね?
あってるって言ってくれ。
190デフォルトの名無しさん:2006/02/07(火) 17:31:00
Dim Frm As Form

Frm = New Form1
Frm.Show()

て書いて関数抜けても実体は残るよね?
でも変数はもう参照できないんだけど実体はどこに入ってんの?
191デフォルトの名無しさん:2006/02/07(火) 17:34:31
フレームワークが保持してる。当たり前だが。
192最凶VB厨房:2006/02/07(火) 17:54:53
実体を誰が持っているかは謎・・・。
193デフォルトの名無しさん:2006/02/07(火) 19:45:48
倒錯してると思うけど。
枯れ木に花が咲くのが当たり前で、生木に花が咲くのを驚く、みたいなw

だってさ、参照がスコープから消えると抹殺される、ってことがむしろ
自然状態じゃないわけでさ。
194デフォルトの名無しさん:2006/02/07(火) 20:17:11
(゚д゚;;;)何言ってんのこいつ・・・・
195デフォルトの名無しさん:2006/02/07(火) 20:55:57
>>194
ふーん違うんなら反論どうぞ
できないだろうけどw
196デフォルトの名無しさん:2006/02/07(火) 21:01:20
>>195
ふーん違うんなら反論どうぞ(どうせ私びは)できないだろうけどw
197デフォルトの名無しさん:2006/02/07(火) 21:18:30
スコープ外れても消えないっていう基本を理解できていない。
198最凶VB厨房:2006/02/07(火) 21:41:57
ふぅ
199デフォルトの名無しさん:2006/02/07(火) 21:46:51
VB.NETとかjavaとかVB6とか、これらのプログラミング言語は一応OOPに則ってる節がある。
これらの言語で居移す売る概念は「オブジェクト変数は参照型である」というもの。
以下はこの前提に基づいて書いています。

参照型であるがゆえに、オブジェクト参照式の指す「実体」は別に管理する必要があり、
実体が「別に管理」されているから、「スコープ」という変数の生成/消滅とは別の生存の道を辿らざるをえなくなっている。

管理されている実体は、「いずれの”何か”からも参照されなくなった時点で存在を確認できなくなる」という性質を持つ。
ま、存在を確認できなくなったとたん、殺される運命を辿るわけだな。

---------------
ここまでは普通の話なのであまり面白くないが…
オブジェクトが可視性のあるコントロールの様なものの場合、「人の目に参照されている」というのが残る。
VB6とかはこの辺がごちゃごちゃで、わざわざFormsコレクションとか取り入れて、
Formというクラスが生成されると暗黙的にFormsコレクションによって参照されるようになってる。
はっきり言って気持悪い。
で、これを解消したのが VB.NET だと思っていたんだが…

〜つづぬ〜
200デフォルトの名無しさん:2006/02/07(火) 21:49:11
〜続き〜
> Dim Frm As Form
> Frm = New Form1
> Frm.Show()
このコードが一つのブロックの中にある(つまり、Frmがスコープから外れたときに消滅する)時、
本当かどうかわからんが、どーも
> て書いて関数抜けても実体は残るよね?
> でも変数はもう参照できないんだけど実体はどこに入ってんの?
らしいな。

これは「オブジェクト変数:Frmにしか参照されていないForm1の実体」が「Frmに参照されなくなっても生存している」
という矛盾がある。
本当なのか?
※明示にDispose()する必要があるかもしれないが、それは実体に対する働きかけであって、
 実体を殺すことではないはず。

俺、おかしいかな。
201デフォルトの名無しさん:2006/02/07(火) 21:58:29
だからスコープから外れた時に実態が処分される、ってのは
そのためのメカニズムがあってこそであって、それが自然状態ではないのw

Cとかでプログラム書いたことないのかな
202デフォルトの名無しさん:2006/02/07(火) 22:00:55
参照が切れたらその場で殺して欲しいね。
さもないとC++のnewとdeleteの嵐の二の舞だ
203デフォルトの名無しさん:2006/02/07(火) 22:05:11
見えないオブジェクトは消えてんの?
204デフォルトの名無しさん:2006/02/07(火) 22:06:49
>>203
gc働くような言語なら、どこからも参照されなくなったら勝手にgcしちゃいます
きっといつか
C++みたいに、プログラマが任意に殺して良いような言語はdeleteちゃんとしないとメモリ食べつくします
たぶん
205デフォルトの名無しさん:2006/02/07(火) 22:06:50
>>200
ヒント:自分が書いたコード以外の部分で参照を持っていることもある

>>201
スコープはともかく、GCは言語レベルで規定されているんだから、
参照がなくなったらインスタンスが消えるのはVB(少なくとも7以降)にとっては自然状態と言って差し支えないと思うが
206デフォルトの名無しさん:2006/02/07(火) 22:07:42
>>205

'on VB.NET
> Dim Frm As Form
> Frm = New Form1
> Frm.Show()
これしか書いてないのに、他に何か参照してるの?
マジで?
教えろエロい人
207デフォルトの名無しさん:2006/02/07(火) 22:42:10
Form1のコンストラクタ、Loadイベントで何やってるかによるわな。
208デフォルトの名無しさん:2006/02/07(火) 22:43:51
そういえばそういう方法もあった罠
視野狭くなってるのでちょっと目薬刺してきます
209デフォルトの名無しさん:2006/02/07(火) 23:04:19
むしろ目刺して視野0にしてこい
210最凶VB厨房:2006/02/07(火) 23:06:06
TLSが持つんかな。
まっよくわからんや。
211デフォルトの名無しさん:2006/02/07(火) 23:22:34
どっかが持ってる可能性はそれなりに高いと思うが、
仕様として不明な以上、いきなり消される可能性は否定出来ない。
212デフォルトの名無しさん:2006/02/07(火) 23:24:28
つうか2005ならUsingできれいに書けるのにね。
Using frm as new Form1
frm.ShowDialog
End Using

そうじゃなくモードレスフォーム表示だとしたら、ローカル変数にしてるって時点で設問としてありえんな。
213デフォルトの名無しさん:2006/02/07(火) 23:32:16
>>212なんの話かわからんよ
214デフォルトの名無しさん:2006/02/07(火) 23:33:49
FormがIDisposableインタフェイスを実装してるからusingブロックで確実にDispose()メソッド呼んでくれてうれしいなー
って思ってるだろうが、実はあんまり関係ない
215最凶VB厨房:2006/02/07(火) 23:34:39
>>211
重要な指摘だね。若干盲点だった。
216デフォルトの名無しさん:2006/02/07(火) 23:51:19
FormっていきなりDispose呼んでよかったんだっけ?
っていうか、そんな一瞬で花と散るフォームに一体なんの意味がw


217デフォルトの名無しさん:2006/02/07(火) 23:54:24
だから微妙にShowじゃなくShowDialogなんだが・・・。
でもって、普通Showするなら親フォームのフォームレベル変数にするべさ。
ローカル変数でShowしてどこ行った?って議論がナンセンス。
そんなことを考える必要があるソースは書かないのが正解。
218デフォルトの名無しさん:2006/02/08(水) 00:03:26
ああ、見落とした。。
スマン
219デフォルトの名無しさん:2006/02/08(水) 00:40:39
Showされた時点でFormは自分自身(MyBase)を参照してる
220デフォルトの名無しさん:2006/02/08(水) 00:50:21
>>219
まるでMyBaseが遊離してる雰囲気なのか?
221デフォルトの名無しさん:2006/02/08(水) 00:53:17
だから参照してるとかされてるとかの問題じゃなくて
ガベコレ抑制してるだけだっつーのw

つーか.NETの継承ってのはベースクラスのオブジェクトに委譲することによって
実現されてるのか?w
222最凶VB厨房:2006/02/08(水) 00:56:07
それ根拠あるのか?
推測か?
223最凶VB厨房:2006/02/08(水) 00:57:33
それ->ガベコレ抑制してるだけ
ね。
224デフォルトの名無しさん:2006/02/08(水) 01:02:57
>Showされた時点でFormは自分自身(MyBase)を参照してる
何が言いたいのかよくわからんが、念のため。
ルートからつながってない限り、循環参照は意味なし。
参照カウンタ方式なら別だけどね。
225デフォルトの名無しさん:2006/02/08(水) 01:07:11
>ガベコレ抑制してるだけだっつーのw
詳しく
226デフォルトの名無しさん:2006/02/08(水) 01:12:16
gc抑制とか何だ?
kwsk
227デフォルトの名無しさん:2006/02/08(水) 03:36:48
VB2005Expressで初めてVBに触れたんですが
参考にしてる資料(VB2003を使ってる)で、コードを書き込む際に
クラス名を全般、メソッド名をDeclarationsにして宣言しろってなってるんですが
メソッド名にDeclarationsが出てきません。

VB2005になってからの仕様変更なのか、Expressだから出来ないのか
この辺わかる方、教えて頂けませんでしょうか。
228最凶VB厨房:2006/02/08(水) 03:42:47
参考にしてる資料の
>コードを書き込む際に
>クラス名を全般、メソッド名をDeclarationsにして宣言しろ
と書いてある部分を正確に書き移してみて。
229デフォルトの名無しさん:2006/02/08(水) 03:58:15
コードエディタウィンドウ上部にある左側リストボックスから(全般)を
右側リストボックスから(Declarations)を選択し、以下のソースコードを入力します。

Private DownloadCount As Long     ’’注釈文
Private JVOpenFlg As Boolean      ’’注釈文

こんな感じのコードです。

えっと、参考にしてるのは、JRA-VANのソフト作成体験教室です
http://www.jra-van.ne.jp/dlb/sdv/trial.html
これのLesson 4で躓いてます。
230最凶VB厨房:2006/02/08(水) 03:58:27
あー。あれか。
GeneralとDeclarationsか。
気にしちゃだめだ。
無視して良し。
231最凶VB厨房:2006/02/08(水) 04:02:24
Windowsフォームデザイナで生成されたコードの下に書けばよい。
232最凶VB厨房:2006/02/08(水) 04:03:16
「Windowsフォームデザイナで生成されたコード」
な。
233デフォルトの名無しさん:2006/02/08(水) 04:11:19
>>232
その「Windowsフォームデザイナで生成されたコード」が出てこないんです
http://f61.aaa.livedoor.jp/~name/up/img/uuup9105.png

無理やりこんな感じで入れてみたんですけど、それでいいのかどうか?
234最凶VB厨房:2006/02/08(水) 04:14:47
2005はそんなんなってるのかー。
いいと思います。(動けば)
ちなみに宣言=Declarationsです。
235デフォルトの名無しさん:2006/02/08(水) 04:18:01
>ちなみに宣言=Declarationsです。

なるほど、では一番上の所に書き込んで置けば良さそうですね。
こんな夜中に有難う御座いました。
236デフォルトの名無しさん:2006/02/08(水) 07:55:26
初めてVB2005でBASICを始めたものです。
テキストを見ながら次のようなプログラムを実行してみました。
Dim a As Integer
a = 123
Trace.WriteLine(a)
MsgBox(a)
Debug.Print(a)
メッセージボックスは正常に表示されるのですが、デバッグ出力画面は
変化がありません。出力画面に表示させるにはどうすればよいのでしょうか。

よろしくお願いいたします。
237デフォルトの名無しさん:2006/02/08(水) 08:22:29
>>236
入門書でも買った方がいいんじゃないの
238デフォルトの名無しさん:2006/02/08(水) 10:15:17
DebugPrint・・・って何だ?
.net2003のキーワードには乗ってないけど?
Debug.WriteLine(a)でやってみ?

'的外れなら許せ
239:2006/02/08(水) 10:19:05
うわ 恥ずかしいこと書いてしまった。
TraceとDebugの違いってDebugはデバッグビルドのときのみ有効位しか違いがなかったのか
(恥の上塗りになったらどうしよう)
240236:2006/02/08(水) 10:28:52
使い込まずに質問してしもてすまんかったです。

イミディエイトウィンドウと出力画面(デバッグ)を勘違いしていました。

イミディエイトウィンドウを表示するようにしたらできました。
ありがとうございました。
241デフォルトの名無しさん:2006/02/08(水) 10:39:37
わからん!どーしてもわからん。

フォームデザイン画面で配列型のテキストボックスが作れないのだ!
コピー→ペーストではダメなんですか?

242デフォルトの名無しさん:2006/02/08(水) 10:56:10
配列型のテキストボックスってなんだろう?
VB6.0のコントロール配列のことを言ってるのなら、VB.NETでは
そういう機能がなくなった。ほかの方法で同様の使い方ができるん
で、ぐぐって出てくるサンプルを参考にするといいかも。
243デフォルトの名無しさん:2006/02/08(水) 11:07:41
さんきゅ。頭の切り替えが必要みたいですね。


教えて君でスマンが、他の方法ってのは何ですか?
244デフォルトの名無しさん:2006/02/08(水) 11:44:26
ぐぐればすぐに見つかる
245デフォルトの名無しさん:2006/02/08(水) 12:26:23
Private Button_test(9) As Windows.Forms.Button


Button_test(0) = Button1
Button_test(1) = Button2
    ‥‥以下続く‥‥

こんな感じでしょうか。面倒。
246デフォルトの名無しさん:2006/02/08(水) 12:39:03
>>245
private button_clc as new system.collection.hashtable
for each ctl as control in me.controls
if typeof(ctl)=system.windows.forms.button then
button_clc.add ctl.hashcode(),ctl
end if
next

で、button_clcを使うとか?
247デフォルトの名無しさん:2006/02/08(水) 12:52:05
つうか無理に配列にしないでも、イベント関数を共有して使うなどは出来るわけだし。
プロパティのまとめ設定は確かに面倒だけど、ForEachでいける部分多いし。
248デフォルトの名無しさん:2006/02/08(水) 19:30:21
くだらないことかもしれませんが質問させてください。

文字列二項目程度のレコードを50件程度「何か」にいれて、サーバに送り付けたいと思います。
サーバではそのレコードをDBに挿入します。

この場合、レコードを格納するのは何が適当でしょうか?
配列?データセット?
249デフォルトの名無しさん:2006/02/08(水) 20:38:15
XML
250デフォルトの名無しさん:2006/02/08(水) 22:21:28
CSVが無難じゃない?
251デフォルトの名無しさん:2006/02/08(水) 22:24:02
SOAP
252デフォルトの名無しさん:2006/02/08(水) 22:24:15
>>250
無難じゃないかと
XMLなら可読性高いから保守簡単
253248:2006/02/08(水) 22:58:33
すみません。言葉足らずでした。
サーバってのはアプリケーションサーバのことです。
プログラム中で受け渡すので、
>配列?データセット?
なんて書いてみたのですが。

ファイルにわざわざ落とすのはちょっと。。。
254デフォルトの名無しさん:2006/02/08(水) 23:02:29
氏ね
255デフォルトの名無しさん:2006/02/08(水) 23:08:03
>>253
".NET リモート処理の概要"を参照
256デフォルトの名無しさん:2006/02/08(水) 23:12:55
誰もファイルに落とせなんて書いてない件について
257248:2006/02/08(水) 23:14:10
>>255-256
ありがとう。詠んでみます。
258デフォルトの名無しさん:2006/02/08(水) 23:16:55
通信手段を聞いてるのか、それとも通信があってお手紙の書き方を聞いてるのか。
まったく、プログラマ以前の質問だから何が聞きたいのか一切わからんよ。
259デフォルトの名無しさん:2006/02/08(水) 23:18:08
ADO.netでもOKだし、リモーティングでもWebサービスでもOk、べたにソケット通信でもok。
260デフォルトの名無しさん:2006/02/08(水) 23:20:13
ここは>>248にDDEを使ってもらうことにしよう な!
261デフォルトの名無しさん:2006/02/08(水) 23:26:43
なんでこう付属するヘルプに書いてあることも読めない奴が多いんだろう?
262デフォルトの名無しさん:2006/02/08(水) 23:29:05
>>261
俺もそう思うが
.NETの階層の区分け方法を理解しないと目的のクラス/メソッドは見つけにくいのも分かる

イメージできないものが極端に効率が落ちるのと一緒だとおもう
263デフォルトの名無しさん:2006/02/08(水) 23:34:28
>>262
でもさ、サーバ側をDBで処理するなら、最低でもADOは使うはずだからまずそれは見つかるよね。
それに通信するなら、ソケット通信があるぐらいは自明。
RemotingをWebサービスは知らないと手がかりはないが、それぐらい普通言葉程度は知ってないか?
264デフォルトの名無しさん:2006/02/08(水) 23:41:41
>>263
まぁ、そうだな。
ソケット通信とプロセス間通信が結びつかなかったとかありえるが、
"リモート"くらいは思いついて欲しい希ガス

何も道を示さず、他人に回答を求めるのはあんまりよくない傾向ではあるが
265248:2006/02/09(木) 00:43:44
ウゥゥ、不勉強でごめんなさい。

DBとはADO(ODP).NETでつないでます。
>>258さんのいう「お手紙の書き方」を伺いたかったのですが、
質問の仕方が不十分でした。

APサーバはIntertage云々 for .NETとかいうヤツです。
サンプルがやっと動いた程度で、>>264さんの挙げてる単語なんて思いつきもしませんでした。

精進しまつ。
266デフォルトの名無しさん:2006/02/09(木) 01:55:09
XML俺もお勧めしておこう
267デフォルトの名無しさん:2006/02/09(木) 02:49:31
よく知らんが、何らかのミドルウェアを使っているんであれば、
それに適した方法あるいはルールとかがあるんではないの?
268デフォルトの名無しさん:2006/02/09(木) 09:29:36
つうか、DBにADOで突っ込んでるなら、普通にクラサバにしちゃえばいいじゃん。
三階層化するだけの知識なかったんだからそれで十分。
三階層化しようと思って少し調べれば、Webサービスってすぐ出てくるんだけどね。
269デフォルトの名無しさん:2006/02/09(木) 09:45:11
Interstage Business Application Manager for .NET

これか、富士通とはかかわらないほうがいいのに
270デフォルトの名無しさん:2006/02/09(木) 11:14:14
質問です。
Windowsアプリケーションで、
ボタンを押したときにパネルコントロール上に配置してある
全てのコントロールを一旦削除したいのですが、

i = 0
Dim Ftype As String
Do While i < PanelList.Controls.Count
Ftype = PanelList.Controls(i).GetType().ToString
If Ftype <> "System.Windows.Forms.Panel" Then
PanelList.Controls.RemoveAt(i)
End If
i = i + 1
Loop

このソースで実行すると1回の実行では半分くらいのコントロールが
残ってしまいます。(何回かボタンを押していると全て消えます)
1回で全て削除するにはどのように書けばよいでしょうか?
271デフォルトの名無しさん:2006/02/09(木) 11:17:46
PanelList.Controls.Count
がRemoveAtするたびに減っていくからじゃないか?
272デフォルトの名無しさん:2006/02/09(木) 11:18:10
Clear
273デフォルトの名無しさん:2006/02/09(木) 12:36:32
>>270
つーか個別にココの部分がおかしい、とかいうより
もうなんていうか全てがおかしい。
ひょっとして釣りかなんか?
274デフォルトの名無しさん:2006/02/09(木) 12:47:27
>>270
いったん消去動作に入ったら、消したいコントロールの数は変動しな
いんだから、最初にカウントした個数分だけループ回せばOKだろ。

Whileは回数が状況によって変わる場合に用いられるステートメント。
今回のは普通のForNextループでいけるじゃん。
275デフォルトの名無しさん:2006/02/09(木) 12:47:29
If TypeOf PanelList.Controls(i) Is System.Windows.Forms.Panel Then
End If
276デフォルトの名無しさん:2006/02/09(木) 12:50:18
dim i as integer
for i=PanelList.Controls.Count to 1 step -1
If TypeOf PanelList.Controls(i) Is System.Windows.Forms.Panel Then
PanelList.Controls.RemoveAt(i - 1)
End If
next

完璧だw
277270:2006/02/09(木) 14:14:26
>>271-276
皆さんありがとうございます。
PanelList.Controls.Count が変動する値だというのを見落すという
単純ミスでした。無事解決しました。
278デフォルトの名無しさん:2006/02/09(木) 14:20:18
つか>>272じゃん なんでわざわざループ?
279デフォルトの名無しさん:2006/02/09(木) 14:25:21
予想だがPanelListにはPanel以外が入っているからではないか。
だったらPanelListという名前はワロスだが
280248:2006/02/09(木) 15:09:28
>>268
処理内容からしても明らかにそれで充分だとおもいまつ。
でもハードもAPサーバも売らないといかんらしいですので。
281デフォルトの名無しさん:2006/02/09(木) 15:16:32
そしたら、やっぱSOAPしかないやん
てか、さすが富○通
282デフォルトの名無しさん:2006/02/09(木) 15:38:09
248ってかなり素人っぽいな
283248:2006/02/09(木) 17:35:26
>>282
いや、素人そのものなんですが何か?
284デフォルトの名無しさん:2006/02/09(木) 19:24:58
最初は誰もが初心者だが、それを免罪符にして傲慢かましたりしなけ
れば、きちんと相手してもらえると思う。報告連絡相談をしっかりな。
285デフォルトの名無しさん:2006/02/09(木) 20:17:40
>報告連絡相談をしっかりな。
傲慢ってのはこういう口調態度のことをいうんだけどw
286デフォルトの名無しさん:2006/02/09(木) 20:18:43
「ほうれんそう」は社会人の必須能力だろうに。
287デフォルトの名無しさん:2006/02/09(木) 20:19:33
>>285
そういう態度とってるとだんだん・・・
288デフォルトの名無しさん:2006/02/09(木) 20:34:33
傲慢とはまさに>>285を形容するためにあるような言葉ですね
289デフォルトの名無しさん:2006/02/09(木) 21:39:28
>>285-287
一分おきに>>284タタキでつか?
290デフォルトの名無しさん:2006/02/09(木) 22:05:30
>>276
ねぇ何でiで型チェックしてi-1を消してるの?
291デフォルトの名無しさん:2006/02/09(木) 22:06:47
ていうかループ1回目で例外にならんか?
292デフォルトの名無しさん:2006/02/09(木) 22:11:53
>>290
まあ、気にするな。適当だからw
293デフォルトの名無しさん:2006/02/10(金) 12:11:19
DBのコネクションオブジェクトって、みんな、ビジネス層のクラス群で生成してる?
それともデータアクセス層のクラス群で生成してる?
294デフォルトの名無しさん:2006/02/10(金) 15:24:13
どっちでトランザクション管理するか次第でしょ?
普通、データアクセス層ではそれは出来ないから、ビジネス層で管理だと思うが。
295デフォルトの名無しさん:2006/02/10(金) 15:57:48
バイト配列に入っているSJISのデータを
String型の変数に入れたいのですが
良い方法はありますでしょうか?

dim b() as byte
dim s as string

s = new String(b, "Shift-JIS")

みたいにできるといいのですが
296デフォルトの名無しさん:2006/02/10(金) 16:00:07
System.Text.Encodingクラス
使うインスタンスはShift_jisなら日本語版WindowsではEncoding.Default一般的にはEncoding.GetEncoding("Shift_jis")
297デフォルトの名無しさん:2006/02/10(金) 16:27:02
>>296
さんくす。できました。
298デフォルトの名無しさん:2006/02/10(金) 17:45:03
FlexGrid for .NETのセル単位の色変更の仕方わかるかた
教えていただけませんか?
どうにもうまくいきません。
299デフォルトの名無しさん:2006/02/10(金) 17:47:41
GrapeCityに聞けよ
300デフォルトの名無しさん:2006/02/10(金) 17:52:50
それを言ってはVB.NETのことはMSに聞けよって言うのと同じじゃないですか
301デフォルトの名無しさん:2006/02/10(金) 17:53:50
FlexGrid for .NETスレで聞けば?
302デフォルトの名無しさん:2006/02/10(金) 17:56:50
それが無いんですよ。
303デフォルトの名無しさん:2006/02/10(金) 17:59:49
GrapeCityに聞けばすぐ答えてくれるのに
304デフォルトの名無しさん:2006/02/10(金) 18:00:12
無ければ作れ。
305デフォルトの名無しさん:2006/02/10(金) 18:01:14
MSに聞くのとは全然違うからな
306デフォルトの名無しさん:2006/02/10(金) 18:08:13
とりあえずですね
msfg.cols(2).styledisplay.backcolor = system.drawing.color.black
としたらカラム2だけ色が変わるはずなのにすべてのセルが
同じ色になってしまいます。なぜでしょう?
307デフォルトの名無しさん:2006/02/10(金) 18:28:42
どうやらFlexGridのバグのようです。
308デフォルトの名無しさん:2006/02/10(金) 18:29:31
>>307
kbの番号か直ソースキボン
309デフォルトの名無しさん:2006/02/10(金) 20:32:09
2.0ではMSがSystem.Transactions使えと言う。
1の頃はビジネス層で接続管理してたんだが。
310デフォルトの名無しさん:2006/02/11(土) 01:18:42
すいません、教えてください。

指定したアドレスから指定した件名のメールを受信した場合に指定した
アプリを起動させるアプリを作成したいのですが、VB.NETで実現
できますか?
想定している機能は・・・
POP3とやり取りしてメールを取得
指定された条件と比較
条件を指定するインターフェース
メールを保存したり、HTMLメール・添付ファイルを受信する機能は
必要ないです。またメール作成&送信機能も無くていいです。
311デフォルトの名無しさん:2006/02/11(土) 01:25:21
そりゃまあSocket扱えるんだから論理的には実現可能だが。
とりあえずPOP3はクラスとして存在しないので自分でしゃべる必要があるな。
312310:2006/02/11(土) 02:02:08
>>311
夜遅くの回答ありがとうございます。
「自分でしゃべる」ってあたりは多分「Socket」の扱い方を学べば
理解できてきますよね?
とりあえず、着手してみます^−^
313デフォルトの名無しさん:2006/02/11(土) 02:17:54
そのレベルからだと大変だろうが頑張れ
314デフォルトの名無しさん:2006/02/11(土) 08:38:24
受信さえできるようになれば後はメールヘッダを読めば終わりだ
315310:2006/02/11(土) 13:46:20
「Socket」と色々組み合わせてぐぐってみたら、色々解説ページが出てきたので
頑張れそうです。
ありがとうございました。
316デフォルトの名無しさん:2006/02/11(土) 14:32:34
317310:2006/02/11(土) 15:05:15
>>316
ありがとうございます。
参考にします。
318デフォルトの名無しさん:2006/02/11(土) 18:03:26
他スレで怒られてこちらに来ました。
最初に誤ります。
「超ド素人質問で申し訳ないです」

VB.net2005で「データフォームウィザード」が【追加】→【新しい項目】
に無いのですが、名前変わってますか?
バカな質問かもしれませんが、真剣に悩んでます。
319デフォルトの名無しさん:2006/02/11(土) 18:07:28
新しいデータソースの追加?
320デフォルトの名無しさん:2006/02/11(土) 18:54:13
>318
そのスレ何?
321デフォルトの名無しさん:2006/02/11(土) 18:55:23
怒られたとは人聞きの悪い
こっちが悪者のようじゃないか
322デフォルトの名無しさん:2006/02/11(土) 18:56:43
経緯が気になるな・・・
323デフォルトの名無しさん:2006/02/11(土) 19:01:18
そんなに面白い話ではない
324デフォルトの名無しさん:2006/02/11(土) 19:02:56
殴られた方も痛いし、殴った方も痛いって言うパターンか
325デフォルトの名無しさん:2006/02/11(土) 19:03:34
言い方わるかったです。
ごめんなさい。

私も分からなくてウワァァ━━━━━。゚(゚´Д`゚)゚。━━━━━ン!!!!
ってなってたので・・・
ごめん。・゚・(ノд`)・゚・。
326デフォルトの名無しさん:2006/02/11(土) 19:44:12
インストールの手順でミスがあったのか、どこかで設定を変更する必要が
あるのか、原因が分からないんです。
2003の本を使ってる事が既に間違えなのかもしれませんが、どなたか分かれば
教えていただけませんか?
327デフォルトの名無しさん:2006/02/11(土) 19:46:00
信じられないんだが一応確認しておきたい。

VB2005をVB2003の解説本で操作してるのか?
328デフォルトの名無しさん:2006/02/11(土) 19:49:35
2005の本が何処にも存在しなかったので、2003買いました。
やっぱりダメでしたか・・・。
329デフォルトの名無しさん:2006/02/11(土) 19:57:23
それぐらい探せよ勘働かせて。
そんなこともできんと結局プログラムはできるようにはならないよ。
330デフォルトの名無しさん:2006/02/11(土) 20:14:48
ツールボックスに表示されていないアイテムは【ツール】→【ツールボックスアイテムの選択】
から選べれる事は分かったんだけど・・・
データフォームウィザードは何処をどうすれば良いのかヒントでも良いので教えてもらっていいですか?
331デフォルトの名無しさん:2006/02/11(土) 21:18:13
>>330
データフォームウィザードは無くなった。
2005では違う手順でデータ連結フォームを作るのでこの辺でも読んでくれ。
http://msdn2.microsoft.com/ja-jp/library/2b4be09b.aspx
332デフォルトの名無しさん:2006/02/12(日) 04:58:50
旧msdnもmsdn2見たいにしてくれんかな
333デフォルトの名無しさん:2006/02/12(日) 18:58:13
Integerって表記してる? Int32 って表記してる?
1時間ほど悩み中
334デフォルトの名無しさん:2006/02/12(日) 19:34:48
俺は前者。
特に理由はない。
335デフォルトの名無しさん:2006/02/12(日) 19:40:05
IntegerとInt32って同じなの?
336デフォルトの名無しさん:2006/02/12(日) 19:53:32
MSDNを調べずに書くのがデフォか?
337デフォルトの名無しさん:2006/02/12(日) 21:45:05
Windows95〜WindowsXP SP2までは同じ
338デフォルトの名無しさん:2006/02/12(日) 23:30:17
一つのクラスにフィールド40個って多すぎですかねぇ・・・
プロパティ作るの大変。
339デフォルトの名無しさん:2006/02/12(日) 23:46:34
クラスにもよるが、一般的には多すぎるだろうな。
340デフォルトの名無しさん:2006/02/12(日) 23:46:49
ぜーんぶ同じだばか。
341デフォルトの名無しさん:2006/02/12(日) 23:56:05
残念、昔はIntegerは2バイト
342デフォルトの名無しさん:2006/02/13(月) 00:00:09
昔って?_
343デフォルトの名無しさん:2006/02/13(月) 00:03:22
気にすんな、ここが何のスレなのかも理解してない奴の戯れ言だ。
344デフォルトの名無しさん:2006/02/13(月) 00:32:38
VBに限った事ではないのですが、VBで開発をしているので
ここで質問させてください。
ユーザーIDとパスワードをクライアント側に記憶させておく場合
どこに、どのような形で保存させておくのが良いですか??
345デフォルトの名無しさん:2006/02/13(月) 00:45:33
>>344
(userid+password+自分だけ知ってる値)をハッシュ値として保存すればいいのではないか
と考えたことがあります
346デフォルトの名無しさん:2006/02/13(月) 00:52:57
お願いします。VB2005 Expressです。
DynamicPropertiesっていうのを使いたいんですが、プロパティウインドウにありません。
2005ではどこから設定するのでしょうか?
347345:2006/02/13(月) 00:58:46
なるほど!
userid+passwordだけでハッシュ値にして保存しても簡単に戻せるので
+自分だけが知ってる値にするわけですよね??
そもそも「ハッシュ値にして〜」って事さえ思いも付かなかった素人ですので・・・
ありがとうございました
348344:2006/02/13(月) 01:01:53
名前間違えた・・・
私は344です。・゚・(ノд`)・゚・。
>>345にレスしたかった・・・お察しいただけるだろうけど一応
349デフォルトの名無しさん:2006/02/13(月) 01:02:02
ハッシュって普通不可逆じゃね?
てか、暗号化してiniファイルでいいんじゃね?
350デフォルトの名無しさん:2006/02/13(月) 01:02:54
>>347
> userid+passwordだけでハッシュ値にして保存しても簡単に戻せ
ません。そんなハッシュ関数使うなよ…
※MD5かSHAとかを想定しています
351デフォルトの名無しさん:2006/02/13(月) 01:03:48
>>349
特に気にしないならそれでいいかも
352デフォルトの名無しさん:2006/02/13(月) 01:04:34
353344:2006/02/13(月) 01:11:20
ハッシュについてあまり理解していないのに知ったか君しちゃいました。
「戻すことが無理ならどうやって次に使うの??」という質問はハッシュ
について勉強してからにします。
>>352
そこみて出直してきます。
ありがとうです
354デフォルトの名無しさん:2006/02/13(月) 01:13:46
>>353
うんまぁそうしてこい
ブルートフォースアタックに弱いけど、
中間者の存在しないルートでの、改竄チェックとしては最強だとおもうから。
355344:2006/02/13(月) 01:18:00
ハッシュ化されたIDとPASSを認証側で持っておけばいいのか・・・
ちと勉強してきます
356デフォルトの名無しさん:2006/02/13(月) 08:16:17
っていうか、聞いてる話の範囲内では
そもそも暗号化なり符号化なりする必要があると思えないんだがw

ハッシュ値にしろ、とかいってる奴も何のためにハッシュなんてものが
存在するのかわかってないとしか(w
357デフォルトの名無しさん:2006/02/13(月) 08:42:59
じゃあなんのために存在するの?
358デフォルトの名無しさん:2006/02/13(月) 09:36:00
359デフォルトの名無しさん:2006/02/13(月) 09:57:12
FlexGrid for .NETについてですが

Dim i As Integer
For i = 0 To C1FlexGrid1.Cols.Count - 1
C1FlexGrid1.Cols(i).TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.RightCenter
If i = 2 Then
C1FlexGrid1.Cols(i).StyleDisplay.BackColor = System.Drawing.Color.Red
End If
Next

だと2列目を赤にできるのですが

Dim i As Integer
For i = 0 To C1FlexGrid1.Cols.Count - 1
If i = 2 Then
C1FlexGrid1.Cols(i).StyleDisplay.BackColor = System.Drawing.Color.Red
End If
Next

だと全セルが赤くなってしまいます。
なぜTextAlignを設定したときとしないときで挙動が変わってしまうのか
非常に悩んでおります。
これってやっぱりFlexGridのバグなんでしょうか?

フォームにFlexGridを貼り付けただけでLoadイベントに書いています。
最小のサンプルだと思います。
360デフォルトの名無しさん:2006/02/13(月) 10:11:32
だから何度も聞く暇あるならグレープシティーに聞けばいいじゃん。
361359:2006/02/13(月) 10:39:25
ヘルプを読んでみたらわかりました。
Dim cs As C1.Win.C1FlexGrid.CellStyle = C1FlexGrid1.Styles.Add("err")
cs.BackColor = Color.Red

Dim i As Integer
For i = 0 To C1FlexGrid1.Cols.Count - 1
If i = 2 Then
C1FlexGrid1.Cols(i).Style = cs
End If
Next

.NETじゃないやつとかなり変わっていました。
362デフォルトの名無しさん:2006/02/13(月) 10:42:50
>>360
「がんばってるボクを見て!」ってことなんだよ、きっと。
363359:2006/02/13(月) 10:55:09
ほんとおまえら役に立たないな
364デフォルトの名無しさん:2006/02/13(月) 11:08:10
ヘルプに書いてある程度のことを、数日も何度もここで聞く奴って。w

ヘルプ読んで、製作元に聞いてみて、それで情報得られなければネットでしょ?
いきなり調べもせずに全世界的に自分は馬鹿ですってTCP・IPに乗せて流さなくても。
365359:2006/02/13(月) 11:14:40
質問には答えられないくせに質問者をバカにするだけだもんな。
ほんとおまえらどうしようもないよ。
366デフォルトの名無しさん:2006/02/13(月) 11:19:21
しかし一番使えないのは>>365です
367デフォルトの名無しさん:2006/02/13(月) 11:19:44
そんなに褒めるなよ、照れるじゃねーか。
368359:2006/02/13(月) 11:22:36
だいたいわからなければ書き込まなきゃいいじゃん。
つか、なんでこのスレ見てんだよ。
ほんとどうしようもないな。おまえら。
369デフォルトの名無しさん:2006/02/13(月) 12:20:00
ヘルプも読めない馬鹿が何言っても駄目だよ。
370デフォルトの名無しさん:2006/02/13(月) 12:23:54
>>368
だい          き
        ス
371359:2006/02/13(月) 12:30:14
答えられない馬鹿が何言っても駄目だよ。
372359:2006/02/13(月) 12:31:40
そろそろ止めてくれませんか?
373359:2006/02/13(月) 12:34:08
ヤダ
1000まで粘着する
374359:2006/02/13(月) 13:06:36
よし、ここからは全員359で発言しよう。
本人もなんとなくかしこくなったような気がするだろうし。
375359:2006/02/13(月) 13:09:31
おまえらより俺のほうがずっと頭ええっつーの。
376359:2006/02/13(月) 13:10:29
すみませんちょっとうんち漏らしました
377359:2006/02/13(月) 13:19:41
答えられないくせにうんちまで漏らすか。最低だな。
378359:2006/02/13(月) 13:31:27
だめだ、頭悪そうなのが本人だと特定できてしまう。
379359:2006/02/13(月) 13:39:51
分かるようにしてるのがわからんとはあいかわらずアホだな
380359:2006/02/13(月) 13:41:50
ちなみに貴方はどれですか?
381359:2006/02/13(月) 13:48:50
こんなことしてると本物はとっくにいなくなっているという説が有力。
382359:2006/02/13(月) 14:18:47
もう( ゚д゚)アキタヨ・・・
383デフォルトの名無しさん:2006/02/13(月) 14:19:56
そろそろ止めるか
384デフォルトの名無しさん:2006/02/13(月) 14:21:06
クライアント側でパスワードをハッシュで保存とは、考えもしなかった!
385デフォルトの名無しさん:2006/02/13(月) 14:21:19
386デフォルトの名無しさん:2006/02/13(月) 14:38:46
下のtestプロシージャを呼ぼうとしたところで

"共通言語ランタイムが無効なプログラムを検出しました。"

ってなエラーが出るようになってるっす。

Private Sub test()
Dim Dc(1) As Decimal

For Dc(0) = 1 To 100
Debug.Print(Dc(0))
Next
End Sub

Dc(0)を単純変数に置き換えたりDcの型をLongにしたら上手くいくのに
なんでか疑問でつ

ForのカウンタでDecimalの配列変数使っちゃだめなんての
どこかで見かけたりしてませんでしょうか?
387デフォルトの名無しさん:2006/02/13(月) 15:21:30
例外メッセージぐらい書こうな。
388デフォルトの名無しさん:2006/02/13(月) 15:38:29
と書いてから試したら本気でそれだけぐらいしか情報無いのな。悪かった。
ま、バグに近い仕様だねコレは。
文句はMSのバグレポートへ。
// いちいちFor...Nextの条件判断程度にメソッド呼び出しとはおもわなんだ
389359:2006/02/13(月) 15:41:34
>>388
あいかわらず馬鹿だな。おまえとか。
390デフォルトの名無しさん:2006/02/13(月) 15:43:58
VB6の仕様であれば、Forのカウンタに配列変数はNGです。
VB.netの仕様には特に明記ないっぽい(2005のヘルプ)

ただ・・・これも普通に使わないよな。w
391デフォルトの名無しさん:2006/02/13(月) 15:47:17
>>390
> VB6
試した
Private Sub Form_Load()
Dim i(0 To 0) As Long
For i(0) = 0 To 100
Debug.Print i(0);
Next
Debug.Print
Debug.Print i(0)
End Sub

ちゃんと動いた
.NETの方はわからんが、逆アセしてみれば何かわかるのではないかと。
(Decimalのaddとか呼び出しているのかな?)
392386:2006/02/13(月) 16:19:58
>>387-391
皆様、どうもありがとうございました。

VB6からの移行作業中なのですが、元々のコードでは各種使い回し用
として(大は小を兼ねる的な考えで)Currency配列がPublicで用意されていたんで、
普通はやらないようなコードを書いていたみたいです

VB6の時代からダメだということ(サービスで動作していただけなのか?!)
なんで、すっぱりあきらめてまっとうに配列をカウンタにつかわず、
ついでに変数のサイズを見直し、プロシージャレベルの変数に置き換える
ことにします。確認めんどくせぇけども、これも仕事じゃて。
393Basic:2006/02/13(月) 16:26:41
Visual Basic 2005で
Dim DialogRet As Integer
のDialogRetってどう変えればいいの?
394デフォルトの名無しさん:2006/02/13(月) 16:27:54
>>393
マルチ
395デフォルトの名無しさん:2006/02/13(月) 16:32:58
マルチってナンジャイケ
教えてください
ボーソ
396デフォルトの名無しさん:2006/02/13(月) 16:35:37
>>391
(0 To 0)とか意味わかんね
397デフォルトの名無しさん:2006/02/13(月) 16:35:56
>>393
DialogReg_t As Dim Integer
みたいに_tってつけるてDimの位置変えるだけなんだけど
こんなことも知らないの?
398デフォルトの名無しさん:2006/02/13(月) 16:38:41
>>393
巣に帰れ
399デフォルトの名無しさん:2006/02/13(月) 17:01:02
ふーん
そんなことしてつよ
あんたらあほ?
400デフォルトの名無しさん:2006/02/13(月) 17:02:27
>>399
この独特の雰囲気は何だ?
401デフォルトの名無しさん:2006/02/13(月) 17:03:02
>>397
てゆーかできないじゃん
あんたら何言ってんの?
402デフォルトの名無しさん:2006/02/13(月) 17:04:52
*デフォルト動作
質問が意味不明なら回答も意味不明になります
403デフォルトの名無しさん:2006/02/13(月) 17:07:26
>>393
勝手に変えちゃえば?
何したいのかわかんないけど・・
404デフォルトの名無しさん:2006/02/13(月) 17:11:07
できないよぉ
宣言されてないて言ってましゅる
405359:2006/02/13(月) 17:11:24
相変わらず役に立ってないみたいだねw
406359:2006/02/13(月) 17:23:51
そんなに自分を責めるなよ。
407デフォルトの名無しさん:2006/02/13(月) 18:12:43
>>396
君は何を言ってるんだね?
408デフォルトの名無しさん:2006/02/13(月) 18:27:07
WMI の Win32_ScheduledJob を使ってサーバにタスクを追加する
処理があるのですが、WMIで追加したタスクの実行アカウントは
"NT AUTHORITY\SYSTEM"になり、サーバ上で動きませんでした。
そこで実行アカウントを変更できないかと調べてみたのですが、
どうも無理そうだとの結論に至ったのですが、
やはり実行アカウントをタスク追加時に変更するのは不可能なのでしょうか?
あと、その過程でコマンドラインからはSCHTASKSで実行アカウントを
変更できるというのはわかったのですが
この場合はこのコマンドをshellコマンドでクライアントから
叩けばいいということでしょうか?
既存のソースを作った人がいないので出来ればWMIは触りたくないのですが
やはりWMIはあきらめるしかないのでしょうか?
409デフォルトの名無しさん:2006/02/13(月) 18:46:29
WMIじゃ無理だね。
コード上でやるならITaskその他諸々の激しく面倒なCOMの定義と操作が必要だし。
schtasksを呼ぶのが現実的かな。
.NETではProcessクラスがShell関数に取って代わる。
410デフォルトの名無しさん:2006/02/13(月) 22:49:54
ASP.NETですが、ログイン時の方法について教えてください。
お店IDと個人IDがあり、お店IDでログインし、その後個人IDで再度ログインする事って
可能なのでしょうか?
無意味な事と思われるかもしれませんが、可能であればちょっと幅が広がるので・・・
でもちょっと認証を調べて見ましたがやっぱ無理ですかね?
411デフォルトの名無しさん:2006/02/13(月) 22:55:53
意味不明すぎ。
412359:2006/02/13(月) 22:57:57
少しは俺を見習って質問のレベル上げろよw
413359:2006/02/13(月) 22:59:23
>>359
いい加減うざいよ
414410:2006/02/13(月) 23:05:57
やっぱり意味不明だよね
仕様を考え直します
415デフォルトの名無しさん:2006/02/13(月) 23:24:33
たまに基地外が寄生するよね。
VBのすれって。
何が問題って基地外が自覚ないことだな。
>>412さんよ。
416デフォルトの名無しさん:2006/02/13(月) 23:47:44
>>414
そのお店の顧客IDを持っているってことは、お店に入店する権限が
あるとも判断できるしね。
417デフォルトの名無しさん:2006/02/14(火) 02:22:10
418デフォルトの名無しさん:2006/02/14(火) 09:56:05
>>409
やはり無理でしたか、回答ありがとうございました。
schtasksで行うようにします。
419デフォルトの名無しさん:2006/02/14(火) 22:21:38
以前、ユーザーIDとパスワードの保存について質問したものですが・・・
その後「暗号化」してiniファイルに保存することにしました。
そこで>>331さんが教えてくれた
ttp://dobon.net/vb/dotnet/string/encryptstring.html
を参考にして作成しようとしているのですが、「ResizeBytesArray」について
ヘルプを探してもぐぐっても何も出てきません・・・。
このサイトの自作関数かな??と思って調べてもみましたが、見つけれませんでした。
暗号化Keyを8バイトに変換する為の関数かと思いますが、どなたか教えていただけないでしょうか?
長文&おバカで申し訳ありません
420最凶VB厨房:2006/02/14(火) 22:23:42
''' <summary>
''' 共有キー用に、バイト配列のサイズを変更する
''' </summary>
''' <param name="bytes">サイズを変更するバイト配列</param>
''' <param name="newSize">バイト配列の新しい大きさ</param>
''' <returns>サイズが変更されたバイト配列</returns>
Private Shared Function ResizeBytesArray(ByVal bytes() As Byte, _

URL先のこれはなんだ?
421デフォルトの名無しさん:2006/02/14(火) 22:24:25
>>419
おい、ちゃんとリンク先くらい示せ
ついでに書けば、resizebytesarray()はちゃんと定義されていたぞ
422デフォルトの名無しさん:2006/02/14(火) 22:26:22
恥ずかしい・・・
本当に申し訳ありませんでしたーーーーー
そして、バカな質問への回答ありがとうございました。
423デフォルトの名無しさん:2006/02/15(水) 00:22:07
VB.NETはDDEをサポートしなくなったらしいんですが、
それってDDE関連のAPIを直接呼び出しても通信できないんでしょうか?
それともラベルコントロール等でDDE関連のプロパティが消えただけで、
APIを使えば普通にDDE通信が使えるんでしょうか?
424デフォルトの名無しさん:2006/02/15(水) 00:23:39
そりゃできるに決まってる。
DDEの実体はWindowsメッセージのやりとりにすぎないわけだからな。
425デフォルトの名無しさん:2006/02/15(水) 00:32:16
そうですよね
別にDDEのAPIそのものが消えたわけじゃないので
VB6で出来て.NETでできないはずはないと思ってたんですが、
以前に別板でそのアプリとVB.NETでDDE通信やろうとした人が
DDEのコールバック関数の登録に難儀してたみたいだったので、
もしかしたらできないのかなと不安になったんです
とりあえず試してみます
426デフォルトの名無しさん:2006/02/15(水) 00:43:41
あのさ、StrConvで「¥」円マークなんだけど、
 半角¥マーク→全角¥マークへの変換ができない(Wide を指定)
 全角¥マーク→半角¥マークへの変換はできるNarrow を指定)
これって、そういうもの?
半角¥マークって、どうやったら全角に変換できるのかな。
427デフォルトの名無しさん:2006/02/15(水) 00:46:30
>>426
strconv()はそういうものだった様な・・・他にもあったような気がするけど忘れた。
replace()で代用できない?
428デフォルトの名無しさん:2006/02/15(水) 00:54:33
変換できたわけだが。OSによるのかね。(うちはXPPro SP2)
ttp://fukkey.dyndns.org/pins/acc/020228/68956.html
というのもあるんだが。
429デフォルトの名無しさん:2006/02/15(水) 00:57:43
うおー
VB6と間違ったぞー!!
・・・逝ってくる
430デフォルトの名無しさん:2006/02/15(水) 03:55:08
>>425
DDEを使わない方向にもっていくのほうがいいだろ
431デフォルトの名無しさん:2006/02/15(水) 07:56:52
VB6.0でクラスをコピーする方法を教えて下さい
432デフォルトの名無しさん:2006/02/15(水) 08:00:08
つCopyMemory
433デフォルトの名無しさん:2006/02/15(水) 08:24:04
>>431
shallowcopyとdeepcopyのどちらがお望み?
434デフォルトの名無しさん:2006/02/15(水) 09:11:25
>>431
つゼロックス
435デフォルトの名無しさん:2006/02/15(水) 09:59:26
【OS】WinXP Pro SP2
【開発環境】Visual Studio 2005
【言語】VB.NET
【質問の内容】

質問!
簡単にいうとExplorerの左側ペインのフォルダツリー表示がしたいのです。
で、TreeViewコントロールにNodeを追加していくってところまではOKなんだけど
マイドキュメントとかデスクトップとかってOSによってアイコン違うでしょ?CDドライブの
ディスクに入ってるIconが表示されたり。
あれってどっから引っ張ればいいのかおしえてけれ〜
436435:2006/02/15(水) 10:47:18
My.Computer.FileSystem.SpecialDirectories
あたりで特殊フォルダのパスは抜けるのは解ったのだけど
システムリソースのアイコンリソースが抜けない・・・・
437デフォルトの名無しさん:2006/02/15(水) 15:48:34
CrystalReportについての質問(VS2003に同梱のもの)なんですけど、
ちょうどいいスレが見つからなかったのでここで質問させていただきます。

CrystalReportでQRコードの出力を検討しているんですが、
なにかオススメなコンポーネントとかあります?
できればAccessのレポートでも使えればなお良しなんですけど。

QR Code Font Kit - DLL/.NET/Java Class - V4.2
ttp://www.componentsource.co.jp/products/515643/13181/index.html

こういうのは見つけたんですけど、ご使用なさった方がいらっしゃれば
ぜひご意見をお聞かせください。
438デフォルトの名無しさん:2006/02/15(水) 17:43:49
>>437
板ガイドラインくらい見ろよ

すれ立てるまでもない質問はここで 第73刷
http://pc8.2ch.net/test/read.cgi/tech/1135694517/
439437:2006/02/15(水) 18:15:08
>438
失礼しました。
440デフォルトの名無しさん:2006/02/15(水) 20:02:47
初心者におすすめの本ありませんか?

http://www.amazon.co.jp/exec/obidos/ASIN/4797327502/qid=1139999382/sr=1-4/ref=sr_1_10_4/250-4858133-9269028
↑これ買おうと思ったんですが、結構高いんで、その前にここで質問させてもらいました。

書籍スレに行ってもVBの本はあまり紹介されてなくて・・・・

よろしくお願いします。
441デフォルトの名無しさん:2006/02/15(水) 20:47:51
紹介されてなくてって、そこで聞いたのか?
442デフォルトの名無しさん:2006/02/15(水) 20:54:54
>>440
まぁ、アマゾンにはレビューと言う機能があって書評があるから。
一件あるようだから、それを読んで買うか買わないかは自分で決めてくれ。
443デフォルトの名無しさん:2006/02/15(水) 21:48:38
.NET自体が初心者にお勧めできないと思うのは俺だけだろうか。。
つーか昔は物事シンプルでよかったなあ。
444デフォルトの名無しさん:2006/02/15(水) 22:24:46
>>440
プログラム自体についても素人なら
http://www.amazon.co.jp/exec/obidos/ASIN/489100343X/qid=1140009523/sr=1-16/ref=sr_1_2_16/249-8080486-0224343
とかよかったです。
プログラムの基本を知りながらVB.NETの操作方法を学ぶ感じです。

ちなみに2003を使用する事を前提にしているので、2005を使うのであれば、この本はあまりお勧めできません。
445デフォルトの名無しさん:2006/02/16(木) 08:47:49
スレ違いを甘やかすんじゃねぇよバカ
446デフォルトの名無しさん:2006/02/16(木) 09:07:47
複数プロジェクトで共有のソースファイルディレクトリを
作成したいのですが、プロジェクトディレクトリ以外の
ディレクトリにリンクを張ることはできますか?
447デフォルトの名無しさん:2006/02/16(木) 09:47:33
非同期サーバーソケットの例
http://msdn2.microsoft.com/ja-jp/library/fx6588te.aspx

これを参考にプログラミングしているのですが
待ち受け状態をキャンセルする方法はないでしょうか?
listnerソケットを無理やりクローズしても例外エラーになってしまいました。
448デフォルトの名無しさん:2006/02/16(木) 10:16:21
>>447
MSDNのCloseメソッドの所は見たの?
449デフォルトの名無しさん:2006/02/16(木) 13:27:02
DataGridを使った一覧画面から、修正ボタンで選択したレコードを編集する画面を作りました

編集画面で値を更新した場合、更新内容が自動的に一覧画面に反映されないので、
一覧画面でFillを実行してデータを再取得していますが、
この方法だと、DataGridのカーソルが移動してしまうのが困ります
どうすれば再表示させた後、カーソルを移動させずに済むのでしょうか?
450デフォルトの名無しさん:2006/02/16(木) 14:07:28
>>449
DataGridで一行を選択状態にする→修正ボタンを押すとその内容が
別途表示される→値を個別に編集するって流れなのか?

編集後のデータを書き戻す対象が不明だな。
インメモリのDataSetに対して行っているなら、バインドされてい
るDataGridも表示がすぐに切り替わると思うんだが。Fillで再取得
してるってことは、SQLで直接DBに更新をかけているのか?

DataGridの選択行位置を維持したいだけなら、CurrentRowIndex
プロパティをどこかに記録しておいて、Fill後に戻せばいいじゃん。
451デフォルトの名無しさん:2006/02/16(木) 17:18:08
基本的すぎて恥ずかしいんですが、インスタンス変数名とプロパティ名ってどうやってつけてますか?

あるクラスのプロパティでBackColorいうパブリックプロパティ名があるとして
そのインスタンス変数名ってどんな感じでつけてますか?
ガイドラインを読むとプライベートなインスタンス変数名は小文字で次の単語は大文字で
書くような事がかかれて板と思うんですが・・・
自分はm_backColorと付けているんですが、おかしいですよねぇ

どなたかエロイ人アドバイスおながいします。
452デフォルトの名無しさん:2006/02/16(木) 17:23:50
言ってることがわけわかんね
BackColorプロパティのインスタンス変数ってなんじゃい
453デフォルトの名無しさん:2006/02/16(木) 17:28:10
Privateな変数名に対してはMSはガイドライン示してないよ。
好きに付けろって事。どうせ他人(クラスの利用者)には見えないんだから。
仕事でやる分にはこの辺はその会社やグループの縛りがあるだろう。

私はm_プリフィクス+Camel記法で付けてるな(奇しくも451と同じだ)。
大文字小文字区別してくれたら楽なんだけどな。
454デフォルトの名無しさん:2006/02/16(木) 17:28:20
ワロス
455451:2006/02/16(木) 17:28:51
いや根本的に俺まちがってる?

Public Class ChartCtl
Inherits System.Windows.Forms.UserControl

Private m_backColor As Integer

  〜〜〜〜省略

Public Property BackColor() As Integer
Get

Return BackColor

End Get
Set(ByVal Value As Integer)

m_backColor = Value
  ↑
         この変数をインスタンス変数といってるんだが・・・

End Set
End Property
456451:2006/02/16(木) 17:31:35
>453
どうもありがとうです。

>Privateな変数名に対してはMSはガイドライン示してないよ。
もれの解釈が間違ってたのかな、そーですか。
457デフォルトの名無しさん:2006/02/16(木) 17:44:55
>>455
Javaのサーブレットでは、それはインスタンス変数って言うね
458451:2006/02/16(木) 17:53:10
>452
なんかつっこみだけ入れてお仕舞いですか?

モレが間違ってるんですか?

意味がわかんないとは何でなんですか?
459デフォルトの名無しさん:2006/02/16(木) 17:57:10
>>458
君の書き方だと
class hoge
 public BackColor as integer
end class

dim iHoge as new hoge

hoge.BackColor

の.BackColorをm_BackColorって書くの?
見たいに読めるから
460デフォルトの名無しさん:2006/02/16(木) 18:28:07
>>458
あぁすまん、全然見てなかったわ

で、JavaServletじゃないよ?
VBよ?
インスタンスってなにかわかってる?

そりゃただのメンバ変数じゃろうが
461デフォルトの名無しさん:2006/02/16(木) 18:49:57
VB6の話だけど、
プライベートメンバはprivate修飾した一つの構造体の中に全部つっこんでおいてる

private type PrivateData
pd_name
pd_age
end type
private pd as PrivateData

んでpd.pd_nameでアクセスしたり。

クローン作るときもfriendなメソッドだとそのままPrivateData渡せるし。
462デフォルトの名無しさん:2006/02/16(木) 19:01:12
>>455
MSDNではフィールドと呼んでいるね
463デフォルトの名無しさん:2006/02/16(木) 19:02:18
>>461
なんの話だよ。。
っていうか、自己陶酔してるとこ悪いけど君頭悪いと思うよ。
アクセス制御の意義が根本的にわかってない予感・・・。
464デフォルトの名無しさん:2006/02/16(木) 19:02:49
>>463
kwsk
465デフォルトの名無しさん:2006/02/16(木) 19:04:44
>>451、462は何か基本的な知識が抜けているような。。
急いでSharedをキーワードにMSDN漁った方がいいんじゃ
466デフォルトの名無しさん:2006/02/16(木) 19:36:21
>>465
どういう意味?
インスタンス変数って普通に言うでしょ。
467デフォルトの名無しさん:2006/02/16(木) 19:51:48
こ の 場 合 言 い ま せ ん
468462:2006/02/16(木) 19:54:19
>>465
MSDNを漁ってみたところ、Sharedありは共有フィールド、無しはインスタンスフィールドと呼んでいました。
469デフォルトの名無しさん:2006/02/16(木) 20:00:15
.netのIntegerはプリミティブ変数だよ
470デフォルトの名無しさん:2006/02/16(木) 20:05:34
似たようなものだが型値と呼んでおこう。
471466:2006/02/16(木) 20:14:13
インスタンスごとに個別に確保される変数 = インスタンス変数(インスタンスフィールド)
static(vbではSharedかな?)な変数 = クラス変数(クラスフィールド)

これであってるよね?
472デフォルトの名無しさん:2006/02/16(木) 20:52:25
>>471
勉強になった。
473デフォルトの名無しさん:2006/02/16(木) 22:56:40
VBって整数型で3/2=2になるんだな
予想外の仕様だった
474最凶VB厨房:2006/02/16(木) 23:11:38
>>466
問題なし。
475デフォルトの名無しさん:2006/02/16(木) 23:20:51
>>473
VB6だと / は実数に拡張されるからそうなりますね。整数同士なら \ で割り算ですな。
この辺はVB.NETでは変わった?
476デフォルトの名無しさん:2006/02/16(木) 23:39:39
.NETだと分子分母両方がそれぞれDecimalに変換されてから除算、
結果もDecimalだったような。。
なんでこんな無駄なことするんだろね。
477デフォルトの名無しさん:2006/02/16(木) 23:45:23
整数型同士ならDoubleに変換するだけだし、結果もDoubleだ。
何より整数同士の除算で結果も整数が欲しいのなら \ 演算子がある。
478デフォルトの名無しさん:2006/02/17(金) 00:37:53
VB.NETは「銀行丸め」じゃなくなったの?
479デフォルトの名無しさん:2006/02/17(金) 00:49:30
インスタンス変数の意味が通じないってどういうこった?
あんまり言語に依存する言い方でもないと思うが。
480デフォルトの名無しさん:2006/02/17(金) 00:50:57
プリミティブ変数というイメージの言い回しと値型とう言い方は
ちょっとニュアンスというかあらわす対象がちがうと思うぞ。
481デフォルトの名無しさん:2006/02/17(金) 01:15:52
そうだね。
C#やVB.NETはプリミティブ型を.NET Framworkの型値を使って実装していて
型値の別名なんだけど、言語的にはプリミティブ型(基本変数)という扱いでいい。
482デフォルトの名無しさん:2006/02/17(金) 01:22:09
そもそもプリミティブ型なる定義も曖昧な語句になぜ固執するのか
483デフォルトの名無しさん:2006/02/17(金) 01:22:47
>>481
あれはエイリアス(別名)じゃなかったか?
delegeteクラスはコンパイラ側がグチャグチャやってそうだが・・・
484デフォルトの名無しさん:2006/02/17(金) 09:16:06
テキストファイルから込みこんだ20万件のデータを
一番早くSQLサーバに新規書き込みできるコマンドは何ですか?
485デフォルトの名無しさん:2006/02/17(金) 09:20:57
地道に単純にやること。
込んだデータをほぐして自作クラスに入れて、Insert文発行じゃないの?
DataAdapterは使わずにExecuteかストアド。
486デフォルトの名無しさん:2006/02/17(金) 09:25:25
SOAP
487デフォルトの名無しさん:2006/02/17(金) 11:00:25
VB.NET2005でクリスタルレポートの付いているのエディションは
どれになるでしょうか?
488デフォルトの名無しさん:2006/02/19(日) 22:51:45
VB.NET+MSDEで開発しています。
データリーダーを使用して取得した列の内容がNullかどうかを判断する
条件がわかりません。
Dim Cmd As SqlClient.SqlCommand
Dim dr As SqlClient.SqlDataReader
----中略----
dr = Cmd.ExecuteReader()
dr.Read()
If dr("列名") Is Not Null Then
       ~~~~~~~~~~~
       ↑この部分
489デフォルトの名無しさん:2006/02/19(日) 22:55:27
IsDBNull 関数
SqlDataReader.IsDBNull メソッド
.Equals(DBNull.Value)
490デフォルトの名無しさん:2006/02/19(日) 23:02:44
ありがとうございます。
解決しました
491七資産:2006/02/19(日) 23:53:12
Richtextboxで、最初に開いたファイルの内容と閉じるときのファイルの内容を比較して変わっていたら
「保存しますか」などのダイアログを表示して上書き保存させるにはどうしたらよいのでしょうか。

私なりにいろいろググッたりヤフったり、MSDN探してみたりしましたが、見つからないので質問させていただきました。
492デフォルトの名無しさん:2006/02/19(日) 23:55:12
いくつかの工程に分けられそうだが、どこが分からないんだ?
493デフォルトの名無しさん:2006/02/20(月) 00:02:25
>>491
_hogeに読み込んだ時のデータを保存しておいて、

if Richtextbox1.text <> _hoge then

じゃあかんの?
494デフォルトの名無しさん:2006/02/20(月) 00:05:37
ちょっとメモリ無駄かな…
一度でもchangedイベントが発生したかどうかをチェックしたり、文字列相手ではなくハッシュ値相手にすればいいかと。
495デフォルトの名無しさん:2006/02/20(月) 01:23:39
496デフォルトの名無しさん:2006/02/20(月) 07:11:43
VB.NETでもsendmessageによるユーザーメッセージを使った
アプリケーション間通信はメジャーな手段ですか?
497七資産:2006/02/20(月) 13:24:47
ありがとうございます。教えてくださったことを重ね合わせてなんとかできました。
感謝しています。

で、続いての質問なんですが、ファイルが関連付けられて(その自分が作ったプログラムに)エクスプローラから
ダブルクリックされたときに拡張子がたとえば.2chならファイルの内容をrichtextbox1に表示させる。
というのは出来るのでしょうか。おそらくコマンドラインがファイル名だと思うのですが、
コマンドラインのあそこでファイル名を指定するほうほうがわかりません。
これも先の理由でご教授いただけたら幸いです。
498デフォルトの名無しさん:2006/02/20(月) 13:33:24
VB.NET2003なんですが
System.IO.Directory.GetFiles(str)
のstrに全角の入ったフォルダ名を渡すと
ハングアップしてしまいます。何か回避策はありますか?
499デフォルトの名無しさん:2006/02/20(月) 13:48:55
時計作ったんだが
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label1.Text = Format(Now, "hh:mm:ss")
End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Timer1.Enabled = True
End Sub
↑でおk?
一応Button5をクリックするとLabel1に時刻が表示されるようにしてある
本当はフォームを開いた時点でLabel1に時刻を表示したいんだがVBの本(.netじゃない)
を見るとボタンを押すやつしか書いてなかったからこれしか作れんかった・・・
500デフォルトの名無しさん:2006/02/20(月) 13:58:17
VB.NET2005の my.settings なんですが・・・。
my.settingsに保存した設定を読み出すには、プロパティ一つ一つについて、たとえば

Me.Height = my.settings.Height
Me.Width = my.settings.Width

といったふうに記述していく必要があるんでしょうか? これらをいっぺんに適用する
メソッドってないでしょうか。Reloadがそれかと思ったんですが、適用されないようです。
501498:2006/02/20(月) 14:20:04
vbnullcharが入ってました。スマソ
502デフォルトの名無しさん:2006/02/20(月) 16:27:00
>>499
Timer1のEnabledプロパティを最初からTrueにするか
Timer1.Enabled = TrueをFormのLoadイベントに記述する
503デフォルトの名無しさん:2006/02/20(月) 16:59:24
テキスト入力時IMEのON/OFFを自動でする
VB6でいうところの、「Text1.IMEMode = 3」
をVB2005で実現したいのですが適当なものがみつかりません。

VB2005ではどうやってすればいいですか?


504七資産:2006/02/20(月) 17:25:49
>>503
プロパティ(通常だと画面右下)の中に「ImeMode」というのがあるのでそこで。
505デフォルトの名無しさん:2006/02/20(月) 17:40:28
>>504
すんません、言葉足らずでした。
Webベースでの方法をお願いします。
506デフォルトの名無しさん:2006/02/21(火) 13:02:40
VB.NETのWindowsFormで開発中です。

現在時刻を1分毎に取得して、リストボックスに追加しています。
この追加した時刻をある時間帯で色分けしたいのですが、リストボックスのitem単位に
色指定する事は出来るのでしょうか?

よろしくお願いします。
507デフォルトの名無しさん:2006/02/21(火) 13:21:18
>>506
っ [オーナードロー]
508デフォルトの名無しさん:2006/02/21(火) 13:22:55
オーナードローすれば書き分けることはできる。
509506:2006/02/21(火) 13:32:57
>507
>508
ありがとうございます。調べてみます。
510デフォルトの名無しさん:2006/02/21(火) 13:40:17
過去ログ読めないので既出だったら申し訳ないです。
デコンパイル対策としての難読化についてみなさんはどんなツールでやっていますか?
個人ユーザーと企業ではお金のかけ方も違うと思いますが、どの辺りが妥当なのかの、
基準として参考にさせていただきますので教えてください。
511デフォルトの名無しさん:2006/02/21(火) 14:35:50
512デフォルトの名無しさん:2006/02/21(火) 14:42:19
個人ユーザだから全く気にしない。
寧ろソース公開。
俺の汚いソースを読めるもんなら読んでみろ。
513デフォルトの名無しさん:2006/02/22(水) 00:02:57
以前>>488でNull値について質問させていただいた素人ですm(._.)m
今度はtimestampで定義した列の値を取得してテキストBOXに表示したいのですが
どうやって型変換すれば良いのか分からず、悩んです。
今回も前回同様データリーダを使用して、列の値を取得しているのですが、どなたか
教えていただけないでしょうか?
514デフォルトの名無しさん:2006/02/22(水) 00:09:54
VB.NETによるエクセル操作の基本的な質問です。
VB.NET 2003  Excel2000 という環境です。

Dim xlApp As Excel.Application
Dim xlBooks As Excel.Workbooks
Dim xlBook As Excel.Workbook

xlApp = New Excel.Application
xlBooks = xlApp.Workbooks
xlBook = xlBooks.Open(ファイル名)


このような感じで、起動していないエクセルに対しては操作はできるのですが、
オープンするエクセルファイルがすでに立ち上がっていた場合、うまく動作しません。

対象のエクセルファイルがすでに立ち上がっている場合、どのようにすればよいでしょうか?

515デフォルトの名無しさん:2006/02/22(水) 00:31:48
516513:2006/02/22(水) 00:55:20
>>515
ちょっと見た感じ、理解するのに時間がかかりそうだけど・・・
ありがとう頑張って理解してみます
517デフォルトの名無しさん:2006/02/22(水) 02:33:24
FormA から FormBを呼び出す書き方教えてください
dim fb as new FormB
fb.show
↑の書き方だとめんどうなので
いきなりFormB.Showとできるやり方教えてください
518デフォルトの名無しさん:2006/02/22(水) 02:35:27
すんな このVB6以前から頭を切り換えることができねぇ化石人
519デフォルトの名無しさん:2006/02/22(水) 02:58:37
>581 ありがとう。目が覚めたよ
めんどくさい方法で実装するぽ
520デフォルトの名無しさん:2006/02/22(水) 04:56:20
>>513
MSDEのtimestamp型はrowversionと呼ばれるもので日付時間とはまったく関係がない。
読み取る場合はvarbinary(8)の形式で戻ってくるから目に見える形式で表示したいなら
HEX表示にでもするべし。
521デフォルトの名無しさん:2006/02/22(水) 10:03:42
>>519
2005なら6.0風に扱えるらしいよ。
2003への移行が思うように進んでないから、歩み寄ったっぽい。
522デフォルトの名無しさん:2006/02/22(水) 13:02:31
>>521
あれは改悪だと思う。
VB6の頃でさえ、暗黙のインスタンスの弊害が多かったのに。
523デフォルトの名無しさん:2006/02/22(水) 13:07:47
partialされている部分に暗黙の宣言が書かれているはずだから、
その部分を削れば良い
524デフォルトの名無しさん:2006/02/22(水) 14:49:30
designer.vb には特に見当たらなかったけど?
それに、Partial化されたdesigner.vbって、編集してもその部分破棄されると思うし。
525デフォルトの名無しさん:2006/02/22(水) 16:37:13
関連質問

dim fb as new FormB
fb.show

で新しく開いたフォームBを×ボタンおして閉じたとする。
で、fbのインスタンスって呼び出し元で意図的に破棄する必要あるの?
それとも放っておいても適切なタイミングで破棄してくれてんのかな?

どうも×ボタンおしてフォーム閉じただけだと、そのタイミングでは
FormBのデストラクタは駆動しないように見えたので。
526デフォルトの名無しさん:2006/02/22(水) 16:44:41
Show のときは Close 呼んだときに自動的に Dispose も呼ばれる。

大抵の IDisposable なものはデストラクタ定義しちゃ駄目。
Protected Dispose をオーバーライドする(もちろん MyBase.Dispose も呼び出す)。
527デフォルトの名無しさん:2006/02/22(水) 17:28:57
デストラクタはGCが走ったときに呼び出されるもので、
Closeを呼んだりXボタンで閉じたときはDispose()が呼び出される。
Dispose(bool) に Debug,WriteLineを入れてみるとわかる。
528デフォルトの名無しさん:2006/02/22(水) 17:39:08
>>526-527
つまり呼び出し元で、改めて「インスタンス破棄」ってこと
しなくても良いって事かな?
×ボタンでウィンドウ閉じたあとは放っておいてOK?
529デフォルトの名無しさん:2006/02/22(水) 17:46:42
まあそもそも GC のもとではインスタンス破棄と言うこと自体が明示できないけどな。

アンマネージド資源の解放は Dispose で行われ、Show で開いたフォームは閉じるときに自動的に Dispose が呼ばれる。
あとは有効な参照さえなくなっていれば GC がそのうちインスタンスを片づける。

大体、Show で開いたらモードレスなんだから呼び出し側があれこれするタイミングが難しいだろう。
530デフォルトの名無しさん:2006/02/22(水) 17:55:13
メモリリークなんて気にしなくていいよ
531デフォルトの名無しさん:2006/02/22(水) 18:14:46
>>529-530
タコな質問に答えてくれてありがd。

>大体、Show で開いたらモードレスなんだから呼び出し側があれこれするタイミングが難しいだろう。
まさにこれで悩んでた。定石ではどうすんのかなって。

>メモリリークなんて気にしなくていいよ
育ちがANSI Cだからどうしても気になっちゃうんだよね。
VBとか見えない(隠れてる)部分多くてとまどうけど、すごい便利なのね。
My.Settingsとか便利sg。
532531:2006/02/22(水) 18:18:38
あぁそうか、GC=ガベージコレクトか。
便利だな。Windowsプログラムって。
533デフォルトの名無しさん:2006/02/22(水) 18:20:43
WindowsってかVBがすごい!ヽ(´ー`)ノマンセー
534デフォルトの名無しさん:2006/02/22(水) 18:36:56
>>533
VBというか.NET言語
535デフォルトの名無しさん:2006/02/22(水) 18:50:51
その中でもVBが最優秀
536デフォルトの名無しさん:2006/02/22(水) 18:53:21
いやさすがにそれは
537デフォルトの名無しさん:2006/02/22(水) 22:34:27
今までVB馬鹿にしてたけどメチャクチャ簡単で楽
もっと早く使っていればよかった
538デフォルトの名無しさん:2006/02/22(水) 22:54:28
重くてやってらんねぇけどな
539最凶VB厨房:2006/02/22(水) 23:02:31
重いよな。楽だけど。
540デフォルトの名無しさん:2006/02/22(水) 23:21:56
UWSCマクロからVBを勉強中
WEBにアクセスしてIDを自動入力がどうしたらいいやら。。。。
ちなみにUWSCでは、
IE.document.forms[0].Logon.value=user_id
とかでできていたんだが。。。。
VBのやり方教えてください。
初歩的でスマソ
541デフォルトの名無しさん:2006/02/22(水) 23:30:05
そのVBのバージョンによって答えが変わる可能性があるが。
542504:2006/02/22(水) 23:51:39
バージョンというのか、無償のvisualbasic2005expresseditionを利用中
543デフォルトの名無しさん:2006/02/22(水) 23:58:33
Dim ie = CreateObject("InternetExplorer.Application")
あとは変わらんだろ こういうのにはVBは便利だ
544540:2006/02/23(木) 00:17:04
thx
結構にているんだ。
少しやってみる
545500:2006/02/23(木) 01:28:48
>>531
>>500でも質問したんですが、my.settings の使い方を教えてください! 下記の
やり方ですと、うまくはいくんですが、一つ一つ設定しなければならず、バインドできる
のでなにか自動的に設定を適用/保存してくれたりするのではと考えているんですが・・・。


VB.NET2005の my.settings なんですが・・・。
my.settingsに保存した設定を読み出すには、プロパティ一つ一つについて、たとえば

Me.Height = my.settings.Height
Me.Width = my.settings.Width

といったふうに記述していく必要があるんでしょうか? これらをいっぺんに適用する
メソッドってないでしょうか。Reloadがそれかと思ったんですが、適用されないようです。
546デフォルトの名無しさん:2006/02/23(木) 02:15:45
>>545
何でバインディングじゃ駄目なの?
547デフォルトの名無しさん:2006/02/23(木) 03:01:13
>>546
レスありがとうございます〜

バインディングはしています。。。コントロールのプロパティの、「ApplicationSettings」の
Propertyを押し、バインドしたいプロパティに新規作成したMy.settingsの変数を
割り当てています。具体的には、メインメニューのアイテムのCheckedプロパティの値を
保存するように指定しています。ApplicationSettingsの表示は、以下のようになって
います。

ApplicationSettings
 Property
 Checked [割り当てた変数名]

ApplicationSettingsの表示がこのようになっていれば、バインディングされていると
思いますがいかがでしょうか・・・。なにか間違っているでしょうか。バインディングされて
いると、設定の保存/適用が自動化されるんでしょうか?

548500:2006/02/23(木) 03:12:48
すいません、>>547の補足説明です。

プログラムが終了するとき、つまりメインフォームのClosingイベントにということですが、

 My.Settings.Save()

を記述し、プログラム開始時(メインフォームのLordイベント発生時)に、

 My.Settings.Relord()

を記述しています。>>547の設定とあわせてやっていますが、設定の自動的な保存あるいは
読み込みがうまくいかないようで、たとえば Checked = True の状態でプログラムを終了しても、
次回の起動時には Checked = False になってしまうというわけです。。。

549デフォルトの名無しさん:2006/02/23(木) 04:18:20
>>547-548
バグのような気がするけど、ToolStripMenuItemだとフォームのDesigner.vbに
バインディングに必要なコードが生成されないのが原因だね。
Setteingsからプロパティに値をセットするのとSettingsの自動保存はされているので
ToolStripMenuItemのCheckedChangedイベントで
My.Settings.Checked = xxxToolStripMenuItem.Checked
と書けば保存されるようになるよ。ReloadとSaveは必要なし。
550デフォルトの名無しさん:2006/02/23(木) 11:30:42
Public Sub HogeSub(hoge as IHoge)

上記のように引数をインターフェース型(IHogeがインターフェース)で宣言しているときに
hogeが参照しているオブジェクトの型をTypeオブジェクトで取得したいのですが、どのように
したらよいでしょうか。


551デフォルトの名無しさん:2006/02/23(木) 11:59:42
ドロップファイル名の取得についての質問があります。
環境はVisualStudio2005 Standardです。

DataFormats.FileDropを使用してドロップファイル名の取得を行ったのですが
ファイル名に全角文字が入っているとファイル名が正しく取得できません。
いろいろ試してみたところ、文字数=バイト数とみなしてファイル名を取得
しているようにみえました。
例)○123456.txtをドロップ→"123456.txt"を取得
  ×123456.txtをドロップ→"123456.tx"を取得
全角文字が増えると取得文字数も最後尾から減っていきます。

どうすれば全角文字を含むファイル名を正常に取得できることができますでしょうか?
552デフォルトの名無しさん:2006/02/23(木) 12:04:40
>>549
レスありがとうございました! 非常に助かります。

結局のところ、My.Settings による自動的なプロパティの設定はできませんでした(汗
保存はできているようですので、メインのフォームのLordイベントに

 Me.TopMost = My.Settings.zOrder
 ツールバーの表示ToolStripMenuItem.Checked = My.Settings.ToolbarCheck
 ステータスバーの表示ToolStripMenuItem.Checked = My.Settings.StatusbarCheck

という記述をして My.Settings の値を適用するようにしました。いろいろと試しているうち、
奇妙なことに、上の3行のコードのうちの一番上は必要なく、ちゃんとバインディングが効いて
いるようなんです。なぜ他のがダメなのか原因は分かりません・・・。

とにもかくにも、レスありがとうございました。勉強になりました m(_ _)m
553デフォルトの名無しさん:2006/02/23(木) 13:13:07
>551
すいません、自己解決しました。
e.Data.GetData(DataFormats.FileDrop, False)
→e.Data.GetData(DataFormats.FileDrop, True)
としたら出来ました。
554デフォルトの名無しさん:2006/02/23(木) 13:49:23
>>550
hoge.GetType()
555デフォルトの名無しさん:2006/02/23(木) 14:18:59
>>554

hoge as IHoge

のIHogeがクラスであればhoge.GetTypeでいいのですが
はなくインターフェースだとhoge.GetType()が使えないのですが・・・
556デフォルトの名無しさん:2006/02/23(木) 14:24:25
使える。インテリセンスに出るかどうかは知らんけど。
557デフォルトの名無しさん:2006/02/23(木) 14:29:52
>>556

'GetType'は'IHoge'のメンバではありません。となってビルドが通りませんでした。
何か設定とか必要でしょうか。
558デフォルトの名無しさん:2006/02/23(木) 14:39:04
すみません、環境を書いていませんでした。
OS:WindowsXp pro
開発環境:vs.net 2003

です。
559デフォルトの名無しさん:2006/02/23(木) 14:39:46
むお、VBだと本気でエラー出しやがんの。
DirectCast(hoge, Object).GetType()
560デフォルトの名無しさん:2006/02/23(木) 14:44:06
>>559
いったんオブジェクト型にキャストしてやればいいのですね。
ありがとうございました。
561デフォルトの名無しさん:2006/02/23(木) 15:05:28
強制再描写のコマンドってありますか?

winXP VB.NET
562デフォルトの名無しさん:2006/02/23(木) 15:08:22
コマンドって言うとデスクトップ全体を再描画するコマンドプロンプトの内蔵命令みたいだ。

Refreshメソッド辺りのことかね。
563デフォルトの名無しさん:2006/02/23(木) 15:12:07
>562
はい。別窓に表示してるグラフを
計算ループの中で
リアルタイムで新しくしたいのです。

Refreshですね!MSDN言ってきます。
564デフォルトの名無しさん:2006/02/23(木) 15:22:07
>>561

つ Invalidateメソッド
565デフォルトの名無しさん:2006/02/24(金) 01:26:36
それは強制再描画という表現に合わない。
566デフォルトの名無しさん:2006/02/24(金) 02:00:34
明らかに違うでしょ。
567デフォルトの名無しさん:2006/02/24(金) 11:58:46
Dim test() As Single
見たいな配列の中身を全部初期化したいのですが
何か良い方法ありませんか?

VB.NET winxp
568デフォルトの名無しさん:2006/02/24(金) 12:00:22
っ [ Array.Clear() ]
569デフォルトの名無しさん:2006/02/24(金) 12:11:17
>568
ありがとうございます。
570デフォルトの名無しさん:2006/02/24(金) 21:38:08
先生質問です!

ボタン表面の2色のグラデーションを
好みの2色とかに変えるには
どうすればいいのですか?

571デフォルトの名無しさん:2006/02/24(金) 21:39:31
画像で用意してからImage貼りすれば?
572デフォルトの名無しさん:2006/02/24(金) 21:46:57
>>570
つまり>>571は、bitmapのインスタンスでも作成して貼り付けろ、と暗に言いたかったのだとおもふ
573デフォルトの名無しさん:2006/02/24(金) 21:55:46
すみません、どうしても解決方法が分からないので、ご教授願います。

VB.NET2003とOracleで開発をしています。接続にはODP.NETを使用しています。
モーダルウィンドウにて、「ユーザーID」
「パスワード」「データーベース名」を入れて、「接続ボタン」を押すと、親ウィンドウが
開きます。親ウィンドウには、モーダルウィンドウにて入力した上記の値が渡されており、
その値を元に、「テーブル名一覧取得」ボタンを押すと、リストボックスにテーブル名の
一覧が表示されます。
そして、リストボックスに表示されたテーブル名をクリックすると、隣にある
データグリッドにクリックされたテーブルのレコード一覧を表示したいのですが
それができません。

ブレークポイントを設定して、テーブル名を格納した変数を見てみると
System.Data.DataRowViewとなっています。
System.Data.DataRowViewではなくて、きちんとしたテーブル名を得たいの
ですが、どうすれば得られるでしょうか。

以下にソースを挙げますので、解決方法をよろしくお願い致します。

574デフォルトの名無しさん:2006/02/24(金) 21:59:02
DataRowViewからでもDataView Table Name と辿っていけるけどな。
575573:2006/02/24(金) 22:00:39
#Region "リストボックスのアイテムが選択された時"
Private Sub listShowTables_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles listShowTables.SelectedIndexChanged
Try
Dim strSelectTable As String 'テーブル名を代入する変数

Dim LB As ListBox = CType(sender, ListBox)
Dim DV As System.Data.DataRowView = CType(LB.SelectedItem, System.Data.DataRowView)
strSelectTable = Convert.ToString(DV)

'選択された項目をString型に変換して代入する
'strSelectTable = Convert.ToString(Me.listShowTables.SelectedItem)

Dim cn As New OracleConnection
cn.ConnectionString = Me.lablHiddenConnectData.Text '接続文字列の設定

'実行するSQL文
Dim strSql As String = "SELECT * FROM " & strSelectTable

576573:2006/02/24(金) 22:01:26
続きです。

Dim cmd As New OracleCommand
cmd.Connection = cn
cmd.CommandText = strSql
cmd.CommandType = CommandType.Text

Dim da As New OracleDataAdapter
da.SelectCommand = cmd

Dim ds As New DataSet

da.SafeMapping.Add("*", GetType(System.String))

da.Fill(ds, strSelectTable)

'データバインド
Me.listShowTables.DisplayMember = "*"
'Me.dtgdTable.SetDataBinding(ds, strSelectTable)
'Me.dtgdTable.DataSource = ds
Me.dtgdTable.DataSource = ds.Tables(strSelectTable)
Catch ex As Exception
MessageBox.Show(ex.Message, "エラーメッセージ")
End Try
End Sub
#End Region
577デフォルトの名無しさん:2006/02/24(金) 22:21:40
そもそもなんでListBoxのアイテムにDataRowViewが入ってるんだか。
578最凶VB厨房:2006/02/24(金) 22:24:10
Dim DVなんとかのあとにこれいれてみろ。
Console.WriteLine(LB.SelectedItem.GetType.FullName)
579デフォルトの名無しさん:2006/02/24(金) 22:37:41
リストボックスに表示されてるんならSelectedItemじゃなくてSelectedValueを使えばいいんでねえの?
580579:2006/02/24(金) 22:55:07
SlectedValueじゃなくてTextだった
581573:2006/02/24(金) 22:59:40
>>578
左下のWatch式で見てみると、「FullNameは宣言されていません」と出ていて、コマンドウィンドウには何も表示されません。

>>579
SelectedItemやSelectedValueでは、相変わらず「System.Data.DataRowView」なのですが
LB.TextをWatch式に加えて見てみると、選択されたテーブル名が入っていました。

・・・ということは、LB.TextをstrSelectTableに代入すればいいのかな・・・
582デフォルトの名無しさん:2006/02/24(金) 23:03:26
583デフォルトの名無しさん:2006/02/24(金) 23:23:10
>>582
すみません。
System.Data.DataRowViewからDataView Table Name と辿っていく 方法が分かりませんでした。

そして、上に書いてるように、LB.Text をstrSelectTableに代入すると
うまくいきました。

みなさま、ありがとうございます。
584573:2006/02/24(金) 23:25:51
書き忘れましたが、583は573です。
585579:2006/02/24(金) 23:28:44
>>582
DataRowViewのDataView.Table.TableNameってテーブル名が入ってるDataTableの名前でしょ
586デフォルトの名無しさん:2006/02/25(土) 02:13:37
すいません。質問させてください。

一つのformにAxWebBrowser1.Navigateを使って、二つのページを
開きたいんですけど、うまくいきません。

同一formに、2つwebページを開くのは、どうしたらいいのでしょうか?

いろいろ自分で調べたのですが、わかりませんでした。
どなたか知ってる方いたら、よろしくお願いします
587デフォルトの名無しさん:2006/02/25(土) 02:15:53
意味が分からん。
単にAxWebBrowserコントロールを横に二つ並べるとかじゃ駄目なのか。
588デフォルトの名無しさん:2006/02/25(土) 02:18:09
エラーなくプログラムは実行できるんですけど、
二つ目のAxWebBrowserコントロールにページが呼び込まれないので、
困っています。

refresh関数を使ってもだめでした
589デフォルトの名無しさん:2006/02/25(土) 02:24:24
>>586
MDI形式でイベントハンドラを結びつければ終了じゃねえ?
そのものズバリでは無いが、参考にするページはここな。
http://www.gotdotnet.com/japan/student/column/firststep/firststep21.aspx
AxWebBrowserでググった一番最初の結果だけどな。

知るとか知らないとか以前に、基礎知識の問題。
もうちょっと色々勉強することをお勧めします。
590デフォルトの名無しさん:2006/02/25(土) 02:24:35
再現性のあるコードを出せ。
単純なコードでは再現しないようだから。
591デフォルトの名無しさん:2006/02/25(土) 02:38:39
>>589
ありがとうございます。
592デフォルトの名無しさん:2006/02/25(土) 13:02:03
Form.Show(F1)とForm.ShowDialog(F1)の2つの呼び出し方でF1が表示された場合
F1で正しい終了の仕方は以下で正しいですか?
F1 Loadイベントにて
me.dispose
me.close
593デフォルトの名無しさん:2006/02/25(土) 13:05:19
いやLoadでCloseするのが正しい終了の仕方かと聞かれても。
594デフォルトの名無しさん:2006/02/25(土) 13:28:51
Loadでなければどこ?
595デフォルトの名無しさん:2006/02/25(土) 13:32:58
そもそも質問の意味がよく理解できんなあ俺には。。
なんていうか、デキない奴が下手にショートカットしようなんて考えると
結局余計回り道になると思うよ。
大人しく入門書でも読み漁る努力を惜しまない方が結局効率がいいんじゃない?
596デフォルトの名無しさん:2006/02/25(土) 14:52:56
> Form.Show(F1)とForm.ShowDialog(F1)の2つの呼び出し方でF1が表示された場合
ここが意味わかんないのでくわしく。
597デフォルトの名無しさん:2006/02/25(土) 16:28:22
きっと、>>592は開いた瞬間に閉じたいんだよ。
フラッシュナンバーを読み取るゲームでも作るんじゃないかな?
598デフォルトの名無しさん:2006/02/26(日) 00:16:58
MDIの子ウィンドウを開いたときに、子ウィンドウの上に親ウィンドウの
コントロールが見えて困っています。
状況はこんな感じです。
http://v.isp.2ch.net/up/d5a2630a22cc.jpg

子ウィンドウの上にあるコントロールを見えなくするためには、親ウィンドウのコントロールの
VisibleプロパティをそれぞれFalseに設定するしかないのでしょうか。
MDIの子ウィンドウの開閉にかかわらず、親ウィンドウの状態をそのまま残したいので
他の方法を探しています。
どうか助言を頂きたく思います。
599デフォルトの名無しさん:2006/02/26(日) 00:24:38
>>598
各コントロールを右クリックして、最背面に移動
で多分解決すると思う。
600598:2006/02/26(日) 00:38:00
>>599
助言ありがとうございます。
各コントロールを「最背面へ移動」にしましたが
状況は変わらずでした。
601デフォルトの名無しさん:2006/02/26(日) 00:43:10
気休めだけどこれで勘弁して・・・

子コントロール
Me.TopMost = True
602598:2006/02/26(日) 00:52:26
>>601
ありがとうございます。
見た目は全く変わらずでしたorz
603デフォルトの名無しさん:2006/02/26(日) 00:59:12
MDIはしばらく使ってないのですっかり忘れた。
子コントロール起動後に「最前面に移動」させればいけるんじゃない?
604598:2006/02/26(日) 01:00:31
妥協案として、子ウィンドウを開いたときに、親ウィンドウのコントロールの
Visibleプロパティを全てFalseにして、子ウィンドウを閉じたときに
親ウィンドウのコントロールを再び表示しようと考えたのですが
下記のソースでは親ウィンドウのコントロールのVisibleプロパティが
再びTrueになってくれません。
どうしたらTrueにできるでしょうか?

#Region "「閉じる」ボタンを押した時の処理"
Private Sub btnMeClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMeClose.Click
Try
Dim dimFrmMain As New frmMain
'frmMainフォームの親ウィンドウ設定を取り消す
'dimFrmMain = CType(Me.Owner, frmMain)
dimFrmMain.IsMdiContainer = False

'各コントロールの表示
dimFrmMain.btnShowAll.Visible = True
dimFrmMain.listShowTables.Visible = True
dimFrmMain.dtgdTable.Visible = True
dimFrmMain.btnClose.Visible = True
dimFrmMain.btnOpenSqlBox.Visible = True
dimFrmMain.lablYourInfo.Visible = True

'自分自身を閉じる
Me.Close()
Catch ex As Exception
MessageBox.Show(ex.ToString(), "エラーメッセージ")
Return
End Try
End Sub
#End Region
605598:2006/02/26(日) 01:10:04
>>603
「最前面に移動」とは、TopMostプロパティをTrueにすることですよね。
子ウィンドウ起動後に、子ウィンドウのTopMostプロパティをTrueにしましたが
それでも見た目は変わらずでした。
606デフォルトの名無しさん:2006/02/26(日) 01:10:40
そもそもなんでそんなのでMDIにするのかさっぱり分からん。
607デフォルトの名無しさん:2006/02/26(日) 01:11:43
そもそも親にコントロールって普通置くのかなあ。。
あんまりそういうデザインのソフト見た記憶がないんだけど。
その必要なコントロールだけまとめて子フォームにしたらダメなの?
608598:2006/02/26(日) 01:29:57
>>606,607
両方のおっしゃる通りです。
親フォームにコントロールを作ってから、MDIの機能も付け足そうと
考えたもので…
607さんの方法で行ってみます。
609デフォルトの名無しさん:2006/02/26(日) 03:27:51
>>598
なんかすごいな、目の錯覚を起こすプログラムだよ(w
610598:2006/02/26(日) 04:16:36
MDI形式で親ウィンドウから子ウィンドウを開くのではなく
子ウィンドウから別の形式の子ウィンドウを開くことは可能でしょうか。
例えば、子ウィンドウに付いている「SQL」ボタンを押すと
SQLを入力するテキストボックスとそれを表示するデータグリッドが
付いてるフォームを開くとかです。
以下のソースのように親ウィンドウのインスタンスを作って
MDIの親ウィンドウに設定しましたが、何の反応もありませんでした。
助言お願いします。
ちなみに親ウィンドウからは、目的のフォームを開くことはできます。

#Region "SQLボタンを押した時の処理"
Private Sub btnOpenSqlBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpenSqlBox.Click
Try
Dim frmNewMdiSqlWindow As New frmMdiSqlForm 'frmMdiSqlFormフォームをインスタンス化(実体化)
Dim frmTopForm As New topForm 'topForm(親ウィンドウ)をインスタンス化(実体化)
frmNewMdiSqlWindow.MdiParent = frmTopForm 'frmMdiSqlFormの親ウィンドウを親ウィンドウに設定
frmNewMdiSqlWindow.Show() 'frmMdiSqlFormを開く
Catch ex As Exception
MessageBox.Show(ex.ToString(), "エラーメッセージ")
Return
End Try
End Sub
#End Region
611デフォルトの名無しさん:2006/02/26(日) 04:20:36
別の形式って何よ。

大体さ、なんでそうMDIに拘るの?
普通にモードレスダイアログ開くんじゃ駄目なの?
612デフォルトの名無しさん:2006/02/26(日) 04:58:16
>>610
オイオイ、子ウィンドウがある時点で親ウィンドウは存在してるんだから
親ウィンドウのインスタンスを作ってもダメに決まってるだろ。
新たにウィンドウのインスタンスを作っても、そのインスタンスは
すでに存在している親ウィンドウのインスタンスとは別物だ。

MdiParentプロパティがあるんだからいちいちインスタンスを作る必要はない。

試してないから確証はないけど
>frmNewMdiSqlWindow.MdiParent = frmTopForm 'frmMdiSqlFormの親ウィンドウを親ウィンドウに設定
これを
frmNewDimSqlWindow.MdiParent = frmSqlButton.MdiParent
に変えるか、親ウィンドウに目的の子ウィンドウを作るパブリックメソッドを作って
ボタンのある子ウィンドウで呼び出したらいいんじゃないか?
613デフォルトの名無しさん:2006/02/26(日) 05:14:44
MDIでform1を親として、form2のラベルに取得した数字をform1のラベルに
表示させたいんですけど、うまくform1にform2のデータが呼び込めません。
どういうソースを書けばいいんでしょうか?

知ってる方よろしくお願いします
614デフォルトの名無しさん:2006/02/26(日) 05:15:38
別のform1とform2とでデータの受け渡しするのと全く同じ方法で可
615デフォルトの名無しさん:2006/02/26(日) 06:53:20
>>605
うんにゃ
俺の言ってるのはBringToFrontメソッドの方。
616デフォルトの名無しさん:2006/02/26(日) 08:02:37
>>614
すいません。それはどのように記述するのですか?
なんども試したのですが、うまくいきません
617598:2006/02/26(日) 10:03:53
>>612
ありがとうございます。
frmNewMdiSqlWindow.MdiParent = frmTopForm.MdiParent
frmNewMdiSqlWindow.Show()

こうすると、目的のフォームを開くことはできたのですが
別ウィンドウとして開いてしまい、MDIとして開いてくれません。
親フォームに目的のフォームを開くメソッドを書いて
子フォームのボタンから呼び出す方法ですが、これも別ウィンドウで
開いてしまいます、MDIではなくて。

>>615
ありがとうございます。
BringToFrontメソッドというのがあるのですね。
親ウィンドウには基本的にコントロールを書き込まない方法に
移行しましたが、覚えておきます。

>>616
教えてもらってばかりも何なので…
Form1でForm2のインスタンスを作れば良いのでは。
Dim dimForm2 As New Form2
Me.Label.Text = dimForm2.Label.Text

これで駄目なら
Form1で
Dim dimForm2 As New Form2
dimForm2.Owner = Me
dimForm2.Show(Me)
Form2で
Dim dimForm1 As New Form1
dimForm1 = CType(Me.Owner, Form1)
dimFrom1.Label.Text = Me.Label.Text
618デフォルトの名無しさん:2006/02/26(日) 10:26:59
VB2005 Express Edition使ってるんだけど、詳細なコンパイルオプションの項目が見当たらない…
コンパイルのタブを見ても暗黙的な変換にエラーを出すかとかそういう設定しかないんですが。
619デフォルトの名無しさん:2006/02/26(日) 21:05:01
VBアプリがコマンドラインから実行された事を知るにはどうしたらよいでしょうか?
620デフォルトの名無しさん:2006/02/26(日) 22:09:32
先生!

.NETアセンブリ(DLL)でシングルトン実装して
他のアセンブリDLLから参照するってやり方はOKでしょうか?
621620:2006/02/26(日) 22:10:59
ageてしまいました。
吊ってきます。
622デフォルトの名無しさん:2006/02/26(日) 22:14:10
時代が逆行してるんじゃないかと思った
地獄を見たいのなら、ちょっとずつ前進していきなさウウウウウウウウウウウウウウウウウウウウウウ
623デフォルトの名無しさん:2006/02/26(日) 22:58:53
フォームロード時に、任意のコントロールにフォーカスを移動というか設定するのは
どうすればいいのでしょう。

TextBox1  tabindex0
TextBox2  tabindex1
TextBox3  tabindex2

だとして

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

としても
TextBox1にフォーカスがいってしまいます。
624デフォルトの名無しさん:2006/02/26(日) 23:03:22
Form.ActiveControl
625623:2006/02/26(日) 23:19:10
>624
ありがとうございます。できました。
626デフォルトの名無しさん:2006/02/26(日) 23:38:50
TextBox2.Select() でもOK
627デフォルトの名無しさん:2006/02/27(月) 00:21:02
>>514放置です。 誰か・・・。

xlApp = New Excel.Application
xlBooks = xlApp.Workbooks
xlBook = xlBooks.Open(ファイル名)

で起動していないエクセルに対しては操作はできるのですが、
すでに立ち上がっているエクセルファイルをopenすれば、うまく動作しません。
(上書き保存しても保存されなかったり etc)
すでに立ち上がっているエクセルをxlbookに指定するには、どのようにすればよいでしょうか?

628デフォルトの名無しさん:2006/02/27(月) 00:27:22
ヘルプ頼みます・・・

ダブルクォーテーションを文字列として扱えないですか?

どういうことかと言うと、

Dim Str As String
Str = """

↑この書き方で気持ち的には、

Str = "

に、なって欲しいんだけど、
結果は当然ながら「エラー」!


んーならばどう書けば良いのでしょう・・・?
629デフォルトの名無しさん:2006/02/27(月) 00:28:32
一つ足りんな " のエスケープに " を使うんだから
630デフォルトの名無しさん:2006/02/27(月) 00:32:24
631628:2006/02/27(月) 00:36:58
をー
そんな書き方するんだ。

どうもありがとう!!!
632デフォルトの名無しさん:2006/02/27(月) 00:49:00
>>627
どうすれば、ってどうにもならんと思うよ。
俺が君の書いていることを正確に理解できているとすれば。

そんなはずはない、どうしても納得いかない、というのなら
まず一つのブックを複数のウィンドウで開くとどうなるかやってみたら?
633632:2006/02/27(月) 00:54:41
手動で、って言葉を入れるのを忘れた。
634デフォルトの名無しさん:2006/02/27(月) 01:00:23
>>627
xlBook = CType(GetObject(ファイル名), Excel.Workbook)
xlApp = xlBook.Application
xlBooks = xlApp.Workbooks
635デフォルトの名無しさん:2006/02/27(月) 01:05:22
ああなるほどね、ファイル名からブックとエクセルの参照を取得するわけか。
それなら出来そうだ。
636デフォルトの名無しさん:2006/02/27(月) 11:26:06
質問させてください。

ShockWave Flash Objectを使ってFlashを再生し、そのFlash中でボタンが押されたことVBでを検知することは
FlashのFscommandを使ってイベントをVBに渡せば出来るということはわかったのですが、
MicrosoftWebBrowserでHTMLを読み込み、そのHTMLで記述されているFlash中でボタンが押されたことを
VBで検知することは出来ないでしょうか?
637デフォルトの名無しさん:2006/02/27(月) 12:01:31
質問〜(;´д`)

ちょっとしたデータ配列(ファイルから読み込む程度)のデータを
フォーム上で編集したいんだわ。
で、絶対必要な要素として「順番の入れ替え」なんです。(ソートではなく)
具体的にいうとIEのお気に入りで、D&Dで順番(場所)を移動できるのと同じ事
したいんです。

このようなことって、一般的にどのコントロールでやるのかな?
ListViewでできる?(IEのはListViewっぽいけど・・)
DataGrid使うとその他も便利な気がするんだけど、ファイルから読み込む程度の
データでDataGrid使うのも重い気がするし。。
638637:2006/02/27(月) 12:07:19
SpyしたらIEのお気に入りはSysTreeView32だった。

質問の補足だけど、ListViewで表したいデータは
Detail固定で表示させたいんです。
639デフォルトの名無しさん:2006/02/27(月) 12:40:32
ListView お勧め
640デフォルトの名無しさん:2006/02/27(月) 15:48:21
刺繍の図案をデザインするためのアプリを
VB2005のExpress Editionで作ってます。(OSはXPSP2)

で、例えば1000x1000くらいのマス目を、フォーム上に表示して
色や縫い目のパターンを編集できるようなものを作っているのですが
こういう場合、どのようなコントロールを使うのがいいでしょうか?

ちなみに今は、フォーム上にピクチャーボックスを配置し、
それにpaintイベントでGraphics.DrawRectangleを使って、
しこしことマス目を1000x1000個Drawしているのですが
これだと、マスのサイズを変更したり、フォームをスクロールする度に
全てのマスを再描画するため、やたらと遅く使い物になりません。
再描画する範囲を限定して、見えてるところだけを・・・
と思ったのですが、これはこれで方法がわかりませんでした。

良い方法があったら教えてください。
641デフォルトの名無しさん:2006/02/27(月) 15:49:45
そんな数のマスをVBのコントロールでやったら重過ぎてやってらんねぇから
自前で全ての処理を実装しる
642デフォルトの名無しさん:2006/02/27(月) 16:45:01
>>640
マス目はコントロールで描画せずに、別途ピクチャで下地に表示する
とか。マス目サイズの変更は、ピクチャごと貼り換えで対処。左上の
座標を揃えていれば、グリッドっぽくGraphics.DrawRectangleで点
を打ったり、スクロールも下地と連動させることができると思う。
643640:2006/02/27(月) 17:40:15
>>641-642
レスどうもです。

>641
さすがに全マスをコントロールで表示はするつもりないです。
初期表示すらできないと思う(てか最初やって重すぎてできなかった)ので。
基本的には全てGrapphicsクラスでやろうと思ってます。
ただ、マス目の描画だけでえらく時間かかって、スクロールすら
ままならなかったもので・・・

>642
ふむ・・・マス目の下地を固定イメージにしてしまうということですかね。
ただ、山ほどイメージで用意しないとですねえ。

FlexGridを使う。という考えも浮かんだのですが
2005ってFlexGrid使えないのだろうか。見当たらない・・・

今は、諦めかけた描画範囲を見えている部分にだけ限定して
再描画させる方法で試行錯誤してます。これでなんとかなるかも?
644デフォルトの名無しさん:2006/02/27(月) 18:02:43
Excel上の指定した二つのセルを結ぶような、横の棒線を引きたいのですが…
例えばセル番号 (x(1),y(1)) と (x(2),y(1)) で、上側の罫線でもなく下側の罫線でもなく、その中間に
引くイメージです。

また、上側の罫線を引く場合、もしくは下側の罫線を引く場合はどうしたらよいでしょうか。
レスキュー花ちゃんなどを見たのですが良くわかりませんでした…。
645デフォルトの名無しさん:2006/02/27(月) 19:27:15
>>640
フォームをスクロールするだけで全部再描画ってそれが本当ならコードがおかしいと思う。
スクロールで新しく現れたところだけ無効化されている、ってのがデフォのはず。
少なくともWin2K以降は。

OnPaintで描画してないか、あるいは変なところでInvalidateかけてるかじゃないのかな。

あと一般論として、どうしても描画処理が重い場合は逆にOnPaintで描画せず、
タイマを起動して一定時間後(一秒程度か?)に描画するようにするらしい。
言い換えれば描画レートを意図的に下げるわけだね。

このあたりのテクニックはMSDNに載ってたはずだよ。
646デフォルトの名無しさん:2006/02/28(火) 00:34:10
ちょいとお尋ねしたいんですが・・・

エクセルで、
シートを選択した時にマクロを起動する方法ってないですか?

ブックを開いた時ならあるみたいなんですが・・・違うなぁと。
647640:2006/02/28(火) 10:02:03
>>645
なるほど。ちょっとコードを見直してみます。
MSDNあんまりちゃんと見てなかったな。。。
探してみます〜

有難うございました。
648640:2006/02/28(火) 10:06:01
>>646
SheetActivateがWorkbookのイベントに
あるからそれを使えばいいんじゃないかな。

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

MsgBox Sh.Name

End Sub

こんな感じでシート選択したら動いたから多分これでおkかと。
649デフォルトの名無しさん:2006/02/28(火) 12:30:47
>>643
>>ただ、山ほどイメージで用意しないとですねえ。
650デフォルトの名無しさん:2006/02/28(火) 13:18:29
ひとつだけのマス目を画像にしてタイルみたいに並べると思われてる
ような悪寒。最初っから1000x1000のマス目を描いた画像を用意す
るって意味で書いたんだけど。
651デフォルトの名無しさん:2006/02/28(火) 16:41:52
カスタムコントロールを使用して
Inherits System.Windows.Forms.TextBoxな
テキストボックスを作ろうとしています

キーの入力を制限したく、下記のコードを書きましたが
どうもうまく制限できていません。

というより下記コード部分を通るとき、既にテキストボックスには
テキストが入ってしまっているようです。

何か根本的に間違っているのでしょうか?

Protected Overrides Sub OnKeyDown(ByVal e _
As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.D0 Then
e.Handled = True
End If
End Sub
652デフォルトの名無しさん:2006/02/28(火) 17:18:45
すいません、OnKeyPressで出来ました
653デフォルトの名無しさん:2006/02/28(火) 18:13:56
コピペには対応せんで良いの?
654デフォルトの名無しさん:2006/02/28(火) 18:49:04
>>653
一応validationは行っているので、それはそのときに
処理をするようにしてしまおうかと

そしてまた問題が…

>>651でOnKeyPressをoverrideしたはいいのですが、
これを実際にフォームに貼り付けて使うとき
それぞれのインスタンスではOnKeyPressのイベントの処理は
書けないものなのでしょうか?

このカスタムコントロールを使ってtxtTestをFormに作って

Private Sub txtTest_KeyPress(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTest.KeyPress

に処理を書いてもここを通ってくれません
655デフォルトの名無しさん:2006/02/28(火) 19:00:10
試してないけど
オーバーライドしたOnKeyPressメソッドの中で
基底クラスのOnKeyPressを呼んでみたら?
656デフォルトの名無しさん:2006/02/28(火) 19:01:27
>>654
> 一応validationは行っているので、それはそのときに
> 処理をするようにしてしまおうかと

ならそれに全て任せた方が良いと思うのだけれど。

> に処理を書いてもここを通ってくれません

オーバーライドしたメソッドで MyBase.OnKeyPress 呼び出してないから。
657デフォルトの名無しさん:2006/02/28(火) 19:02:51
っていうか、そんな基本も分からずにコントロールを継承して大丈夫かなw
生兵法はなんとやら、の匂いがするけど。
658デフォルトの名無しさん:2006/02/28(火) 19:04:23
>>655
おー、MyBase.OnKeyPress(e)呼んだらうまくいきました
どうもありがとうございます

最初考えたんですけどMyBase.まで打ったときに
OnKeyPressが候補になかったのでダメなのかと思ってました
659デフォルトの名無しさん:2006/03/01(水) 00:43:28
質問です
Perlで言うところの
($No , $Name , $Sub) = split ("<>" , $line);
を、VB.NETでやろうとすると、どうすればよいでしょうか?

以下のように書くしかないのでしょうか?

dim t() as string=line.Split(New Char() {"<>"c}, 2)
dim no as string = t(0)
dim name as string = t(1)
dim sub as string = t(2)
660デフォルトの名無しさん:2006/03/01(水) 00:49:41
そう。
それにそもそもそんなコード書く機会なんて大してないと思うよ。


ところでこの場合ならまだ良いけど、
〜〜で言うところの〜〜ってのは説明になってないので、
具体的にどういう動作なのか言葉を補うべし。
661最凶VB厨房:2006/03/01(水) 01:12:13
Regex
662デフォルトの名無しさん:2006/03/01(水) 16:31:41
作ったアプリに配置したMicrosoftWebBrowserで読み込んだHTMLに書かれているVBScriptから
作ったアプリに情報を投げる方法ってないだろうか?
HTMLで起こったイベントをVB.netで作ったアプリに知らせる方法ってないだろうか?
663デフォルトの名無しさん:2006/03/01(水) 16:40:14
>>662
ある
664デフォルトの名無しさん:2006/03/01(水) 17:01:06
VB.NET 2003 で RS232C でシリアル通信するプログラムを
作っています。232C の先には、簡単はハードウェアがついていて、
232C から送られてきた値を表示します。

232C の通信には Win API の WriteFile を使っているのですが、
下記のような現象がでて何が原因かわからず四苦八苦しています。

というのは、一度ハイパーターミナルで COM ポートを開き、何も
通信せずに閉じた後であれば、VB.NET で作成したプログラムで
値が送られるのですが、ハイパーターミナルを起動しないと
ハードウェアに値がわたっていきません。

これは、一度ハイパーターミナルで接続した後であれば、
PC をリブートするまではずっと正常に動きます。
一度、ハードウェア側の電源をきったとしても、
PC がリブートしていなければプログラムで送信した値を
正しくうけとります。

どのように説明すべきかわかりませんが、ハイパーターミナルの
接続をした以降はずっとプログラムが正常に動作するのか
なぜかわかりません。

VB.NET でシリアル通信関係で、上記現象を御存知の方が
おられましたらアドバイス頂けないでしょうか?
665デフォルトの名無しさん:2006/03/01(水) 17:23:14
>>663
方法を詳しく教えては頂けまいか?
666デフォルトの名無しさん:2006/03/01(水) 19:53:09
ナイアル厨が一度でもまともな回答をしたことがこれまでにあっただろうか。
たぶんないあるよ。
667デフォルトの名無しさん:2006/03/01(水) 22:53:12
質問です。よろしくお願いします。
MonthCalendarコントロールで、カレンダーから選択した日付と曜日を
テキストボックスに代入したいのですが、例えば2006/03/03 00:00:00のように
時刻まで取得してしまいます。これを2006/03/03までで止めて、
また「月」や「火」など、曜日を取得するにはどうすればよいでしょうか。
668デフォルトの名無しさん:2006/03/01(水) 22:55:40
つ 日付と時刻の書式指定文字列
669667:2006/03/01(水) 23:47:14
>>668
ありがとうございます。

ToShortDateStringメソッドとDayOfWeekプロパティを使って
目的通りにいきました。
670デフォルトの名無しさん:2006/03/01(水) 23:56:44
VB6のときはOCXで外部コンポーネント配布して登録していたが
VB.NETの場合はどうやって配布したらいいの?
671デフォルトの名無しさん:2006/03/02(木) 00:09:07
VB6とか.NET以前に、
もういちど小学校で作文から勉強した方がいいと思いますが。。
>>670みたいな文章書く奴ってどういう教育受けてきてるんだろう。
672デフォルトの名無しさん:2006/03/02(木) 00:19:15
キトキトキトキト
673667:2006/03/02(木) 00:28:22
テキストボックスにカレンダーから選択して入力するだけではなく
手入力でも入力できるようにしたいと思っています。
そこで、YYYY/MM/DD の形式で入力できるようにしたいのですが
あらかじめ二つの「/」は表示したいと思います。
最初のスラッシュの前には、半角で4文字文、2番目のスラッシュの前には半角で2文字分、
2番目のスラッシュの後にも半角で2文字分空白を空けました。
しかし、いざ入力すると、考えてみれば当然なのですが、予めとって置いたスペースに
入力されるのではなく、スペースの前に文字が追加されていきます。
これを防いで、目的を達成するには、どうすれば良いでしょうか。
長文で申し訳ありません。
674デフォルトの名無しさん:2006/03/02(木) 00:30:19
その場合テキストボックスじゃなくて DateTimePicker 使った方が良いと思う。
Format を Custom にして、CustomFormat で任意の書式指定文字列に設定する。
675デフォルトの名無しさん:2006/03/02(木) 00:30:30
VB6のときはOCXで外部コンポーネント配布して登録していたが
VB.NETの場合はどうやって配布したらいいの?
676670:2006/03/02(木) 00:42:47
ちょっと質問の仕方かえるので教えてください
VB6とOCXの関係は.NETとの関係は何ですか?
677デフォルトの名無しさん:2006/03/02(木) 00:45:42
言い直して更に言語崩壊というのもアレだな、才能かな。

DLL。
678670:2006/03/02(木) 00:52:57
>>677さん理解してくれてありがとう
そのDLLは使えるようにするのに登録とかインストールは必要ですか?
679デフォルトの名無しさん:2006/03/02(木) 00:56:46
.NET Framework が必要だな。
実行ファイルと同じフォルダなら置くだけで良い。
680670:2006/03/02(木) 01:05:32
>>679さんわかりました。最後にもうひとつ教えてください
>実行ファイルと同じフォルダなら置くだけで良い。
同じフォルダ以外に置いて実行環境を構築する方法はありますか?
681デフォルトの名無しさん:2006/03/02(木) 01:12:27
実行ファイルのサブディレクトリならともかくそれ以外なら DLL HELL になるだけだからやめとけ。
と言うのが Microsoft の方針だ。
これでも読んどけ。
ttp://www.atmarkit.co.jp/fdotnet/technology/idnfw11_index/index.html
682デフォルトの名無しさん:2006/03/02(木) 06:12:14
DLL HELL が DELI HEL に見えた件について
683307:2006/03/02(木) 06:20:48
data1 という文字列変数の中身が、
AAAA
となっているとします。これが、
"AAAA"
となるようにしたいのですが、何かよい方法はないでしょうか。

実際は、
strSql = strSql & data1
strSql = strSql & data2
...
というようにSQL文を生成したいのですが、data1,data2,...の
string変数を""でクオートしたいのです。
よろしくお願いします。
684デフォルトの名無しさん:2006/03/02(木) 08:18:50
マルチウィンドウアプリケーションを作るとき、
特定のウィンドウの中だけで必要になるデータじゃなくて
いろんなウィンドウから参照されるデータは、
グローバル変数として持っておくのが普通なのでしょうか?

単一のウィンドウしか持たないアプリケーションなら
そのウィンドウの

   Public Class Form1

   End Class

内で書けばいいと思うんですが、Form2 のイベントハンドラ
からも参照されることがあるデータなどは、全部グローバル
に持っておくのが普通ですか?
685最凶VB厨房:2006/03/02(木) 09:21:33
>>683 """" & data1 & """"
多分これでおk。
>>684
普通かは知らんが、グローバル変数を使う。
Shared変数の方がクラス名を書く分、いいとは思うが。
グローバル変数を使う、とあるクラスのメソッド名でも
コメントにかいときゃいいんじゃねーか。グローバル変数のところに。
686>>659:2006/03/02(木) 09:23:37
>>660
やっぱりそれしかないっすか。

>>661
失礼。String.splitだと上のコードだとエラーが出ますな。
Regex.splitかVBのsplit関数でないと。
687665:2006/03/02(木) 10:42:39
>>666
ネタだったのか・・・
出来るって書いてあったから信じて調べまくったのに・・・
まぁ掲示板でネタに引っかかることはよくあることだから転んでも泣かない。

688しょしんしゃ:2006/03/05(日) 03:17:05
すいません。教えてください。調べたのですがわかりません・・・
VB.NETのデータグリッドに関してなのですが、

コマンドボタンとデータグリッドがは同一フォーム上にあり、コマンドボタンクリック時に
新規レコードをデータグリッドの先頭行に追加する

といったことを行いたいのですが、どのようにすればよいのでしょうか?

ご教授お願いいたします。


------------------- ソ ー ス --------------------
★フォームロード時

Dim dataSet As New DataSet
Dim dataTable As DataTable

Dim ts As New DataGridTableStyle 'テーブルスタイル
Dim cs1 As New DataGridTextColumn 'カラムスタイル 1列目
689688:2006/03/05(日) 03:17:48

'テーブルの作成
dataTable = dataSet.Tables.Add("t_Data")
dataTable.Columns.Add("Room", Type.GetType("System.String"))

'テーブルのデータ作成
dataTable.Rows.Add(New Object() {"山田 花子"})
dataTable.Rows.Add(New Object() {"佐藤 太郎"})
dataTable.Rows.Add(New Object() {"片山 次郎"})
dataTable.Rows.Add(New Object() {"小泉 一郎"})
dataTable.Rows.Add(New Object() {"茂野 五郎"})

' テーブル・スタイルの作成
ts.MappingName = dataTable.TableName 'テーブル名のセット

'カラム・スタイルの作成
cs4.MappingName = dataTable.Columns(0).ColumnName 'カラム名のセット
cs4.HeaderText = "名前" '列見出しのセット
690688:2006/03/05(日) 03:18:31

'テーブルスタイル/カラムスタイルの適用
DataGrid1.TableStyles.Add(ts)
ts.GridColumnStyles.Add(cs1)

★コマンドボタンクリック時
??????????
-----------------------------------------------------

1.1〜5レコード目→配列に退避
2.1行目に新規レコードを追加
3.退避したレコードを2〜6行目に追加

の他に方法はないのでしょうか?
長文すいませn
691デフォルトの名無しさん:2006/03/05(日) 09:39:02
おまい、@IT でもスレ立てとっただろ。
そういうのは感心しないなー。
692デフォルトの名無しさん:2006/03/05(日) 10:23:06
ざっと読んだ感じ、VB使いってプログラミングのLv低いな。
VBなんてプログラムというよりスクリプトなんだし。

.NETつかうならせめてCLRの仕組みくらい読んでおけよな。
693デフォルトの名無しさん:2006/03/05(日) 15:29:50
>>690
そうやって新規行を一番上に持ってくるのは、既存データとの整合性
(ソート順とか)を崩すと思うんだが。社員番号みたいに新旧を区別で
きてソートの基準としても使える列があるなら、一度裏側で追加して
おいてから、その列で降順ソート→DataGridに表示すればいいかと。

てか、その動作を必要とする業務ってなに?
他にもっとうまいやり方とか絶対あるって。
694デフォルトの名無しさん:2006/03/05(日) 16:32:17
初心者であることを強調すると嫌われる気がする
695デフォルトの名無しさん:2006/03/06(月) 03:15:28
dim foo as myclass
って宣言した場合ってfooっていうのは
Cで言うポインターの状態なんでしょうか?

また、
dim foo as myclass = new myclass
この”new”って言うのもヒープにメモリ確保するっていう解釈でOK?
696デフォルトの名無しさん:2006/03/06(月) 03:19:07
ポインタと参照はかなり別物だが、その myclass が参照型( VB における Class ) ならまあ大体そんなもん。
697デフォルトの名無しさん:2006/03/06(月) 04:24:05
>>696
深夜?明け方にありがどうございます。
698デフォルトの名無しさん:2006/03/06(月) 04:48:58
>>664
亀レスですが私も今その辺の事に取り組み始めているところです。
残念ながらその症状の原因は分かりませんが、
.Net Framework 2.0以降でサポートされたシリアル通信機能も試されたら如何でしょうか?
サンプルコードが配布されています:
ttp://www.microsoft.com/japan/msdn/vbasic/migration/tips/SeriaPort/
一応VB2005向けの情報なので、2003での動作は分かりませんが。
699デフォルトの名無しさん:2006/03/06(月) 08:50:37
質問です

ファイルをCGIと組み合わせてアップロードさせるプログラムを作成しているのですが、どうも上手くいきません。

<form name="UP" action="index.cgi" method="post" enctype="multipart/form-data">
<input type=hidden name="mode" value="World">
<input type=hidden name="No" value="0">
ファイル:<input type="file" name="FileName" size="32">
<input type="submit" value="送信">
</form>

これを、HttpWebRequest等を使ってやる場合、どうすればよいでしょうか?以下はいろいろ調べて書いたコードです。

Dim postdata As String = "?No=1&Mode=A"
Dim uri As New Uri("http://172.0.0.1/index.cgi" + postdata)
Dim boundary As String = "----------" + DateTime.Now.Ticks.ToString("x")
Dim webrequest As HttpWebRequest = CType(webrequest.Create(uri), HttpWebRequest)
webrequest.CookieContainer = cookies
webrequest.ContentType = "multipart/form-data; boundary=" + boundary
webrequest.Method = "POST"

700続き:2006/03/06(月) 08:52:18
Dim sb As New System.Text.StringBuilder
sb.Append("--")
sb.Append(boundary)
sb.Append(ControlChars.Cr + ControlChars.Lf)
sb.Append("Content-Disposition: form-data; name=""")
sb.Append(fileFormName)
sb.Append("""; filename=""")
sb.Append(Path.GetFileName(uploadfile))
sb.Append("""")
sb.Append(ControlChars.Cr + ControlChars.Lf)
sb.Append("Content-Type: ")
sb.Append(contenttype)
sb.Append(ControlChars.Cr + ControlChars.Lf)
sb.Append(ControlChars.Cr + ControlChars.Lf)

Dim postHeader As String = sb.ToString()
Dim postHeaderBytes As Byte() = System.Text.Encoding.UTF8.GetBytes(postHeader)
Dim boundaryBytes As Byte() = System.Text.Encoding.ASCII.GetBytes((ControlChars.Cr + ControlChars.Lf + "--" + boundary + ControlChars.Cr + ControlChars.Lf))
Dim fileStream As New FileStream(uploadfile, FileMode.Open, FileAccess.Read)
Dim length As Long = postHeaderBytes.Length + fileStream.Length + boundaryBytes.Length
webrequest.ContentLength = length

Dim requestStream As Stream = webrequest.GetRequestStream()

requestStream.Write(postHeaderBytes, 0, postHeaderBytes.Length)

Dim buffer() As Byte = New [Byte]() {}

701続き:2006/03/06(月) 08:55:06
Dim bytesRead As Integer = 0
While (bytesRead >= fileStream.Read(buffer, 0, buffer.Length)) = 0
requestStream.Write(buffer, 0, bytesRead)
End While
requestStream.Write(boundaryBytes, 0, boundaryBytes.Length)
Dim responce As WebResponse = webrequest.GetResponse()
Dim s As Stream = responce.GetResponseStream()
Dim sr As New StreamReader(s)
Dim t As String = sr.ReadToEnd()
sr.Close()

以上です。
これだと、送られてきているコードはアップロードするファイルのアドレスだけでした。
CGIの方も動作しっぱなしになります。

どうかよろしくお願いします。
702デフォルトの名無しさん:2006/03/06(月) 16:09:18
>>700
だらだらしたコードを読む気は起きないんで適当に。

> Dim buffer() As Byte = New [Byte]() {}

これ要素数 0 の配列になるだろ。

あと Base64Encoding はしなくていいのか?
703デフォルトの名無しさん:2006/03/06(月) 17:51:00
御教授願います。
MicrosoftWebBrowserのAxWebBrowser1_StatusTextChangeイベントを使いたいと思っています。
これで、変更したステータステキストを取得する方法が分かりません。
JavaScriptを使ってステータステキストを変更し(ステータステキストは隠しパラメータになっています)、
そのテキスト3種類のうちどうなっているかを検知してそれに応じた処理をしようと思っています。
Htmlの取得にはAxWebBrowser.Navigate2を使用しています。

Private Sub AxWebBrowser1_StatusTextChange(ByVal sender As Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_StatusTextChangeEvent) Handles AxWebBrowser1.StatusTextChange

senderもeもデバッグライトで値を書き出そうとしたけど何も出力されないです。
704デフォルトの名無しさん:2006/03/06(月) 18:10:47
e.text に入ってるだろ?
705703:2006/03/06(月) 18:28:47
>>704
本当だ!
Debug.Writeline(e)で何もでなくてしょんぼりだったのにこんなにあっさり解決してもらえるとは。
ありがとうございました!
706デフォルトの名無しさん:2006/03/06(月) 18:31:11
今更 printf デバッグかよ。
ブレークポイントとか使えよ。
707デフォルトの名無しさん:2006/03/06(月) 18:39:52
こんなやつがコーディングしちゃう世の中なのか。。。
何作ろうとしてるか知らんが職業プログラマじゃないよな。
708デフォルトの名無しさん:2006/03/06(月) 22:53:11
>>702
忘れてました。
が、やっぱり上手くいかないorz
709デフォルトの名無しさん:2006/03/07(火) 00:49:58
PlaySound APIを使用し、exeのリソース(wav)を再生しているのですが、exe起動後、1回目だけザァーっと雑音が入ってしまいます。
2回目以降は問題ありません。

フォームロードで、
1)Assemblyを取得。
2)IO.StreamにGetManifestResourceStreamでリソースを設定。
3)IO.BinaryReader で As Byteに読み込み。
4)BinaryReaderをクローズ  
ここまでに読み込んだAs Byteを
5)PlaySoundで、SND_ASYNC Or SND_MEMORY にてあっちこっちで再生です。

この方法で1回目だけ雑音(かなり激しい)が入ってしまいます。
なにか、コツのような物があるのでしょうか?
原因、解決方法ご存知の方、すいませんがよろしくお願いします。

VB .NET 2003
WinXP Pro
710デフォルトの名無しさん:2006/03/07(火) 01:08:17
すいません。自己解決しました。お騒がせしましたm(_ _)m
711デフォルトの名無しさん:2006/03/07(火) 01:16:20
スレ汚しのついでに、せめてどう解決したかぐらい書いていけよ
712デフォルトの名無しさん:2006/03/07(火) 01:28:15
うぃっす。
原因は、PlaySoundの直前に、Wait処理としてこんな処理を入れてました。
できるだけ厳密に1sを図りたかったので、
Dim T = timeGetTime
Do While T + 1000 > timeGetTime
System.Windows.Forms.Application.DoEvents()
Loop
そうしたら、このループを通るときに、なぜか一回目だけCUP使用率がバコ〜ンとあがってしまってたんです。
CUP使用率が原因じゃないかも知れませんが、このループの部分を

System.Windows.Forms.Application.DoEvents()
Sleep(1000)

に変えたら、雑音消えました。
VB出戻りなもんで、こんなボンミスしてしまった・・・orz
713デフォルトの名無しさん:2006/03/07(火) 01:34:43
714座標:2006/03/07(火) 08:09:02
Graphics オブジェクトを使って描画するにあたって、
実際にデバイスに表示されるまでの間に
ワールド変換とページ変換が施されますが、
スケールに関してはワールド変換でやろうが
ページ変換でやろうがどちらでやってもいいのでしょうか?

変換があると便利なのは分かるのですが、
ワールド変換とページ変換の2種類が
用意されている理由が分かりません。

参考
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpguide/html/_gdiplus_Coordinate_Systems_and_Transformations_about.asp
715座標:2006/03/07(火) 10:03:12
PageScale って印刷の時にしか使わないんでしょうか?
ディスプレイ上のコントロールに描画するときには無視?
例えば PictureBox の CreateGraphics で取得した
Graphics オブジェクトのプロパティでは

DpiX = 96
DpiY = 96
PageUnit = Display
PageScale = 1

となっています。ここで PageScale を 2 にしようが
3 にしようが、描画結果は全く変わりません。
716デフォルトの名無しさん:2006/03/07(火) 13:21:24
EXPRESSをダウンしてVBを勉強してみようかと行動に
出ましたが、参考書ではサンプルコードに「フォームデザイナで生成されたコード」
ってあるんですが僕のPCには表示されていません。

表示されてなくても実害はないでしょうか?それとも表示させるオプションが
どこかに・・・・?無料ならではの制限???

どなたか分かりませんか?
717デフォルトの名無しさん:2006/03/07(火) 13:30:50
>>716 もしかしてその参考書って、
C# の参考書じゃない???

Visual Basic 2005 Express Edition で、
Windowsアプリケーションのプロジェクトを
新規に作ったんだよね?
718デフォルトの名無しさん:2006/03/07(火) 14:19:16
2005では .designer.vb の方に移ってる
719716:2006/03/07(火) 16:04:58
ありました〜 ありがとう〜
720デフォルトの名無しさん:2006/03/07(火) 20:37:04
ExpressとProfessionalとの機能面での違いって何でしょうか?
721デフォルトの名無しさん:2006/03/07(火) 20:49:14
とりあえず Microsoft のサイト見に行け
722720:2006/03/07(火) 21:22:59
各Editionの機能比較表をさがしましたがみつかりませんでした。
そういうサイトってあるんでしょうか?
723デフォルトの名無しさん:2006/03/07(火) 21:42:03
>>722 本当に探したのか?
もし探したけど見つけられなかったとしたら、
おまえ、相当情報収集能力低いよ。
724デフォルトの名無しさん:2006/03/07(火) 21:46:11
725デフォルトの名無しさん:2006/03/07(火) 22:03:30
VB6.0についてなんですが質問があります。
ttp://pclabo.org/vb6/1/main.htm
こちらのサイトのサンプルプログラムでダイアログをキャンセルしたとき
"キャンセルされました。"というmsgboxが出てくるようになっています。
1度なんらかのファイルを選択して開くを押すと以後プログラムを終了させない限り
キャンセルを押した場合に初回にキャンセルを押したときのような意図したような
メッセージボックスが表示されません。
初回以外でもキャンセルを押した場合、キャンセルを押した意図した結果のでる
プログラムの書き方ありましたら宜しくお願い致します。
726デフォルトの名無しさん:2006/03/07(火) 22:08:10
>>725
VBプログラマ質問スレ(6.0以前) Part47
http://pc8.2ch.net/test/read.cgi/tech/1141320612/
727デフォルトの名無しさん:2006/03/08(水) 00:46:48
つか、質問の意味が分からないんだが、俺の読解力不足?
728デフォルトの名無しさん:2006/03/08(水) 01:44:58
すみません、教えて下さい。
VSの2003をまだ使っている分際ですが、
.NETFramework 2.0をインストールしてしまっても
問題無いですか?
729デフォルトの名無しさん:2006/03/08(水) 02:05:08
基本的にない。
絶対ないと断言はできんが。
730デフォルトの名無しさん:2006/03/08(水) 03:20:19
>>725
VB6.0だけど .NETも一緒かなと思うのでレス

それは1回目はCommonDialog1.FileNameプロパティーは""だが
2回目は1回目に選択したファイル名が既にCommonDialog1.FileNameに入っているからでは?
2回目に表示させたときにダイアログのファイル名という部分を既にファイル名が設定されていると思うが
731デフォルトの名無しさん:2006/03/08(水) 09:20:20
For each
について質問なんですが

For i as short = 0 to hoge.count - 1

next

でまわす場合、iはそのままhogeのindex番号になるじゃないですか。

それを 
for each i as string in hoge

next

でまわした場合、iはhogeの何番目のindex番号か知る方法ってありますか?
dim a as short=-1

for each i as string in hoge
a += 1
(処理)
next

と言うやり方は、なんかうまくない感じがします。
732725:2006/03/08(水) 09:29:22
ありがとうございました。
733デフォルトの名無しさん:2006/03/08(水) 09:32:38
>>731
hogeが何かによるんじゃないの?
配列なのか、集合(List、Hashなどなど)なのか。
まあ、順番大事ならばeach使わないのが普通じゃないの?
734デフォルトの名無しさん:2006/03/08(水) 11:24:12
ちょっと教えて頂きたいのですが
カレンダーについてるテキストボックスの値が
変化したときにイベントを発生させるには
どうすればいいですか。
TextChangedイベントをハンドルしているのですが
何故か文字を入力してもイベントが発生しません。
KeyPressイベントは発生するのですが…
したいことは、カレンダーの横についてるテキストボックスに
日付が入れば、ある「ボタン」を有効にするというものです。
735デフォルトの名無しさん:2006/03/08(水) 11:37:43
Calender ってクラスはWindows.Web以下にしかないんだが。
736デフォルトの名無しさん:2006/03/08(水) 11:58:00
状況がよくわからないよ。
MonthCalenderコントロールには、テキスト入力する部分なんて無い
し。「したいこと」をもっと他人がわかるように詳しく書かないと。
737734:2006/03/08(水) 14:27:20
すみません。
もともとのツールボックスにはない
企業がVS.NETの為に作った有料のパッケージに入ってる
コントロールなので、ここで聞いても分からないですよね。
738デフォルトの名無しさん:2006/03/08(水) 18:23:17
一つのプロジェクトに複数のフォームがあるのではなく
フォームごとにプロジェクトが分かれている場合
Form1の値をForm2に渡すにどうすればよろしいですか?
一つのプロジェクトに複数フォームがある場合と同じ方法で
いけるでしょうか。
739デフォルトの名無しさん:2006/03/08(水) 18:26:42
やってみろよ。


……そう言えば VB のデフォルトアクセス修飾子は Friend だったっけ。
カプセル化とか考えてなさそうなコードが山ほど出てきそうだな……。
740738:2006/03/08(水) 19:31:38
無理でしたorz
教えてください。
741デフォルトの名無しさん:2006/03/08(水) 19:47:51
メソッドA
   Call B() '←これを Exit Sub と同等にしたい
End メソッド

メソッドB()
    呼び出し元メソッド(A)を終了するコード
End メソッド

メソッドAを、呼び出し先メソッドBから終了させることは可能でしょうか?
スレッドを利用してBでスレッド゙をAbortすれば一応うまくいくんですけど
これ以外の、呼び出し元メソッドのキャンセル方法ないでしょうか
742デフォルトの名無しさん:2006/03/08(水) 19:49:26
ダイアログという仮定で。
Form1 が Form2 を作成。
Form2 のプロパティを Form1 が設定。
Form2 を Showdialog()。
Form1 は Form2 のプロパティを参照。
キーワードは Public Property あたり。
743デフォルトの名無しさん:2006/03/08(水) 19:51:17
>>741
そんなメソッド怖くて呼べるか
手続き型プログラミングの基本を破りまくり
大体何でそんなのが必要なんだ
744デフォルトの名無しさん:2006/03/08(水) 19:57:14
>>741
なんのこっちゃ意味不明。
どうでもいいが「元」と「先」が逆じゃないの?
745741:2006/03/08(水) 20:48:04
>>743-744
Aに書くコードをなるべく減らしたいんです。

Sub A
 IF B Then
   Exit Sub   'ある条件が発生した場合は即終了
 End IF

 通常処理
End Sub

Function B() as Boolean
  IF ほりゃらら Then
    Return True  ' ある条件が発生した場合
  Else
    Retuen False
  End I F
End Function

AでBの戻り値を使って条件判断してる部分(IF文)をまるごとBに内包させて
Sub A
  Call B ' ある条件が発生した場合は即終了してくれる
End Sub

と簡単にしたいのですが、これには Exit Sub と同じ効果があるコードがないとできないので・・・
746デフォルトの名無しさん:2006/03/08(水) 20:56:20
sub A
を呼び出す前に、Bを呼び出せばいいじゃん。

つーか、
Call B

IF B Then Exit Sub
じゃあかんの?
747741:2006/03/08(水) 21:18:57
>>746
逆はちょっと・・・順番はA →B でお願いします

>IF B Then Exit Sub
IF文がAに記述されているので、今回やろうとしてることとしては駄目です。
でも確かにこれが一番簡単ですね・・・戻り値使わないというのはやっぱ無理があるのかなぁ・・・
748デフォルトの名無しさん:2006/03/08(水) 21:27:18
フローを無視するには例外しかない。
もともと例外を投げるべき状態を判定してるなら投げるべきだが、
フロー制御のためだけに例外を投げるのはやめといた方がいい。
749デフォルトの名無しさん:2006/03/08(水) 21:38:53
ネタでいってるんじゃなければ741は真性の馬鹿だな。
なんか本気っぽいけど。
悪いこと言わない、こういう明後日の方向の努力をする奴はPG向いてないよ。
750741:2006/03/08(水) 21:49:36
>>748
TryとThrowを使って、うまく思った処理をすることができました。
例外を投げるというのは未知の領域だったので、勉強になりました。
ありがとうございました!

>>749
やりたいことがやれるのがプログラムの魅力ではないでしょうか
751デフォルトの名無しさん:2006/03/08(水) 22:46:33
君が言う「やりたいこと」が、一般的なマナーに反していて他の人が
眉をひそめるようなことでも? 日曜プログラマで自分だけに留まる
ならともかくさ。

一度、まっとうなプログラミング本とか参考サイトとかひととおり読
んで見たほうが大吉。けっして煽ってるわけじゃなくて、きっと目か
ら鱗が落ちると思うよ。

少し前に去年書いたコードを読む機会があったんだけど、顔から火が
出て穴があったら埋まりたいくらい、すんげー書き方してたし。orz
752デフォルトの名無しさん:2006/03/08(水) 22:49:10
プログラム始めたばっかの頃のソースは酷いもんな。
753デフォルトの名無しさん:2006/03/08(水) 22:50:25
>>750
多分、If〜End Ifがいっぱいあってソースの行数が増えるのが嫌なんだろうが
悪いことは言わん、今すぐ元に戻せ。例外は本来エラーを通知するために使う物だ。

お前のやろうとしていることは
For〜NextやDo While〜Loopを使わずにGoTo文でループを作るのと同じで、
「言語仕様上できないことはないが、ソースの可読性を下げる等の理由でするべきではない事」だ。
それでも納得できないなら>>749の言うとおり、お前はPGに向いていない。
趣味でやってるなら問題無いが、仕事でそんなコードを書いているなら今すぐ転職をオススメする。

単純にソース量を減らすなら↓みたいにするべき

Sub A
 IF B Then Exit Sub   'ある条件が発生した場合は即終了

 通常処理
End Sub

Function B() as Boolean
 Return CBool(ほりゃらら)
End Function
754デフォルトの名無しさん:2006/03/09(木) 15:13:34
>>753
それを書くならFunctionBを呼ぶ必要がないだろw
755753:2006/03/09(木) 17:33:03
>>754
言われてみれば確かに必要ないな(ノ∀`)

まあ、コード量を減らすならこんなやり方があるよって事が
言いたかっただけってことでひとつ勘弁していただきたい
756デフォルトの名無しさん:2006/03/09(木) 22:18:15
すみません教えてください。。。
DataGridの1つのセルに数字を入力中に、数字に応じた内容を
ツールチップに表示させたいのだが可能ですか?
757デフォルトの名無しさん:2006/03/09(木) 22:45:56
TextChangedかKeyPressごとに、CurrentCellの内容を見てTipsを
更新するとか。
758デフォルトの名無しさん:2006/03/09(木) 22:53:23
イベントの扱いがどうなってるか教えてください。
イベントが連続して2回送られたときに、
1回目のイベントハンドラの終了を待たずに、
2回目のイベントハンドラが開始することってありますか?

実際にそのような現象が起きているのですが、スレッドIDは一緒でした。
謎。
759デフォルトの名無しさん:2006/03/09(木) 22:57:52
Application.DoEventsしてたりしないか?
760デフォルトの名無しさん:2006/03/09(木) 23:00:30
イベントハンドラの中で、
同じイベントハンドラを呼ぶイベントが発生するようなことを
しているんじゃない?
761デフォルトの名無しさん:2006/03/09(木) 23:08:18
>>759
Application.Run(form) してるだけです。

>>760
それはないですねー。

もしかしてイベント送信元に問題があったりしますか?
イベント送信元はOCXなんですが・・。
762デフォルトの名無しさん:2006/03/09(木) 23:18:45
イベントハンドラの中でメッセージボックスを表示してるとか
763デフォルトの名無しさん:2006/03/09(木) 23:26:15
>>762
メッセージボックス出してないですが、その場合は、
メッセージボックスが閉じられるまで次のイベントは待っててくれないんですか?

てっきり待っているものだと思っていました。
764デフォルトの名無しさん:2006/03/10(金) 00:05:05
>>763
TimerのTickイベントハンドラでMessageBox.Showすると
メッセージボックス閉じなくてもさらにメッセージボックスが表示されるよ。
MessageBox.Showの内部でメッセージループの処理してるから。
765デフォルトの名無しさん:2006/03/10(金) 00:25:22
お馬鹿な質問の可能性が大ですが、すごい気になるので教えてください。

クラスの静的メソッドを呼び出すとき、クラス名.メソッド名となりますよね。
String.Substring(2)
みたいな感じで。

でも、Enumクラスの静的メソッドを呼び出すときにはそれだと駄目で
[Enum].GetValues()
のように、括弧で囲まないといけません。
なんでなんですか??
766デフォルトの名無しさん:2006/03/10(金) 00:38:22
Enum が列挙体の宣言に使うキーワードでもあるから、これはキーワードじゃなくて型の名前であるという印。
767デフォルトの名無しさん:2006/03/10(金) 01:08:20
VB.NETでExcelを制御することってできますか。
グラフを書かせたり、それを印刷させたり。
できるんなら、方法きぼんぬ。
768デフォルトの名無しさん:2006/03/10(金) 01:29:28
>>766
お答えありがとうございます。
列挙体宣言に使うEnumとクラスとしてのEnumって、違うものだったんですね。
なるほど。なるほど。

ちなみに、Enumのほかに[]で囲まないと駄目なものって、
他にあるんでしょうか?
769デフォルトの名無しさん:2006/03/10(金) 02:04:14
>>764
なるほど!!!
ってことは当然MessageBox.Show()したスレッドIDは一緒になるよね。
とあるOCXの関数をイベント内で使っているけど、
そいつがイベント処理している線が濃厚ですね!

ありがとうございました。
770デフォルトの名無しさん:2006/03/10(金) 02:29:22

>>767
上の方にExcelの制御方法は書いてある気がするが・・・・・

VBAのコードで実行できることは、
Excel Object Libraryの中にいるクラスを使用して
同じことができるはず。

Excelのバージョンの違いや、Objectの開放に気をつけながら
やればそう難しくはないはず
771デフォルトの名無しさん:2006/03/10(金) 09:53:44
>>770
thx
772デフォルトの名無しさん:2006/03/10(金) 10:58:44
VB6のアプリケーションを.NETに移行したいのですが、いい開発支援ツールないですかね。
Devpartner studio proというのを見つけましたが。
こういった開発支援ツールを使えば比較的楽に移行できるのでしょうか。
773デフォルトの名無しさん:2006/03/10(金) 11:14:49
>>772
一から組み直した方が早い&確実&勉強になる。
ついでにデバッグもできて一石二鳥。
774デフォルトの名無しさん:2006/03/10(金) 15:43:11
AフォームからBフォームを呼び出した時に
BフォームのMyBase.Loadイベントを通らないのですが
どうしたら、通るようになるでしょうか。

ちなみにMyBase.Loadイベント内のコードにブレークポイントを
付けると、ブレークポイント内の●の中に、?が出ます。
そこにカーソルをあてると、「現在の設定ではヒットしません。
このドキュメントのシンボルが読み込まれていません」と出ます。
これについては、調べてみたのですが、どうしても解決方法が
わかりません。ご教授よろしくお願いします。
ちなみAフォームとBフォームは、ソリューションは同じですが
別プロジェクトで、AフォームがあるAプロジェクトの出力の種類は
「Windowsアプリケーション」で、「Bフォーム」があるBプロジェクトの
出力の種類は、「クラスライブラリ」です。

よろしくお願い致します。
775デフォルトの名無しさん:2006/03/10(金) 15:55:08
PictureBoxの継承コントロールを作成中なのですが、
プロパティに関して質問があります。
(バージョンはVB.NET2003です)

Imports System.ComponentModel
Public Class ScaledPictureBox
 Inherits System.Windows.Forms.PictureBox
(中略)
 Private pScaleTopLeft As PointF

 <Category("スケール"), _
 Description("右上座標")> _
 Public Property ScaleTopLeft() As PointF
  Get
   Return pScaleTopLeft
  End Get
  Set(ByVal Value As PointF)
   pScaleTopLeft = Value
  End Set
 End Property
End Class
776デフォルトの名無しさん:2006/03/10(金) 15:55:49
>>775のようにPointF構造体型のプロパティを作ると、
プロパティウィンドウでのプロパティ表示が
ScaleTopLeft {X=0, Y=0}
となり、プロパティウィンドウ上で変更出来ません。
(コード内で変更することは可能です)

[-]ScaleTopLeft 0, 0
  X 0
  Y 0
のようにプロパティウィンドウ上で表示・編集できるようにする
術はないでしょうか?
777デフォルトの名無しさん:2006/03/10(金) 17:41:33
>>774
FormB は OnLoad をオーバーライドしてたりする?

>>775-776
TypeConverter 属性を付ける必要がある。
ttp://www.microsoft.com/japan/msdn/net/general/vsnetpropbrow.asp
778デフォルトの名無しさん:2006/03/10(金) 18:18:21
>>777
ありがとうございました。
779デフォルトの名無しさん:2006/03/10(金) 18:29:55
質問です。

System.Diagnostics.Process.Start("mailto:[email protected]")

で、デフォルトのメーラーを起動できる事は判ったのですが、
指定したメーラーで開く事はできますか?

Outlook Expressで開きたいのにOutlook2003で開いてしまって困っています。
780デフォルトの名無しさん:2006/03/10(金) 18:34:17
フルパスでexe指定すれば? アドレスは第一引数に指定すればよかったはず
781775-776:2006/03/10(金) 18:35:26
>>775-778
追記。>>777を参考に該当するTypeConverterを探したところ

> SizeFConverter クラス
> メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

.NET2003なら自作しなきゃダメということが判明。
まあ、作れんこたないけど。
782デフォルトの名無しさん:2006/03/10(金) 18:47:45
それ以前に PointF を変換するのに SizeFConverter じゃまずいだろ
783デフォルトの名無しさん:2006/03/10(金) 18:48:50
>>780
その方法でできました。
この書き方でアドレスや、CC、BCC、件名、本文も入力できますか?
784774:2006/03/10(金) 18:59:56
>>777
いえ、オーバーライドしてません。
ロードされたときに、MyBase.Loadイベントを通らない理由が
分からないんですよね。
785デフォルトの名無しさん:2006/03/10(金) 19:19:22
>>774
君はFormのコード持ってるわけ?w
そいつはスゴイ。

まあ冗談は置いといて、というかこれが冗談に聞こえないなら
手抜きせずにマジメに勉強した方がいいと思うよ。
786デフォルトの名無しさん:2006/03/10(金) 20:17:01
Bフォームというのは、自分で作ったフォームを継承したものじゃないの?
787デフォルトの名無しさん:2006/03/11(土) 00:31:10
ツールチップの出し方教えてください
ちょうどVB.NETでメソッド名をタイプすると書式が出てくるやつです
tooltipというコントロールがありますがあれは、マウスカーソルがその
コントロールにあたっていないとでてこないのと出現場所が固定なので
不便です。宜しくお願いします
788デフォルトの名無しさん:2006/03/11(土) 00:33:33
>>787
まず日本語の勉強から開始した方がいいと思うぞ。
いったい何がしたいねん。
789デフォルトの名無しさん:2006/03/11(土) 00:52:41
>>788
おれの実装したいのはツールチップです。ツールチップって名前があっているかちょっと不安だが
VB.NETの環境でConvert.ToString(まで打つと書式のツールチップが出る
そのツールチップを作りたい。
具体的にはテキストボックスに文字を入力中にその文字が「メロン」ならば
「おいしい」という文字をツールチップの内容にするって具合なんだが「。。。。
790デフォルトの名無しさん:2006/03/11(土) 01:14:05
それはパラメータヒント(クイックヒント?)ってやつだ。
そんなコントロールは無かったような気がする。ToolTipsにしろ
HelpProviderにしろ、ポインタが指し示さないと動かないしな。

入力中の文字列をリアルタイムに評価して、カーソルのそばにフ
ローティングなラベルでも表示するとか、自前で実装しないと。
791デフォルトの名無しさん:2006/03/11(土) 01:28:42
>>790
パラメータヒントっていうのか。ヒントサンクス
HelpProviderとかフ ローティングなラベルで自前実装できないか
ちょっとやってみます
792デフォルトの名無しさん:2006/03/11(土) 09:07:59
2005 Express

線を描こうと思い、ネットで探し回りましたが

Dim g As Graphics = PictureBox1.CreateGraphics()
g.DrawLine(Pens.Black, 0, 0, 100, 100)
PictureBox1.Refresh()

と書いても線が書けません
どうすればよいのでしょうか?
793デフォルトの名無しさん:2006/03/11(土) 09:19:45
Paint イベントで e.Graphics 使って描くとか。
PictureBox の Image にあらかじめ Bitmap 作っておいて、そのビットマップに対して描画するとか。
794デフォルトの名無しさん:2006/03/11(土) 09:20:36
>>792
Private Sub pictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)
    Dim g As Graphics = e.Graphics
  g.DrawLine(Pens.Black, 0, 0, 100, 100) 
End Sub
795デフォルトの名無しさん:2006/03/11(土) 09:45:28
>>792
PictureBox1.Refresh()

え゛、、、、
796デフォルトの名無しさん:2006/03/11(土) 10:18:12
>>793-795
ありがとうございます。

他にもVB6との違いが多く戸惑っているので
書籍を買うことにします。
797デフォルトの名無しさん:2006/03/11(土) 11:43:31
グラフィックに関して詳しく扱ってる入門書は多分まずないと思うよ。
っていうか、グラフィックの描画方法とか考え方は基本的にVB6と違わないよ。
もし違うと思うなら、それがVB6で正攻法で描画コード書いてなかったってことだよ。

Paintイベントで描画せずに、コントロールのAutoRedraをTrueにして任意のタイミングで
描画とかしてたんじゃない?

まあとりあえずデバイスコンテキスト(ドトネトだとGraphicsオブジェクト)って
考え方が理解できれば後はMSDNとか見て前に進めると思うよ。
798デフォルトの名無しさん:2006/03/12(日) 02:04:55
2005 Expressを使用しています。
作っているソフトの中で、古いDOSアプリを実行する必要があり、
それに与えるパラメータの一つにショートファイルネームが必要なのですが、
どうにも標準で用意された関数が見つけられません。

Win32 APIで、GetShortPathNameA というのを見つけましたが、これを使うしか方法は無いでしょうか。
799デフォルトの名無しさん:2006/03/12(日) 09:09:34
>>798
標準ではなさそうなので、次のバッチファイルを用意しておいて
rem dos-start.bat
dos-command  %~s1
こうやって起動している。
cmd /cdos-start.bat  long-file-name.txt
800デフォルトの名無しさん:2006/03/12(日) 11:55:08
あとは古式ゆかしく FileSystemObject 使うとかな。
801デフォルトの名無しさん:2006/03/12(日) 13:25:51
vb.net で、ファイル名の直前のフォルダ名を取得したいのですが、
便利なメソッドはありますか?

例えば、c:\tmp\abc\def\ghi.txt という文字列から
def もしくは c:\tmp\abc\def を取得したいのですが。。。

もし、c:\tmp\abc\def の形式でしか取る事ができなかった場合、
c:\tmp\abc\def から def を取るのはそれほど難しくないですよね?

ヒントでいいのでよろしくお願いします。
802デフォルトの名無しさん:2006/03/12(日) 13:30:00
System.IO 名前空間をよく見るんだ……って分かりづらい説明しか書いてねぇ

Path クラス
803デフォルトの名無しさん:2006/03/12(日) 16:15:17
HashTable のキーの値の昇順で値を取りたいんですが
よい方法はないでしょうか?

Dim _h as HashTable = New HashTable()
_h(3) = "c"
_h(2) = "b"
_h(1) = "a"

のような場合、_h(1), _h(2), _h(3) の順で値がとりたいのです.

ただし,キーの値は何がはいっているかわからないので,
なんとかして HashTable のキー順に値をとりたいんですが方法が
わかりません.実現できる方法があればアドバイスよろしくおねがいします.
804デフォルトの名無しさん:2006/03/12(日) 16:32:07
何が入ってるのか分からないのにどういう順番なら良いのかな。
と言う茶々はおいといて、Keys を配列に CopyTo して、そいつを Array.Sort 。
で、その配列を foreach で回す。
805803:2006/03/12(日) 16:37:49
>>804
すみません. key には数値が入っていますが、連番になっていない
可能性がある、という事でした。

別配列に順序をソートしてそれを基準に HashTable を参照する
ってことですね。やってみます。ありがとうございました.
806デフォルトの名無しさん:2006/03/12(日) 17:41:23
Forループじゃダメなの?

For i = 1 To _h.Count
    Debug.WriteLine(_h(i))
Next

807798:2006/03/12(日) 17:42:52
>799-800
有り難うございます。

>799
"%~s1" この受け取り方、全く知りませんでした。
今後に役立つ事がありそうな予感。
808デフォルトの名無しさん:2006/03/12(日) 17:45:21
インデックスが連番になってないって言ってるだろ
809デフォルトの名無しさん:2006/03/12(日) 18:57:14
>>806
それで回るなら、ハッシュを使う意味はないんでは?
810デフォルトの名無しさん:2006/03/12(日) 23:57:38
SortedList使えよ
811デフォルトの名無しさん:2006/03/13(月) 05:06:11
Dim v As Long = &HFFFFEEFFL 'UInt32の範囲内
Console.WriteLine(v = (v And &HFFFFFFFFL)) 'True
Console.WriteLine(CInt(v And &HFFFFFFFFL)) '-273
Console.WriteLine(CInt(v)) ' OverflowException

前者は例外が出ないのに後者はオーバーフローするのはどうしてでしょうか?
812デフォルトの名無しさん:2006/03/13(月) 08:27:38
3番目の例でオーバーフローするのはむしろ当たり前で、
2番目の例でそれが発生しないことの方を不思議がるべきだと思う。
813デフォルトの名無しさん:2006/03/13(月) 10:58:01
>>811
CIntがどの型への変換関数か考えれば自明かと。
814デフォルトの名無しさん:2006/03/13(月) 11:59:12
>>811
俺の環境では
>>Console.WriteLine(CInt(v And &HFFFFFFFFL)) '-273
は-273じゃなくて補数表現で-4352とIntegerに変換された

恐らく、(v And &HFFFFFFFFL)この演算の時点で型の評価がIntegerとかになってるんじゃ?
後者の方は8Byte(Long)でCInt()に突入以後下記の処理

if CIntで32bit目のチェック = 1 then
 if 上位32bit = FFFFFFFF then
  負数 = (0xFFFFFFFF80000000) - (0xFFFFFFFFFFFFFFFF)
 else
  OverflowException
 end if
else
 整数 = (0x????????00000000) - (0x????????7FFFFFFF)
end if
815デフォルトの名無しさん:2006/03/13(月) 12:19:51
おー嘘書いてた。。。訂正

if CIntで32bit目のチェック = 1 then
 if 上位32bit = FFFFFFFF then
  負数 = (0xFFFFFFFF80000000) - (0xFFFFFFFFFFFFFFFF)
 else
  OverflowException
 end if
else
 if 上位32bit = 00000000 then
  整数 = (0x????????00000000) - (0x????????7FFFFFFF)
 else
  OverflowException
 end if
end if
816デフォルトの名無しさん:2006/03/13(月) 12:30:04
>>813
少しも自明じゃないと思うが。。
少なくとも
> Console.WriteLine(CInt(v And &HFFFFFFFFL))
これが通るのは全然自明じゃない。

知識がないなら黙ってりゃいいのに。
817813:2006/03/13(月) 13:35:27
>>811
コードをきちんと読まずにいい加減な回答をしてしまった。
申し訳ない。

Console.WriteLine(TypeName(v And &HFFFFFFFFL))
でもLong型なのは確認できるな。
818デフォルトの名無しさん:2006/03/13(月) 15:44:59
>>811
IL的にも問題なさげ、あるとしたらJIT?
IL_0000:  ldc.i4     0xffffeeff
IL_0005:  conv.u8
IL_0006:  stloc.0

IL_000e:  ldc.i4.m1
IL_000f:  conv.u8
IL_0010:  and
IL_0011:  conv.ovf.i4
IL_0012:  stloc.1
819デフォルトの名無しさん:2006/03/13(月) 15:53:53
SaveFileDialogにある保存ボタンのテキスト
を「保存(S)」から「選択」へ変更したいのですが、
何か方法はあるのでしょうか。
よろしくお願いします。

820デフォルトの名無しさん:2006/03/13(月) 17:44:25
>>814
> >>Console.WriteLine(CInt(v And &HFFFFFFFFL)) '-273
> は-273じゃなくて補数表現で-4352とIntegerに変換された
ああすいません、&HFFFFEEFFL はコピペせず適当に書いた値なんで。一個 E の位置がずれてました。

> 恐らく、(v And &HFFFFFFFFL)この演算の時点で型の評価がIntegerとかになってるんじゃ?
>>817
> Console.WriteLine(TypeName(v And &HFFFFFFFFL))
> でもLong型なのは確認できるな。
によって反論されますし、実際、直接 IL 書いて And の直後に Console.WriteLine(Integer) を呼び出したら保護メモリエラーです。
CInt は数値型を渡した場合ごく単純な IL (conv.ovf.i4) に変換されるだけですし。

>>818
なんですよねー。
なんで and を通したらオーバーフローにならないのかさっぱり分からない。
また、&HFFFFFFFFL をローカル変数に格納して And 演算を行った場合はオーバーフローです。
この場合ローカル変数が I8 なのがオーバーフローの元なのかと conv.u8 してみても駄目。
演算結果が &HFFFFFFFF で収まる、v Or &HFFFFFFFFL の場合はオーバーフロー。
この場合は conv.u8 の代わりに conv.i8 をすれば通ったり。
謎。

んー、ちょっと MSDN フォーラムの方でも聞いてみます。VS 共通フォーラムが良いかな。
C# でも checked ステートメント内で同じ現象が出るし。
821デフォルトの名無しさん:2006/03/13(月) 18:19:36
>>また、&HFFFFFFFFL をローカル変数に格納して And 演算を行った場合はオーバーフローです。
変数に一度保持させると64bit同士のand演算になり815で言った処理になるその場合
0x00000000FFFFEEFFは最上位ビットが0の為int32の正の限界を突破する為overflowすると思う

変数に一度保持させない場合下記のように定数(&HFFFFFFFFL)が事実上下位32bitで処理されてる

Sub Main()

   Dim v As Int64 = &HFFFFFFFFL
 0000000d mov esi,0FFFFFFFFh
 00000012 xor edi,edi
   Console.WriteLine(CInt(v And &HFFFFFFFFL))
 00000014 mov ecx,esi
 00000016 and ecx,0FFFFFFFFh
 00000019 call dword ptr ds:[79C56664h]
 0000001f nop

End Sub
822デフォルトの名無しさん:2006/03/13(月) 18:43:20
>>821
うお、向こうに書き込む直前。
なるほど、その辺の問題でしたか。JIT が微妙な最適化をやったってところ?
or の場合は定数の値の範囲で制限され得ない(32bitを超えうる)からこれには合致しない、と。
割とすっきりですー。

バグの元になる最適化だと思うけど。
823デフォルトの名無しさん:2006/03/13(月) 19:29:05
>C# でも checked ステートメント内で同じ現象が出るし。 
monoで動かしたらちゃんと例外が出ました。ワロス
824デフォルトの名無しさん:2006/03/13(月) 23:22:53
質問です。
ToolTipでフォントを設定方法が見当たりません。
どうやって設定すればよいのでしょう?
825デフォルトの名無しさん:2006/03/13(月) 23:34:44
>>819
簡単には無理。

>>824
デスクトップを右クリックして、プロパティからデザイン、詳細設定で……
フォントを標準以外にしたいのならオーナードロー汁。.NET 2.0 だけだけど。
826デフォルトの名無しさん:2006/03/14(火) 10:28:11
同じフォームを配列にしてやって、

複数表示させたいのですが、どうすれば良いのか全く判りません。

どうか、教えて下さい。


827デフォルトの名無しさん:2006/03/14(火) 10:35:20
言葉で書いてるとおりに実装すればいいと思うのだが。
むしろ何故「全く判らない」んだ?
828デフォルトの名無しさん:2006/03/14(火) 10:43:51
スミマセン ド素人なので。。。


Dim Myform() As Form2


For j = 0 To 1

Myform(j).Show()

Next

じゃ、ダメだったんです。。
829デフォルトの名無しさん:2006/03/14(火) 10:53:45
リファレンス/ヘルプで Visual Basic における配列 とかをまず嫁。
830デフォルトの名無しさん:2006/03/14(火) 11:07:22
空配列を宣言しても、実際に数を指定するまでは使えない。
()で宣言すれば、好きなだけ呼べると思っていたのかな?
831デフォルトの名無しさん:2006/03/14(火) 11:10:49
Dim Myform() As Form2

redim myform(0)

For j = 0 To 1

redim preserve myform(j)
myform(j) = new form2
Myform(j).Show()

Next
832デフォルトの名無しさん:2006/03/14(火) 11:13:13
>831

有難うございました。

早速、試してみます。
833デフォルトの名無しさん:2006/03/14(火) 11:56:48
配列っていうか、Listとか集合に任せたほうが安全だし簡単だし。
終わったフォームを削除したりも簡単だし、穴を気にしなくていいし。
834デフォルトの名無しさん:2006/03/14(火) 12:05:51
彼はそれより先に覚えることがたくさんあると思われ
835デフォルトの名無しさん:2006/03/14(火) 12:13:32
VB.NET 2005 Expressで、
クラスにシリアライズ属性を指定すると、シリアライズ可能になりますが、
その状態で、そのクラスのフィールドにカーソルをやると、
プロパティウインドウに逆シリアル化=Falseと出てます。
でも、これってクラスにシリアライズ属性を指定してるんだから、
デフォルトで逆シリアル化=Tureじゃないとおかしくありませんか?

ちなみに、そのプロパティをTrueに設定すると、
そのフィールドに、<NonSerialized()>属性が指定されます。
これってシリアル化しないって意味だから、
逆シリアル化もFalseって意味じゃないと変だと思うんですが。。。
836デフォルトの名無しさん:2006/03/14(火) 12:22:05
誤訳だろ
837デフォルトの名無しさん:2006/03/14(火) 12:47:17
やっぱそうですか
でもIDEの誤訳ってはじめて見た(;´Д`)
838デフォルトの名無しさん:2006/03/14(火) 12:51:02
FeedbackCenterに投げてやれ 日本語でもOKだぞ
839デフォルトの名無しさん:2006/03/14(火) 13:31:29
VB2005

前まであったPictureBoxのAutoRedrawプロパティどこいった?
再描画されないんだけど
840デフォルトの名無しさん:2006/03/14(火) 13:39:05
Image に Bitmap 突っ込んでそれに描いとけ
841デフォルトの名無しさん:2006/03/15(水) 16:12:28
AxWebBrowserコントロールで、表示しているHTMLページのイベントを取得するには
どうすればいいの?
842デフォルトの名無しさん:2006/03/15(水) 16:17:57
Documentプロパティから辿ってけ
843デフォルトの名無しさん:2006/03/15(水) 16:25:02
>>842
MSDNでWebBrowserで検索しら、一発で出てきたorz
すまそ
844843:2006/03/15(水) 17:00:13
http://support.microsoft.com/default.aspx?scid=kb;ja;311284
できたのはいいんだけど、
なんかEventに戻り値があるんですけど(゚д゚;)
845デフォルトの名無しさん:2006/03/15(水) 17:07:58
イベントに返値があっちゃいかん理由も無かろう
.NET 的マルチキャストなイベントとは反りが合わんが
846デフォルトの名無しさん:2006/03/15(水) 23:17:05
ベーシックみたいな文法がうざいんですけど、どうにかなりませんか?
847デフォルトの名無しさん:2006/03/15(水) 23:20:28
C#使えば。
俺は逆にC#のCみたなコードがうざい。だからVB.NET。
848デフォルトの名無しさん:2006/03/16(木) 17:17:28
ボタンを右クリックでも押せるようにするのは
どうしたらできるでしょうか?
Buttonクラスを継承してOnMouseDown()から自作で
やれば良いのかなぁという気はしているのですが、
押下状態をどうやったら描画できるのかがわかりません。
849デフォルトの名無しさん:2006/03/16(木) 17:28:18
ControlPaint使う?
850デフォルトの名無しさん:2006/03/16(木) 18:40:14
windows2000にログオンした時のユーザ名を取得したいんだけど、いい方法ある?
ヘルプでログオンとかログインって調べても、ウェブサービス絡みしかでてこないのですよ。
851デフォルトの名無しさん:2006/03/16(木) 18:43:34
ログオンしたときのユーザ名?
どのタイミングでどういう状況で取得することを考えてる?
現在のプロセスを走らせてるユーザ名なら System.Environment.UserName で取れるが。
852デフォルトの名無しさん:2006/03/16(木) 18:55:10
>>851
ログオンし終わって、普通のVBアプリケーションで使おうと思ってるの。
今実行してみましたが、System.Environment.UserName で取れるもので大丈夫そうです。
凄まじい速さのレス、ありがとうございました。
853デフォルトの名無しさん:2006/03/16(木) 18:56:53
実行ファイルを右クリック>別のユーザとして実行とかされるとそのユーザになるから注意な。
854デフォルトの名無しさん:2006/03/16(木) 19:07:35
>>853
それは……まずいなあ。
回避方法はあるの?
855デフォルトの名無しさん:2006/03/16(木) 19:17:17
まずいって意味わからんな。
ログオンしているユーザーは一人とは限らんよw
マルチユーザー環境が根本的に分かってないんじゃないか
856デフォルトの名無しさん:2006/03/16(木) 19:20:03
>>855
……分かってない(′・ω・`)
でも、そのプログラムを起動したユーザを取得できるんなら、いいのかも……?
取り敢えず、さっきのでやってみます。
色色とありがとうございました。
857デフォルトの名無しさん:2006/03/17(金) 08:02:14
SQLServer認証使った場合は、コネクションプールが無効だと言われたので、
SqlConnection使ってOPEN
CLOSEを行うアプリを作成しSQLプロファイラで
ログイン発生有無を確認したのですが、コネクションプール効いているように
見えるのですよね。

環境:VS2005+SQLServer2005

私が何か勘違いしているのでしょうか?
もしくは環境によって動きが違う等あるのでしょうか?
858デフォルトの名無しさん:2006/03/17(金) 09:21:59
誰が何処で無効だと言ってるのか?
859デフォルトの名無しさん:2006/03/17(金) 11:44:30
WindowsForms の TextBox で、入力値を制限したいのですが
どのようにやればいいのかわかりません。

入力できる文字を数字の 0 から 9 までと、アルファベットの Aから F
に制限したいのですが、何かよい方法があれば教えてください。
860デフォルトの名無しさん:2006/03/17(金) 12:06:14
TextChangedで検証
桁数が決まってるのなら2.0ではMaskedTextBox
861デフォルトの名無しさん:2006/03/17(金) 12:20:59
>>858
http://school5.2ch.net/test/r.i/lic/1136816383/
話しの経緯は、↑の782の問いから始まり、805にその事が書いてあります。
862デフォルトの名無しさん:2006/03/17(金) 12:38:19
認証はプーリングとは無関係、と言ってるようにしか読めないのだが
863デフォルトの名無しさん:2006/03/17(金) 12:50:06
>>862
サンクス

プールされない=プールが無効
と解釈してしまったのだけど、
ここが間違っているのかな?
864デフォルトの名無しさん:2006/03/17(金) 13:00:32
質問させてください。
VB.NETからACCESSのデータを取得するには以下のコードでできたのですが、
このとき対象となるテーブルに排他ロックをかけたいのですが、
可能なのでしょうか?
SQLSERVERであれば、
select * from テーブル名 with(tablockx,holdlock)
で可能ということはわかりました。
ご教授よろしくお願いします。
Dim oleConn As System.Data.OleDb.OleDbConnection
Dim retTb As New DataTable
Try
'DataBaseに接続する
oleConn = New System.Data.OleDb.OleDbConnection
oleConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
+ "Data Source=" + "@データベースのパス"
oleConn.Open()

'Select文を発行する
Dim selectCommand As System.Data.OleDb.OleDbCommand
selectCommand = New System.Data.OleDb.OleDbCommand
selectCommand.CommandText = "SELECT * FROM " + "テーブル名"
selectCommand.Connection = oleConn

Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter
da.SelectCommand = selectCommand
da.Fill(retTb)
865857:2006/03/17(金) 21:24:56
そういえば、認証とプーリングは、↓の関係。
http://msdn2.microsoft.com/ja-jp/library/8xx3tyca.aspx
>同じ構成を持つ接続のみをプールすることができます。ADO.NET は、1 つの構成につき
>1 つのプールを同時に複数保持します。接続は接続文字列によってプール内で区別されます。
>また、統合セキュリティを使用している場合は、Windows ID によっても区別されます。

つまり、次の単位にコネクションを共有できると読み取れるのだが。。。
・SQLServer認証:接続文字列
・Windows認証 :接続文字列&Windowsユーザー

さらに、接続クライアント(=アプリ)が違っても共有されなかったのだが、
この辺の記述が、見つけられなかった。
※ログインするだけのexeを作って、コピーして名前を変えて同時に動かし、テストした。

ADO1.0とかだと、動きが違うとかあるのですかねぇ?
866デフォルトの名無しさん:2006/03/18(土) 01:10:01
VBAをやってて、VB.netをやり始めたんだけど
今までの知識って全部捨てた方がいいのかな?
オブジェクト志向ってのが全然わかってましぇん
867デフォルトの名無しさん:2006/03/18(土) 01:15:30
捨てようとして捨てられるモンでもないけどな。
取りあえず全く別の言語であるという前提の元で始めるべきではある。
868デフォルトの名無しさん:2006/03/18(土) 02:16:55
>>865
> さらに、接続クライアント(=アプリ)が違っても共有されなかったのだが、
> この辺の記述が、見つけられなかった。

「プールの作成と割り当て」ってとこに
「接続は、プロセス、アプリケーション ドメイン、接続文字列、および
Windows ID (統合セキュリティを使用している場合) ごとにプールされます。」
と書いてあるが。
869デフォルトの名無しさん:2006/03/18(土) 10:54:34
>>686
C言語と、Javaが似ているレベルの共通点しか無いから要注意。
870デフォルトの名無しさん:2006/03/18(土) 10:55:11
>>866
ミスった、686じゃなくて、866orz
871デフォルトの名無しさん:2006/03/18(土) 11:43:00
VC#なのですが、質問スレが無くスレ違い失礼します。

VC#でも、VisualBasic6のようなコントロール配列はありますか?
872デフォルトの名無しさん:2006/03/18(土) 11:46:06
グローバルフックをVB.NETで使えますか?
873デフォルトの名無しさん:2006/03/18(土) 11:47:20
>>871
あるし。#は全角。ナンバーじゃないよシャープだよ。

>>872
基本的に使えない。
874857:2006/03/18(土) 13:17:51
>>868
うぉ(゚□゚ ;ノ)ノ
もろ見落としていた。。

すっきりしたよ、サンクス!
875デフォルトの名無しさん:2006/03/18(土) 17:56:51
vb2005ってWebbrowserコントロールでNewwindow2とか3って使えないんだね。
せっかくタブブラウザ作ってたのに、新しいウィンドウが開くときに、新しいTABにページを表示しようとしても、
開こうとしているURLを取得できない。

あと、リンクにマウスポインタを乗っけたときに発生するイベントがなくなってる・・・


876デフォルトの名無しさん:2006/03/18(土) 18:00:00
取得できますが
877デフォルトの名無しさん:2006/03/18(土) 18:03:31
878http://www.vector.co.jp/soft/win95/util/se072729.html:2006/03/18(土) 18:31:29
TextSS の64bit化おながいします

もしくは64bitにネイティブ対応した置換ソフトないですか?
879デフォルトの名無しさん:2006/03/18(土) 20:56:38
ビルドした実行ファイルの起動が凄い遅いのはなんとかならんの?
拡張子を変換するだけのアプリが8秒かかるんだけど
880デフォルトの名無しさん:2006/03/18(土) 20:59:51
>>879
ほんの少し調べれば、ツールの話が出てくるんだが。
なんとかならんの?とか無知をさらす前にちょっとぐらいぐぐれ。
881デフォルトの名無しさん:2006/03/18(土) 20:59:54
ngenで多少はマシになるかもな
882デフォルトの名無しさん:2006/03/18(土) 21:17:17
ngenやっても倍とかにはならんだろ
883デフォルトの名無しさん:2006/03/18(土) 23:20:31
VBの最適化ってな〜に〜?
884デフォルトの名無しさん:2006/03/18(土) 23:47:39
VB.net 2005 Expressで、

Dim id As System.Guid
id = System.Guid.NewGuid()

ってソースをステップ実行させて、idにカーソルを合わせると、
{System.Guid}
Empty: {System.Guid}

って出るんだけど、これってちゃんとGuidを表示してくれないものなの?
ちなみに、Console.WriteLineから出せば、ちゃんと生成されたGuidが表示されるんだけど・・・なぜ?(;´Д`)
885デフォルトの名無しさん:2006/03/18(土) 23:58:45
単に静的フィールド表示してるだけじゃね?
886デフォルトの名無しさん:2006/03/19(日) 00:07:25
じゃあ、ToStringさせないと出してくれないってことですか?
うーん・・・(;´Д`)
887デフォルトの名無しさん:2006/03/19(日) 00:11:35
>id = System.Guid.NewGuid()
この行で止めてるなら表示されるわけないじゃんw
888デフォルトの名無しさん:2006/03/19(日) 00:14:29
>>887
止めてないよ
その行も実行させた後の話
889デフォルトの名無しさん:2006/03/19(日) 02:52:10
確かに出ないな…なんでだろ。
890デフォルトの名無しさん:2006/03/20(月) 00:35:09
仕様です。
891デフォルトの名無しさん:2006/03/20(月) 02:50:25
アカデミックが異様に安いんですが,通常のスタンダードと差はあるんですか?
892デフォルトの名無しさん:2006/03/20(月) 07:33:20
ある。
購入者資格制限。
893デフォルトの名無しさん:2006/03/20(月) 14:21:11
とあるネット上に公開されてたコードをDelphiに移植したくてVisualStudioを買ったんだけど、
VBW,VBP,FRM,FRXの拡張子のファイルしかないんだけど、これってこれだけのファイルからじゃ、
実行ファイルは育成できませんか?
894デフォルトの名無しさん:2006/03/20(月) 14:26:49
それは、VB6→VB.net→Delphiの処理が必要じゃないのか?
とりあえずvbpを開いてvb.netに移植するのが先と思われ
895デフォルトの名無しさん:2006/03/20(月) 14:28:23
VS2002以降じゃどうしようもない気がする
というかDelphiに移植したくてVS買うって意味分かんないんだけど。
896デフォルトの名無しさん:2006/03/20(月) 14:43:22
>>894-895
レスありがとうございます。

ソースの中身をみたら処理が分かるだろうと思っていたのですが、DLLの呼び出しなどがどうしても分からないもので、
VS買ってステップ実行して動作を一つずつ見てそのとおりにDelphiに移植しようと思って購入しました。

VBPは以下に引用しますがVB.NETはVS2005でも代用できますか?
Type=Exe
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINDOWS\system32\stdole2.tlb#OLE Automation
Reference=*\G{00000205-0000-0010-8000-00AA006D2EA4}#2.5#0#C:\Program Files\Common Files\system\ado\msado25.tlb#Microsoft ActiveX Data Objects 2.5 Library
Object={248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0; mswinsck.ocx
Form=Form1.frm
Form=BID.frm
Form=ASK.frm
IconForm="Form1"
Startup="Form1"
HelpFile=""
Title="O2GDDE"
ExeName32="hogeDDE.exe"
Command32=""
Name="hogeDDE"
HelpContextID="0"
CompatibleMode="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0
VersionCompanyName="hoge"
897デフォルトの名無しさん:2006/03/20(月) 14:44:07
続きです。
CompilationType=0
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
Retained=0
ThreadPerObject=0
MaxNumberOfThreads=1

[MS Transaction Server]
AutoRefresh=1
898デフォルトの名無しさん:2006/03/20(月) 14:49:17
>>896
その前にDelphiでのAPI呼び出しの仕組みというか呼び出しの記述方法は理解してるか?
899デフォルトの名無しさん:2006/03/20(月) 14:54:09
>>898
Delphiでは簡単なユーティリティ系から簡単なDBのソフトまでは作っておりAPIも使っています。
900デフォルトの名無しさん:2006/03/20(月) 14:54:25
>>893
FRMのファイルにソースが記述されてるんじゃ?
901デフォルトの名無しさん:2006/03/20(月) 14:57:00
>>896
BIDとかASKとかDDEって記述があるから、
たぶんDDE使った相場がらみのソフトかな?
VS2005そのものは問題ないけど、
問題なのは、VB→VB2005への変換で、VSがどこまでやってくれるかだけど、
これがほとんど期待できないので、結局は.netを覚えるしかない
それなら、VBソースから、直接Delphiを書いたほうが早いと思われ
902デフォルトの名無しさん:2006/03/20(月) 15:07:33
>>900
FRMにボタンを押した処理などは書かれています。
ですが、肝心のDLLのコールの仕方や引数が分からなくて。
メーカーもまともなドキュメントは出さずに、このSampleを参考に汁!状態なものですから・・・orz

frmファイルのほうは、ボタンを押したらログインしてタイマーを回すってところまでは書いてますが、
Timer1が規定値になったときに行われる処理が書かれている場所が無かったりと、ちょっと意味が不明でして。。。

DelphiみたいにProjectファイルを開いたらFormなどが表示されてそこをダブルクリックしたら処理ルーチンが
表示されると思っていたのでちょっとギャップを感じてます。。。orz

>>901
.netは別に買うしかないのでしょうか?
それともVS2005で開けますか?
903デフォルトの名無しさん:2006/03/20(月) 15:12:59
>>902
>.netは別に買うしかないのでしょうか?
>それともVS2005で開けますか?

つーか2005は.netだから
つーか買ったんだから四の五の言わずにとりあえず開いてみろよw
904デフォルトの名無しさん:2006/03/20(月) 15:16:43
>>903
いやもちろん開いてまして。
ファイルを開くでfrmとvbpを開いてもテキストエディタチックに表示されるだけでF8でステップ実行もできないですし、
DLLを呼んでるところも見つからないもので。。。orz
905デフォルトの名無しさん:2006/03/20(月) 16:40:55
DDEが出た時点で.NETはダメだろ
素直にVisualStudio6.0以前を入手すべし

あとVBもDelphiも対して変わらんよ
イベントプロシージャのある場所がちょっと違うだろうけど
906デフォルトの名無しさん:2006/03/20(月) 18:18:43
896です。

プロジェクトを開くの方からVSで開けるように形式に変更できました。
Loadをばっさり削除したりしてとりあえず表示は出来るようになったのですが、
***で隠されて表示されてるPasswordはきちんと認識されないですし、外部からのデータの
取り込みもまともにできない。。。orz

一つ教えて欲しいのですが、今までは
Timer1.Interval=10000
などでタイマーのイベント間隔を規定して自動的にタイマーイベントが発生してたみたいなのですが、
VSではこのコードだとイベントが発生しないみたいです。
これはどうすれば回避できるのでしょうか。
907デフォルトの名無しさん:2006/03/20(月) 18:25:51
Start 呼んだり Enabled を True にしたりしてる?
908デフォルトの名無しさん:2006/03/20(月) 18:36:01
>>907
元のソースがその辺の手続きをせずにきちんと動作してたもので。。。スマソ
皆さん何度も何度もアドバイスありがとうございました。

ちょっと格闘してきます。
909デフォルトの名無しさん:2006/03/20(月) 18:58:03
VB.NETでVB6以前のプロジェクトを開いた場合
かなり行儀の良いプログラムじゃなければ綺麗に変換されない
910デフォルトの名無しさん:2006/03/20(月) 19:54:06
.Netframeworkのバージョンやリビジョンの情報は、どのクラスで分かりますか?
どなたかご教授願います。
911デフォルトの名無しさん:2006/03/20(月) 19:58:38
微妙に意図不明だが、現在のアセンブリが動いてるCLRバージョンならSystem.Environment.Version
912デフォルトの名無しさん:2006/03/21(火) 11:28:42
VB.NETからDLLを呼び出す場合のマーシャリングについて教えてください
DLLはCOBOLです。ぐぐってみましたが情報が少なくて orz
呼び出し方はDeclare Autoです。
913デフォルトの名無しさん:2006/03/21(火) 11:35:32
>>912
まず日本語の勉強を(w
アンタそれ読んで他人に君のいいたいことが通じると本気で思ってるわけ?
914912:2006/03/21(火) 12:06:57
゚Д゚自分でも何を言ってるかわからんが
他力本願です。なにかヒントください
915デフォルトの名無しさん:2006/03/21(火) 13:29:25
作ったアプリケーションを部分リリースできるように、
したいんですが、dllとdllの連携はどのように行えばよいのでしょうか。
916デフォルトの名無しさん:2006/03/21(火) 13:34:02
参照すればいい。
循環参照にならないように注意する必要はある。
917デフォルトの名無しさん:2006/03/21(火) 13:56:14
非常に初歩的で恐縮ですが、
参照したdllにスタートページにしたいページが含まれる場合、
どのようなことをすればよろしいでしょうか。
たとえば、ログインページとメニューページをDLLとして作成し、
アプリケーション本体となるDLLを部分リリースする場合、
ログインページをスタートページにするにはどうすればよいでしょうか

すいませんが、ご伝授ください
918デフォルトの名無しさん:2006/03/21(火) 13:58:13
ASP.NET か WinForm かどっちだ。
919デフォルトの名無しさん:2006/03/21(火) 14:04:15
ASP.NETです。
よろしくお願いします。
920デフォルトの名無しさん:2006/03/21(火) 16:39:58
Windows Forms のアプリで自分自身(exe)を再起動したいのですが、
何か方法があれば教えて頂けないでしょうか?
921デフォルトの名無しさん:2006/03/21(火) 17:02:28
なにそのマルウェアみたいな仕様。
なぜそうする必要があるのかを書けば、代案が出てくるかも。
922デフォルトの名無しさん:2006/03/21(火) 17:22:02
代案も糞もw
再起動もなにもあるかよ。要は「起動」するだけでしょ。
こういう幼稚園児レベルの知恵がない人はプログラマの目はないと思う。
923デフォルトの名無しさん:2006/03/21(火) 18:07:14
いやいや、起動すること自体が問題じゃなくてさ。
>>920が再起動させたいと思い至った過程が知りたくて。
924920:2006/03/21(火) 18:36:53
なんか叩かれてしまいましたが。。。

プログラムを起動していろいろ処理をしている間に、
シングルトンで実装したいくつかのクラスを、起動時の状態によって
生成しています。

あるタイミングでそのシングルトンのクラスを再度生成したいのですが、
それらのクラス内での再読み込みのメソッドを作成はしたくなく
(任意のタイミングで再読み込みができないクラスにしたいため)
どうしたもんかと考えていました。

で、プログラム自体を再度起動してやりなおすのがてっとり早いかな、
と思いまして。抽象的な回答ですみません。

で、そのプログラム自体は mutex で二重起動を抑制しているので、
自分自身が存在している状態で、「起動」する事ができなく
何からの方法で再起動できないかな、と思いまして。。。

クラスやアプリケーションの設計を見直せ、というのはなしでお願いします。


925デフォルトの名無しさん:2006/03/21(火) 18:56:15
なら自分の発射台を発射すればいいんじゃないの?
926デフォルトの名無しさん:2006/03/21(火) 18:59:21
というか再起動が必要なときにMutex解放すりゃ良いじゃねぇか
927デフォルトの名無しさん:2006/03/21(火) 19:45:47
もしv2.0なら、Application.Restart()なんて簡単な方法もある。
928デフォルトの名無しさん:2006/03/22(水) 08:20:49
Visual Basic 2005 Express Edition を遂に買った。

何と、インターネットエクスプローラもどきのソフトが5分で作成出来るのには驚きだ。
929デフォルトの名無しさん:2006/03/22(水) 10:47:22
ListViewについて質問です。

プログラム上で、ListViewのあるitemを選択させているのですが、
Item数が多くスクロールしないと見えない位置にある場合、
そのitemが見える位置まで自動的にスクロールさせる方法なないでしょうか?
930デフォルトの名無しさん:2006/03/22(水) 10:55:04
あるよw
931デフォルトの名無しさん:2006/03/22(水) 11:30:25
>>930
あるんだ
932929:2006/03/22(水) 11:35:45
>>930
ありましたねw

解決しました。ありがとう。
EnsureVisibleメソッドを見逃してました。お恥ずかしい。
933デフォルトの名無しさん:2006/03/22(水) 13:29:03
>>928
感動しているところすまないが、それはIE3.0以降が出て以来、ほとんどのWindows上の開発環境でそうなんだ
934デフォルトの名無しさん:2006/03/22(水) 14:57:27
しかもExpressを買ってるし(;つД`)
935デフォルトの名無しさん:2006/03/22(水) 16:56:45
やっぱ箱入りだろ
936デフォルトの名無しさん:2006/03/22(水) 17:23:56
付いてくる解説本が最悪って噂だけど、ほんとのところどうよ?
937デフォルトの名無しさん:2006/03/22(水) 17:37:15
厚さは12mmで294ページだな、解説本は2,200円とふんだな。
内容はまあこんなもんだな、最初からあまり期待してねえし。
938デフォルトの名無しさん:2006/03/22(水) 21:57:13
ボタンをクリックしたときに、TextBox.Textの内容を
IEで開いたGoogleのトップページにある検索文字列入力欄に転写することは可能ですか?
可能であればどんなコントロール使えばいいんでしょうか。

VBかC#どちらかで。
939デフォルトの名無しさん:2006/03/22(水) 22:01:51
その IE ってのは既存の IE なのか新しく起動させるのか WebBrowser コントロール使うのか、一体どれだ。
940938:2006/03/22(水) 22:09:52
すでに開かれている(起動済み)IEです。
941デフォルトの名無しさん:2006/03/22(水) 22:35:29
2つ以上開いてたらどうすんのよ?
942938:2006/03/22(水) 22:39:11
>>941
プロセスIDが一番遅いやつで。
一個しか開いてないって限定でもかまいません。
943デフォルトの名無しさん:2006/03/22(水) 22:39:27
IEが開いてなかったらどうすんだ
Googleトップを開いてなかったらどうすんだ
944デフォルトの名無しさん:2006/03/22(水) 22:51:12
もはや丸投げ状態な悪寒。
945938:2006/03/22(水) 22:53:09
突っ込まれすぎてごめんなさい。

IEでgoogleトップページを開いている

という限定した条件のもとで動けばいいです。

IEが開いてないとかgoogleトップじゃないとか
そんなことはありえない!!
て感じでかまいません。
946デフォルトの名無しさん:2006/03/22(水) 23:58:27
キーワードだけ
Shell.Application Windows
947デフォルトの名無しさん:2006/03/23(木) 01:11:07
VB.NETでExcelを制御するアプリは作れるように
なったんだけど、
あるブック"hogehoge.xls"内のプロシージャを
アプリから呼び出す(実行させる)ことって、できますか?
948デフォルトの名無しさん:2006/03/23(木) 09:54:43
xlBook.Application.Run("aaa")とかじゃダメなのか?
949デフォルトの名無しさん:2006/03/23(木) 13:44:28
当たり前だけど、Publicになっていないとダメ
950デフォルトの名無しさん:2006/03/23(木) 23:17:05
>>948
THX!!
早速明日試してみる。
951デフォルトの名無しさん:2006/03/24(金) 00:11:39
すまん。みんなの知識をオラに分けてくれ!!
PCが2台あったとして、PC1のほうで、
途中まで作ったプログラムの続きをPC2の
ほうで作成したい場合、、、どうすればいい?

VB.NET は両方のPCに入っているとして、、
952デフォルトの名無しさん:2006/03/24(金) 00:18:18
ソリューションをフォルダごと持ってけばいいんじゃね?
953951 VB初心者:2006/03/24(金) 00:50:53
>>952
ありがとうございました。
試してみます。
954デフォルトの名無しさん:2006/03/24(金) 00:53:38
>>933
そうなんだ。
ソフト開発は、Java Script でタイプレッスンを開発したくらいで、
ソフト開発言語を購入したのは初めてです。

良かったら僕の作ったHP の Java Script で開発したタイプレッスンの
評価をいただければ嬉しいです。
http://www4.ocn.ne.jp/~hoshiy/index.htm ←JavaScriptで作成したタイプレッスンです。
よろしくです。
955デフォルトの名無しさん:2006/03/24(金) 01:28:30
IEがぶっこわれた。
956デフォルトの名無しさん:2006/03/24(金) 02:03:30
http://www4.ocn.ne.jp/~hoshiy/index.htm 
x64導入体験記

にいったらいきなりブルースクリーンになってびっくりした
957デフォルトの名無しさん:2006/03/24(金) 04:07:43
>>956
うーん、まあね。脅すつもりでは無いんだけどもね。

ところで、内容は読めたのでしょうか?
958デフォルトの名無しさん:2006/03/24(金) 12:23:35
質問です。
DBから取得したデータをListViewにセットしてるんですが、
セット時にデータを1件1件セットしてる描画が見えます。
データ件数が少なければ問題ないと思うのですが、件数が多いときは
処理速度が遅くなってしまうと思います。

そこでデータをセット時に描画をOFFにして全てのデータをセットし終わったときに
描画をONする(処理速度を上げる)ようなことがしたいのですができるのでしょうか?
(SpreadのRedrow=Falseのようなもの)
959デフォルトの名無しさん:2006/03/24(金) 12:24:56
BeginUpdate
960デフォルトの名無しさん:2006/03/24(金) 13:53:41
>>959
できました。ありがとうございました。
961デフォルトの名無しさん:2006/03/24(金) 19:59:48
シューティングゲームとかで、バキューンって感じに巨大な弾出してくる敵を
ススイッ・・・と避けながら、ミサイルをドドドーンって感じに攻撃するようなゲームを
作りたいんですけど、VB.NETで、どうやったら作れますか?
962デフォルトの名無しさん:2006/03/24(金) 21:07:52
バキューン
ススイッ
ドドドーンって感じで作ってみよう
963デフォルトの名無しさん:2006/03/24(金) 21:15:49
>>961-962
(・v・)ホホエマシィ
964デフォルトの名無しさん:2006/03/24(金) 21:49:29
>>961
シューティングツクールを使っとけ。
965デフォルトの名無しさん:2006/03/25(土) 01:58:52
やりたいこと:
クリックしてもアクティブにならないフォームを作成し、
そのフォームに半透明の十字のマークを表示したい。
その十字マークも、クリックしてもアクティブにはなってはいけない。

目的:
FPSゲームで、画面の中央に十字で目印を表示して射撃しやすくしたい。
だから、クリック時にフォームがアクティブになると困る。

現在:
フォームそのものがアクティブになるのを避けることは出来るようになってるんですが、
十字マークをクリックしたときにアクティブになるのを避けることが出来ません。
これを、十字マークも当たり判定が無くなるように出来る方法を探しています。

どなかた方法を知っておられましたらご教授ください。

次レスにて現在のコードをコピペします。
966965:2006/03/25(土) 01:59:41
なお、2003でも2005でもどちらでもかまいません。

Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'フォームを半透明にする。
Me.Opacity = 0.5
'フォームの境界線をなくす
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
'大きさを適当に変更
Me.Size = New Size(100, 100)
Me.Location = New Point(50, 50)
'透明を指定する
Me.TransparencyKey = Color.White
'フォームの背景色を透明色にする
Me.BackColor = Color.White
End Sub

Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
Dim p As Pen
'Penオブジェクトの作成(幅3赤色)
p = New Pen(Color.Red, 3)
Try
'十字に線を引く
'この線の当たり判定を消したい。でも方法が不明!
e.Graphics.DrawLine(p, 0, 50, 100, 50)
e.Graphics.DrawLine(p, 50, 0, 50, 100)
Finally
p.Dispose() 'リソースを開放する
End Try
End Sub
End Class
967デフォルトの名無しさん:2006/03/25(土) 02:18:22
固定で良いのなら直接画面のデバイスコンテキストに書き込んだ方が手っ取り早い気がする。
が、DirectX 使ってるとどうなんだろ?
968デフォルトの名無しさん:2006/03/25(土) 03:13:34
画面にセロテープを張ってマジックで十字を書いたらあかんのか?
969デフォルトの名無しさん:2006/03/25(土) 03:18:02
ひでーなw
970デフォルトの名無しさん:2006/03/25(土) 10:11:18
VB.NET express iso を入れたんだが、
モニター左側に赤い線が表示されるようになった。
OS再起動しても直らん。誰か分かる人いますか?
971デフォルトの名無しさん:2006/03/25(土) 10:15:07
>>970
単にモニターが壊れただけじゃないのか
972デフォルトの名無しさん:2006/03/25(土) 10:25:35
おれもISO入れたけど、起こってないなあ
それはフィードバック送信した方よさそう
973デフォルトの名無しさん:2006/03/25(土) 12:35:42
iso入れるって意味わからんよ。
仮想化される前の生のデータ形式がなんだろうと関係ないだろ。
君はwebからダウロードしたソフトは「xxxxインターネッツ」とかいうわけ?w
974デフォルトの名無しさん:2006/03/25(土) 13:54:08
ISO形式のをダウンロードしてインストールしたってことだろ。
チマチマいじんな。
975デフォルトの名無しさん:2006/03/25(土) 14:27:11
>>968
サランラップでやったほうがお手軽&再利用もできるよ。
976デフォルトの名無しさん:2006/03/25(土) 14:35:00
だが断る!
977デフォルトの名無しさん:2006/03/25(土) 17:49:18
>>973
一番意味が通じやすいと思うが?
978デフォルトの名無しさん:2006/03/25(土) 19:47:38
VB.net2005で、別スレッドを作って
そこからフォームにあるToolStripStatusLabelを
使おうとしたところ、Invoke関連のメソッドが見当たりません。
無理やり.Textに書き込もうとしたら、
容赦なくInvalidOperationExceptionが発生しました。
Invokeなしで、別スレッドからToolStripStatusLabelに
書き込む方法ってないんでしょうか?
979デフォルトの名無しさん:2006/03/25(土) 19:57:25
フォームの Invoke でもつかっとけ。
つかそもそも BackgroundWorker 使え。
980デフォルトの名無しさん:2006/03/25(土) 20:19:14
>>979
ありがとうございます
うまくいきました。
BackgroundWorkerって自作のコードからなら途中で停止できるけど、
FrameWork内の処理が長いと
メインスレッドからAbortさせてThreadAbortExceptionを投げられないので
わざわざ変えたんです。(;´Д`)
981デフォルトの名無しさん:2006/03/25(土) 21:18:02
Abortはやめた方がいいと思うけどなぁ…
982デフォルトの名無しさん:2006/03/25(土) 21:32:38
・・・え?
何かあるんですか?(;´Д`)
983デフォルトの名無しさん:2006/03/27(月) 12:54:33
2005 Expressで質問です。
フォーマットは同一な2つのwaveファイル(8bit/モノラルのリニアPCM)を
フォーマットはそのままで、一つのwaveファイルに合成したいのですが、何か良いサンプルは無いでしょうか。
出来れば音質より、お手軽さ重視です。
984デフォルトの名無しさん:2006/03/27(月) 13:00:50
無圧縮で同一フォーマットのものをどうやれば音質を変化させられるんだ?
ttp://www.kk.iij4u.or.jp/~kondo/wave/
この辺読んでヘッダを解析するこったな。
既存のアプリがいくらでもありそうな分野だが。
985デフォルトの名無しさん:2006/03/27(月) 13:59:50
>983
の感じだと、結合じゃなくてミキシングしたいんじゃねーの?
986983:2006/03/27(月) 14:51:11
>985
そうです。
987デフォルトの名無しさん:2006/03/28(火) 07:33:09
>>984
音質はいくらでも変化させられる。
たとえば2つの音の合成比を変えても音質は変化するだろう。

>>985
初めから合成と書いてあるだろうに。

とりあえずヘッダーの44バイトを飛ばして、次のバイトから2つのデーターを
足して2で割れば簡単なミキシングとなる。
988デフォルトの名無しさん:2006/03/28(火) 09:56:28
>>987
合成なんて言葉、幾らでもとりようがあるよな。
あんたの脳内定義だけでしゃべっちゃだめだよ。
989デフォルトの名無しさん:2006/03/28(火) 12:02:00
>>988
「2つのwaveファイルを1つのwaveファイルに合成したい」と
言うことが、ミキシング以外にどんなとりようが有るんだ。
990デフォルトの名無しさん:2006/03/28(火) 12:11:51
俺はギャップレスに繋ぐのかと思ったがな。
991デフォルトの名無しさん:2006/03/28(火) 13:07:52
おれは単に直列でつなぐのかと思った。
992デフォルトの名無しさん:2006/03/28(火) 13:46:09
>>990
>>991
そりゃあ結合だな。
993デフォルトの名無しさん:2006/03/28(火) 13:48:52
>>990
ギャップレスに繋ぐことはミキシングの
一種だな。
994デフォルトの名無しさん:2006/03/28(火) 18:42:59
987に一票。
983は別に言葉足らずじゃないと思うぞ。
読んで分からないとすれば、そりゃ読み手の問題だろw

>>987
別に平均する必要はないでしょ。
wavファイルは8bitの場合確か符合なしデータだから、2つのファイルのデータを
足したものと0xFFの小さいほうを演算結果にすればいいんじゃないの?
(こういうの何ていうんだっけ?飽和演算だったかな。)

2で割ったら音量小さくなっちゃうでしょ。
√2で割るのなら話はわからないでもないけど。
995デフォルトの名無しさん:2006/03/29(水) 07:08:22
適当に・・・「論理和を取れば?」
996デフォルトの名無しさん:2006/03/29(水) 08:59:46
飽和させちゃまずいな、8bitのwavなら16bitで計算させて
8bitに変換する。
wavファイルは2の補数で表される、従って計算する場合
最上位ビットを反転させてから計算して、再び最上位
ビットを反転させる。
足して2で割ると書いたのはサインビットを無視した方法で
いかにも軽率、すまん。
wavファイルはA/D変換のデーターで、あくまでも電圧、
従ってミキシングは電圧加算になるから、足して2で割る
で良いのでは。
√2はパワーの場合ではないのかな。
997デフォルトの名無しさん:2006/03/29(水) 12:40:19
な、何を言ってるのかね
998デフォルトの名無しさん:2006/03/29(水) 12:44:01
うーんと電圧レベルだからルート2でわらなきゃいけないんだよ。
実効値の考え方ね。
P = E^2/Rね。
999デフォルトの名無しさん:2006/03/29(水) 12:48:26
だからさ
PはPowerの略でしょ。
1000デフォルトの名無しさん:2006/03/29(水) 13:01:20
おまえら馬鹿だろ単純に加算したら波が消えるかもしれないじゃないか

周波数成分に分解して各周波数成分ごとにレベルの和を取り、また合成しなおすんだよ
とりあえず、振動論とか信号解析とかいう感じの本を読みやがれ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。