VB.NET質問スレ (Part19)at TECH
VB.NET質問スレ (Part19) - 暇つぶし2ch175:デフォルトの名無しさん
07/01/29 02:33:34
>>163
165が言うようにInvalidateはウィンドウ全書き換え。
で、ウィンドウのリサイズや別ウィンドウが重なった後の書き換えは
単純に矩形にならず、複雑な形でクリッピングする処理が入る。

リサイズでも全書き換えしたいなら SetStyle とか見てみ

176:デフォルトの名無しさん
07/01/29 03:26:07
二次元配列 Array1(3,3)とArray2(3,3)の中身を比べるプログラムを作りたいんですけど
どなたか助言をお願いします。

Array1とArray2の中身すべてに
Integer型の0、もしくは9が格納されています。
Array1とArray2の中身を見比べて全く一緒ならtextbox1に「○」と表示させたいと思っています。

(例)
Array1 Array2
001  001
101  101     ←中身が全く同じなので「○」
000  000

Array1 Array2
001  001
101  111     ←中身が違うので「×」
000  001

自分で調べてみてループや判定文を使うのだろうと思って頑張ったのですが
動作してくれません。初心者ですみませんがよろしくお願いします。

177:デフォルトの名無しさん
07/01/29 03:27:28
>>176
×Integer型の0、もしくは9が格納されています。
○Integer型の0、もしくは1が格納されています。

間違えました。ごめんなさい。

178:デフォルトの名無しさん
07/01/29 04:00:05
>>176
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer, j As Integer
Do
For i = 1 To 3
For j = 1 To 3
If Array1(i, j) <> Array2(i, j) Then
TextBox1.Text = "×"
Exit Do
End If
Next
Next
TextBox1.Text = "○"
Exit Do
Loop
End Sub

179:デフォルトの名無しさん
07/01/29 05:12:45
名前空間のステートメントが無効です。
全く何をすればいいのか解らない・・・です・・・

180:デフォルトの名無しさん
07/01/29 11:51:09
自作クラスのオブジェクトをCStr(MyObj)のように使いたいのですが、出来ますか?
出来るとしたらどんなメソッド(プロパティ?)を実装すればいいですか?

181:デフォルトの名無しさん
07/01/29 11:58:50
ToString()をオーバーライドしたらよかっぺ

182:デフォルトの名無しさん
07/01/29 12:37:44
>>175
回答する能力ないくせに無理して答えなくていいんだよ。
人の張ったサンプルを良く見たか?w

183:デフォルトの名無しさん
07/01/29 13:41:26
すんません。
Dim s() As String
と宣言して、どこかでインスタンスを作るとして、
インスタンスが既に出来ているのか居ないのか
判断する方法を教え下さい。

184:デフォルトの名無しさん
07/01/29 13:45:04
IsNothingとか Is Nothing とか。


185:183
07/01/29 15:28:32
>>184
もう少し具体的にお願いします。
Dim s() As String
'If s(0) Is Nothing Then  <- ここんとこ
ReDim s(0)
End If

186:デフォルトの名無しさん
07/01/29 17:33:22
>>185
184じゃない↓がでええやろ?
If s Is Nothing Then

