VB.NET質問スレ (Part19 ..
175:デフォルトの名無しさん
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のコマンドボックスにテキストを入力したりできますか?
検索エンジンで調べてもわかりませんでした教えてください><;
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5374日前に更新/270 KB
担当:undef