1read 100read
2013年01月プログラム74: VB.NET質問スレ(Part39) (656) TOP カテ一覧 スレ一覧 2ch元 削除依頼
VB.NET質問スレ(Part39) (656)
懐かしきベーマガの面白かった投稿プログラムを語る (774)
新言語を開発したい (417)
P2P型の完全匿名掲示板はまだ出来ないの?その3 (340)
D言語 Part30 (915)
Jython、Groovy、JRuby - どれが一番効率的? (268)

VB.NET質問スレ(Part39)


1 :2012/06/28 〜 最終レス :2013/01/13
一応立てておいた
前スレ
VB.NET質問スレ(Part38)
http://toro.2ch.net/test/read.cgi/tech/1325083428/

2 :
>>1
俺も建てようと思ってたから乙

3 :
なにこの過疎?すごす・・・w

4 :
おい、テンプレぐらいちゃんとつくれ 今の時代、小手先の技術=プログラマーじゃ飯くえねーぞ ばーか

5 :
ちゅーことて手本を示してやるぜ ワイルドだろぅ〜
公式
Visual Basic デベロッパー センター: 開発 | MSDN
msdn.microsoft.com/ja-jp/vbasic/ms789056
Visual Basic 2010 Express 日本語版 ダウンロード (無料)
http://www.microsoft.com/japan/msdn/vstudio/express/

入門・解説サイト
Visual Basic/C# - @IT
http://www.atmarkit.co.jp/channel/vbcs/vbcs.html
DOBON.NET プログラミング道 - .NET Tips
http://dobon.net/vb/dotnet/index.html
C# と VB.NET の入門サイト
http://jeanne.wankuma.com/



6 :
過去スレ(降順)
VB.NET質問スレ(Part38)
http://toro.2ch.net/test/read.cgi/tech/1325083428/l50
VB.NET質問スレ(Part37)
http://toro.2ch.net/test/read.cgi/tech/1317448996/l50
VB.NET質問スレ(Part36)
http://toro.2ch.net/test/read.cgi/tech/1301828549/l50
VB.NET質問スレ(Part34)
http://toro.2ch.net/test/read.cgi/tech/1270998481/l50
VB.NET質問スレ(Part33)
http://toro.2ch.net/test/read.cgi/tech/1263738929/l50
VB.NET質問スレ(Part32)
http://toro.2ch.net/test/read.cgi/tech/1258592769/l50
VB.NET質問スレ(Part31)
http://toro.2ch.net/test/read.cgi/tech/1250930696/l50
VB.NET質問スレ(Part30)
http://toro.2ch.net/test/read.cgi/tech/1242522019/l50


7 :
VB.NET質問スレ(Part27)
http://toro.2ch.net/test/read.cgi/tech/1222612480/l50
VB.NET質問スレ(Part26)
http://toro.2ch.net/test/read.cgi/tech/1212570454/l50
VB.NET質問スレ(Part25)
http://toro.2ch.net/test/read.cgi/tech/1203650042/l50
VB.NET質問スレ (Part24)
http://toro.2ch.net/test/read.cgi/tech/1197507828/l50

8 :
MSDN
  http://msdn.microsoft.com/ja-jp/library/ms229284.aspx
どぼん!のVB道のトップページとTipsページ
  http://dobon.net/vb/
  http://dobon.net/vb/dotnet/index.html
Insider.NET
  http://www.atmarkit.co.jp/fdotnet/index.html
宇宙仮面の C# プログラミング
  http://uchukamen.com/
.NET TIPS
  http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
緑のバイク ★ 初めてのC# プログラム全般
  http://homepage3.nifty.com/midori_no_bike/CS/
VB.NETとC#でデザインパターン
  http://hccweb1.bai.ne.jp/tsune-1/
匣の向こう側
  http://www.ne.jp/asahi/nami/mei/index.html
WisdomSoft
  http://wisdom.sakura.ne.jp/
じゃんぬねっと
  http://jeanne.wankuma.com/
どっとねっとふぁん - C# Tips And Samples -
  http://homepage3.nifty.com/dotnetfan/index.html
  http://dotnetfan.org/
