5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

VB.NET質問スレ(Part27)

1 :デフォルトの名無しさん:2008/09/28(日) 23:34:40
前スレ

VB.NET質問スレ(Part26)
http://pc11.2ch.net/test/read.cgi/tech/1212570454/

テンプレは>>2〜5くらいまでの間にある予定

2 :デフォルトの名無しさん:2008/09/28(日) 23:35:04
ねえよ

3 :デフォルトの名無しさん:2008/09/28(日) 23:38:27
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

4 :デフォルトの名無しさん:2008/09/28(日) 23:39:12
CodeProject
http://www.codeproject.com/vb/net/
the GotDotNet Home Page
http://www.gotdotnet.com/
KEN's .NET
http://www5b.biglobe.ne.jp/~yone-ken/VBNET/index.html
Cetus Links: 19,498 Links on Objects and Components / .NET
http://www.cetus-links.org/oo_dotnet.html
HIRO's.NET
http://vbdotnet.fc2web.com/index.html
@IT:特集 .NET開発者のためのオンライン・リソース・ガイド
http://www.atmarkit.co.jp/fdotnet/special/onlineres/onlineres_01.html
.NETでいきまっしょい!
http://santamartadotnet.hp.infoseek.co.jp/
これがほしかった!厳選サンプルツール集
http://anetm.com/dev/tools/vbdotnet.htm
ぬーやんのdotNET講座
http://www.geocities.jp/nuu_yan/dotNET/index.html
PINVOKE.NET
http://www.pinvoke.net/
WinAPI Database for VB Programmer
http://www.winapi-database.com/

5 :デフォルトの名無しさん:2008/09/28(日) 23:40:33
Windows Api programming in C# , VB.NET, and VB6. Examples of P/Invoke and DllImport with Source code
http://custom.programming-in.net/
CodeZine
http://codezine.jp/
ConvertCSharp2VB
http://www.kamalpatel.net/ConvertCSharp2VB.aspx
@IT:.NET Tools
http://www.atmarkit.co.jp/fdotnet/tools/index/index.html
SharpLibrary Redirector
http://www.sharplibrary.com/
MSDN アカデミック アライアンス 技術資料
http://www.microsoft.com/japan/msdn/academic/articles/
「300 秒でズバリ !!」&「10 行でズバリ !!」シリーズ
(VS2005) http://www.microsoft.com/japan/msdn/thisweek/300x10/
(VS.NET 2003) http://www.microsoft.com/japan/msdn/thisweek/wednesday/
PAPA'n VB
http://papanvb.i-love-vb.net/
(旧コンテンツ) http://www.mitene.or.jp/~sugisita/index_old.html
VB レスキュー花ちゃん
http://www.bcap.co.jp/hanafusa/dotnet/index.html

6 :デフォルトの名無しさん:2008/09/29(月) 00:58:13
VB中学校
http://homepage1.nifty.com/rucio/main/main.htm
初心者から中級者のためのVB
http://www7b.biglobe.ne.jp/~vb_beginner2008/

7 :デフォルトの名無しさん:2008/09/29(月) 01:10:32
おっ リンク増えた♪ どなたか存じませぬが、あなたに幸あらんことを。

8 :デフォルトの名無しさん:2008/09/29(月) 11:33:17
クリスタルレポート詳しい方伺いたいのですが
VB.NETでクリスタルレポートを使用した帳票を作成しています
グループ化した後、詳細の項目を改行せず、同じ場所に表示していく方法はないでしょうか?

 123
 456

という感じで式で制御しています。それを同じ場所に表示したいのです。アンダーレイにチェックを入れても

 1  

  2
    
   3
といった感じに表示されてしまいます
知ってる方いらっしゃいましたら教えてください

9 :デフォルトの名無しさん:2008/09/29(月) 19:16:18
Webサービスに関して伺いたいのですが
javaで作られている型(decimal)のところを
VB側で作成した場合にdecimalの項目がSOAPのdecimalから抜けてしまうという
現象が発生しました。何かご存知の方いらっしゃいましたらお知恵を拝借できますでしょうか。

10 :デフォルトの名無しさん:2008/09/30(火) 13:16:43
ボタンをクリックするたびに新しいボタンを作成して、個々に一定時間ごとに
テキストを変たいと考えています。この場合、単純にTimerコントロールでは
制御できないと思いますが、どうしたらよいでしょうか。

コードは、例えばこんな感じです(だいぶ簡略化してありますが)

Private Sub Button1_Click(省略)
Dim Sample As New Button()
Sample.Text = "YES"
Sample.Location = New Point(xxx, xxx) ←Button1をクリックするごとに位置が変わるようにしています
Call Button_Text_Change(Sample)
End Sub

Private Sub Button_Text_Change(ByVal sample As Button)
Me.Controls.Add(Sample)
ここに、一定時間後にボタンのラベルを「NO」などに変えるコードを入れたいのです
End Sub

よろしくお願いします

11 :デフォルトの名無しさん:2008/09/30(火) 13:19:41
>>8
外部(VBプログラム)から直接クリスタルレポートのテキストボックスに値を入れるのではダメ?

12 :デフォルトの名無しさん:2008/09/30(火) 16:41:29
>>11
お返事ありがとうございます
項目がすごく多いので出来るだけクリスタルレポート上でやりたいと思っているのです

13 :デフォルトの名無しさん:2008/09/30(火) 16:54:30
>>10
Timerを毎回NewしてAddHandlerでイベントハンドラ登録
TimerのTagにでもButtonを設定しとく
ハンドラでsenderをTimerにキャストしてTagとってきて適当に操作

14 :デフォルトの名無しさん:2008/09/30(火) 20:33:28
>>10
何が聞きたいのか明確に書かないと
まともな人にほど回答して貰えないと思うけど。

っていうか、君がコードが書けない事と明確な文章が書けない事は
間違いなく根底で繋がっていて、同じ理由だろう。

15 :デフォルトの名無しさん:2008/09/30(火) 22:50:40
.NETで作成したユーザーコントロールをMicrosoft Accessのフォームに貼り付けて使う方法ってありますか?


16 :デフォルトの名無しさん:2008/10/01(水) 00:03:26
>>15
IE には貼れる。から、貼れるんじゃないかな。
COM で公開して試してみれば?

17 :11:2008/10/01(水) 01:02:18
>>12
解決になるかはわからないけど
縦に出力されるのを
横に出力する方法があったと思う
それをうまい事組み合わせれば何とかならないかな

http://www.hirano.cc/crystalreports/report_yoko.html

18 :デフォルトの名無しさん:2008/10/01(水) 22:00:55
Direct Showに関して質問があります.

VB.net2005でDirect Show を使用し動画から音声を抽出→音声波形を作成
ということをしたいのですが,どのようにしたらよいのでしょうか?
Direct Showの使い方もわからず,教えていただけないでしょうか?

19 :デフォルトの名無しさん:2008/10/02(木) 01:01:28
誘導
DirectShowと戦うスレ Part 4
ttp://pc11.2ch.net/test/read.cgi/tech/1214127501/

20 :デフォルトの名無しさん:2008/10/02(木) 02:01:24
>>19

ありがとうございます.すれ違いすいませんでした.

21 :デフォルトの名無しさん:2008/10/02(木) 06:46:34
>>13
遅レスすいません。お返事ありがとうございました。
なんとかなりそうな感じです・・・助かりましたm(_ _)m

22 :デフォルトの名無しさん:2008/10/02(木) 12:13:51
>>14
こういう奴って社会人になって、何も知らない客先からの
要求や質問になんて答えるんだろうな。

23 :デフォルトの名無しさん:2008/10/02(木) 19:19:05
客w

24 :デフォルトの名無しさん:2008/10/02(木) 19:31:34
というか、普通は(というかまともな社会人なら)客ならなおさら
要件は明確にしてもらうと思うけど。

日本はまだその辺り、意味不明な要件でも適当に忖度して想像で補完することが
親切だと勘違いしてる馬鹿が多くて困るね。

25 :デフォルトの名無しさん:2008/10/02(木) 21:26:42

!! <これは> 断 固、追及 す る べ き だ ぞ ! <絶対だ!> !!

 バカ麻生の年金全額税方式は、官僚による、年金基金を全額食い
    潰してゼロにしてしまおうとする、大謀略だった !!!
                        ~~~~~~~~
                   ↓↓↓↓↓↓↓↓↓
                   ↓↓↓↓↓↓↓↓↓

  http://namidame.2ch.net/test/read.cgi/seiji/1202735334/

           ↑↑↑↑↑↑↑↑↑
           ↑↑↑↑↑↑↑↑↑
          この超、大、欺瞞!!!を、俺らが赦していいのか??!!!

        なぜ自民党の議員どもが、年金のことになると官僚の味方をして

   「消費税」 を上げて社会福祉だなどと煙に巻いてきたのか!?!? しっかり理由があったのだ!!!

  それは、この食いつぶされてしまってきた年金の破綻が明るみに出る前に消費税を上げてしまうことで

 官僚に食われてしまってもう残りがないのが明るみに出るのを隠すためだった !!! 

官僚とバソオ猿メらが共謀し、この誤魔化し消費税上げ策謀をごり押ししてしまおうとしてきたのだ!!!

     !!!!!!!!!!!!!!!!!!!!!!!

  !!!!!!!!!!! ここで騙されてはならんぞ !!!!!!!!!!!!!!

       !!!!!!!!!!!!!!!!!!!!!!!!!!

26 :デフォルトの名無しさん:2008/10/02(木) 21:33:18
コピペ君って馬鹿だな、まで読んだ。

27 :デフォルトの名無しさん:2008/10/02(木) 22:21:20
要件を明確にするために、仕様書に書いてあることが
分からなければ、掘り下げるなり想定したりするだろ普通

28 :デフォルトの名無しさん:2008/10/03(金) 13:48:53
tr = コネクション.BeginTransaction()
で作ったトランザクションの状態をを調べる方法ってありますか?

コミットやロールバックした後に状態を調べて再度トランザクション状態にしたい場合や
2度BeginTransactionを実行したりとかを避けたいのですが

VB6のトランザクション処理と多少使い勝手が違うので混乱しています


29 :デフォルトの名無しさん:2008/10/04(土) 15:07:56
メール受信とかってできますか?

30 :デフォルトの名無しさん:2008/10/04(土) 17:52:25
>>29
POP なりを実装

31 :デフォルトの名無しさん:2008/10/04(土) 18:56:00
あまりにも質問が簡単すぎましたw

1、メールを受信(サーバーのメールは削除しない)
2、特定のアドレスのメールだけを受信し本文中のアドレスを抽出。(http・・・・など)
3、複数の違うアドレスを一定時間間隔で開いていく。このときブラウザで特定の文字が確認できたら
  タブを閉じる。

こんなことできますか?1ヶ月ぐらいまえに本を買ってとりあえず本に沿って計算機と透明にできるメモ帳なるものを
作ってみました。その程度のスキルなのですが。

