VB.NET質問スレ (Part22 ..
[2ch|▼Menu]
237:デフォルトの名無しさん
07/07/21 16:01:20
>>235
NotifyIconのはなしでしょ。
普通のアイコンはそりゃ24bitだけども。

238:デフォルトの名無しさん
07/07/21 16:06:24
ああすまん調べてみると確かにタスクトレイのアイコンはWin2k以前は16色という
制限があるみたいだね。

全然知らなかったよ。。

239:デフォルトの名無しさん
07/07/21 16:17:37
>>238
何の話をしてるのか解ってなかったんかい!w

240:デフォルトの名無しさん
07/07/21 16:33:09
ワロタ

241:デフォルトの名無しさん
07/07/22 04:01:20
俺用メモ

"文字列"の文字列中で " を使うには ""
ずっと \" だと思っていて時間15分食った。

242:デフォルトの名無しさん
07/07/22 04:48:41
ボタンをおしたら乱数を発生させる、
ってのを作りたいんだが、どうすればいいかな

パスワード生成ソフト。
8桁で、
半角のアルファベットと、
半角の数字が混在したもので、
数字は2つ以上必須。
アルファベットは
2つ以上の半角大文字と
2つ以上の半角小文字が
必ず入ったもの。

243:デフォルトの名無しさん
07/07/22 06:39:20
エラー 1 'ElseIf' の前には、対応する 'If' または 'ElseIf' を指定しなければなりません。
ってでるんだが、指定の方法がわからん
指定なんてできるのか?

244:デフォルトの名無しさん
07/07/22 08:07:51
わかったわ
必ず改行しないとだめなんだわ
改行で識別してるってどんなアホ言語だよ?

245:デフォルトの名無しさん
07/07/22 08:31:51
>>244
Python使いの俺にケンカ売ってんのか

246:デフォルトの名無しさん
07/07/22 10:06:02
>>242
条件に当てはまらなければやり直しでいいんじゃね?
下手な小細工するよりはね

247:デフォルトの名無しさん
07/07/22 10:15:08
>>246
うん。それでいこうとおもうんだ。
で、いま、Rnd()関数で1−62の数字を生成させて、
1だったら1
2だったら2
、、、、、、
9だったら9
10だったら0
11だったらa
12だったらb
、、、、、、、
○○だったらz
XXだったらA
△△だったらB
、、、、、、、、
□□だったらZ
ってやろうとおもって、
最初if ,,,then a=1
else if then ,,,,
end if
ってコード書いて、改行入れないと認識されないってのが
わかんなっくて、それで3時間悩んで、いまようやっと
改行入れればいいんだ、ってわかって、それで次は
ifでなくてcaseにしたほうが賢いよね、って思って、
それをいますぐコーディングするか、あるいは
図書館いって紅の豚見るか、本屋いって立ち読みするか、
WoWやるかUOやるか、グーグルで検索してみつけた
大学生のプロブラマーさんにメールだすか、、、、
ってところで悩んでる

248:デフォルトの名無しさん
07/07/22 10:48:58
>>242
要は以下の機能を作れば実現可能じゃないか

(1) Nの中からランダムな一文字を吐くメソッドGetN
(2) Uの中からランダムな一文字を吐くメソッドGetU
(3) Lの中からランダムな一文字を吐くメソッドGetL
(4) Cの中からランダムな一文字を吐くメソッドGetC
(5) 上の各メソッドそれぞれについて2つずつ値を取得し、それらの文字を組み合わせて
  8文字の文字列を吐くメソッド
(6) 引数にとった文字列中の文字をランダムに並び替えた文字列を吐くメソッド

ここで、
 N: 半角数字の文字の集合
 U: 半角数字と半角英字の大文字の集合
 L: 半角数字と半角英字の小文字の集合
 C: 半角英数字の文字の集合

249:デフォルトの名無しさん
07/07/22 10:49:45
まさかその段階で悩んでるとは思わなかった。
VBなら、そうだな、wchrだったか、chrでも同じだったか
とにかくその辺の関数でどうにでもなる。

文字種別だけifとかで分けて、もしくは足す数値を変えて
chrやらで文字にすればいい。

250:デフォルトの名無しさん
07/07/22 13:33:35

TextBox を単純なログ垂れ流し領域として使いたいのですが、Text プロパティに
文字を追加しただけでは勝手にTOP位置までスクロールしてしまいます。
その直後に最下行へスクロールさせても表示がガタついて上手くありません。

TextBoxの表示位置を変えずに、文字列だけ追記する方法はありませんでしょうか。

通常であれば AppendText を使うのですが、これが実装されていない環境( Compact)
なので・・・・・・・

よろしくお願いいたします。


251:デフォルトの名無しさん
07/07/22 14:25:54
コントロール配置を右寄せかつ高さを自分で決めれるかつAutoSizeするにはどうプロパティ設定したらいいでしょうか?

お願いします

252:デフォルトの名無しさん
07/07/22 14:31:29
日本語でお書き下さい。
またはエスパーを召還してください。

253:デフォルトの名無しさん
07/07/22 21:40:10
>>252
難しかったですか?
簡単に言うと
「AppendText を使わずに、AppendTextと同じ機能を作る方法は?」
です。



254:デフォルトの名無しさん
07/07/22 22:54:50
>>253
いやエスパー召還が必要と思われるのは>>251の方。

>>250は難しそうだね。
Compactって思いのほか制約が多いんだね。
SuspendLayoutもWndProcも使えないんじゃどうやって良いかわからない。

ただ、ログを表示するだけならスクロールバーとラベルを組み合わせて
コントロールを自作すれば済むことのような気もする。

255:デフォルトの名無しさん
07/07/22 22:59:58
ListView の詳細表示とかどうかな?

256:デフォルトの名無しさん
07/07/23 00:18:08
>>254
ListBox

257:デフォルトの名無しさん
07/07/23 09:07:34
プログラムの実行を途中で停止したいのですが・・・

end だとアプリそのものがとまってしまいます
exit sub にすると呼び出されている関数の場合
もとの式に戻って実行を続けます
その以降の処理だけとめて、
入力待ち状態にしたいのですが
こういう場合はどうすればよいのでしょうか?


258:デフォルトの名無しさん
07/07/23 09:29:47
止めるだけっていうなら
thred.sleep
これでよくね?


259:デフォルトの名無しさん
07/07/23 09:31:08
Thread.Sleep
だたorz

260:デフォルトの名無しさん
07/07/23 09:48:53
>>257
プログラムを実行中止状態にすれば、入力待ち状態にはならない。
VBはイベントドリブンだから、普通に書けば、入力待ち状態だろ。

261:デフォルトの名無しさん
07/07/23 10:12:55
>258

Thread.Sleep だと、指定時間後に制御が戻ってしまいました
スンマセン

>260

まさしくそのとおりなんです
その普通の入力待ち状態に持っていきたいのですが

Sub a
call b()
call c()
end sub

sub b()
exit sub
end sub

上の例でa() を実行した場合にb()の中で
Exit Subを行うと 
呼び出した側のa()に制御が戻るだけですので
c()が実行されます

そうではなくて、b()内でメソッドを実行するだけで
a()の以降の処理も停止する、上の例で行けばc()の処理を
発生させないメソッドはないものかと思案中です・・・。




262:デフォルトの名無しさん
07/07/23 10:17:44
どんな復帰のし方するか知らんが
フラグもってイベントでフラグチェックしてe.Cancel使えばどうなのさ?

263:デフォルトの名無しさん
07/07/23 10:52:03
>>261
フラグはちょっと気持ちが悪い(笑)
Subじゃ無くてFunctionを使って、Returnで値を返して、
条件分岐....

264:デフォルトの名無しさん
07/07/23 11:01:05
その中断の条件が例外として扱ってよい事象なら
例外にしてSub Aのレベルでキャッチする。
ただ通常の分岐なら使うべきではない。

265:デフォルトの名無しさん
07/07/23 12:28:45
>>261
何か策を弄そう、という発想がこの場合間違い。
そんなことが可能だとして、そんなプログラマの予期を裏切るような
コードが「よいコード」だと思う?

フラグでも何でも使って愚直にやってください。


266:デフォルトの名無しさん
07/07/23 12:53:36
皆様ありがとうございます

dim blnExit as booLean = false

Sub a
call b()
if blnExit = True then Exit Sub
call c()
end sub

sub b()
if ----
----
else
blnExit = True
end if
end sub

てなかんじでフラグたてて毎回チェックさせてみます
アドバイスありがとうございました

267:デフォルトの名無しさん
07/07/23 12:55:00
そんなこといなくちゃいけないんなら素直にメッセージ出してEnableいじればいいんちゃうんかと
もしくはダイアログ出すとか



268:デフォルトの名無しさん
07/07/23 15:21:28
そのフラグは止めろ、まじで。
戻り値とかには出来んの?


269:デフォルトの名無しさん
07/07/23 15:48:08
理由は?

270:デフォルトの名無しさん
07/07/23 16:53:18
sub b
の中で最後にcall c()するようにして、
sub bの中で条件によりexit sub するようにしちゃいかんの?



271:デフォルトの名無しさん
07/07/23 17:05:56
解決してるんだしもういいんではないかと。

272:デフォルトの名無しさん
07/07/24 14:44:35
MessageBox について

MessageBoxで、String型の引数1つだけ指定するShow()を実行したとき、
OKボタンはちゃんと現れてくれたのですが、戻り値を受ける形で記述しないと、
OKボタンを押さない内に、表示と同時に先に進んでしまう、といったことは
あり得るでしょうか?

というか、実はそういう現象になったのですが、以前からMessageBoxって
こうでしたっけ?少なくともVB6以前ではこういう事象は経験したことがなく
ちょっと驚いております・・・。それともこれは記述に依存する仕様なの
でしょうか・・・?


273:デフォルトの名無しさん
07/07/24 15:36:20
>>272
そもそもMessageBox.Show関数に引数1つだけのオーバーロードなんかないと思うが?

274:273
07/07/24 15:38:22
ごめん、今の間違ってた あるあるw

つうか、
MessageBox.Show("hagehage")
これで次へ進むにはOK押さないとすすまないんだが?
うちのフレームワークの場合
ちなみに2.0 SP1

275:デフォルトの名無しさん
07/07/24 15:54:52
>>274

、ですよね、そうであるはずなのですが、どういうわけか
「ボタン押下を待たずに」、先に行ってしまい、MessageBoxだけは残ったまま
という状態となり、後からボタンを押すとMessageBoxは消えてくれるという
変な状態だったのでした。

これって何だったのか・・・。しょうがないので、とりあえずボタンなどの
引数入れて書き直したところ、ちゃんと待つようになりましたが・・・、
こんなことっておかしいですよね?ちなみにこっちも同じFrameworkは同じ
バージョンでした。

276:デフォルトの名無しさん
07/07/24 16:55:25
DataGridViewにデータをバイドさせて使うとき
あらかじめデザイナでカラムを追加し、バインドするカラムの名前をDataPropertyNameを設定していてやる
DataGridView.DataSource=dt

で、バインドさせるとまず正常にバインドされて表示

このあと同じカラム構造の別のデータテーブルをデータソースに入れるときに

Directcast(DataGridView.DataSource,DataTable).dispose
DataGridView.DataSource = Nothing

としたらこの時点でもともと追加していたカラムがColumnコレクションから消えちゃってる・・・

そのあと
DataGridView.DataSource=新しいdt
としたら当然DataGridViewcolumnオブジェクトがないので空のDataGridViewにバインドさせたのと同じ状態に・・・・

この動作は仕様ですか?( ゚Д゚)?
テーブルバインドさせる時みんなどうやってんの?


277:デフォルトの名無しさん
07/07/24 16:59:10
「画面のプロパティ」のデザインタブのフォントサイズを取得する方法って
ありますでしょうか?

278:デフォルトの名無しさん
07/07/24 17:03:49
初心者の質問ですみませんが、どなたかお教えください。
WindowsXP + VisualStudio + VB2005 でWindowsアプリを作ってます。
ここで、タスクトレイにアプリを常駐させて、ショートカットキーで
起動したいと思ってます。例えば、UWSCや日本語FEPのように、
他のアプリがアクティブな状態でもショートカットキーで処理を起動
するのが目的ですが、その方法がわからないで困っています。

FormにNotifyIconコンポーネントを追加して、ContextMenuStripを
関連づける方法で、タスクトレイ上でアイコンを右クリックして、
メニューを表示し、その上でショートカットキーで動作させることは
できました。
しかし、メニューをポップアップしていない状態でショートカットキー
を入力しても、処理が起動されません。
ヒントでもいいので、よろしくお願いします。



279:278
07/07/24 18:14:39
RegisterHotKeyを使って、なんとか自己解決できそうです。
お騒がせしました。

280:デフォルトの名無しさん
07/07/24 20:13:50
教えてください!
VB2005EXPRESSである機能をもつフォームを作りました。そのフォームをスタートアップフォームにしたときはちゃんと動くのですが、別のフォームをスタートアップにしてそのフォームを呼び出したときはちゃんと動きません。こんなことってあるのでしょうか?
(詳細続く)


281:デフォルトの名無しさん
07/07/24 20:46:53
(上からの続き)うまくいかない機能とはDATAGRIDVIEWの部分です。
この中にあるマスタのコード入力用列と名称表示用列を作りました。セルの値が変化したときにDATASETの中身をFINDBYで検索し名称列に値をを自動セットする仕組みです。
この名称取得が該当フォームを別のフォームより呼び出した場合のみ動きません。
何か分かる事があれば教えてください。よろしくお願いします。


282:デフォルトの名無しさん
07/07/24 21:29:02
>>277
SystemFonts

>>280
何かの変数の中身が呼ぶ順番に依存してるんだろとしか

283:デフォルトの名無しさん
07/07/24 21:56:07
>282
レスありがとうございます!
仰ているのは例えば変数Aをフォーム1(スタートアップ)、2(DATAGRIDのある方)で共有していてフォーム1から呼び出した場合はフォーム1が変数Aの値を書き込んでいるのでその影響を受けるとかいうことですかね?
頑張って調査します。


284:部長
07/07/25 09:43:20
アパッチのアクセスログで、
*.co.jpからのアクセスだけ残して、
他は全部捨てる、ってプログラムを
VBで書こうと思ったんだけど、どんなもんかな?

285:部長
07/07/25 09:44:30
アパッチのアクセスログがこんな感じになってて、
afeda.ocn.ne.jp
awefre.unko.co.jp
fedwa.tinpo.ac.jp
co.jpの行だけ残して
他はみたくないんだよ。できる?

286:デフォルトの名無しさん
07/07/25 09:52:05
For i As Integer = 0 To Me.TextBox1.Lines.Length - 1
If Me.TextBox1.Lines(i) Like "*.co.jp" Then
MessageBox.Show(Me.TextBox1.Lines(i))
End If
Next i

287:デフォルトの名無しさん
07/07/25 10:03:10
VB.NET2005ではじめえEXCELをCOM参照して操作したが・・・

これ試しにOffice97しかはいってないWin2000に入れたらうごかねぇのw

こんなエラーが・・・・

保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。
アプリケーション動作中の予期せぬ例外が発生した為、処理を中断しました。

俺涙目orz

288:デフォルトの名無しさん
07/07/25 10:16:07
COM参照ってなんだっけ?
APIみたいなもんか?

ところでゲイツってCOMとか.NETとか
インターネットで使われる用語をすぐに
ぱくりたがるよね?

289:デフォルトの名無しさん
07/07/25 11:05:28
Javaのpackageのようなものはありますでしょうか?

ソースをパッケージでまとめたいのですが

290:デフォルトの名無しさん
07/07/25 11:08:24
VSインストーラでどうぞw


291:デフォルトの名無しさん
07/07/25 11:23:56
namespaceのことじゃね?

292:デフォルトの名無しさん
07/07/25 11:26:41
>>291
おぉ!
たぶんそれです。調べてみます。

293:デフォルトの名無しさん
07/07/25 11:33:12
>>287
バージョン依存のインターフェイスメソッドとか使ってるんじゃね?


294:デフォルトの名無しさん
07/07/25 12:11:40
COM参照した場合ってバージョン固定になったりしないの?


295:デフォルトの名無しさん
07/07/25 12:25:26
レイトバインディング

296:デフォルトの名無しさん
07/07/25 12:30:33
そもそも本当にエクセルを操作していることが原因かどうか怪しいもんだけどねw
俺はまず9割方別の理由だと思う

297:デフォルトの名無しさん
07/07/25 12:38:34
どうも今調べてみたら2007のOffice.Coreを参照してたくさいorz


298:デフォルトの名無しさん
07/07/25 16:42:14
プロシージャ内の変数の宣言するときって、今まで上の方にまとめて書いてたんですが
買った本のサンプルだと使う度にその場所で宣言してるようです。
みなさんどっちですか?

299:デフォルトの名無しさん
07/07/25 16:44:33
スコープによって変える

300:デフォルトの名無しさん
07/07/25 17:51:51
上にまとめるやつきもい

301:デフォルトの名無しさん
07/07/25 22:45:44
上にまとめる意味が分からない

302:デフォルトの名無しさん
07/07/25 22:48:37
>>300-301

もっとやさしく


303:デフォルトの名無しさん
07/07/25 22:52:34
まあ感覚だからね。
うまく例を挙げられないけど、小出しに使う直前に宣言するより
まとめて宣言した方が分かりやすい場合も稀にはあるし。

304:デフォルトの名無しさん
07/07/25 22:53:39
private sub hoge

dim i as long
.
200行の下で使ってるやつすらもここで宣言
.
dim hogehoge as hoge

----延々と200行とか

i = 1
hogehoge = new hoge

end sub


こんな感じじゃね?

305:デフォルトの名無しさん
07/07/25 22:54:23
ただのCの名残だろ
負の遺産

306:デフォルトの名無しさん
07/07/25 22:58:53
カウンタ変数をプロシージャの先頭で宣言する意味はほとんどないわな。
使うたびに一々初期化するぐらいなら、ステートメント内で宣言したほうがすっきり。

307:デフォルトの名無しさん
07/07/25 23:01:38
特に途中で ExitSub とかする場合混乱のもとだな
後で見た時とか、何をどこで使ってるのかもうわけわかめ

経験すれば必要な時に必要なものを宣言するようになると思うんだけど

308:デフォルトの名無しさん
07/07/25 23:02:09
>>306
カウンタ変数って初期化いらなくね?

309:デフォルトの名無しさん
07/07/25 23:05:39
初期値のないカウンタ変数をどう使うんだ

310:デフォルトの名無しさん
07/07/25 23:07:15
エスパー的には
宣言した時点で数値なら0に初期化されてるだろ? ってことじゃないか?


311:デフォルトの名無しさん
07/07/25 23:12:13
それはただの規定値だよもんね

312:デフォルトの名無しさん
07/07/25 23:13:23
>>311
いや、俺もそう思うんだがw

つうか だよもんね とかお前かわいいな( ゚Д゚)


313:デフォルトの名無しさん
07/07/25 23:15:12
ステートメント内ってなんぞ?

314:デフォルトの名無しさん
07/07/25 23:18:36
読んで字のごとくじゃないか?


315:デフォルトの名無しさん
07/07/25 23:22:24
>>313

ちょwwwwwwwwwwwwwwww

316:デフォルトの名無しさん
07/07/25 23:37:01
VB.NET2003のRichTextBoxの行番号について質問でうす。

通常の機能じゃ無理で
PARAFORMAT2をEM_SETPARAFORMATで使って
SendMessageでなげる
というのを過去スレで見ました。

試してみたのですが、
数字を右寄せにする方法がわからないのですが
ご存知の方がいらっしゃいましたらご教示お願いします。
しかも何故か空白で改行をすると急に番号が振られなくなります。


また、もっと簡単に左側にラベルを配置して
行番号をふるのも試したのですが
フォントを合わせても行間が違うのでズレが生じてしまいます。
これも結局、EM_SETPARAFORMATを使ってRichTextBoxの行間を
狭めるしかないのでしょうか?
行番号もRIchTextBoxを使えば行間の違いはなくなるのですが
行番号を表示するだけの為にRichTextBoxを使うのはなんか気持ち悪いので。

よろしくお願いします


317:デフォルトの名無しさん
07/07/25 23:39:28
>>316
最初の3行しか読んでないけどこれじゃだめなんだっけ?
URLリンク(www.atmarkit.co.jp)


318:デフォルトの名無しさん
07/07/25 23:47:37
残念ながらローカル変数に既定値などというものはない

あ、ごめん規定値だったか…


319:デフォルトの名無しさん
07/07/26 00:01:02
よく覚えてないがC#の話じゃない?
VB.NETはVB6の仕様を一部継承してるからプリミティブ型の値型は
明示的に初期化されない場合既定値になる筈

320:デフォルトの名無しさん
07/07/26 00:26:31
おお!


321:308
07/07/26 00:47:07

dim i as Integer

For i = 0 to 9
Next i

For i = 0 to 99
Next i

だと初期化いらなくね?

322:デフォルトの名無しさん
07/07/26 01:05:12
For がまず真っ先にやることを言ってみろ。

323:308
07/07/26 01:17:16
>>322
まず i に0が代入されて・・・
って初期化は勝手にされるけど

>>306が言った
>使うたびに一々初期化するぐらいなら、ステートメント内で宣言したほうがすっきり。
という言い方から

dim i As Integer

i = 0  ' ※ 一々初期化する } この2行をまとめて
For i = 0 to 9  '        }  For i as Integer = 0 to 9 のほうがすっきり
Next i

っていう書き方してるのかと勝手に想像して
それなら※部分の行いらなくねって言ったわけ。

324:デフォルトの名無しさん
07/07/26 01:23:45
変数を初期化しなかった場合の既定値(2005)

数値型[0]
Char[0]
Boolean[False]
String[Nothing]※
Date[0001年1月1日0:00:00]
Object[Nothing]※

※参照型

これって.NETも一緒じゃないの?
つうか、なにこの浅い議論。




325:デフォルトの名無しさん
07/07/26 01:27:34
つーかC#だと初期化しないとコンパイルエラーだし

326:デフォルトの名無しさん
07/07/26 02:02:01
>>323
カウンタ変数はForステートメントの変数の呼び名で
ForEachやDoLoopで使うループカウンタはカウンタ変数じゃないだろ?ってこと?

327:デフォルトの名無しさん
07/07/26 03:19:25
.NETでは初期化なんてしないし。
初期化を強制してるのはコンパイラだし。


328:デフォルトの名無しさん
07/07/26 09:55:28
VB2005のMySettingで全ユーザ共通で使用しているApplicationDataの値をPGから変更したいんですがいい方法はありませんか?
ApplcationDataじゃなければ各ユーザーごとに違った値になってしまうので嫌なんですが・・・

329:デフォルトの名無しさん
07/07/26 12:24:57
My爺さんはそういう使用法は想定してないと思う。

っていうかMySettingの存在意義が理解できん俺には。
My爺さんなんか使わずに普通にシリアル化使っても手間は変わらないと思うんだけど。。


330:デフォルトの名無しさん
07/07/26 13:56:03
全くの初心者で一通り調べたのですが、わからなかったのでご相談しに参りました。
現在.netでDBはMysql、そしてodbcを用いてデータグリッドにテーブルの情報を表示させたいのですが、
formにデータグリッドを貼り付けて、その後が全くわかりません。

教えてくださいorz


331:デフォルトの名無しさん
07/07/26 14:00:01
1.まずODBCデータソースを作成します。


332:330
07/07/26 14:18:51
その後はなんでしょう?


333:デフォルトの名無しさん
07/07/26 14:19:15
2.フォームに貼り付けたデータグリッドは削除したほうがいいです(あとで自動で作られる)


334:330
07/07/26 14:24:02
了解です、削除しました!

335:デフォルトの名無しさん
07/07/26 14:33:57
で、バージョンを聞こうか?
ここから分岐するw

336:デフォルトの名無しさん
07/07/26 14:37:21
3.IDEのサーバーエクスプローラで新しい接続を追加(ODBCから選択)し、新しいデータ接続を追加します。(VB2005 2003は同じかどうか忘れた)

337:330
07/07/26 14:37:22
.netは2003、mysqlは5.0、でございます!


338:デフォルトの名無しさん
07/07/26 14:40:27
4.おもむろに布団を敷きます。


339:デフォルトの名無しさん
07/07/26 14:41:37
あぁ、2003だったのかw
もうめんどくさいから

3.ツールボックスのデータからOdbcDataAdapterを選んで対象のフォームに貼り付けるとウィザードが出るので選択しつつ進めていきます

340:330
07/07/26 14:47:16
いまのところ順調です!!



341:デフォルトの名無しさん
07/07/26 14:51:29
5.靴下以外を脱ぎます↓

342:デフォルトの名無しさん
07/07/26 14:54:49
VB 2005でLabelコントロールのテキスト描画をフックする方法を
教えて下さい。

343:デフォルトの名無しさん
07/07/26 15:26:59
>>340
で、今どこまで終わったんだっけ?

344:デフォルトの名無しさん
07/07/26 15:32:11
>>342
OnPaintででも、どこでも好きにしてください

>>340
4.データアダプタの作成が終わったら、そのデータアダプタを右クリックしてデータセットの生成クリッコクリッコします。

345:デフォルトの名無しさん
07/07/27 01:38:51
VB.net でメタクラスってどうやって使うの?

Delphiだとこんな感じでかけたんだけど・・・
TAAAClass = class of TAAA;


346:デフォルトの名無しさん
07/07/27 01:44:40
めた暮らすなんてない
しいて言えばリフレクション方面? Typeとか

347:デフォルトの名無しさん
07/07/27 10:56:36
教えて下さい。
あるパネル内にアクセスキー付きラベル 例(&1) があり、パネル外のテキストボックスにあります。
このままですとALT+1キーを押下した場合、フォーカスがテキストボックスに移動しません。
どうすればよろしいでしょうか?

348:デフォルトの名無しさん
07/07/27 11:04:35
データベースからIDや氏名住所などを取得して表示するまではできたんですが
次へボタンを押すと次のデータを表示させていくやりかたを教えてください


349:デフォルトの名無しさん
07/07/27 11:13:11
すみません、助けて下さい。。。

Visual Basic 2005 Express Editionで
timerを使って、設定時間(例えば 11.5秒や30.7秒)毎にカウントを1ずつ増やすプログラムを作っているのですが、
プログラムの表示時間をストップウォッチで計ってみると、プログラム中では19.8秒なのにストップウォッチでは21.67秒だったりとズレが出ています。。。

プログラムは、 timerのintervalを100 変数『i』に0.1を100ms毎に足して、『i』が設定時間と同じになったらカウント『k』に+1を行なうようにしています。
このズレは直せないのでしょうか・・・ 
そもそもこのやり方が間違っているのでしょうか?



350:デフォルトの名無しさん
07/07/27 11:20:40
>>347
>あるパネル内にアクセスキー付きラベル 例(&1) があり、パネル外のテキストボックスにあります。
日本語でよろしく(´・ω・`)

>>348
取得ってのはDataTableにデータを格納したのか?

>>349
ツールボックスにあるTimerの精度なんてそんもんだ。
別のTimerつかいなされ

351:デフォルトの名無しさん
07/07/27 11:23:15
>>349
Tickイベントで処理を行っていると仮定して、
プログラム1行1行を処理する時間もかかるわけで、
秒数(特にmsec単位)を性格に求めるのは難しいのでは?

352:デフォルトの名無しさん
07/07/27 11:24:22
あるパネル内にアクセスキー付きラベル 例(&1) があり、パネルの外にテキストボックスにあります。
このままですとALT+1キーを押下した場合、フォーカスがテキストボックスに移動しません。
どうすればよろしいでしょうか?

これでどう?

353:デフォルトの名無しさん
07/07/27 11:29:36
>>350
他にもtimerあるんですね。。。ちょっと探してみます

>>351
正直0.1sec毎に表示処理とかイロイロやったら遅くなるよなぁ・・・
とは思ったのですがやっぱり影響ありますよね

354:デフォルトの名無しさん
07/07/27 11:41:26
>>353
途中に経過表示などの割り込みを入れる場合や、
インターバルが長い場合はクロックの時刻と組み合わせる。

StartTime = DateTime.Now // で保存しておいて
一定時間ごとのタイマーイベントで 経過時間 = DateTime.Now - StartTimeを計算。
予定の時間以上経過したかどうか確認。

355:348
07/07/27 11:48:57
>>350
そうです
初期画面はID1のデータの氏名住所などが表示されるようにつくりました


356:デフォルトの名無しさん
07/07/27 11:51:37
>>354
なるほど・・・
その方法で作ってみます。

遅くなりましたが皆さんありがとうございます
知恵をお借りできて本当に助かります m(_ _)m

357:デフォルトの名無しさん
07/07/27 12:06:33
>>355
横れすだが
現在表示させているデータテーブルのインデックスわかってるんなら次へボタン押したときに+1したデータテーブルのインデックスの情報表示させればいいんじゃないかな?
こんな単純な方法じゃ駄目?

358:348
07/07/27 12:18:09
そういうやり方で行こうと思ってます
for文使えばいけますかね?
初心者ですいません

359:デフォルトの名無しさん
07/07/27 12:22:58
ボタンクリックイベントで

IF 表示位置 < DataTable.Rows.Count - 1 THEN
表示位置 += 1
ID = DataTable.Rows(表示位置)(ID).Value
名前 = DataTable.Rows(表示位置)(名前).Value
住所 = DataTable.Rows(表示位置)(住所).Value
END IF

でいいんじゃ?

360:348
07/07/27 13:12:07
>>359
表示位置ってのはTextBox1.Textとかのことですよね
エラーで実行できませんでした


361:デフォルトの名無しさん
07/07/27 13:49:15
すみません、わかる方おられましたら、助言をお願いします。
ちょっと長くなってしまいますが、前提から。

今現在、自分のドキュメント作業をExcelをベースに行っており、
また、ドキュメント作成の効率化を進めようとしています。
そのために、Excel VBAで各種マクロを組み、ショートカットキー
にマクロを登録して各種ユーティリティを起動する方法をとって
ます。
この際、個々に作成されるExcelワークブックに個別に処理を記入
していては、無駄なので、一つのワークブックにマクロ記述を集約
させ、つねにそのマクロ用ワークブックを開いておくことで、別の
ワークブックでもマクロ用ワークブックに記載されたマクロを利用
可能としています。

もともとは、Excelのアプリケーションレベルでマクロを作成して、
ワークブックでの操作をしたかったのですが、Excelにはこの機能
がないために断念したためにこういう構成になりました。

しかし、最近ではマクロが大きくなって動作が重いなど厳しい状態
になっているのと、VBAでは開発効率が悪すぎるので、ここをなんと
かしたいと思ってます。そこで、Visual Studio Tools for Office
を導入したのですが、行き詰まってしまっています。そもそも、こう
いうことが出来るのでしょうが。

つまり、やりたいこととしては、
@ Excelのショートカットキーとしてユーティリティが動作する
A 擬似的でもアプリケーションレベルの機能として動く
B 上記のVisualStudioで開発する
ということです。

助言お願いいたします。


362:デフォルトの名無しさん
07/07/27 13:50:09
>>348
表示位置を管理する変数のことですよ。

Dim iSelectRow As Integer = 0 ' 表示位置
Dim tblData As DataTable ' 住所録

tblDataの中にID、名前、住所が入っているとして

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

IF iSelectRow < tblData.Rows.Count - 1 THEN
' 次の行を選択
iSelectRow += 1
' IDの取得
TextBox1.Text = tblData.Rows(iSelectRow)(0).Value
' 名前の取得
TextBox2.Text = tblData.Rows(iSelectRow)(1).Value
' 住所の取得
TextBox3.Text = tblData.Rows(iSelectRow)(2).Value
END IF

End Sub


363:348
07/07/27 14:30:20
>>362
.Valueを消したら次のデータは表示されるようになりました
その次のデータは表示されません


364:デフォルトの名無しさん
07/07/27 15:01:55
>>363
もう、Accessにリンクテーブル作成して直接開いて、検索や追加編集をやってもらえよ。

それが一番まともになるぞ。

365:デフォルトの名無しさん
07/07/27 15:21:31
>>348
だめだ・・・すべてを聞こうとすんなよ
ちったぁ勉強してからじゃないと話にならん


366:デフォルトの名無しさん
07/07/27 15:34:30
>>348
ああ、思いつきで書いたからね。
正しくは、tblData.Rows(iSelectRow)(0).ToStringだね。

367:デフォルトの名無しさん
07/07/27 15:54:42
>>366
tblData.Rows(iSelectRow)(0).Value.ToStringだ

368:デフォルトの名無しさん
07/07/27 16:06:18
初心者なんだからむしろItemも書いておいてやれよwwww

369:デフォルトの名無しさん
07/07/27 22:43:37
>>352
>テキストボックスにあります

ここが悩ましいんだよ!w

370:名無しさん@そうだ選挙に行こう
07/07/29 13:18:35
アホみたいな質問かもしれませんが、画像を表示するのに

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

        Dim g As Graphics = Me.PictureBox1.CreateGraphics()
        Dim bg As Image = My.Resources.back
        g.DrawImage(bg, New Point(0, 0))

    End Sub

だと表示されないのに、これを

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

        Dim g As Graphics = Me.PictureBox1.CreateGraphics()
        Dim bg As Image = My.Resources.back
        g.DrawImage(bg, New Point(0, 0))

    End Sub

のようにボタンを押したら実行するとちゃんと表示されるんですが何故?
フォームのロードもボタンクリックも同じようにコードが実行されるんじゃないんですか?


371:名無しさん@そうだ選挙に行こう
07/07/29 13:23:16
まあ自分でいってるようにそれは君自身がアホだから。
なんで質問する前にちったあ自分で勉強しようとは思わないんだ?


372:名無しさん@そうだ選挙に行こう
07/07/29 15:33:26
VB初心者なのですが、学校の課題でプログラムを組むのですが、
自分じゃよくわからないので誰か作って下さいますか?

環境はVB2005です
URLリンク(pict.or.tp)
[13293.doc}課題3.doc
[13292.doc]課題4.doc

373:デフォルトの名無しさん
07/07/29 15:43:46
>>372
ちなみに、学校って何の?もしかして中学校とかじゃないよね??

374:名無しさん@そうだ選挙に行こう
07/07/29 15:47:41
>>373
高校の夏休みの課題です

375:名無しさん@そうだ選挙に行こう
07/07/29 15:51:21
>>374
よし、俺にまかせとけ!!

376:名無しさん@そうだ選挙に行こう
07/07/29 16:01:32
>>374
ところで提出日はいつ?何月何日?

377:名無しさん@そうだ選挙に行こう
07/07/29 16:10:46
登校日の7月31日までです

378:名無しさん@そうだ選挙に行こう
07/07/29 16:51:49
>>377
これ、小数とか負の数だったらどうするの?

379:名無しさん@そうだ選挙に行こう
07/07/29 17:18:13
課題3って製品名入力する意味あるのか?

380:372
07/07/29 18:01:20
>>378-379
そうゆう、細かい突込みはなしで(汗




381:名無しさん@そうだ選挙に行こう
07/07/29 18:12:48
>>380
じゃ、細かいことは気にしないで作ってみました。
>>372と同じロダ [13311.zip] 課題4ね。

382:名無しさん@そうだ選挙に行こう
07/07/29 19:03:28
>>370>>302の扱いの落差にワロタ

383:名無しさん@そうだ選挙に行こう
07/07/29 19:13:16
クラスなんか使ったら代作がバレないな心配w

384:名無しさん@そうだ選挙に行こう
07/07/29 19:31:05
とりあえず、課題を見たら>>372が最初からやる気ゼロだということがわかったw

385:名無しさん@そうだ選挙に行こう
07/07/29 19:33:57
>>382
間違えた
>>370>>372

386:372
07/07/29 19:35:22
>>381
サンクスです
でもクラス使ってるとバレるな、まだ習ってないし

387:名無しさん@そうだ選挙に行こう
07/07/29 19:44:40
>>386
関数は?

388:名無しさん@そうだ選挙に行こう
07/07/29 19:52:10
>>386
今は高校でVBやるんだ
工業系?

389:372
07/07/29 20:10:50
>>387
関数はやったけど、クラスは初心者向きじゃないのね教科書にも載ってない
>>388
工業の情報系です

390:デフォルトの名無しさん
07/07/29 20:28:09
>自分じゃよくわからないので誰か作って下さいますか?

おまぃら・・・PGかSEかしらんがこんなの手伝うなよ・・・・
意味がないだろ
お前らが手伝ってるってことは 将来の無能SEやPGを育ててることとそう変わらないんだぞ


391:デフォルトの名無しさん
07/07/29 20:31:26
ていうか何で情報系に行ったの?

392:デフォルトの名無しさん
07/07/29 20:34:21
>>389
[13334.zip]

>>390
後でプログラムの説明が出来なくて困るのは>>372だしいいんじゃね?

393:デフォルトの名無しさん
07/07/29 20:42:10
>>392
そうだよねw

つうか、他の人のソースどんなかな?とかって見ててリアルにコーヒー吹いたwwwww
俺のコーヒーかえせwwwwww

394:デフォルトの名無しさん
07/07/29 20:44:44
>>393
なんで?

395:デフォルトの名無しさん
07/07/29 20:47:37
>>394
おま・・・計算結果の書式フォーマットいじってるところのコメント見ろ

396:デフォルトの名無しさん
07/07/29 20:52:16
追伸
Kadai4\Kadai4\frmClac.vb
の40行目だ

397:デフォルトの名無しさん
07/07/29 20:55:20
ちょwww

398:デフォルトの名無しさん
07/07/29 20:57:33
これを素で書いてたんだとしたら・・・・
>>392はものすごい欲求不満


399:デフォルトの名無しさん
07/07/29 21:07:27
>>372が気づかないでそのまま提出したら面白かったのに・・・

400:デフォルトの名無しさん
07/07/29 21:09:19
>>399
なぁに
どうせ読んでないから気づきゃしないさ
というのを期待したい

401:デフォルトの名無しさん
07/07/29 22:25:55
Wordファイルの素性に言及しない
おまいらの優しさに泣いた

402:デフォルトの名無しさん
07/07/29 23:05:05 0
>>401
他の板じゃあるまいし
そんなものに興味はない

403:デフォルトの名無しさん
07/07/29 23:46:15 0
おまいら人によって態度変えるのやめろよ。
>>370, >>371 をみてみろよ。

404:デフォルトの名無しさん
07/07/30 00:05:47
>>403
説明するより、コード書いてた方が楽だから

405:デフォルトの名無しさん
07/07/30 00:32:02
>>403
少なくとも371は俺だが、俺は学生クンは一切シカトしてたから一貫はしてるよ。
他人にまでそれを強制するつもりはないが。

406:デフォルトの名無しさん
07/07/30 00:51:29
C#スレみたいに本スレとふらっとスレみたいに分けるべきなのかもね
でも、そしたらほとんど初心者スレに逝け、で終りかもなのね

407:デフォルトの名無しさん
07/07/30 00:54:28
この場合、スルーすればよいだけなのにレスした>>405の性格の悪さが問題なんだろうw
気持ちはわかるが書いてはダメだ。

408:デフォルトの名無しさん
07/07/30 01:19:34
>俺は学生クンは一切シカトしてたから

シカトしてない件について

409:デフォルトの名無しさん
07/07/30 09:56:30
>>389

自分で情報系入ったわけだから、宿題丸投げとか、ありか?

宿題の言語が多過ぎでそのうちの一部がやりきれないとかならわかるけどね・・・


410:デフォルトの名無しさん
07/07/30 10:04:04
同じ画面でモードを切り替えたいんですがどうしたらいいんでしょうか?


411:デフォルトの名無しさん
07/07/30 10:41:15
>>410
大局変数を使え。

412:デフォルトの名無しさん
07/07/30 10:58:30
あるパネル内にアクセスキー付きラベル 例(&1) があり、パネルの外にテキストボックスがあります。
ALT+1キーを押下した場合、フォーカスがテキストボックスに移動しません。
アクセスキーを使用してフォーカスをテキストボックスに移動させるにはどうすればよろしいでしょうか?


413:410
07/07/30 11:00:43
>>411
ぐぐったけどわかりません

414:デフォルトの名無しさん
07/07/30 11:23:35
>>410
意味がわかりません。
なんのモードなのか?

415:デフォルトの名無しさん
07/07/30 11:53:51
>>412
アクセスキーは同じコンテナ内じゃないと無理だと思う。
同じパネル内に入れない理由は何?
どうしても両コントロールをパネルの内外に置かなければならない理由があるなら、
FormのKeyPressイベントとかで擬似的にアクセスキー押下の挙動を作るしかないんじゃないかな。

416:410
07/07/30 11:58:57
>>414
照会、新規、修正モードです


417:デフォルトの名無しさん
07/07/30 12:02:42
質問させてください。
TabControlにて見出しの背景色を変更したいのですが、調べたところ
DrawModeをOwnerDrawFixedにして自分で描画する方法が見つかりました。
そこでDrawModeをOwnerDrawFixedにしてみたらTabControlのVisualStyleが
無効になってしまいました。
VisualStyleを有効にしたまま見出しの背景色を変更する方法ってありませんでしょうか。

418:デフォルトの名無しさん
07/07/30 12:05:24
>>416
お前頭腐ってねえか?
照会、新規、修正モードとか言われても、こっちにはわかるわけないだろ?w

419:デフォルトの名無しさん
07/07/30 12:09:56
347=372?

420:デフォルトの名無しさん
07/07/30 12:46:36
>>415
thx

パネルは装飾用に使っていたんだけど、やっぱり無理か。
LabelのPaintイベントでやるしかないな。


421:デフォルトの名無しさん
07/07/30 12:47:54
>>410
手っ取り早い方法としてTabControl使えば?

422:デフォルトの名無しさん
07/07/30 13:14:14
>>420
装飾に使っているだけなら、デザイナいじってパネルの上にラベルを乗せる(パネルのアイテムには含めない)ってのはどうよ?

423:デフォルトの名無しさん
07/07/30 13:51:55
>>422
ちなみにユーザーコントロールにしても同じだよね?

424:デフォルトの名無しさん
07/07/30 13:58:00
>>423
何が同じ?
いちいち言葉抜かんでくれ。口で会話してるんじゃないんだから。

425:デフォルトの名無しさん
07/07/30 14:04:01
>>417
VisualStyleも含めて自分で描画する

426:417
07/07/30 14:36:37
>>425
どこにどういうふうに記述すればよいのでしょう…。
tabcontrolにはPaintイベントがありません。
DrawItemイベントはDrawModeがOwnerDrawFixedの時にしか起こらないようです。

427:410
07/07/30 16:00:04
>>421
ラジオボタンで切り替えたいんです
ラジオボタンをチェックするとIDや氏名欄は空白にしたいんです

428:デフォルトの名無しさん
07/07/30 16:10:50
>>427
だからお前頭腐ってるだろ?

>ラジオボタンで切り替えたいんです
>>410の時点でそんなことは一言も言っていない

>>416といい、>>427といい、こっちはそっちがどういうモノを作っているのか、
どんなコントロールを使用しているのか、どういう仕様にしたいのか、何一つ知らないんだぜ?
いきなり何モードにしたいだの、何を空白にしたいだの言われても解かるわけねーだろ。
まず、質問の仕方から勉強して来い。

429:デフォルトの名無しさん
07/07/30 16:22:57
ツールバーからデバッグ→開始を選ぶと、「Debugger userグループのメンバーである事を確認してください」と
出て、ソフトのデバッグが出来ません。
使っているOSはWindowsVistaHomePremium、
adoministrator権限を持ったユーザーアカウントを使っています。
他のPCとは接続していません。

430:デフォルトの名無しさん
07/07/30 16:25:51
>>427
仕様を書け。

431:デフォルトの名無しさん
07/07/30 17:23:04
>>427
どうしようか?ww

432:デフォルトの名無しさん
07/07/30 17:32:50
入力項目貼り付けてラジオボタンのChangeイベントで項目のVisible切り替えればええがな

>>410

とりあえず
条件別に表示が必要な項目をあげてみろよ


433:デフォルトの名無しさん
07/07/30 18:05:24
もう放っておこうよw

434:434 ◆nf55XyzMAg
07/07/30 19:04:09
ちょっと聞いてくださいよみなさん。
スレとあんま関係ないんだけど。

VB.Netで特殊なメモ帳を今作っています。
DBを用いたメモ帳なんですけど、
開いた時にアカウントの選択ダイアログが出て、選択したアカウントのメモグループをツリービューに表示するのです。
メモグループをクリックするとそれに関連付けられた、メモの一覧が出てきます。
一覧のメモをクリックするとメモした文字列とファイルを別ウィンドウに表示するものを先輩と作っています。

本題は実際にはこのソフトのメモグループはミドル、メモ本体はディティールというのですが、先輩はミドルを親、ディティールを子と呼んでいます。
ではツリービューの+マークの付いている行やその下のすこし横にずれている行をなんというのでしょうか?
先輩は親、子と呼んでいますが、ミドルに属していないディティールもあるのでそれを親の無い子って呼んでるんです。
いくら「ミドルですよ。」「ディティールですよ。」っていっても罵倒雑言の嵐。
本でツリービューの+マークの付いている行やその下のすこし横にずれている行を親、子って説明しているんです。

先輩が間違っているのか本が間違っているのか教えてください。お願いします。


435:デフォルトの名無しさん
07/07/30 19:10:10
>>434
URLリンク(homepage1.nifty.com)

436:デフォルトの名無しさん
07/07/30 20:01:47
おい、貴様ら。

もうそろそろ、>>370に手を差し伸べてはいかがですか?

437:デフォルトの名無しさん
07/07/30 20:52:38
彼にとっては突き放されることこそが最大の援助だろう。真面目な話。
というかこの程度の問題を自分で解決できないなら(以下略

438:デフォルトの名無しさん
07/07/30 21:00:01
>>436 = >>370 ?
わからないから違うかも知れないけど、
Loadで書いたプログラムでは「一度描画されているが消えている」んだと思う。
Clickで描画したものも他のウインドウを手前に持ってくるとその部分消えるし。

439:370
07/07/30 21:24:05
>>438
いや436は私じゃないです

>Clickで描画したものも他のウインドウを手前に持ってくるとその部分消えるし。

本当だ、消えますね?
HSP厨から卒業しようと思ってVB Expressの勉強始めたんですが全然勝手が違いますねえ
何で命令使うのにいちいちdimで宣言するのかすら分からない
何の利点があるんだろ?

>>437
入門書見ながら頑張ってみます
 


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

4728日前に更新/252 KB
担当:undef