C#プログラミングTips
  http://www.atmarkit.co.jp/fdotnet/csharptips/index/csharptips_index.html

9 :
VB.NETはすげーな
あれもできるし、これもできる

10 :
まるっきり同じことをやっていても、なぜか簡単そうに見えるのがVBのいいところだよね
ただし、VB6のPGがあーだこーだ口出ししてくる所は好きじゃない

11 :
vbはifとかEndでくくるのをやめて欲しい

12 :
>>11
それ俺も同じこと思った

13 :
いいこと考えた{}で囲ったらわかりやすくね?

14 :
>>11
バカだろ
ネストが見やすいのがVBのいいところなのに

15 :
VBで何が一番許せないかというと、Meが一番嫌だな
thisと比べると気持ち悪い気がする
最近、すごいことに気がついたんだけど
フォントをCourier NewにするとVBなのに凄くかっこいい言語に見えるから不思議

16 :
>>14
あれがあるから見づらいんだよw
C#みたいに{}でくくれば良い

17 :
じゃあC#やっててくれよw

18 :
今わ2012年なのにVBわ2010とゆーことわ?

19 :
C#にもSelect Case文があれば、以降するんだけれどね。
なんでツケないんだろう・・・

20 :
>>17
やってるよw
>>19
え?switch …

21 :
switch case は Select Case に置き換えられるけど、
Select Case は switch case に置き換えられない場合がある。

22 :
breakの記述が強制されるからswitchがSelect Case相当になっても微妙にうれしくない

23 :
>>21
> Select Case は switch case に置き換えられない場合がある。
例えば?

24 :
Case 1 To 4
Case GetType(String)

25 :
>>23
select caseは、引数に数字以外が指定できる。それこそ条件も可能。
対して、switch caseは数字のみ。
なんで、非常に使い勝手が悪い、

26 :
条件に指定できるのを適当に書くとこんな感じか。
switch case : 整数と文字列、しかも定数のみ
Select Case : なんでもOK

27 :
>>26
C#で使えるようなクラスでもなんでもあったらすごく助かるよ。
定数化するために、ルーチンを別途用意しないといけないのが、移植の際に
辛い。

28 :
>>25
> 対して、switch caseは数字のみ。
使った事ないのね
>>26
> switch case : 整数と文字列、しかも定数のみ
定数ってなんだよw
列挙型の事か?
switch は変数だろうが条件だろうが指定できる select case と何ら変わらないよ

29 :
>>28
> 定数ってなんだよw
> 列挙型の事か?
つ CS0150
> switch は変数だろうが条件だろうが指定できる select case と何ら変わらないよ
つ CS0151

30 :
>>29
このエラーの意味分ってる?
未初期化の配列指定したり、キャストしなかったり、voidメソッド指定してエラーとか当り前
これはやっちゃいけない書き方、だからエラーになるの
switchが〜selectが〜以前の問題
本来はVBでも、ダメなんだけど暗黙的に初期化やキャストが行われてるから通ってるだけ
まずは Option Strict を ON にするクセをつけよう

31 :
……間違いを認めるのは恥ずかしいことじゃないよ

32 :
何の話をしてるよかよく分からんけど、VBのSelect...CaseとC#のswitch...caseって
結構違うのは確かだよ。
例えばC#のcaseの後にはswitchの()の中の値と比較(==)する定数式を一つしか書けないが、VBの場合はCaseの後は
定数式である必要もないし、比較する値は複数でもよいし、そもそも==以外の評価もできる。

33 :
>>32
それは、本来IFで書く事を無理やりselect caseにハメて書いてるだけの事
通常の書き方していればswitchもselectも同じ事ができるし
これに関してC#ユーザーが文句言った事ないだろ?
それはコード書いてて困る事がないからだよ

34 :
言ってる事に無理がありすぎて悲しくなってくるな

35 :
>>33
だから何の話をしてるの?何の話がしたいの?
俺は単に両者の機能には違いがあるといってるだけ。
現にある機能に無理矢理も糞もあるか。そんなのあんたの価値判断だろう。
馬鹿じゃないのか。

