VB.NET質問スレ (Part12 ..
491:デフォルトの名無しさん
05/09/25 23:27:52
AddHandler メニューアイテム.Click, AddressOf メソッド
492:デフォルトの名無しさん
05/09/25 23:54:31
>>490
どぼんの配列の所を参考に。
493:デフォルトの名無しさん
05/09/26 00:08:55
っていうか、せっかくC#じゃなくVB.NET使うならもっと手を抜いて簡単にできるよ。
まずMenuItemをWithEvents付きでフィールドとして宣言する。
そんでそいつを必要なときにMainMenuのItemsに追加/削除すればいいだけ。
っていうか、本当にメニューを動的に生成なんてする必要があるかどうか
一度よく考えたほうがいいと思うけどね。
単にVisibleをいじるだけでもいいんじゃないの?
494:490
05/09/26 00:26:49
>>491 >>492
キーワードでぐぐってみたら多数ヒット。
なんというか初歩的なことだったようで情けないですが、
おかげで無事所望していた動作をさせることができました。
>>493
今回の場合「最近使ったファイル」的な機能の実装だったので、
動的に生成という仕様にしました。
みなさんどうもありがとうございました。
495:デフォルトの名無しさん
05/09/26 09:44:31
>>476
VBCommenter nDoc でグーグル様にお尋ねしてください。
ヘブンにいけますよ。
496:デフォルトの名無しさん
05/09/26 22:57:57
どうしてもわからないので質問させていただきます。
AddRemoveProgramsIconにアイコンファイルを設定したのですが
インストール後、アプリケーションの追加と削除の所のアイコンが
フォルダになってしまいます。
どなたか解決法をご存知の方教えていただけませんか。
497:デフォルトの名無しさん
05/09/26 23:09:31
エスパーが必要だなw
AddRemoveProgramsIconってデプロイメントプロジェクトのかなあ。
解決法って言ったって普通にやればそんな風にはならないけど。
問題のアイコンがインストール先にインストールされないようになってるとかかなあ。
498:デフォルトの名無しさん
05/09/27 14:24:41
質問です。
構造体を使用すると、メモリを大量に消費するという話しを耳にしたんですが、構造体とクラス。
使用するならどちらを使ったほうが賢いのでしょうか?
499:デフォルトの名無しさん
05/09/27 14:31:11
>>498
入門書、ページを読むのが賢いと思う。
@ITのVB.net入門でもきちんと書かれてる。
値型と参照型の違いそのものだから。
500:最凶VB厨房
05/09/27 20:14:40
>>498
どこで耳にした?
501:デフォルトの名無しさん
05/09/27 20:27:06 0
それ聞いてどうすんのw
しかし、>>498みたいにMSDNなり解説書なり読めば解決するような類の問題を
他人に投げる人って最初から終わってると思う。
正直、俺が上司とか学校の先生だったらコイツは見込みがないと判断して切るね。
502:デフォルトの名無しさん
05/09/27 21:13:25 0
>>501
うわ、なにこいつ偉そう・・・(;^ω^)
503:デフォルトの名無しさん
05/09/27 21:44:00 0
2chねらが答えてくれることに意味があるですよ。
調べればわかるとかとは別次元の質問者の意図をくみ取れない人こそ天才ではありませんね
504:最凶VB厨房
05/09/27 22:07:46 0
俺見込みねぇーーーーーーーw
ってーか、構造体もクラスもフィールドのサイズが
あんまり変わらんのであれば
>構造体を使用すると、メモリを大量に消費する
なんてこたぁないわけで。
となれば可能性としては二つ。
コピー時の動作の違いかスタック・ヒープのことかどっちか。
構造体の値渡しや代入ならば消費するメモリはその構造体の
分だけは少なくとも増える。
クラスの場合なら参照がコピーされるだけなんでたいして増えない。
という可能性と、
構造体の場合はスタックに取られる可能性がある。
クラスはヒープだけなはずだ。
となると>構造体を使用すると、メモリを大量に消費する
ってのはメモリはメモリでもスタック領域かもしれねぇ。
これなら間違っているわけじゃぁない。
大量に消費したからといってスタックを食いつぶすとは
到底思えんけどな。配列にしたらヒープにとられるしよ。
要は耳にした話の文脈がわからんのだから聞いただけだがや。
耳にした話がわかりゃぁそりゃちょっと違うとか指摘もできるがや。
>>498ってなわけでや。
代入の時の違いがわかっとりゃぁええのや。サイズなんぞ普通は気にするな。
サイズなんぞ気にしてたら頭はげるぞ。
505:デフォルトの名無しさん
05/09/28 00:35:59
URLリンク(www.unisys.co.jp)
しかしなんとなくstructで設計して、あとからnull(Nothing)の状態が欲しくなって困る罠。
506:デフォルトの名無しさん
05/09/28 00:43:09
>>505
そんな理由で困ることなんてありえんと思うが。
507:デフォルトの名無しさん
05/09/28 09:31:16
>>504
その説明は元質問の回答になってないと思うよ。
そもそも、スタックとヒープの違いというか存在を理解してないから、ああいう質問なわけで。
だから入門書嫁っていう回答が出るわけで。
508:デフォルトの名無しさん
05/09/28 12:02:44
>>504
要約すると
私:「ファイルから読み込んだデータは構造体を使ってArryListでAddしてる」
相手:「それなら構造体よりクラスでやった方がいい。メモリの消費を抑えられるし、構造体の多用はメモリの消費が激しいから」
という感じです。
>>499
読んでみます。
>>501
お気遣いありがとうございます。
しかし心配はありません。
職場はプログラム系の仕事とはかけ離れており、通っていた学校もプログラムに関連するものではないので。
509:デフォルトの名無しさん
05/09/28 12:07:33
うん、相手は丸ごと勘違いしてるね。
あとデータによっては構造体でやるのは拙いかもね。
510:デフォルトの名無しさん
05/09/28 12:35:12
別にそんなに勘違いしてないんじゃないの?
ArrayListに突っ込むとボクシングされちゃうわけだから。
クラスで同じことをした場合の二倍弱のメモリを食うはず。
511:デフォルトの名無しさん
05/09/28 12:41:52
まあオリジナルのデータを捨てちゃってもよければその限りじゃないけど。
512:デフォルトの名無しさん
05/09/28 14:37:15
変なIDでてるけど何?
513:デフォルトの名無しさん
05/09/28 16:17:47
病気
514:デフォルトの名無しさん
05/09/28 21:23:15
>>491
490じゃ無いけど便乗質問
クリックイベントは拾えたんだけど、じゃあどのアイテムクリックしたの?
てのはどうやればいいんでしょ
515:デフォルトの名無しさん
05/09/28 21:31:00
時と場合によるが、Indexつかったりとか、HashtableでMenuItemインスタンスと情報を関連づけて管理するとか。
MenuItemを派生させてTagプロパティを作って、そこに必要な情報を詰めるとか。
//.NET 2.0ではMenuItemにもTagが標準装備されるんだけど。
516:最凶VB厨房
05/09/28 21:44:51
>>508
>>509に同意。
'''''''''''''''''''''''''''''''''''
>>514
Object型senderをMenuItemにキャストすりゃいいんじゃね?
517:514
05/09/29 00:02:18
>>516
それで出来ました
どーもでした
518:496
05/09/29 11:23:59
みなさんお疲れ様です。
>497 さん返事が大変遅れまして申し訳ありません。
アイコンなのですが、結局わからずじまいです・・・
「すべてのユーザー」でインストールすれば、
アプリケーションの追加と削除にアイコンが出てくるのですが・・・
AddRemoveProgramsIconはデプロイメントプロジェクトのやつです。
519:デフォルトの名無しさん
05/09/29 11:42:52
DataTableクラスで、SELECTメソッドを2回続けて使うとどうなりますか?
両方の条件に合うレコードのみが残りますか?
それとも、2回目の条件に合うレコードのみが残りますか?
どうでしょうか?
よろしくご教授願います。
520:デフォルトの名無しさん
05/09/29 12:10:17
自分で試せよ・・・。
521:デフォルトの名無しさん
05/09/29 14:29:57
>>520
動作を見る限り、2回目の条件に合うレコードのみが残っているように思えます。
それを確認したかったのです。
522:デフォルトの名無しさん
05/09/29 14:32:26
そもそもDataTable.SelectはDataTableそのものを変更するメソッドじゃないしな。
523:デフォルトの名無しさん
05/09/29 15:16:05
ですよね。
DataSetのDataViewの問題でしょ。この辺りの仕様をきちんと理解しないとDataSetつかっちゃだめだよ。
クライアントで絞るのが性能的に良いのか、仕様と適合してるかとか。
非接続型という部分の理解も必要。
524:デフォルトの名無しさん
05/09/29 16:23:40
>>522
>>523
目的は検索のみで、更新処理はしません。
DataViewの方が適してますでしょうか?
525:デフォルトの名無しさん
05/09/29 16:50:57
>>524
検索した結果のDataSetに対して、クライアント側で絞り込むのがFilterだったりSelectとかFind。
初期状態で絞りこんだほうが件数とかレスポンス考えてよさそうなら、DataAdapterのSQL文でしぼってしまうべき。
クライアントでちょこちょこ絞り込み条件を変えてやるならば、いちいちサーバに検索じゃあれだから、SelectなどでDataSet内で絞るべき。
526:デフォルトの名無しさん
05/09/29 18:48:13
VB.NETでFormに棒グラフを描画しています。
このフォーム上でマウスの動きに連動してマウスポインタを中心に十字線を描きたいのですが
どうしたらよいか分かりません。
Mouse_Moveイベントの中にDrowで描くのは出来るのですが、直前の線が消えず動かすたびに描画
されてしまいます。
form.Invalidate()
を呼び出せば直前の線も消える(線だけでなく全部)のですが、マウスを動かすたびに全画面が再描画
されるのでチラチラしてしまいます。
直前に描いた線だけを消す方法はどうしたらよいでしょうか?
エロイ人教えてください。
527:デフォルトの名無しさん
05/09/29 18:52:17
マウスポインタを十字にするんじゃ駄目か?
Me.Cursor = Cursors.Cross
528:526
05/09/29 18:56:51
>527
レスありがとうです。
画面の端から端までの十字線を描きたいんです。
イメージとしては戦闘機の照準みたいな感じです。
529:デフォルトの名無しさん
05/09/29 19:54:07
>>526
いろいろ手はあるけど、簡単にやるならフォームのダルブバッファを有効にすれば
とりあえずいけるんじゃない?
URLリンク(www.gotdotnet.com)
URLリンク(www.microsoft.com)
まあ棒グラフの描画が重い場合は他の方法をとる必要があるかもしれないけど。
530:526
05/09/29 20:19:57
>529
レスありがとうです。
甘く考えてたけど、結構大変そうなんですね。
じっくり読んでみます。
531:デフォルトの名無しさん
05/09/30 01:20:50
はじめまして♪DDE通信をVB.NETでやろうとしているものですが、
みなさんのお知恵をお貸しください。
Ddeconnectの部分なのですが
DdeConnect(m_ddeinst, hszServiceName, hszTopicName, Nothing)で
最後の引数にNothingを指定するとエラー値の0が返ります。これを
成功させたいのですが、Nothingではなく何を指定しなければいけないのでしょうか?
具体的に教えてもらえたらありがたいです。
他の部分は多分あっていると思います。違ってたら教えてください。
宜しくお願いします。
532:デフォルトの名無しさん
05/09/30 01:29:38
DDEを使いたいのならVB6使えと言うのがMicrosoftの方針だからー
533:デフォルトの名無しさん
05/09/30 01:58:12
VBではなくVBAでエクセルのオートシェイプを利用したアニメーションを作ったのですが
当然CPUのクロックの違いで再生速度に差が出てしまいました
CPUのクロックを検出する事ってできないんですか?
それができればクロックによって処理を分岐させる事ができるのですが・・・
534:デフォルトの名無しさん
05/09/30 02:01:43
VBAはスレ違い VBもスレ違い
535:デフォルトの名無しさん
05/09/30 02:23:41
>>533
APIで情報読み込めばいい。何かそのようなAPIがあるさ。
536:デフォルトの名無しさん
05/09/30 02:52:29
>>532
方針はおいて置くとしてどなたか宣言の仕方を教えてくださいませ。
>>531 ←質問
537:デフォルトの名無しさん
05/09/30 09:26:42
NullポインタはNothingじゃないだけでしょ?
きちんとConvContext構造体を定義して渡してみるとか、VB6と同じで32ビットの0を渡すとか。
538:デフォルトの名無しさん
05/09/30 09:49:57
>>536
お前なんか偉そうだなー
聞く態度なってねーよ
539:デフォルトの名無しさん
05/09/30 09:57:34
初めての方へ
>>531=スレリンク(stock板:248-番)
540:デフォルトの名無しさん
05/09/30 11:12:16
>>531, 536
ケロンキタ━━(゚∀゚)━━!!!!
いつ来るかと待ちわびていたよ。
相変わらずふてぶてしい態度でつね。
541:デフォルトの名無しさん
05/09/30 12:24:02
>>531
>>537を敷衍すると、
まずDdeConnectのインポートのコードを晒した方がいいんじゃない?
ナルポはNothingじゃなくてIntPtr.Zeroだね。
542:デフォルトの名無しさん
05/09/30 14:19:58
>>541さん、親切にありがとうございます。おっしゃる通りです。
構造体の宣言とインポートの部分はこんな感じになっていますが、
なにか構造体に間違いはございませんか?
Structure SECURITY_QUALITY_OF_SERVICE
Public Length As Integer
Public Impersonationlevel As Short
Public ContextTrackingMode As Short
Public EffectiveOnly As Integer
End Structure
Structure CONVCONTEXT
Public cb As Integer
Public wFlags As Integer
Public wCountryID As Integer
Public iCodePage As Integer
Public dwLangID As Integer
Public dwSecurity As Integer
Public qos As SECURITY_QUALITY_OF_SERVICE
End Structure
'DdeConnect宣言
Declare Function DdeConnect Lib "user32" Alias "DdeConnect" _
(ByVal idInst As Integer, ByVal hszService As Integer, ByVal hszTopic As Integer, ByVal pCC As CONVCONTEXT) As Integer
IntPtr.Zeroというのはどのようにどこに指定したらよいのでしょうか?
よろしくです♪
543:デフォルトの名無しさん
05/09/30 14:41:00
>>542
日本語も読めない。ためしもしない。最低だな。
544:デフォルトの名無しさん
05/09/30 18:19:49
すいません、ExcelのVBAについて質問したいんですが、スレが見つかりません。
どっかにあれば教えていただきたいので、ご存知の方よろしくおねがいします。
545:デフォルトの名無しさん
05/09/30 18:33:53
>>544
VBAについてスレが落ちてるな。
ここは読んだことないけど。
●EXCEL・VBAの勉強法教えてスレ●
スレリンク(tech板)
ここにも上級者がいる。
Excel総合相談所 37
スレリンク(bsoft板)
546:デフォルトの名無しさん
05/10/01 13:29:15
>>542
お前ほんと糞だな。
262 名前:山師さん [] 投稿日:2005/09/25(日) 10:44:18 ID:lZdxzg4r
>>260
そんなに簡単だというのなら
ETWrapperのソースを元にVB.NETに書き換えてみろ。
C#の時ほどは容易でないことに気がつくから。
まずCの知識がないVBユーザーには読むことがちょっと難しいわけよ。
これがVBで書かれているのなら多分容易だと思うのだが。
できたら俺にミシテネ♪
264 名前:山師さん[] 投稿日:2005/09/25(日) 10:59:07 ID:lZdxzg4r
友達がいなくて暇人キタ━━(゚∀゚)━━!!!!
267 名前:山師さん[] 投稿日:2005/09/25(日) 11:30:21 ID:lZdxzg4r
>>266
だからさ、簡単だとおもうならさぁ。実際にやってみろっつーの。
やってみたことがない人間が何言っても想像でしかないわけよ。
なんでも想像していたより難しいってことあんだろうが。
とりあえずやってみて俺に教えることをお勧めする。
547:デフォルトの名無しさん
05/10/01 14:13:57
、i`ヽ ,r‐'ァ
`ヽ:: ::´
ヽ ヽ , -‐--、 / /
ヽ \ I:::::::I_ _ / /
ヽ ヽ i,(;;;ノI、;;;)l ,,/ , ' VB.NETフォーーーーーーーーー!
ヽ ` ー 、.,,ゝ´ヮ`,ノュ_, - ' r'
` 、_ /::: `山'::::: /
ヽ:::::::::::|::::::::"",r‐'
〉::::::::|::::::::::¨/
/;;;;;;;/;;;;;;;;;;/
/;;;;;;;/:::::::::::《
<;;;;;;;《:::::::::::::ヽ ))
/ ヽI,r''"""^~ヽ
/ ,/ ヽ ヽ
548:Hello! World
05/10/01 22:05:03
If regKey2 Is Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\test\Data\",false) then
End If
の実行をしたけど、ステートメントを指定してくださいとエラーが出ます。
エラーを回避したいんです。誰か教えて下さい。お願いします。
549:デフォルトの名無しさん
05/10/01 22:12:59
おやおやどこかで見た質問だね? マルチポスト君。
550:デフォルトの名無しさん
05/10/02 17:38:37
REGファイルの読み込みと書き出しを行うアプリを作りたいのですが、
REGファイルに関する技術文書かサンプルルーチンなどを教えていただけないでしょうか。
551:デフォルトの名無しさん
05/10/02 18:16:02
>>550
何故敢えてVB.NETで? とは思うけど。
URLリンク(support.microsoft.com)
一応解説。極めて大雑把だけど。
自前で読み取ってMicrosoft.Win32.Registryクラスで書き込むって手もあるけど、
Win32APIのRegSaveKeyとその周辺の関数を使うのが楽かな。
URLリンク(www.kt.rim.or.jp)
552:550
05/10/02 18:40:30
>>551
ああ、助かりました。ありがとうございます。
直接書き込みのほうが何も考えなくていいのでコーディングはラクですが、今回はグループポリシーと
連携させたPC管理や設定の履歴管理を考えているので、REGファイルにしたいのです。
アプリ上で特権の取得とか考えなくていいし。
.NETなのは、単にそれしかないから。とはいってもこれが.NETではじめて作るツール。
PerlとVBAしか使ったことないのでVB.NETの勉強もかねてます。
INIファイルと同じという理解でよいのだろうか・・・
GetProfileStringとか使える?だけど一括で取得ができない、あたりで悩んでます。
どういうアプローチがいいんだろう。テキストとして馬鹿正直に取り込んで加工?
553:デフォルトの名無しさん
05/10/02 23:58:12
(´・ω・`)知らんがな
554:デフォルトの名無しさん
05/10/03 22:46:51
すみません、質問です
ツールバーにドロップした時に、どのボタンにドロップされたか調べるには
どうすればいいのでしょう
555:デフォルトの名無しさん
05/10/03 23:11:16
TB_HITTESTを使うのがベターだけど。
次善の策として、ButtonsをFor Eachで回して、
それぞれのToolBarButtonのRectangleにマウスの位置がContainsしているかどうか確認するとか。
e.X/e.Yはスクリーン座標だから、ToolBarオブジェクトのPointToClientメソッドを忘れずに。
556:554
05/10/04 00:21:45
>>555
for eachでいけました
ありがとうございました
557:544
05/10/04 13:35:05
>>545
ありがとうございました。助かります。
558:デフォルトの名無しさん
05/10/05 17:12:18
VB.Netでファイルに1行出力するのに
普通はどんな関数を使用するのでしょうか?
現状WriteLineで出力しているのですが
文字列を出力した際に、
文字列の最初と最後に”が付加されてしまいます。
”が付加されないようにしたいのですが、
なにかよい関数ないでしょうか?
559:デフォルトの名無しさん
05/10/05 17:15:27
まあ普通にStreamWriterのWriteLineだな。
ダブルクォーテーションが付くのは558が変なことしてるからだ。
560:デフォルトの名無しさん
05/10/05 17:58:10
>>559
558です
PrintLineでの出力したらうまくいったので
WriteLineは使用しないことにしました。
レスありがとうございました。
561:デフォルトの名無しさん
05/10/05 22:19:34
vb.netでsusieプラグイン使うのは可能でしょうか?(事前バインドでなくて動的に)
どぼんだとinvoke.dllがあれば出来るとありましたが、コンパイル出来なかったのと
配布のこと考えるとちと無理かなと
他の方法があればいいのですが…
562:デフォルトの名無しさん
05/10/05 22:29:29
まっとうにVB.NETだけでアンマネージドをレイトバインディングするには.NET 2.0が必要だね。
Managed C++を使えるのならそれでラップしてやれば簡単に作れるけど。
563:561
05/10/05 23:58:23
やっぱ無理すか…
ついでにもう一つ質問
ホバーってホバーと見なす時間ってどこで指定するんでしょう
つーか、本当はホバーじゃなくて、「マウスオーバーで選択はしないが
3秒間ポイントしたら実行」ってのがやりたいんだけど(リストビュー)
564:デフォルトの名無しさん
05/10/06 00:13:16
.NETの範囲内じゃ不可能だね。
Hoverの時間間隔を取得するのも.NET 2.0でようやく追加された。
//System.Windows.Forms名前空間SystemInformationクラスのMouseHoverTime静的プロパティ。取得のみ。
変更するのはWin32APIのTrackMouseEvent関数。とは言えこれの使い方は微妙かも。
それくらいなら、MouseMoveイベントとタイマを駆使すればなんとかなるかな?
565:デフォルトの名無しさん
05/10/06 00:49:29
質問させてください。
フォームの×や_ボタンを消して、
しかもフォームを動かせないようにするにはどのようにすればよいのでしょうか?
566:デフォルトの名無しさん
05/10/06 00:57:46
タイトルバーごと消して良いの?
タイトルバーがあるのに動かせないのはユーザへの嫌がらせにしかならないけど。
567:デフォルトの名無しさん
05/10/06 08:52:21
>>565
Form.ControlBox=False
Load時にLocationの値を覚えておいて、
Moveイベントが発生するたびに、覚えていたLocation値に置き換える。
でいけるんじゃね。
568:デフォルトの名無しさん
05/10/06 10:15:37
.NETって、標準のグラフコンポーネントとかないですか?
VB6.0のころはあったんですが、いくら調べても見つからないですよね。
クリレポについているみたいなんですけど、帳票じゃないやつではないですか?
ご存知だったらお教えください。
よろしくお願いします。
569:じゃんぬねっと
05/10/06 12:28:35
>>565
ControlBox プロパティを False にするか、
Maximize, Minimize プロパティを False にします。
移動は、API の DeleteMenu で消してしまえば OK です。
570:デフォルトの名無しさん
05/10/06 15:43:52
VB.Netで以下のようなINIファイルのデータを
タグ名のAAAAA、キーワードのbbで値の123が取得できる
関数とかありませんでしょうか?
XXXX.ini
-----
[AAAAA]
bb=123
571:デフォルトの名無しさん
05/10/06 16:17:40
>>570
.NET Frameworkにはありません。
APIを使うかStreamReaderなんかで手動で読み取りましょう。
っていうか、XMLファイルを何故使わないんですか?
使いましょう!
572:デフォルトの名無しさん
05/10/06 16:27:59
>>571
APIを使うことにします。GetprivateProFileStringでしょうか。
教えていただきありがとうございました。
573:563
05/10/06 21:50:32
>>564
mouseenterで大麻をイネーブル、mousemoveでディセーブル&イネーブルで
何とかなりました
つか、タイマのリセットってこれでやり方合ってるんでしょか?
574:デフォルトの名無しさん
05/10/06 21:56:01
ドキュメントには何も書いて無いのな。
まあちゃんと動いてるのならそれで良いでしょ。
575:デフォルトの名無しさん
05/10/06 23:37:53
エディタを自作するにはどうしたらいいですか?
改行マークやらを表示したいのです
576:デフォルトの名無しさん
05/10/07 00:02:25
>>573
通報しますた
577:デフォルトの名無しさん
05/10/07 13:45:16
VB.NetでOracle9iにDB接続、切断する方法を
教えて下さい、よろしくお願いします。
(OracleClient.OracleConnectionを使う?)
578:デフォルトの名無しさん
05/10/07 14:40:29
またぐぐれば数分のことを・・・。
ORACLE VB.net 入門でぐぐれば、本関係以外で最初に@ITが出てくる。
579:デフォルトの名無しさん
05/10/07 16:21:07
>>578
ぐぐってみました。
VB.NetでDB接続、切断するには
ODP.NETをインストールしないとダメなんですか?
もしくはした方がよいのですか?
何度もすいません。
580:デフォルトの名無しさん
05/10/07 16:33:16
>>579
つうか、その回答も@ITの別の記事で書かれてるはずだが。
OleDBとか選択肢あるから、必要条件を自分で決めて選択してくれ。
581:デフォルトの名無しさん
05/10/07 16:45:44
>>580
回答ありがとうございました。
(ODP.NETを選択しました。)
582:デフォルトの名無しさん
05/10/08 00:28:16
初歩的な質問ですみません
SHELLでカレントを変えたい時は呼び出す前に自分のカレント変えて、
呼び出して、また戻して、ってやるしか無いのですか
583:デフォルトの名無しさん
05/10/08 00:42:05
いつまでもShellなんてレガシ使ってないで
System.Diagnostics名前空間Processクラス使えという啓示。
584:デフォルトの名無しさん
05/10/08 14:24:27
かなり、初心者な質問なんですが、 これを2行にわける時は
どう書けば、いいのでしょうか?
Dim cmd As SqlClient.SqlCommand = SqlConnection1.CreateCommand()
585:デフォルトの名無しさん
05/10/08 14:28:08
>>584
Dim cmd As SqlClient.SqlCommand = _
SqlConnection1.CreateCommand()
586:デフォルトの名無しさん
05/10/08 14:54:12
>>585
レスありがとうございます。
質問の仕方がまずかったみたいです。
Dim cmd As SqlClient.SqlCommand = SqlConnection1.CreateCommand()
これを = で繋がないで2行に分けたいのですが、
Dim cmd As SqlClient.SqlCommand
cmd =
なんかこんな感じで書けないかなぁと思ったのですが。。
よろしくおねがいします。
587:デフォルトの名無しさん
05/10/08 15:12:15
Dim cmd As SqlClient.SqlCommand
cmd = SqlConnection1.CreateCommand()
じゃないの?え、ちがう?すまぬ。VB.NETはちょっとかじっただけ
588:デフォルトの名無しさん
05/10/08 15:14:13
>>586
VB.NETを使ったことの無い俺が言うのもアレだけど、
Dim cmd As SqlClient.SqlCommand
cmd = SqlConnection1.CreateCommand()
じゃダメなん?
589:デフォルトの名無しさん
05/10/08 15:52:14
>>587
>>588
ありがとうございます。。
590:デフォルトの名無しさん
05/10/08 18:50:28
変数とインスタンス(実体)の違いを理解できてないってことですね。
.netというかまあ基礎から勉強しましょう。
591:デフォルトの名無しさん
05/10/08 20:16:49
他フォームへの移動なのですが、
下記のような記述でよろしいのでしょうか?
Dim frmC As FormC = New FormC
If A = B then
frmC.Show()
Me.Hide()
Else
xxxxx
End If
592:デフォルトの名無しさん
05/10/08 20:28:12
何をもって良しとするかも判らんのにどうしろと。
自分の思い通り動いてるならいいんじゃないんですか?
593:デフォルトの名無しさん
05/10/09 09:31:22
うちの猫をVBライクからC#ライクにしたいのですが
どうしたらいいですか?
VBから卒業させてやりたいんでちゅ
594:デフォルトの名無しさん
05/10/09 21:08:25
まずはカッコつけさせることだな。
595:デフォルトの名無しさん
05/10/10 00:07:00
コーディングの常識かもしれないんですが
If chkVisible.Checked = True Then
mblnVisible = True
Else
mblnVisible = False
End If
というコードを参考書で見るけれども
mblnVisible = chkVisible.Checked
では問題があるのでしょうか。
可読性の問題?
596:デフォルトの名無しさん
05/10/10 00:10:32
別に問題ないな。
私も後者の表記をするし。
597:デフォルトの名無しさん
05/10/10 08:10:31
私だと例えばそのIFブロックにもう1つ処理足したくなったときに下だと直しが面倒なので
IFブロックは極力上の書き方してます
598:デフォルトの名無しさん
05/10/10 08:42:49
直しが面倒なのはイヤなのに初めて書くときに面倒なのは許容するのか
理解できんな
599:595
05/10/10 09:26:23
上とはちょっと違うんだけど、以前外注したベンダは画面上のコントロールの値をわざわざ
変数に突っ込んで、
mblnVisible = chkVisible.Checked
If mblnVisible = True Then
処理1
Else
処理2
End If
という処理を書いていた。mblnVisibleを他で使うでもなく。
結構大手ベンダだったので、画面上のコントロールの値を直接つかわないとかなんとか、
俺のしらないコーディング作法があるのかなぁ、と思っていたりして。
600:デフォルトの名無しさん
05/10/10 10:10:19
>>599
そのフラグを使う回数によるけど。
オブジェクト参照のスピードと変数参照のスピードの違いがあるから。
ループの中で死ぬほどのそのフラグで分岐するならば、変数にコピーして使うべき。
601:595
05/10/10 10:47:09
>>600
いや、それならわかるんだけど、使うのも一回だけ。
それも画面上の全コントロールの値を全部変数に代入してた。
単に駄目コーディングなのか・・・
602:デフォルトの名無しさん
05/10/10 10:54:35
>>600を考慮した習慣ではないかと。
603:デフォルトの名無しさん
05/10/10 11:08:23
hotmail用のメーラーを作りたいんですが、
どこか参考になるサイトをご存知の方がいらしたら
教えていただけないでしょうか?
604:デフォルトの名無しさん
05/10/10 11:09:50
どっちかってーと、
>>600を考慮した結果何でもかんでもそれにしちゃえという安直な発想の元根付いてしまった習慣、かな。
605:デフォルトの名無しさん
05/10/10 11:14:52
いや、後の拡張など考えた場合は機械的にやるのもありだとは思う。
ただ、MVCがきちんと分離できてれば、そのチェックボックスを引っ張るなんてありえないけどね。
606:デフォルトの名無しさん
05/10/10 11:28:03
MVCなんて知らなくて良いから、各位仕様変更に耐えうるコードとは何かを考えてほしいす。
どのフォームがアクティブかでで引数決定したり、入力部品を計算処理から直接参照して計算とかカンベンシテクレと。
氏ね中国外注・・・
607:デフォルトの名無しさん
05/10/10 11:36:29
chkVisible.CheckedはmblnVisibleの1条件と見るべき、たまたま条件が1つだっただけ。
従って、mblnVisible = chkVisible.Checked は良くないな。
608:595
05/10/10 11:41:55
んー、なんとなく了解しました。
まあ俺の作法が駄目ということではなさそうなので安心。
可読性と速度と保守性と一貫性を考慮してればいいよってことだよね。
MVC初めて知ったので、これから勉強。でもVB.netのユーザー入力部分だけ
のコーディングにMVCもくそもないかw
分離できてるってことか。
相手してくれた方々、ありがとう。
609:デフォルトの名無しさん
05/10/10 12:00:15
>>608
例えば、ユーザー入力に対するチェックだって、きちんと分離しろ。
関数化して、I/Oをきちんとすること、そこから始まりだよ。
イベント関数はそれらを呼ぶだけにする。
610:デフォルトの名無しさん
05/10/10 12:12:28
言葉遣いが偉そうな奴ってなんで例外なく無能なんだろう。。
>例えば、ユーザー入力に対するチェックだって、きちんと分離しろ。
>関数化して、I/Oをきちんとすること、そこから始まりだよ。
>イベント関数はそれらを呼ぶだけにする。
もう馬鹿丸出し。そんなの程度問題でしょ。
611:デフォルトの名無しさん
05/10/10 12:18:44
>>610
出来もしない奴がよく言う言い訳だね。
612:デフォルトの名無しさん
05/10/10 13:22:18
>>606
それは設計規約、コーディング規約、設計書等の記述が甘いからです。
中国人プログラマー相手であればコーディングの1行がこうなると設計書の記述から100%読めない限りダメです。
その為ブリッジSEの単価は跳ね上がるのです。
SEで来てるんなら、そいつはSEじゃなくてPGだという事で単価交渉しろ
613:デフォルトの名無しさん
05/10/10 17:03:51
複数選択する時にマウスでドラッグして選択する場合がありますが、その時の「四角い枠で
選択中」ってイベントはどうやって知ればいいのでしょう
つーか複数選択解除しただけで何でselecteditemchangeが選択してたアイテム数回
発生しやがるんでしょうね
614:613
05/10/10 17:06:13
間違えました
selectedindexchangedでした
615:デフォルトの名無しさん
05/10/10 17:10:01
MouseMoveでe.Buttonのチェックでもすれば?
616:デフォルトの名無しさん
05/10/10 20:02:26
ソース修正後に追加した覚えのない存在しないコントロール「_label4」など
が参照できないためコンパイル不可に陥るのは、vb.netの仕様ですか?
617:613
05/10/10 20:52:01
>>615
この間のイベント
mousemove
:
mousemove
mousedown
ドラッグ開始
selectecindexchanged
:
selectecindexchanged
ドラッグ終了
mouseup
mousemove
:
mousemove
ドラッグの間はmousemoveが発生しないし、mousedownの時点ではこれからドラッグ
するのか分からない、
要はselectecindexchangedが連続して発生しているものなら最初の1回以外無視
したいのです
618:デフォルトの名無しさん
05/10/10 21:27:58
必然性の良く分からない要求だなぁ……。
派生クラスを作る。
フラグを用意。
OnSelectedIndexChangedで、
・フラグが立ってれば返る。
・Control.MouseButtonsがMouseButtons.Noneでないのなら、フラグを立てて返る。
・どちらでもないのなら基底クラスのOnSelectedIndexChangedを呼ぶ
(SelectedIndexChangedイベントに登録されたハンドラを処理する)。
OnMouseUpで、
・フラグが立ってれば、フラグをおろし、
必要ならOnSelectedIndexChangedを呼ぶことでSelectedIndexChangedを処理させる
とかどう?
619:613
05/10/11 00:11:46
ちょっと複雑に考えすぎてた
要はmousedownで右クリ、Ctrl、Shiftでスキップ用のフラグ立てるだけで良かった
んでselectedindexchangedの中で処理回避してフラグ立てて、mouseupで解除する、と
要は、選択したファイルのサイズとか作成日とか表示してるのだけど、複数選択
してもどうせ最初の1つしか表示しないので、最初の1回しか表示ルーチンに
回さないようにしたかったってこと
(実際チラチラして見辛かったし時間も僅かとは言え食ってたから)
620:デフォルトの名無しさん
05/10/11 04:20:25
文法エラー(青色の波状の下線)の場所にマウスカーソルをあてても、
何か設定を弄ったのか、エラー内容が出なくなりました。
「ツール」→「オプション」や、説明書を確認してみても分かりませんでした。
アホな質問ですみませんが、どこの設定を確認してみればいいのでしょうか。
621:デフォルトの名無しさん
05/10/11 09:40:12
ASP.net、VB.NETにてウェブアプリケーションを作製しています。
DataGridコントロールのテンプレート(TextBox)に配列の内容を表示したいのですが、
以下の様に書くとエラーがでてしまいます。
なにか方法があるのでしょうか。
<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn HeaderText="名前">
<ItemTemplate>
<asp:TextBox id="TextBox1" runat="server"><%# Container.DataItem %></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
Public a() As String = {"あああああ", "いいいいい", "ううううう"}
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DataGrid1.DataSource = a
DataGrid1.DataBind()
End Sub
622:デフォルトの名無しさん
05/10/11 09:55:01
取りあえずエラーの内容ぐらい書こうよ
623:621
05/10/11 10:00:32
すいません。
以下のようなエラーが出ています。
例外の詳細: System.Web.HttpException: 'TextBox' に型 'DataBoundLiteralControl' の子を指定することはできません。
TextBoxのところをLabelに変更するとエラーもなく動きましたが、TextBoxだと動きません。
624:デフォルトの名無しさん
05/10/11 10:52:47
すいません。自己解決しました。
TextBox部分を以下のように変えたら動きました。
<asp:TextBox id="TextBox1" runat="server"><%# Container.DataItem %></asp:TextBox>
↓
<asp:TextBox Runat="server" Text="<%# Container.DataItem %>"></asp:TextBox>
625:デフォルトの名無しさん
05/10/11 16:51:08
Fromを最大化、最小化した際のWidth, Heightプロパティの値を取得すると、
最大、最小化時の値が取得されますが、
そのままの状態で、Normal時に戻したときのWidth,Heightの値を取得する方法はありますか?
Form終了時に、Width,Heightの値を設定ファイルに記憶したいのですが、
最大、最小化時に終了した際に、最後の時点のNormal時の値を書き込みたいのです。
(次回起動時に反映させたい為)
626:デフォルトの名無しさん
05/10/11 17:07:29
ResizeイベントでWindowStateがNormalの時にフィールドに保存。
627:デフォルトの名無しさん
05/10/11 17:14:25
>>626
ありがとうございます。
やってみます。
628:デフォルトの名無しさん
05/10/11 23:35:18
構造体の初期化はどうやって行うのでしょうか?
Constraction DATA
dim A as integer
dim B as string
end Constraction
dim tData as DATA
Redim tDatata ←これもだめ
Erase tData ←これもだめ
教えてください。
629:デフォルトの名無しさん
05/10/11 23:38:39
Structure
630:デフォルトの名無しさん
05/10/11 23:38:51
Dim dData As Data
dData = New Data()
'むしろDim dData As Data = New Data()
ところでConstractionってなんだ
631:デフォルトの名無しさん
05/10/11 23:46:16
wordのスペルチェック機能を
vb.netで作ったテキストエディタで利用したいんだけど(もちろんwordが既にインストールされている状態
どうすればいいの?
632:デフォルトの名無しさん
05/10/11 23:46:21
ストラクチャでコンストラクタ書けばいいんでねーけ?
633:628
05/10/12 01:41:03
>>629 >>630 >>632
ありがとうございました。Newキーワードについて調べてみます。
Structureですね、初心者なので間違えました。
634:デフォルトの名無しさん
05/10/12 09:51:17
ODBC接続をするアプリケーションを作成しているのですが、
接続情報が顧客によってちがいます。OdbcConnectionクラスで
接続していますが、どんなDBでも対応できるようにできますでしょうか?
VC++6.0で作成したプログラムを見たことがあるのですが、
ODBC接続情報を入力する標準のダイアログが出てきました。
こういうものは、VB.NETにはないでしょうか?
どなたかお聞かせ下さい。
よろしくお願いします。
635:デフォルトの名無しさん
05/10/12 11:03:35
>>634
なぜにODBC?
接続情報は当然顧客毎に違うでしょうね。
DBMS差を吸収するのがODBCだと思いますが。
ユーザー名等は設定ファイルなどで記述して、接続先はインストール時に作るか手順書では?
まあ、.netっぽくやるのであればOLEDBに移行すべきだと思う。
636:デフォルトの名無しさん
05/10/12 14:02:16
中国人のブリッジSEがODBCにしろというんですよね。
彼が言う標準のODBCダイアログというのは、どうやら、「SQL Serverログイン」のことのようですね。
ODBCデータソースアドミニストレータで、システムDSNにある特定の名前を入れるんだけど、
アクセスだとパスワードの入力要求はされないが、SQLServerでSQLServer認証を使うと、
パスワードが入力要求されるんです。
中国人BSEが言う「ODBC用の標準的な接続ダイアログ」なんて、本当にあるんですか?
よろしくお聞かせ下さい。
637:デフォルトの名無しさん
05/10/12 14:04:12
その中国人BSEに聞いたらあかんの?
638:デフォルトの名無しさん
05/10/12 14:43:54
ACCESSで出るダイアログと同じものが出るはず
VB6ではお世話になったが.NETでは使わなくなったから検証できず
639:デフォルトの名無しさん
05/10/12 15:54:30
>>637
中国人BSEも、遠い記憶を基にして言っているので、ソースが定かではない。
結局、中国人の思いつきを、おれが調査しなくてはならない。
>>638
VB6では、どんなダイアログか分かりますか?
教えて下さい。
お願いします。
640:デフォルトの名無しさん
05/10/12 16:06:54
>>639
接続先データソース名
ID
パスワード
の入力ダイアログが出る(はず
641:デフォルトの名無しさん
05/10/12 16:56:38
>>640
どんなコントロールですか?
コントロール名とか分かりますか?
642:デフォルトの名無しさん
05/10/12 17:04:58
>>620ですが、
fixでOS(XP)を再起動したら回復しました。
よく見たら、他のソフトも表示されておらず、
どうやらポップアップがウィンドウの背後に出ているようでした。
(些細な事で、数時間無駄にしてしまいました)
3週間位連続して使っていたのですが、まれにこんなことがあるんでしょうかね。
643:デフォルトの名無しさん
05/10/12 17:57:30
>>636
それはODBC ドライバ マネージャが表示するもので、
RDOでOpenConnectionするとき、DSNが無かったり接続情報が不完全な場合に出てた。
もっぱら開発時やデバッグ用の機能で、通常のアプリケーションではDNS情報が不完全な場合は
rdDriverNoPromptを指定してプロンプトを出さずにエラーにしてプログラムで処理する。
ADO.NETはもちろんADO以降そんな機能はない。
第一バックグランドで動くかもしれないプログラムが勝手に妙なプロンプトを出したらユーザーが困る。
System.Data.OdbcはOLEDBや専用の.NET Driver(SQLServerやOracle)が無い場合にやむなく使う機能。
もしプロンプトを出したいだけの理由でODBCを使いたいといってるなら却下だな。
644:デフォルトの名無しさん
05/10/12 19:17:05
sub とか function の内部でローカル宣言した const に2040バイトほどの
文字列を入れるとコンパイル時にVisualStudioごと落ちるんですが、これは
仕様なんでしょうか?
645:デフォルトの名無しさん
05/10/13 00:02:03
TcpClientについて質問です。
現在、DataAvailableのプロパティで、読み取りデータがあるかないかを調べ、
データがある場合はデータを読み込み、無い場合はスルー
という感じで、受信待ちの形(Do Loop)にしているのですが、
WinsockのDataArrivalイベントのように、データを受信した場合にイベントなどで知リたいと思うのですが、何か良い手立ては無いでしょうか?
646:デフォルトの名無しさん
05/10/13 01:06:22
BeginRead使うとか?
なぜそうしたいのか分かれば代替案も出せるかも知れないけど
647:デフォルトの名無しさん
05/10/13 02:04:29
基本的なことで恐縮です。
タイマーについての質問です。
Form上にTimer1とTimer2の2つを実装したとします。
仮に
Timer1 Interval 500ms Tickイベント時の処理時間100ms
Timer2 Interval 150ms Tickイベント時の処理時間10ms
とし、正確な処理時間はさほど必要ないとします。
このとき、Timer1のTickイベント処理中にTimer2の処理のタイミングが重なった場合の
動作は、処理を割り込んでくるのでしょうか?それともTimer2は待機しているのでしょうか?
要は、割り込んでほしくないときは、Timer2を止めるなどの処理が必要なのかどうかです。
逆に、Timer2の処理を優先したいときなどはどのようにすればいいのでしょうか?
648:デフォルトの名無しさん
05/10/13 02:16:26
>>647
System.Windows.Forms.Timer なら割り込んでこない。
649:デフォルトの名無しさん
05/10/13 02:34:16
>>648
レスサンクス。
ということは、System.Windows.Forms.Timer を使用していると
割り込んでくるな処理は不要ということですね。
逆に割り込ませたいときは、System.Timers.Timerとかかな?
もう少し調べてみます。ありがとうございました。
650:デフォルトの名無しさん
05/10/13 05:48:27
>>644
VisualStudioのバージョンと言語、落ちるソースを出さないと誰も相手にしないよ。
651:デフォルトの名無しさん
05/10/13 08:19:07
>>649
「割り込む」とかいう言葉遣いの人が
安易にSystem.Timers.Timerとか使うと危険。
危険ってのは別に煽って言ってるわけじゃなく、本当に危険だよ。
652:デフォルトの名無しさん
05/10/13 09:22:52
WindowsでのTimerって、メッセージキューにTimerイベントが置かれるだけですよ。
それを理解すれば答えは出ると思うんだが。
まあ、メッセージループを知らずに、メッセージも知らずにプログラム書けるのも一長一短だな。
653:デフォルトの名無しさん
05/10/13 09:31:08
>>650
ここはVB.NETスレでしょ?
なんで言語を書く必要が?
654:デフォルトの名無しさん
05/10/13 10:30:46
>>653 揚げ足取っておもしろいか?
655:デフォルトの名無しさん
05/10/13 10:38:09
>>652
System.Windows.Forms.Timerはその通りだが、全てのタイマがそうというわけではないぞ。
656:デフォルトの名無しさん
05/10/13 10:43:41
>>655
その程度のこと元質問を読めば自明。
657:デフォルトの名無しさん
05/10/13 10:59:50
System.Timers.TimerとSystem.Windows.Forms.Timerは何が違うんディスカ?
658:デフォルトの名無しさん
05/10/13 11:40:20
>>654
じゃあちゃんと書くから追試よろしく。
Visual Studio .NET 2003でVB.NETを使用し、以下のコードをコンパイル。
Public Class Test
Privete Sub TestMethod()
'↓改行記号で連結した2040バイトの文字列定数(長くなるので省略)
Const TestConst As String = _
"abcdef ..... xyz" & _
....
End Sub
End Class
これだけでコンパイル完了前にVisual Studioが突然死する。
659:デフォルトの名無しさん
05/10/13 12:15:03
>>658
2036バイトまでなら通った。
2037バイトの文字列にすると落ちた。
660:デフォルトの名無しさん
05/10/13 12:42:19
しかし.NETってバグフィックスがちっとも出ないのはなんでかね?
これ以外にも小さな(?)バグって山ほどあるよな
発売以来二年以上経過してるのにフレームワークのSP1がでてそれきり。
661:デフォルトの名無しさん
05/10/13 14:39:12
DataGridに列を追加し、さらに列名(列見出し)を表示させるには
どうしたらよいのでしょうか?
画面の何かのプロパティで追加できるのでしょうか?
手順を教えてください、よろしくお願いします。
662:デフォルトの名無しさん
05/10/13 15:39:02
>>661
入門書を買うか、入門HPを嫁。
663:デフォルトの名無しさん
05/10/13 17:30:34
>>660
バグではありません,それは仕様です,,なのでは?
664:デフォルトの名無しさん
05/10/13 17:31:29
>>661
'Test Data 作成
ds = New DataSet("testDs")
Dim dt As DataTable = ds.Tables.Add("testTable1")
dt.Columns.Add("id", Type.GetType("System.Int32"))
dt.Columns.Add("value", Type.GetType("System.String"))
dt.Columns.Add("date", Type.GetType("System.DateTime"))
Dim row As DataRow
For i As Integer = 1 To 100
row = dt.NewRow()
row.Item("id") = i
row.Item("value") = "Test" & i.ToString
row.Item("date") = Now
dt.Rows.Add(row)
Next
'DataGrid.DataSourceにDataTableを設定
Me.DataGrid1.DataSource = dt
'Columnを1つ追加(この時点でDataGridにはColumnが追加されている)
dt.Columns.Add("addCol", Type.GetType("System.Int32"))
'Columnのキャプション設定(この時点で追加されたColumnのキャプションが変わる)
dt.Columns("addCol").ColumnName = "Add Column"
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4705日前に更新/282 KB
担当:undef