この場合、ヘルプでメール受信などで検索してソースをゲットしてやってくのがいいのかなー?
あまりに何もしらなすぎてどこから始めていいかまったく分かりません。('A`)

32 :デフォルトの名無しさん:2008/10/04(土) 18:58:26
>>31
できます

33 :デフォルトの名無しさん:2008/10/04(土) 18:58:42
>>31
とりあえずここ読んだら?
http://dobon.net/vb/dotnet/internet/receivepop3mail.html


34 :デフォルトの名無しさん:2008/10/04(土) 23:44:57
>>28
フラグとかで管理するのはだめ?

dim btrflg as boolean = false
dim bcmtflg as boolean = true
dim sSQL as string = ""
try
コネクション.BeginTransaction
btrflg = true

'SQLを実行
sSQL = "UPDATE ・・・"
if hoge.excute < 1 then
bcmtflg = false
end if

  'SQLを実行
  sSQL = "INSERT ・・・"
if hoge.excute < 1 then
bcmtflg = false
end if
catch
finally
if btrflg = true then
if bcmtflg = true then
hoge.Commit
else
hoge,Rollback
end if
end if
end try


35 :デフォルトの名無しさん:2008/10/05(日) 05:08:29
質問させて頂きます。
現在、データベースの値をデータセットに格納する部分のロジックを作成しているのですが、以下のコードでは★部分でコケてしまいます。
---
Dim DataSet As DataSet = New DataSet()
Dim adapter As New OdbcDataAdapter()
Dim myCon As OdbcConnection

myCon = New OdbcConnection("DSN=" & dsn & ";UID=" & uid & ";PWD=" & pwd)
adapter.SelectCommand = New OdbcCommand("SELECT fieldname FROM datatable WHERE dataID = '12345678'", myCon)
myCon.Open()
adapter.Fill(DataSet) '←★
---
色々調べてみたところ、上記ロジックのSQL文で"fieldname "の格納データサイズが3409バイトを超えた場合にコケている事がわかりました。
試しに、OdbcDataAdapterではなくOdbcCommandのExecuteReaderを使用してみたの
ですが、やはり★部分でコケてしまいます。
---
Dim myCommand As New OdbcCommand
Dim reader As OdbcDataReader
myCommand = New OdbcCommand("SELECT fieldname FROM datatable WHERE dataID = '12345678'" myCon)
reader = myCommand.ExecuteReader()
Do While (reader.Read())
reader.GetValue(0) '←★
Loop
---
エラーメッセージは、いずれも「OdbcExceptionはハンドルされませんでした。」です。
以上より、SQL文を発行した結果を参照する際にデータが特定のサイズ(3409バイト?)を超えると参照できないように見えるのですが、そのような認識で間違いないでしょうか?
また、そうであれば、PG側でこれを回避する案を教えていただけないでしょうか?

開発環境:WindowsXP VS2005 VB.NET
DBサーバ環境:Windows2003Server SQLServer2005

長文になりまして申し訳ありません。宜しくお願い致します。

36 :デフォルトの名無しさん:2008/10/05(日) 17:07:06
こんにちは、只今だいぶ困っている状態でしてよろしければお力をお貸しください。

VB2005を使用して別のページにパラメータを渡すWebページを作成しております。
現在はjavascriptを使用して以下のように書いてあります
(ソースを見れる状態ではないので細部が異なっているかもしれません)

Dim prm1,prm2,Str As String

・・・・・・・・

Str = "<script type="text/javascript">"
Str = Str & "window.open("別ページのURL?パラ1=" & prm1 & "&パラ2=" & prm2)
Str = Str & "</script>"

Response.Write(Str)

すると別ページで渡された値がDBにInsertされるようになっていて、
「処理が完了しました」の画面が表示されます。
この別ページの内部がどのようになっているかはわからない状態です。

これを、(完了しましたの)画面を表示させないでページの処理(Insert)だけを行えるように変更しなければならないのですが、
検索してもうまい方法が見つかりませんでした。
方法をご存知の方、参考になるサイトを教えて頂ける方がいらっしゃいましたら、
どうかよろしくお願いします。
別ページのソースは完全に手を出せない状態です


37 :デフォルトの名無しさん:2008/10/05(日) 17:07:11
>>34
アリガトンです
やっぱフラグとか基本で行くしかないですかね…

「今コネクションがトランザクション状態にある」
とか取得できれば楽なんですが
そういうプロパティもなさそうなんですよね…

もう少し試行錯誤してみます<(_ _)>

38 :デフォルトの名無しさん:2008/10/05(日) 17:24:57
>>36
バックグラウンドでリクエストを投げればいいんじゃね?

39 :デフォルトの名無しさん:2008/10/05(日) 17:26:10
javascriptからリクエスト投げなきゃ無理じゃない?
フレームとかで隠すっつのもやらない方がいいだろうし。
どっちにしても同一ドメインじゃないと無理だと思うがどうだっけ?


40 :デフォルトの名無しさん:2008/10/05(日) 17:36:55
>>35
とりあえずSystem.Data.OdbcじゃなくてSystem.Data.SqlClient名前空間の
クラスを使うように変更したら結果は変わるかも

>>37
トランザクションが終了するとTransactionのConnectionプロパティはNothingになると思う

41 :デフォルトの名無しさん:2008/10/05(日) 18:17:32
超初心者の質問なんですがVB.NETはどうやって入手するんですか?
あと.NET Frameworkとの違いを教えてください。
そのほか超初心者になんか教えてくださることあったら教えてください。




42 :デフォルトの名無しさん:2008/10/05(日) 18:38:54
>>29
baspを使う

43 :デフォルトの名無しさん:2008/10/05(日) 18:39:34
>>38 >>39
ありがとうございます、あんまりピンと来ないので今から検索してみますね

44 :デフォルトの名無しさん:2008/10/05(日) 18:41:59
>>41
買え。もしくは、Express Edition をダウンロード。

.NET Framework はフレームワーク。VB.NET はその上で開発するためのツール。

45 :デフォルトの名無しさん:2008/10/05(日) 18:57:07
>>41
お前は超初心者だからそんなことはとっくに知っているはずだ、思い出せ
そして醜く地べたを這いずる他の連中との違いを見せつけてやれ

46 :31:2008/10/05(日) 19:35:24
いろいろ見てみましたが、私みたいな初心者には難しいみたいですね。
とりあえず適当にもっと簡単なものからやっていこうと思います。m(_ _)m

47 :デフォルトの名無しさん:2008/10/05(日) 21:02:02
>>40
35です。
確かにSqlClientを使用することで回避できました!
なぜOdbcだと駄目だったんでしょうか・・・?

48 :デフォルトの名無しさん:2008/10/05(日) 22:01:37
VB6で、MAPIコントロールをつかってるんですけど
.Netに該当するものは何ですか?

49 :デフォルトの名無しさん:2008/10/05(日) 22:02:22
>>48
ありません。

50 :デフォルトの名無しさん:2008/10/05(日) 22:47:37
木状的収集容器不在?

51 :デフォルトの名無しさん:2008/10/05(日) 23:04:53
>>50
shenmayisia?

52 :デフォルトの名無しさん:2008/10/05(日) 23:20:09
System.Xml

53 :デフォルトの名無しさん:2008/10/06(月) 01:06:17
>>28
トランザクションなんて使い捨てじゃない?
ようするに2度〜なんて設計自体がよろしくないかと。

それでも使うなら、CloseしたあとにNothingで初期化しとけば
あとから使うときの判断材料になるかと。


54 :デフォルトの名無しさん:2008/10/06(月) 12:09:26
Dim dr As Data.DataRow()
Dim dr As Data.DataRow
の違いは何ですか?

55 :デフォルトの名無しさん:2008/10/06(月) 12:13:49
前者は配列

56 :デフォルトの名無しさん:2008/10/06(月) 12:21:57
ありがとうございます。

Dim dt As New Data.DataTable()
Dim dt As New Data.DataTable
これも前者は、配列という事でよろしいですか?

57 : [―{}@{}@{}-] デフォルトの名無しさん:2008/10/06(月) 12:28:19
文法勉強せい

58 :デフォルトの名無しさん:2008/10/06(月) 12:35:29
はい。勉強する為に、ここに来ました!
メール欄は焼き鳥ですか?

59 :デフォルトの名無しさん:2008/10/06(月) 13:13:38
いいえfusianasannです

60 :デフォルトの名無しさん:2008/10/06(月) 16:50:08


61 :デフォルトの名無しさん:2008/10/06(月) 16:59:04
>>56 の違いを勉強できるサイトがあったら教えてください。
勉強してきます。

62 :デフォルトの名無しさん:2008/10/06(月) 17:25:52
なんでマニュアルを読まんのだ…

63 :デフォルトの名無しさん:2008/10/06(月) 21:08:43
>>61
そういうものだと思って使うのが一番手っ取り早いwwwww

64 :デフォルトの名無しさん:2008/10/06(月) 21:10:22
>>61
VB中学校 でググれカス

65 :デフォルトの名無しさん:2008/10/06(月) 21:22:42
Data.DataRow()とData.DataRowはそもそも違う型なんだよ
書き方が似てるだけ

66 :デフォルトの名無しさん:2008/10/06(月) 22:46:53
まずはMSDNのリファレンスマニュアルを見ればいいんじゃ?


67 :デフォルトの名無しさん:2008/10/06(月) 22:48:07
ちなみに俺だったら

Dim dr() As Data.DataRow
Dim dr As Data.DataRow

こう書くな。紛らわしいから。


68 :デフォルトの名無しさん:2008/10/06(月) 23:22:52
聞きたかったのは
Dim dt As New Data.DataTable()
Dim dt As New Data.DataTable
の方です。

69 :デフォルトの名無しさん:2008/10/06(月) 23:25:27
本来の意味から考えると>>67よりも>>68の書き方のほうが自然なんだよ
Data.DataTable()は「Data.DataTableの配列」を表す「型」なの

70 :デフォルトの名無しさん:2008/10/06(月) 23:29:59
>>67ってVBのなごりでしょ?

71 :デフォルトの名無しさん:2008/10/06(月) 23:30:47
>>69
違うだろ。コンストラクタなんだから。

72 :68:2008/10/06(月) 23:35:26
ああほんとだ、見間違えた
Dim dt As Data.DataTable = New Data.DataTable()の省略形

73 :デフォルトの名無しさん:2008/10/06(月) 23:38:33
>>68
VBは()を省略出来るという悪習がある。
そしてややこしいのは配列の定義にも()を使うということ。
こっちは省略するとまったく意味が異なる。
その2つはどっちも同じだが上のほうを使うことをお勧めする。

本来はこんな感じで覚えたほうがいいかもしれない。応用が利くと思うよ。
Dim dt As Data.DataTable = New Data.DataTable()


74 :デフォルトの名無しさん:2008/10/06(月) 23:41:43
C#でもオブジェクト初期化子やコレクション初期化子を使うときは
コンストラクタの()は省略できるようになったんだけどね

75 :デフォルトの名無しさん:2008/10/06(月) 23:53:14
Dim dr As Data.DataRow()
の()は配列の意味で
Dim dt As New Data.DataTable()
の()はコンストラクタの意味になる

VBだとコンストラクタの()を省略できるから
Dim dt As New Data.DataTable()
Dim dt As New Data.DataTable
は同じ意味になる

Dim dt As Data.DataTable = New Data.DataTable()
今後は、こうゆうふうな書き方をしていった方がよい。

という事ですね。
ありがとうございました。

76 :デフォルトの名無しさん:2008/10/06(月) 23:55:39
別にちゃんと理解して使うならAs Newでもいいと思うよ
VB9ならOption Inferで型推論でもいいかな

77 :デフォルトの名無しさん:2008/10/06(月) 23:57:07
ゆるいのがVBのいいところなんだろうけど
他の言語から来たら戸惑うよな

78 :デフォルトの名無しさん:2008/10/07(火) 10:39:39
ダブルクォーテーションを文字列として扱う場合は
""""で良いんでしょうか?

79 :デフォルトの名無しさん:2008/10/07(火) 10:45:36
すいません。vb.netでExcelをコピー、編集して出力しているのですが、
元のシートに貼り付けてあるバーコードが編集後のシートではうまく
機能しません。(Excelのバージョンは2007です)

ちなみにバーコードそのものはいじらずにリンクしてあるセルの内容を変えているの
ですが、それが反映されず、右クリックしてもメニューにバーコードコントロール9.0
というのが出なくなり、プロパティを実行してもバーコードのプロパティも
出てこなくなりました。


80 :デフォルトの名無しさん:2008/10/07(火) 20:42:03
パターン1とパターン2って書き方が違うだけで同じことなの? それとも違いがある?
コンストラクタ内で初期化した方がいい?

パターン1
Public Class AAA
 private field1 As CCC = new CCC()

 Public Sub New()
  
 End Sub
End Class


パターン2
Public Class AAA
 private field1 As CCC

 Public Sub New()
  field1 = new CCC()
 End Sub
End Class


81 :デフォルトの名無しさん:2008/10/07(火) 20:56:19
>>80
同じと考えていい。
フィールドでの初期化はコンストラクタより先に処理される。
継承がある場合、継承もと(親)のコンストラクタより優先して継承先(子)を含む
すべてのフィールドが初期化される。これはjavaと動作が異なる。
javaの場合は継承もとのフィールドから継承もとのコンストラクタ、
続いて継承先のフィールドから継承先のコンストラクタの順となる。

82 :デフォルトの名無しさん:2008/10/07(火) 22:11:05
クリスタルレポートで、動的にフォントサイズを変更するってできますか?
エクセルの「縮小して全体を表示」のような動作を希望してるのですが、
該当フィールドのフォントサイズの横のX2ボタンで式エディタに記載すると思うのですが、


83 :デフォルトの名無しさん:2008/10/07(火) 22:38:32
これで良いのかな?
if (length({tblname.item}) > 20) then 9
else
if (length({tblname.item}) > 10) then 10
else 11


84 :デフォルトの名無しさん:2008/10/07(火) 23:50:46
>>78
YES

85 :デフォルトの名無しさん:2008/10/08(水) 21:20:17
>>81
ありがとう

86 :デフォルトの名無しさん:2008/10/08(水) 22:53:46
VB6 を VB.NET に変換する際にコードの修正量をできるだけ減らしたいんだが
DataRowに格納されているフィールドの値を取得、設定するときに Value プロパティを
経由して実行したい。
良い方法はありませんか。(欲を言えば、ValueプロパティがあってもなくてもOKにしたい)

Class ResultSet
 Private table as DataTable
 Private currentIndex as Integer
 
 〜〜省略〜〜
 
 Function Fields(ByVal fieldIndex as Integer) As Object
  Return table.Rows(currentIndex).Item(fieldIndex)
 End Function
 
End Class


現状
Dim result as ResultSet

result.Fields(0) = value
value = result.Fields(0)


理想
Dim result as ResultSet

result.Fields(0).Value = value
value = result.Fields(0).Value



87 :デフォルトの名無しさん:2008/10/08(水) 23:10:18
Valueプロパティを持ったクラスでラップして返す
Object型からのWidening Operatorも実装すればValueプロパティを省略できる

88 :デフォルトの名無しさん:2008/10/08(水) 23:13:41
ピロシキ

89 :デフォルトの名無しさん:2008/10/09(木) 17:08:55
トランザクションの事で質問です
SQLサーバーのスレで聞くべきなのかもしれないのですが
VB2005で開発しているのでこちらで質問させていただきます

PC1からトランザクションをかけてロックしたDBをPC2から参照したときに、
DBがトランザクションでロックされているという状態を知る方法はありますか?

今はタイムアウトでメッセージを出しているのですが
60秒待たないといけないので一瞬でロック中を表示して
ユーザーに処理を待つようなメッセージを出したいと思ってます



90 :デフォルトの名無しさん:2008/10/09(木) 17:42:42
@IT:SQL Serverで「デッドロック」を回避する
http://www.atmarkit.co.jp/fnetwork/rensai/sql28/sql1.html

91 :デフォルトの名無しさん:2008/10/09(木) 18:11:54
>>90
早速ありがとうございます
これを見て対応してみたいと思います

92 :デフォルトの名無しさん:2008/10/09(木) 22:46:58
Dim resultSet As Dynaset = new Dynaset
Dim code As String
code = result.Fields("code").Value
result.Fields("code").Value = "1010"

Public Class Dynaset
 Public table As DataTable
 〜〜省略〜〜
 Public ReadOnly Property Fields(ByVal name As String) As Field
  Get
   Return New Field(table.Rows(0).Item(name))
  End Get
 End Property
End Class

Public Class Field
 Private _object As Object
 Public Sub New(ByRef obj as Object)
  _object = obj
 End Sub
 Public Property Value() As Object
  Get
   Return _object
  End Get
  Set(ByVal Value As Object)
   _object = Value
  End Set
 End Sub
End Class

93 :デフォルトの名無しさん:2008/10/09(木) 22:48:40
>>86
>>92 のようなソースを書いてみたんだけど、値は取得できるけど、値を設定してみても更新されない
FieldクラスのコンストラクタにDataRowとカラム名を渡して、
ValueプロパティでDataRow.Item(カラム名)に値をセットすると更新される
この2つの違いがわかりません。

94 :デフォルトの名無しさん:2008/10/09(木) 23:19:25
>>93
値渡しをしているから・・・かな?
勘違いをさせてしまう言い方だが、

>Public Sub New(ByRef obj as Object)
>  _object = obj
>End Sub
ここではなく

>Return New Field(table.Rows(0).Item(name))

ここのtable.Rows(0).Item(name)の時点で参照ではなくなっていると思う。

FieldクラスはDataRow と name を受け取るクラスにしなくちゃいけないかも?


95 :デフォルトの名無しさん:2008/10/09(木) 23:51:48
>>94
なるほど、ありがとうございます。
DataRow と name を受け取る方向で、いろいろテストしてみます。

96 :デフォルトの名無しさん:2008/10/09(木) 23:53:08
遠隔地のカメラから画像をPC内に取り込み、動画データとして保存する
プログラムを作成しています。ちなみに VB.NET2005

画像をダウンロードし、1秒に1枚〜2枚のデータを保存することが
できたのですが、それを動画に変換する方法が分かりません。
たぶん難しいと思いますが、ヒントなどを頂ければ、助かります。

非常に難しいようならば、複数のjpeg画像をaviなどの動画ファイルに
変換する、コマンドラインタイプのフリーソフトなんかでもいいのですが、
なにかないのでしょうか?

97 :デフォルトの名無しさん:2008/10/10(金) 11:34:48
DataGridViewでDataBindingを使っているのですが、
DBの設計とUIに食い違いがあるときはどうするのが定石でしょうか?
例えば、DBではdatetime型だけど、画面上は和暦で表示し
元号をコンボボックスで選択、年月日はテキストボックスで入力したい
というような場合です。

98 :デフォルトの名無しさん:2008/10/10(金) 11:35:31
vfw api でぐぐってみるといい

99 :デフォルトの名無しさん:2008/10/10(金) 11:37:43
>>97
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/034wareki/wareki.html

100 :デフォルトの名無しさん:2008/10/10(金) 11:48:47
>>97
ありがとうございます。
でも、わからないのは和暦西暦の変換方法ではなく、この変換処理を
どこに挟めばいいのかということなんです。

現在は単純に
da.Fill(ds)
dgv.DataSource = ds.Tables(0)
としているのですが、これだとdgvの列が自動生成されてしまいますよね。
dsに和暦を保持するための列を作って画面にはそちらを表示し、
もともとあった西暦の列は隠してしまう。
そしてda.Fillとda.Updateの直前に相互に変換すればいいでしょうか?

101 :デフォルトの名無しさん:2008/10/10(金) 12:03:58
いや、自動生成の列は使用せずに、表示する列はすべて作成する。
んで、その中の日付表示する列のDefaultCellStyleプロパティの中のFormatメンバ
に表示フォーマットを
{0:ggyy年M月d日}
という監事で設定すればOK

102 :デフォルトの名無しさん:2008/10/10(金) 14:14:51
vb.net 2005使ってます。TextBoxの事で質問があります。
MultiLine=falseなテキストボックスの高さとパディング?(右余白)を変更したいのですが、
可能でしょうか?

MSDNを調べると、Windows.ControlsにはPaddingっていううってつけのプロパティ
があったので、

TextBox1.Padding = New Padding(30)

こんな感じのコードをLoadなりに書いているのですが、反映されていない感じです。

テキストボックスの高さはフォントサイズとパディングの調整でなんとかならないか
期待しています。

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

103 :デフォルトの名無しさん:2008/10/10(金) 14:25:26
高さはAutoSize = Falseなら普通にHeightとかで設定できる
左右の余白はEM_SETMARGINSが必要かな
上下の余白は……なんかあったっけ

104 :デフォルトの名無しさん:2008/10/10(金) 14:28:27
>>103
AutoSize = false ですかorz
早速確認してみます

#VB.NET初めて1ヶ月・・・はまりまくりですorz

105 :97:2008/10/10(金) 14:57:07
>>101
ありがとうございます。確かに和暦で表示はできたのですが、本来の要求は

>DBではdatetime型だけど、画面上は和暦で表示し
>元号をコンボボックスで選択、年月日はテキストボックスで入力したい

なのです。この方法だと表示は和暦になりますが、編集するときも
「昭和」などと入力しなくてはならず、非常に不便ですよね。

DBとDataGridViewでデータをやりとりする間に変換処理をはさむ
のがいいかと考えていたのですが、もしかしたら
DataGridViewCellとDataGridViewColumnを継承して独自のコントロールを
作ってしまった方が早いでしょうか?

106 :デフォルトの名無しさん:2008/10/10(金) 15:07:44
わが君は千代に八千代に さざれ石の、いわおとなりてこけのむすまで

和暦のプログラムがあるたびに、頭の中で国家がループする

107 :デフォルトの名無しさん:2008/10/10(金) 15:54:03
>>105
まあ、カスタムコントロール作ったほうが早かな。

カスタムコントロールを作らないでやる方法は、
データ取得のSELECT文を日付部分の列を2つにして取得するように修正し、
ひとつをコンボボックスの列、もうひとつを日付のテキストボックスにする。
この2つの列はもちろん隣同士にしておき、
ttp://dobon.net/vb/dotnet/datagridview/ownerdrawcell.html
このページを参考に
年号が左、日付が右であるとすれば日付の(右側の列の)CellPaintingイベントにて
年号の列の部分も合わせた幅および位置で描画を行えばヘッダが結合されたように描画できる。
デフォルトの(ビジュアルスタイルでの)ヘッダーを描画する場合は、VisualStyleRendererを使用してHeader.Item.Normalというエレメントを描画すればOK。
あとは、更新時に、2つ列のデータからDatetimeに変換してUPDATEすればいいんじゃね?

108 :デフォルトの名無しさん:2008/10/10(金) 23:00:03
教えてください。

FormのWidthが123より小さく出来ません。
なんとかならないでしょうか?


109 :108:2008/10/10(金) 23:08:57
108です
FormBorderStyle = Noneで123以下にしたいのです。お願いします。

110 :デフォルトの名無しさん:2008/10/10(金) 23:10:58
>>109
Min なんたらとかってプロパティがない?

111 :デフォルトの名無しさん:2008/10/10(金) 23:11:21
windows 2003 サーバーにアクセスする時
XP以降から VB6 のEXEだといちいち確認メッセージがでるのですが
これって何とかなりませんか?


112 :108:2008/10/10(金) 23:31:26
>>110
上手く行きました。どもっす。

113 :デフォルトの名無しさん:2008/10/11(土) 01:49:17
>>111
詳しくは知らんけど、コンパネ→管理ツール→.NETflamework1.1ウィザード
の.NETセキュリティあたりを適当にいじってみる

114 :デフォルトの名無しさん:2008/10/11(土) 01:50:30
ごめんVB6ってかいてあったわw

115 :デフォルトの名無しさん:2008/10/11(土) 01:52:35
最低だなお前
こんな時間にすげえムカついた

116 :デフォルトの名無しさん:2008/10/11(土) 12:51:06
VS2005にてスプラッシュ・スクリーンを既存のWindowsFormプ
ロジェクトに入れようと思い、ソリューションエクスプローラーの上で

右クリック⇒追加⇒新しい項目⇒新しい項目の追加ウィンドウ

が表示され、通常であれば「Visual Studio にインストールされたテンプレート」
という部分に「スプラッシュスクリーン」が表示される筈なの

ですが表示されなくなりました。(以前は表示されていました。)
どうすれば再び表示する事が出来るのでしょうか?


117 :111:2008/10/11(土) 21:56:03
>>113
すんません。スレ位置違いで投稿してしまいました。
それでも参考になります。
ありがとうございました。


118 :デフォルトの名無しさん:2008/10/11(土) 22:18:25
VB.netでエクセルマクロいじくることってできます?
参照で追加しなきゃいけないライブラリとか参考になるサイトとか教えて下さい

119 :デフォルトの名無しさん:2008/10/11(土) 22:20:53
>>118
http://support.microsoft.com/default.aspx?scid=kb;ja;303872

120 :デフォルトの名無しさん:2008/10/11(土) 22:56:39
Count とかって、メソッドで定義してる人もいれば Function で定義してる人もいるけど、
ReadOnly Property と Function って、どう使い分ければいいの?

121 :デフォルトの名無しさん:2008/10/11(土) 22:57:01
さんくす


122 :デフォルトの名無しさん:2008/10/11(土) 23:05:17
CountならFunctionだろう。動詞なんだから。
例えば配列のLengthはプロパティだな。名詞なんだから。

123 :デフォルトの名無しさん:2008/10/11(土) 23:11:04
Countには名詞用法もあるが

124 :デフォルトの名無しさん:2008/10/11(土) 23:15:59
.NETでCountはたいがいプロパティだな

125 :デフォルトの名無しさん:2008/10/11(土) 23:29:21
If foo.Property() = foo.Property() Then
は真となることが望ましいが
If foo.Function() = foo.Function() Then
はわからんぞとか

繰り返し実行するのがためらわれるコストの高い処理が含まれるなら
ReadOnly Property じゃなくて Function にしろや

などというガイドラインがあった気がする。

126 :デフォルトの名無しさん:2008/10/11(土) 23:31:56
プロパティのgetで例外投げちゃダメとかもあったな

127 :デフォルトの名無しさん:2008/10/11(土) 23:39:01
>>120
そのあたりはフィーリングで決めればいいんじゃないの?

要は「それ」をオブジェクトの属性と考えたほうが分かりやすいのならプロパティにすべきだし、
オブジェクトの動作の結果の取得と考えたほうが分かりやすいならメソッドにすべきなんだろうけど、
実際はそのどちらなのか判断に迷う場合も少なくないから。

例えばゲームポートを集約するようなGamePortsクラスを作ったとして、システムに接続されている
ゲームコントローラの数は、スキャンという動的な動作の結果なんだからメソッドにすべきだという
考え方もありうるし、クラスの意味から考えればそれは状態の一つだからプロパティに
すべきって考え方もありうる。(まあ普通は前者だろうけど)

ちなみにCountならプロパティの方が普通だろう。

128 :デフォルトの名無しさん:2008/10/11(土) 23:39:07
VB5くらいの時代だったが、
今と同じく上位エディションにはクリスタルレポートがバンドルされていて、
印刷開始の命令が、Actionプロパティに1をつっこむというものだった。
当時でもこりゃないぞと思ったよ(笑

129 :デフォルトの名無しさん:2008/10/12(日) 00:23:15
>>120-127
ありがとう、参考になりました。


130 :116:2008/10/12(日) 21:15:39
誰か詳しい人教えて下さい。


131 :デフォルトの名無しさん:2008/10/12(日) 21:21:11
>>130
再インストール

132 :デフォルトの名無しさん:2008/10/12(日) 21:54:21
>>131
それしか無いんでしょうか?

っていうかなんで急にスプラッシュスクリーンがテンプレートに表示されなくなったか分かりません。。。

そーいえば、Ajaxの何かをインストールしてからおかしくなったかも。。。

Atlasの何たらをインストールしたのが原因かもしれません。

133 :デフォルトの名無しさん:2008/10/13(月) 01:06:21
VS2005+Ajaxは何度かインストールしたけど
そんな症状は起きたことありません。

134 :デフォルトの名無しさん:2008/10/13(月) 08:37:53
VB.NetでノートPCのタッチパッドを無効にする方法はありませんか?

135 :デフォルトの名無しさん:2008/10/13(月) 09:49:27
>>134
デバイス依存だろうから無理っぽい。
マウスを殺すくらいのことならできるけど。(それでも、グローバルには無理)

136 :デフォルトの名無しさん:2008/10/13(月) 13:34:48
初歩的な質問で申し訳ないです

ある動作の経過時間を00:00:00形式で1秒ごとにカウントさせたいのですが
どのように記述したらよいでしょうか?

イメージとしては、電話の通話時間のように
・通話開始ボタン→常に00:00:00からカウント
・通話終了ボタン→カウント終了し、値を残しておく
としたいです

137 :デフォルトの名無しさん:2008/10/13(月) 13:42:46
0で初期化
00:00:00 形式で表示
経過秒を保存

ってだけだろ?w 何がわからないのか整理してみろよ

138 :デフォルトの名無しさん:2008/10/13(月) 13:45:12
そのレベルのことができないということは、
プログラムなんて何も書けないことと同義じゃないのか?

139 :デフォルトの名無しさん:2008/10/13(月) 13:48:53
>136
コピペプログラムだけど、こんな感じでどう?



SUB MAIN ()
Dim t1 As Integer
t1 = System.Environment.TickCount

<---処理--->

t1 = System.Environment.TickCount - t1

'かかった時間を表示
Console.WriteLine(TIME_TR)

END SUB

Function TIME_TR()
Dim H_TIM As Integer
Dim M_TIM As Integer
Dim S_TIM As Integer
H_TIM = ToRoundDown((t1 / 1000 / 3600), 0)
M_TIM = ToRoundDown(((t1 / 1000) - H_TIM * 3600) / 60, 0)
S_TIM = ToRoundDown((t1 / 1000) - H_TIM * 3600 - M_TIM * 60, 0)
TIME_TR = H_TIM & ":" & M_TIM & ":" & S_TIM
End Function



140 :デフォルトの名無しさん:2008/10/13(月) 13:49:50
Function ToRoundDown(ByVal dValue As Double, ByVal iDigits As Integer) As Double
Dim dCoef As Double = System.Math.Pow(10, iDigits)
If dValue > 0 Then
Return System.Math.Floor(dValue * dCoef) / dCoef
Else
Return System.Math.Ceiling(dValue * dCoef) / dCoef
End If
End Function

141 :デフォルトの名無しさん:2008/10/13(月) 13:53:34
VBな人って時間の計算好きだよね
素直にTimeSpan使え

142 :デフォルトの名無しさん:2008/10/13(月) 13:57:15
>141
TimeSpanは、24時間以上は使えないような気がする。

143 :デフォルトの名無しさん:2008/10/13(月) 14:00:24
>141
24時間以上も使えたみたいです。
失礼しました。

144 :デフォルトの名無しさん:2008/10/13(月) 14:08:30
>>137
センスが無さ杉。
死んだ方が良いよ。
氏ねじゃなくて、死ねだからね。

145 :デフォルトの名無しさん:2008/10/13(月) 14:13:37
TimeSpanは1刻みが100nsで内部形式がInt64だから
最大約10^19[100ナノ秒]≒10^7[日]くらいか

146 :デフォルトの名無しさん:2008/10/13(月) 14:30:15
>>144
センスって何?

問題の切り分けができないやつは、プログラマに向いてないよ。

147 :デフォルトの名無しさん:2008/10/13(月) 18:14:56
>>139-140
それはない

148 :デフォルトの名無しさん:2008/10/13(月) 20:24:21
質問です

IsDate(Oct-08/512)
↑VB2008では何を返しますか?

個人的にはすごくFalse返してほしいんだけどTrue返してくる

149 :デフォルトの名無しさん:2008/10/13(月) 20:26:06
>>148
たぶん、コンパイルエラー

150 :デフォルトの名無しさん:2008/10/13(月) 20:27:51
>>149
まーじでー
ちょっと見直してくるわ

151 :デフォルトの名無しさん:2008/10/13(月) 20:28:22
IsDate("Oct-8" / 512)

だと、実行時エラー(InvalidCastException)

152 :デフォルトの名無しさん:2008/10/13(月) 20:31:31
あぁw
ごめ
IsDate("Oct-08/512")
かな

153 :デフォルトの名無しさん:2008/10/13(月) 20:35:35
True

ちなみに、0512/10/08 0:00:00 に変換される

154 :デフォルトの名無しさん:2008/10/13(月) 20:37:06
>>153
なるほど!
ありがと〜〜

155 :デフォルトの名無しさん:2008/10/13(月) 20:43:00
それとデバッグ中にフォームサイズ変更しようとするとVB2008ごと落ちるのは前バージョンからですか?

156 :デフォルトの名無しさん:2008/10/13(月) 20:44:33
>>155
別に落ちないけど?

157 :デフォルトの名無しさん:2008/10/13(月) 20:46:20
あ、デバッグ中のアプリじゃなくてデザインの方です〜

158 :デフォルトの名無しさん:2008/10/13(月) 20:47:37
>>157
うん。やってみたけど落ちなかったよ。

作りたてのフォームだからかもしれないけど。

159 :デフォルトの名無しさん:2008/10/13(月) 20:53:16
>>158
そっかぁ〜
わざわざ調べてくれてありがとね

160 :デフォルトの名無しさん:2008/10/14(火) 23:22:40
データベースに警告が発生したときにイベントを発生させたくて、
下記のようなコードを作成したのですが、イベントが発生してくれません。
なにかほかにも必要なコードがあるのでしょうか?



Private WithEvents connection As OracleConnection

Private Sub connection_InfoMessage(ByVal sender As Object, _
                  ByVal e As System.Data.OracleClient.OracleInfoMessageEventArgs) Handles connection.InfoMessage
 Console.WriteLine(e.Message)
End Sub


161 :デフォルトの名無しさん:2008/10/14(火) 23:25:51
>>160
インスタンスは?

162 :デフォルトの名無しさん:2008/10/14(火) 23:50:25
>>161
connectionのインスタンス生成やデータベースへの接続等は問題なく行っています。


163 :デフォルトの名無しさん:2008/10/14(火) 23:57:54
んー。わかんね。WithEvents じゃなくて、AddHandler してもだめ?

164 :デフォルトの名無しさん:2008/10/15(水) 00:01:48
すんません、WebBrowser をファイラ状態で使っています。
WebBrowser を C:\ フォルダーにNavigateして、C:\ が表示された後で、
そこに Key を送りつけて制御したいのですが、

WebBrowser から派生したものを使って、OnkeyDown メソッドを
叩けるようにはしたのですが、

Public Sub DoKeyDown(ByVal key As Keys)
Dim e As KeyEventArgs = New KeyEventArgs(key)
MyBase.OnKeyDown(e)
End Sub

これでたとえば ewbrFolder.DoKeyDown(Keys.Tab) や
ewbrFolder.DoKeyDown(Keys.Apps) のようにしても反応せず、
WndProc(ByRef m As System.Windows.Forms.Message) で見てみても
キーダウンのメッセージ が届いていないようでした。この場合どこか間違い
があるでしょうか?


165 :デフォルトの名無しさん:2008/10/15(水) 00:06:24
>>164
それって、たとえば Form 相手だと有効なの?

イベントをファイヤするのと、キーを送るのはまったく別物よ。
せめて、ウィンドウメッセージか SendInput を使おう。

166 :デフォルトの名無しさん:2008/10/15(水) 00:19:21
>>165
>イベントをファイヤするのと、キーを送るのはまったく別物よ。

あーそうだったんですか!

>せめて、ウィンドウメッセージか SendInput を使おう。

調べてみます。ありがとうございました!!



167 :デフォルトの名無しさん:2008/10/15(水) 00:25:36
VBで書いた結構大きなプロジェクトを丸ごとC#に変換したいのですが
コードをVB→C#に変換する方法って何かありませんかね?

168 :デフォルトの名無しさん:2008/10/15(水) 00:32:40
あるけど丸ごとじゃないな

169 :167:2008/10/15(水) 00:39:20
丸ごと変換したい場合はどうするのが一般的なんですか?
クラスごとに変換して合体させるんでしょうか?

170 :デフォルトの名無しさん:2008/10/15(水) 00:40:59
「変換しない」が一般的で唯一の正しい答え

171 :デフォルトの名無しさん:2008/10/15(水) 00:42:43
DLLにしてC#から使えばいいじゃん

172 :167:2008/10/15(水) 00:48:22
結構古いプロジェクトなんですがC#で改良したいんです

173 :デフォルトの名無しさん:2008/10/15(水) 00:54:11
しつこいんだよドアホ

174 :デフォルトの名無しさん:2008/10/15(水) 01:22:31
>>172
正規表現を使って置換

175 :デフォルトの名無しさん:2008/10/15(水) 06:47:15
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=VB+C%23+%E5%A4%89%E6%8F%9B&num=50

176 :デフォルトの名無しさん:2008/10/15(水) 19:46:13
DateTimePickerのテキストボックスみたいなとこみたいにカーソルがない状態ってそうやれば作れますかね?
テキストボックスのカスタマイズで出来ますでしょうか?
やり方教えていただきたく

177 :デフォルトの名無しさん:2008/10/15(水) 22:25:01
>>167

175に別の答えがあるかもしれんが、ファイル単位ならSharpDevelopが使えると思うが・・・
俺はネットで拾ってきたサンプルソースを変換かけるのに良く使ってる。

それと、VBってVB.Net?それともVB6以前?
古いプロジェクトってのが気になるぜ。VB6だと手間的に話にならないと思うし。

>>176
そうやればってどうやれば?ってのはいいとして、ユーザーコントロールで
+--UserControl---------------------+
|[TextBox] 年[TextBox]月[TextBox] 日 |
+---------------------------------+
UserControlは白背景で枠有り。
TextBoxは枠なし。
年/月/日はラベル。
とかはどうよ。

1個のテキストボックスで同じ様な挙動させようとするとたぶん苦労するよ。

178 :デフォルトの名無しさん:2008/10/15(水) 23:34:52
>>177
どうも、誤字でした。

えーと、テキストボックスを3個使うのは、そのようにやるつもりなんです。
私の聞き方が悪いようでうまく伝わってないようです。
3個使うテキストボックスの1個の中の話でして。
例えばDateTimePickerのyyyyの部分が2008のときに2だけDeleteして3008にするようなことは出来ません。
というのは2008のどれか1文字をDeleteすることは出来ません。そもそもDeleteキーもBackSpaceキーも効きませんが
そもそもカーソルが存在しません。
このカーソルが存在しないっていうのをどうやったら作れるかな、という質問でした。
そもそもTextBoxじゃダメなのかな・・・

179 :デフォルトの名無しさん:2008/10/15(水) 23:35:47
そもそもって書きすぎだな俺

180 :デフォルトの名無しさん:2008/10/15(水) 23:49:37
+--UserControl---------------------+
|[Label] 年[Label]月[Label] 日 |
+---------------------------------+

のようにしてUserControlのKeyイベントでLabelのTextを操作するのがいいみたいです。
お騒がせしてすみませんでした。
>>177さんありがとうございました。

181 :164:2008/10/16(木) 20:09:02
すみません、また質問です。

WebBrowser をファイラ状態で使って C:\ フォルダーにNavigateして、
C:\ が表示された後ですが、このときには、そのWebBrowser自体に
Keyを送りつけても、MouseEventを送っても(それらをウインドウ・メッセージで送っても)
反応はなく、あくまでも、その内部の、ファイル・リストビューのオブジェクトに
送らないと反応できないようでした。

目的は、そのファイル・リストビューのコンテキストメニューを表示すること
なのですが、その場合は、そのファイル・リストビューのインスタンスから
そのコンテキストメニューのインスタンスを知る必要があるようで、

その場合には http://pc11.2ch.net/test/read.cgi/tech/1160209713/187-287
のような方法を取るべきらしいこそがわかりました。ここで言っている、

 リフレクションを使ってWebBrowserのインスタンスからaxIWebBrowser2という名前で
 IWebBrowser2インターフェイスを取得。
 →IServiceProviderにキャスト
 →IShellBrowserをIServiceProvider.QueryService経由で取得
 →IShellViewやIFolderViewをIShellBrowser.QueryActiveShellView経由で取得
 →いじり放題

の最初の段階として、
Dim axIWebBrowser2 As IWebBrowser2 = CType(ewbrFolder, IWebBrowser2)
のように行いたいのですが、この IWebBrowser2 インターフェースが認識できない
ようでソースコード上でエラー表示(下波線)されました。.NETFrameworkでは
このインターフェースは対応していないようですがどのようにして使用可能になる
でしょうか?

182 :デフォルトの名無しさん:2008/10/16(木) 20:12:10
>>181 訂正
リンク間違えました。すみません。
>http://pc11.2ch.net/test/read.cgi/tech/1160209713/187-287
-> http://pc11.2ch.net/test/read.cgi/tech/1160209713/196-197


183 :デフォルトの名無しさん:2008/10/16(木) 21:33:34
リフレクションなぞ使わなくともActiveXInstanceプロパティで公開されてる
IWebBrowser2インターフェイスはshdocvw.dllをCOM参照すれば使えるようになるがその流れだとわざわざ参照する必要は無いな
IServiceProvider以下は
・自前で定義する
・Windows SDK入れてインターフェイスが定義されているidl探してmidl.exeでtlb作ってそれをCOM参照……できたっけ?
 直接COM参照できないならtlbimp.exeでdll作ってそれを参照

184 :デフォルトの名無しさん:2008/10/16(木) 22:21:08
>>183
レスありがとうございます。

ググリましたら、確かに、Windows.System32内のshdocvw.dllをCOM参照するべきこと
がわかり、そこで

axIWebBrowser2 = CType(Me.ewbrFolder, SHDocVw.IWebBrowser2)


とやってみましたができませんでした。ここでおっしゃって下さった ActiveXInstance を使って

axIWebBrowser2 = CType(Me.ewbrFolder..ActiveXInstance, SHDocVw.IWebBrowser2)


としましたところ確かにCastはできました。ただ、これから IServiceProvider へのCastは
できませんでした。

>IServiceProvider以下は
>・自前で定義する
>・Windows SDK入れてインターフェイスが定義されているidl探してmidl.exeでtlb作ってそれをCOM参照……できたっけ?
> 直接COM参照できないならtlbimp.exeでdll作ってそれを参照

この自前で定義するのも難しそうですが、idl・・・の件は現在無知のため調べてみないと
わからない状態でした、もう少し苦しんでみます。ご指導ありがとうございました。
またよろしくお願いします。


185 :デフォルトの名無しさん:2008/10/16(木) 23:37:33
>>184
問題の解決になるかどうかわからんが、
.NetでCOMを扱う場合はMarshalクラスの存在は欠かせないだろう。
俺はこの辺をよく使っている。
 Marshal.GetComInterfaceForObject ← キャストはこれかな?
 Marshal.GetObjectForIUnknown
 Marshal.QueryInterface

インターフェースの定義はなかったら自分で作るが、
まず、ここで誰かが作ってないか探す。
ttp://pinvoke.net/index.aspx

なかったらMSDNや、SDKの*.idlとか見て自分で定義する。
作り方は適当なインターフェースの定義を見つけてコピペして改変する。
ttp://pinvoke.net/default.aspx/Interfaces/IShellFolder.html
こんな感じのね。
GUIDとかもちゃんと調べておくように。


186 :185:2008/10/16(木) 23:42:47
あ、違ったかな。
Marshal.GetComInterfaceForObjectでIntPtrを取得して、
それをMarshal.QueryInterfaceで変換する。
だったかな。

うろ覚えですまん。

187 :デフォルトの名無しさん:2008/10/17(金) 06:22:24
いらんよ、Marshalなんぞ。
参照カウンタが上がって面倒なだけだ。

188 :デフォルトの名無しさん:2008/10/18(土) 15:48:21
currency を$にしたいのに\になっちゃう
どうすればいいの?

189 :デフォルトの名無しさん:2008/10/18(土) 15:50:21
>>188
Globalization の CultureInfo をどうたらこうたら

190 :デフォルトの名無しさん:2008/10/18(土) 16:04:51
あるデータ出力を伴うプログラムを開発しています。
出力形式をXMLにしようと思っているのですが、関連クラスがたくさんあって手も足も出ない状況です><

XmlDocument http://msdn.microsoft.com/ja-jp/library/system.xml.xmldocument.aspx
XmlElement http://msdn.microsoft.com/ja-jp/library/system.xml.xmlelement.aspx
XmlAttribute http://msdn.microsoft.com/ja-jp/library/system.xml.xmlattribute.aspx
XmlTextWriter http://msdn.microsoft.com/ja-jp/library/system.xml.xmltextwriter.aspx
XmlWriter http://msdn.microsoft.com/ja-jp/library/system.xml.xmlwriter.aspx

この辺かなっと思ったんですけど情報が少なくて…
サンプルなどありますでしょうか?

191 :デフォルトの名無しさん:2008/10/18(土) 16:07:39
>>190
データの形式にもよるけど、シリアライズ・デシリアライズが簡単でおすすめ。

出力なら、XmlTextWriter のやつを探せばいいんじゃね?

192 :デフォルトの名無しさん:2008/10/18(土) 16:10:57
>>190
めちゃくちゃ簡単やん

193 :190:2008/10/18(土) 16:25:38
>>191
レスありがとうございます。どのようなものか読んだだけではすぐにはわかりませんでしたが、とにかく試してみます。

>>192
私にとってはそうでもないんです><



194 :190:2008/10/18(土) 19:16:47
>>191-192
Serialize やってみたら本当にすごい簡単にできました!
次に、生成されるXMLについてなのですが、これに
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
のような行を追加することは可能でしょうか?

195 :デフォルトの名無しさん:2008/10/18(土) 19:24:07
XmlWriter作って先にXmlWriter.WriteProcessingInstructionで書き込んでおく

196 :190:2008/10/18(土) 20:59:24
>>195
すげーーーー! あなたが光り輝いて見えます!

197 :デフォルトの名無しさん:2008/10/19(日) 00:50:11
Mysqlへの接続についてはココでいいのかな?
サーバーPCの環境 OS XP
VB2003
SERVER アパッチ
DB Mysql

問題点 Mysqlに接続できない
エラーメッセージ 'MySql.Data.MySqlClient.MySqlException' のハンドルされていない例外が mysql.data.dll で発生しました。
            Unable to connect to any of the specified MySQL hosts

Public str_Domein As String = "192.168.**.**"
Public connStr As String = String.Format("server={0};user id={1}; password={2}; database=aaa; pooling=false", str_Domein, "hogehoge", "hagehage")
LAN上のIP指定では問題なく接続できていたけど、諸事情により野外でノートを持っていき接続する必要が出てきた
そこで、str_Domeinを「Public str_Domein As String = "hogehage..net"」のようにドメイン指定にしてみたら接続できなかった
引っ越す前は問題なかったけど、引越しをし、光プレミアムに回線が変わってから使えなくなってちょっとアセってます
引越し前も後もサーバーPCの設定はしていないので繋がっても不思議ではないが繋がらなくなったのでルーターの設定かと思い
ポート3306のルーティングをしたり、ファイアウォールもオフにしたりしたけどダメ
サーバーPCもファイアウォールの3306のポート設定してあります

何か設定忘れてるかな?

198 :デフォルトの名無しさん:2008/10/19(日) 00:56:10
DBはDB板へ

199 :デフォルトの名無しさん:2008/10/19(日) 00:59:59
板違いでしたか
聞きなおしてきます
失礼しました

200 :デフォルトの名無しさん:2008/10/19(日) 01:02:53
>>197
ネットワークの問題だろ

201 :デフォルトの名無しさん:2008/10/19(日) 01:25:21
初心者にオススメ本を?

202 :201:2008/10/19(日) 01:33:37
すみません。誤爆しました

203 :デフォルトの名無しさん:2008/10/19(日) 19:24:47
VB2008でForm上に自分でデザインした画像ファイルを使用したボタンを設置したいのですが、一般的なやり方ってどのようなやり方がありますか?
現在は1つの画像ファイルに|通常時|押された時|無効の時|のような感じで並べてあり、
パネルの中に画像を読み込ませたピクチャーボックスを置いてマウスオーバー・ダウンなどでピクチャーボックスの位置をずらして模擬ボタン作っています。
あまりスマートな方法ではないと思うので、ほかに方法はないでしょうか?
よくあるオンラインゲームのランチャー画面的なグラフィカルなものをできるようにしたいです。

204 :デフォルトの名無しさん:2008/10/19(日) 20:48:32
Buttonを継承したクラスでOnPaintをオーバーライドする
およそVBらしくない手段だから頑張って勉強してね

205 :デフォルトの名無しさん:2008/10/20(月) 20:49:30
OnPaintをオーバーライドってのが難しくてよくわからんなぁ
わかりやすく解説したサイトorサンプルはないものか…

206 :デフォルトの名無しさん:2008/10/20(月) 20:55:13
onpaint button vb でぐぐれ

「スマートにやりたい」っていうのが理由なんだったら
横着せずにちゃんと基礎からオブジェクト指向を勉強した方がいいよ
継承してオーバーライドしなくても一応Paintイベントでもできるんだよ
それだと使い回し効かなくて全然スマートじゃないけどね

207 :デフォルトの名無しさん:2008/10/20(月) 21:08:45
ピクチャーボックス使ったボタンコントロール作りゃいいじゃん

208 :デフォルトの名無しさん:2008/10/22(水) 05:53:11
0お

209 :デフォルトの名無しさん:2008/10/22(水) 13:28:22
初めて質問させていただきます><

VBで作成したテキスト入力欄にTABキーでフォーカスを移した際に
元々入力されている文字列を全選択されている状態にしたいのですが、
これって、プロパティの方で設定できるのでしょうか?
それともプログラムの方にそういうロジックを組まなければいけないのでしょうか?

210 :デフォルトの名無しさん:2008/10/22(水) 13:31:55
そんなプロパティは無いな

211 :デフォルトの名無しさん:2008/10/22(水) 13:35:29
>>210
ないのですか。。
では、プログラムの方にロジックを組まなきゃいけないんですね;;

212 :209:2008/10/22(水) 14:26:51
>209です。
文字列を全選択する方法がわかったのですが、
どうしてもマスクが使用されているテキストボックスだけ
フォーカスを移動させても、全選択されません。

SlectAllを使っているのですが、マスクが使用されている箇所も
全選択できるようにはならないのでしょうか?

213 :デフォルトの名無しさん:2008/10/22(水) 19:00:45
beforeX:
X
For i As Integer = 0 To p
  If P(i) Then
    Y
    Goto beforeX
  End If
Next

GoTo 使わないでもっと短いソースになりますか?

(X, Y): ステートメント
P(i): フラグ

要するに「フラグをすべて調べて、最初に見つかったのだけ処理して、ループの前に戻る」コードです。

214 :デフォルトの名無しさん:2008/10/22(水) 19:07:15
Xをサブルーチンにするとか
仮に短くならなくても上向きのgotoだけはありえない

215 :デフォルトの名無しさん:2008/10/22(水) 19:16:40
>>213
コードが短くなることに価値のプライオリティを置くのは頭悪げ。
いや「頭悪げ」じゃなくて「頭悪い」と思う。

216 :デフォルトの名無しさん:2008/10/22(水) 20:14:51
頭悪げも頭悪げ

217 :213:2008/10/22(水) 20:47:44
えー、GoTo が基本的によくないのはわかってるつもりなんで、最初は

Do
  X
  For i As Integer = 0 To p
    If P(i) Then
      Y
      Continue Do
    End If
  Next
  Exit Do
Loop

としてたんですよ。でもDo文の直下に Exit Do があるのも気持ち悪く見えたんですが…


218 :デフォルトの名無しさん:2008/10/22(水) 21:20:38
While True
  X
  Dim match1st as Integer = GetMatch1st()
  if match1st = -1 then
    Exit While
  Else
    Y
  End If
End While

219 :213:2008/10/22(水) 21:40:21
>>218
やはりFor文を分離するのがよかったですか。なるほど。
if match1st = -1 then
  Exit While
End If
  Y
のようにすることにしました。

220 :デフォルトの名無しさん:2008/10/22(水) 21:42:46
( ^ω^)σ(i)

221 :デフォルトの名無しさん:2008/10/23(木) 03:12:57
素人にオススメ本にょ?

222 :デフォルトの名無しさん:2008/10/23(木) 20:32:19
Disposeメソッドを実行するのと、オブジェクトにNothingを代入するのって、
全然意味が違うの?

223 :デフォルトの名無しさん:2008/10/23(木) 20:35:25
全然違う
Nothingを代入するのはほとんどの場合無意味
IDisposableを実装した型は基本的には必ずDisposeすること

224 :デフォルトの名無しさん:2008/10/23(木) 20:59:31
>>222
Nothingはオブジェクトを参照していないことを明示的にするため
または参照を解除するために使う
Disposeは確保したリソースが使用しているメモリ領域を開放するために使う

たとえばピクチャボックスならNothingで画像消去してDisposeでメモリ解放するのが
正しい使いかた

225 :デフォルトの名無しさん:2008/10/23(木) 23:47:38
>>223-224
Disposeメソッドを実行した後に、Nothingを代入すればよい?
Nothingの代入は余計?

226 :デフォルトの名無しさん:2008/10/23(木) 23:51:32
ローカル変数ならNothingの代入はまずいらない
フィールドならもう使えないことを明示する目的でNothing代入したりするけどしなくてもいい
>>224の言ってるようにピクチャボックスのImageプロパティなんかはNothing入れといた方がいいかも

227 :デフォルトの名無しさん:2008/10/23(木) 23:57:25
>>223-224
>>226
ありがとう、参考になりました

228 :デフォルトの名無しさん:2008/10/23(木) 23:58:02
>>225
VB6からの人なんだろうけど、そういう「おまじない」志向いい加減止めたら?
大事なのは、
(1)ちゃんと自分の頭で考えることと、
(2)そのために必要な知識をきちんと学習すること
だろ。

IDisposable.Disposeの意義というか存在理由なんてweb上の情報だけでも
結構得られると思うんだけど。

229 :デフォルトの名無しさん:2008/10/24(金) 23:14:55
Pitvate Function GetHoge() As Integer
 Dim hoge as Integer
 If IsA Then
  hoge = GetA()
 Else
  hoge = GetB()
 End If
 'ここでReturn hogeが必要だったけど書き忘れバグ
End Function

VB2005でついに上のような感じのバグを書いちゃったんだけど、
再発を防ぐお手軽な方法や定石ってあるのかな?
前々から何度もこのバグ出しそうになって気をつけていたつもりだったんだが。
ひとまずhoge変数自体を消去して、分岐後すぐに値をReturnするように修正した。

暗黙的にGetHoge = 0って行が存在してるんだろうな・・・
仕様としてExit Functionを残すためにもしょうが無いのか。

230 :デフォルトの名無しさん:2008/10/24(金) 23:41:12
普通に警告でなかったっけ?
まあそんなポカミスあまりやらないし、やってもすぐ発見可能な類のものだから
気にすることもないと思うんだが。

231 :デフォルトの名無しさん:2008/10/25(土) 00:01:50
そうか、気にしすぎも良くないか。
ちょっと動揺しすぎてたみたいだ。
ちなみにVB2005では警告は出なかった。

232 :デフォルトの名無しさん:2008/10/25(土) 00:57:37
つか、自分でも色々とVB6 と .NET の速度を計測したけど

やはりVB6の方が起動速度も処理も早いね。

googleで VB6 vs .NET でぐぐってごらん。

.NET好きだけど遅いのが難点。

233 :デフォルトの名無しさん:2008/10/25(土) 01:02:58
そもそもVB自体が速度が問題になるような時に使う言語じゃない

・・・は言っちゃダメなのか、やっぱ。

234 :デフォルトの名無しさん:2008/10/25(土) 01:15:37
WEBサイトへの自動ログインツールを作ろうとしていますが、ちょっと質問させて下さい。
現在、Yahooメールにログインする際には、
ID ・ PASS
を手動で入力しなくてはなりませんが、メンドクサイのでそれをアプリから自動で入力し
ログイン出切るツールを作りたいと思っています。

しかしながらそれを実現する為のアイデア(方法)が皆目検討がつきません。
以前にこの様なソフト(ツール)を作った事がある方がいらしましたら、ヒントをお願いします。

※例えば、WindowsFormからボタンをクリックするとYahooメールのURLをWindowsForm内に事前に作成している
Browserに表示し、ID・PASSワードを自動で入力しYahooメール画面に切り替わる

という事をしたいと考えています。



235 :デフォルトの名無しさん:2008/10/25(土) 01:16:00
速度うんぬん言うなら、C+SDK 最強w

236 :デフォルトの名無しさん:2008/10/25(土) 01:16:50
>>234
日経ソフトウエアに、GMail にログインする、ってのがあったよ。
それを参考にしたらどうだろう?

237 :デフォルトの名無しさん:2008/10/25(土) 01:18:22
>>263
それは雑誌でしょうか?
出来れば「@IT」みたいなサイト上にソースとかが公開されているページをご存知でしたら
お教えください。


238 :234:2008/10/25(土) 01:29:37
ぐぐったら私がやりたい事をすでにやった人がいて
また、HPに公開されていました。

これから作ってみようと思います。

239 :デフォルトの名無しさん:2008/10/25(土) 08:58:46
それはどこのサイトでしょうか?
出来ればサイト上にソースとかが公開されているページをご存知でしたら
お教えください。

240 :デフォルトの名無しさん:2008/10/25(土) 18:43:40
それ私も知りたいです。
ヤフオクの出品手続きなど自動化したいので


241 :デフォルトの名無しさん:2008/10/25(土) 19:03:07
ヤフオク大介使えよ・・・

242 :デフォルトの名無しさん:2008/10/25(土) 19:53:22
InternetExplorer.application

243 :デフォルトの名無しさん:2008/10/27(月) 12:59:46
Framework2.0以上で
Const定義もしくはSharedのプロパティ・関数を
サブクラス側に定義を強制させる方法はない?
× Shared・ConstにはMustOverrideが使えない
× Shared・ConstはInterfaceで定義ができない
× Shared Sub Newでは実体が一度でも作成されないと実行されない

素直にSharedやめるか、コメントで「実装してね(はぁと」とでも書くしかない?


244 :デフォルトの名無しさん:2008/10/27(月) 13:02:03
> × Shared Sub Newでは実体が一度でも作成されないと実行されない

これは意味が分からんが、まあSharedでなければならない理由は大抵無いだろ

245 :デフォルトの名無しさん:2008/10/27(月) 14:34:34
MSDNフォーラムで質問してみたらスルーされて
涙目になったんでここで質問させて下さい。


VS2005 & Visual Basic Power Packs 3.0 もしくは
VS2008で使えるようになる、DataRepeaterコントロールについて、

MSDNライブラリ: 「2 つの DataRepeater コントロールで関連データを表示するには」
http://msdn.microsoft.com/ja-jp/library/cc488313.aspx
上記文書の通りに、完全に同じ手順で配置してみても、動作してくれません。

マスター:親側は動いてくれるのですが、
詳細:子側のDataRepeaterコントロールに何も表示されません。
DataRepeaterの代わりにDataGridViewを使うと、
子側のコントロールも中身のデータも問題なく表示され、親子の連動も出来ています。


VS2005・VB PowerPacks 3.0でも、VS2008(90日評価版ですが)でも、同じ症状です。
念の為SPは当てていますが症状変わらず。


これらはどんな事が原因で起き、正常に動作させるにはどうすれば良いのでしょうか?
まだVS2005上でリレーション・連動がどんな仕組みで表現されているかもわからない入門者ですが
小さなヒントだけでも構いませんので、教えて下さいな。

246 :デフォルトの名無しさん:2008/10/27(月) 15:25:22
>>243
仮にそーゆーメソッドが定義できたとして、どうやって呼び出すつもりなの?
インスタンスがなけりゃどの派生クラスのものかなんて判断できないんだから
結局派生クラスを直接指定して呼び出すしかないだろ。
実行時にまでチェックを遅らせていいなら、
型情報から呼び出すことは出来るが。

247 :デフォルトの名無しさん:2008/10/27(月) 15:25:58
VB2005でWin32のGDIを使いたいのですが、文字を書くときにフォント名をLOGFONT構造体に設定しようとして
 <MarshalAs(UnmanagedType.ByValArray, SizeConst:=LF_FACESIZE)> _

 Public lfFaceName As Byte
にどうやって”MSゴシック”などを指定していいのかわかりません
何かご存じの方いらっしゃいませんか

248 :デフォルトの名無しさん:2008/10/27(月) 18:04:33
XMLのファイル処理でタグに応じてサブクラスが分かれるロジックで
Constでタグ名の定義を強制させてループで楽しようかと思ったんだが
そもそものshared使う発想自体が間違ってたようだ。

>>244
ConstはMustOverrideできないから、Sharedの変数に設定すればどうか
って思いついてサブクラス側のShared Sub New内で変数に設定しようとしたが失敗

>>246
そういやそうだね
「タグ名=[サブクラス].[shared定義]」で判断するなら
「タグ名="タグ名"」にするのと大差なかったね。
この時点でどのサブクラスが対象か判明してる訳だし…

連日の残業で疲れているようだ。
今日は早く帰ることにしよう。


249 :デフォルトの名無しさん:2008/10/27(月) 20:15:46
>>247

<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=32)> _
Public lfFaceName As String

で宣言すれば?

250 :デフォルトの名無しさん:2008/10/27(月) 20:38:26
ナースコールの掲示板にvbの質問が(><;)
http://qa.kangonavi.jp/qa4320181.html

251 :デフォルトの名無しさん:2008/10/27(月) 20:41:19
コピペ君って馬鹿だな、まで読んだ。

252 :デフォルトの名無しさん:2008/10/27(月) 22:24:32
>>246
ジェネリックで制約かければ使い道がないこともない

253 :デフォルトの名無しさん:2008/10/27(月) 23:00:32
>>246
デザインパターンのSingletonを使う。
俺は嫌いだが。


254 :デフォルトの名無しさん:2008/10/27(月) 23:36:13
Graphics と Bitmap とでは概念や機能に違いがあるようですが、どちらをどのように使えばいいのかわかりません><
特定の操作を与えて生成した画像を表示し、その後、ファイルに保存できるようにしたいのです。
・ Graphics.DrawLine/DrawPolygon/DrawString/etc と Bitmap.Save との両方に相当するメソッドを備えたクラスはありますか?
・ どちらかのクラスで、上に挙げたもののうちそれが持っていないものを代用するにはどうすればよいでしょうか。

255 :デフォルトの名無しさん:2008/10/27(月) 23:42:51
>>254
言ってることの意味がわからない。
GraphicsやImageといった基本的なクラスの意味すら理解せずに
グラフィックを扱うコードなんて書けるはずないと思うけど。

256 :デフォルトの名無しさん:2008/10/27(月) 23:44:30
Bitmapクラスのコンストラクタで空のBitmapを作成して,
Graphics.FromImageでそのBitmapオブジェクトに対するGraphicsオブジェクトを取得して
そのGraphicsオブジェクトを使ってBitmapオブジェクトに描画して
最後にBitmap.Save

257 :254:2008/10/27(月) 23:45:37
もしかして
Dim g As Graphics
  '描画
(MainForm.CreateGraphics()).DrawImage(g)
Dim b As Bitmap = New Bitmap(g)
b.Save(ファイル名)
とかでいけちゃいます?

258 :254:2008/10/27(月) 23:46:23
うわレス早! ありがとうございます
被ってすいません、今から試します><

259 :254:2008/10/28(火) 21:54:51
ありがとうございます!


260 :デフォルトの名無しさん:2008/10/29(水) 09:36:13
.NET 2003です。

Dir関数で、指定したフォルダが存在するか調べたいんですが、
メディアのドライブ(DVDドライブなど)などを指定すると、
ドライブにディスクが入っていないときに 実行時エラー52が出て止まってしまいます。
msdnのDir関数んとこ見ても、それらしき記述は見あたらないのですが…
どのような場合でどのような例外が投げられるのか教えていただけませんか?

今回の場合、ドライブにアクセスできないので、76エラーならわかるのですが、
何故52エラーなのかよくわかりません。
また、Qドライブなど、存在しないドライブを選んだときは、特にエラーが発生しません。
(やたら時間がかかりますが)

なにかもうちょっと手っ取り早くそのフォルダがあるか無いか調べられる関数ってVBには無いのですか?

261 :260:2008/10/29(水) 10:05:18
System.IO.Directory.Existsで自己解決しました…
.NETがありましたね、そういえば。

262 :デフォルトの名無しさん:2008/10/29(水) 10:32:59
>.NET 2003です。

>.NETがありましたね、そういえば。

…えー

263 :デフォルトの名無しさん:2008/10/29(水) 12:33:09
あれだな、VB独自関数しか調べなかった

264 :260:2008/10/29(水) 14:04:24
>>263
おっしゃる通りでw
VBなんて触ったのVer.5以来だったから…

265 :デフォルトの名無しさん:2008/10/29(水) 20:14:26
教えてください。

やりたいこと。
標準のボタンコントロールを継承して作ったカスタムのコントロールを
DataGridViewのセルに表示させたい。

やってみたこと
http://msdn.microsoft.com/ja-jp/library/7tas5c80(VS.80).aspx
を参考にやってみましたがEditingControlなので編集状態にならないとカスタムコントロールが表示されません。
またDataGridViewTextBoxCellではなくDataGridViewCellを継承してみるも当然ながらなにも表示されません。

何か方法ありませんでしょうか。

VB2008、XP。


266 :デフォルトの名無しさん:2008/10/29(水) 21:35:53

さあ、その能無しに自民党どもが今ワーキングプアなんかをどれだけ人間扱いしてないか。
             ↓
((;゜Д゜)ガクガクブルブル、 国家権力コワス

10/26 麻生邸宅見学に向かおうとしたら逮捕
http://jp.youtube.com/watch?v=3Uw701vV15U

0:20秒ごろ、自分からぶつかりに行ってる黒服に帽子を被った男が
先頭の若者に自分から抱きついた瞬間、「公妨(公務執行妨害)だあ!」のさけび声が上がり、
その直後まるで事前に打ち合わせていたかのように「よし、やろう!」と言う大きな声が聞こえます。

渋谷署警察官との事前打ち合わせ@ハチ公前
http://jp.youtube.com/watch?v=VukCiIa0BDc&feature=related
記者会見/「麻生太郎邸拝見ツアー」参加者3名不当逮捕
http://jp.youtube.com/watch?v=V6X0rVVUMY8&feature=related
DEMO in SHIBUYA
http://jp.youtube.com/watch?v=_lDLdIRTRRA&NR=1
「麻生首相宅見に行こう」で男3人逮捕
http://jp.youtube.com/watch?v=o68UkD27URY&NR=1
続・「麻生首相宅見に行こう」で男3人逮捕 - やっぱり転び公妨でした!?
http://jp.youtube.com/watch?v=hgMZTl04N_w&feature=related


267 :デフォルトの名無しさん:2008/10/29(水) 21:46:03
コピペ君って馬鹿だな、まで読んだ。

268 :デフォルトの名無しさん:2008/10/29(水) 22:39:31
スプレッドの一セル内の文字列の一部分をユーザーが範囲選択、
その値を取得する方法ってありますか?
vb6.0だとSelText使ってたんだけど。

269 :デフォルトの名無しさん:2008/10/30(木) 08:53:34
>>265
特定のカラムのセルに、常にボタンを出すだけなら
カラムを DataGridViewButtonColumn にするだけなんだけど
それでは駄目な理由が今ひとつわからない。

行毎にボタンを表示したりテキストを表示したりしたいの?
それなら今俺が作ってる。業務上なんで晒せないけどw
(DataGridView の CellPainting イベントでも出来るんだけどね)

>>268
スプレッド?

270 :268:2008/10/30(木) 10:19:47
>>269
SPREAD for .NETです。

271 :デフォルトの名無しさん:2008/10/30(木) 15:51:48
2008で質問です。

自作したユーザーコントロールから、
ダイアログ形式のフォームを
ShowDialogメソッドでモーダル表示しているのですが、
フォームのStartPositionプロパティをCenterParentに
しているのに、親フォームの中央に
表示されません。
ためしにCenterScreenにしてみましたが、
おなじく中央に表示されません・・・。
なぜなのでしょうか・・・?

どうすれば親フォームの中央に
表示されるようになりますか?


272 :デフォルトの名無しさん:2008/10/30(木) 16:25:01
ttp://dobon.net/vb/dotnet/form/startposition.html

273 :デフォルトの名無しさん:2008/10/30(木) 18:30:20
子フォーム.ShowDialog(親)

274 :265:2008/10/30(木) 23:43:51
>>269
どうもありがとうございます。
プロジェクト全体で主にデザイン上の理由からカスタムのボタンを使ってて
全体の統一をとるためにグリッドのボタンもカスタムのボタンを使いたいということです。
とりあえず今回はDataGridViewButtonCellを継承したクラスで地道にPaintすることで凌ぎました。

DataGridViewCellを継承してPaintで頑張れば何でも表示できるんだろうけど
編集時のコントロールが設定出来るんだから編集時以外の状態も
コントロールを設定出来そうな気がしたんですが見つけられませんでした。
探し方が甘いのかなあ。
誰かご存知の方いましたら教えてください。

275 :デフォルトの名無しさん:2008/10/30(木) 23:49:19
VB 2008 Express EditionでRS-232Cポートの通信を行いたいのですが、
http://msdn.microsoft.com/ja-jp/library/ms143551(VS.80).aspx?ppud=4
にある、『Dim instance As SerialPort』の変数宣言ができません。

SerialPort型なんて無いですよね?
ツールボックスからSerialPortを貼り付けて、名前を揃えてもエラーになるし・・・
どうしたら良いのでしょう?



276 :デフォルトの名無しさん:2008/10/30(木) 23:59:45
>>275
名前空間って概念が理解できてないみたいね。
遠回りでもちゃんとそれを理解した方がいいよ。
コピペグラマになりたいのなら薦めないけど。

277 :デフォルトの名無しさん:2008/10/31(金) 00:30:35
>>275
Dim instance As SerialPort
って書いてダメだとSerialPortの下に波線が出るよね?
そこにマウス持ってくと赤い丸に白のエクスクラメーションが出るよね?
それをクリックするんだ

278 :デフォルトの名無しさん:2008/10/31(金) 00:34:57
>>276-277
なるほど、宣言する必要があったのですね。
ありがとうございました。

279 :271:2008/10/31(金) 08:08:37
>>272-273

それでも中央に表示されないんですよ・・・。
ShowDialogで親を指定しても、
StartPositionを指定しても
ダメなんです。

デザイン時のLocationの位置にしか
表示されないんです。

280 :デフォルトの名無しさん:2008/10/31(金) 09:35:14
>>274
>編集時以外の状態も
>コントロールを設定
DataGridViewCell の派生クラスはどれも
コントロールを表示してるんではなくて
自力で描画してるので、
>DataGridViewButtonCellを継承したクラスで地道にPaint
ボタンのデザインのみ変更したいのなら、
そのアプローチは正しいです。

281 :デフォルトの名無しさん:2008/10/31(金) 13:18:55
シリアルポート通信のプログラムを作成しています。

STXやBCCを含んだ文字列をシリアル通信で受信したいのですが、
ポートオープンの部分で止まってしまいます。
何か問題があるのでしょうか?
Using SPort As IO.Ports.SerialPort = My.Computer.Ports.OpenSerialPort("COM1")

http://support.microsoft.com/kb/904795/ja
http://www.fa.omron.co.jp/guide/faq/detail/faq00769.html


また、シリアルポートにデータを受信したとイベントを認識させる方法はありますか?
現在はタイマーで定期的にポートを見に行くようにする予定です。

282 : [―{}@{}@{}-] デフォルトの名無しさん:2008/10/31(金) 13:39:41
>>281
ボーレートとかスタート/ストップビットとか対向機器とあってますか?
ちゃんとやるなら、System.IO.Portsクラス使った方がよろしいかと
ご所望のイベントハンドラもこっちにはありますし

この手の制御やるならラインモニターぐらいは持ってないと辛いと思いますよ
(持ってたらごめんなさい)

283 :デフォルトの名無しさん:2008/10/31(金) 13:50:25
VB2008でAlt+Tabが1回押された時と同じ動作をしたいです。

現状、SendKeys.Send("%{TAB}")して逃げてたんですが、
たまに固まるので、他の方法で画面を切り替えたいんですけど、
何かいい方法ってありますか。

284 :デフォルトの名無しさん:2008/10/31(金) 13:51:47
カモンエスパー

285 :デフォルトの名無しさん:2008/10/31(金) 14:12:17
>>282
設定は見直しましたが、問題無いはずです。
イベントハンドラはシリアルポートのプロパティにあったのですね。
ただ、これを使用しても、受信時にイベントは発生しませんでした。

対向機器は、専用ソフトでは動作しているので問題無いです。
ただ、Seristerという汎用のシリアルモニタを使用してみたところ、受信できませんでした。
http://www.vector.co.jp/soft/win95/hardware/se423507.html

286 :281-285:2008/10/31(金) 14:33:24
すいません。
自分の中でいろいろ混乱しているようなので、一度整理してきます。

287 :デフォルトの名無しさん:2008/10/31(金) 14:38:19
FlexGridの一つ前のバージョン(2005?)
ってVB2008でも使える?

288 :デフォルトの名無しさん:2008/10/31(金) 15:09:57
DataGridViewで、行数が少ないとき、空きスペースができますよね。
この空きスペースをなくし、行数ぴったりの高さにしたいのですが、
何かいい方法はないでしょうか?

289 :デフォルトの名無しさん:2008/10/31(金) 15:15:43
失礼します。
VB2008 Express EditionでCompoWay/Fというプロトコルを使って通信したいのですが、受信イベント(DataReceived)が発生しません。
このようなプロトコルに対応するには、どのようにしたらよいのでしょうか?
付属の専用ソフトでは受信しているので、機器の問題では無いと思われます。
また、ハイパーターミナルでも受信は出来ませんでした。
よろしくお願いいたします。

CompoWay/F 通信仕様
http://www.parkingsale.com/a_image/accessory7/SCHE-720D-1_200506.pdf

通信ソフト参考URL
http://www.contec.co.jp/product/device/serial/application.html

290 : [―{}@{}@{}-] デフォルトの名無しさん:2008/10/31(金) 15:35:32
>>289
専用ソフトとやらが何やってるか
モニタ使って観察してみれば違いがわかるんじゃないの?

仕事でやってるんなら機器開発元に聞くとか

291 :デフォルトの名無しさん:2008/10/31(金) 16:40:54
日付情報が入っているデータ配列を
MonthCalenderコントロールを使用してデータのある日付に
印を付けることって出来るのでしょうか?

プロパティを見る限りでは、当日の○印の色設定とかは見当たりますが・・・


292 :283:2008/10/31(金) 17:01:11
283は、アクティブなウィンドウの次(前?)のウィンドウをアクティブにしたいってことです。

で、VBだけじゃ厳しそうだったんで、Win32APIをみながら↓のように作ってみました。
他に良い方法あったら教えてください。

    Private Sub GetNextWindow()
        Dim titles As New ArrayList
        For Each p As Process In Process.GetProcesses()
            If Not p.MainWindowHandle.Equals(IntPtr.Zero) Then
                titles.Add(p.MainWindowTitle)
            End If
        Next

        Dim hwnd As Integer = 0
        hwnd = GetForegroundWindow()
        hwnd = getNextWindow(hwnd, 2)
        While true
            Dim sb As New StringBuilder(&H1000)
            If GetWindowText(hwnd, sb, &H1000) <> 0 Then
                If titles.Contains(sb.ToString()) Then
                    AppActivate(sb.ToString())
                    Return
                End If
            End If
            hwnd = getNextWindow(hwnd, 2)
            If hwnd = 0 Then
                Return
            End If
        End While
    End Sub

293 :デフォルトの名無しさん:2008/10/31(金) 17:54:33
Alt +Tabで表示されるウィンドウの定義が微妙

294 :デフォルトの名無しさん:2008/11/01(土) 09:38:07
VB2008です
下のものをデバッグしたら
「縮小変換しないで呼び出される'Show'がないためオーバーロードの解決に失敗しました」
というエラーが出たのですが
どうやったら解決できますか
「→」のところでエラーが出てます
よろしくお願いします

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

 Dim Score As Integer

 If Integer.TryParse(TextBox1.Text, Score) Then
  If Score >= 70 OrElse (Score >= 50 AndAlso _
 →MessageBox.Show("レポート提出済?", _
  MessageBoxButtons.YesNo, MessageBoxIcon.Question) = _
  DialogResult.Yes) Then
   MessageBox.Show("合格", "点数", _
   MessageBoxButtons.OK, MessageBoxIcon.Information)
  Else
   MessageBox.Show("不合格", "点数", MessageBoxButtons.OK, _
   MessageBoxIcon.Error)
  End If
 Else
 →MessageBox.Show("整数を入力してください", _
  MessageBoxButtons.OK, MessageBoxIcon.Error)
 End If

End Sub

295 :デフォルトの名無しさん:2008/11/01(土) 10:20:47
ヘルプでMessageBox.Showを調べて引数にどんなのを渡せるのか確認する

296 :デフォルトの名無しさん:2008/11/01(土) 17:18:43
VS.NET2003です
ヤフオクの自動で出品するものを作っているけど最後の最後がわかりません
HTMLでは
<input onClick="Ya.submit(document.auction, 'http://edit8.auctions.yahoo.co.jp/jp/config/submit');disabledSubmit(document.auction);" type="button" value="利用規約とガイドラインに同意して出品する">
と書いてあり、このボタンを押して終了だけどさっぱりわかりません
どう書けばいいの?

297 :デフォルトの名無しさん:2008/11/01(土) 17:33:40
>>296
なにをしたいのかさっぱりわからないです

298 :デフォルトの名無しさん:2008/11/01(土) 18:08:43
たしかにw
ボタンを押すようにするソースがわからないです
onClickのイベントを実行すればいいと思うけどどう書けば実行されるのかさっぱりわからないです

299 :デフォルトの名無しさん:2008/11/01(土) 22:55:14
WebBrowserコントロール使ってるなら、Javascriptとやり方は一緒。
GetElementByIdとかで対象のエレメント探してClickメソッドで実行出来ると思う。


300 :296:2008/11/02(日) 00:12:24
>>299
IDやnameがあるならいいけどないんですよね
だから1ヶ月近く先に進めないのです


301 :デフォルトの名無しさん:2008/11/02(日) 00:21:25
>>300
じゃあGetElementsByTagName 使えばいいんじゃないのかな。
ボタンなんてのは画面内で大抵数が決まっているだろうから、2つめとか3つめとかで取得すればいいと思う。
それが嫌ならonClick属性の内容を見てみればある程度特定出来ると思うけど。


302 :デフォルトの名無しさん:2008/11/02(日) 00:50:48
しょせん POST なんだから、必要なデータを Stream に書き込んで、
HttpWebRequest で Post する、って手もあるな。

303 :デフォルトの名無しさん:2008/11/02(日) 01:45:35
>>296
2chで質問してソフト作ったらそのソフトを売るつもりだろうw?
そんなの簡単に出来るけどおしえねぇーw


304 :デフォルトの名無しさん:2008/11/02(日) 01:51:58
いや、もうあるから・・・
ヤフオク大介っていう超便利なソフトが・・・

305 :296:2008/11/02(日) 10:37:36
自分のスキルに絶望した・・・o...    rz
>>301>>302
昨夜ヒントを元に調べながらやってみたけどエラーばかり・・・
もうしばらく奮闘してみます

>>303
顧客・販売データをBDで管理しているので市販ソフトでは対応できないのだよ
自分のスキルでは売れるものなんて作れない
なので今はo...   rzなってる

306 :296:2008/11/02(日) 11:19:19
連投スマソ
某サイトからのぱくりだけど
For Each x In IE.Document.Forms(0).All
If TypeName(x) = "HTMLInputElementClass" Then
If x.value = "利用規約とガイドラインに同意して出品する" Then
Call x.Click()
Exit For
End If
End If
Next
でなんかできたっぽい

307 :デフォルトの名無しさん:2008/11/02(日) 13:27:21
>>296
ちょっと質問なんですけどFlashで作られた画面上に特定の項目を入力し、
Flash内のボタンをクリックする
なんて事は出来ますか?

お気に入りのサイトがFlashで作られていてログインとかもFlashなんです。
でこれも何とか自動化出来ない物かと思ってます。

308 :デフォルトの名無しさん:2008/11/02(日) 14:55:57
VB.netに限らない話なのかもしれませんが、

 Dim a As Byte = 15
 Dim b As Byte = 32
 Dim c As Integer
 c = a * b
のようにするとデバッグ時にオーバーフローエラーが出ます。

が、
・a がByte型で b はSByte型
のようにすると問題なく通ります。


なぜこのような違いが出てしまうのでしょうか。

309 :デフォルトの名無しさん:2008/11/02(日) 15:01:57
>>308
MSDNライブラリの「演算子の結果のデータ型」を参照。
C#はC#で微妙にルールが違うから要注意

310 :308:2008/11/02(日) 15:18:37
両方Byte型の場合
 a*bをByte型で計算する→計算結果をInteger型に変換してcに入れる
 a*b=15*32=480だから、乗算した段階で溢れてエラー

SByteとByteの場合
 a*bをShort型で計算する→計算結果をInteger型に変換してcに入れる
 Short型だから溢れない。

ということですか。


ありがとうございました。

311 :デフォルトの名無しさん:2008/11/02(日) 16:39:07
ちょっと変な質問なんですが…。

.NET2005のコンパイルって以前のバージョンの様にデバッグコンパイルと
リリースコンパイルをコンボボックスで選択する形式ではなく、デバッグ実行かビルドかで
Debug/Releaseを分けてるんでしょうか?


312 :デフォルトの名無しさん:2008/11/02(日) 16:44:02
>>311
Standard版以上ならその部分は切り替えができる。

313 :デフォルトの名無しさん:2008/11/02(日) 16:50:33
Expressでもできる

314 :デフォルトの名無しさん:2008/11/02(日) 16:54:43
>>312-313
レスありがとうございます

>>313
Express版なんですが、どこで切り替えができるのか教えて頂けないでしょうか?
このままでも困るわけではないのですが、どうも違和感が…

315 :デフォルトの名無しさん:2008/11/02(日) 16:55:23
環境設定VBのままだと出ないかな

316 :デフォルトの名無しさん:2008/11/02(日) 16:59:01
ツールバーのユーザー設定にあると思う

317 :デフォルトの名無しさん:2008/11/03(月) 13:40:35
配列を使う代わりに、ListやDictionaryを最近使うようにしています。
取り扱いが楽ですので・・・

でつまらない疑問なんですが、Foreachでループをするときに、
ループ内でそのオブジェクトが何番目かを知りたいのですが、
添え字をつかって従来通りForでCount -1 まで回すか
別途カウンタの変数を用意して、インクリメントしていくしか方法はないのでしょうか?

318 :デフォルトの名無しさん:2008/11/03(月) 13:51:15
>>317
純粋に方法論ということならIndexOfを使うとか、Listに登録するオブジェクト自身に
リスト内のIndexを持たせるとかもありそうだけど、普通に考えれば
ループ内でIndexを使うのにあえて頑なにFor Eachを使うメリットが分からない。

319 :デフォルトの名無しさん:2008/11/03(月) 13:56:21
Listは配列みたいに添え字でアクセスすればいいけど
Dictionaryの順番はほとんど無意味だから数えない方がいいよ

320 :317:2008/11/03(月) 18:53:43
ありがとうございます。
参考になりました


321 :デフォルトの名無しさん:2008/11/04(火) 08:26:12
初心車 なんですが。

VB2008 Express Editionでなんとか動く物を作ってみました。

さて、その先、配布ってどうすればいいんですか?
やり方もわからんDQNです。

そもそも、Express Editionで配布って可能なんですか?


322 :デフォルトの名無しさん:2008/11/04(火) 09:47:42
できませんよ
製品版を買ってください

323 :デフォルトの名無しさん:2008/11/04(火) 11:55:14
>>321
確かに FAQ すら読まない DQN だ。
ttp://www.microsoft.com/japan/msdn/vstudio/express/faq/2008/default.aspx

でもだからって
>>322
ウソはいくない。

324 :デフォルトの名無しさん:2008/11/04(火) 13:39:35
>323
だめです。

どこを読めば良いのかわかりません。orz

325 :デフォルトの名無しさん:2008/11/04(火) 13:47:45
車じゃ読めないよなぁ・・・

326 :デフォルトの名無しさん:2008/11/04(火) 16:08:01
失礼します。
VisualBasic 2008 ExpressEditionで下記URLのシリアルポート通信プログラムを作ってみたのですが、DataReceivedイベントが発生しません。
http://www.geocities.jp/hatanero/rs232c5.html
ポート設定は合わせましたし、ハイパーターミナルにて受信することを確認しているのでケーブル等の問題ではありません。
何か他に必要なことがありましたら、教えてください。
よろしくお願いします。

327 :デフォルトの名無しさん:2008/11/04(火) 17:15:27
ここに、エスパーはいらっしゃいますか?

328 : ◆MtLFb74m1U :2008/11/04(火) 18:50:08
エスパーでも誰でもいいので、助けてください。
シリアルポートの受信イベントが何をやっても発生しません。

http://msdn.microsoft.com/ja-jp/library/cc720852.aspx
からサンプルプログラムを実行しても、動きませんでした。

SerialPort1のプロパティは見ました。
この場合、後は何を見ればよいのでしょうか?
よろしくお願いします。

329 : ◆MtLFb74m1U :2008/11/04(火) 19:18:23
すいません、なんとか自己解決できました。

330 :デフォルトの名無しさん:2008/11/04(火) 20:01:17
おいまてw

331 :デフォルトの名無しさん:2008/11/04(火) 20:30:36
お願いします

Private Sub Button1_Clickなんとかかんとか

 Dim Yakuyear() As Integer = New Integer() {}
 Dim Yakuage() As Integer = New Integer() {25, 42, 61}
 Dim Birthyear As Integer
 Dim Yakukind() As String = New String() {"前厄", "本厄", "後厄"}

  If Integer.TryParse(TextBox1.Text, Birthyear) Then
    For i As Integer = 0 To 2
    Yakuyear(i) = Birthyear + Yakuage(i) - 1
     For j As Integer = 0 To 2
       ListBox1.Items.Add(Yakukind(i) & "…" & (Yakuyear(i) - 1) & "年")
     Next
    Next
  Else
    ListBox1.Items.Add("error")
  End If

End Sub

デバッグしてみたらYakuyear(i) = Birthyear + Yakuage(i) - 1のところに
インデックスがリストサイズより小さくなるようにしてくださいみたいな表示が出ました
配列の要素数を予め決めてないので、配列のサイズより大きくはなっていないと思います
どう直したらいいんでしょうか

332 :デフォルトの名無しさん:2008/11/04(火) 21:11:53
>>331
あんた才能なさ過ぎるわ。
みたいな表示が〜、じゃなくてエラーメッセージのマンマだろ。

初心者だからって自分に言い訳してるかも知れんし、確かに初心者なら
その手のミスはありがちかもしれんが、普通の神経ならそんな恥ずかしいコードを
ろくに自分で悩んでデバッグもしないうちにこんなところに晒さない。

止めた方がいいと思うよマジで。

333 :デフォルトの名無しさん:2008/11/04(火) 21:20:26
>>331みたいなやつってさあ・・・
いや、>>332が俺の言いたいこと全部言ってたからやっぱなんでもないわ

334 :デフォルトの名無しさん:2008/11/04(火) 21:21:58
>>331
俺が勉強始めた初日を彷彿とさせる

335 :デフォルトの名無しさん:2008/11/04(火) 21:27:22
>>332
ここって恥ずかしくて人に見せられないようなコードも気軽に晒せちゃう場所だと思うぜ
それを目にするのが嫌な人はいるだろうけど
そして>>331はいくらなんでもそんくらい自分で考えようぜ

336 :デフォルトの名無しさん:2008/11/04(火) 21:28:05
VBから始めたら良くある罠だろ・・・

337 :デフォルトの名無しさん:2008/11/04(火) 21:36:42
>>331

> 配列の要素数を予め決めてないので、配列のサイズより大きくはなっていないと思います

これがまんま答え

338 :デフォルトの名無しさん:2008/11/04(火) 21:39:46
基本中の基本だから、「VB 配列」あたりでぐぐって
一通りVBの配列に関する基礎情報を読んだ方が良いな。

339 :デフォルトの名無しさん:2008/11/04(火) 21:40:47
>>331
宿題か?
優しい俺様が教えてやろう
1行目のDim →  Dim Yakuyear(2) As Integer

340 :デフォルトの名無しさん:2008/11/04(火) 21:43:10
>>339
嫌がらせキタ━━━━━━(゚∀゚)━━━━━━ !!

341 :デフォルトの名無しさん:2008/11/04(火) 23:07:53
>>331です
お騒がせしてしまっているみたいで申し訳ないです
>>337さんを読んで
配列の要素数は予め決めていないといけないか
配列の要素数が少なすぎるかだろうというところまで辿り着きました
>>338さんの言うとおりぐぐってきます
申し訳ないです

342 :デフォルトの名無しさん:2008/11/04(火) 23:14:44
要素がない配列の要素にはアクセスできない・・・

343 :デフォルトの名無しさん:2008/11/04(火) 23:18:31
配列の要素数を宣言する必要がない言語しか知らなかった人なんだろう、きっと。

344 :デフォルトの名無しさん:2008/11/05(水) 00:02:29
リッチテキストボックスで、
DetectUrls = true 
の状態で作成されたリンクを開く方法教えてください

345 :デフォルトの名無しさん:2008/11/05(水) 00:15:04
開くっつっても色々あるが

346 :デフォルトの名無しさん:2008/11/05(水) 14:51:49
フォルダ→右クリで「プロパティ」→セキュリティタブ
で表示される、「グループ名またはユーザ名」のアイテムを、
どうやったら削除できるでしょうか? (簡易表示オフ)

現在、フォルダに対して下記のコードで、各々のユーザにアクセス権を設定しています。
http://msdn.microsoft.com/ja-jp/library/system.security.accesscontrol.filesecurity.aspx

AccessControlのRemoveAccessRuleメソッドで消せるかなと思ったのですが、
上記ではアクセス許可が「なし」になるだけでした。

アクセス許可を「なし」にしたいのではなく、「削除」して、アクセス権を設定する前の
状態に戻したいのですが、どうすばできるでしょうか

347 :デフォルトの名無しさん:2008/11/05(水) 15:00:57
>>342>>343
ありがとうございます
>>342さんの言うとおりでした

348 :デフォルトの名無しさん:2008/11/05(水) 19:37:37
>>346
前の状態、なんて保持してないだろ。
というわけで、親オブジェクトにあわせるとか、なんらかの設定が必要だと思われ。

349 :デフォルトの名無しさん:2008/11/05(水) 22:52:12
簡単な質問だと回答多いなw

350 :デフォルトの名無しさん:2008/11/06(木) 01:20:46
>>344
LinkClicked イベントのイベント ハンドラを作成し、コントロール内でクリックされたすべてのリンクを処理できます。

だってさ。

351 :デフォルトの名無しさん:2008/11/06(木) 09:15:14
>>349
そりゃぁ仕方ないと思うが・・・

352 :デフォルトの名無しさん:2008/11/06(木) 11:09:22
>>348
ありがとう。
対象のAccessControl.RemoveAccessRuleの2番目の引数に、FullControlを
指定したら消すことができました。

なんでこういう動きになったかよくわからないけど、
おそらく346で自分がやっていたことは、

EveryoneがフォルダXに対してRead権限とWrite権限を持っている状態で、
RemoveAccessRuleでWrite権限だけ削除して、「なぜまだ表示されてるの?」
と思っていたんだと思います。
当然まだRead権限が残っているから、表示されていた…のかな?

>アクセス許可が「なし」になるだけでした。

と346では言っていましたが、
おそらくセキュリティタブ→詳細設定→編集→アクセス許可エントリ
でないと見えないよう小さい権限が残っていたのかもしれません。

353 :デフォルトの名無しさん:2008/11/06(木) 13:17:44
モードによってフォームの内容を大幅に変えるときは、
モードごとにUserControlを作って切り替える方法が一般的でしょうか?

354 :デフォルトの名無しさん:2008/11/06(木) 13:33:46
>>353
俺はすごく小さい場合の案件除いて目的が大きく異なるなら分けて作ってる。
共通レイアウト用にベースのフォーム作って継承して使うとか、共通のインターフェイス使うとかで
とりあえずフォーム自体を分けて作ってる。
外からそこに呼び出しが必要なら外部に公開しているインターフェイス経由で呼び出すとかで共通化して対応


355 :353:2008/11/06(木) 14:31:16
>>354
切り替えの際は新しいフォームをShowして自分をCloseするのでいいんでしょうか?
これだとタスクバーが一瞬ちらつきますが、それはしょうがないですか?

356 :デフォルトの名無しさん:2008/11/06(木) 14:40:35
>>355
いくらでも方法はあると思うんだけど
例えば
表示切り替えしたい親のフォームにパネルをDockをFillで張り付けるとかして
そこに2つのフォームを外枠を消して突っ込むとか
で、2つをLoadだけすませておいてVisible切り替えるとか

ちなみにさっきのは1例なだけで、どうするかはコントロールの数とか制御の具合によりけりだと

こんなことやってるとこのスレの連中に何めんどくさいことやってるんだ
とかいわれそうなんだがw

357 :353:2008/11/06(木) 15:02:06
>>356
すいません、
>そこに2つのフォームを外枠を消して突っ込むとか
panel1.Controls.Add(form)
とすると「トップレベルのコントロールをコントロールに追加できません。」
というArgumentExceptionになるのですが、こうではないのでしょうか?

切り替えたい部分だけをUserControlにしておけばそれと同じことが
できるのですが、UserControlが多くなるとVisualStudioが重くなるんですよね…
そうでなければUserControlでいいのですが。

358 :デフォルトの名無しさん:2008/11/06(木) 16:06:26
トップレベルのままじゃだめ

359 :デフォルトの名無しさん:2008/11/06(木) 19:06:36
実引数にクラス(インスタンス)を入れて、それを仮引数のストリング型に入れることは出来ますか?

360 :デフォルトの名無しさん:2008/11/06(木) 19:15:04
それくらいまず試せよ

361 :デフォルトの名無しさん:2008/11/06(木) 21:22:47
Stringクラスのインスタンスならもちろんできるしそうでないなら無理

362 :デフォルトの名無しさん:2008/11/06(木) 21:42:40
Forループ使うとき
(1)
Dim i as Integer
For i=0 to 10
(2)
For i as Integer to 10

って書くの、どちらが良いのでしょうか?
私は(2)のほうが、iが使用後に参照されない一時的なものになるので
ベターだと思うのですが。

363 :デフォルトの名無しさん:2008/11/06(木) 21:46:06
For i As Integer = 0 to 10

364 :デフォルトの名無しさん:2008/11/06(木) 21:50:32
便乗質問
同じ名前のループ用の変数を何度も使う場合、例えば↓
(1)
Dim i as Integer
For i=0 to 10
Next
For i=0 to 15
Next
For i=0 to 100
Next

(2)
For i as Integer =0to 10
Next
For i as Integer =0to 15
Next
For i as Integer =0to 100
Next


の場合も(2)の方が良さげ?

365 :デフォルトの名無しさん:2008/11/06(木) 21:51:32
(1)のほうがベター
>>364の場合は混乱のもとになるので尚更

366 :365:2008/11/06(木) 21:52:51
間違えた
(2)のほうがベター

367 :デフォルトの名無しさん:2008/11/06(木) 21:54:03
>>365
びっくりしたじゃないかw

368 :364:2008/11/06(木) 22:02:20
>365
サンクス。気をつけます

369 :デフォルトの名無しさん:2008/11/07(金) 09:47:38
そーゆーものだったのかー
俺は変数はまとめて宣言するほうが良いって昔教わったから、
(1)のほうが良いと思ってた

370 :デフォルトの名無しさん:2008/11/07(金) 09:54:00
VB6の時代はそうだったからね

371 :デフォルトの名無しさん:2008/11/07(金) 09:54:19
どっちでも好きなのを使うといいよ

372 :353:2008/11/07(金) 10:07:54
>>356 >>358
こんな感じでできました。ありがとうございます。
form.TopLevel = False
form.Visible = True
form.FormBorderStyle = FormBorderStyle.None
panel1.Controls.Add(form)
UserControlよりフォームを使うほうが単体でテスト実行できるし、
VSも重くならないしでよさそうですね。
とりあえずこれでやってみます。

373 :デフォルトの名無しさん:2008/11/07(金) 10:52:36
>>369
まとめて宣言するとついつい使い回してしまい、わかりにくくなりやすい

374 :デフォルトの名無しさん:2008/11/07(金) 11:15:28
昔のBASICは最初にしか宣言できなかったから、その名残もあるだろうな

375 :デフォルトの名無しさん:2008/11/07(金) 14:16:12
LINQ to SQLを使いたくてImports System.Data.Linqとしてるんだけど
無償版だと使えないのかな?

”インポート 'System.Data.Linq' で指定された名前空間または型が…”
といった警告が表示されて先にすすめません…

376 :デフォルトの名無しさん:2008/11/07(金) 14:31:50
>>375
System.Linq

377 :375:2008/11/07(金) 14:44:23
返信、ありがとうございます。

Imports System.Linq
<Table(Name:="Customers")> _
Public Class ...

このような記述をしたいのですが同じ警告で止まってしまいます。
目的は動的にmdbファイルを作成する事です。

情報の小出しになってしまい申し訳ありません。

378 :デフォルトの名無しさん:2008/11/07(金) 14:51:28
・2005を使っていた
・System.Core.dll/System.Data.Linq.dllを参照できていない

つか詳しくは無いがLinq to SQLでテーブルの作成とかできたっけ?

379 :375:2008/11/07(金) 14:56:42
返信ありがとうございます。
本当に助かります。

実は以下を見ながら実装をしております。
http://msdn.microsoft.com/ja-jp/library/bb399379.aspx

VBとあったの出来るのかな?と思ったのですがいかがでしょうか?

先ほどDVDからの再インストールをしてみましたが症状は変わりませんでした。

以上、よろしくお願いします。

380 :375:2008/11/07(金) 15:02:05
連投、申し訳ありません。
自己解決しました。

原因は"System.Data.Linq を参照せよ"の記述の見逃し。
ほんとおっちょこちょいで申し訳ないです…。

回答してくださった方、ありがとうございました。

381 :デフォルトの名無しさん:2008/11/07(金) 15:24:10
あっはっは!
おっちょこちょいだな〜

382 :デフォルトの名無しさん:2008/11/07(金) 16:44:48
AppPositionて何のことですか?

ネトゲのツール落としたらiniに記述あったんだけど

383 :デフォルトの名無しさん:2008/11/07(金) 16:50:27
>>382
作った奴に聞け。
多分スタートアップフォームのウインドウ左上のスクリーン座標だと思うが

384 :デフォルトの名無しさん:2008/11/07(金) 16:51:50
ツールの作者に聞け
画面位置とかじゃね?

385 :デフォルトの名無しさん:2008/11/07(金) 20:12:45
みんなやさしいw

386 :デフォルトの名無しさん:2008/11/07(金) 21:06:42
VBってC#と違ってなぜか(手抜きとしか思えないんだが)デリゲートに対して
代入加算演算子が使えないよね?

おかげで、例えばカスタムイベントなんか書くときに
式が長くなって面倒だし見難いしでイライラするんだけど、何かいい工夫ない?

ジェネリックメソッドで何とかしてみようと最初考えたんだが、
どういうわけか型パラメータの制約にデリゲートは指定できんないんだよねこれが。

387 :デフォルトの名無しさん:2008/11/07(金) 21:29:14
代入加算演算子ってインクリメントのこと?


388 :デフォルトの名無しさん:2008/11/07(金) 22:03:58
+= のこと

無理矢理ジェネリック拡張メソッドを書いてみた
<Extension> Sub [AddHandler](Of T As Class)(ByRef x As T, y As T)
    Dim xx As [Delegate] = DirectCast(DirectCast(x, Object), [Delegate])
    Dim yy As [Delegate] = DirectCast(DirectCast(y, Object), [Delegate])
    x = DirectCast(DirectCast([Delegate].Combine(xx, yy), Object), T)
End Sub

' 使い方
Dim fn As Action = AddressOf Do1
fn.AddHandler(AddressOf Do2)
fn()

389 :デフォルトの名無しさん:2008/11/07(金) 22:12:38
普通に加算演算子もつかえないんだっけ…?


390 :デフォルトの名無しさん:2008/11/07(金) 22:22:02
まあ加算演算が使えるなら加算代入演算もできるわけだからな

391 :デフォルトの名無しさん:2008/11/07(金) 22:30:26
そのためのCombineでないの?

392 :デフォルトの名無しさん:2008/11/07(金) 22:35:11
CombineはDelegateしか返さんのでいちいちキャストめんどい、ってのが386の趣旨だろ?

393 :デフォルトの名無しさん:2008/11/07(金) 22:38:52
>>388
これってVB9?
いずれにしてもやっぱり簡単で綺麗な方法はないんだよねやっぱり。。

>>391
例えばEventHandler(Of HogeChangedEventArgs)をCombineするコードを
書いてみれば言ってる意味がわかってもらえると思うよ。
ジュゲムジュゲムみたいなコードになるからw

これが物理的にどうしようもないことなら諦めもつくんだけど
C#だと同じコードがずっとシンプルに書けるから余計腹が立つんだよ。

394 :デフォルトの名無しさん:2008/11/07(金) 22:41:39
C#使えばええやん?

395 :デフォルトの名無しさん:2008/11/07(金) 23:33:00
それができないから聞いてるんじゃね?

396 :デフォルトの名無しさん:2008/11/07(金) 23:37:56
>>364で(2)のほうがベターな理由って何なんすか?

397 :デフォルトの名無しさん:2008/11/07(金) 23:39:05
メクラかお前。

398 :デフォルトの名無しさん:2008/11/07(金) 23:41:15
俺に言ってるのか?

399 :デフォルトの名無しさん:2008/11/07(金) 23:46:52
お前は誰だ

400 :デフォルトの名無しさん:2008/11/08(土) 00:02:05
なんじゃこりゃ

401 :デフォルトの名無しさん:2008/11/08(土) 01:04:33
>>396
バグを生みにくいコーディングだから。
パフォーマンスに影響が出るかもしれないから。

あとなんかあるかな。


402 :デフォルトの名無しさん:2008/11/08(土) 01:24:25
(2)みたいにその都度宣言する場合、
宣言と使い終わったら時の開放処理が増えるわけだから
パフォーマンスは低下しそうなもんだが。

よっぽどじゃない限り影響なんてコンマ単位ですら出ないだろけど

403 :デフォルトの名無しさん:2008/11/08(土) 01:33:00
>>396
>>364のコードに限定すれば(2)でも実害はない。
でも普通のプログラマならたとえ実害がないことは認めても必要もないのに
(2)のように書きたいとは思わない。

理由は、変数のスコープは短いほど安全でミスを犯しにくく、ミスがあっても
発見しやすいから。
プログラマは変数が宣言されてからスコープを抜けて死ぬまで、
その変数に対してなされる操作に注意を払う必要がある。

注意を払う変数が1つならミスも起こりにくいかもしれないが、
スコープが長くなれば必然的に同時に意識する必要のある変数の数も増える。
人間は一般に多数のものに同時に注意を払うことは難しい。

こういうのはプログムを書いてるときのマインドのままだと理解できないかもしれない。
頭を他人のプログラムを読んでるときのマインドに切り替えて考える必要がある。

404 :デフォルトの名無しさん:2008/11/08(土) 01:36:45
すまん>>403の(2)は(1)に読み替えて欲しいw

405 :デフォルトの名無しさん:2008/11/08(土) 01:49:01
>>403
(1)と(2)間違えてるよね?

>>402
>宣言と使い終わったら時の開放処理が増えるわけだから
逆。コンパイラが最適化しやすくなるため、むしろパフォーマンスがあがる可能性のほうが高い。
CPUのレジスタだけで処理が可能と判断されれば開放処理なんてコード吐かれないし。

これが i のような変数じゃなくて、オブジェクトだったら話は変わってくるかもしれんがな。

406 :396:2008/11/08(土) 08:42:46
なるほど。
ただ俺はぱっと見で
For i as Integer = 0 to 10って見ずらいんだよねw

407 :デフォルトの名無しさん:2008/11/08(土) 11:04:54
そのうち
For i as Integer = 0 to 10

For i = 0 to 10
でもおkになったりして

408 :デフォルトの名無しさん:2008/11/08(土) 11:36:56
そのうち?


409 :デフォルトの名無しさん:2008/11/08(土) 11:42:33
それはローカル変数と区別できないからありえない
型推論させるなら、For Dim i = 0 to 10かな
C#ならfor (var i = 0; i < 10; i++)と書ける

410 :デフォルトの名無しさん:2008/11/08(土) 11:56:29
BASICはPascalの文法を参考に構造化方面の拡張をやった。
VB.NETで急にC/C#風の文法を持ち込んだもんで構文的にしんどくなってる。

411 :デフォルトの名無しさん:2008/11/08(土) 12:02:18
ラムダ式の書きづらさは相当

412 :デフォルトの名無しさん:2008/11/08(土) 12:03:29
いいかげん意地張るのやめて{ }使えばいいのにw

413 :デフォルトの名無しさん:2008/11/08(土) 12:10:02
>>364 >>396
私は
同じ意味の変数を何回も使うならまとめて最初に定義 (1)
いろんな意味のループを別々に使うならそのつど定義 (2)
してます。


414 :デフォルトの名無しさん:2008/11/08(土) 12:12:43
配列に対する0 to Length-1のループは最適化されるはずだけど
(1)だとどうなんだろう

415 :デフォルトの名無しさん:2008/11/08(土) 12:12:58
>>412
行指向の構文に{ }を持ち込むとRubyみたくなって見るに忍びない

416 :デフォルトの名無しさん:2008/11/08(土) 14:25:55
192 名前:名無しさん@九周年[] 投稿日:2008/11/07(金) 00:36:02 ID:gnpqxxjf0
汚染米なぜ輸入された[独占]新事実天下り≠フ闇

農水天下り毒米輸入販売利権
http://jp.youtube.com/watch?v=5PC18chpBkU

194 名前:名無しさん@九周年[] 投稿日:2008/11/07(金) 00:38:36 ID:2D2Wa1dD0
>> 181
汚染米 混乱続く農水省 ずさん調査の実態
http://jp.youtube.com/watch?v=UHhpzbcRd1w

これで高い給料受け取ってるんだから笑える。


417 :デフォルトの名無しさん:2008/11/08(土) 14:48:00
コピペ君って馬鹿だな、まで読んだ。

418 :デフォルトの名無しさん:2008/11/08(土) 15:57:04
>>411
次期バージョンではラムダ式の複数行記述が可能らしい。

寧ろLINQの方が言語仕様上アレだと思う。


419 :デフォルトの名無しさん:2008/11/08(土) 16:06:43
ラムダ式が書きづらいおかげで、クエリ演算子をなんでもかんでも言語に組み込んじゃってるもんな
何十年前だw

420 :デフォルトの名無しさん:2008/11/08(土) 16:55:29
VB10の複数行ラムダ式はこういう風にデリゲート変数に代入するならいいけど、
Dim y = Function(x)
 :
           End Function
式の途中にインラインで書くときはしんどいね。継続行記号の有無加減が微妙そうだ。
a = 1000 + Nantoka("abc", _
  Function(x)
    If x > 0 Then
      Return x
    Else
      Return -x
    End If
  End Function _
  ) * 2
コロン使って1行に詰め込むのかな?
a = 1000 + Nantoka("abc", Function(x) : If x > 0 Then : Return x : Else : Return -x : End If : End Function) * 2


421 :デフォルトの名無しさん:2008/11/08(土) 17:01:28
C#なら x => { if (x > 0) return x; else return -x; } だもんなあ…
正直、>>420みたいなの書くくらいなら普通にメソッド書いたほうがマシだと思う

422 :デフォルトの名無しさん:2008/11/09(日) 03:03:02
ShowDialogと同じような効果(アプリケーションの一番手前に常に表示)を
Form.Showで実装したいのですが以下を試してみてもうまくいきません

TopMost = True
Form.Activate
<DllImport("user32")> _
Public Shared Function SetForegroundWindow(ByVal hWnd As IntPtr) As Integer
End Function
DeactivateでSetForegroundWindow(Me.Handle)

何か方法はあるのでしょうか?

423 :デフォルトの名無しさん:2008/11/09(日) 12:49:45
>>422

Form2.Show(me)
じゃだめなのかね。


424 :デフォルトの名無しさん:2008/11/09(日) 12:50:54
ちと説明不足だった。

Form1からForm2を起動するとき、

Form2.Show(me)

ってな感じで


425 :デフォルトの名無しさん:2008/11/09(日) 12:58:32
常にOwnerの手前に表示するだけなら>>424
すべての手前に表示したいなら>>424+TopMost =Trueでいいと思う
でもあくまでモードレスなのでShowDialogとは違う

426 :デフォルトの名無しさん:2008/11/09(日) 15:17:52
>>423,424
こんな方法があったのですね。
目から鱗です。

>>425
ShowDialogの様な動作を期待していたのですが無理なようですね…
TopMostをTrueにしても呼び出し側を操作出来たりするのがShowDialogと違うところで…

マウスをハックしたりして似たような動作が出来ないかなぁとか思いつつも
技量が無くて途方にくれております。


お二方、ありがとうございました。

427 :デフォルトの名無しさん:2008/11/09(日) 15:35:27
ShowDialogで駄目な理由はなんなの?

428 :デフォルトの名無しさん:2008/11/09(日) 15:42:12
>>426
>>424+呼び出し元ウィンドウのEnabled変えれば
ShowDialogと同じになんじゃね?

429 :デフォルトの名無しさん:2008/11/09(日) 16:02:11
やってないからわからんけど
所有側をenabledにしても非所有側は最小化はできてしまうと思う

430 :デフォルトの名無しさん:2008/11/09(日) 17:37:41
>>427
呼び出し元の処理を継続したいからです

>>428
ビンゴ!!
目的達成しました
ありがとうございました

431 :デフォルトの名無しさん:2008/11/09(日) 22:02:41
変な質問なんですが
public class abc
  private a as object
  public sub aaa()
    a = new object
    a = new object
    a = new object
  sub end
class end

とした場合、
このクラスが使われなくなったら破棄されるのはわかります。
もしクラス使用中でだとNew3回分のメモリが確保されたままですか?
それとも二回目のNewで一回目Newの分のメモリは開放されますか?

432 :デフォルトの名無しさん:2008/11/09(日) 22:14:04
参照されなくなったらそのうち解放される

433 :デフォルトの名無しさん:2008/11/09(日) 22:29:32
確実に3回分のメモリが確保されると思う。
ガベージ任せでBitmapの開放処理入れなかったらメモリを無尽蔵に使われたことがある。



434 :デフォルトの名無しさん:2008/11/09(日) 22:34:33
Bitmapはアンマネージリソース持ってるから一緒にしてはいけない

435 :デフォルトの名無しさん:2008/11/09(日) 22:35:36
Bitmapが占有する大部分のメモリはアンマネージド
マネージドなメモリが圧迫されない間はGCがあんまり働かないのは当然

436 :デフォルトの名無しさん:2008/11/10(月) 00:37:34
正直標準でいまどきメモリ1G積んでるのに
そんなコードレベルでのメモリの開放なんて意識する必要あるの?

正直俺はあまり意識していない。
だってマシンの性能がVb6の頃と比べてかなりあがってるもの。

437 :デフォルトの名無しさん:2008/11/10(月) 00:50:55
まあ「メモリ解放」は気にする必要ないね
IDisposableのDisposeに気を配ってれば良し

438 :デフォルトの名無しさん:2008/11/10(月) 01:26:14
つかDispose自体もWindow.Close()をしたらそのコード自体書かなくても問題無いでしょ?
さすがに形上仕事の時にはコード書いてるけどさ。

あと、PCの性能が相当あがっているから
言語自体に色々な機能が追加(バージョンアップ)されたとしても
(例えばC#3.0→C#3.5とか)
別に使わなくても要件を満たす事が出来るのなら別に使わなくても良いと思うんだけど。

お前らはどう思う?

だってVB6が出てもう10年たっているのに過去の資産を見ればVB6の方が多いしね。


439 :デフォルトの名無しさん:2008/11/10(月) 03:13:35
単に使いこなせない言い訳じゃなくて、
使おうと思えば自由自在に使えるけどめんどくさいからor好きじゃないからorほとんど影響出ない事知ってるから使わない、なら
そうですか
と。

440 :デフォルトの名無しさん:2008/11/10(月) 14:20:34
OS Version:Vista/XP
VS Version:2008

ListViewコントロールの挿入マークで質問です。
下記のURLではListView.View プロパティを View.LargeIcon, View.SmallIcon またはView.Tile に設定する必要があると書かれていますが、
View.Detailでは表示できないのでしょうか?
現状VistaではView.Detailでも挿入マークを表示することができましたが、XPだと表示できません。

ttp://msdn.microsoft.com/ja-jp/library/system.windows.forms.listviewinsertionmark.aspx

441 :デフォルトの名無しさん:2008/11/10(月) 15:45:28
>>436
>>437
>>438
そんなことだからおまえらは虫ケラなんだよ。

442 :デフォルトの名無しさん:2008/11/10(月) 16:41:19
虫ケラって久しぶりに聞いた

443 :デフォルトの名無しさん:2008/11/11(火) 01:27:06
VB2005で開発をしているのですが、
メソッドの上で
'''
と入力しても処理概要、引数、戻り値
についてのコメントを入力するエリアが表示されなくなってしまいました。
どうすれば直りますか?


※この事象が発生する前後にツール → オプション
で色々と弄った事が原因と思われます。


444 :デフォルトの名無しさん:2008/11/11(火) 02:34:11
プロジェクトのプロパティ>コンパイル>XMLドキュメントファイルを生成する

445 :デフォルトの名無しさん:2008/11/11(火) 02:48:57
>>444
あざーっす!!!!

446 :デフォルトの名無しさん:2008/11/11(火) 17:53:50
フォルダ指定ダイアログからファイルを選択させるようにする為に下記URL情報を参照してVB.NETにコンバートしました。
ttp://support.microsoft.com/kb/306285/ja
ここまではよかったんですが、既定のフォルダを指定させようと思いコールバック関数を使用して実装してみたのですが
うまくいきません。
ループバック関数はちゃんと呼ばれていますが、下記ロジックでおかしなところがありますでしょうか?
諸先輩方ご教授お願いします。

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByRef lParam As String) As Integer
Public Function BFFCallback(ByVal hwnd As IntPtr, ByVal uMsg As UInt32, ByVal lParam As IntPtr, ByVal lpData As String) As Integer
'フォルダを指定のメッセージをダイアログへ送信
If uMsg = BFFM_INITIALIZED Then
Call SendMessage(hwnd, (&H400S + 102), True, lpData)
End If
End Function


447 :デフォルトの名無しさん:2008/11/11(火) 18:12:20
今時VB.NET2002使ってるわけも無いだろうからFolderBrowserDialog使いなよ

448 :デフォルトの名無しさん:2008/11/11(火) 18:26:15
>>447さん

FolderBrowserDialogだとファイル選択できないんですよね・・・
FolderBrowserDialogでファイル選択をできるようにできればそれが一番いいんですが。。

449 :デフォルトの名無しさん:2008/11/11(火) 18:26:44
配列の中身の合計を返すクラス、よかったら教えてくだはい!
Dim int As Integer() = {92, 32, 12, 32}
arySum = Array.Sum(int)

見たいな感じのを希望してます!

450 :デフォルトの名無しさん:2008/11/11(火) 18:36:42
>>448
OpenFileDialog使えばいいじゃない

451 :デフォルトの名無しさん:2008/11/11(火) 18:38:34
>>449
Enumerable.Sum

>>446
SendMessageの第四引数はByVal

452 :デフォルトの名無しさん:2008/11/11(火) 19:03:47
>>450
OpenFileDialogだとフォルダ選択できないですよね・・・
OpenFileDialogでフォルダ選択をできるようにできればそれでもOKなんですが。

>>451
ありがとうございます。確認してみますー



453 :デフォルトの名無しさん:2008/11/11(火) 19:14:20
>>451
ありがとー

454 :デフォルトの名無しさん:2008/11/11(火) 19:17:05
>>452
フォルダまたはファイルのどちらも選択可能にしたいってこと?
不思議な需要だね。

455 :デフォルトの名無しさん:2008/11/11(火) 19:28:42
音楽再生ソフトで、
ファイルをD&Dするとそのファイルが再生リストに追加されて、
フォルダをD&Dするとそのファイル内にある再生可能なファイルが一括で再生リストに追加される、ってのがあったな。

456 :デフォルトの名無しさん:2008/11/11(火) 19:32:48
すいません、シリアルポートで取得したデータをイベントハンドラ(SerialPort1_DataReceived)で表示させようとしたら、以下のエラーが出ました。
『有効ではないスレッド間の操作: コントロールが作成されたスレッド以外のスレッドからコントロール 'Label1' がアクセスされました。』
Form1.Label1やMe.Label1としても同じエラーが出ました。

ヘルプ等を見たのですが、Classとスレッドの違いがわかりません。
スレッドとは一体何なのでしょうか?
よろしくお願いします。

457 :デフォルトの名無しさん:2008/11/11(火) 20:32:19
スレッドとクラスの違いなんて言ってるんじゃ話になりません。
それじゃあクラスとインスタンスの違いはわかりますか?
とりあえずスレッドからコントロール触るときはControl.Invoke使ってください

458 :デフォルトの名無しさん:2008/11/12(水) 03:10:51
Private Test As String()
Private TestDic As Dictionary(Of String,Integer)
という変数があり、

TestDic(【文字列】)=【数値】なら、プロパティの引数が【文字列】でも【数値】でも
同じ返り値Test(【数値】)を得たいのですが

 Public ReadOnly Property Prop1(ByVal number As Integer) As String '※1
  Get
  If (何か条件式) = True Then
  Return Test(num)
  Else
  Return ""
  End If
  End Get
 End Property

 Public ReadOnly Property Prop1(ByVal name As String) As String '※2
  Get
  Return Prop1(TestDic(name))
  End Get
 End Property

としても問題ないでしょうか。構文エラーは出ないようですが。

それとも、※2のGet内も※1と同様に
If (何か条件式) = True Then
Return Test(TestDic(name))
Else
Return ""
End If
のようにするべきなのでしょうか。

459 :デフォルトの名無しさん:2008/11/12(水) 08:53:02
引数付きプロパティは使わない方がいいよ
その二つでどちらがいいかといえば上の方がいいけど

460 :デフォルトの名無しさん:2008/11/12(水) 10:54:45
>>458
問題はないだろうが、ただ
>  If (何か条件式) = True Then
これは恥ずかしいからやめとけ。
条件式はBooleanを戻すのに、なんでまた
Booleanと比較する条件式にしたがるんだ。

461 :デフォルトの名無しさん:2008/11/12(水) 10:57:42
自分だけが分かり易ければいいから。

462 :デフォルトの名無しさん:2008/11/12(水) 13:35:33
え、引数つきプロパティってヤバいの?

463 :デフォルトの名無しさん:2008/11/12(水) 13:40:56
ガイドライン「デフォルトプロパティ以外の引数付きプロパティは使うな」

464 :デフォルトの名無しさん:2008/11/12(水) 17:23:21
クラス内で、自分自身が宣言された変数名を取得する方法ってない?


465 :デフォルトの名無しさん:2008/11/12(水) 17:32:34
意味不明すぎる

466 :デフォルトの名無しさん:2008/11/12(水) 18:59:08
>>462
C#ではデフォルトプロパティ以外の引数付きプロパティが使えないため

>>464
ローカル変数は無理、フィールドならリフレクションを使って探しまわれば可能

467 :デフォルトの名無しさん:2008/11/12(水) 20:51:57
教えてください。

Buttonを継承したカスタムコントロールButtonBase(ButtonBase.dll)を作り
そのButtonBaseを継承してMyButton(MyButton.dll)というカスタムコントロールを作っています。

このMyButtonをフォームに貼り付けてコンパイルしますとButtonBaseのdllへの参照がない、とエラーになってしまいます。
参照を追加すればいいのですが、MyButtonを追加した時点でButtonBaseへの参照も自動的に追加されるように出来ないでしょうか?
環境はVB2008Exp、.NetFrameWork3.5、OSはXPです。
よろしくお願いします。


468 :デフォルトの名無しさん:2008/11/12(水) 22:00:40
データグリッドビューなんだけど
http://dobon.net/vb/dotnet/datagridview/rowpostpaint.html
これで横線の色は変えられるけど縦線の色変える方法はないの?

469 :デフォルトの名無しさん:2008/11/12(水) 23:06:50
>>462
引数付きプロパティが単純にダメと思われてしまいそうだな。
出来ればそういうのはちゃんとコレクション作ってクラス設計して欲しいということらしい。


470 :デフォルトの名無しさん:2008/11/12(水) 23:14:54
VBにもC#にも(まあC++とかJavaもそうなのかも知れんが)どうして
(ベースクラスにおいて)継承後の型のインスタンスを表すキーワード(Meやthis)
はあっても継承後の型を表すキーワードってないんだろうか。

おかげで継承後の型のインスタンスを返すメソッドをベースクラスに書こうと思っても
書けやしない。(まあ特定の前提があればジェネリックを使ってできないこともないが。)

471 :デフォルトの名無しさん:2008/11/12(水) 23:16:20
>>469
個人手にはそんなものを禁止するガイドラインの方に問題があると思ってるけどな。

472 :デフォルトの名無しさん:2008/11/12(水) 23:26:54
463を見て、慌ててプロパティをSubとFunctionに分ける作業を始めた俺が来ますた。

…ちゃんとした設計とか今の俺にはできそうにないから
引数つきプロパティはデフォルト以外しばらく自重します。

473 :デフォルトの名無しさん:2008/11/12(水) 23:42:14
別に今後仕様が変わるわけじゃないぞ。



474 :デフォルトの名無しさん:2008/11/12(水) 23:44:56
ちゃんと設計しろっていうのは、引数付きプロパティを上手く使うという意味じゃなくて
デフォルトの引数付きプロパティのみでうまいことやるって意味だよ

475 :デフォルトの名無しさん:2008/11/12(水) 23:48:16
>>474
わざわざ引数付プロパティと等価なことを、せっかく引数付プロパティが
サポートされているのに使わないで、わざわざそれだけのためにインデクサを持った型を別途作って
そのインスタンスを返すようにする、なんてことが上手い実装とは
俺には死んでも思えないんだが。

476 :デフォルトの名無しさん:2008/11/12(水) 23:52:22
VB.net専用なら引数付きプロパティを使っても良い、C#から使われる可能性があるクラスなら ヤ メ ロ ★
…と俺は読んだんだが、間違ってるよな?

477 :デフォルトの名無しさん:2008/11/12(水) 23:52:45
>>475
VBラマとその他が相容れない部分だな


478 :デフォルトの名無しさん:2008/11/12(水) 23:56:18
>>476
「クラスライブラリ開発者向けのガイドライン」は、
外に出したときに馬鹿にされたくなければ従った方がいいよ
というような性格のもの

479 :デフォルトの名無しさん:2008/11/12(水) 23:56:56
>>477
言語は関係ないでしょ。
もっとも、インデクサ以外の引数付きプロパティなんてめってたに必要ないのも
確かなんだけどね。

ただ、あった方が便利な場合もないことはない。

480 :デフォルトの名無しさん:2008/11/13(木) 00:07:01
引数付きプロパティを設計したやつは池沼

481 :デフォルトの名無しさん:2008/11/13(木) 00:28:10
インデックス付きイベントはたまにちょっと欲しくなる
プロパティはいらない

482 :デフォルトの名無しさん:2008/11/13(木) 00:32:11
普通に引数付きプロパティ使ってます。

483 :デフォルトの名無しさん:2008/11/13(木) 01:54:27
例えば、こんなプロパティを作るんじゃなくて
Private _Items As String()

Public Property Items(ByVal index As Integer) As String
Get
Return _Items(index)
End Get
Set(ByVal value As String)
_Items(index) = value
End Set
End Property
---------------------------------------------------
こういうコレクションを作っておいて、
Public Class ItemCollection
Inherits List(Of String)
End Class

こういうプロパティにしたほうが使いやすいってことなんだぜ
Private _Items As ItemCollection

Public ReadOnly Property Items() As ItemCollection
Get
Return _Items
End Get
End Property



484 :デフォルトの名無しさん:2008/11/13(木) 03:33:44
>>483
ガイドライン的にはコレクションを返すプロパティも非推奨。
コレクションを返す場合は普通の関数を使う。

485 :デフォルトの名無しさん:2008/11/13(木) 03:41:50
ガイドライン的には
Public Function GetItems() As ItemCollection
にするべきだな

486 :デフォルトの名無しさん:2008/11/13(木) 05:20:12
>>470
キャストして使うじゃだめなの?

487 :デフォルトの名無しさん:2008/11/13(木) 09:08:55
>>484
え、マジで?
そんだったら標準のライブラリ全滅じゃん。

488 :デフォルトの名無しさん:2008/11/13(木) 10:45:30
>>487
標準のライブラリにありました?具体例挙げてみてちょうだい。

489 :デフォルトの名無しさん:2008/11/13(木) 10:52:42
そりゃコレクションつったらControl.Controlsからしてそうだろ

コレクションじゃなくて配列ならガイドラインにあるけどな
> 内部配列を保持するには、プロパティによって使用されている配列への参照ではなく、
> 配列の詳細コピーを返す必要があるため、操作によって配列が返される場合はメソッドを使用します。

490 :デフォルトの名無しさん:2008/11/13(木) 11:29:38
>>489
配列とごっちゃになってた。ありがと。

491 :デフォルトの名無しさん:2008/11/13(木) 11:33:18
ダブルバイト文字についての質問です。

アメリカでVS2005を使って開発されたアプリを使っていますが、
当然のことながら、日本語は気持ちよく文字化けします。

日本語を表示させたい部分は一カ所だけで、TreeViewのとある
一部分だけです。

そこで、アメリカ人(当然ダブルバイト等一切考慮したこと無い)
にお願いして、日本語を表示できるようにしたいのです。

ググったら、ダブルバイト用のDLL等はフリーで転がっているようですが、
それだけ渡しても面倒くさがってやってくれない気がします。

一カ所だけなので、例えば
treenode.text = nkf(UTF-8,"日本語")
みたいな感じで出来ないものでしょうか?

因みにソースコードは貰えません。

よろしくお願いします。

492 :デフォルトの名無しさん:2008/11/13(木) 11:41:45
VS2005?
言語はなんだよ禿

493 :デフォルトの名無しさん:2008/11/13(木) 12:09:33
これは酷い

494 :デフォルトの名無しさん:2008/11/13(木) 12:39:01
".net" で作ったアプリをギャクアセンブルさせせなくする(コードを見られないよう様にする)
事って出来ますか?



495 :デフォルトの名無しさん:2008/11/13(木) 12:47:35
できねーよ
難読化しろ禿

496 :デフォルトの名無しさん:2008/11/13(木) 13:21:15
>>492

VB.NETです。

497 :デフォルトの名無しさん:2008/11/13(木) 13:37:28
知らねーよ
自分で調べろ禿

498 :デフォルトの名無しさん:2008/11/13(木) 14:49:12
ソースコードはもらえませんって、お前さん自身がその程度の理解じゃもらえても宝の持ち腐れだろJK

その化ける文字の入力元次第だな

499 :デフォルトの名無しさん:2008/11/13(木) 17:08:32
つか、それフォントの問題なんじゃね?

500 :デフォルトの名無しさん:2008/11/13(木) 17:34:23
>>498

アプリケーションはサーバ(Linuxの箱)からデータを持ってきます。
アプリケーションとサーバ間の通信は、APIで行われていますが、
この仕様はわかりません。

>>499

ということは、Treeviewのフォントを、日本語のフォント(MS UI Gothicとか)に
変えて貰うといけそうですね。お願いしてみます。

ありがとうございます。

501 :デフォルトの名無しさん:2008/11/13(木) 17:55:26
VisualStudio2008を使用しています。
ボタンを押したら指定したmp3ファイルを再生し、ラベルに文字を表示するというプログラムを作成しています。
自分のPC上では以下のようにすれば実行できるのですが、他の人のPC上ですと、フォルダを置く場所が違うと実行できません。
ちなみにプロジェクト名はaaaaa、音声ファイルはbbbbb.mp3、テキストファイルはccccc.txtです。
音声ファイルbbbbb.mp3とテキストファイルccccc.txtはプロジェクトaaaaaに置いています。

Dim FileName As String = "C:\Documents and Settings\A\My Documents\Visual Studio 2008\Projects\aaaaa\bbbbb.mp3"
Call mciSendString(String.Format("open ""{0}"" alias MySound", FileName), "", 0, 0)
Call mciSendString("play MySound", "", 0, 0)
Label1.Text = IO.File.ReadAllText("C:\Documents and Settings\A\My Documents\Visual Studio 2008\Projects\ccccc.txt", System.Text.Encoding.GetEncoding("Shift-JIS"))

これを他の人のPC上でも実行できるようにするにはどのようにしたらよいのでしょうか?
調べたところ、パスを使うとかなんとか・・・

よくわからないので、お解りになる方がおられましたらご指南よろしくお願い致します。

502 :デフォルトの名無しさん:2008/11/13(木) 17:55:38
いや、解決ちゃうで
よほど変なフォントを指定してなきゃ、だいたいフォントリンクしてて日本語は出るはず。
byte配列をデコードするときのEncoding選択のバグじゃね? 知らんけど

503 :デフォルトの名無しさん:2008/11/13(木) 17:58:42
>>501
はぁ? デスクトップフォルダのパス決め打ちなの? 馬鹿?
Environment.GetFolderPath使ってくだちゃいね。

504 :デフォルトの名無しさん:2008/11/13(木) 17:59:55
通信してるらしいからな。
ASCIIオンリーだったりしてな。

505 :デフォルトの名無しさん:2008/11/13(木) 18:11:40
>>501です
Label1.Text = IO.File.ReadAllText("C:\Documents and Settings\A\My Documents\Visual Studio 2008\Projects\ccccc.txt", System.Text.Encoding.GetEncoding("Shift-JIS"))
じゃなくて
Label1.Text = IO.File.ReadAllText("C:\Documents and Settings\A\My Documents\Visual Studio 2008\Projects\aaaaa\ccccc.txt", System.Text.Encoding.GetEncoding("Shift-JIS"))
でした。

>>503
回答ありがとうございます。馬鹿で大変申し訳ございません。
Environment.GetFolderPath使ってみまちゅ。

506 :デフォルトの名無しさん:2008/11/13(木) 19:45:14
>>483
残念ながらそれは馬鹿の一つ覚えと言うものだよ。
たしかにほとんどの場合そうなんだが、いつでもそうとは限らない。

引数で指定して取得したい値がそもそも「コレクション」という考え方に馴染む場合とかね。

具体例挙げろって言われても簡単なのは挙げられないけど、
例えば何らかのデバイスを抽象化したクラスがあって、そのデバイスのレジスタ的なものが
引数付きでアクセスする構造になってる場合とかね。

507 :デフォルトの名無しさん:2008/11/13(木) 20:45:10
VISTAのファイルコピー失敗した時とかに
プログレスバーが赤くなるんですけど、
.NETのProgressbarでバーを赤くするには
どうしたらいいですか?

508 :デフォルトの名無しさん:2008/11/13(木) 21:01:49
女の子が僕の部屋のドアをノックするというイベントを拾いたいのですがどの様にすれば良いでしょう?
とらドラに出てくる あみちゃん みたいな女の子が良いです。

509 :デフォルトの名無しさん:2008/11/13(木) 22:21:28
>>508
起きないイベントは拾えません

510 :デフォルトの名無しさん:2008/11/13(木) 22:29:37
骨は拾ってやるぞ

511 :デフォルトの名無しさん:2008/11/13(木) 22:30:55
>>506
スレの流れ的を読まずに、いきなり反例でも書けとでもいうのか?


512 :デフォルトの名無しさん:2008/11/13(木) 23:52:11
FormのResizeイベントのところに、ウインドウの比率を固定する処理を入れようと思ったのですが
どのような計算式で実現出来ますか?
フォームの角を引っ張ってリサイズした時に最初にフォームが表示された時の比率のまま拡大縮小出来るようにしたいのですが。

513 :デフォルトの名無しさん:2008/11/14(金) 00:02:02
private bool flag = false;
private Size prevSize;
private override void OnShown(EvnetArgs e) { prevSize = Size; }
private override void OnResize(EventArgs e) {
 if (!flag) {
  flag = true;
  if (prevSize.Width != Width) { Height = Width * (int)((double)prevSize.Height / prevSize.Width) }
  else { Width = Height * (int)((double)prevSize.Width / prevSize.Height); }
  prevSize = Size;
  flag = false;
 }
}
こんな感じか
ちゃんと動くかどうかは知らん

514 :513:2008/11/14(金) 00:13:35
キャストの場所がおかしいな
Height = (int)((double)Width * prevSize.Height / prevSize.Width)
こうか。Width=の方も同様。
でもこれだと比率がちょっとづつ変わっちゃいそうだから、比率を持つフィールドを別に用意して
OnShownで先に計算してそのままのほうがいいな

515 :デフォルトの名無しさん:2008/11/14(金) 00:22:42
ヒント:ここはVB.NETスレ

516 :デフォルトの名無しさん:2008/11/14(金) 00:25:15
せっかく考えてもらったのに申し訳ないですが、上記のコードはC系ですよね…。

517 :デフォルトの名無しさん:2008/11/14(金) 00:44:17
>>516
そもそもやろうとしていることに(不可能ではないにしろ)無理がある。

ウィンドウ枠やクライアント領域のアスペクトを固定することを考えるより、
ちょうどメディアプレーヤーのようにウィンドウ枠の中に固定された
アスペクトの表示領域があるUIの方が実装も簡単だしユーザーにもわかりやすくないか?

518 :デフォルトの名無しさん:2008/11/14(金) 00:45:44
そもそもとしてResize中にサイズ弄ったりするってどうよ。


519 :デフォルトの名無しさん:2008/11/14(金) 01:10:51
現在VS2005(VB.net)にて以下の事がやりたいのですがどうすれば
良いのでしょうか?

・コンパイル時にEXEの中に外部dllを組み込み、生成物をEXE
 ファイル一つにする。

※例えば、画像ファイルなどの場合にはリソースの中に組み込めば
実現出来たのですがdllでは不可能なのでしょうか

520 :デフォルトの名無しさん:2008/11/14(金) 01:29:56
たぶん出来る。
Assembly.Load(Byte[])
あたりが使えると思う。



521 :デフォルトの名無しさん:2008/11/14(金) 01:52:10
>>520
ごめん。Assembly.Loadで外部DLLを読み込むんじゃなくて、
ソリューションエクスプローラー → 参照設定 の中で外部DLLを参照した状態で
ビルドをすると
1.EXE
2.(参照)DLL
がbin/Releaseに生成されるけど、この時に生成される2ファイルを一まとめにして
MIX.exe1ファイルにしたいのです。

何か良い方法はありますか?


522 :デフォルトの名無しさん:2008/11/14(金) 01:57:50
>>521
つまりスタティックリンク(すべて合体してひとつのファイルにする)したいの?

だったら俺はわからん

523 :デフォルトの名無しさん:2008/11/14(金) 02:15:56
>>522
まさにその通りです。

やっぱり出来ないのかなぁー

ようはやりたい事は、他人の作ったライブラリも含めて1つのEXEにまとめたいんです。
例えばEXE1ファイルに纏められたらデスクトップ上にコピーしてそのまま使えるけど、
EXE+(外部参照の)DLLだとデスクトップ上にDLLも
用意しておかないと動作させる事が出来ないし。

※GACにDLLを登録するとか、ショートカットを使って起動させるといった事がしたい
訳じゃないです。



524 :デフォルトの名無しさん:2008/11/14(金) 02:18:00
>>521
だからあえて引数Byte[]のやつが使えるんじゃないのと言っているのだよ。
EXEにDLL取り込むだけだったらリソースにしちゃえばいいでしょ。
あとはアセンブリとしてメモリからロード出来るんじゃない?


525 :デフォルトの名無しさん:2008/11/14(金) 02:21:34
>>524
>Assembly.Load(Byte[])
なるほど
Assembly.Load(外部DLLのパス)
ではなくあくまでAssembly.Load(Byte[])とする訳ですね。

何か参考になるサイトとかご存知でしたら教えて頂けると助かります。



526 :デフォルトの名無しさん:2008/11/14(金) 02:41:06
すまないが俺も知らんで書いたので検討違いかもしれん。
ただ、Byte配列渡してAssemblyが取得出来るんだから、使えそうかなと思った次第。

最悪、リソースにしたDLLをテンポラリに出力して、Assembly.LoadFileしちまうって手はありそうだがw

527 :デフォルトの名無しさん:2008/11/14(金) 04:23:50

vb.netからWEBブラウザに入力をするプログラムを作っているのですが

<input type="file" name="upfile" size="30">
□□□□□□□□ 参照

という項目については、どうやっても値を設定する事が出来ません。

setAttribute("value", "あいうえお")

一体なぜでしょうか?


528 :デフォルトの名無しさん:2008/11/14(金) 06:02:03
type="file"だから

529 :デフォルトの名無しさん:2008/11/14(金) 08:46:19
>528
何かやる手立てはありませんでしょうか?


530 :デフォルトの名無しさん:2008/11/14(金) 09:32:06
WebBrowser使う限りはありません

531 :デフォルトの名無しさん:2008/11/14(金) 11:22:38
ILMEARGE

532 :デフォルトの名無しさん:2008/11/14(金) 12:53:21
dobonにやり方が載ってたよ。

POSTでデータを送信する:.NET Tips: C#, VB.NET, Visual Studio
#"multipart/form-data"でデータを送信する
http://dobon.net/vb/dotnet/internet/webrequestpost.html#multipart

533 :デフォルトの名無しさん:2008/11/14(金) 13:31:14
windwsのタスクバーを改造したいのですが
タスクバーのクラスってVBでいじれますか?
オーバーライドすれば簡単そうなんですが

534 :デフォルトの名無しさん:2008/11/14(金) 13:32:50
何をオーバーライドするつもりなんだ

535 :デフォルトの名無しさん:2008/11/14(金) 13:59:03
>>533
まずタスクバーはExplorerという、君が手を出せる
範囲外のアプリケーションで表示されていることを知っておこう。

536 :デフォルトの名無しさん:2008/11/14(金) 15:02:36
>>535
なぬ。VBじゃ許可されてないんですか?
タスクバーのアプリタブを入れ替えたり
IE以外のアプリをグループ化したりしたいんです。

537 :デフォルトの名無しさん:2008/11/14(金) 15:07:25
おい。ほんとにVBやったことあるのか。

538 :デフォルトの名無しさん:2008/11/14(金) 15:14:59
VBScriptでしたテヘッ

539 :デフォルトの名無しさん:2008/11/14(金) 16:37:23
ハハハ こやつめ!

540 :デフォルトの名無しさん:2008/11/14(金) 17:12:31
>>537
なんか知らん人がコントしとるw
VB初心者なので簡単な方法から試したいんですよ。
オーバーライドを少し知ってるだけなので
そこからやってみようかと。

別の方法があれば勉強してトライします

541 :デフォルトの名無しさん:2008/11/14(金) 17:17:43
タスクバーの拡張はCOMをいじらないとダメだった気がする。
機能を呼び出すんじゃなくて使う側がCOMサーバーになる必要があったような。
VBからは不可能ではないがいろいろ難しいよ。資料も少ないし。

542 :デフォルトの名無しさん:2008/11/14(金) 17:59:31
ViewプロパティがDetailsのListViewで行を選択した後、
フォーム内のボタンを押すと選択されている行を示す
反転表示が消えてしまうのですが、常に選択されている
行がわかるようにするにはどうすればいいでしょうか?

543 :デフォルトの名無しさん:2008/11/14(金) 18:36:57
なんでMSDN読まないの?
ListView.HideSelection

544 :デフォルトの名無しさん:2008/11/14(金) 20:18:24
>>541
うーん、良くあるデスクトップカスタマイズツールとかも別物かな
あれはOSに躍らされてるだけかしら
COMについて調べてみます

545 :デフォルトの名無しさん:2008/11/14(金) 21:17:20
>>544
>良くあるデスクトップカスタマイズツール
それ、レジストリいじる系のツールだろ

英語版のMSDNに載ってるはず。この辺は日本語化されてないから探すのめんどい。
ttp://msdn.microsoft.com/en-us/library/aa139672.aspx

546 :デフォルトの名無しさん:2008/11/14(金) 22:31:03
>>525
http://support.microsoft.com/kb/915589/ja


547 :デフォルトの名無しさん:2008/11/14(金) 23:34:30
タスクバーをマジでいじりたいなら

I

548 :デフォルトの名無しさん:2008/11/14(金) 23:35:06
↑ごめんキャンセルするつもりで書き込んでしまった
なんでもないんだ気にしないでくれ

549 :デフォルトの名無しさん:2008/11/15(土) 00:20:50
タスクバー「いじって・・・

550 :デフォルトの名無しさん:2008/11/15(土) 01:30:10
質問出した本人ですが・・・
http://homepage1.nifty.com/kazubon/progdoc/tclock/taskbarhistory.html

こんなのありますけど、Vistaのクラスが書いてないですねえ・・・
MSDNでも情報すくな(´д`)

551 :デフォルトの名無しさん:2008/11/15(土) 03:05:24
>>550
もう自分で新しいタスクバー作る

552 :デフォルトの名無しさん:2008/11/15(土) 03:12:47
Explorerというクラスを作っていじったつもりになる

553 :デフォルトの名無しさん:2008/11/15(土) 08:26:29
情報はあるよ。
ただそのレベルの人に教えても無駄だから誰も教えないんじゃね。
クラスとかオーバーロードとか言ってる人には。

まずExplorer.exeのプロセスに潜りこむ方法。
・外部からプロセスのメモリにアクセスするか
・シェル拡張として内部に入るか
これの選択。

加えて
http://qwerty.s2.xrea.com/XC2CCCAB82FA5BFA5B9A5AFA5C8A5ECA5A4A4CEA5A2A5A4A5B3A5F3CEF3B5F3CAFDCBA1X.xhtml
(これはタスクトレイだがタスクバーにも通用する)のコードを理解する。
これでタスクボタンのアプリのウィンドウハンドルを列挙できる。
あとITaskBarListを操作するだけだ。それにはインターフェイスの定義をVB.NETで書かねばならない。これは簡単だな。

まあせいぜいリークしまくりのアプリでも作ってくれ

554 :デフォルトの名無しさん:2008/11/15(土) 10:30:13
>>553
おまいさんも微妙にわかってないようだが・・・

なんかそれっぽいキーワードを並べてるだけじゃん。

555 :デフォルトの名無しさん:2008/11/15(土) 10:51:52
さすがシェル拡張をやったことあるお方の言うことは違う。

556 :527:2008/11/15(土) 12:08:31
>>532
返信遅くなってしまいすいません。
ちょっとこれからそのサイトを参考に試してみます。

557 :527:2008/11/15(土) 22:36:39
どぼんのページを参考にアップロードしたいファイルを作成するコードを作成したのですが次のエラーが出てしまいます。
 ( http://dobon.net/vb/dotnet/internet/webrequestpost.html#multipart )
私が思うにHTMLページのhidde項目の値も同時に送信しなければならないのかな?とは思うのですが
そのやり方が分かりません。
途中までIEに入力して来た値とファイルを同時にアップロードするにはどうすれば良いでしょうか?

【WEBページ】のイメージ
  □□□□□□□□□□ 参照
  [アップロード]ボタン

【エラー内容】
  リモートサーバがエラーを返しました(417) Expectation Failed

【エラーの発生する部分のコード】
  'サーバーからの応答を受信するためのWebResponseを取得
Dim res As System.Net.HttpWebResponse = CType(req.GetResponse(), System.Net.HttpWebResponse)




558 :527:2008/11/15(土) 22:47:05
最悪「参照...」ボタンをVB.netにてクリックし
ファイルの選択画面が起動させ、
VB.netからファイルの選択画面が起動したかどうかを判定し、
ファイルの選択ウィンドウが起動したら
1.ファイル名(N)  
  にアップロードしたファイルへのパスを入力し
2.開く(O)
  ボタンをクリックする事により起動元であるIE上の
項目にファイルパスを入力させようかと思っているのですが、
VB.net(プログラムから)別ウィンドウの起動の有無を判定し、特定項目に
値を自動で入力するなんて事は可能でしょうか?


□□□□□□□□□□ 参照

c:\test\test.mpg 参照




559 :デフォルトの名無しさん:2008/11/15(土) 22:53:43
適当なパケットモニタで通信内容調べれば

560 :527:2008/11/15(土) 23:17:05
>>559
パケットモニタつかってデータの送受信を調べるのはちょっと難しそうなので
何とか「ファイルを開く」ウィンドウをVB.netからファイル名を入力させたいと思います。

この場合にはAPIとかを使わなければFrameWorkだけでは出来ないのでしょうか?

561 :デフォルトの名無しさん:2008/11/15(土) 23:29:22
>>557
hidden項目というか、Formタグ内にあるやつ全部だろう。
その手のことをやろうとしたら、ある程度Webの仕組み、サーバー側のプログラムの勉強をする必要があるよ。
人に聞いて出来ましたレベルのコーディングでは手を出しちゃいけない。
サーバーに変なデータ送られたら大迷惑。

その辺は了承済みというなら何も言わないが・・・

>>560
で、上のは置いておいて入力をエミュレートしたいんだろうけど、
最初からファイル名の入力フォームにSendKeys.Sendでファイル名送っとけば出来ないか?


562 :デフォルトの名無しさん:2008/11/15(土) 23:30:18
×hidden項目というか、Formタグ内にあるやつ全部だろう。
○hidden項目というか、Formタグ内にあるINPUTタグのやつ全部だろう。


563 :560:2008/11/16(日) 00:19:17
>>561
レスありがとうございます。
> hidden項目というか、Formタグ内にあるやつ全部だろう。
> その手のことをやろうとしたら、ある程度Webの仕組み、サーバー側のプログラムの勉強をする必要があるよ。
> 人に聞いて出来ましたレベルのコーディングでは手を出しちゃいけない。
> サーバーに変なデータ送られたら大迷惑。
ちょっとこの方法は断念します。。。

> で、上のは置いておいて入力をエミュレートしたいんだろうけど、
> 最初からファイル名の入力フォームにSendKeys.Sendでファイル名送っとけば出来ないか?
おっしゃる通りです。
WEBページ上の「参照...」ボタンをクリックすると「ファイルの選択」ウィンドウが起動するので
WindowsAPIを使用してなんとか入力(ボタンのクリック)を行えないかとGoogleで色々調べまして、
プログラムから「ファイルの選択」のウィンドウハンドルを取得する事は出来たのですが、
次の項目にファイル名の入力+ボタンのクリックをする方法が分かりません。

1.ファイル名の入力
2.開く(O)

という事でここから変更させて下さい。
【Question】
 SendMessageあたりを使用して特定のウィンドウに文字列を入力し、そのウィンドウ内の特定のボタンをクリックする。
 にはどうすれば良いでしょうか?
 ※ウィンドウハンドルの取得方法は分かります。

以上 宜しくお願いします。



564 :デフォルトの名無しさん:2008/11/16(日) 09:52:44
>>563
>  SendMessageあたりを使用して特定のウィンドウに文字列を入力し、

WM_SETTEXT

> そのウィンドウ内の特定のボタンをクリックする。

BM_CLICK

ウィンドウハンドルの取得方法がわかってる、ってのは大いに疑問。
そもそも、ウィンドウの種類に対する言及もないし。

565 :563:2008/11/16(日) 10:12:21
>>564
> ウィンドウハンドルの取得方法がわかってる、ってのは大いに疑問。
> そもそも、ウィンドウの種類に対する言及もないし。
ウィンドウの種類は、独自に作成した画面ではなく「ファイルの選択」ウィンドウです。
ウィンドウハンドルの取得は、 FindWindow を使用し取得する事が出来ました。


親ウィンドウのハンドルは取得出来るのですが、そのウィンドウ内にある特定のテキストボックスに
値をプログラムから入力する場合、ウィンドウ内にあるテキストボックス内のウィンドウハンドル
を取得するにはどうすれば良いのでしょうか?




566 :デフォルトの名無しさん:2008/11/16(日) 10:16:55
やっぱりわかってないじゃん・・・

とりあえず、Spy++ でよーくウィンドウを確認して、子ウィンドウ取得系の API で。

567 :デフォルトの名無しさん:2008/11/16(日) 10:19:45
そもそも、今作ってるプログラムと IE はどういう関係なの?

BHO? ActiveX コントロール? それとも、単に外部から操作?

568 :563:2008/11/16(日) 10:29:21
> Spy++ でよーくウィンドウを確認して、子ウィンドウ取得系の API で。
ぐぐってみます。

>>567
いつもの決まり切った操作を自動化したくて今のプログラムを作っています。
IEは忘れて下さいませ。


569 :563:2008/11/16(日) 11:07:32
難しいですね。。。
親ウィンドウのウィンドウハンドルを取得して、そのウィンドウ内にあるボタンのウィンドウハンドルを取得しようと
次のコードを実行したところエラーが出てしまいます。
なぜこんなエラーが出てしまうのでしょうか?
API+VB.netに詳しい方ご教授願います。

【コード】
Declare Unicode Function FindWindowEx Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal hwndChildAfter As IntPtr, ByVal lpszClass As [String], ByVal lpszWindow As [String]) As IntPtr

Dim BUTTON_NAME As String = "開く(&O)"
Dim hChild As Integer
hChild = FindWindowEx(lngHWnd, 0, vbNullString, BUTTON_NAME)  '←ここでエラーが発生

【エラー内容】
DLL 'user32.dll' の 'FindWindowEx' というエントリ ポイントが見つかりません。



570 :デフォルトの名無しさん:2008/11/16(日) 12:02:35
>>569
そんな API はありません、って言われてんじゃん。
W か A か、きちんと指定しろよ。

571 :563:2008/11/16(日) 12:21:29
>>570
コードを次の様に訂正し、エラーは出なくなったのですが、
「ファイルの選択」ウィンドウ内の「保存(s)」ボタンのウィンドウハンドルを取得しようと次のコードを記述したのですが
ボタンのウィンドウハンドルが取得できません。(0が返って来ます。)

【コード】
Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hwndParent As Integer, ByVal hwndChildAfter As Integer, ByVal lpszClass As String, ByVal lpszWindow As String) As Integer


’親ウィンドウハンドル
Dim iWindowHandle As Integer
’親ウィンドウに属するボタンのウィンドウハンドル
Dim iButtonHandle As Integer
’親ウィンドウに属するボタンの名前
Dim strButtonName As String = "保存(&S)"

iWindowHandle = 1234                 '←ここまでのウィンドウハンドルの取得は正常です。)
iButtonHandle = FindWindowEx(lngHWnd, 0, vbNullString, strButtonName)   '←ここで0が取得されてしまいます。


572 :デフォルトの名無しさん:2008/11/16(日) 13:27:44
えーとそのコードがまともかどうかは知らないけど、
ブラウザ内のコントロールって普通にハンドル持ったWin32のコントロールなんだっけそもそも?

573 :デフォルトの名無しさん:2008/11/16(日) 13:36:19
ファイルの選択ダイアログを操作しようとしてるらしいよ

574 :デフォルトの名無しさん:2008/11/16(日) 13:37:58
>>573
違うと思うよ。
っていうか、ブラウザ上の画面からそのダイアログをどうやって出すんだよだからw

575 :デフォルトの名無しさん:2008/11/16(日) 14:01:16
>>571
C で簡単なサンプル作ってみたけど、問題なく取れてる。
宣言に怪しげなところはないんで、ちゃんと親ウィンドウのウィンドウハンドルが取れてるか、
GetLastError() に何か返ってないか、とか調べてみたら?

576 :デフォルトの名無しさん:2008/11/16(日) 14:24:42
>>574
それはとっくに突破してます。
あくまで、ファイルの選択ウィンドウを操作したいのです。

・ボタンのクリック
・テキストボックスへのファイルパスの入力
 (ウィンドウハンドルはSpy++で調べた物をそのまま利用)

までは出来てますが、ウィンドウ内にある特定のコントロール(テキストボックス)を調べる方法が
分かりません。。。

あーあ、まいった。


577 :デフォルトの名無しさん:2008/11/16(日) 14:29:07
>>575
失礼しました。ボタンのハンドルの取得は出来ました。
が、、、テキストボックス(ファイル名)項目のハンドルの取得方法が分かりません。

【コード】
Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hwndParent As Integer, ByVal hwndChildAfter As Integer, ByVal lpszClass As String, ByVal lpszWindow As String) As Integer

’親ウィンドウハンドル
Dim iWindowHandle As Integer
'ファイル名(N)のテキストボックスのウィンドウハンドル
Dim iFileNameHandle As Integer

iFileNameHandle = FindWindowEx(iWindowHandle, 0, "Edit", vbNullString)  '←ここの結果が 0 になる。





578 :デフォルトの名無しさん:2008/11/16(日) 14:35:53
ハンドルを、Intergerに、するなっての、ハゲっが。

579 :デフォルトの名無しさん:2008/11/16(日) 14:40:27
>>578
VB.net は Integer ですよ。
VB6.0まで Long はね。
分かったか?ハゲ?

580 :デフォルトの名無しさん:2008/11/16(日) 14:46:11
ハゲハゲって何なの?死ぬの?


581 :デフォルトの名無しさん:2008/11/16(日) 14:51:42
IntPtrにしろってことじゃね?

582 :デフォルトの名無しさん:2008/11/16(日) 14:52:48
>>579
これはひどいVB脳ですね

583 :デフォルトの名無しさん:2008/11/16(日) 14:56:38
>iWindowHandle
って変数名も汚物だな

584 :デフォルトの名無しさん:2008/11/16(日) 15:37:54


ヒント
 ハンガリアン


585 :577:2008/11/16(日) 15:42:49
どうでもいいけど
教えて下さいな。

iFileNameHandle = FindWindowEx(iWindowHandle, 0, "Edit", vbNullString)  '←ここの結果が 0 になる。


Spy++で検索したらファイル名の入力欄のテキストボックスは ComboBox ではなく Edit でした。
だから↑の様にコードを書いているのにコントロールのウィンドウハンドルが取得出来ないのはなでしょうか?

マジで助けてぇ〜〜

586 :デフォルトの名無しさん:2008/11/16(日) 16:33:46
>>585
EditじゃなくてComboBoxじゃないのか?
それはともかく、この場合GetDlgItemを使ったほうが簡単かもしれんよ。
まあWin32に詳しくないんで自信はないけど。

ちなみに↓は以前SaveFileDialogをカスタマイズするときに参考にしたものだけど、
これがヒントになるかもね。目的はまったく違うみたいだけど。
http://msdn.microsoft.com/en-us/library/ms996463.aspx

587 :507:2008/11/16(日) 16:36:58
自己解決しますた。
華麗にスルーされてたけど・・・orz

588 :デフォルトの名無しさん:2008/11/16(日) 16:40:10
なにそれ? 少しはフィードバックぐらいしろよハゲ

589 :561:2008/11/16(日) 20:08:48
俺が言いたかったのは、そもそもコモンダイアログにメッセージを送る必要あるのか?
WebBrowserコントロールからエレメント取得してもファイル名をセット出来ないからって理由だろうけど、
コモンダイアログに文字列送るのと、ファイル名入力欄に文字列送るのに違いはあるか?
入力欄にフォーカス移して、SendKeys.Sendするだけで済むんじゃない?って話。

コモンダイアログを使った方法だと、ダイアログ出てる状態だとメインのスレッドは停止してないか?
監視スレッドでも作るか?いろいろ面倒だと思うぞ。
てか、俺はJavaScriptのAlertに応答するのにスレッドを作って押してた。

590 :デフォルトの名無しさん:2008/11/16(日) 21:03:19
> 入力欄にフォーカス移して、SendKeys.Sendするだけで済むんじゃない?って話。
それが出来ないから(ダイアログをAPIを操作してファイル名を選択しようとしています。)
※Input type=file は、プログラムから入力不可


591 :デフォルトの名無しさん:2008/11/16(日) 21:26:03
いやいや、出来たよ。もう面倒だからためしちゃったよ。

For Each item As HtmlElement In WebBrowser1.Document.GetElementsByTagName("INPUT")
If item.Name = "Upload" Then ' ←特定する方法は自分で考えること
item.Focus()
SendKeys.Send("TEST")
End If
Next



592 :590:2008/11/16(日) 21:38:46
自己解決しました。
以外な落とし穴がありましたね。。。


593 :590:2008/11/16(日) 21:40:06
>>591
、、、
そんな方法もあるんですね。。。
俺の1日に苦労は一体。。。


594 :590:2008/11/16(日) 21:44:45
つか、休日返上で8時間位PCと格闘してたのは何だったんだろう・・・
態々APIなんて使わなくても実現出切るだなんて。。。

まぁ、APIの勉強になって良かった!!
と自分を励ましてみます。

>>591さん
ありがとう。

595 :デフォルトの名無しさん:2008/11/17(月) 13:23:04
わざわざSendKey使わんくても・・・


If item.Name = "Upload" Then
item.InnerText = "TEST"
End If

596 :デフォルトの名無しさん:2008/11/17(月) 20:15:10
>>595
突っ込んでいいのか?

まず、<INPUT type="file" />は、セキュリティ上、中身を変更出来ない。初期値も持てない。
中身を変更出来ないとは言っても要はJavaScript等からのDOM経由で出来ないという事。
だから今回のようにSendMessageとかで出来ないか?っていうのが話の前提。
という事でまずレスを全く読んでないハズ。

で、item.InnerText = "TEST"なんてのはもろDOMなので出来るわけがない。

さらに<INPUT>タグは、タグ内で完結するタイプなのでInnerTextを持たない。

まあ、レス読んでなきゃ対象がINPUTタグってのもわかってないんだろうけど。


597 :デフォルトの名無しさん:2008/11/17(月) 20:27:19
やれやれ、ようやく我慢比べも終わったか。

598 :デフォルトの名無しさん:2008/11/17(月) 22:47:18
>>595
バカ発見WWW

599 :デフォルトの名無しさん:2008/11/18(火) 00:50:12

現在、VB2005でWindowsFormにDataGridViewを配置したプログラムを書いているのですが
ツールボックスからDataGridViewをFormにドラッグし、各カラムの名称等をプロパティ画面にて設定しただけで
なのですが、DataGridView上にカラム以外に空の1行が存在しています。

DataTable.DataSourceに何もバンドしていない状態なのになぜこの様な現象が
起こってしまうのでしょうか?

※一度DataTableとDataGridViewをバインドしDataTable.Clear() / DataTable.AcceptChange() を呼び出す
 とForm上に貼り付けたDataGridViewの空行は削除されます。


600 :デフォルトの名無しさん:2008/11/18(火) 01:01:05
たぶん、AllowUserToAddRowsがTrueのままなんだろう。

601 :デフォルトの名無しさん:2008/11/18(火) 01:14:35
>>600
解決しました。ありがとうございます^^;


602 :デフォルトの名無しさん:2008/11/18(火) 15:10:01
フォームに貼り付けたWebBrowserコントロールに
ワードファイルを表示させようとし、

WebBrowser.Navigate(FileName)

というふうにしているのですが。。。
WebBrowserの中ではなく、
別ウィンドウでWordのアプリが起動して、
そこにファイルを開いてしまいます。
フォーム内に表示させたいのですが、
どうすればいのでしょうか?

603 :デフォルトの名無しさん:2008/11/18(火) 19:51:59
すみません、質問です。
CABプロジェクトでデスクトップにショートカットを作成しました。
このショートカットにアイコンを割り当てたいのですがどうしたら良いのでしょうか。
セットアッププロジェクトで上記の設定をした場合、プロパティにiconがあったのですがCABプロジェクトでは無い様なのです。
可能であれば設定方法を教えていただきたいです。

604 :デフォルトの名無しさん:2008/11/18(火) 20:02:10
>>602
基本無理。

605 :デフォルトの名無しさん:2008/11/18(火) 21:09:44
DDEのサンプルない?

606 :デフォルトの名無しさん:2008/11/18(火) 23:11:06
Arraylistに要素として構造体を持たしています。
sortメソッドを使ってソートをかけることはできますか?

607 :デフォルトの名無しさん:2008/11/18(火) 23:12:34
IComparerを実装したクラスを自分で定義して,そのインスタンスを引数に渡す

608 :デフォルトの名無しさん:2008/11/19(水) 00:00:55
>>600
>DataGridView上にカラム以外に空の1行が存在しています。
これを読み解いた君は凄いな

609 :デフォルトの名無しさん:2008/11/19(水) 00:48:54
>>600
感謝してます

610 :デフォルトの名無しさん:2008/11/19(水) 00:59:43
>>607
現在構造体に持たせている値をクラスに持たせて、Arraylistにはそのインスタンスを持たせるということでいいんでしょうか?
ありがとうございました。

611 :デフォルトの名無しさん:2008/11/19(水) 01:14:20
>>610
なんか勘違いしてそうな気がする・・・
MSDNのArrayList.Sort メソッド (IComparer) を見ればサンプルがあるぞ。

612 :デフォルトの名無しさん:2008/11/19(水) 18:36:22
パスの取得について教えて頂きたいのですが、
使用しているOSがVistaの場合は、 ユーザ\パブリック
使用しているOSがXPの場合は, Documents and Settings\All Users
を取得するようにさせたいのですが、
どのようなコードになるのでしょうか?

御教授御願い致します

613 :612:2008/11/19(水) 18:56:42
XPの場合は、
Environment.GetEnvironmentVariable("ALLUSERSPROFILE")
で取得できる事が解りました。

VISTAのユーザ\パブリックを取得する方法が解りません。
宜しく御願いします。

614 :デフォルトの名無しさん:2008/11/19(水) 20:49:03
>>613
まんまで取れたと思う
System.Environment.GetEnvironmentVariable("PUBLIC")

615 :デフォルトの名無しさん:2008/11/19(水) 21:07:05
VB10の新機能の一覧がうpされてるサイトってない?

616 :デフォルトの名無しさん:2008/11/19(水) 21:18:22
質問させてください。

richtextboxで、リンクをクリックした後、そのリンクのURLをブラウザで開きたいのですが、
方法がよくわかりません。どなたかご教授願います……。

617 :デフォルトの名無しさん:2008/11/19(水) 21:33:34
↓ご教示厨

618 :デフォルトの名無しさん:2008/11/19(水) 21:37:03
質問させてください。

richtextboxで、リンクをクリックした後、そのリンクのURLをブラウザで開きたいのですが、
方法がよくわかりません。どなたかご教示願います……。

619 :デフォルトの名無しさん:2008/11/19(水) 21:43:18
LinkClickedでぐぐれ


620 :デフォルトの名無しさん:2008/11/19(水) 21:49:14
>>619
ありがとうございます、ググってみます。

なぜか2回書き込んでるしorz 申し訳ないです

621 :デフォルトの名無しさん:2008/11/19(水) 22:28:30
namespaceが名前空間なら、宇宙空間はspacespaceですか?

622 :デフォルトの名無しさん:2008/11/19(水) 22:48:46
通じればおk

623 :デフォルトの名無しさん:2008/11/19(水) 22:57:18
namespaceは、本当は名前宇宙なのです

624 :サガット:2008/11/20(木) 00:40:06
VS2005(VB.net)について質問があります。

現在WindowsForm上にラジオボタン(2つ)とテキストボックス(1つ)があります。
そしてRadioButton2を一度クリックし、Shift + Tabを押した時にRadioButton1に

フォーカスを当てたいのですがなぜかうまくいきません。(勿論TabIndexも1・2・3と振り、TabStopもTrueにしてます。
そこでRadioButton2にフォーカスがある状態で Shit + Tabが押された場合には、強制的にRadioButton1に

フォーカスを当てたいと考えているのですが、KeyDownイベントの中でShit + Tabが押された
事を判定するにはどうすれば良いでしょうか?
(そのWindowsFormはちょっと特殊なので、真に勝手なのですが Shift + Tab の判定方法をご教授下さい。)

○RadioButton1
○RadioButton2

□□□□□□

※RadioButtonのKeyDownイベントの中で次のコードを記述しましたが、イベントの中(ファンクション)
では、e.KeyCodeは常にShiftしか判定されません。。。

If e.Shift = True And e.KeyCode = Keys.Tab Then
  MessageBox.Show("出た")
End If





625 :デフォルトの名無しさん:2008/11/20(木) 01:10:08
>>624
KeyDownじゃなくてPreviewKeyDownイベントを使う

    'Private Sub RadioButton2_PreviewKeyDown( 略

        If e.Shift And e.KeyCode = Keys.Tab Then
            Me.RadioButton1.Select()
            e.IsInputKey = True
        End If

    'End Sub


626 :デフォルトの名無しさん:2008/11/20(木) 01:17:59
足し算プログラム

□ + □ = □

□はtextbox
+はラベル
=はボタン

これはどうやって書けばいいですか?

627 :デフォルトの名無しさん:2008/11/20(木) 01:23:01
>>626
ちなみにVB2005です

ボタンダブクリした後

Dim x As Decimal
Dim y As Decimal
Dim z As Decimal
Dim rezult As Decimal

TextBox1.Text = x
TextBox2.Text = y
TextBox3.Text = z

rezult = (x + y)

TextBox3.Text = rezult

と打ち込んでもエラーは出ないのですが
足し算できません><

628 :デフォルトの名無しさん:2008/11/20(木) 01:28:41
足し算できるできない以前に、左と中央のテキストボックスの中身が書き換えられるだろそれ。


>TextBox1.Text = x
って、TextBox1のTextをxに変えるって意味な。

変数xにTextBox1のTextに入ってるものを代入するなら右辺と左辺が逆だ。

629 :サガット:2008/11/20(木) 01:30:53
>>625
ありがとうございます!!

630 :サガット:2008/11/20(木) 01:34:59
>>626

TextBox3.Text = Convert.ToDecimal( x + y).ToString()


631 :デフォルトの名無しさん:2008/11/20(木) 01:41:44
>>628-630
ありがとうございます。でもまだ解決してないです・・・
明日簡単なVBのプログラムを書かせるらしい試験がありますが間に合うのか。。

632 :デフォルトの名無しさん:2008/11/20(木) 01:44:58
式の左右間違えるレベルならいっそ開き直って寝たほうが良いと思う。

633 :デフォルトの名無しさん:2008/11/20(木) 01:47:57
あ、できましたね
始めなに言ってるかわからなかった^p^
=の前後が逆だったんですね

634 :デフォルトの名無しさん:2008/11/20(木) 02:01:03
まーこれができたから明日はよゆうっすかね
さんくす^^^^^^^^

635 :デフォルトの名無しさん:2008/11/20(木) 08:34:56
小学生はこんな時間まで起きてちゃだめでしょ

636 :デフォルトの名無しさん:2008/11/20(木) 22:46:45
皆様のおかげで全部解けました。
ありがとうございました><

637 :デフォルトの名無しさん:2008/11/21(金) 01:39:54
2005が無かったのでこちらで質問
バージョン情報ダイアログ ShellAbout
はどのように読み込ませればいいのでしょうか?

638 :デフォルトの名無しさん:2008/11/21(金) 08:12:25
DllImportしたいのか禿?

639 :デフォルトの名無しさん:2008/11/21(金) 20:38:12
あー一応できました。
でもダイアログではなくフォームとして出てくる…

640 :デフォルトの名無しさん:2008/11/21(金) 21:26:21
なぁ…VB.netの調べ物してるとよく魔界のなんとかってHNの人
よくみかけるんだけど有名人?



641 :デフォルトの名無しさん:2008/11/21(金) 21:48:39
>>640
うん

642 :デフォルトの名無しさん:2008/11/22(土) 02:55:58
Function test(〜〜) as 〜〜
If 条件式 Then
処理いろいろ
Return ○○
Else
Return C 'C:定数
End If
End Function



Function test(〜〜) as 〜〜
If Not 条件式 Then Return C
処理いろいろ
Return ○○
End Function

どっちの方が良いコードなのでしょう。

643 :デフォルトの名無しさん:2008/11/22(土) 06:18:42
どっちでも良いじゃない

644 :デフォルトの名無しさん:2008/11/22(土) 07:45:13
on error と try catchの違いは
on errorのほうはすべてのエラーを感知してしまう
という答えであってますでしょうか

645 :デフォルトの名無しさん:2008/11/22(土) 08:10:46
>>644
違います

646 :デフォルトの名無しさん:2008/11/22(土) 09:26:14
ならどういう違いがあるのでしょうか

647 :デフォルトの名無しさん:2008/11/22(土) 09:40:09
>>646
一番大きいのは Finally ですね。あと、トラップできるのが例外なのかエラーなのかの違い。

648 :デフォルトの名無しさん:2008/11/22(土) 10:05:05
使い分ける必要はないよ
On Errorは過去の負の遺産だから不要

649 :デフォルトの名無しさん:2008/11/22(土) 10:38:08
でもon errorのほうは全てのエラーを感知してしまう
というのはあっているのではないのでしょうか?
そしてtryのほうは感知するエラーを選べるのではないでしょうか?

650 :デフォルトの名無しさん:2008/11/22(土) 10:43:53
tryで扱うのは例外
昔のVBでいうエラーとは全く違うもの
新規には構造化例外(Try-Catch-Finally,Throw)だけ使ってればいい

651 :デフォルトの名無しさん:2008/11/22(土) 10:45:28
Try Catchも指定なしの全例外キャッチはできる。
過去のソースと互換以外にGo Error系を使う理由はない。

652 :デフォルトの名無しさん:2008/11/22(土) 10:51:02
でも過去のソースと互換以外の目的でVB.NET使う理由なくね?

653 :デフォルトの名無しさん:2008/11/22(土) 10:53:35
つ過去の脳ミソとの互換性

654 :デフォルトの名無しさん:2008/11/22(土) 13:18:14
もっと簡単に教えてくれ
on errorはどうダメなんだ?

655 :デフォルトの名無しさん:2008/11/22(土) 13:35:39
エラーの種類を構文上で区別できない
他のオブジェクト指向言語で一般的な方法ではない
.NET Frameworkは構造化例外を使うことが前提なので一貫性がなくなる

MSDNでOn Error系のキーワードを引いてみるといいよ
関連するほとんどのページに,構造化例外使えアホと書いてある

656 :デフォルトの名無しさん:2008/11/22(土) 13:43:17
どうダメかは、体感するのは簡単だけど説明するのはなかなか骨だろう。

VB厨にグローバル変数の弊害とか、フォームに処理をベタ書きする弊害を
説明しろって話に近い。

657 :デフォルトの名無しさん:2008/11/22(土) 14:03:45
>グローバル変数の弊害とか、フォームに処理をベタ書きする弊害
をVB厨では無い一般プログラマ向けにkwsk。スレ違いならふさわしいスレに書いてそこに誘導ヨロ

658 :デフォルトの名無しさん:2008/11/22(土) 14:05:19
BY(文脈読めない)かよ。
だから「骨」なものの一例としてそれらを挙げているわけだが。。

659 :デフォルトの名無しさん:2008/11/22(土) 14:09:06
>BY(文脈読めない)かよ。

注釈つけないと通じないようなコトバ使うなよw

660 :デフォルトの名無しさん:2008/11/22(土) 14:28:04
VB・NET関係のマニュアルCHMかPDFで無いですか?
VisualStudioのヘルプ面倒で中途半端なので教えてください。

661 :デフォルトの名無しさん:2008/11/22(土) 14:55:03
>658
VB厨に説明するのが骨とか煽るから
VB厨以外に説明してみせろって煽りかえされてるんだろ。それぐらいの文脈読めよ

662 :デフォルトの名無しさん:2008/11/22(土) 15:04:10
VBなんだから気楽に書けばいいのに

663 :デフォルトの名無しさん:2008/11/22(土) 15:04:13
>>660
ない。どれだけ量あると思ってるんだ
オプションで独立ウィンドウに表示できるけどそれは知ってるよね?

664 :デフォルトの名無しさん:2008/11/22(土) 15:07:50
chmはともかくPDFは余計見づらいだろどう考えてもw

665 :デフォルトの名無しさん:2008/11/22(土) 15:12:08
.ToString(”X2”)の2を見つけるのに半日かかったんですよ
頭にあるPrintf・Usingの概念が悪いのかもしれませんが・・・

666 :デフォルトの名無しさん:2008/11/22(土) 15:16:08
>>654
例外を継承した俺例外とか作れないとこ。Finally がないとこ。

667 :デフォルトの名無しさん:2008/11/22(土) 15:18:17
>>665
書式指定文字列のドキュメントは確かにわかりにくい

668 :デフォルトの名無しさん:2008/11/22(土) 15:20:23
>>661
だから文脈読めない馬鹿だというんだ。

VB厨という言葉は、それら「体感するのは簡単だが説明するのは難しい」ものを
体感する能力を欠いた者、という意味で使っているのであって、
相手がVB厨だからそれらを説明するのが難しいのだ、などとは言ってない。

669 :デフォルトの名無しさん:2008/11/22(土) 15:22:42
>>660
VBの言語仕様のことを言っているのなら
VS2003時代のMSDNライブラリには入っている。

なぜか今のには入ってない。もちろんローカル版のことを言っている。

670 :デフォルトの名無しさん:2008/11/22(土) 15:39:19
何でもかんでも略せばいいってもんじゃね〜w

671 :デフォルトの名無しさん:2008/11/22(土) 17:16:02
BY厨(文脈読ませる厨)ワロタ

672 :デフォルトの名無しさん:2008/11/22(土) 17:28:38
on errorで全ての例外が感知できるのだから
try catchよりも楽だと思うのですが。

673 :デフォルトの名無しさん:2008/11/22(土) 18:04:10
その理屈ならそもそも例外処理はしない方が楽だと思うのですが

674 :デフォルトの名無しさん:2008/11/22(土) 18:09:04
例外処理はするという前提で、
on errorはtry cathcを含んでいると感じます。
大は小を兼ねるというイメージが出来てしまっています。
しかし、世間ではon errorはダメだとの評価です。
さっぱりわからないのです。

675 :デフォルトの名無しさん:2008/11/22(土) 18:10:39
世間では>>674はダメだとの評価だよ


676 :デフォルトの名無しさん:2008/11/22(土) 18:13:33
On ErrorがTry-Catchより大だと考える点て何?

677 :デフォルトの名無しさん:2008/11/22(土) 18:14:10
>大は小を兼ねるというイメージが出来てしまっています。
そのイメージが本当に正しい認識なのか疑ってみたことは?

678 :デフォルトの名無しさん:2008/11/22(土) 18:21:52
Gotoで飛んで数値のエラーコードでエラーの種類を調べるなんて時代錯誤だろ

679 :デフォルトの名無しさん:2008/11/22(土) 18:33:41
そう思うんなら、on error を使い続ければいいじゃん。

680 :デフォルトの名無しさん:2008/11/22(土) 19:14:27
>>676
どんなエラーが来るかを予想して5個ぐらい予想が付いたら
5個の文章を書かないとダメじゃないですか。
でもon errorだとエラーになったら発動するじゃないですか。

681 :デフォルトの名無しさん:2008/11/22(土) 19:16:02
>>680

> どんなエラーが来るかを予想して5個ぐらい予想が付いたら
> 5個の文章を書かないとダメじゃないですか。

そんなことない。以上終了


682 :デフォルトの名無しさん:2008/11/22(土) 19:18:26
好き嫌い以上の理由を語りたいなら語れるだけの知識を身につけてからにした方が良い。

683 :デフォルトの名無しさん:2008/11/22(土) 19:20:27
5個予想がついたら5個書くのが当たり前
エラーの種類に応じて対処を変える必要があるだろ
On Errorにしたって一緒。エラーの種類をifで判別したりする。

684 :デフォルトの名無しさん:2008/11/22(土) 19:57:57
http://www.dotup.org/uploda/www.dotup.org7516.zip.html
ex.messageの例として参考になれば

685 :デフォルトの名無しさん:2008/11/23(日) 23:33:35
Flashビデオを流しているYouTubeの動画を見る時に

自動でページ内の
「⇒」ボタンをクリックする事とかってやっぱり無理ですか?

指定したページの中にある全FLVをプログラムから一度にクリックするツールを作りたいと思っています。


686 :デフォルトの名無しさん:2008/11/23(日) 23:34:27
>>685
そのボタンは何でできてるの?
最悪、SendInput() だろうけど・・・

687 :デフォルトの名無しさん:2008/11/23(日) 23:44:06
なーんにも知らないのにいい加減なこというけど、
YoutubeってAPI公開してるんじゃなかったっけ?

688 :デフォルトの名無しさん:2008/11/24(月) 00:08:42
http://jp.youtube.com/dev

689 :デフォルトの名無しさん:2008/11/24(月) 00:24:13
>>686
Flashです。
SenInput()???これはなんですか?


>>687
あああ、API公開してるって事はプログラムで制御出来るかな?

>>688
ちょっと見てみます。

因みにWEBページはVB.netである程度制御する事が出来る事がわかったけど、
Flashページ内の特定のボタンをクリックとかって事はそもそもVB.netから出来るのでしょうか?
Adobe CS3 とか勝手Action Scriptも勉強しなくちゃいけないとは思いますけど。



690 :デフォルトの名無しさん:2008/11/24(月) 00:34:29
出来るみたい
やったことないけど…
http://ameblo.jp/grim/theme-10001049173.html

691 :デフォルトの名無しさん:2008/11/24(月) 00:38:11
>>690
うぉーすげー出来るんだw
最近のWEBページはFlashが多くてうざくてしょうがなかったんだけど
ちょっと安心しました。


692 :デフォルトの名無しさん:2008/11/24(月) 00:52:38
>>690
それってフォームに表示してるflashの操作じゃない?

693 :デフォルトの名無しさん:2008/11/24(月) 14:41:00
Visual Basic 2008 Express Edition
Visual C# 2008 Express Edition
Visual Web Developer 2008 Express Edition
  +
Visual Studio 2005 (Jap)
これらのバージョンをWindows XP(Pro)に平行して
インストールする事は可能でしょうか?



694 :デフォルトの名無しさん:2008/11/24(月) 14:51:21
コピペ君って馬鹿だな、まで読んだ。

695 :デフォルトの名無しさん:2008/11/24(月) 21:05:32
テキストボックスへ入力された文字をもとに
ファイルまたはフォルダを検索しようとしています

Dim text As String = TextBox1.Text
Dim files As String() = System.IO.Directory.GetFiles( _
"C:\", text, System.IO.SearchOption.AllDirectories)
ListBox1.Items.AddRange(files)

このようなコードで実行してるのですが、アクセスできないフォルダとかまで検索しようとして
「パス 'ほにゃらら' へのアクセスが拒否されました。」
とでてしまいます
解決策がございましたら教えてください

696 :デフォルトの名無しさん:2008/11/24(月) 21:06:29
>>695
エラートラップ

697 :デフォルトの名無しさん:2008/11/24(月) 21:08:32

先日のG20で世界の指導者の全員がブッシュと握手をしなかった。
http://jp.youtube.com/watch?v=uRMAAXNHkh8

世界の外交上の暗黙の了解として、ブッシュが指導するアメリカは
完全に村八分になったという意味らしいが、要するにアメリカ帝国が
終わったという意味だとすると、

そんな沈没して行くアメリカ持ち上げ犬手下バンザイで麻生さんだけが

     ドル機軸、バメリカ帝国マンセーで
     これからもがんばりますデぇ−ス!!

で尻尾振り続けている姿はどう映るんだろうねw

     > バメ犬手下自民党 <
     >    マンセーー   <

日本ってずっとずっとこれで行くつもりなんかな?


698 :デフォルトの名無しさん:2008/11/24(月) 21:14:24
コピペ君って馬鹿だな、まで読んだ。

699 :デフォルトの名無しさん:2008/11/25(火) 00:06:57
>>696
ありがとうございます

700 :デフォルトの名無しさん:2008/11/25(火) 00:12:58
ダメw
例外をキャッチするんだ
>>644〜参照

701 :デフォルトの名無しさん:2008/11/25(火) 10:40:03
フォームでTransparencyKey指定した時のようにPictureBoxを透過
することは可能でしょうか
PictureBoxのBackColorをTransparentにしてもフォームのTransparencyKey
の色になるだけだし…
現在はPictureBox.Visible=Falseにしてスクリーンキャプチャして切り出して
合成してPictureBoxに書き込むという泥縄なことしてるんで

702 :デフォルトの名無しさん:2008/11/25(火) 20:59:19
>>701
言ってることがよーわからんけど、
合成して描画できるということは最初からPictureBoxなど不要ということだろう
普通に考えれば。

703 :デフォルトの名無しさん:2008/11/26(水) 01:03:21
最近.netの2003を授業ではじめたんですけどテキストボックスで
常に同じ文字を表示させておくことってどうすればできますか?

日付をyyyy/MM/dd形式で入力させるテキストボックスを作りたいんですけど
スラッシュうつのめんどくさいのではじめから / が打ち込まれて
いるようにしたいんです。
プロパティのテキストに/書いても実際の処理でテキストボックスに書き込み
したら/消えちゃうし。

あとテキストボックス選択した時にテキストボックスの中身が全部反転して
選択された状態になってしまうんですがそうならないようにする解決策
があればヒントください。

かなり低レベルだと思うんですけどヒントください。

704 :デフォルトの名無しさん:2008/11/26(水) 12:11:46
>>703
1. 2005 (.NET 2.0) なら MaskedTextBox を使用する。
  →授業だったら勝手に変えられんわな。
2. Microsoft Masked Edit という ActiveX を組み込む。
  →これも勝手にインストールしていいんだろうか。
3. 日付専用なら DateTimePicker を使用する。
  →カレンダーも表示される。
オススメは3。

>テキストボックス選択した時にテキストボックスの中身が全部反転
プログラムでやんないとそうはならないハズだけどなあ。
コードウィンドウの左上で該当するテキストボックスの名前を、
右上で「GotFocus」を探してみ。
太字になってたら、フォーカスイベントを受け取ってなんかやってる。

705 :デフォルトの名無しさん:2008/11/26(水) 20:26:44
すまんがダメな俺に教えてくれ

VS2008から何かDataRepeaterってのが追加されてるんだけど、これについて。
AllowUserToAddRows = True にしても、行の追加は出来るんだけど、
DataGridViewみたく、 " * "って表示される新規行が常に表示されないんだ

Accessの明細用サブフォームみたいな感じで使いたいから
常に新規行を出したいんだけど、無理?
DataGridViewはデザイン性に難があるから、出来ればDataRepeater使いたいんだ
それとも、他の良い手があるんかな

706 :デフォルトの名無しさん:2008/11/26(水) 20:51:41
Framework2.0のInterfaceについて教えてください。

特定のIFを実装していたらIF経由で関数を実行するロジックで

If (TestClass.GetType.GetInterface(GetType(TestInterface).Name) IsNot Nothing) Then
TestIF = TestClass
TestIF.TestSub()
End If

とやっているんですが、GetInterface以外に取得する方法ありますか?

HasInterface(String) As Boolean とか
GetInterface(System.Type) As Object(指定した型の実体を返す)
とかなら判るのですが、何故わざわざStringで受けているのかが判らない


707 :デフォルトの名無しさん:2008/11/26(水) 20:56:48
>>706
型の互換判定ならこうじゃない?
If TypeOf TestClass Is TestInterface Then

708 :デフォルトの名無しさん:2008/11/26(水) 21:01:42
>>707が正解だけど,もしオブジェクトじゃなくて型"TestClass"が
TestInterfaceを実装しているかどうかを調べるなら
If (GetType(TestInterface).IsAssignableFrom(GetType(TestClass)))
とするのが正しい

709 :デフォルトの名無しさん:2008/11/26(水) 21:10:34
いきなりTryCastという方法もある。
C#の as と同等のキャストであとはNothing判定でそのまま呼び出し。
TestInterface hoge = TryCast(TestClass, TestInterface)



710 :703:2008/11/26(水) 21:36:58
>>704
ありがとう。色々やってみます

711 :デフォルトの名無しさん:2008/11/27(木) 14:19:01
>>707,708,709
ありがとうございます。
TypeOf Isでそのまま判定できたんですね
TryCastも初めて知りました

Reflection方面でしか調べてなかったんで
視野が狭くなっちゃってましたね


712 :デフォルトの名無しさん:2008/11/28(金) 06:31:58
今作ってるプログラムは「フォームでいろいろ設定」→「処理実行」という使い方をするのですが
フォームの設定内容を簡単に書き出す方法はあるでしょうか?
今のところは他のやり方を知らないので、チマチマ各パラメータを保存できるような形式にしてファイルに書き出す方針なのですが。

713 :デフォルトの名無しさん:2008/11/28(金) 09:56:08
どうせ自分で書くなら必要なパラメータを1つのクラスにしてシリアライズできるようにしておけば?
起動時にデシリアライズかけて元に戻すとか

面倒くさいならユーザースコープで設定使えばいいんじゃないかと

勘違いだったらごめ


714 :デフォルトの名無しさん:2008/11/28(金) 10:00:01
シリアライズ用のクラスにまとめて,カスタム属性やリフレクションでがんばる

715 :デフォルトの名無しさん:2008/11/28(金) 10:13:54
カスタム属性がカタツムリ属性に見えた。
もう寝る。

716 :デフォルトの名無しさん:2008/11/28(金) 13:48:39
VB2008 Expressを使用しています。
500×500の要素を3Dグラフにして表現したいのですが、標準でついているグラフコンポーネントってChart FXだけでしょうか?
これで多くの要素を1画面に収めることってできます・・・?
多くの要素を1画面に収めるか、他にフリーのグラフコンポーネントがありましたら教えてください。
よろしくお願いします。

717 :デフォルトの名無しさん:2008/11/28(金) 13:58:39
散布図ならgnuplotでも使って画像に出力したら

718 :デフォルトの名無しさん:2008/11/28(金) 22:53:13
すいません、VB.NETで簡単なFTPソフトのサンプルソースが欲しいです

欲しい機能は
スループットを結果で表示する
ファイル転送の進行状況の表示
ファイルのアップロードダウンロード

宜しくお願い致します。

最初VB6で公開されているソースを参考に作っていたのですが、
スループットを結果で表示する事が出来なくてVB.NETで作り直しを命じられました。
VB6のコマンドボタンの配置法だけの教育でVB6を理解した事にされ、
VB.NET(2003)は昨日初めて触れたド初心者です。

助けてください、お願いします。

またVB6でFTPでの転送結果を取得する関数とかあるのでしょうか?


719 :デフォルトの名無しさん:2008/11/28(金) 23:03:50
何でググらないのバカなの?アホなの?カスなの?
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=VB.NET+FTP&num=50

720 :デフォルトの名無しさん:2008/11/28(金) 23:06:44
本質的に頭悪いんでしょw
それと「悩んでる私」を他人に語って受け入れてもらいたい女々しいタイプなんだと思うよ。

721 :デフォルトの名無しさん:2008/11/28(金) 23:13:59
スループットを結果でって……
しかもできないって……
ようするに転送量/時間でしょ?

722 :デフォルトの名無しさん:2008/11/28(金) 23:20:01
しかも2003w

723 :デフォルトの名無しさん:2008/11/28(金) 23:23:29
もうこのスレいらなくね?

724 :デフォルトの名無しさん:2008/11/28(金) 23:31:06
この場合は結果(FTPクライアント(笑))が必要なんじゃなくて
>>718自身の教育が目的なんだからこれでいい

725 :718:2008/11/28(金) 23:49:11
>>719-724
すいません
その検索方法で既に調べていたのですが、よく理解できなかったので。
転送量/時間で出すのがやはり王道なんですね。
皆様回答ありがとうございました。


726 :デフォルトの名無しさん:2008/11/28(金) 23:53:28
こんなスレじゃなくて余所ならまた違った回答があったかもね
めげずに頑張ってね

727 :デフォルトの名無しさん:2008/11/28(金) 23:57:22
なるほど聞く場所が悪かっただけだから気にするな、と。
本当にそうかね。

728 :デフォルトの名無しさん:2008/11/29(土) 00:00:22
ググれカスで全部片付くからこのスレいらね

729 :デフォルトの名無しさん:2008/11/29(土) 00:01:12
一台のPCに複数のIPアドレスが割り当てられている場合に
VB.NETのWebBrowserでそのIPを切り替えるにはどういう方法がありますか?

730 :デフォルトの名無しさん:2008/11/29(土) 00:06:16
ググれかす












以後、VB.netの行く末を語るスレになります。

731 :デフォルトの名無しさん:2008/11/29(土) 01:40:33
答えを理解するのにもある程度の知識が必要
わからないから、とりあえず聞いてみようなんて奴に教えても無駄無駄

732 :デフォルトの名無しさん:2008/11/29(土) 01:48:35
すぱるたかす

733 :712:2008/11/29(土) 06:17:32
>>713-714
すいません、各パラメータを保存できるような形式にしてというのがパラメータを1つのクラスにしてシリアライズするという意味のつもりでしたw
ユーザースコープで設定というのを調べてみたところ、いろんな設定を読み込みなおして使う目的にはあまり適さないようでしたので、現在の予定のままでいきます。
ありがとうございました。

734 :デフォルトの名無しさん:2008/11/29(土) 06:59:09
質問スレなのに
>>聞いてみようなんて奴に教えても無駄無駄

ほんともうこのスレいらんよw


735 :デフォルトの名無しさん:2008/11/29(土) 07:07:33
>>734
つ「とりあえず」

736 :デフォルトの名無しさん:2008/11/29(土) 07:17:44
あほか

737 :デフォルトの名無しさん:2008/11/29(土) 08:40:39
はい

738 :デフォルトの名無しさん:2008/11/29(土) 13:23:53
VBユーザーって性格も悪いんですね^^

739 :デフォルトの名無しさん:2008/11/29(土) 14:17:11
はい

740 :デフォルトの名無しさん:2008/11/29(土) 22:04:04
BackgroundWorkerで動かしているスレッドから
他のメソッド(staticではない)を呼んだ場合、問題は発生しますか?

741 :デフォルトの名無しさん:2008/11/29(土) 22:09:38
>>740
はい

742 :デフォルトの名無しさん:2008/11/29(土) 22:13:40
問題が発生するようなことをしなければ発生しないけど
そんなことを聞いてるようじゃ間違いなく発生するね

743 :デフォルトの名無しさん:2008/11/29(土) 22:16:24
staticだって作り方次第じゃ十分問題あるだろう。

744 :デフォルトの名無しさん:2008/11/29(土) 22:20:30
他のメソッドを呼び出さなくても問題は起きるよ
staticだからどうとかも関係ない
なにをやったらダメなのかわかってないならスレッドなんて使っちゃダメ

745 :デフォルトの名無しさん:2008/11/29(土) 23:12:50
どのような問題が発生しますか。

746 :デフォルトの名無しさん:2008/11/29(土) 23:29:09
別スレッド=異次元

君が気づかない間に異次元から君の記憶が操作されていて
君の状態に矛盾が発生してしまう

いつのまにか朝ごはんを食べなかったことにされたり
男なのに女にプロパティが変更されたりしてしまう

747 :デフォルトの名無しさん:2008/11/29(土) 23:33:09
>>745
BackgroundWorkerで動かしているスレッドから
他のメソッド(staticではない)を呼んでみたら?

748 :デフォルトの名無しさん:2008/11/30(日) 00:11:37
>>747
どうなりますか

749 :デフォルトの名無しさん:2008/11/30(日) 01:08:29
小数点以下を切り捨てしたいのですが

Dim a As Double = 3850
Dim b As Double = 1.1
Dim re As Double = System.Math.Floor(a / b)
Me.Text = re

これが3500ではなくなぜか3499になります
3500になるように切り捨てするには
どうしたらいいですか。

750 :デフォルトの名無しさん:2008/11/30(日) 01:11:33
http://www.alato.ne.jp/kazu-/vb/tip24.htm

751 :デフォルトの名無しさん:2008/11/30(日) 01:18:54
一行コピペ君って馬鹿だな、まで読んだ。
こういうコピペ君ってどや顔で一行コピペしてるんだろ馬鹿だよな、まで読んだ。


752 :デフォルトの名無しさん:2008/11/30(日) 01:25:48
decimal 使うが勝ち

753 :デフォルトの名無しさん:2008/11/30(日) 09:49:30
どや顔って?

754 :デフォルトの名無しさん:2008/11/30(日) 11:06:33
わざわざVB関数紹介するなよw
Math.Ceiling

755 :754:2008/11/30(日) 11:12:06
でもdecimalのほうがいいよ

756 :デフォルトの名無しさん:2008/11/30(日) 11:18:51
浮動小数点を扱う以上、10進法とは誤差が出るのは当たり前。
If re = 3499 Then re = 3500
を挟むのが正解。

ってコードを金融系のソースで見て目ん玉飛び出た。
なんで浮動小数点で金の計算するんだよ。

757 :デフォルトの名無しさん:2008/11/30(日) 11:51:34
まあ金融系って言っても色々あるんじゃないか

758 :デフォルトの名無しさん:2008/11/30(日) 13:38:02
利子の計算とかなら端数でるから浮動小数点で多少誤差でてもわからんだろ?

759 :デフォルトの名無しさん:2008/11/30(日) 13:47:03
筆算やソロバンで計算したときと同じ誤差が求められるから大変だよ


760 :デフォルトの名無しさん:2008/11/30(日) 14:12:06
>>749
何をしたいかによるね。

単純にその演算に関してのみ正しい結果が欲しいのであり、
かつ必要な有効桁(というか小数点以下の桁数)がはっきりしているのなら
Roundで丸めればいいわけだし。

分数の演算を常に「数学的に正確に」行う必要があるのなら
そういう分数クラスを自分で作るしかないだろうし。

761 :デフォルトの名無しさん:2008/11/30(日) 15:57:56
いろいろ試したけどdecimalだとうまくいきますね
でも速度が遅くなるみたいだし・・・
しばらく悩みそうです

762 :デフォルトの名無しさん:2008/11/30(日) 16:08:04
理屈がわかってる人間ならいいんだが、>>749みたいな質問をする人が
decimal使うのは正直どうかなと思うね。

まず実数演算の誤差がどうして起こるのかの理屈を理解するのが先決だよ。
通常は>>760に書いたように精度の仕様を決めてそこで丸めるようにすれば
済む用途が大半だと思うけど。

763 :デフォルトの名無しさん:2008/11/30(日) 16:09:30
わかんなければ、小数演算するときは decimal、ってのはありだろ。

764 :デフォルトの名無しさん:2008/11/30(日) 16:12:09
>>760 もあんまり理解していないのではないかな。
問題は1.1という数値自体が2進法であらわせないことにあるわけで。
2進法の丸めは2進法で表したときの少数点以下何桁(ビット!)目で
丸めるといったロジックになるのはわかってるのかな。

765 :デフォルトの名無しさん:2008/11/30(日) 16:13:33
>>763
ひょっとしてdecimalって「誤差がでない魔法の型」とか思ってるんじゃないの?
まあそのようだけど、だから「正直どうかな」と思うわけ。

766 :デフォルトの名無しさん:2008/11/30(日) 16:20:05
.NET 2.0でこれが追加された時はこれで勝つると喜んだよ。
偶数丸めと四捨五入の指定ができる。
Math.Round ( d As Decimal, decimals As Integer, mode As MidpointRounding ) As Decimal


767 :デフォルトの名無しさん:2008/11/30(日) 16:22:23
演算誤差もわからんヴァカにいちから説明するのはめんどいからさ。
そういうやつには、「decimal 使え、理由はいちいち説明しないけど」で十分。

768 :デフォルトの名無しさん:2008/11/30(日) 16:24:04
>>766
なんで唐突にその話題を出すの?

769 :デフォルトの名無しさん:2008/11/30(日) 16:35:51
唐突と感じたのなら理解が浅いね。
decimalを使うだけだと手計算との違いは発生する。
decimal(10進化浮動少数点)で丸めの処理がコントロールできれば
手作業で計算したのと同じ結果が出せる。


770 :デフォルトの名無しさん:2008/11/30(日) 16:40:17
>>769
それ本気で言ってるのかひょっとして?

771 :デフォルトの名無しさん:2008/11/30(日) 16:43:22
一行レスってバカだなと思った

772 :デフォルトの名無しさん:2008/11/30(日) 16:44:12
っていうか>>760でMath.Roundを出したが、
ひょっとしてこの引数のdigitに1を指定しろって前提で話をしているとでも
思ったんだろうか。

そういうことじゃないよ。
有効桁の要求仕様がはっきりしてるのなら〜とわざわざ前置きした意味を
すっとばして理解されては困る。

773 :デフォルトの名無しさん:2008/11/30(日) 16:52:12
>>772
前提をはっきりさせないと何を持って正しいとするか決められないというのは了解。


774 :デフォルトの名無しさん:2008/11/30(日) 21:54:00
上級者のフリしたいだけの奴は消えろよもう

775 :デフォルトの名無しさん:2008/11/30(日) 21:58:44
>>774
その言葉自体は同意するが、だったら間違ってると思ってる意見に具体的に反論しろよ。
できないのならその言葉をお前さん自身に適用すること。

776 :デフォルトの名無しさん:2008/11/30(日) 22:05:17
>>774
>>771


777 :デフォルトの名無しさん:2008/12/01(月) 10:25:56
「コピペ君って馬鹿だな、まで読んだ」というレスが
すでにコピペである件について

「一行レスってバカだなと思った 」というレスが
すでに一行レスである件について

778 :デフォルトの名無しさん:2008/12/01(月) 13:42:02
荒らしに構うやつは荒らし、ってレスを書くのと同じだな

779 :デフォルトの名無しさん:2008/12/02(火) 15:46:22
ちょっと課題で悩んでいます。
Listbox1に表示させた文字列を部分検索して、該当する文字列を全てlistbox2に
表示させるプログラムを作らなければならないのですが、検索してもよくわかりませんでした。

低レベルの質問だとは思いますが、どなたか教えていただけないでしょうか?

780 :デフォルトの名無しさん:2008/12/02(火) 15:47:54
何が分からないのさ

781 :デフォルトの名無しさん:2008/12/02(火) 16:50:28
・Listbox1を表示させる
・Listbox2を表示させる
・文字列をListbox1に表示させる
・Listbox1に表示させた文字列を部分検索する
・該当する文字列を全て取得する
・取得した文字列を全てListbox2に表示させる

これだけじゃん

782 :779:2008/12/02(火) 17:14:50
>780
>781
事故解決しました。すみません。
本当に質問するような問題ではなかったです

783 :デフォルトの名無しさん:2008/12/02(火) 21:07:00
ユーザーとパスワードで制限されたネットワーク上のディレクトリのファイル一覧とそれらのファイルのタイムスタンプを取得するには
どのようなコードを書けば良いのでしょうか?

784 :デフォルトの名無しさん:2008/12/02(火) 21:38:51
どうやって公開されてるかによる

785 :デフォルトの名無しさん:2008/12/02(火) 21:42:35
ネットワークに接続する
認証を通る
ファイル一覧を取得する
タイムスタンプを取得する

コードを書けばOK


786 :デフォルトの名無しさん:2008/12/02(火) 22:21:00
VB.NET初心者です。オブジェクト指向をマスターした人に質問です。
入門書を購入して一通り学習しましたが。オブジェクト指向やクラスの段階で、挫折気味です。
オブジェクト指向の前の段階までは確実に理解できて自分でコードが書けるのですが。
クラスとか応用してプログラムを作ることができません。
クラスは8000種類あるらしいですが、コードが書ける人はこれを全部覚えてる人なんているのでしょうか?
クラスごとにコードの使い方のルールが違っていて、基本がわかっていてもクラスがうまく使いこなせません。
やはりいちいちMSDNを検索して参考にしてコードを書いてるんでしょうか?
しかしMSDNを見ても書いてあることがよく理解できません。
今、見てる本が基本的過ぎるのでしょうか?
みなさんはどんな本でなにを参考にしてプログラミングや勉強しましたか?

787 :デフォルトの名無しさん:2008/12/02(火) 22:24:35
>>786
> オブジェクト指向の前の段階までは確実に理解できて自分でコードが書けるのですが。
> クラスとか応用してプログラムを作ることができません。

それは理解できてないと思う。まずは、構造化プログラミングをきちっと身につけた方がいい。

> クラスは8000種類あるらしいですが、コードが書ける人はこれを全部覚えてる人なんているのでしょうか?

いないと思うよ。

> クラスごとにコードの使い方のルールが違っていて、基本がわかっていてもクラスがうまく使いこなせません。
> やはりいちいちMSDNを検索して参考にしてコードを書いてるんでしょうか?
> しかしMSDNを見ても書いてあることがよく理解できません。

それは基本がわかってないから。

> 今、見てる本が基本的過ぎるのでしょうか?
> みなさんはどんな本でなにを参考にしてプログラミングや勉強しましたか?

基本的な文法を覚えたら、とにかくプログラムを書く。書いたら、別の方法を試してみる。
繰り返し、繰り返し。そのうち、コツがわかってくる。

788 :デフォルトの名無しさん:2008/12/02(火) 22:31:07
>基本的な文法を覚えたら、とにかくプログラムを書く。書いたら、別の方法を試し>てみる。
>繰り返し、繰り返し。そのうち、コツがわかってくる。

これはプログラミングをマスターする王道だと思う。

789 :デフォルトの名無しさん:2008/12/03(水) 10:35:57
サンプルソースをコピペ ⇔ ちょこっと改造
そのうち全部自分で書ける様になる
先輩方のコードを読むのは勉強になるよ

790 :デフォルトの名無しさん:2008/12/03(水) 15:51:03
出来合いのクラスを使うだけじゃなくて
自分でクラスを書いてみるとよく理解できる

791 :デフォルトの名無しさん:2008/12/03(水) 15:57:37
むしろモジュールだけ使ってソフト組んでいるといつかクラスが必要な時がわかるんじゃないかとw

792 :デフォルトの名無しさん:2008/12/03(水) 16:03:10
今から始めるんだったらモジュールなんて飛ばしてもいいよ

793 :デフォルトの名無しさん:2008/12/03(水) 17:36:41
ためになるスレだなぁ。

794 :デフォルトの名無しさん:2008/12/03(水) 23:26:35
ねえ、VB中学校とか言うサイトがあるけど、このスレの人はどんな評価?
あれわかりやすいですか?

795 :デフォルトの名無しさん:2008/12/03(水) 23:39:18
>>794
なあ、それ他人に聞いて意味のある質問だと思う?

796 :デフォルトの名無しさん:2008/12/03(水) 23:42:22
わかりやすい本やサイトなんて存在しないと思っていい。
どんなに噛み砕いて説明してるつもりでも、本当に助けが欲しいと思ってる人には理解出来ないことが多い。

やはり覚えたいと思ったことは、自分でやってみるのが一番の勉強になるし身に付く。
特に独学で体験した失敗はとても重要な財産になる。

一通り勉強した後に見る、自称わかりやすい本やサイトは「復習」として見る分にはいいと思う。


797 :デフォルトの名無しさん:2008/12/03(水) 23:48:40
そうは言ってもVBに関しては中学校ぐらい初心者を意識した参考書なんてないよ
巷にあふれてるVB本はリファレンス形式のものが多いし.NETに限定してしまえば
「オブジェクト指向?なにそれ?」な参考書ばっかり
なんでちゃんとしたクラス設計の説明などを省くのだろうかといつも不思議に思う

798 :デフォルトの名無しさん:2008/12/03(水) 23:54:36
一冊や1サイトですべてがわかる奴はいないんだよ

799 :デフォルトの名無しさん:2008/12/03(水) 23:56:21
初心者がしっかりオブジェクト指向勉強するならjavaの本でも読んだ方が早いんじゃね
.NETでもC#の基礎的(≠簡単)な解説はわりとwebにも多いんだけど
VBは本当に無いね

800 :デフォルトの名無しさん:2008/12/03(水) 23:57:16
>なんでちゃんとしたクラス設計の説明などを省くのだろうか
簡単にそういうけど、君書ける?
初心者相手じゃなくても相当ハードな分野だと思うけど。
っていうか、VB中学校にはその種の内容の文章はないと思うが。

801 :デフォルトの名無しさん:2008/12/04(木) 00:37:02
Processクラスでバッチファイルを起動しています。
そのバッチファイルから起動しているプログラムの
プロセス名またはPIDを取得するにはどのように
すれば良いでしょうか?色々調べてみましたが、
わかりませんでした。よろしくお願いします。


802 :デフォルトの名無しさん:2008/12/04(木) 00:51:07
煽りじゃないという前提で聞いてくれ。

たまにプログラムが分からない、という奴がいるけど俺からすると

そいつらが何が分からないか分からない。

オブジェクト指向で躓く奴もいるけど、そこもマジで分からない。

例えていうならファイアーエンブレムでクラスチェンジしたキャラで

合体する事によって両方の機能(メソッド)が使用出来るってだけの

事をなぜ理解できない?そして組めない?

前に国立理系院卒で確実に頭は良いであろう奴がいたけど、プログラムが

一切組めない奴がいた。マジでそいつらの頭は一体どうなっているんだ?

プログラムなんて複雑な数学と比べれば簡単過ぎると思うのだが。


803 :デフォルトの名無しさん:2008/12/04(木) 01:08:00
煽りの特徴のひとつ、1行とばし。

804 :デフォルトの名無しさん:2008/12/04(木) 01:16:54
>>802
長い。最適化しろ

805 :デフォルトの名無しさん:2008/12/04(木) 02:04:15
>>802
つまり君にとっての数学がその人にとってのプログラムなんだ。

806 :デフォルトの名無しさん:2008/12/04(木) 02:17:29
>>805
オレは、すまんが数学もそれなりに得意。(院卒レベルには及ばないけどね。)

>>804
読み易くする為に行間を空けてるんだよ。


用は、オレが何を言いたいかというと、車で例えるなら車がどういうメカニズムで動いているか(化学・物理学等も含めて)

を突詰め様とすると難しいけど、既に出来上がった車(プログラム)を運転(組む)のが難しい訳が無い。


というのがオレの意見なわけ。だからこそ車のメカニズムまで分かっている奴がF1レーサーみたいな

運転をする訳ではなく、普通の運転をする事すら出来ないって事が不思議でならないという訳さ。



807 :デフォルトの名無しさん:2008/12/04(木) 02:51:53
>>806
>院卒レベルには及ばないけどね。
つまり院卒レベルの人から見たらなんでこんな問題もできないのってなるのさ。

人には得手・不得手っていうのがある。
なんでも自分基準で考えないで、客観的に見たほうがいいよ。
世界中の人がプログラム組めたらプログラマの仕事がなくなるし。

808 :デフォルトの名無しさん:2008/12/04(木) 03:22:00
俺にはVB.netスレでそんなスレ違いな愚痴を得意げに書くやつが不思議でならない。
明らかに面白い(と言うか恣意的な)例えを持ち出してるところとかも

809 :デフォルトの名無しさん:2008/12/04(木) 03:45:55
>>806
お前の例えは分かり易くて良いね。
設計書もしっかりしていそう。

810 :デフォルトの名無しさん:2008/12/04(木) 04:22:32
車のメカニズムとか量子力学とか超ひも理論とかを極めた日本人のほとんどが、
ロシア語とかスペイン語とか中国語を話せないわけだ。
あんなのその国の6歳児のほぼ全体が簡単に習得できているのにな。

あぁ失礼。お前さんはロシア語もスペイン語も中国語も簡単に習得できていましたか。

811 :デフォルトの名無しさん:2008/12/04(木) 07:18:23
>>809
自演か知らんがその感覚はないわwww
さすがVB房

812 :デフォルトの名無しさん:2008/12/04(木) 09:23:38
>>806
>読み易くする為に
うぜぇ。

813 :デフォルトの名無しさん:2008/12/04(木) 09:55:14
>>801
WMI使ってParentProcessIdが[起動したバッチファイルProcessのId]になってるWin32_Processを探す

814 :デフォルトの名無しさん:2008/12/04(木) 11:45:21
>>806
全然読みやすくない、ってかウザったらしいだけ

815 : [―{}@{}@{}-] デフォルトの名無しさん:2008/12/04(木) 12:26:47
>>814
バカに構うな

816 :デフォルトの名無しさん:2008/12/04(木) 13:31:27
2008で日本語を全部英語とかに変換できるとか聞いたんだけど
(xmlがどうのこうのいってたような)
本当に可能?
もし可能ならどうやってするんだろ・・・

817 :255:2008/12/04(木) 13:34:19
コネ━━━━━('A`)━━━━━━ !!

818 :デフォルトの名無しさん:2008/12/04(木) 13:35:25
単にlocalizationの話じゃね?

819 :デフォルトの名無しさん:2008/12/04(木) 14:04:50
>>816
何言ってるのこの人

820 :デフォルトの名無しさん:2008/12/04(木) 17:48:09
SendKeysで半角カナを送る方法はないものでしょうか?
SendKeys.SendWait("ア")
だと ア が送られるけど
SendKeys.SendWait("ア")
だと 3 が送られてしまいます。
VBの
SendKeys "ア"
だとちゃんと ア が送られていたのですが、.NETへの移行でつまずいています。

821 :デフォルトの名無しさん:2008/12/04(木) 18:07:49
http://www.google.co.jp/search?hl=ja&rlz=1T4GZAZ_jaJP257JP257&q=SendKeys+VB.net+%E5%8D%8A%E8%A7%92%E3%82%AB%E3%83%8A&lr=
の VB.NETに関するメモ書き とか?

822 :デフォルトの名無しさん:2008/12/04(木) 18:14:51
オブジェクト指向とは合体して両方使えるようになるってことです。
こんな簡単なことが分からないなんて理解できません!!


823 :デフォルトの名無しさん:2008/12/04(木) 18:19:02
>821
ggytz(ぐぐってやったぞ)ksですね、わかりますわかります

824 :デフォルトの名無しさん:2008/12/04(木) 18:20:15
そもそもSendKeysは文字通りキー入力を送信するもんなのだから
半角カナなんてキー入力を旧VBがどうやって実装していたのか気になる

825 :デフォルトの名無しさん:2008/12/04(木) 18:52:26
>>821
おおありがたや、と思ったら
VB.NETに関するメモ書き
のリンク先なくなっとる

826 :デフォルトの名無しさん:2008/12/04(木) 19:18:55
どこを読んで「なくなってる」と判断してるんだ?

エラーメッセージを読むのは言うまでもなく基本。
>CGIが、開設したホームページ領域以外から呼び出されました。
って書いてあるなら、URL直打ちなりグーグルキャッシュから見れる事も多い。

検索結果のリンクからCGIに飛ぶとそういうことがよくある。

827 :デフォルトの名無しさん:2008/12/04(木) 21:56:29
もちろんそのサイト内入念に探した上での返答です

828 :デフォルトの名無しさん:2008/12/04(木) 21:59:43
ttp://www5b.biglobe.ne.jp/~yone-ken/VBNET/

こっから入れんじゃん。

829 :デフォルトの名無しさん:2008/12/04(木) 22:07:37
すみません、キャッシュまでは見てませんでした。
この方法だとIMEがきかないところなので無理そうです。


830 :デフォルトの名無しさん:2008/12/04(木) 22:10:28
半角のアのキー入力を送りたいなら、カナモードにして送るしかないんじゃない?

テキストボックスに半角のアを設定したいなら、WM_SETTEXT とかそういう系で。


831 :デフォルトの名無しさん:2008/12/04(木) 22:10:59
>>828
ほんとだ。
お手数おかけしました。

832 :デフォルトの名無しさん:2008/12/04(木) 22:12:23
>>813
ありがとうございました。
できました! m(_ _)m

833 :デフォルトの名無しさん:2008/12/04(木) 22:26:41
>>811
バカ、皮肉だろ。

834 :デフォルトの名無しさん:2008/12/04(木) 23:32:02
>831
右クリック→ショートカットのコピー→ブラウザのURL欄に貼り付け でも行けた。

835 :デフォルトの名無しさん:2008/12/05(金) 00:09:18
VBのSendKeysをラップしたCOMを作って使う

836 :デフォルトの名無しさん:2008/12/05(金) 00:17:59
>>814

死ねよ

ボケ

837 :デフォルトの名無しさん:2008/12/05(金) 00:24:24
ちっちっちっちきち〜♪
うちうち♪
うちの父ちゃんは♪
毎朝元気だyo!

838 :デフォルトの名無しさん:2008/12/05(金) 21:44:25
フォームの中にラインを引く方法教えてくれ〜
なんで初心者用にツールボックスにDrawLineがないんだよ\(^o^)/

839 :デフォルトの名無しさん:2008/12/05(金) 21:52:35
Visual Basic Power Packでも使ってろ無能

840 :デフォルトの名無しさん:2008/12/05(金) 22:36:34
>>839
なんという便利さあざーす

841 :デフォルトの名無しさん:2008/12/06(土) 03:21:11
MouseEnterでフォームをアクティブにすることってできますか?
サンプルなどあったらそれもお願いします

842 :デフォルトの名無しさん:2008/12/06(土) 12:24:37
プログラミング初心者なのですが
変数は初期化して使い回した方がいいのでしょうか?
変数が多いと処理が重くなったりするんでしょうか?
今の作ってる部分の変数が100個位なのですがこの100個の変数は一気に処理するので
これから増やしていくなら初期化した方が処理自体はおもくならないのですか?

843 :デフォルトの名無しさん:2008/12/06(土) 12:27:25
そのレベルなら
とりあえず書きたいように書け
動作が遅いと体感できてから改善を考えろ

844 :デフォルトの名無しさん:2008/12/06(土) 12:31:23
速い遅いの前にまずは値型と参照型について勉強しようね
それより,一つのメソッドに100個の変数へのアクセスが出てくるの?w自動生成ならともかく

845 :デフォルトの名無しさん:2008/12/06(土) 12:43:53
まあ実際にどうかは計測するのが一番だよね
その方が勉強になるよ

846 :デフォルトの名無しさん:2008/12/06(土) 12:47:40
変数100個って想像がつかんのだが…
いったいどういうメソッドなんだ…?

847 :デフォルトの名無しさん:2008/12/06(土) 13:08:06
一気に処理するってことは配列を使うべき場所なのかもしれない。

848 :デフォルトの名無しさん:2008/12/06(土) 13:31:26
ありがとうございます
とりあえず完成させてから考えた方がいいのですね。そうしてみようと思います

849 :デフォルトの名無しさん:2008/12/06(土) 14:02:48
>>846
自家製ORマップか?

850 :デフォルトの名無しさん:2008/12/06(土) 14:08:03
それにしたって変数100個は頭悪すぎる

851 :デフォルトの名無しさん:2008/12/06(土) 14:19:45
そもそもVB.NETスレよりもふさわしいスレがあるような

852 :デフォルトの名無しさん:2008/12/06(土) 17:53:34
pictureboxにある画像を二値化したいのですが、やり方がわかる人おられませんか?
調べても全然出てこない・・・

853 :デフォルトの名無しさん:2008/12/06(土) 17:57:54
Bitmap.LockBitsでロックして自分でピクセルデータを触る

854 :デフォルトの名無しさん:2008/12/07(日) 02:03:29
>>852
2値化する為の何が分からないのかが分からない。
それだとアルゴリズムがわからないのがプログラムがわからんのかどっちだ。



855 :デフォルトの名無しさん:2008/12/07(日) 04:28:46
VB.netでインストールパッケージを作っているのですが

インストールが完了したら、ユーザのデスクトップにアプリへのショートカットを自動で

作成するにはどうすれば良いでしょうか?

(VS2005)


856 :デフォルトの名無しさん:2008/12/07(日) 12:02:59
あの画面構成を見て分からないようじゃアドバイスのしようがない。
頭の上に眼鏡があるのに「母さん、ワシの眼鏡知らんか?」と言っているようなものだ。


857 :デフォルトの名無しさん:2008/12/07(日) 12:30:39
教えてやれや。
そんな長い文章まで書き込む位なら。

858 :デフォルトの名無しさん:2008/12/07(日) 13:50:19
オマエモナー

859 :デフォルトの名無しさん:2008/12/07(日) 16:35:12
>>855
http://www.microsoft.com/japan/msdn/thisweek/300x10/phase2/setup_program/default.aspx
ご参考あれ

860 :デフォルトの名無しさん:2008/12/07(日) 19:06:08
>>856
死ね


>>859
ありがとうございました!!

861 :デフォルトの名無しさん:2008/12/07(日) 19:36:19
>>860
理解したのなら>>856の言う事ももっともだと思ったんじゃないの?
とりあえず自分の○○(都合により自己規制)を棚に上げて「死ね」はちょっと酷くないか。

862 :デフォルトの名無しさん:2008/12/07(日) 19:49:20
>>861
No

863 :デフォルトの名無しさん:2008/12/07(日) 19:57:24
そうか。
そういう可哀想な人なら仕方ないね。

864 :デフォルトの名無しさん:2008/12/07(日) 23:17:58
行間空けるタイプの人間はロクなヤツがいないという
私の持論がまた証明された!

865 :デフォルトの名無しさん:2008/12/08(月) 19:18:51
タイマー処理をしたいんだけど起動直後にも処理をしてほしい
MyBase.Load, Timer.Tick の両方で動作するイベントを書こうとしてるんだけど、タイマーをちょこっといじるだけで実現できたりする?

866 :デフォルトの名無しさん:2008/12/08(月) 19:43:35
>>865
できるけど(そのためにイベントハンドラの引数eはEventArgsの派生クラスとするように
統一されてるんでしょ)やるな。

両方から同じメソッド呼べば済むしその方が読みやすいよ。

867 :デフォルトの名無しさん:2008/12/08(月) 20:11:15
>>866
そうしました。ありがとうございました〜。

868 :デフォルトの名無しさん:2008/12/09(火) 22:01:12
マウスのクリックを無効化したいんですがどうしたらよいですか?
たとえばデスクトップ上でもアイコンをクリックしても
何も起こらないようなものです。

目的としてはデスクトップのハードコピーをとる際に、
範囲を指定できるようなプログラムを作りたいと考えています。
どなたか教えてください。

869 :デフォルトの名無しさん:2008/12/09(火) 22:53:55
画面いっぱいに透明な窓を作るとか

870 :デフォルトの名無しさん:2008/12/09(火) 23:19:33
>>869
イメージとしてはそんな感じです
APIとか使えばよいのでしょうか?

871 :デフォルトの名無しさん:2008/12/09(火) 23:22:01
そんなに難しく考えないでいいよ

872 :デフォルトの名無しさん:2008/12/09(火) 23:25:59
自分でもいろいろ調べてみたんですが
APIなんかでマウスをフックして
クリックイベントが起こったらExitSubとかすればよいですか?

873 :デフォルトの名無しさん:2008/12/09(火) 23:29:21
おれはエクセルワークシートのクリック無効にする為にワークシート全体に
透明のラベル貼ったことある
しばらく使ってるとメモリ不足になって止まっちまったけど
(Windows95でExcel97使ってた頃の話)

874 :デフォルトの名無しさん:2008/12/09(火) 23:43:13
フックする必要が無いでしょうに

875 :デフォルトの名無しさん:2008/12/09(火) 23:49:33
デスクトップを触れなくするなんて
どう考えてもまっとうな人間が作るまともなソフトとは思えんな。
好意的に解釈してもUIってものがまるでわかってないお馬鹿ってとこ?

一人で馬鹿やるのは勝手だけど、俺は犯罪幇助みたいなことはしたくないもんだな。

876 :デフォルトの名無しさん:2008/12/10(水) 00:09:41
>>875
>目的としてはデスクトップのハードコピーをとる際に、
>範囲を指定できるようなプログラムを作りたいと考えています。
>どなたか教えてください。

よくお読みになってください!!

877 :デフォルトの名無しさん:2008/12/10(水) 00:16:25
背景色をTransparencyKeyにしてFormBorderStyle = FormBorderStyle.Noneにして最大化するだけ

878 :デフォルトの名無しさん:2008/12/10(水) 00:17:34
そんなのキャプチャしてからトリミングすれば済むことだろ常識で考えて。
そもそもトリミング範囲を指定するのにデスクトップをドラッグするわけ?
そんなソフト絶対使いにくいわ。

879 :デフォルトの名無しさん:2008/12/10(水) 00:35:57
>>878
マウスで指定した矩形範囲をキャプしたいってことだろ。


880 :デフォルトの名無しさん:2008/12/10(水) 00:40:23
なんか既視感を覚えると思って記憶を頼りにぐぐってみたが、
ベクター登録の「らくがきですくとっぷ」にあるカッター機能が近そうだ。
ttp://allabout.co.jp/computer/freeware/closeup/CU20070831A/index2.htm

作業中は左クリックが占有されるが、右クリックですぐ解除できるから操作性はそんなに悪くなかった覚えがある。仕様次第かと

881 :デフォルトの名無しさん:2008/12/10(水) 01:10:58
どちらかというとwinshotじゃね?

882 :デフォルトの名無しさん:2008/12/10(水) 01:22:17
>>879の答えが>>878のやり方だろうにw




883 :デフォルトの名無しさん:2008/12/10(水) 01:51:18
>>878
>トリミング範囲を指定するのにデスクトップをドラッグする
ってどういう意味だ?

884 :デフォルトの名無しさん:2008/12/10(水) 02:17:38
>>883
普通はデスクトップのビットマップをウィンドウで表示して
そのウィンドウの中でトリミングするというが真っ当なやり方だけど
デスクトップを直接ドラッグしてトリミングするって意味で言ってると思われ

885 :デフォルトの名無しさん:2008/12/10(水) 08:46:15
つーかそんなアプリはVistaに標準添付されてるから作らなくていいよ

886 :デフォルトの名無しさん:2008/12/10(水) 09:32:12
>>875
Vista の Snipping Tool や、Mac OS X の CMD+Shift+4 てのを考えた奴は
お前よりまっとうな人間。

>>885
Home Basic にはないけどな。

887 :デフォルトの名無しさん:2008/12/10(水) 11:38:13
まだ粘着してるのか
その執念深さを検索に向けようとは思わないんだねぇ…

888 :デフォルトの名無しさん:2008/12/10(水) 11:59:43
>>887
独り言でないのなら、アンカーくらい付けたら?

889 :デフォルトの名無しさん:2008/12/11(木) 16:29:11
Dim fr As StreamReader
Dim FileString As String
FileString = ""
fr = New System.IO.StreamReader(TextBox1.Text, System.Text.Encoding.GetEncoding("UTF-8"))
Dim AoMS As String = fr.ReadToEnd
fr.Close()
fr.Dispose()
--------------
Disposeを書けばCloseを書く必要なかった?

890 :デフォルトの名無しさん:2008/12/11(木) 16:31:46
基本Disposeで全ての終了系処理はやってくれるんじゃないか?
と思ってるんだが

むしろUsing使うべきでは?

891 :デフォルトの名無しさん:2008/12/11(木) 20:11:43
Closeはいらない
Using使った方がいいけど,明示的にDisposeするなら必ずTry-FinallyのFinally内でやること

892 :デフォルトの名無しさん:2008/12/12(金) 12:21:59
リソースを閉じるのは両方ともやるけど
Closeはガベージコレクト任せ(内部の実装にもよる)
Disposeは呼び出した時点で開放を行う
だと思ってたんだが


893 :デフォルトの名無しさん:2008/12/12(金) 12:30:01
全然違う
Stream.Closeは中でDispose(true)を呼ぶだけ
つまり明示的にDisposeを呼ぶ(もしくはUsingを使う)のと全く同じ

894 :892:2008/12/12(金) 12:44:51
ちょっと認識が曖昧だったんで「close dispose」でググってみたが
Closeはスコープ内でインスタンスの再利用を考慮した時に使用
Disposeはインスタンス自体の破棄する時に使用
というように認識した

StreamReaderの場合なら
再利用できないっぽいから明示的にDisposeのみがいいと思う
それ以前に再利用できないならCloseを同時に実装するなと…
※意見が別れるっぽいから、コレはあくまで自分個人の感想ね



895 :デフォルトの名無しさん:2008/12/12(金) 12:51:15
フォームが「移動し終わった」あるいは「リサイズし終わった」ことを知るには
どうすればよかろう?
(moveやresizeで再描画してるので重くてしょうがない)

896 :デフォルトの名無しさん:2008/12/12(金) 12:52:11
>>894
個人の意見の問題じゃなくてMSの意向だ
http://msdn.microsoft.com/ja-jp/library/system.io.stream.close(VS.80).aspx
>Close を呼び出した後で、ストリームに対して他の操作を実行しようとすると、
>例外がスローされることがあります。
>実装時の注意 派生クラスでは、Close メソッドをオーバーライドしないでください。
>代わりに、Dispose メソッドにすべてのストリーム クリーンアップ ロジックを組み込みます。

Closeは,Usingを使わずに明示的に閉じたいときに
Disposeと書くよりも字面上でわかりやすいから存在するだけ

897 :デフォルトの名無しさん:2008/12/12(金) 13:03:48
ttp://msdn.microsoft.com/ja-jp/library/fs2xkftw.aspx
ttp://msdn.microsoft.com/ja-jp/library/b1yfkh5e.aspx
この辺も>DisposeとClose

898 :デフォルトの名無しさん:2008/12/12(金) 13:10:25
つまり字面上の違いだけってことだな
昔はもっと曖昧な記述だった気がするんだけど,議論がよく出るからはっきりさせたのかな

899 :デフォルトの名無しさん:2008/12/12(金) 14:29:13
Finaraise?ファイナライズをかけばDisposeもCloseもかかなくていい?

900 :デフォルトの名無しさん:2008/12/12(金) 14:42:11
よくない
理由は上のリンク

901 :デフォルトの名無しさん:2008/12/12(金) 15:25:42
ファイナライザは直接アンマネージリソース持ってたりしてどうしても必要な場合以外は「書くな」
GCに悪影響を与える

902 :デフォルトの名無しさん:2008/12/12(金) 21:15:14
VS2003に作ったプログラムをVS2005に移行した際に、
InvalidOperationExceptionが発生されました。スレッドセーフな呼び出し方法を教えてください。
という例外エラーが発生してしまいました。解決法を御教授下さい。
以下コードです。
Public Class frmProgress
Inherits System.Windows.Forms.Form
End Class
Public Class Progress
Implements IDisposable
Public Overloads Sub Show(ByVal owner As Form, Optional ByVal flg As Boolean = True)
startEvent = New System.Threading.ManualResetEvent(False)
ownerForm = owner
thread = New Threading.Thread(New System.Threading.ThreadStart(AddressOf Run))
thread.IsBackground = True
thread.ApartmentState = Threading.ApartmentState.STA
thread.Start()
startEvent.WaitOne()
End Sub
Public Sub Run()
myform = New frmProgress
myform.ShowDialog(ownerForm) ←ここでエラーとなります。
myform.ShowDialog()
myform.Dispose()
End Sub
プログラム経験が浅い為、対処方が解りません。
どうか、御教授御願い致します。


903 :デフォルトの名無しさん:2008/12/12(金) 21:28:39
異なるスレッドで作成されたFormをOwnerにしようとしない。
どうせモーダルにしたいならThreadなんて起こす必要はなくて
ownerFormのスレッドでShowDialogしたらいいじゃないか。
具体的にはownerForm.Invoke(...)

904 :デフォルトの名無しさん:2008/12/12(金) 21:59:33
> InvalidOperationExceptionが発生されました。スレッドセーフな呼び出し方法を教えてください。
> という例外エラー

> 教えてください。
> という例外エラー

mjd?

905 :902:2008/12/12(金) 22:11:50
frmProgressはプログレスバーの表示を行う為のフォームで、
Progressはプログレスバー等の表示状態変化させるためのクラスです。

ownerfom から frmProgressが呼び出され、Progressクラスによってプログレスバーの表示が変化されるようになっています。
frmProgressが呼び出されている間は、ownerfom は操作無効にしたいのです。

frmProgressは、どぼんさんのコードをほぼそのまま使用させていただいております。
ttp://dobon.net/vb/dotnet/programing/progressdialog.html
異なる点は、Showにownerの引数を追加して、
Runの中のshowdialogでownerを指定しているだけです。
VS2003では問題なく動いておりましたが、
VS2005にした時点でエラーとなってしまいました。

御教授御願い致します。




906 :デフォルトの名無しさん:2008/12/12(金) 22:16:13
もう回答出てるだろよ・・・

907 :デフォルトの名無しさん:2008/12/12(金) 22:19:15
えーっと、
どぼん氏の所のコードをそのまま2005で作ってエラーが出るかどうか試してみるところから始めてみたらどうだろうか

908 :デフォルトの名無しさん:2008/12/12(金) 22:21:46
二次関数のグラフを描画するのってどうしたらいいですか?

909 :デフォルトの名無しさん:2008/12/12(金) 22:25:04
フォームに自由に描画する→OnPaintをオーバーライド
線を引く→Graphics.DrawLine
これで必要十分のはずだよ
あとはVBと直接関係ない

910 :デフォルトの名無しさん:2008/12/12(金) 22:27:50
あとは、Excel とかを含めてコンポーネントを使うか、だね。

911 :デフォルトの名無しさん:2008/12/13(土) 01:20:16
>異なる点は、Showにownerの引数を追加して、
>Runの中のshowdialogでownerを指定しているだけです。

それが致命的なわけだ。

まあ2005でもデバッグ実行じゃなければ動くだろ。
どっかでおかしくなってても知らんが。


912 :デフォルトの名無しさん:2008/12/13(土) 01:21:41
まあついでに言っとくと本当は重い処理の方を別スレッドで、
プログレス表示を元のスレッドでやるべき。


913 :デフォルトの名無しさん:2008/12/13(土) 02:27:52

DefaultProc = SetWindowLong(oControl.hWnd, GWL_WNDPROC, AddressOf WindowProc)

↑これVB6.0のソースなんだけど
VB.NETだとどうかけばいいの?
AddressOf WindowProcのところでエラーになるんだけども

(ちなみにAPI関数SetWindowLongは↓このように宣言してます)

Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long


914 :デフォルトの名無しさん:2008/12/13(土) 02:38:29
>>913
「方法 : コールバック関数を実装する」で検索

915 :デフォルトの名無しさん:2008/12/13(土) 09:44:54
APIを使うんじゃなくて、WndProcをオーバーライドするだけな気がする。

916 :デフォルトの名無しさん:2008/12/13(土) 09:46:37
Delegate

917 :デフォルトの名無しさん:2008/12/13(土) 09:48:26
サブクラス化ならNativeWindowクラス使えってことに

918 :デフォルトの名無しさん:2008/12/14(日) 17:53:09
VB2008 Express Editionで教えて下さい

一つのFormに二つのPictureBoxを配置して、
片方のPictureBoxの任意の位置の四角い範囲を
もう片方のPictureBoxの任意の位置へコピーする場合どのようなソースになるのでしょう?

PictureBox1(x,y,w,h)の領域を→PictureBox2(x,y)へコピーしたいという事です

よろしくお願いします

919 :デフォルトの名無しさん:2008/12/14(日) 17:57:50
なんでもPictureBoxを基準に考えてはいけない
Bitmap.DrawImageを使うんだ

920 :デフォルトの名無しさん:2008/12/14(日) 18:46:15
VB2005を使ってれば2008に移行しなくても大丈夫?

921 :918:2008/12/14(日) 19:01:57
>919
Bitmapオブジェクトで実現するって事で良いのですか?
元の画像をbitmapに読み込んで、もう一つのbitmapに部分複写で作成
→出来た物をPictureBoxに貼り付ける方向で調べております

しかし、VBも随分変わりましたね、オブジェクト思考?の基礎も
よく判っていないので、何から調べてよいのかすら判りません
Bitmap.DrawImageをキーワードに更に調べてみます
ありがとうございました

922 :デフォルトの名無しさん:2008/12/14(日) 20:33:42
>>921
指向な

923 :デフォルトの名無しさん:2008/12/14(日) 21:46:05
usingとかいう見慣れないものは必要ないんだべ

924 :デフォルトの名無しさん:2008/12/14(日) 21:54:00
ファイルサーバー上のファイルのタイムスタンプを取得するにはどうすればいいのでしょうか?
ローカルのファイルは
System.IO.File.GetLastWriteTime(FILE_PATH)
で取得できるのですが、ファイルサーバーにアクセスするにはユーザー名とパスワードが必要なため
どのようなコードを書けばよいのか分からないのです。

925 :デフォルトの名無しさん:2008/12/14(日) 21:54:28
自己完結乙

926 :デフォルトの名無しさん:2008/12/14(日) 21:57:54
ああ、割り込まれた!

>>924
ファイルサーバーじゃ抽象的でわからん。
もっと具体的に。

927 :デフォルトの名無しさん:2008/12/14(日) 22:08:30
>>926
ファイルを置くためのサーバーで、普段はFFFTPというソフトでファイル転送を行っているのですが
その際の設定は
「ホストの設定名」→任意
「ホスト名」→192.168.x.xx
でユーザー名とパスワードを指定するという感じです。

928 :デフォルトの名無しさん:2008/12/14(日) 22:14:09
FTPじゃん!

929 :デフォルトの名無しさん:2008/12/14(日) 22:22:59
>>928
よくわかっていないのですが、WNetAddConnection2でドライブ名を割り当てて参照するようにすればいいのでしょうか?
FILE_PATH = "\\192.168.x.xx\home\foo.txt"
System.IO.File.GetLastWriteTime(FILE_PATH)
みたいな感じでドライブ名を割り当てずにできないかとも思っているのですが、ここでユーザー名とパスワードの扱いを
どうすればいいのかわからないのです。

930 :デフォルトの名無しさん:2008/12/14(日) 22:27:27
FTP相手ならFTP相手用の方法とる必要がある
FtpWebRequest辺りか

931 :デフォルトの名無しさん:2008/12/14(日) 22:28:23
って共有フォルダにできるの?

932 :デフォルトの名無しさん:2008/12/14(日) 22:38:58
>>930
ありがとうございます。
このあたりのことでしょうか?
http://dobon.net/vb/dotnet/internet/ftpwebrequest.html#getdatetimestamp
しかし、931氏もおっしゃっているように、共有ディレクトリに対してもこの方法は使えるのでしょうか?

933 :デフォルトの名無しさん:2008/12/15(月) 01:22:30
まったく別物。
共有フォルダ VB.Net
あたりでググれば出てくるかと。

934 :デフォルトの名無しさん:2008/12/15(月) 06:42:33
>>933
ありがとうございます。
しかし、ググってもVB.netのサンプルが見つからないんですよ。
WNetAddConnection2を使えばいいのでしょうか?

935 :デフォルトの名無しさん:2008/12/15(月) 09:30:34
結局、「Windowsのファイル共有」なのか「FTP」なのか判らずじまいという…

936 :デフォルトの名無しさん:2008/12/15(月) 10:04:55
Location.Yになんで値を代入できないんだ?

937 :デフォルトの名無しさん:2008/12/15(月) 10:33:43
Pointが構造体だから

938 :デフォルトの名無しさん:2008/12/15(月) 14:48:27
画面を呼び出すときに表示するフォームの縦横幅と画面幅をとり、窓が真ん中に来るように計算していて、
プログラムを単発で呼び出すとちゃんと動作してくれるんですが、別フォームからmicrosoft.visualbasic.shellで
呼び出して表示すると取ってくるフォームの縦横幅がおかしくなってしまってます、画面幅は正常でした
何か原因に心当たりがあれば教えて頂きたい

939 :938:2008/12/15(月) 15:57:32
自己解決しました、原因はshellの第二引数でした

940 :デフォルトの名無しさん:2008/12/15(月) 17:21:40
なんのことやら

941 :デフォルトの名無しさん:2008/12/15(月) 23:01:59
>>934
http://dobon.net/vb/bbs/log3-13/7329.html

試してないけど、質問者は成功してるようだからこれは回答の一つだろう。

使う機会がないので詳しく追ったことはないが、WMIをキーワードに加えて検索しても
やり方は見つかりそう。

942 :デフォルトの名無しさん:2008/12/15(月) 23:05:55
>>934
相手が FTP なら無理。WebDAV ならありなんだけどなw

943 :デフォルトの名無しさん:2008/12/15(月) 23:18:08
ややこしくなってきたな。
Windowsの共有フォルダのアクセスは
>>934
>>941
あたり

FTPは
>>932

か?



944 :デフォルトの名無しさん:2008/12/15(月) 23:58:27
>>942-943
ありがとうございます。

ファイルサーバーは多分バッファローのNASだと思います。
dosでnetuseを使ってもいけそうな気もするのですが、自宅にはネットワーク環境がないので試せないのです。
今日は時間がとれなくて試せなかったけれど、明日辺り仕事の空き時間に少し試せればと思っています。

945 :デフォルトの名無しさん:2008/12/16(火) 19:40:34
フォーム上のパネルに動的にコントロールを追加したいのですが、
スクロールバーが表示されるまで、パネルにある程度追加したあと、
スクロールバーを一番下までスクロールしたあと、コントロールを
追加すると、配置される場所が意図した場所でなくなります。
具体的には下記コードでボタンを連打してコントロールを追加する
までは意図通りなのですが、スクロール後、ボタンを押すと間が開いてしまいます。
相対座標がポイントだと思いますが、アドバイスをお願いいたします。

Public Class Form1
Protected WithEvents _AddCtrlButton As New Button
Protected WithEvents _Pane As New Panel
Protected _LastTop As Integer = 10

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.Controls.Add(_AddCtrlButton)
Me.Controls.Add(_Pane)
_AddCtrlButton.Location = New System.Drawing.Point(0, 0)
_Pane.Location = New System.Drawing.Point(0, 20)
_Pane.AutoScroll = True
End Sub

Private Sub AddCtrlButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles _AddCtrlButton.Click
Dim Ctrl As New TextBox
_Pane.Controls.Add(Ctrl)
Ctrl.Location = New System.Drawing.Point(1, _LastTop)
_LastTop += Ctrl.Height + 2
End Sub
End Class


946 :デフォルトの名無しさん:2008/12/16(火) 19:57:30
パネルの(0, 0)はいつも「今表示されている」左上。
子コントロールの位置もそこから起算されるから、
スクロールするだけで子コントロールのLocationも変わる。

AutoScrollPositionを考慮に入れないと駄目。

947 :945:2008/12/16(火) 20:06:43
>>946
レスありがとうございます。
そういうことですか・・・・
AutoScrollPositionをキーワードに調べてみます。

948 :デフォルトの名無しさん:2008/12/16(火) 23:41:03
テキストボックスの文字をフォントサイズ変えずに拡大、縮小って出来ませんかね?
エクセルの拡大とか縮小のイメージです。200%みたいな。
方法ご存知の方いましたらご教授ください。よろしくお願いします。

949 :デフォルトの名無しさん:2008/12/16(火) 23:58:14
初心者なんだけど、業務上必要な画像処理ソフトを作成中です。
JPEG画像をWindowsの標準回転機能(90度づつ右や左へ)回転させる機能が作りたい。
ボタンを2つ配置して、@左へ90度、A右へ90度回転としたい。
現状では、ピクチャボックスへ画像が表示されていて、見た目だけはフリップメソッドやらで動くんだけど、ファイルは
更新保存されていません。
JPEGの保存やEXIF情報の書き換えなんかは助力を得ながら完成したんだけど、
なにかヒントになるようなキーワードを教えて貰えませんか?
標準的な機能だとは思うので、神様がいれば参考コードをくださるとホントはありがたいのですけれど・・。





950 :デフォルトの名無しさん:2008/12/17(水) 00:03:54
>>948
表示だけならいけると思うけど、入力もするの?

>>949
意味がわからん。できないのは回転? それとも保存?
何ができて何ができないのかを明確にしような。

951 :デフォルトの名無しさん:2008/12/17(水) 00:05:18
ピクチャボックス内で画像処理ってちょっとお粗末設計すぎないか
簡単にやるなら回転後のサイズのBitmapオブジェクトを新しく作って
回転行列のColorMatrixを作ってGraphics.DrawImageの引数に渡す
本格的にやるならPaint.NETのソースコードをパクるといいと思う

952 :デフォルトの名無しさん:2008/12/17(水) 00:06:53
>>950
ありがとうございます。
倍率を変えた状態で入力するかどうか決まっておりません。
表示の方法だけでも教えていただけませんか。

953 :951:2008/12/17(水) 00:09:41
何がしたいのかよくわからないけど>>951は間違ってたので訂正だけ
ColorMatrix→Matrix

954 :デフォルトの名無しさん:2008/12/17(水) 00:11:27
>>952
CopyFromScreen() とか使って、イメージを拡大コピーすればOKでしょ

955 :デフォルトの名無しさん:2008/12/17(水) 00:15:12
バイナリファイルや作業用ファイルを除いて
つまりソースファイルだけをバージョン管理したいんだけど、
どの拡張子のファイルを管理すべきなのでしょうか?

956 :デフォルトの名無しさん:2008/12/17(水) 00:16:26
>>954
ありがとうございます。
スクロール可能にしなければならないのでハードコピーでは無理かもです。

957 :デフォルトの名無しさん:2008/12/17(水) 00:16:33
VSS2005 で確認してみればいいじゃん。

958 :デフォルトの名無しさん:2008/12/17(水) 00:16:43
知るかよそんなこと。。
どんな質問だよ

959 :デフォルトの名無しさん:2008/12/17(水) 00:19:36
答えられないヤシが書き込む理由を手短に

960 :デフォルトの名無しさん:2008/12/17(水) 00:21:23
スクロールか・・・ フォントサイズを大きくする形で描画、でいいなら楽なんだけどな・・・
Excel もそういう動きじゃね?

961 :デフォルトの名無しさん:2008/12/17(水) 00:25:11
>>959
くやしいんジャマイカ?

962 :デフォルトの名無しさん:2008/12/17(水) 00:25:21
>>955
実行ファイルが出来るbinとobjフォルダを対象外にするだけでいいんちゃうの?
リソースとかも対象外にしたいのかもしれんけど、更新頻度低いでしょ。
管理しても問題ないと思うけど。


963 :デフォルトの名無しさん:2008/12/17(水) 00:27:16
つーか、何で管理してるか知らんけど、VSS でソリューションを VSS に追加すれば、
自動的にやってくれるんだけどな。

964 :デフォルトの名無しさん:2008/12/17(水) 00:27:31
>>959
君「頭悪いなお前」ってよく人に言われるでしょ。

965 :デフォルトの名無しさん:2008/12/17(水) 00:28:48
>>963
VSS基準で考えるのはよくないな。

966 :デフォルトの名無しさん:2008/12/17(水) 00:30:32
>>965
なんで? ソース管理ツールに何を使ってるか言わない時点で、VSS の可能性は
排除できないよ。単に、VSS の使い方をわかってないだけ、って可能性もあるし。

967 :デフォルトの名無しさん:2008/12/17(水) 00:47:07
>>955
↓ここの「ソース管理によるファイルの処理」が参考になるかも
ttp://msdn.microsoft.com/ja-jp/library/ms171339(VS.80).aspx

968 :デフォルトの名無しさん:2008/12/17(水) 02:36:16
ttp://www2.uploda.org/uporg1861492.zip
こんな感じのプログレスバーで中止ボタン押されたらメインのループ処理止めるって方法が分からんのです。

969 :デフォルトの名無しさん:2008/12/17(水) 02:51:15
>>509
流れ無視して悪いが、めちゃ吹いたw
確かに起こらないイベントは拾えんなww

970 :デフォルトの名無しさん:2008/12/17(水) 09:08:47
俺もあみちゃんは好みだ

971 :デフォルトの名無しさん:2008/12/17(水) 09:11:33
>>968
zipファイルは見てないけど
BackgroundWorkerでぐぐれ

972 :デフォルトの名無しさん:2008/12/17(水) 15:42:33
流れ無視して質問すまん。

重い処理やってる画面なんかで、
キー入力→コントロール移動(処理)→キー入力とか素早く入力すると、
2回目のキー入力がうまくいかないんで、なんとかしたい。


項目1に「ABC」と入力

項目2へ移動(Validating処理で時間がかかる。処理中は砂時計)

まだ処理中(砂時計)の状態で「123」とキー入力

項目2には「23」と表示され「1」がどこかへいってしまっている。

調べてみたらバッファ?とかいうのが関係するかもしれないことまではわかったんだが、
具体的に何すれば解決するのかわからないんで、どうかアドバイスお願いします。

973 :デフォルトの名無しさん:2008/12/17(水) 16:29:28
>>968
メインスレッドで時間のかかる処理しちゃダメ
>>971のBackgroundWorkerを使うなら
バックグラウンドで別スレッドで処理させるのはそのループ処理の方

>>972
Validation処理がまずいだけなんじゃないの
どう実装しても時間がかかるなら項目ごとに検証せずにまとめてやるとか

974 :デフォルトの名無しさん:2008/12/17(水) 17:54:13
バックグラウンドワーカー使えばよろし

975 :デフォルトの名無しさん:2008/12/17(水) 18:04:00
次の項目の入力に移った後に前の項目に対するエラーが出るのはかなり不自然に感じない?

976 :デフォルトの名無しさん:2008/12/17(水) 20:28:53
はぁ? なにいってんの?

977 :デフォルトの名無しさん:2008/12/17(水) 23:30:24
VBでテキストエディタを作ろうと思ってるんだが、本かサイトかお勧めくれ

978 :デフォルトの名無しさん:2008/12/17(水) 23:45:42
どの程度のものを作ろうとしてるのかによるな
既存のテキストエディタよりも便利なものを作って自分自身で使うとか考えているのであれば
テキストボックス貼り付けて終わりみたいなレベルの話じゃないから
かなり低いレベルから自分で実装することになる
自分で頑張れとしか言えない

979 :デフォルトの名無しさん:2008/12/17(水) 23:54:37
>>978
そうか……地道にやるしかないか。わかった。頑張ってみるわ。
ありがと

980 :デフォルトの名無しさん:2008/12/18(木) 01:59:55
>>979
SharpDevelopのソースでも見たらどうだ?
俺は挫折した。


981 :デフォルトの名無しさん:2008/12/18(木) 11:31:31
レスサンクス

>>973
Validation処理は仕様とかいろいろ関わってくるからもう一度確認してみる。
検証についてはちょっと触ったことないんで調べていろいろ試してみる。


>>974
バックグラウンドワーカーについて調べてみたが、
処理状態を確認・キャンセルできるイベントが使えるようになる?みたいなことは書いてあったんだが、
どういう風に使うのか理解できんかった・・・すまん


982 :デフォルトの名無しさん:2008/12/18(木) 16:23:09
>>981
状態確認とかキャンセルとかMSのサンプルだと確かに分かりにくいですね
長文で申し訳ないですが、下記がキャンセルと進行状況の例ですWorkerReportProgressとWorkerSupportsCancellationをtrueにしてくださ
い使っているのはボタン2とテキストボックス(multiline=true)とBackgroundWorker

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
BackgroundWorker1.RunWorkerAsync()
End Sub
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs)
Handles BackgroundWorker1.DoWork
Dim cnt As Integer = 0
While cnt < 5
If BackgroundWorker1.CancellationPending Then Return
System.Threading.Thread.Sleep(1000)
cnt += 1
BackgroundWorker1.ReportProgress(cnt)
End While
End Sub
Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As System.Object, ByVal e As
System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
TextBox1.Text += "..."
TextBox1.Text += e.ProgressPercentage.ToString
TextBox1.Text += vbCrLf
End Sub
Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As
System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
TextBox1.Text += "End Of Thread!!"
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
BackgroundWorker1.CancelAsync()
End Sub

983 :デフォルトの名無しさん:2008/12/18(木) 17:34:43


984 :デフォルトの名無しさん:2008/12/18(木) 23:32:28


985 :デフォルトの名無しさん:2008/12/19(金) 07:22:47


986 :デフォルトの名無しさん:2008/12/19(金) 21:16:25


987 :デフォルトの名無しさん:2008/12/19(金) 21:47:36
ステータスバーにセパレータを表示させるにはどうしたらいいでしょうか?


988 :デフォルトの名無しさん:2008/12/19(金) 22:18:46
セパレータの意味が不明だがステータスバーパネルコレクションのこと?

989 :デフォルトの名無しさん:2008/12/19(金) 22:27:23
調べたのですが意味がわからなくて・・・
http://msdn.microsoft.com/ja-jp/library/system.windows.controls.primitives.statusbar.aspx
http://msdn.microsoft.com/ja-jp/library/system.windows.controls.separator.aspx

セパレータは項目を区切るためのコントロールです。
よくスタートメニューで使われている棒みたいなのです。



990 :デフォルトの名無しさん:2008/12/19(金) 22:28:58
間違い
メニューです


991 :デフォルトの名無しさん:2008/12/19(金) 22:34:00
次スレって立ってる?

992 :デフォルトの名無しさん:2008/12/19(金) 22:55:39
>>989
フォームに ToolStrip 作って Separator を挿入、
Separator をカット&StatusStrip を選択してペースト。
なんで直接挿入できないかは知らん。

>>991
立ててみる。

993 :デフォルトの名無しさん:2008/12/19(金) 23:01:26
立てたよ。

VB.NET質問スレ(Part28)
http://pc11.2ch.net/test/read.cgi/tech/1229695062/l50

994 :デフォルトの名無しさん:2008/12/19(金) 23:06:32
>>992
thx!

やっと進める…

995 :デフォルトの名無しさん:2008/12/19(金) 23:17:22
ウメ

996 :デフォルトの名無しさん:2008/12/19(金) 23:31:08
 

997 :デフォルトの名無しさん:2008/12/20(土) 00:17:02
埋めるか

998 :デフォルトの名無しさん:2008/12/20(土) 00:32:09
998

999 :デフォルトの名無しさん:2008/12/20(土) 00:35:40
999なら願いが叶う。

1000 :デフォルトの名無しさん:2008/12/20(土) 00:39:39
1000

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

266 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)