36 :
面白いのは、switchは上記のようにC#がシンプルでVBの方がよく言えば柔軟、悪く言えば無駄に多機能なんだが、
forに関してはVBの方がシンプルになってる。
>>33みたいな人は、C#(というよりC系統の言語)のfor文を指して「本来whileで書くことを
無理やり(ママ)forにハメてるだけの事」とか言うのかしらんw

37 :
C#ユーザーが文句言わないのはC系言語はそれが普通だからというのが一番の理由だろうな
まあif並べるのと変らないから実質別に困らないのも事実だが

38 :
C系のswitchってコンパイラに最適化を促すための目印に過ぎないからな
VBのselect caseとはわりと意味的にも違うと思う

39 :
でもVB.NETで書いたコードをC#に置き換える時
C#にはSELECTがないから無理ーとはならない

40 :
まあ変換でどっちが難しいかといえば圧倒的にVB->C#なんだけどな
言語的な意味でもコードの質的な意味でも

41 :
なるほど目印か

42 :
VB.NET も C# も若干書き方は違っても最終的な IL は同じ
結局俺らは .NET Framework サブセットの中で騒いでるだけなのさ

43 :
DataGridViewについて質問があります。

DataGridView1.DataSource = prDs.Tables(0)
Table(0)には、
からむ1
からむ2
からむ3
があるとします。

からむ2の列の型はBooleanで、チェックボックスとなっています。

このチェックボックスがTrueの場合は、"済"を、
そうでない場合は、""を入れたい、

要はDatagridViewのからむ2の列のセルの型をstring型に変更したいのですが
型を変える方法をご教授下さい。

DataGridViewTextBoxColumn型のカラムを追加すれば実現が可能のようですが、
元々datasetで定義しているからむ2を抽出して抽出したからむ2
の型を変更するような方法はないでしょうか?
宜しくお願いします。

44 :
エディットコントロールはチェックボックスにして表示はテキストボックスにするって事?

45 :
データはPostgresから抽出してきています。
指定したテーブルからSELECT文で抽出するのですが、
からむ2に該当するデータがTRUE、FALSE表記となっており、
抽出したデータを構造体に編集し、
編集した構造体をDatagridView.DataSourceに編集し
表示しています。
そのチェックボックス(Boolean型)の表示をString型に型変換して表示するように
変更したいのです。
表示はテキストボックスにして、

46 :
C#のネイティブコンパイラが欲しいな
ソース丸見えとか

47 :
スレチ
ngen

48 :
>>45
AutoGenerateColumns = falseにして手動で全列追加ですな
独自の構造体扱ってるのが良く見えないが
DataSetかDataTable使った方が楽な気はする

49 :
Net Frameworkになってから
CプログラマもVBプログラマも等価になったんでしょ?

50 :
今日VB.NETでラムダ式書いた...
これだけは、C#に合わしてほしかったわ

51 :
質問です
VB2010でアプリを作ってるんですが、フォームに配置したボタン(ボタンAとします)にフォーカスが合っている時にスペースキーを押すと、
Aが押された時のイベントプロシージャが意図せず実行されてしまい困っています
Aはマウスでクリックするかフォーカスが合っている時にEnterキーを押すかのどちらかでしか機能しないようにしたいんですが
何かいい方法はないでしょうか?
↓のような、ボタンAのKeyDownイベント発生時にSuppressKeyPressプロパティをTrueに変更するコードではうまくいきませんでした
Private Sub Button_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Button1.KeyDown
   e.SuppressKeyPress = True
End Sub

52 :
>>51
適当に書くとこんな感じか。
Private Sub Button_KeyUp(ByVal sender As Object, ByVal e As KeyEventArgs) Handles Button.KeyUp
 If (e.KeyCode = Keys.Enter) Then
  Button_MouseClick(Button, New MouseEventArgs(MouseButtons.None, 1, Button.Location.X, Button.Location.Y, 0))
 End If