187:183
07/01/29 17:46:27
>>186
ダメみたいです。(^^;
「変数's'は値が割り当てられる前に使用されいます。・・・・」
と出ます。

188:デフォルトの名無しさん
07/01/29 17:55:02
>>187
それは警告だから動くだろ?
警告が気に入らないなら↓のようにしとけ
Dim s() As String = Nothing

189:デフォルトの名無しさん
07/01/29 17:56:10
Dim s() As String

'変数初期化します。
ReDim s(0)

で駄目なの???



190:デフォルトの名無しさん
07/01/29 18:21:13
>それは警告だから動くだろ?

にVB厨の神髄をみた

191:デフォルトの名無しさん
07/01/29 18:23:49
ReDimなんか使うんじゃねぇ

192:デフォルトの名無しさん
07/01/29 18:27:37
>>183
だから大人しく入門書をまず読めって。
人様に質問なんざそれからにしろよ。

お前さんのやってることは、九九も知らないのに連立方程式の解き方を教えろと言ってるのと同じだ。
九九のレベルからいちいち掲示板で質問するつもりか?
そんなんじゃどんなに幸運でも100年かかるわw

193:デフォルトの名無しさん
07/01/29 18:39:22
ていうか、VBって無くなるみたいだからやらない方がいいんじゃないの?


194:デフォルトの名無しさん
07/01/29 18:43:20
>>193
ソースは?

195:デフォルトの名無しさん
07/01/29 18:52:28
Dim x(0)
ReDim x(100)
はVB6だとエラーになるが、VB.NETでは大丈夫というかIs Nothingを省きたいときの推奨の方法みたいだ。
ただ可変配列を使いたいときはコレクションの使用も考慮したほうがいい。


196:デフォルトの名無しさん
07/01/29 18:58:56
>>194
公式情報ではなくて、以前C#のスレに書いてあった。
VBは無くなるからC#にしておけとの事だとか。

197:デフォルトの名無しさん
07/01/29 18:59:45
kuma-

198:デフォルトの名無しさん
07/01/29 19:58:35
>>196
ゲイツ様はC#をあきらめてVBはこれまで通りプッシュされると聞き及んでいますが、
あなたはこれを信用しますか?

199:デフォルトの名無しさん
07/01/29 20:00:00
下らんそんなに馴れ合いたいのなら他所行きな

200:デフォルトの名無しさん
07/01/29 20:14:27
誘導、ここで好きなだけやってくれ

【VB.NET】VS2005 選ぶならどっち?【C♯】
スレリンク(tech板)l50

201:183
07/01/29 21:10:59
>>188
>>Dim s() As String = Nothing
サンクス、うまくいきました。

>>189
配列のサイズでデーターの大きさを所得したいので。
If s IsNot Nothing Then
  ReDim Preserve s(s.Length)
Else
  ReDim s(0)
End If
こんなことを考えてました。

>>195
実際はジェネリックでやってます、それと疑問は別物で。

>>193
客の要望でどっちでも書いてます。
C丼でも大してかわりが有りません。

202:デフォルトの名無しさん
07/01/29 21:23:04
201みたいなプログラマの書いたコードは怖くて使えんな。
なんだよその「動けばいいじゃん」っていう発想w

本当にそれでいいのか?
どんなショボい入門書にも書いてあることが理解できてないのに

203:デフォルトの名無しさん
07/01/29 22:21:51
>>183
初期化はちゃんとした方がいい。
>>188 はちょっと乱暴だが…w

204:デフォルトの名無しさん
07/01/29 22:23:49
それ以前に参照型って概念が理解できてないんでしょ

205:デフォルトの名無しさん
07/01/29 22:24:45
>>190
C#だったらどーするの?

206:デフォルトの名無しさん
07/01/29 22:32:09
だから「初期化しろ」って警告なんだろーが

207:デフォルトの名無しさん
07/01/29 22:34:07
初期化するだろ普通は

208:デフォルトの名無しさん
07/01/29 22:35:03
190も馬鹿だが>>205-206もな
初期化しろ?w
ちょっとニュアンス違うよ


209:デフォルトの名無しさん
07/01/29 22:41:13
>>208
だからVB厨じゃなかったらあの警告にどう対処するのか教えてよ。

210:デフォルトの名無しさん
07/01/29 22:43:56
>>208
日本語に不自由なのも大概にしとけよw

対処すべきだ、というニュアンスを匂わしてる奴を馬鹿だといってるんだけど

211:210
07/01/29 22:44:41
>>209の間違い

212:デフォルトの名無しさん
07/01/29 22:47:18
ああなんだ190ってあいつか。
おめーがアンカーつけねえからわかんなかったじゃねえか。

213:デフォルトの名無しさん
07/01/29 22:47:27
なにこの肥溜めスレ

214:デフォルトの名無しさん
07/01/29 22:57:13
初期化しないでも警告だけでコンパイル通るの?
VB.netって。
そうなら>>190はそういうこと言ってるんじゃないのかな



215:デフォルトの名無しさん
07/01/29 22:58:15
なんか祭ってるな。

>>212
お前の知り合いか?


216:デフォルトの名無しさん
07/01/29 22:59:31
むしろいちいち初期化しないとコンパイル通らない言語って具体的になんだよw

217:デフォルトの名無しさん
07/01/29 23:01:01
>>216
C#

218:デフォルトの名無しさん
07/01/29 23:02:52
おいおいw

219:デフォルトの名無しさん
07/01/30 00:17:17
>If s IsNot Nothing Then
>  ReDim Preserve s(s.Length)
>Else
>  ReDim s(0)
>End If
>こんなことを考えてました。

こりゃいったいどういうプログラムだ。


220:デフォルトの名無しさん
07/01/30 00:19:56
C#は初期化しないと通らんぞ。
正確にはどこでも初期化せずに、いきなり参照すれば、だが。


221:デフォルトの名無しさん
07/01/30 00:28:11
>>220
もういい馬鹿は糞して寝てろw

222:デフォルトの名無しさん
07/01/30 00:34:33
フィールドなら通るから勘違いしてんのか?


223:デフォルトの名無しさん
07/01/30 01:23:07
ローカル変数は初期化しないで参照することはできんな。

224:183
07/01/30 08:11:30
>>219
あるデーターを採取して配列に入れる、入れる前に
配列の個数を1つ増やす、値の代入は本質問と
無関係なため省略してある。
蛇足だが、その後は、プログラム終了時は、
配列はシリアル化してXMLファイルに
書き込み、次の起動時に配列に読み込む。
データーの数又データーの有無は、配列の要素数で
判断する。

>>202
何が書いてあるのだ。
あなたのコードを見せていただけますか。

>>203
>>201が初期化のコードだと言うことがわからんかな。


225:デフォルトの名無しさん
07/01/30 08:15:38
可変長なコレクションに配列は無いわ

226:200
07/01/30 08:26:08
>>224
馬鹿にして悪いけどしょうがないよ、あんた本当に基本がわかってないし、
自分が基本がわかってないっていう自覚すらないから。

例えば値型と参照型の区別、なんていう基礎の基礎からしてわかってないでしょ。
.NETにおける配列の意味もわかってない。

それだけでなくセンスもない。
理解できないだろうけど>>201みたいなコードってありえんから。

227:デフォルトの名無しさん
07/01/30 10:21:11
配列の個数を1増やす
や め て く れ
何故かVB6時代によくみたコードだな。
だがVB6でもこれはやめてほしい。

228:デフォルトの名無しさん
07/01/30 10:25:39
で、要素数-1がデータ数かよ。
要素0もしくは最後か?ともかく余った要素には何が入ってんだ?


229:デフォルトの名無しさん
07/01/30 10:29:30
初歩的な質問で申し訳ないのですが、画面のリストボックスに
スクロールが必要でない時も最初から縦スクロールバーを表示させるにはどうしたら良いでしょうか?
スクロールが必要な際は表示されるのですが、そうでない時はスクロールバー自体が消えてしまいます。

230:デフォルトの名無しさん
07/01/30 10:32:37
間違えました。
ListBoxではなく、ListViewでした。

231:デフォルトの名無しさん
07/01/30 12:27:13
だから一晩かかってるのに何故 List(of xxx)とか ArrayListにしないの?
シリアル化だって勝手にやってくれるし。


232:183
07/01/30 12:53:29
>>231
201をよく嫁
実際はListジェネリッククラスを使って、
インデクサで処理してる。

>>226
おまえが1番馬鹿なようだな。

いやもっと馬鹿が居た。
>>228


233:188
07/01/30 13:05:42
おいらのレスでずいぶん盛り上がりましたねw

234:デフォルトの名無しさん
07/01/30 13:42:48
>>232
VBの配列の指定数は要素数じゃないだろってだけの話だろう?
馬鹿馬鹿ばっかり言ってないでなぜ馬鹿なのか分かるように言ってくれよ

235:デフォルトの名無しさん
07/01/30 15:35:32
どなたか>>229-230に回答を…。
ググってみたら同じような質問があったのですが、それにも回答がついてませんでした。

236:デフォルトの名無しさん
07/01/30 15:46:37
ArrayListって要素を追加した順番に保存されますか?
またfor eachで取り出す場合はその順番は保証されていますか?

237:デフォルトの名無しさん
07/01/30 15:50:36
>>235
適当に空行足しておけばいいだろ。


238:デフォルトの名無しさん
07/01/30 16:08:05
>>236
そらそうだ

239:デフォルトの名無しさん
07/01/30 16:11:25
>>236
順番に保存する他にどんな保存方法があるんだ?
For Eachは要素を列挙する関数なんで、順番は保証されない。
とは言ったものの実際は順番に出てくるが。
正式にはインデクサを使え。

240:デフォルトの名無しさん
07/01/30 16:24:18
やっぱりfor eachは多用しないように気をつけようっと。

241:デフォルトの名無しさん
07/01/30 17:00:59
>>239
嘘つけw

242:デフォルトの名無しさん
07/01/30 17:33:39
>>237
通常IE等でスクロールがない画面で表示されるようなグレイアウトの状態でスクロールバーを表示したいので
改行を足すのはちょっと目的と変わってしまいます。
でもお答え頂きありがとうございます。

引き続きどなたかわかる方、回答お待ちしています。

243:デフォルトの名無しさん
07/01/30 17:34:05
反復処理の順序 For Each...Next ループを実行すると、コレクションの反復処理の順序は
GetEnumerator メソッドが返す列挙子オブジェクトの制御下に置かれます。反復処理の順
序は、Visual Basic ではなく、列挙子オブジェクトの MoveNext メソッドによって決まります。
したがって、コレクションのどの要素が最初に element に返されるかや、特定の要素の後
にどの要素が返されるかを予測することはできません。

特定の順序でコレクションを反復処理する必要がある場合は、そのコレクションによって公
開される列挙子オブジェクトの特性を把握していない限り、For Each...Next ループが適切な
選択肢とは言えません。For...Next ループや Do...Loop ループなど、別のループ構造を使
用した方が、信頼できる結果が得られます。

ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_vbalr/html/ebce3120-95c3-42b1-b70b-fa7da40c75e2.htm

244:デフォルトの名無しさん
07/01/30 17:37:55
Array"List"のListってのは何を意味してるか考えろよ。
列挙子オブジェクトの特性が把握できてるんだよ。w この場合。


245:デフォルトの名無しさん
07/01/30 17:41:43
おぉ!ということはfor eachでも問題ないんですね。
かっこいーからfor eachのほうを使うことにします。

246:デフォルトの名無しさん
07/01/30 18:13:46
>>242
なんの為か知らんがどうして表示したかったら、
ハンドルにAPIのShowScrollBarを投げろ。

247:デフォルトの名無しさん
07/01/30 18:42:22
>>244
それって確証ある?
つまり明文化された仕様として保障されてるか?
俺は怪しいと思うけどどうなんだろう。

>>239の言うように、Enumeratorは(クライアントのデータ構造が仮にリストでも)
リストを手繰っていくような動作を実装することは義務付けられてないでしょ。

自分でEnumeratorみたいの実装すること考えたって、パフォーマンス優先するなら
リストを手繰るような実装は俺ならしないけど。

248:デフォルトの名無しさん
07/01/30 18:57:18
どんな実装するってのか聞いてみたい。

249:デフォルトの名無しさん
07/01/30 19:03:40
例えばリストが、常に上の方に詰められる自己参照構造体配列(の配列)で実装されてたら、
Enumeratorは構造体配列を上からシーケンシャルに吐き出せば済むでしょ。

250:デフォルトの名無しさん
07/01/30 19:28:50
んーなんだそういう話か…
んー
なんていうかさ、自然に考えられる実装ってあるじゃん。
ある意味特殊な構造の実装になってる場合なんかは、
何を重視するかで実装は変わってくるが、
そういう場合は明確にドキュメントするよね?

で内部がただの配列であり、配列と同様に扱えると明記されてる
ArrayListで、予想外の順序で列挙される実装なんて有り得るか?
逆にそういう実装なら絶対に明記されてるだろ。

で保証はないって話は理解出来なくもないんだが、
現実はもっと怪しい仕様??なんてものがいっぱいあって、
そういうことと比べれば実質十分信用していいレベル。
まあ、絶対に明記されてる仕様にしか、一ヶ所たりとも依存しないってんなら
好きにすればいいけど

251:デフォルトの名無しさん
07/01/30 19:30:44
>>247
仕様はないでしょうな

現在存在するすべてのArrayListの実装がリスト順に返しているという事実と、
今後現れる実装が互換性を維持してくれるだろうという希望に頼るしかなかろう

252:デフォルトの名無しさん
07/01/30 20:30:49
>>250
わかんないお人だなあ。
だからさあ、リスト構造をしているのは、
換言すればリストの「ふり」をするのはListなりArrayListなのであって
Enumeratorじゃないんだよ。

253:デフォルトの名無しさん
07/01/30 21:11:30
いやそういうことじゃなくて現実の話をしてる
リストのセマンティクスをもつコレクションがリストじゃない並びの列挙を行うなら、
現実にはドキュメントされてる、普通。
ArrayListとかは実装が配列になってると明記されてたはず。
この状態で異なる列挙実装なんて普通考えられない。
もしそうなってるなら明記されてるはず、現実には。
他の人間が実装したリストはそりゃ分からんが。

254:デフォルトの名無しさん
07/01/30 21:35:36
なんかインターフェイスと実装をごっちゃに議論してるような気がするんだけど

255:デフォルトの名無しさん
07/01/30 21:38:03
??

256:デフォルトの名無しさん
07/01/30 21:40:50
>>253
倒錯してると思うよ。

普通逆でしょ。
IEnumeratorの要求仕様以上のspecial feature があるなら明記するよ。
明記してないなら、それは「期待すんなよ」ってことだと解釈するのが普通だと思うけど。

っていうか、ArrayListのがインデックス順に整列された配列、なんて記述を見た記憶は
俺にはないなあ。

257:デフォルトの名無しさん
07/01/30 21:51:25
>>254
たしかに>>256で初めてEnumeratorに I が付いたな

258:デフォルトの名無しさん
07/01/30 21:58:32
>>257
アホでしょお宅w

259:デフォルトの名無しさん
07/01/30 23:10:34
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_fxfund/html/71807ea7-9180-48a6-916f-35a5251d477f.htm
URLリンク(msdn2.microsoft.com)(VS.80).aspx
よくよめ


260:デフォルトの名無しさん
07/01/30 23:13:07
ArrayList クラス
必要に応じてサイズが動的に増加する配列を使用して、IList インターフェイスを実装します。


261:デフォルトの名無しさん
07/01/30 23:26:17
>>259
そんな隅っこにこっそり書いてあるのなw
なるほど勉強になった。

まあでも、個人的には本当にその記述信用していいのかな、
って気がしないでもない。
ちょっとありえない実装のような気がするんだよね。

ところでList(of T)に関してはどうなんだろう。

>>260
「配列を使用して」、っていうのは「正体はベタな配列に過ぎないんですよ」
って意味じゃないよ。

262:デフォルトの名無しさん
07/01/30 23:56:36
いまいちわからんなぁ

>まあでも、個人的には本当にその記述信用していいのかな、
>って気がしないでもない。
>ちょっとありえない実装のような気がするんだよね。

ArrayListみたいなのの実装で列挙が順序通りってのが、なんでありえない実装なわけ?

>「配列を使用して」、っていうのは「正体はベタな配列に過ぎないんですよ」
>って意味じゃないよ。

言ってる意味がちょっとよく分からん。

263:デフォルトの名無しさん
07/01/31 00:07:34
お前らもうええわ。
メアド交換して勝手にやってろ

264:デフォルトの名無しさん
07/01/31 00:14:05
>>262
文盲かよ。。だから処理の効率が悪いからだって何度も言ってるじゃん。。
順番にアクセスしたいのなら普通にインデクサ使えば良いだけだし。

後半の話も書いてるでしょ。
配列を使用して、というのは内部的に配列を使ってListが実装されてるって意味であって…
まあ、リストとかキューとか自前でデータ構造実装したことないなら理解できないかもね。

265:デフォルトの名無しさん
07/01/31 00:46:46
あのさ、何よりパフォーマンスだけが重要ならそもそも列挙なんて仕組みはいらんだろうに
そもそも列挙実装の仕組みとしては単純なインデックスが一番効率的だろうが
まあこれは内部実装が単純な配列の場合だが。
列挙なんて効率悪いものなんていらんから、順序通りの列挙の実装はありえないつてか?

お前の言ってること全然理解出来ねーよ
内部実装が単純な配列のコレクションなら順序通りが一番当たり前だろ。
なんでありえないわけ?
わざわざ順序通りにならないようにすんのか?なわけないよな。

ただのインデックス使えばいいってのは状況によってはもちろん分かるが
だからありえないってのは理解できん

どうしてもありえないってんならSSCLIでソースみてみろよ。


266:デフォルトの名無しさん
07/01/31 00:58:05
インデックスでアクセスできるコレクションの列挙がインデックス順じゃないほうがありえないよな

267:デフォルトの名無しさん
07/01/31 01:02:40
お前ら、VBはそんなアホらしいことを考えなくても十分に使えるという点が
最大のセールスポイントだということを知らないのか?

268:デフォルトの名無しさん
07/01/31 01:10:30
"(" を打ったとき ToolTip に "Index As Object" て出てくるやつはインデックス順で並んでいるやつで
"(" を打ったとき ToolTip に "Key As Object" て出てくるやつはインデックス順で並んでいないやつ
と俺は解釈している。

269:デフォルトの名無しさん
07/01/31 01:12:52
大体ArrayListの for each 使うくらいでビビルような偏執狂が
VBを使ってるということ自体納得がいかんわw

270:デフォルトの名無しさん
07/01/31 01:15:08
>>266
そもそもリスト構造っていうのがどういうデータ構造なのかわかってるのかと。。

だから連結リスト構造だったら列挙するときにわざわざインデックス順にやる、
なんてアホな実装するわけないじゃん。

連結リストじゃなかったら、例えばInsertRangeメソッドを実装するのに
いちいちコピーしなきゃならんでしょ。
連結リストならインサートする前後のポインタを付け替えるだけで済むのに。

271:デフォルトの名無しさん
07/01/31 01:28:38
>>264内部的に配列を使って…
いや最初からそういう意味で言ってるだろ。
それに対して
「ベタな配列に過ぎないんですよ」って意味じゃないよ
っていうのが、どういう意味・意図なのかよく分からんてだけだ

内部的に配列を使って実装したコレクションの列挙が
内部配列の順序通りなんて一番ありえるパターンだろ
なんで「自分でデータ構造実装したことないなら理解出来ないかもね」
になるんだよ。

内部的に配列を使ってはいるがダイレクトな配列の使い方はしていない実装は
もちろん有り得るが
そうならArrayListみたいな説明の仕方はしない、普通は。
明らかに誤解を招く書き方だから。
で現実にArrayListは単純な配列をダイレクトに使って実装されてる。


272:デフォルトの名無しさん
07/01/31 01:44:19
>>270にとって.NETのコレクションクラスってありえない実装なんだな

273:デフォルトの名無しさん
07/01/31 01:56:35
今は.NETのコレクションでのリストの話をしてるのよ。
ArrayListとかの。
で、連結リストの話でも、インデックス順序の列挙はありえなくもなんともないと思うんだが。
連結リストの場合、どういうのが普通はなんだ?
むしろリンクを辿るのが一番普通だと思うが…単純な連結リストの場合

274:デフォルトの名無しさん
07/01/31 02:00:44
リスト構造だとインデクスアクセスが定数時間で出来んだろうが
可変長配列として扱いやすくするコレクションなのに
インデクスアクセスを非効率にしてどうすんだよ。


275:デフォルトの名無しさん
07/01/31 02:09:55
っと、ここでのリスト構造ってのは連結じゃない話か
なら上のインデクスのはなしはとりあえずなし。


276:デフォルトの名無しさん
07/01/31 02:14:12
まあ適材適所で、単純な配列構造がありえないなんて事はない。
ArrayListは挿入や削除には不向きってだけだな。
その代わり単純なアクセスは非常に効率がいいありふれた実装

277:デフォルトの名無しさん
07/01/31 02:23:51
挿入もインデックスもどっちも速いってどんな構造?
てか連結リストって言ってるじゃん
可変長配列は例えインデックスアクセスが遅くなっても
挿入を高速にするべきだ、そうじゃない実装なんてありえないってことか

278:デフォルトの名無しさん
07/01/31 02:57:20
もういいよ。

279:デフォルトの名無しさん
07/01/31 07:20:20
JavaにはArrayListとLinkedListがあるみたいですよ
URLリンク(www.hellohiro.com)

280:デフォルトの名無しさん
07/01/31 07:57:59
VB2005でTabControlのTabPageにTextBoxやLabelなんかを
幾つか置き、TextBoxのApplicationSettingsの
PropertyBindingを設定すると、置いてあるラベルや
ボタンが非表示になって、プロジェクトを再起動するまで
表示されないのだけど、何とか解決の方法は無いかな。
こんなことばっかりでもう泣きたいよ。

281:デフォルトの名無しさん
07/01/31 08:00:40
ここの話題か分からないのですが、VB2005で作っているので質問させてください。
SerialPortクラスでモデムを操作して人の代わりに電話し、音声案内のところで
決められた番号を押すプログラムを作りたいと思っています。

クラスを初期化をした後、
serialPort.Write("ATDT 1234-5678" & vbCrlf)

これで電話をかけることはできましたが、相手が取ってから決めた番号の音を出すために
serialPort.Write("ATDT 1,,2,,3" & vbCrlf)

みたいにするとモデムとの通信が切れてしまいます。
どうも1回目のダイアルをしたときにモデムは相手からの応答を待っていて、
2回目のダイアルをした時点では通信待ち中のためエラーになってしまうようです。

モデムにこの待ちをやめさせて、ただ単に音を出すだけにしたいのですが
どうにかなるでしょうか?よろしくお願いします。

282:デフォルトの名無しさん
07/01/31 08:35:31
>>259
これは 各クラスの GetEnumerator のヘルプにも書いておいて欲しいよねえ。

283:デフォルトの名無しさん
07/01/31 09:20:55
スイマセン、教えてください。
印刷ダイアログを表示させた時、[印刷]とかかれたボタンの名前の文字を別の文字に変えることは可能でしょうか?
可能でしたらやり方ご教授ください。



284:デフォルトの名無しさん
07/01/31 11:06:25
>>281
モデムに命令ばっかりしてないで少しは話を聞いてあげなさい。
以上

285:デフォルトの名無しさん
07/01/31 12:11:59
IME列挙体について教えてください。よろしくお願いします。

URLリンク(msdn2.microsoft.com)(VS.80).aspx

を見たのですが、、これらの列挙体はBitで構成されているものと思って

rtxtMemoContents.ImeMode = _
CType(Windows.Forms.ImeMode.Hiragana + Windows.Forms.ImeMode.On, Windows.Forms.ImeMode)

と入れてみましたら、結果は 「カタカナ」 モードになっていました。

単純に
rtxtMemoContents.ImeMode = Windows.Forms.ImeMode.On
としますと、デフォルト設定が効くのか、「ひらがな」 となりましたが、
上記の方法でない正しい方法を知りたく思いました。すみませんが教えてください。
よろしくお願いします。

286:デフォルトの名無しさん
07/01/31 15:15:18
System.Windows.Forms.ImeModeにFlags属性なんてついてないし。
ImeMode.On = 1
ImeMode.Hiragana = 4

ImeMode.Katakana = 5なだけじゃんか

たんにImeMode.Hiragana にすればいいんじゃないのか



287:デフォルトの名無しさん
07/01/31 15:32:07
自作のdllのことなのですが、
オブジェクトブラウザでクラスやプロパティ、メソッド、イベントを非表示にする方法がわからず躓いています。
どなたか知っている方、助けてください。お願いします。<(_ _)>

288:デフォルトの名無しさん
07/01/31 15:35:24
>>286
どうもです。そうだったんですか、わかりました。列挙体は連続番号なんですね。
・・・てことはBit値じゃなかったんですね。

ところが、やり方が悪いのか、はじめ
たんにImeMode.Hiragana にしてみたのですが、モードが日本語入力モードに
切り替わらなかったため、足してみたのでした、そしたらカタカナでは入力できる
ようになったのでした。

どこが間違っていたのか・・・まだわからないですが調べてみます。



289:デフォルトの名無しさん
07/01/31 16:20:43
>>280
ウチはそんな現象起こらないけど。
具体的に説明したら?

290:デフォルトの名無しさん
07/01/31 16:22:25
ダイアログを呼び出した時に、呼び出し元フォーム上の値をダイアログ上の変数へ格納しています。
このダイアログを閉じるときに、今度は逆に呼び出し元フォームの変数へ格納したいのですが
form1のメンバ変数は参照可能なのでしょうか?
myDialogクラスにform1型のメンバ変数作るくらいしか思いつきません・・・

ちなみにやりたいことは、
・Form1をインスタンス化したときにiniファイルから値を取り込み、
・dialogを閉じたときにiniファイルへ書き込み&form1のメンバ変数へ格納
です

public class Form1'**********************************

public strTest as String

public Sub OpenDialog() Handles Button1.Click
Dim diaTest as Form
diaTest = new myDialog(me)
End Sub

End Class
public class myDialog'*******************************

Public Sub New(ByVal s as Form1)
me.textbox1.text = s.strTest.text
End Sub

Public Sub CloseDialog() Handles Button1.Click
???
End Sub

End Class
'**************************************************

291:デフォルトの名無しさん
07/01/31 16:34:14
>>283
印刷ダイアログで「印刷」ボタンの文字を変えたいって、なにがしたいんだよw



292:デフォルトの名無しさん
07/01/31 16:37:02
>>287
クラスやメソッドを Friend で宣言すればいいんじゃないのか?

293:デフォルトの名無しさん
07/01/31 16:50:48
>>290
基本は「呼び出し元を見るようなプログラムを書かない」
呼び出されるフォームが「使いまわしできる」ように。

Public Class Form1
Private Sub OpenDialogButton_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dialog As MyDialog = New MyDialog
dialog.Param1 = Me.TextBox1.Text
If dialog.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
Me.TextBox1.Text = dialog.Param1
End If
End Sub
End Class
Public Class MyDialog
Private _param1 As String
Public Property Param1() As String
Get
Param1 = Me._param1
End Get
Set(ByVal value As String)
Me._param1 = value
End Set
End Property
Private Sub MyDialog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.TextBox1.Text = Me._param1
End Sub
Private Sub CloseDialog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles acceptButton.Click
Me._param1 = Me.TextBox1.Text
End Sub
End Class

294:デフォルトの名無しさん
07/01/31 16:51:24
はじめまして。質問させてください。
既に起動しているIEでクリックイベントを発生させ、
そのイベントをVBで取りたいのですが、そのような事は可能でしょうか?

295:デフォルトの名無しさん
07/01/31 16:59:08
>>294
可能か?と聞かれたらハッキリ言ってなんでも可能だよ。簡単じゃないけど。

ホントに初心者って他のアプリのメッセージとかプロセスとかウィンドウハンドルとか好きだなw

296:290
07/01/31 17:06:26
>>293
うほ・・・ありがとうございます、勉強になります!

流れで考えてるから、showdialogの後に値を取れるって考えれないんですね俺

297:デフォルトの名無しさん
07/01/31 17:10:37
流れで考えたら分かるだろw

298:デフォルトの名無しさん
07/01/31 17:13:38
>>297
「結果を取得する」って発想ができないんじゃね?


299:280
07/01/31 17:14:13
>>289
有難うございます。
OS Windows2000 言語 Microsoft Visual Basic 2005
1番簡単な再現方法です。
1、新しいプロジェクトを作成する。
2、TabControlを一つ置く。
3、TabPage2にLabel一つと、TextBoxを一つ置く。
4、TextBoxのプロパティを開いてApplicationSettingsの+
  をクリックする。
5、その中のPropertyBindingをクリックし、
  その中のTextを選択。
6、横に現れる下矢印をクリック。
7、編集窓の新規をクリック。
8、Nameに"test"と入力。
9、Okを押し編集窓を閉じ、アプリケーション設定
  もOkで確定する。
こうすると見事にLabelが消える。(^^;
プロパティウィンドウでLabel1を選択すると点線だけが
表示される。タブを切り替えても表示されずダメ、結局
プロジェクトの再起動をするしか手が無い。
以上です。

300:289
07/01/31 17:23:36
>>299
ほんとだ、アプリケーション設定を新規にするとダメみたいだな。
アプリケーション設定をコントロールのプロパティから作らずに、プロジェクトで作って
コントロールでそれを選択すればいいんじゃね?

つーか再起動しなくても、フォームのデザイン画面閉じてもう一度開いたらOKなんだか?

301:デフォルトの名無しさん
07/01/31 17:23:56
>>297-298san
戻り値返した時点でdialogの存在は俺の頭から消えちゃってましたw

だから

showdialog()をオーバーロードして戻り値をstr配列型に、
dialog上で入力した値を戻り値に、
戻った配列をそれぞれ型変換してメインフォーム上の変数に代入

・・・とか考えてました(汗

302:283
07/01/31 17:26:30
>>291
印刷ダイアログでは、プリンタの選択やその他の設定をするだけにとどめているのです。
そこで「印刷」ボタンを押しても、それら設定の保存にとどまり、印刷はまだ行いません。
(Form上の印刷ボタンで改めて印刷を行う。)
だから「印刷」じゃなくて「設定」ってキャプションのボタンにしたいのねん…。

303:デフォルトの名無しさん
07/01/31 17:27:13
気にするな最初は皆そんなもんだ。


304:291
07/01/31 17:37:55
>>302
だったら最初から「印刷設定だけがしたい」って言えば…
印刷ダイアログはあくまで印刷ダイアログだから。

PageSetupDialog() のほうがが妥当じゃない?



305:デフォルトの名無しさん
07/01/31 17:48:49
>>299
うはwwwwwほんとだ、ラベル消えたwww


プライオリティが変わったとかそんなレベルじゃ(ry

306:デフォルトの名無しさん
07/01/31 17:51:51
お前キモイから消えろ

307:305
07/01/31 17:53:59
フォームの一覧からラベルのイベントを選択すると再表示されるが

ちょっと気持ち悪いなww

勘違いして、ラベル付け直しそう



308:デフォルトの名無しさん
07/01/31 17:57:25
いいから消えろって

309:287
07/01/31 18:02:00
>>292
お返事ありがとうございます。
Friend宣言して実際に隠すのではなく、
オブジェクトブラウザで除いたときに、通常は表示はされていないけど、
「非表示のメンバを表示」にチェックを入れたときに表示するようにしたいのです。
プログラム上Publicの必要があるのですが、どうしても正規の利用の対象にしたくはありませんので。。。

310:292
07/01/31 18:21:12
>>309
ああそういうことか。
試してないけど BrowsableAttribute はどう?

311:280
07/01/31 18:26:58
>>289 さん感謝!
そうですね、再起動しなくても一回画面を閉じて、再度開けばOKですね。
とりあえずアプリケーションの設定で名前を作ってから選択するようにします。
沢山置いたコントロールが一斉に消えたので、かなりあせりましたが、
たいしたことは有りませんでした。


312:283
07/01/31 18:30:55
>>304
"プリンタの選択"がしたかったのでねー。
めんどくなったからデフォのダイアログボックスやめて、コンボボックスにインスコしてるプリンタ名つめこむよw


313:287
07/01/31 18:48:23
>>310
ありがとう!
BrowsableAttributeとEditorBrowsableで隠せたよ!
本当に助かりました!

314:デフォルトの名無しさん
07/01/31 19:00:19
>>312
つーかそれが普通では?
プリンタの選択するだけなら

結局使い勝手求めるならPrintPreviewControl使ってダイアログ自作でしょ

315:デフォルトの名無しさん
07/01/31 20:33:07
プログラミングに関する質問じゃないんだけど、VB2005 Express Edition
でコンパイルオプションの『整数オーバーフローのチェック』が見当たらないんですが、
Express版で設定できないんでしょうか?
マニュアルには
1.ソリューション エクスプローラでプロジェクトが選択されている状態で、[プロジェクト] メニューの [プロパティ] をクリックします。
2.[コンパイル] タブをクリックします。
3.[詳細コンパイル オプション] をクリックします。
4.[ビルドの詳細設定] ダイアログ ボックスで、[整数オーバーフローのチェックを解除] チェック ボックスをオンにします。
と書かれていますが、コンパイルのプロパティ画面に「詳細コンパイルオプション」の項目が見当たりません。

316:デフォルトの名無しさん
07/02/01 00:05:49
スレッドから呼び出した WebRequest の非同期処理 BeginGetResponse、この処理が完了するまでスレッドをブロックするには、
いかなる方法をとればよろしいのでしょうか。

317:デフォルトの名無しさん
07/02/01 00:15:05
どのスレッドで何を呼び出してるのかつかめんが、
スレッドをブロックしたいなら端から同期で呼べばいいんじゃないのか?

318:デフォルトの名無しさん
07/02/01 01:09:52
StartInfo.UseShellExecute = False
にすると、
StartInfo.WindowStyle = ProcessWindowStyle.Minimized
が効かなくなるのでしょうか?

319:デフォルトの名無しさん
07/02/01 01:48:41
Form1.Line (Sx, Sy)-(Sx + box, Sy + box), C, BF
というVB6.0の行を書き換えるには
URLリンク(msdn2.microsoft.com)(VS.80).aspx
を参照すれば良いのでしょうか?

320:デフォルトの名無しさん
07/02/01 03:16:43
参照してわからなかったんならそう言えよ

321:デフォルトの名無しさん
07/02/01 03:22:48
>>320
はい・・・すいません、以後気をつけます。
lineの代用ってどうすればいいんですか?
調べたらsystem.drawingとかも出てきて本当もう訳わかりません(´:ω:`)

322:デフォルトの名無しさん
07/02/01 03:31:59
URLリンク(www.google.com)
これくらいは、なぁ?

323:デフォルトの名無しさん
07/02/01 03:40:50
LineコントロールじゃなくてLineメソッドなわけだが。
四角形を塗りつぶすのはFillRectangleだけど
.NETのグラフィックスの基本を全然知らないっぽいんで
とんでもないコードを書きそう。
ところでBFの前のCってなんだっけ?

324:デフォルトの名無しさん
07/02/01 03:47:14
おぉ? VB6 と Line というとこればっかりだからつい予断を

325:デフォルトの名無しさん
07/02/01 03:58:24
>>322-325
とんでもないコード以前に波線が全く消えません。
アフォみたいな質問に答えて頂きまして本当にありがとうございました。

326:デフォルトの名無しさん
07/02/01 04:02:45
やけに気の小さいヤツだなw

327:デフォルトの名無しさん
07/02/01 04:15:16
自己解決の糸口は見えませんが、自決は出来そうです

328:デフォルトの名無しさん
07/02/01 07:37:55
>>284
レスありがとうございます。
でもReceiveイベントでモデムからのメッセージは受け取っていたんです。

モデムに送るATコマンドを
serialPort.Write("ATDT 1234-5678;" & vbCrlf)
にすることですぐに"OK"が帰ってくるようになり、問題解決しました。


329:デフォルトの名無しさん
07/02/01 13:38:41
>>316
EndInvokeでもWaitHandle.WaitOneでもお好きに。
だが同期呼び出しで済む話なら…

330:デフォルトの名無しさん
07/02/01 14:08:31
Dim strDate As String = "20070101"
Dim strResult As String = Format(strDate, "0000/00/00")

このようにすると、strResultには"0000/00/00"が入ってしまいます。
期待している値は"2007/01/01"なのですが、どのようにすればよろしいでしょうか。
VB6.0の時は、問題なく"2007/01/01"が入ったのですが…。

331:デフォルトの名無しさん
07/02/01 14:26:21
>>330
"yyyy/MM/dd"じゃね?

332:デフォルトの名無しさん
07/02/01 14:28:30
stringはformat出来ません

333:デフォルトの名無しさん
07/02/01 14:29:49
>>330
URLリンク(msdn2.microsoft.com)(VS.80).aspx
ユーザー定義の数値書式の所読め

334:デフォルトの名無しさん
07/02/01 14:32:25
>>330
普通にLeft、Mid、Right関数で文字列を取得していけばよいのでは?

335:デフォルトの名無しさん
07/02/01 14:33:20
FormatはVB6の頃と仕様が違う。
素直に>>334

336:デフォルトの名無しさん
07/02/01 14:35:02
Format(CInt(strDate), "0000/00/00")
にしたところ、解決できました。ありがとうございました。

337:デフォルトの名無しさん
07/02/01 14:39:23
そんな無意味な型変換は事故の元だろ?
なんで数字変換しないと駄目なの?


338:デフォルトの名無しさん
07/02/01 14:50:28
CDateなかったか?
てかいきなりそんなとこで整数化することに
疑問はないのか?

339:デフォルトの名無しさん
07/02/01 14:58:03
型変換はまずいのですか…。
必ずstrDateに8桁の数字で項目が来ることがわかっていても危険ですか?

そうであるなら、midで取って、取得した文字列にDate.TryParseで判定するようにします。


340:デフォルトの名無しさん
07/02/01 16:21:26
不要な変換なんてしないに越したことはないじゃん。
文字として切って文字加工できるのに。

341:デフォルトの名無しさん
07/02/01 16:29:25
strDate.Insert(2,"/").Insert(5,"/") こんなんでいいんでは?

342:デフォルトの名無しさん
07/02/01 16:30:46
↑ 挿入箇所間違ってたわ、2と5のところは適当に。

343:319
07/02/01 18:45:02
Form1.Line (Sx, Sy)-(Sx + box, Sy + box), C, BF
を書き換えて
Dim g As Graphics
g.DrawLine(New Pen(Color.C), Box, Box, Sx + Box, Sy + Box)
             ~~~~~~~~~~
というトンデモコードを書いちゃいましたが~~~にエラーが出ちゃいます
手前の
R = Int(16 * Rnd()) - 1
If R < 1 Then C = QBColor(0) Else C = QBColor(R)
からして物故割れてるのでしょうか・・・?

344:デフォルトの名無しさん
07/02/01 18:51:59
>>343
物故割れてるのは君の(ry
悪いこと言わないから本買って一から勉強しなさい

345:デフォルトの名無しさん
07/02/01 22:08:54
すみませんが、教えてください。ControlクラスとPanelクラスでは、
Panelクラスのほうがインスタンスのメモリー消費は激しく大きいでしょうか?

Controlクラスから派生させたものとPanelから派生させたものとで
ほとんど同じでいくらか違うクラスがあって、その差の分だけまた
Controlクラスから派生させたものにフィードバックするのが面倒なのですが、
なんでもかんでもPanelから派生させたものを使うのではメモリー消費が
大きくなるといけないかと思いました。

しかし面倒なのでこのままPanelから派生させたものでやりたいのですが・・・
どうするのがベターでしょうか。

346:デフォルトの名無しさん
07/02/01 22:43:54
貧乏臭いこと言うな
他に考えることがあるだろ

347:デフォルトの名無しさん
07/02/01 22:44:56
要するに自分で調べるのは面倒だから
俺様の代わりにちょっとそこのお前実験しろ、と。

そんなお人よしが果たしているかねw
馬鹿じゃないのお前

ていうか、パネルみたいなシンプルなコントロールがそんなにメモリ大食いするともそもそも思えんが

348:デフォルトの名無しさん
07/02/01 22:59:24
>>346-347
どうもです。

てことはやはりPanelクラスのオブジェクトはそれほど食わないだろいうことですね。
安心しました。

というか、どうもクラスの派生でプログラムすることを最近始めたため、世の中の
常識的なところがわからず、どうしたものかと悩んでおりました。
教えていただき、ありがとうございました。どうもでした。

349:デフォルトの名無しさん
07/02/01 23:02:43
>>348
常識で言ったら余計な機能は継承しないのが当然。

350:デフォルトの名無しさん
07/02/01 23:04:11
VB.NET2005、.NET Framework2.0での開発についてちょっと質問ですが
プロパティシートもしくはそれに類するUIを実装するような .NET Frameworkの機能はありませんでしょうか
そのものズバリのものでなくとも、実装に利用できる程度のものでもあればよいのですが

351:デフォルトの名無しさん
07/02/01 23:05:58
TabControl

352:デフォルトの名無しさん
07/02/02 00:04:40
このスレ マイクロソフトにでも見せたら きっと笑うんだろうね

353:デフォルトの名無しさん
07/02/02 01:14:07
マイクロソフトは 人間では ない

354:デフォルトの名無しさん
07/02/02 01:41:59
もっと恐ろしい別の何かだ

355:デフォルトの名無しさん
07/02/02 01:48:54
ゆえに笑わない。

356:デフォルトの名無しさん
07/02/02 08:58:04
ロボットだからマシンだから

357:デフォルトの名無しさん
07/02/02 09:04:53
この銀河を統括する情報統合思念体によって(ry

358:デフォルトの名無しさん
07/02/02 09:07:27
その恐ろしい何かを覗き込むとき、向こうも此方を覗き込んでいるんだよ。

359:デフォルトの名無しさん
07/02/02 09:28:56
>>350
もっと目的をハッキリ書いてくれ。
プロパティの編集がしたいなら PropertyGrid だし、見た目のことならフォームで作るしかない。

360:デフォルトの名無しさん
07/02/02 10:25:08
プロパティグリッドって良いよね。
あれ+クラスのシリアル化があれば、大抵の設定保存、編集は簡単に作れる。

361:デフォルトの名無しさん
07/02/02 12:29:30
>>359
はっきり書いてあるだろ。
自分の無知を棚に上げて何言ってるんだこのググレカスw
350の名誉のために言うが、俺は350じゃないから。

362:デフォルトの名無しさん
07/02/02 12:43:20
>>361
359じゃないけど、あれじゃ何を求めてるのか…「UIを実装するような機能」ってなによw
まだ359は推測で答えてるだけましじゃね?そういうお前なにも答えてないしwww

350の名誉のために俺は350じゃないってなんだよwwwww


363:デフォルトの名無しさん
07/02/02 13:00:57
プロパティシートってぐぐって最初に出てくるようなやつのことじゃないの?
だったら>>351じゃん

364:デフォルトの名無しさん
07/02/02 13:37:20
あれプロパティシートって呼ぶのか
知らんかったwwww

365:デフォルトの名無しさん
07/02/02 13:40:14
初心者ですみません
2003のslnを2005で使用するには、
何か作業が必要でしょうか。

366:デフォルトの名無しさん
07/02/02 13:42:26
VB使ってIEのコマンドボックスにテキストを入力したりできますか?
検索エンジンで調べてもわかりませんでした教えてください><;

367:デフォルトの名無しさん
07/02/02 14:01:22
コマンドボックスって何ですか?
検索エンジンで調べてもわかりませんでした教えてください><;

368:デフォルトの名無しさん
07/02/02 16:51:07
検索エンジンって何ですか?
じいちゃんにきいてもわかりませんでした教えてください><;

369:デフォルトの名無しさん
07/02/02 17:31:18
   , .- ==.、
 ,r'     i            呼んだ?
.,'   ,r'^":ツ
',   i:::::;〃..':.,
..`-- '"':、   .':,
     `'::.,   ':,
...       ゙'::., ..':,
       r=t,,r::` .':,-''_、
     _.i::::::::::::::::'-::'::::::::::i::-z=:ュ
.   <- .ii:::::::::::::::::ii:::::::::::::i::r个::',,,_
.   i  `^^''=--:::::::::::::::::::ii   .,.rィ'
.   i         `^'''':::z-''"c、 |
   ぅ、_           i  "i.i..|
   `^''''-=、- 、._     .i   i.i少,
.        `^''''-=、=-、,, i,,r'"彡'':-'
             `^''-=-''"

370:デフォルトの名無しさん
07/02/02 18:15:55
VS2005ってvista対応とちがうの?
起動したとたんにDevenv.exeの互換性エラーが出るのですが・・

371:デフォルトの名無しさん
07/02/02 18:18:57
>>370
SP1あてた?本対応はさらに何か出るらしいけど。

372:デフォルトの名無しさん
07/02/02 19:59:15
対応なのは、VS2005+.NET2.0で作ったアプリであってVSそのものじゃ無いんじゃ?
良くしらんけど

ところでちょっと訊きたいんだけど
プロシージャ内でローカルに作って使ったオブジェクトって
そのプロシージャ抜けたら速攻解放されるんかね?
それとも、もう要らないってマークだけされて、いつか解放されるとか言う仕様?

373:デフォルトの名無しさん
07/02/02 20:22:51
明示的にガーベジコレクタ呼んでやれば消えるが、
普通は確保したメモリを使い果たしそうになったときに回収される。

374:デフォルトの名無しさん
07/02/02 20:24:37
"C:\hoge"から"hoge"だけ取り出したいのですが、
正規表現以外に何かいい方法あればご教授お願いします

何かのメソッドに在りそうなんだけど見つけれない時・・・みなさんはどうしてるんでしょうかw

375:デフォルトの名無しさん
07/02/02 20:28:50
笑ってる暇があったらMSDN引けよ阿呆

URLリンク(msdn2.microsoft.com)

376:デフォルトの名無しさん
07/02/02 21:04:33
なにそれwキモイw

377:デフォルトの名無しさん
07/02/02 21:27:56
>>373
なるほど、ありがとうっす

378:デフォルトの名無しさん
07/02/02 21:44:32
条件式で 100 > n > 200 のように 間の値を取りたいのですが、
この場合に一行で済む構文はございますでしょうか。 

379:デフォルトの名無しさん
07/02/02 21:53:18
100 > n and n > 200

380:デフォルトの名無しさん
07/02/02 21:53:44
ありがとうございました

381:デフォルトの名無しさん
07/02/02 22:08:17
AndAlsoの方が良くね?

382:デフォルトの名無しさん
07/02/02 22:24:32
すまんですが教えてください、VB6であった 「透明」スタイルのコントロールは
作れるでしょうか?あちこち調べたのですが、たとえ
 Color.FromArgb(0,0,0,0) 
などにして、Alpha値を0にしてもどうもコントロールの上のコントロールには
FormのBackColorあるいはBackGroundImageが移るだけのようでした。

これを、下層のコントロールも透けるようになるようなVB6でできた透明スタイルの
コントロールはできるものでしょうか?


383:デフォルトの名無しさん
07/02/02 22:28:53
MDBファイルをデータグリッドビューに表示できたのはいいんだが
アクセスのレポートみたいに
データセットとかデータテーブルを印刷できるようにするには
どうすればいいですか?
2005にはレポートビューワーなる素敵機能があるみたいですが
2003(.net1.1)で実現したいのでつかえんみたいです

384:デフォルトの名無しさん
07/02/02 23:29:40
>>382
>下層のコントロールも透けるようになるようなVB6でできた透明スタイル

これ表現がおかしかったです、
>下層のコントロールが見えるようになるVB6でできた透明スタイル
でした。どうもすみません。。


385:デフォルトの名無しさん
07/02/02 23:46:22
>>382
で、さらにですが、VS2005でFormにコントロールを貼って、そのサイズを調整しているときは、
点線表示でサイズ外形が現われているが、

例えば、長方形でない異形のコントロールなどでやっても、
その異形Rigion以外の部分は透明のままでサイズが調整できていて、実質的な透明化が
「デザイン時には実現している」 ようなのでした。

もし、VS2005が、.NET Framework の範疇で作られているとすれば、
これがVS2005でできないはずはないと思われ、やれるものなら透明化したいと思うのですが、
もしVS2005が実際にはWin32APIなどやあるいはもっと深いレベルでC++で作られている
のであれば、.NET Framework と VS2005 の VB や C# からだけではではできない、
ということになるでしょうか?

386:デフォルトの名無しさん
07/02/02 23:49:21
>>385
それとも、デザイン時の点線外形が掛けているのは、それがコントロールのRegionとは
無関係に、デザイナー上の機能で、勝手にコントロールの外側に線を描画している
だけなのでしょうか?

387:デフォルトの名無しさん
07/02/03 00:10:01
>>386
しかし、そうだとしても、そのデザイナー上の点線は、別のコントロールの上にも現われて
表示されているので、ということは、それ自体もやはりRegionを持っていて、そこに描画されて
いるようにも思われるのですが、どうなんでしょうね。

もしそうだとすると、そのRegionはごく細い領域を持つものになりそうですが、
そうでも点線の上に、○印もありましたから、その分の幅はあるのでしょうか・・・

でも点線の両側はしっかりと別のコントロールも現われているし・・・
まさか線幅1Pixelの線Regionに○印の部分だけ合成したRegionなんでしょうか?

388:デフォルトの名無しさん
07/02/03 00:23:56
そういう散漫な思考能力丸出しの文章を書く人はプログラマ向いてないと思うよ。

そもそもただ漠然とコントロールって何だよ。
VB6で背景透明にできるコントロールってラベルぐらいじゃなかったか?
だったらそんなの試せばわかるじゃん。それこそ猿でも。

まあどうしてもそんなことがしたいならデスクトップのDCに描画すればいいんじゃない?
くだらないこだわりにしか俺には思えないけど。

389:デフォルトの名無しさん
07/02/03 00:28:00
>>387
点線とハンドルかいてるのはデザイナだろうが

390:デフォルトの名無しさん
07/02/03 00:54:52
VB.NETで作られた有名なソフトご存じ無い?

391:デフォルトの名無しさん
07/02/03 01:03:42
>>388
スレ汚しになりましたね、すみませんね。

いちおう、Region使いながら考えてみてはいるのですが、やはり他のコントロール
が見える状態にはできませんでした。

またVB6でもラベルだけであったとしても、一応できてはいたわけで、
それがVB6が基本的にインタープリターだったから、同にでもなり安いからできた、
というものであれば、それが完全にオブジェクト指向になった.NETではやりにくいのだ、
ということなら、仕方ないですかね。

>>389
ですよね、たぶん。ということは、その点線も○も、他のコントロールにまたがって
その上面に描画できているということは、それはやはりRegionを貼っている特別の
コンロールを使ってやっている、ということなんでしょうか。

とすれば.NETでは本当の意味での透明化コントロールはできない、と考えるべき
なんでしょうか?

392:デフォルトの名無しさん
07/02/03 01:07:59
すまんがまとめてくれないか?質問がわからん。
背景が透けるコントロールがつくりたいのか?

393:デフォルトの名無しさん
07/02/03 01:09:47
>>388
後は、そのおっしゃっている 「デスクトップのDCに描画する」 ということなんでしょうが、
まだ皆目見当が付かないのでやるとしたらうんと大変になりそうですが、また調べてみます・・・

394:デフォルトの名無しさん
07/02/03 01:11:56
>>392
要はそういうことなのですが、、下に別のコントロールがあるときに、
そのコントロールもちゃんと見えるような透け方がほしいのでした。

現状ですと、Formの地が見えるだけで、コントロールは見えてくれない、
ということなのです。

395:デフォルトの名無しさん
07/02/03 01:15:35
そうやって書くからややこしくなる。
透けるとはそういうことに決まってるだろが

396:392
07/02/03 01:16:41
>>394
わかった。
で、UserControlでいいのか?
それともControlを継承してガリガリ書く?

397:デフォルトの名無しさん
07/02/03 01:58:45
>>396
それはもしかして、ここでコードを教えてくださるということでしょうか?
それではあんまりご迷惑を掛けてしまうので、とてもお願いはできません。

ただもしヒントとなる事柄を教えていただければ、また自分で考えてみます。

もしUserControlで出切るとしたら、概略どんなことを知らねばならないのでしょう、
それだけでもありがたいです。

398:デフォルトの名無しさん
07/02/03 02:05:25
新しいタイプの釣り?w

399:396
07/02/03 02:06:50
>>397
じゃ、これで。
URLリンク(www.microsoft.com)


400:デフォルトの名無しさん
07/02/03 02:11:28
>>398
そういうことではないのですが、別法も考えながらやってましたので、
回避して別の手段で乗り切ることもあり得るためでした。

>>396
ちなみに、現在のデザイナー上では、コントロールを移動する際は、
異形コントロールであっても、長方形の外枠全体が非透明状態で
塗りつぶされていました。なので、やはりRegionは長方形で認識されて
いるだと思いました。UserControlにした場合でも、基本的には同じになる
のではないかとおもいましたが、それを透明化する方法というものが
あるのでしょうか?

401:デフォルトの名無しさん
07/02/03 02:13:09
>>399
かぶってしまいました、すみません。

情報、さっそくにすみません。
読んでみます。

402:デフォルトの名無しさん
07/02/03 12:13:32
ああなんだ、別にWin32のGetWindowDCとか使わなくてもSetStyleでできるんだな。
普通に知らなかった。
でもこれ、Win32レベルではどうやって実現してるんだろう。

しかし、コントロールのSetStyleなんか典型だけど、.NETのクラスライブラリって
なんでこれがProtectedなんだ?ってのが結構あるよね。

403:デフォルトの名無しさん
07/02/03 14:34:01
プロパティでラップしようとしてるからな

404:デフォルトの名無しさん
07/02/03 18:40:16
アクセスを極力制限するのはいいことなんだが

405:デフォルトの名無しさん
07/02/03 18:54:08
なんかVBスレらしい間抜けなレスが続くなw
「モノ」が機能を発揮するにあたり、不必要な情報や機能呼び出しは隠蔽したほうが
判りやすさの観点から望ましいのは当然としても、必要な機能まで隠蔽してあるのでは
本末転倒でしょ。

テレビのリモコンに垂直振幅調整ボタンがなくても怒らないけど、
音量調整ボタンがなかったら怒るだろw

406:デフォルトの名無しさん
07/02/03 20:45:59
>なんかVBスレらしい間抜けなレス
=405


407:デフォルトの名無しさん
07/02/03 21:27:55
隠すのは分かりやすさよりも保守管理のため

408:デフォルトの名無しさん
07/02/03 21:34:28
また間抜けなレスを。。
自分の頭で理解して咀嚼したことでなく、
どこかで聞きかじったことを語ろうとするからそういうことになるんだよ。

隠蔽しなかったら保守が大変になるのはどうしてだよ。
それは人間の認識能力が限られているからだ。
つまり、判りにくくなるからだ。

409:デフォルトの名無しさん
07/02/03 21:42:01
405が言ってるのは「ユーザ側のわかりやすさ」
407,408が言ってるのは「クラスの提供者側のわかりやすさ」
ごっちゃにするな

410:デフォルトの名無しさん
07/02/03 21:47:18
そういう物言いはその二つが一致しない場合があるのでなければ意味がない。
で、実際のところどうよ?w
考えるまでもないな。

411:デフォルトの名無しさん
07/02/03 21:48:58
っていうか、仮に一致しない場合があるとして、ライブラリの作者が
ユーザビリティより自分たちにとってのわかりやすさを優先してどうするw

412:デフォルトの名無しさん
07/02/03 23:35:33
隠蔽するか公開するかは、わかりやすいかどうかじゃなくて必要か不要かだろ。
だいたい「わかりやすさ」って何よ。

413:デフォルトの名無しさん
07/02/04 00:11:59
もういいからお前ら消えろ。
けっきょくVBスレらしい間抜けなレスにしやがって

414:デフォルトの名無しさん
07/02/04 00:13:31
正規表現のパターンを複数指定する事は可能でしょうか。

415:デフォルトの名無しさん
07/02/04 00:24:49
>>399
昨日は情報どうもありがとうございました。
教えて頂いたサイトからサンプルをダウンロードしてテストしてみましたところ、
やはり下層のコントロールは見える状態にはなりませんでした。
このSetStyleの方法はすでに試みていたものではあったのですが、
やはり結果は同じものでした。

やはり .NETではVB6でのラベルの透明化と同等の機能はじつげんできない
ように思います。

Regionを多重に切るか、ドーナツのように穴あきにするかすれば、完全に
透けて見える状態になるわけすが、それですとその穴から下のコントロールが
アクセスできてしまうので、透明化ということにはならず、やはり無理、と
思われました。

もしできるという情報がどこかにありましたら、また教えてください。


416:デフォルトの名無しさん
07/02/04 00:30:47
>>415
いったい何が作りたいのか言っちゃえば?
透けて見えるコントロールにアクセスできたら困るってのはUIとしてどうなのかと…

VB6のラベルコントロールはフォームに書いてるだけだし。


417:デフォルトの名無しさん
07/02/04 01:04:50
>>415
頭悪いにもほどがあると思うよ。
背景透明にできたんだから、あとはOnPaintでクライアント領域に
描画するだろ。

418:デフォルトの名無しさん
07/02/04 01:10:41
まぁそう言うな

419:デフォルトの名無しさん
07/02/04 01:40:50
ランダムに文字列を表示させたいのですがどうすればいいでしょうか。

420:デフォルトの名無しさん
07/02/04 01:53:40
>>419
もうちょっと詳しく説明しろよホントに・・・

Dim message As String() = {"もうちょっと", "詳しく", "説明しろよ", "ホントに・・・"}
Dim rand As Random = New Random(DateTime.Now.Millisecond)
Label1.Text = message(rand.Next(4))


421:デフォルトの名無しさん
07/02/04 02:48:09
>>414
意味が分からん
取りあえず二回 Match させりゃ良いんじゃね 並列か直列か知らんが

422:デフォルトの名無しさん
07/02/04 02:49:35
なんで具体的に説明しないのかね?

423:デフォルトの名無しさん
07/02/04 03:00:29
初心者スレが機能してないから流れてきてんだろ・・・

424:デフォルトの名無しさん
07/02/05 12:11:47
以前はデバッグ時に一時停止してのコード変更が可能だったのに、
どこかのタイミングからか、コードウインドウのタブ耳にロックのマークが現われ、
デバッグ実行中の一時停止でコード変更ができない状態になってしまいました。

これを解除してまたコード変更可能な状態にしたいのですが、
方法が見つけられずにいます。すみませんがこれについて教えてください。

425:デフォルトの名無しさん
07/02/05 12:35:26
デフォルトのコンストラクタで作成するDictionaryのキーに
EnumとかIntegerって使える?

やっぱり面倒でもIEqualityComparer実装したクラスを別に作らないと駄目なんだろうか?
今日午前中MSDNその他いろいろ読んでみたがどうもよくわからない。

Dictionaryのこの辺の話題を掘り下げてるところってどこかないかなあ。。

426:デフォルトの名無しさん
07/02/05 13:18:32
普通に使えるでしょ。

Dim foo As Dictionary(Of Integer, Object) = New Dictionary(Of Integer, Object)

427:デフォルトの名無しさん
07/02/05 15:13:54
自分が/t:winexeでコンパイルされてるかどうかの判別はどうすればできますか?

428:デフォルトの名無しさん
07/02/05 18:42:51
>>426
いや、そういう意味じゃなくてw
当然使っても安全かどうかって意味ですよ。

IEqualityComparerを渡さないコンストラクタを使った場合、
DictionaryはKeyオブジェクトのGetHashCodeを間接的に呼び出すはずだけど、
MSDNライブラリによれば値型のGetHashCodeで得られる値はハッシュとして機能しないとあるから。

429:デフォルトの名無しさん
07/02/05 19:01:03
Dictionary は、キーが同じであるかどうかを確認するための等値比較の実装を必要とします。
comparer パラメータを受け付けるコンストラクタを使用して、
IEqualityComparer ジェネリック インターフェイスの実装を指定できます。
実装を指定しない場合は、既定のジェネリック等値比較演算子である EqualityComparer.Default が使用されます。
型 TKey が System.IEquatable ジェネリック インターフェイスを実装している場合は、
既定の等値比較演算子でその実装が使用されます。

<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Structure Int32
Implements IComparable, IFormattable, IConvertible, IComparable(Of Integer), _
IEquatable(Of Integer)

430:デフォルトの名無しさん
07/02/05 19:08:05
等値検査の話じゃなくて、ハッシュの話をしてるんですが。。。

431:デフォルトの名無しさん
07/02/05 19:21:06
>>430
> IEqualityComparerを渡さないコンストラクタを使った場合、
> DictionaryはKeyオブジェクトのGetHashCodeを間接的に呼び出すはずだけど、
これは本当か?

432:デフォルトの名無しさん
07/02/05 19:22:34
>>431
確証はないんですが、MSDNライブラリのEqualityComparer.Default のくだりに
それっぽいことが書いてありますよ。

433:デフォルトの名無しさん
07/02/05 19:23:32
というか、仮にもハッシュテーブルなんだから何らかの形でハッシュは使うでしょう

434:デフォルトの名無しさん
07/02/05 20:55:55
>>430
当然、コリジョン対策はしてある。
Reflectorでソース追ってみなよ。

435:デフォルトの名無しさん
07/02/05 20:58:06
>>428
ハッシュが衝突して安全でないってどんなしょぼい実装や

436:425
07/02/05 21:07:46
>>434-435
生半可な知識しかないんで偉そうなことはいえないんですが、
なんか勘違いしてません?

「コリジョン対策」というのは、違うキーに対して同じハッシュが
生成されることへの対策でしょう。

等価のキーのハッシュが異なる場合はこの限りではないはず。

437:デフォルトの名無しさん
07/02/05 21:08:01
>>431
それは本当。

Int32はIEquatable<Int32>を実装してるから、
EqualityComparer<Int32>.DefaultはGenericEqualityComparer<Int32>のインスタンスを返す。
で、GenericEqualityComparer<Int32>.GetHashCode(Int32)は、Int32.GetHashCode()を呼んでる。

ハッシュが衝突した場合、IEqualityComparer<T>.Equals(T,T)が呼ばれるが、
GenericEqualityComparer<Int32>.Equals(Int32,Int32)の実装では、Int32.Equals(Int32)が使われている

438:デフォルトの名無しさん
07/02/05 21:14:45
>>436
等価なオブジェクトは等しいハッシュを生成しなければならないよ。

参照型であれば、Object.GetHashCodeに丸投げすることができるけど、
値型の場合はその条件を満足するようにGetHashCodeを実装しなければならない。

URLリンク(msdn2.microsoft.com)(VS.80).aspx

439:デフォルトの名無しさん
07/02/05 21:16:16
>>436
同じ入力値に対して異なる結果がでるのはハッシュ言わんがな

440:425
07/02/05 21:24:18
>>438
つまり、それを総合するとEnumやIntegerはそのままではキーとして使えない、
という結論なんでしょうかやっぱり?

441:デフォルトの名無しさん
07/02/05 21:27:35
>>440
なんでそうなるかなあ。。。

少なくともmscorlibやその他の標準ライブラリで定義されている構造体はGetHashCode()を適切にオーバーライドしてあるよ。

442:デフォルトの名無しさん
07/02/05 21:29:17
>>440
心配なら逆コンパイルして確かめてみればいいんじゃないの

443:425
07/02/05 21:33:58
>>441
そうなんですか。

>>442
いやそこまでの能力ないヘッポコなもんでここで質問させてもらってる訳でして。。

444:デフォルトの名無しさん
07/02/05 21:37:03
ファイルを読み込む際、文字エンコードを自動判別する方法はありますでしょうか

445:デフォルトの名無しさん
07/02/05 21:39:38
GoogleMapの座標を取り込みたいのですが、どこかにいいサンプルありませんか?


446:デフォルトの名無しさん
07/02/05 21:40:35
>>444
mlang.dll, IMultiLanguage2, DetectInputCodepageあたりでググってみ。

447:デフォルトの名無しさん
07/02/05 21:57:24
>>446
ありがとうございました

448:デフォルトの名無しさん
07/02/06 00:34:51
>>444
adode.streamのcharset="autodetect"や"_autodetect"なんてのも

>>427のほうもよろしくお願いします
exeヘッダを読まずにできませんか?

449:デフォルトの名無しさん
07/02/06 03:02:16
>派生型の GetHashCode メソッドを呼び出した場合、戻り値はハッシュ テーブル内のキーとしての使用には適していない可能性があります。
派 生 型 の
ちゃんと嫁。
ここでいう派生型ってのはつまり自分で作成した値型ってこと。
自作じゃないやつはMSDN見ればちゃんと適切に実装されていることが分かる。
ついでに、適切でないってのは、同値条件が不明だからってだけで、
同じビットイメージなら同じ結果になったはず。


450:デフォルトの名無しさん
07/02/06 08:22:32
>ここでいう派生型ってのはつまり自分で作成した値型ってこと。
おいおいw
それは日本語の読解としておかしいよ。
すくなくともこの文章にそんな含意はないでしょう。

もちろん他にそういう意味の記述があれば話は別だが、
調べた限り見当たらないんだよね。
だから>>425のとおり質問させてもらったわけで。

>>443では一応納得したふりをしたけど、本当はそんな確証はどこにもないと思う。

451:デフォルトの名無しさん
07/02/06 10:17:53
ああ、言い間違い。
組み込みじゃない型のこと。

452:デフォルトの名無しさん
07/02/06 10:35:21
派生型では適しないの意味を理解してないだろ。
既定の実装では全メンバが反映されるんだったような気がする。
もちろん派生型でこれが適しない可能性はある。
が、組み込み型では正しく動作するようになってる。
列挙は整数型と同じだから問題なし。

453:デフォルトの名無しさん
07/02/06 10:56:01
>>450
つまり組み込み型でも値型のハッシュは使えないとお前は言いたいのか?
んなわけあるかぼけ

454:デフォルトの名無しさん
07/02/06 11:18:28
別function内で起きたエラーもtry~catch文で拾えるんでしょうか?
どこら辺探れば理解できるかヒントでいいのでお願いします

sub main
try
if func_test then
label1.text = "true"
else
label1.text = "false"
end if
catch
label1.text = "exception error"
end try
end sub

function func_test() as boolean
~~~~~
ここで例外エラー
~~~~~
return true
end function

455:デフォルトの名無しさん
07/02/06 11:54:39
>>454
別Functionから例外投げればいいんじゃない?

456:454
07/02/06 12:21:48
>>455
ありがとうございます
出来ればmain内でエラーを拾いたいのです

今は拾えない前提で、func_testの部分を関数化せず
if func_test then の部分が出て来る度にtry~catchで囲ってました。

457:デフォルトの名無しさん
07/02/06 12:25:58
>>452
派生型に「組み込み型は除く」なんて含意があるわけないでしょw
単に「~から派生した型」、「~を継承した型」という以上の意味があるはずがない。

ちなみに>>449の説明はObject型の説明でしょう。
.NETでは全ての型はObject型からの…まああとは言うまでもないね。

458:デフォルトの名無しさん
07/02/06 12:26:44
func_test内でtry~catchしてなかったら外側で例外拾えると思ってた

459:デフォルトの名無しさん
07/02/06 12:45:34
>>457
お前思い付きで物言ってんだろ、話にならん。
objectじゃなくてValueTypeの説明の話だし、
Int32とかそれぞれの組み込み型のメソッドの説明に載ってる。
つまりきちんとオーバーライドされてる。
ちゃんと読めや。


460:デフォルトの名無しさん
07/02/06 12:52:18
もうお前ら消えていいよ

461:427
07/02/06 14:40:33
同じソースで、/t:exeならConsole.Writeで、
/t:winexeならMsgBoxかMessageBox.Showで出力しようとしても、
Console.Writeが/t:winexeでNOPになるだけで判別できないのです。
なにか方法ありませんか?

462:デフォルトの名無しさん
07/02/06 15:31:47
>>450
お前ArrayListが単純な配列とか有り得ない、
可変長配列は連結リストとかで作るのが常識みたいなこと
ほざいてたやつじゃねーか?w


463:デフォルトの名無しさん
07/02/06 16:11:44
馴れ合いなら、どこかよそでやれよ。

464:デフォルトの名無しさん
07/02/06 16:26:37
for each文で、配列の何番目の要素なのか簡単に取得する方法ってありますか?

465:デフォルトの名無しさん
07/02/06 16:27:32
ない

466:デフォルトの名無しさん
07/02/06 16:28:49
馴れ合いってそういう意味だっけか?

467:デフォルトの名無しさん
07/02/06 16:31:41
>>465
ありがとう

468:デフォルトの名無しさん
07/02/06 18:51:23
>>459
なるほど、ValueTypeの説明には明示的ではないにしろ、
キーにつかっても安全と取れる記述があるね。
>>449がはっきり「ValueTypeの説明にこうある」と書いてくれれば
いらん「誤解」は避けられたのに。

まあ、一応レスはありがとう。
でも君ごときにお前呼ばわりされるいわれはないよ。

469:デフォルトの名無しさん
07/02/06 19:10:14
2ちゃんでは二人称はお前がデフォだろうが

470:デフォルトの名無しさん
07/02/06 19:11:48
放っておけ

471:デフォルトの名無しさん
07/02/06 19:51:28
>>468
MSDNのメソッドの説明部分にもろ書かれてることを、
どこにも載ってないと言ってみたり、
最初からValueTypeの話で始まってるのに
勝手にobjectの説明だと決めつけたり
まあおめでたいやつだ。
誤解する方がおかしい。


472:デフォルトの名無しさん
07/02/06 19:55:31
ついでに言っとくがobjectのハッシュ実装の方こそ、
既定のハッシュ実装としては使えない。
これは確か明記されてなかったか?


473:デフォルトの名無しさん
07/02/06 20:30:29
>MSDNのメソッドの説明部分にもろ書かれてることを
ごめんこれ具体的にどこのこと言ってるの?
真面目にわからないから教えて欲しい

474:デフォルトの名無しさん
07/02/06 21:27:44
そっちが期待してる「書かれてる内容」とは違うと主張するのかもしれんが
Int32.GetHashCodeとかとにかく
組み込み型のGetHashCodeはみんなドキュメントあるだろ。


475:デフォルトの名無しさん
07/02/06 21:30:18
それとも具体的にハッシュとして使えると明記されてないから
こんなのは信用できないってか?

476:デフォルトの名無しさん
07/02/06 21:52:09
>>475
えーっと、それはプログラマとして当然の姿勢だと思いますが。。。

477:デフォルトの名無しさん
07/02/06 22:00:52
だったら何も使うなよ。
常識のレベルってもんがあるだろうが。
あの説明で具体的に何を疑うわけ?

478:デフォルトの名無しさん
07/02/06 22:04:07
つまりCLR組み込みの例えば整数型は
わざわざハッシュメソッドをオーバーライドした上で
しかもドキュメントにはこのインスタンスのハッシュコードを返すと書きながら
それを正しく実装していないと疑ってるわけだな?



479:デフォルトの名無しさん
07/02/06 22:06:00
やっぱりArrayListの列挙が順番通りなんて
とても信用できない、有り得ない君か?

480:デフォルトの名無しさん
07/02/06 22:10:42
初歩的な質問ですみません。
勉強がてらソフトキーボードを作っています。
例えばフォームのボタンをクリックしたら、他のアプリのテキストボックスに
文字などを表示するには、どうしたらいいんでしょうか?

481:デフォルトの名無しさん
07/02/06 22:12:49
そんなに熱くなる理由がさっぱりわからん。
不確かなことに依拠しない、なんてことはエンジニアだけでなく、
あらゆる仕事の基本だと思いますが。

482:デフォルトの名無しさん
07/02/06 22:14:38
Vista挿入した香具師居てるンですかどうなんですかブビの運命やいかに

483:デフォルトの名無しさん
07/02/06 22:29:05
デタラメばっかり言って人の言うことを全く信用しないからだ。
何のためにここに書き込んだわけ?
お前は誰が何を言っても信用しないのに

484:デフォルトの名無しさん
07/02/06 22:31:50
お前は疑うところがずれてんだよ。

485:デフォルトの名無しさん
07/02/06 22:34:06
>>480
何が分からないか具体的に

486:デフォルトの名無しさん
07/02/06 22:35:54
>>483
やっぱりそういう受け取り方をする人なんだね。
今日日増えたなこういうパーソナリティの人間。。

冷静に。
「信用できない」、「不確か」という言葉は君という人格に向けられた物じゃない。
君を信用できないとか誰が信用できないとかそういう問題じゃないんだよ。

大人ならそれぐらいわかるでしょ。

487:デフォルトの名無しさん
07/02/06 22:45:21
じゃあMSDNでいいよ
書かれてると言っても
書かれてることを読んでも
信用できないんだろ。
ただ、ここで言われたんじゃなく、自分で見て読んだなら
そこまで疑った反応するわけないんじゃないのか?
本当にMSDNに書かれてる内容をそこまで疑ってしか見られないんじゃ
とても開発なんて出来ないよ。

俺には何が疑わしいのか理解できないからな。


488:デフォルトの名無しさん
07/02/06 22:49:37
まあ、人が作ったものが信用できないなら自分で作ればいいだけだが
それで仕事になるかどうかは知らんが

489:デフォルトの名無しさん
07/02/06 22:50:38
わるいがわざわざ2チャンで冷静に見えるように書き込む必要を感じない。
携帯で丁寧な文は面倒なんだよ

あと内容で反論出来なくなたっらメンタリティとか、どうでもいいんだよ。
どこが疑わしいのかはっきり書け。

っていったらプログラマとして当然か、
悪いが全然当然じゃない。
よっぽどうがった見方しないと疑う余地がない。


490:480
07/02/06 22:52:25
>>485
レスありがとうございます。
フォームのボタンをクリックするとフォーム内の
仮に置いたテキストボックスに文字を表示する事はできました。
わからないのは、フォームではないアプリの入力欄に打ち込む方法です。
どんな設定やメソッド?を使えばいいのか見当がつかない状態です。

491:デフォルトの名無しさん
07/02/06 22:52:27
うがった見方ってのは、MSがわざわざ嫌がらせで
罠をはった実装を行った、くらいのレベルだ。

492:デフォルトの名無しさん
07/02/07 00:08:08
ちなみにInt32のGetHashCodeの実装は
自分自身の値を返す、だ。



493:デフォルトの名無しさん
07/02/07 00:23:03
ぶも。
最近@ITのVB記事がひどいでつ。


494:デフォルトの名無しさん
07/02/07 00:40:41
使用者のレベルに合わせてるだけでつ。

495:デフォルトの名無しさん
07/02/07 01:36:57
>>490
SendMessageでWM_KEYDOWN/WM_KEYUPメッセージを送るといい

496:デフォルトの名無しさん
07/02/07 10:12:08
配列の記事はまたひどいぶぶんがあるな。
なんかVBプログラマって感じだ。

497:デフォルトの名無しさん
07/02/07 15:05:35
質問です。

VB.Net2003でクラスライブラリを作成しています。

自作でクラスライブラリを作成することはできています。
できたDLLを別のVB.Netプロジェクトから参照して使用するのですが、
プログラミング時にインテリセンスで自作DLLの関数の説明を表示させるには
どのようにすればいいでしょうか?

System.ComponentModel の Description で自作プロパティを修飾したら
プロパティグリッドに説明が表示されますが、
自作関数に Description を使用してもインテリセンスには表示されません。
何を使って修飾すべきなのでしょうか?

498:デフォルトの名無しさん
07/02/07 15:20:12
ドキュメントコメント
xmlのやつ

499:デフォルトの名無しさん
07/02/07 15:21:51
ってVBか。
アドイン使わないと出来なかったな。
dll参照なら確かアドインでxml作れば出来たと思う。

500:497
07/02/07 15:44:31
ドキュメントコメントでググってみました。
VB2003では標準ではできないっぽいですね。

Imports System.ComponentModel
<Description("ほげ")> _
Public Function Hoge() As Stirng
  'なんたらかんたら~

みたいにお手軽にできるものならやろうと思っていたんですけど。
VBCommenterとかのアドインがあるみたいですね。

まぁそのうちにVS2005に移行する予定なので今は我慢しておきます。

情報提供ありがとうございました。

501:480
07/02/07 17:14:26
>>495
ありがとうございます。調べて試してみます。

502:デフォルトの名無しさん
07/02/07 22:59:53
色々調べたのですが判らず、恐縮ですが教えていただけるとありがたいです。

Excel2003 VBAでは、
Application.OnTime TimeValue("17:00:00"), "my_Procedure"
のように、簡単に、指定した時刻に処理を行うことが出来るのですが、

VB.NETでは、
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

'処理

End Sub
のように、指定時刻から現在時刻を引き、それをTimerのインターバルに設定して、指定時刻に処理を行う
方法が良いのでしょうか?

503:デフォルトの名無しさん
07/02/07 23:02:30
0.5秒ごとに指定時刻と現在時刻を比べるといい
なあに大した負荷ではない
むしろその方が誤差は少ないじゃないか

504:デフォルトの名無しさん
07/02/07 23:36:44
>>503
なるほど。力業の感じを受けましたが、VBAとは違ってそのような処理は軽いんですね。ありがとうございました。

505:かのん ◆Ry3ufnjL32
07/02/08 00:09:26
VB2005のRichtextにおいて、マウスカーソルはRichtextboxがもともと持っているにもかかわらず、
フォームエディタで設定されたCursorで上書きされてしまいます。そのため、画像のサイズ変更ハンドル
などが表示されません。

フォームエディタで設定されたCursorを表示しないようにして、もともとRichtextboxコントロールが持っている
マウスポインタを表示させたままにすることはできますでしょうか(いろいろやってみたのですが、
カーソルが点滅して使い物になりませんでした。)。よろしくご享受ください。

506:デフォルトの名無しさん
07/02/08 13:52:44
アップロードするプログラムを作るためにソケットを使おうと思うんですが
Private sc As New Sockets.Socket( _
Net.Sockets.AddressFamily.InterNetwork, _
Net.Sockets.SocketType.Stream, _
Net.Sockets.ProtocolType.Tcp)

を数回使ったりするプログラム方法ってありますか?
打開策が見いだせなくて死んでますOTL

507:デフォルトの名無しさん
07/02/08 21:22:38
式のウオッチで、式の値が変化したときに停止(ブレーク)する、の設定は
どのようにするのでしたっけ?前にやったような気がするんですが、
またやろうとしたらメニューのどこを見てもそれらしいのがなく、Help見ても
出てきませんです。困りました。。。

508:デフォルトの名無しさん
07/02/08 22:29:12
>>506
数回使うという意味が分からん

509:デフォルトの名無しさん
07/02/09 02:09:48
VB2005でlzhファイルを解凍したいのですが、うまくいかなくて弱っています・・・
どう修正したら良いのでしょうか?

Public Class Form1

Public Declare Function Unlha Lib "unlha32" _
(ByVal hWnd As Long, ByVal szCmdLine As String, _
ByVal szOutput As String, ByVal dwSize As Long) As Long

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

Dim Lzhfilename As String
Dim Outdir As String
Dim Meltopt As String
Dim result As Long '戻り値 (成功:0 失敗:エラーコード)

'ディレクトリ指定 & 解凍オプション
Lzhfilename = Chr(34) & "C:\Documents and Settings\My Documents\My eBooks\Book.lzh" & Chr(34)
Outdir = Chr(34) & "C:\Documents and Settings\My Documents\My eBooks\" & Chr(34)
Meltopt = "e " & Lzhfilename & " " & Outdir
result = Unlha(Me.hWnd,Meltopt, "", 0)
If (result <> 0) Then MsgBox "Error/Warning : 0x" & Hex(result)

End Sub

End Class

510:デフォルトの名無しさん
07/02/09 02:37:34
>>509
URLリンク(dobon.net)

511:デフォルトの名無しさん
07/02/09 09:57:20
>>510
できませんでした。

512:デフォルトの名無しさん
07/02/09 12:06:40
.NETで既存のExcelファイルを開きマクロを操作(実行)するには
どう記述したら良いのでしょうか?

513:デフォルトの名無しさん
07/02/09 12:26:28
VB.NETでExcelVBAのマクロを動かす方法は??
URLリンク(homepage1.nifty.com)
URLリンク(hanatyan.sakura.ne.jp)

MicroSoft Excelを起動(既存のファイルを開く)
URLリンク(www.bcap.co.jp)

Visual Basic .NET からオートメーションを使用して Office マクロを実行する方法
URLリンク(support.microsoft.com)

514:デフォルトの名無しさん
07/02/09 12:31:41
>>508

複数のファイルをアップロードしようと思うんです。
今はソケットを大量に作ってますOTL

515:デフォルトの名無しさん
07/02/09 14:19:10
>>512
.NETでExcelなどのCOMを扱うのは参照の解放漏れ対策で苦労するので、
VB6やWSHでやったほうが楽なのでは?

516:デフォルトの名無しさん
07/02/09 16:40:11
ちょっとこういうことできるか聞きたいんだが

【開発環境】VB.NET2003

あるラベル(長さは文字数が違っても一列で表示したい)を動的に縦に並べて作成する。
その横にテキストボックス(サイズは固定)を配置

で、ここでテキストボックスのLeftを揃えたい
ただし、ラベルの文字の長さは変わる

こういうことは出来るんだろうか・・・
結果的に↓みたいな感じにしたい

LABEL1AAA | TEXTBOX1
LABEL1BB | TEXTBOX1
LABEL1C  | TEXTBOX1

ずれてたらすまんが | が縦に並ぶようなイメージ
もし、こんなので出来るよって人いたらお願いします。

517:デフォルトの名無しさん
07/02/09 16:45:38
一番長いラベルが収まる幅を確保すればいいだけではないの?
Measurestringとか。

518:デフォルトの名無しさん
07/02/09 17:01:55
>>517
まさにその通りだったんですが
Graphics名前空間にこんな便利なのがあるとは・・・

これで計算した大きさにラベル合わせていけば問題なくいけそうです!!!
ありがとうございました!

519:デフォルトの名無しさん
07/02/09 18:41:34
んなことわざわざしなくてもラベルのサイズってAutoにできたような。。。

520:デフォルトの名無しさん
07/02/09 18:57:07
質問よく読めよ・・・

521:デフォルトの名無しさん
07/02/09 20:28:19
ちょっと教えてください

ユーザーコントロールを作成しました。

このコントロールは System.Windows.Forms.UserControl を継承していますが
ListViewのように常時スクロールバーを表示する機能は標準で実装されていないようです。

そこで、ListViewのように常時このコントロールにスクロールバーを表示させたいのです。
(ただし、スクロールできない場合は、グレーで操作不能)
こういう実装は可能なのでしょうか?

ググってみたのですが、どうもこういう質問は見当たらなかったもので・・・

522:デフォルトの名無しさん
07/02/09 20:33:14
>>514
一気にパケット送って一気に元に戻しちゃぁいけないの?

523:デフォルトの名無しさん
07/02/09 21:07:53
>>521
HorizontalScroll, VerticalScrollはどう?

524:デフォルトの名無しさん
07/02/09 21:14:24
>>523
折角お答えいただいたのに申し訳ない
FrameWork2.0ならそれでいけるのですが、
現在の環境はFrameWork1.1 SP1(細かく忘れましたがとにかく最新です。)
になっているんです。

確認してみたのですが見当たらなかったので・・・

環境書き忘れごめんなさい。

525:デフォルトの名無しさん
07/02/09 21:19:10
>>524
あーそれじゃあ

VScroll, HSrollってprotectedなプロパティがあったと思うから、
オーバーライドしてやればどうかな

526:デフォルトの名無しさん
07/02/09 21:21:29
あっと、
オーバーライドじゃなくて、普通に設定するだけでいい。
AutoScrollをfalseにするのを忘れずに。

527:デフォルトの名無しさん
07/02/09 21:51:39
>>525>>526
度々のレス、ホントありがとうございます。

んっと どうもそのプロパティは基本的に表示可能かどうかを示す値なような・・・
というわけでBooleanなので設定試してみましたがムリでした。(AutoScrollはFalse)

最初の説明を見直してみてちょっと修正したいと思ったんですが

ListBoxコントロールのScrollAlwaysVisibleプロパティ

ズバリコレと同じ事をユーザーコントロールで実装したいと思っていただければ
自分でそのあたり実装しなくてはいけないんでしょうが何をベースにしていいのやらがまったく・・・・

528:デフォルトの名無しさん
07/02/09 22:03:21
>>527
VScrollBar コントロールをそのUserControlに張り付けりゃいいんじゃねーの?

529:デフォルトの名無しさん
07/02/09 22:16:18
>>527
となると、SetScrollInfoをP/Invokeかなあ
他の処理も自前でやらないといけなくなりそうだが

530:デフォルトの名無しさん
07/02/10 00:04:52
貴重な意見ありがとうございます。

>>528
そうなると自前で書く部分が相当増えそうなきがして。。。
コントロールの移動とか(;´∀`)

>>529
ちょっとそれでググたりしてやってみることにします。
実際、コントロールの機能にないものを実装することがなかったので・・・
かなりきついとは思いますが(;´∀`)


531:デフォルトの名無しさん
07/02/10 00:33:30
親亀の上に子ガメをのせて孫亀乗せればいいじゃないか

532:デフォルトの名無しさん
07/02/10 01:15:31
とりあえずやってみました。

>>528の方法をまず試してみた
中にあるコントロールのサイズが大きいときだけEnable=Trueにして
期待通りの動作はしたけれど問題はVisualStyleですね。

次は>>529のを次試してみることにしよう



533:デフォルトの名無しさん
07/02/11 19:09:57
誰か>>507教えてください。よろしく

534:デフォルトの名無しさん
07/02/11 22:56:23
質問です

他の方がC#で作ったというDLLをもらってきて、
自分のVB2005で参照追加して使っているのですが、
できたプログラムをIDE上のデバッグモードで走らせるときは、期待通りの結果が得られますが、
ビルドしてできたEXEを実行しても結果がデバッグモードの時と違ってしまいます。

具体的にはDLLに含まれるある関数の戻り値が、ビルドしたEXEファイルでは必ず0になってしまっているようです。
他に特にエラーを吐くわけでもなく、DLL内のクラスのインスタンスを作ったり、関数を呼ぶこと自体はできているようです。

このようにデバッグ時とビルド後で結果が違ってしまう場合の原因ってどんなことが考えられるでしょうか?

ちなみに、環境はWinXP Pro(SP2) + VB2005 ExpressEditionです

535:デフォルトの名無しさん
07/02/11 23:13:08
>>533
2003になったとき、しばらく探してあきらめたような覚えがある。
ぶっちゃけ無くなっちゃったと思ってる。

536:デフォルトの名無しさん
07/02/11 23:21:06
VB6とかいうインタプリタの時代の機能じゃねえの?

537:デフォルトの名無しさん
07/02/11 23:25:29
>>534
関数?

作者に聞くしかないんじゃね?
// とか言いつつ実は漏れだったらどうしようw

538:534
07/02/11 23:48:34
>>537
>関数?
すみません、書き方が悪かったです。
正確にはDLLに含まれるクラスの中のメソッドです。

「A.DLL」のなかに 「B」というクラスがあって、そのクラス内にFunction C() As Double というメソッドがあったとして、
Dim Test As A.B = New A.B
MsgBox(Test.C().Tostring)
というコードを実行したとき、デバッグモードでは0でないある数値が表示されるのに、ビルドした後だと必ず0が表示されてしまうのです。

やっぱり作者に聞くしかないですかね・・・

539:デフォルトの名無しさん
07/02/12 01:18:45
Form3_Loadで、もしForm1からForm3へ移動してきた場合は真
Form2からForm3へ移動してきた場合は偽を返す
・・・みたいなこと出来ますか?
もし出来るのでしたらヒントかソース教えていただけると嬉しい。

540:デフォルトの名無しさん
07/02/12 01:25:58
>>538
デバッグ時とリリース時で挙動が違うときは最適化を疑う

>>539
「移動してきた」の意味が分からん。
直前にアクティブだったってこと?
それとも各フォームからShowされたってこと?

541:539
07/02/12 01:30:50
フォーム1,2でこのソースを使って3へ移動しています
If frm3 Is Nothing Then
frm3 = New Form3
End If
frm3.Owner() = Me
Me.Hide()
frm3.ShowDialog()
わかりにくくてすみません

542:デフォルトの名無しさん
07/02/12 01:36:16
>frm3.Owner() = Me
ってしてるんだったらForm3_LoadでOwnerの型を調べりゃいいじゃん


543:デフォルトの名無しさん
07/02/12 01:51:37
>>538
ConditionalAttributeが怪しいといってみる

544:539
07/02/12 02:11:40
レスありがとうございます!
Ownerの型ってどうやって調べるんでしょうか?
ぐぐっても今一ピンとくるものがなく困っています。

545:デフォルトの名無しさん
07/02/12 06:30:38
>>539
if frm3.Owner = frm1 then これでだめか?


546:デフォルトの名無しさん
07/02/12 10:32:52
しかし、ダメな奴に限って意味なくやたらとウィンドウが遷移するような
UI作りたがるのはどうしてなんだろうね。

そんでもって「別フォームの変数にアクセスするには~」とか言ってやんの

547:デフォルトの名無しさん
07/02/12 15:25:52
ちょっとぼやいてもいい??

しかしなんでこうHelp役に多端の金?

ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.ja/CPref17/html/M_System_Windows_Forms_ToolStripItemCollection_CopyTo_1_1f033e27.htm

このCopyToすると、元のメニューのコレクションの中身が全部なくなるって
不具合なんで記載しておかないの金?w

548:デフォルトの名無しさん
07/02/12 15:27:36
CopyってCloneつくるんじゃなくて、配列にコピーしたら元のは消しますって
かいとかないのはなぜ?w もしコピーじゃなくて移動ならMoveとか名前変えないと
絶対ウソだろが。

549:デフォルトの名無しさん
07/02/12 15:58:07
アンタの環境特有のURL貼られてもねえw



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