VB.NET質問スレ(Part30)

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2009/08/20(木) 00:17:06
すまん、リロードしてなかった

>950
上層を下層の子コントロールにして、上層のpictureboxを透過
953944:2009/08/20(木) 00:19:10
>>951
すいません
参考になるサイトがありましたら教えて頂けないでしょうか?
手持ちの教科書が2003ベースに作られていてDataGridしか無かったもので・・・
954デフォルトの名無しさん:2009/08/20(木) 00:33:15
955デフォルトの名無しさん:2009/08/20(木) 00:33:21
956950:2009/08/20(木) 00:49:56
>>952
ありがとうございます!!
やってみます
957デフォルトの名無しさん:2009/08/20(木) 01:35:14
SelectでCase 4 To 5は正常なんですがCase 9 To 10は出来ませんでした
Case 10 To 9にする事で解決したんですが何ででしょうか?
958デフォルトの名無しさん:2009/08/20(木) 01:38:43
すいません
正しい指定方法はカンマで区切る方法なんですね;;
959デフォルトの名無しさん:2009/08/20(木) 02:07:08
>>957-958
別にToが間違ってるわけじゃない

条件のデータ型は何だ
960デフォルトの名無しさん:2009/08/20(木) 02:10:05
>>959
Stringですがダブルクォーテーション無しで行けてたので無視してました・・・
ダメですかね?
961デフォルトの名無しさん:2009/08/20(木) 03:29:18
絵に書いたようなVB厨だな
962デフォルトの名無しさん:2009/08/20(木) 03:44:11
このスレにいるお前が言うな
963デフォルトの名無しさん:2009/08/20(木) 06:24:52
>>960
option strict on にすれば少し不幸になって沢山幸せになれる。
964デフォルトの名無しさん:2009/08/20(木) 08:29:40
>>962
ヴビ厨でない人間がいるからこそ
回答が期待できるわけだが。
965デフォルトの名無しさん:2009/08/20(木) 10:37:47
OdbcConnectionだと、OdbcConnection.DNSプロパティに
管理ツールで登録したODBCデータソース名をセットして接続できますが、
SqlConnectionの場合、接続文字列にODBCデータソース名を
利用することはできないのでしょうか?

OdbcConnectionで一旦接続してから、
その接続文字列からサーバー名データベース名等を取得して
それをSqlConnectionに渡すしかない?
966デフォルトの名無しさん:2009/08/20(木) 10:59:23
>>965
なぜSqlConnectionを使わんといけんの?
967デフォルトの名無しさん:2009/08/20(木) 11:01:37
使わないといけないからです
968デフォルトの名無しさん:2009/08/20(木) 11:02:12
ぜんぜん答えになってねーんだが
969デフォルトの名無しさん:2009/08/20(木) 11:04:57
SqlConnectionはSQLServerに接続するためのものだ
970デフォルトの名無しさん:2009/08/20(木) 11:09:30
DB接続文字列の例
http://www33.ocn.ne.jp/~yfuku/vb19.html
971デフォルトの名無しさん:2009/08/20(木) 11:23:11
>>969
「ADO.NETを介して」が抜けてますよ。
972デフォルトの名無しさん:2009/08/20(木) 11:36:23
>>971
そんなんわざわざつける必要ねーやん。
973デフォルトの名無しさん:2009/08/20(木) 13:12:47
ConnectionStringBuilderみたいなのなかったっけ
ODBC接続文字列から直接は無理だろうが、パースして個別にユーザー名とか渡してやれば、
だいたい要求に適うんじゃないかな
974デフォルトの名無しさん:2009/08/20(木) 14:32:24
>>963
幸せになれました!
975デフォルトの名無しさん:2009/08/20(木) 18:33:28
コンストラクタに不正な引数が渡されたらインスタンスが作成されないように
したいんですが、どのように書けばいいのでしょうか。

Sub New(Hikisu As String)
  Try
    If Hikisu = "" Then
        Throw New Exception("ダメ絶対")
    End If

    〜通常の初期化処理〜

  Catch ex As Exception
    Console.Write(ex.Message)
    (ここに何か書く?)
  End Try
End Sub
976デフォルトの名無しさん:2009/08/20(木) 18:41:14
例外を投げる
977デフォルトの名無しさん:2009/08/20(木) 18:47:39
>>975
可能であれば、引数を列挙体で定義
978977:2009/08/20(木) 18:55:56
スマン
質問の意図を読み間違えたようだ
979デフォルトの名無しさん:2009/08/20(木) 19:15:56
本来あり得ない呼び出しを防ぎたいのなら、
Debug.Assertを呼んだ方が良いかも。
980975:2009/08/20(木) 19:24:26
>>976
ハンドルされない例外を起こせば、コンストラクタが完遂されないから
インスタンスの作成プロセスが途中で終わる、ということになりますね。

その「途中」までの残骸みたいなものがもしあるなら、それはプログラム実行中でも
きちんと破棄されているでしょうか?
また、その「ハンドルされない例外うんぬん」のシステムメッセージではなく、
自身で用意したメッセージのみを表示させることはできるんでしょうか?