End Sub
Private Sub Button_MouseClick(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Button.MouseClick
 クリック時に実行したいコード
End Sub
これでマウスとEnterキーにしか反応しないように出来るべ。
Clickイベントには何も書かないように。

53 :
>>52
サンクスです
Clickイベントに何も書くなということですが、このClickイベントとは>>52のMouseClickイベントではなく、
デザイナー上でボタンAをダブルクリックした時に自動生成されるClickイベントのイベントプロシージャには
何も書くなという意味でいいでしょうか?

54 :
と思ったけど自己解決しました
>>53の考え方で合ってたっぽいです
おかげで上手くいきました
しかしこのくらいボタンのプロパティとかでサクッと設定できるようにして欲しかったなぁ・・・

55 :
一般的な操作から逸脱しようとしたら、自分で工夫するしかないさ。

56 :
スペースでボタンクリックできないなんて標準に全く沿わない操作なんかどうでもよし

57 :
コマンドボタンのMouseClickイベントなんて滅多に使わないからね

58 :
サブフォルダの名前一覧を取得したいのですが
ネットワークで接続された他のPCの共有フォルダを対象とした場合
どういった処理をさせれば良いでしょうか。
Directory.GetDirectoriesメソッドやGetSubfoldersメソッドでは
取得できませんでした。
他のPCへはエクスプローラからなら認証なしで接続可能な状態です。

59 :
GetSubfoldersってのは知らないけど、
Directory.GetDirectoriesで普通に取得できるな。

60 :
>>59
確認してくれてありがとうございます。
Directory.GetDirectoriesで可能とのことなら
ネットワークの設定に問題があるのでしょうから
そちらを確認してみます。

61 :
>>60ですが、原因わかりました。
サブフォルダ内のファイルが多いと
取得に時間がかかるようです。
サブフォルダ自体は18個しかないのですが。
3分ほど待ってたら取得できました。
ありがとうございました。

62 :
自演も甚だしいなw
ttp://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=10912

63 :
古い仕様で申し訳ないのですが
COMについて分かりやすく解説してあるサイトか書籍をご存じないでしょうか?
旧VBの時代には使われていたようですが・・・
よんどころない事情でCOMを覚えるハメになったのですが
手がかりなしに覚えられるほど優秀じゃないので><
猿でも分かる程度に噛み砕いた本かサイトをご存知ないでしょうか?

64 :
前あったけど消えてるな

65 :
と思ったけどあった
http://atata.sakura.ne.jp/

66 :
ありがとうございます

67 :
>>63
俺の本棚に、こんな本があるな
日経BPソフトプレス
Microsoft Visual Basic 6.0 コンポーネント プログラミング
ISBN4-89100-071-6
今でも入手できるかどうかは知らんが、VB6でやるんでなければ買うほどの価値はないかも

68 :
ListBox1.Items.Item(i)
ListBox1.Items(i)
どっちがええの?

69 :
コードの見やすさと量の違いだけ。

70 :
>>55
>一般的な操作から逸脱しようとしたら、自分で工夫するしかないさ。
経験上、一般的な操作から逸脱することをやたらと顧客が強要してきたらデスマフラグだな。
無理だと言っても、偉そうな奴が出てきて「金出してるんだから言われたように作れ」とか騒ぎだすw

71 :
無茶させた事を忘れて、さらに仕様変更とかあるよね

72 :
「やれ」って言われてその通り作ったら、「なんでやったの?」って言われた事がある。

73 :
そんなの自業自得。
仕様を口頭でやり取りして文章も残さないってどんだけ素人仕事なんだよ。

74 :
新システム構築プロジェクト
第625回打ち合わせ議事録
(〜中略〜)
お客A「あっ!今のはオフレコで、議事録に書かないでね。」
担当B「はい。了解しました。」
(〜中略〜)
・本日の決定事項
D画面の仕様は〜とする。
〜の件はオフレコとする。


75 :
AM1:00:00になったら、画面にメッセージを出す処理を
作りたいと思いました。
ア)timerのインターバルを1秒に設定して、毎秒AM1:00:00になったかチェックする
イ)AM1:00:00から今の時間を差し引いて、AM1:00:00間での時間を求め、
  その時間をインターバルにセットする。
この2つが浮かんできたのですが、他にいい方法はないでしょうか。
言い方がおかしいかもしれませんが、timerに直接、「AM1:00:00になったら起動」
という設定方法はないですよね?

76 :
タスクスケジューラを使うのが定石

77 :
>>75
タイマーで頑張るんじゃなくて、Windowsのタスクスケジューラで
その時間にプログラム起動するのオヌヌメ

