VB.NET質問スレ (Part12 ..
[2ch|▼Menu]
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"


665:デフォルトの名無しさん
05/10/13 19:07:06
新しいフォームを作ってそれを呼び出し元のフォームより後ろに表示したい
んですが、何とか実現する方法ってないですか?

666:デフォルトの名無しさん
05/10/13 20:02:40
>>665
アブフレックス

667:デフォルトの名無しさん
05/10/14 18:28:18
>>664 さん
661です、サンプル例ありがとうございました。
おかげでできました、助かりました。どもです。

668:647
05/10/15 12:44:49
レスサンクスです。
最近プログラミングの基本を勉強する必要を痛感していただけに・・

System.Timers.Timer・・・いまんとこはやめときます orz


669:デフォルトの名無しさん
05/10/15 15:49:25
クラス内変数なのですが、

private SqlConnection sqlConnection = null ;

と C# で書かれていたものをVB.NETで書く場合はどう書けばよろしいのでしょうか?



670:デフォルトの名無しさん
05/10/15 16:05:55
番号 データ
1   10
2   12
3   10

のようなテーブルを作ってDataGridに表示していて、
ボタンを押すと、
4   13
などとデータが追加されていきます。

どんどん追加していくと、追加した行が見えなくなってしまいますが、
追加した行にフォーカスを移して、その行が見えるようにする方法を教えてください。

DataGrid1.Select(dataTable1.Rows.Count - 1)
だと選択されるだけで、見えるようにはなりませんでした。



671:670
05/10/15 16:16:23
DataGrid1.CurrentCell = New DataGridCell(dataTable1.Rows.Count - 1, 1)
でした。

672:デフォルトの名無しさん
05/10/15 16:18:15
>>669
君はどの部分が変換できないの?
あと「クラス内変数」って表現は「フィールド」と言った方が良いよ。

673:デフォルトの名無しさん
05/10/15 16:33:27
>>672
レスありがとうございます。

private SqlConnection sqlConnection = null ;
と、C#で書かれているものを

VBNETで書くとこんな感じかなと思ったのですが、これだとエラーになってしまいます。
Private sqlConnection As SqlConnection = New SqlConnection
sqlConnection = null

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


674:デフォルトの名無しさん
05/10/15 16:42:28
>>673
Private sqlConnection As SqlConnection = Nothing
または
Private sqlConnection As SqlConnection

参照無しの状態になるのを明示して欲しいから、上の書き方が良いかな?
意図的にインスタンス生成してませんよって。

675:デフォルトの名無しさん
05/10/15 17:23:56
自分もC#のソースVBで書き換えたいのですが、

If color = Color.Empty Then

と書きたい時に、
Color.Empty が color.Empty に(大文字が小文字に)
強制的に代えられてしまうのは何故でしょうか?

知ってる方お願いします。

676:デフォルトの名無しさん
05/10/15 17:28:44
すみません、color は
Dim color As Colorです。

677:デフォルトの名無しさん
05/10/15 18:16:28
VBは大文字小文字が区別されないから。
C#なら大小の区別で別物になるがVB.NETではそうもいかないので、できれば別のネーミングにすることを薦める。

678:デフォルトの名無しさん
05/10/15 20:49:19
>>677
大文字と小文字の区別が無い事は全然知りませんでした。
どうもありがとうございます。

679:673
05/10/15 21:37:36
>>674
大変参考になりました。。
ありがとうございます。

680:デフォルトの名無しさん
05/10/15 23:27:36
でも Dim color As Color ってつい書いちゃうんだよな。
大文字小文字の区別はないけど、
クラス名とインスタンス名はいちおうちゃんと別物として扱われるんで。

681:デフォルトの名無しさん
05/10/16 03:15:24
int, str, bol, tbx, lbx, objとか出来るだけ接頭子付けているが
color は col だとフィールド関係と間違えそうだし、clr かな?

682:デフォルトの名無しさん
05/10/16 07:55:17
ハンガリアンは捨てたのさ。

683:デフォルトの名無しさん
05/10/16 13:58:11
webbrowserコントロールでエクセルファイル表示するとおもむろにエクセル立ち上がるのって
どうにか出来ないでしょうか?(せめて最小化とか)
そして閉じてもエクセルやワードのプロセスが残ってるのも何とかしたいんです

684:デフォルトの名無しさん
05/10/16 15:53:06
Webブラウザコントロールを使って表示しなければいいんじゃないか?
これってたぶんだけどIEで表示してるのと同じだよね。
関連付けで開いた相手のプロセスはIEの監視下?

レガシーなOLE連携でCreateObjectでやった場合でもプロセスは起動するのはやむなしだな。
でもプロセスは残らない。

単純にファイルの関連付けで開いた場合、プロセスの終了は使用者任せだね。

そうじゃなければ、市販コントロールであると思うよ。

685:デフォルトの名無しさん
05/10/16 18:02:04
>>684
それ言っちゃうと身も蓋も無いんだけどねw
フリーソフト作るのに市販コントロール買ってまでするってのも…
ヘルプ見ようとしても出てこんし
諦めた方がいいかな

686:デフォルトの名無しさん
05/10/16 20:29:09
>>681
その調子で一度すべてのクラスに識別可能なプレフィックスを付けながら
コーディングしてみ?プレフィックスが変数名より長くなるか、
プレフィックスを覚えきれなくなるのが落ち。まともなOOの環境で
コーディングしたことあるやつなら、プレフィックスを付けることの
無理にとっくに気がついている。だから最近はプレフィックスを付けないのが主流。


687:デフォルトの名無しさん
05/10/16 22:59:06
>>685
それを言うならば、フリーソフトでEXCELマクロでもないアプリなのに、要EXCELってのも・・・。
企画原案を変えるべきでは?


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

4699日前に更新/282 KB
担当:undef