>>977
可能な限り、Enum宣言することにしています。
981975:2009/08/20(木) 19:33:38
>>979
試してみたところ、メッセージが出ても「続行」ボタンを押されるとコンストラクタが
完遂されて、インスタンスが出来上がってしまうような…。
使い方間違ってたらすみません。
982デフォルトの名無しさん:2009/08/20(木) 19:39:34
ObjectのNewが走ってっから無理
983975:2009/08/20(木) 19:55:04
あ、そうか。

インスタンスが作成されないということは、どっちみち
呼び出し元がその例外を捕まえないといけないんですよね。
メッセージも呼び出し元が「呼び出せなかった」と言うべきですね。

Newの中で最初の例外発生をその場でCatchするのは、
そのクラスのインスタンス作成開始から例外発生までの間で
使われたメモリを全て解放するため。
そのあとで、その場ではCatchされない例外を放れば役目は終わり。
こういう理解で良かったですか?

このとき不安なのが、メモリを全て解放できたか?ということですが、
クラス内の変数とByValの引数に対して、軒並み
  文字列=""
  数値=0
  開いたもの.Close
  作ったもの.Dispose
あたりを実行すれば大丈夫でしょうか。
他に注意すべき点はありますか?
984デフォルトの名無しさん:2009/08/20(木) 20:01:02
GC下でメモリの解放ってのはナンセンス
メモリ以外のリソースはDispose(とかClose)で早めに片付けるのが一般的だが
それ以外の>>983はただのおまじないで実効力はない
コレクションから削除し忘れとかそういうレベルで考えろ
Catchもメモリの解放とは関係ない
985デフォルトの名無しさん:2009/08/20(木) 21:24:40
>>975
そんな処理してるのなんか.NET Frameworkのクラスの中になんぼでもあるがな。
なんで悩むんじゃ?
986デフォルトの名無しさん:2009/08/20(木) 21:29:24
どんな処理してるか分からんかったから悩んでたんだろ
987デフォルトの名無しさん:2009/08/21(金) 05:27:47
それが成長へ繋がる
988デフォルトの名無しさん:2009/08/21(金) 13:16:51
当方初心者です。
process.startを使ってurlをブラウザで開く時に、
ブラウザのウインドウサイズを固定したいのですが、
うまくできません。
いろいろ調べてみたのですが、わかりませんでした。
開く時に指定するのではなくて、
開いた後コントロールするものなのでしょうか?
989デフォルトの名無しさん:2009/08/21(金) 14:46:14
>>988
process.startは基本はファイルを実行するだけ
引数のProcessStartInfoで最大化・最小化程度の指定はできる

起動時に制御できたとしても、後から自由にサイズ変更できるから
結局はブラウザ側(WEB側?)の小細工でサイズ変更不可にしないと意味なくね?
990988:2009/08/21(金) 15:24:49
>>989
回答ありがとうございます。やっぱりそうですか。
では、あとからサイズ変更するようにします。
自分専用の自動処理アプリなので、
あとからサイズ変更を他人にされる事がないので、そういう形にしたかったのです。

後からのサイズ変更は、起動しているアプリケーションを取得して、
それにたいしてsetを使えばいいんですよね。
やってみます、ありがとうございました。
991デフォルトの名無しさん:2009/08/22(土) 02:30:44
JavaとRubyをガッツリ書いてたんですが、今度VB.NETの案件に入ることになりました。
他のオブジェクト指向言語の経験が十分にある技術者が、手早くVB.NETの言語仕様や
文法を習得するに適した本ってどんなのがありますか?

ひとまず "ひと目でわかるMicrosoft Visual Basic 2008 データベース開発入門 " なる本は
確保しようとしてますが、もっと前提のところを書いた本があまりにも選択肢が多くて困ってます。
992デフォルトの名無しさん:2009/08/22(土) 07:58:53
>>991
言語仕様や文法ならオンラインヘルプで十分。
クラスライブラリが膨大なので使い方はGoogle先生でドボンに聞け。
993デフォルトの名無しさん:2009/08/22(土) 08:16:21
>>991
PG初心者じゃないならMSDNで済む話ですな
994デフォルトの名無しさん:2009/08/22(土) 09:14:34
次スレよろ
995デフォルトの名無しさん:2009/08/22(土) 14:03:13
>>991
VBという言語の位置づけを考えればたぶんそういう本はないと思う。

フランチェスコバレナの本あたりを軽く斜め読みしたあと、
よくweb上にC#とVBの微妙な違いを指摘した類の文章があるから、
そういうのにも目を通した方がいいと思う。
(そうしないと、むしろプログラミング熟練者ゆえにはまる落とし穴にはまる
可能性がある。配列のサイズ指定とか。)

>>992-993
質問者の日本語読めてる?w
996デフォルトの名無しさん:2009/08/22(土) 14:47:12
>>995
そんな落とし穴にはまる熟練者は居ないな。
自称熟練者だとはまるものは続出しそうだがww
997デフォルトの名無しさん:2009/08/22(土) 16:57:56
質問です。

For I = 1 To 10
[email protected] = ???
Next

というコードで@の部分に I を入れたいのですがどうすれば入れられるでしょうか
998デフォルトの名無しさん:2009/08/22(土) 17:10:43
ピクチャーボクシー
999デフォルトの名無しさん:2009/08/22(土) 17:15:51
誰かオレに愛をくれ〜よ♪
1000デフォルトの名無しさん:2009/08/22(土) 17:37:44
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。