78 :
>>75
俺ならアだな

79 :
タスクスケジューラがいいと思うけど、タイマ使うならWinFormsのタイマじゃなくて
System.Timers.Timer使えよ

80 :
普通のフォームアプリケーションですが
普段使わないフォームを開くとHDDがアクセスしまくって
時間がかかります。これはフォームをコンパイルでも
しているんでしょうか?
初回起動が遅いのはいいのですがフォーム単位でまで
初回起動が遅いのはいかがなものかと思うのですが

81 :
HDDアクセスがボトルネックになっている場合、コンパイルは全く関係ない
嘘だと思うならNGenを試してもいいけど、たぶん改善しない
単にディスクからコードやリソースを読み込むのに時間がかかっている可能性が高いからな
普段使う方のフォームが開かれている間にバックグラウンドでロードするようにしたら?
フォーム開かなくても、別のスレッドでGetType(普段使わないフォーム).Assembly.GetTypes()とかやればロードされるよ

82 :
>>81
なるほどー。
じゃあメインフォームが起動したらスレッド起こして
その中で全フォームgettypesしてみます。

83 :
すいませんが、助けてください。
1つのフォームの中にWebbrowserを2個貼り付け、URL1,URL2をそれぞれ参照しています。
URL1のWeb参照が出来なくなるとメールを送信してWebが見えなくなった事を知らせて
自分自身をMe.Close()し5秒waitしてから、Loadイベントで再度Webbrowser.Navigate()する
Web監視ソフトを作りました。
長時間URL1が見えなくなると何度もMe.Close()、Webbrowser.Navigate()を繰り返すことに
なり、やがて勝手に別のIEが立ち上がってくるのです。
このIEが立ち上がってくるのを抑止したいのですが、どうやってもうまく行きません
どなたか知恵を貸してください
試しにWebbrowserを1個にすると、何度もMe.Close(),Webbrowser.Navigate()を繰り返しても
IEは立ち上がってきません。
なぜこのような動作になるのでしょう?よろしくお願いします。
WindowsXP SP3 + VB2010expressです。

84 :
とりあえずwebbrowserコントロールで監視ってのがいまいちすぎる

85 :
勝手に別のIEが立ち上がってくるって、エロサイトか?

86 :
さすがにクソすぎる
お願いだからWebRequestを使ってくれ

87 :
>>83
なんかよくわからないが、closeしきれてないうちに
Webbrowser.Navigateしようとするからとか・・・
フォームのインスタンス自体消すようにme.disposeするとか
formclosedイベント内でWebbrowser.Navigateしてみてどうなるか?

88 :
>>83
なぜこのようなアプリを作るのでしょう?よろしくお願いします。

89 :
なぜかVBって文法覚えられないよね
C系の言語だとVBより細かい所まで覚えているのに

90 :
質問です
メインのフォームでOpenFileDialogを使ってCSVファイルを読ませ、別フォームを開いてそこで逐次
CSVファイルの行を読み込みながら処理を行うアプリケーションをVB2010で作ってます
使用時にCSVファイルのフォーマットが想定外のものを間違って読ませてしまう可能性があるので、
TryステートメントのCatchにエラー発生時の例外処理を記述し、そこで使用していたオブジェクトを
Disposeした後Me.Close()でフォームを閉じてメインフォームに戻すようにしたいのですが、実際に
リリースビルドして不正なCSVファイルを読ませてみると
「オブジェクト参照がオブジェクト インスタンスに設定されていません。」
という例外発生のダイアログボックスが出てきます
試しにCatchのDisposeしている部分を削っていきなりMe.Close()すると意図した動作(ダイアログとかが
出ずにそのままフォームが閉じてメインフォームに戻る)になるんですが、実際のところDisposeしないで
いきなりMe.Close()してしまっても問題ないんでしょうか?

91 :
オブジェクトがあったらDisposeするようにしたらいい

92 :
>>91
オブジェクトはいくつか使ってるんで最初はDispose() → Me.Close()するようにしてたんですが、
そうすると>>90で書いた例外のダイアログボックスが出ます
一応使われてるオブジェクトは
・画面表示に使うfontオブジェクト数個(変数font)
・画面表示に使ったグラフィックスオブジェクト(変数g)
・CSVファイル読み込みに使ったStreamReader(変数sr)
なんで、Catchの部分を
Catch
font.Dispose()
g.Dispose()
sr.Dispose()
Me.Close()
Finally
と記述してます
Dispose()の行を削ってMe.Close()だけにすれば表面上の動作は意図した通りになるけど、
それだとオブジェクトの解放処理がちゃんとされてるのかどうか分からなくて

93 :
オブジェクトのインスタンスがあったらの間違いだった

94 :
UsingつかえUsing

95 :
無いものをdispose出来る訳がないだろうに…
つーかdisposeはfinallyに書くもんだろに

96 :
全体的に見直そう
1.Disposeは呼び出し元でするもの
2.Disposeはクローズ後にするもの
3.Disposeが必要なメンバの解放はFormのDisposeをオーバーライドしてその中で行なう
4.モーダルフォームならDisposeの手動呼び出しが必要。モードレスなら不要。

97 :
非同期処理なんだけど
backgroundworkerとtaskどっちつかえばいいのん?
やりやすい方でいい?


98 :
レスありがとうございます
前レスでは書き忘れてましたがsrはDisposeする前にCloseしてます
srは複数のプロシージャにまたがって使い、それ以外のgやfontについては1つのプロシージャだけで使うので
いろいろ試行錯誤してみた結果
・Catch部分ではエラー発生フラグを立てるだけにする
・Try〜End Tryの後の処理は全部If〜End Ifの中に入れて、エラー発生フラグがFalseの時のみ実行
・プロシージャの最後でgとfontをDispose
・エラー発生フラグが立ってたらMe.Close()
・クラス内にFormClosedイベントプロシージャを追加し、そのプロシージャ内でsrをClose→Dispose
という記述に変えたら一応イメージした通りに動作するようになりました
正直腑に落ちない部分は残ってますが・・・
自分としてはMe.Close()が実行されるとその場ですぐ終了処理が行われ、そのプロシージャ内のMe.Close()
以降のコードは無視されるものだと思ってたのですがひょっとして違うんでしょうか?

99 :
下記エラーが時々発生するのですが
回避する方法はありませんでしょうか?
Clipboard.Clear()
Clipboard.SetDataObject(txt_target.Text, True)
要求されたクリップボード操作に成功しませんでした。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
Subversion r14 (466)
関数型プログラミング言語Haskell Part20 (926)
MFC、Win32++を超えるライブラリを作るスレ (962)
D言語 Part30 (915)
Excel VBA 質問スレ Part27 (502)
懐かしのMS-DOSプログラミング (385)
--log9.info------------------
【目指せ】下手コテがうpしまくるスレ5【歌うま】 (345)
【ラウンドワン】キラキラ★カラドル伝説 (696)
★燃える★アニソンうpスレ★萌える★vol.52 (889)
カラオケに向けて喉の調子を最高にスレ (352)
EBAプロ所属☆ミッチさん part2 (675)
チラシの裏 (380)
ミックスボイス判定スレ36 (278)
SHiDAX Please! - シダックス・コミュニティー27 (305)
歌が上手い人の共通点 (981)
【BIG ECHO】ビッグエコー Part.3 (966)
宇多田ヒカルを歌おうpart4 (879)
【ヒトカラ】一人でカラオケに行こう!256店舗目 (632)
どうでもいいけど適当なスレ2 (785)
糞コテ&アンクルトムの小屋 トミックスボイス7 (866)
自分より上手い奴を見ると嫉妬丸出しで叩く (787)
【下げて】単なる高音に価値はない-2キー目【解決!】 (777)
--log55.com------------------
【FT3】フォーチュントリニティ3 その5
オンラインクレーンゲームスレ総合76
【そろそろ】スピンフィーバーPart20【寿命】
UFOキャッチャー、プライズゲーム東京専用スレ62
オンクレ トレバ被害者の会 Part.2
新UFOキャッチャー動画総合スレ6
タイトーオンラインクレーン 24 【あああ立入禁止】
オンラインクレーンゲームスレ総合79