トップページ⇒tech
1001コメント345KB

VB.NET質問スレ(Part27)

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2008/09/28(日) 23:34:40
前スレ

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

テンプレは>>2〜5くらいまでの間にある予定
0002デフォルトの名無しさん2008/09/28(日) 23:35:04
ねえよ
0003デフォルトの名無しさん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
0004デフォルトの名無しさん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/
0005デフォルトの名無しさん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
0006デフォルトの名無しさん2008/09/29(月) 00:58:13
VB中学校
http://homepage1.nifty.com/rucio/main/main.htm
初心者から中級者のためのVB
http://www7b.biglobe.ne.jp/~vb_beginner2008/
0007デフォルトの名無しさん2008/09/29(月) 01:10:32
おっ リンク増えた♪ どなたか存じませぬが、あなたに幸あらんことを。
0008デフォルトの名無しさん2008/09/29(月) 11:33:17
クリスタルレポート詳しい方伺いたいのですが
VB.NETでクリスタルレポートを使用した帳票を作成しています
グループ化した後、詳細の項目を改行せず、同じ場所に表示していく方法はないでしょうか?

 123
 456

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

 1  

  2
    
   3
といった感じに表示されてしまいます
知ってる方いらっしゃいましたら教えてください
0009デフォルトの名無しさん2008/09/29(月) 19:16:18
Webサービスに関して伺いたいのですが
javaで作られている型(decimal)のところを
VB側で作成した場合にdecimalの項目がSOAPのdecimalから抜けてしまうという
現象が発生しました。何かご存知の方いらっしゃいましたらお知恵を拝借できますでしょうか。
0010デフォルトの名無しさん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

よろしくお願いします
0011デフォルトの名無しさん2008/09/30(火) 13:19:41
>>8
外部(VBプログラム)から直接クリスタルレポートのテキストボックスに値を入れるのではダメ?
0012デフォルトの名無しさん2008/09/30(火) 16:41:29
>>11
お返事ありがとうございます
項目がすごく多いので出来るだけクリスタルレポート上でやりたいと思っているのです
0013デフォルトの名無しさん2008/09/30(火) 16:54:30
>>10
Timerを毎回NewしてAddHandlerでイベントハンドラ登録
TimerのTagにでもButtonを設定しとく
ハンドラでsenderをTimerにキャストしてTagとってきて適当に操作
0014デフォルトの名無しさん2008/09/30(火) 20:33:28
>>10
何が聞きたいのか明確に書かないと
まともな人にほど回答して貰えないと思うけど。

っていうか、君がコードが書けない事と明確な文章が書けない事は
間違いなく根底で繋がっていて、同じ理由だろう。
0015デフォルトの名無しさん2008/09/30(火) 22:50:40
.NETで作成したユーザーコントロールをMicrosoft Accessのフォームに貼り付けて使う方法ってありますか?
0016デフォルトの名無しさん2008/10/01(水) 00:03:26
>>15
IE には貼れる。から、貼れるんじゃないかな。
COM で公開して試してみれば?
0017112008/10/01(水) 01:02:18
>>12
解決になるかはわからないけど
縦に出力されるのを
横に出力する方法があったと思う
それをうまい事組み合わせれば何とかならないかな

http://www.hirano.cc/crystalreports/report_yoko.html
0018デフォルトの名無しさん2008/10/01(水) 22:00:55
Direct Showに関して質問があります.

VB.net2005でDirect Show を使用し動画から音声を抽出→音声波形を作成
ということをしたいのですが,どのようにしたらよいのでしょうか?
Direct Showの使い方もわからず,教えていただけないでしょうか?
0019デフォルトの名無しさん2008/10/02(木) 01:01:28
誘導
DirectShowと戦うスレ Part 4
ttp://pc11.2ch.net/test/read.cgi/tech/1214127501/
0020デフォルトの名無しさん2008/10/02(木) 02:01:24
>>19

ありがとうございます.すれ違いすいませんでした.
0021デフォルトの名無しさん2008/10/02(木) 06:46:34
>>13
遅レスすいません。お返事ありがとうございました。
なんとかなりそうな感じです・・・助かりましたm(_ _)m
0022デフォルトの名無しさん2008/10/02(木) 12:13:51
>>14
こういう奴って社会人になって、何も知らない客先からの
要求や質問になんて答えるんだろうな。
0023デフォルトの名無しさん2008/10/02(木) 19:19:05
客w
0024デフォルトの名無しさん2008/10/02(木) 19:31:34
というか、普通は(というかまともな社会人なら)客ならなおさら
要件は明確にしてもらうと思うけど。

日本はまだその辺り、意味不明な要件でも適当に忖度して想像で補完することが
親切だと勘違いしてる馬鹿が多くて困るね。
0025デフォルトの名無しさん2008/10/02(木) 21:26:42

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

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

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

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

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

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

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

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

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

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

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

       !!!!!!!!!!!!!!!!!!!!!!!!!!
0026デフォルトの名無しさん2008/10/02(木) 21:33:18
コピペ君って馬鹿だな、まで読んだ。
0027デフォルトの名無しさん2008/10/02(木) 22:21:20
要件を明確にするために、仕様書に書いてあることが
分からなければ、掘り下げるなり想定したりするだろ普通
0028デフォルトの名無しさん2008/10/03(金) 13:48:53
tr = コネクション.BeginTransaction()
で作ったトランザクションの状態をを調べる方法ってありますか?

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

VB6のトランザクション処理と多少使い勝手が違うので混乱しています
0029デフォルトの名無しさん2008/10/04(土) 15:07:56
メール受信とかってできますか?
0030デフォルトの名無しさん2008/10/04(土) 17:52:25
>>29
POP なりを実装
0031デフォルトの名無しさん2008/10/04(土) 18:56:00
あまりにも質問が簡単すぎましたw

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

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

この場合、ヘルプでメール受信などで検索してソースをゲットしてやってくのがいいのかなー?
あまりに何もしらなすぎてどこから始めていいかまったく分かりません。('A`)
0032デフォルトの名無しさん2008/10/04(土) 18:58:26
>>31
できます
0033デフォルトの名無しさん2008/10/04(土) 18:58:42
>>31
とりあえずここ読んだら?
http://dobon.net/vb/dotnet/internet/receivepop3mail.html
0034デフォルトの名無しさん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
0035デフォルトの名無しさん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

長文になりまして申し訳ありません。宜しくお願い致します。
0036デフォルトの名無しさん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)だけを行えるように変更しなければならないのですが、
検索してもうまい方法が見つかりませんでした。
方法をご存知の方、参考になるサイトを教えて頂ける方がいらっしゃいましたら、
どうかよろしくお願いします。
別ページのソースは完全に手を出せない状態です
0037デフォルトの名無しさん2008/10/05(日) 17:07:11
>>34
アリガトンです
やっぱフラグとか基本で行くしかないですかね…

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

もう少し試行錯誤してみます<(_ _)>
0038デフォルトの名無しさん2008/10/05(日) 17:24:57
>>36
バックグラウンドでリクエストを投げればいいんじゃね?
0039デフォルトの名無しさん2008/10/05(日) 17:26:10
javascriptからリクエスト投げなきゃ無理じゃない?
フレームとかで隠すっつのもやらない方がいいだろうし。
どっちにしても同一ドメインじゃないと無理だと思うがどうだっけ?
0040デフォルトの名無しさん2008/10/05(日) 17:36:55
>>35
とりあえずSystem.Data.OdbcじゃなくてSystem.Data.SqlClient名前空間の
クラスを使うように変更したら結果は変わるかも

>>37
トランザクションが終了するとTransactionのConnectionプロパティはNothingになると思う
0041デフォルトの名無しさん2008/10/05(日) 18:17:32
超初心者の質問なんですがVB.NETはどうやって入手するんですか?
あと.NET Frameworkとの違いを教えてください。
そのほか超初心者になんか教えてくださることあったら教えてください。


0042デフォルトの名無しさん2008/10/05(日) 18:38:54
>>29
baspを使う
0043デフォルトの名無しさん2008/10/05(日) 18:39:34
>>38 >>39
ありがとうございます、あんまりピンと来ないので今から検索してみますね
0044デフォルトの名無しさん2008/10/05(日) 18:41:59
>>41
買え。もしくは、Express Edition をダウンロード。

.NET Framework はフレームワーク。VB.NET はその上で開発するためのツール。
0045デフォルトの名無しさん2008/10/05(日) 18:57:07
>>41
お前は超初心者だからそんなことはとっくに知っているはずだ、思い出せ
そして醜く地べたを這いずる他の連中との違いを見せつけてやれ
0046312008/10/05(日) 19:35:24
いろいろ見てみましたが、私みたいな初心者には難しいみたいですね。
とりあえず適当にもっと簡単なものからやっていこうと思います。m(_ _)m
0047デフォルトの名無しさん2008/10/05(日) 21:02:02
>>40
35です。
確かにSqlClientを使用することで回避できました!
なぜOdbcだと駄目だったんでしょうか・・・?
0048デフォルトの名無しさん2008/10/05(日) 22:01:37
VB6で、MAPIコントロールをつかってるんですけど
.Netに該当するものは何ですか?
0049デフォルトの名無しさん2008/10/05(日) 22:02:22
>>48
ありません。
0050デフォルトの名無しさん2008/10/05(日) 22:47:37
木状的収集容器不在?
0051デフォルトの名無しさん2008/10/05(日) 23:04:53
>>50
shenmayisia?
0052デフォルトの名無しさん2008/10/05(日) 23:20:09
System.Xml
0053デフォルトの名無しさん2008/10/06(月) 01:06:17
>>28
トランザクションなんて使い捨てじゃない?
ようするに2度〜なんて設計自体がよろしくないかと。

それでも使うなら、CloseしたあとにNothingで初期化しとけば
あとから使うときの判断材料になるかと。
0054デフォルトの名無しさん2008/10/06(月) 12:09:26
Dim dr As Data.DataRow()
Dim dr As Data.DataRow
の違いは何ですか?
0055デフォルトの名無しさん2008/10/06(月) 12:13:49
前者は配列
0056デフォルトの名無しさん2008/10/06(月) 12:21:57
ありがとうございます。

Dim dt As New Data.DataTable()
Dim dt As New Data.DataTable
これも前者は、配列という事でよろしいですか?
0057 [―{}@{}@{}-] デフォルトの名無しさん2008/10/06(月) 12:28:19
文法勉強せい
0058デフォルトの名無しさん2008/10/06(月) 12:35:29
はい。勉強する為に、ここに来ました!
メール欄は焼き鳥ですか?
0059デフォルトの名無しさん2008/10/06(月) 13:13:38
いいえfusianasannです
0060デフォルトの名無しさん2008/10/06(月) 16:50:08
串
0061デフォルトの名無しさん2008/10/06(月) 16:59:04
>>56 の違いを勉強できるサイトがあったら教えてください。
勉強してきます。
0062デフォルトの名無しさん2008/10/06(月) 17:25:52
なんでマニュアルを読まんのだ…
0063デフォルトの名無しさん2008/10/06(月) 21:08:43
>>61
そういうものだと思って使うのが一番手っ取り早いwwwww
0064デフォルトの名無しさん2008/10/06(月) 21:10:22
>>61
VB中学校 でググれカス
0065デフォルトの名無しさん2008/10/06(月) 21:22:42
Data.DataRow()とData.DataRowはそもそも違う型なんだよ
書き方が似てるだけ
0066デフォルトの名無しさん2008/10/06(月) 22:46:53
まずはMSDNのリファレンスマニュアルを見ればいいんじゃ?
0067デフォルトの名無しさん2008/10/06(月) 22:48:07
ちなみに俺だったら

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

こう書くな。紛らわしいから。
0068デフォルトの名無しさん2008/10/06(月) 23:22:52
聞きたかったのは
Dim dt As New Data.DataTable()
Dim dt As New Data.DataTable
の方です。
0069デフォルトの名無しさん2008/10/06(月) 23:25:27
本来の意味から考えると>>67よりも>>68の書き方のほうが自然なんだよ
Data.DataTable()は「Data.DataTableの配列」を表す「型」なの
0070デフォルトの名無しさん2008/10/06(月) 23:29:59
>>67ってVBのなごりでしょ?
0071デフォルトの名無しさん2008/10/06(月) 23:30:47
>>69
違うだろ。コンストラクタなんだから。
0072682008/10/06(月) 23:35:26
ああほんとだ、見間違えた
Dim dt As Data.DataTable = New Data.DataTable()の省略形
0073デフォルトの名無しさん2008/10/06(月) 23:38:33
>>68
VBは()を省略出来るという悪習がある。
そしてややこしいのは配列の定義にも()を使うということ。
こっちは省略するとまったく意味が異なる。
その2つはどっちも同じだが上のほうを使うことをお勧めする。

本来はこんな感じで覚えたほうがいいかもしれない。応用が利くと思うよ。
Dim dt As Data.DataTable = New Data.DataTable()
0074デフォルトの名無しさん2008/10/06(月) 23:41:43
C#でもオブジェクト初期化子やコレクション初期化子を使うときは
コンストラクタの()は省略できるようになったんだけどね
0075デフォルトの名無しさん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()
今後は、こうゆうふうな書き方をしていった方がよい。

という事ですね。
ありがとうございました。
0076デフォルトの名無しさん2008/10/06(月) 23:55:39
別にちゃんと理解して使うならAs Newでもいいと思うよ
VB9ならOption Inferで型推論でもいいかな
0077デフォルトの名無しさん2008/10/06(月) 23:57:07
ゆるいのがVBのいいところなんだろうけど
他の言語から来たら戸惑うよな
0078デフォルトの名無しさん2008/10/07(火) 10:39:39
ダブルクォーテーションを文字列として扱う場合は
""""で良いんでしょうか?
0079デフォルトの名無しさん2008/10/07(火) 10:45:36
すいません。vb.netでExcelをコピー、編集して出力しているのですが、
元のシートに貼り付けてあるバーコードが編集後のシートではうまく
機能しません。(Excelのバージョンは2007です)

ちなみにバーコードそのものはいじらずにリンクしてあるセルの内容を変えているの
ですが、それが反映されず、右クリックしてもメニューにバーコードコントロール9.0
というのが出なくなり、プロパティを実行してもバーコードのプロパティも
出てこなくなりました。
0080デフォルトの名無しさん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
0081デフォルトの名無しさん2008/10/07(火) 20:56:19
>>80
同じと考えていい。
フィールドでの初期化はコンストラクタより先に処理される。
継承がある場合、継承もと(親)のコンストラクタより優先して継承先(子)を含む
すべてのフィールドが初期化される。これはjavaと動作が異なる。
javaの場合は継承もとのフィールドから継承もとのコンストラクタ、
続いて継承先のフィールドから継承先のコンストラクタの順となる。
0082デフォルトの名無しさん2008/10/07(火) 22:11:05
クリスタルレポートで、動的にフォントサイズを変更するってできますか?
エクセルの「縮小して全体を表示」のような動作を希望してるのですが、
該当フィールドのフォントサイズの横のX2ボタンで式エディタに記載すると思うのですが、
0083デフォルトの名無しさん2008/10/07(火) 22:38:32
これで良いのかな?
if (length({tblname.item}) > 20) then 9
else
if (length({tblname.item}) > 10) then 10
else 11
0084デフォルトの名無しさん2008/10/07(火) 23:50:46
>>78
YES
0085デフォルトの名無しさん2008/10/08(水) 21:20:17
>>81
ありがとう
0086デフォルトの名無しさん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

0087デフォルトの名無しさん2008/10/08(水) 23:10:18
Valueプロパティを持ったクラスでラップして返す
Object型からのWidening Operatorも実装すればValueプロパティを省略できる
0088デフォルトの名無しさん2008/10/08(水) 23:13:41
ピロシキ
0089デフォルトの名無しさん2008/10/09(木) 17:08:55
トランザクションの事で質問です
SQLサーバーのスレで聞くべきなのかもしれないのですが
VB2005で開発しているのでこちらで質問させていただきます

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

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

0090デフォルトの名無しさん2008/10/09(木) 17:42:42
@IT:SQL Serverで「デッドロック」を回避する
http://www.atmarkit.co.jp/fnetwork/rensai/sql28/sql1.html
0091デフォルトの名無しさん2008/10/09(木) 18:11:54
>>90
早速ありがとうございます
これを見て対応してみたいと思います
0092デフォルトの名無しさん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
0093デフォルトの名無しさん2008/10/09(木) 22:48:40
>>86
>>92 のようなソースを書いてみたんだけど、値は取得できるけど、値を設定してみても更新されない
FieldクラスのコンストラクタにDataRowとカラム名を渡して、
ValueプロパティでDataRow.Item(カラム名)に値をセットすると更新される
この2つの違いがわかりません。
0094デフォルトの名無しさん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 を受け取るクラスにしなくちゃいけないかも?
0095デフォルトの名無しさん2008/10/09(木) 23:51:48
>>94
なるほど、ありがとうございます。
DataRow と name を受け取る方向で、いろいろテストしてみます。
0096デフォルトの名無しさん2008/10/09(木) 23:53:08
遠隔地のカメラから画像をPC内に取り込み、動画データとして保存する
プログラムを作成しています。ちなみに VB.NET2005

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

非常に難しいようならば、複数のjpeg画像をaviなどの動画ファイルに
変換する、コマンドラインタイプのフリーソフトなんかでもいいのですが、
なにかないのでしょうか?
0097デフォルトの名無しさん2008/10/10(金) 11:34:48
DataGridViewでDataBindingを使っているのですが、
DBの設計とUIに食い違いがあるときはどうするのが定石でしょうか?
例えば、DBではdatetime型だけど、画面上は和暦で表示し
元号をコンボボックスで選択、年月日はテキストボックスで入力したい
というような場合です。
0098デフォルトの名無しさん2008/10/10(金) 11:35:31
vfw api でぐぐってみるといい
0099デフォルトの名無しさん2008/10/10(金) 11:37:43
>>97
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/034wareki/wareki.html
0100デフォルトの名無しさん2008/10/10(金) 11:48:47
>>97
ありがとうございます。
でも、わからないのは和暦西暦の変換方法ではなく、この変換処理を
どこに挟めばいいのかということなんです。

現在は単純に
da.Fill(ds)
dgv.DataSource = ds.Tables(0)
としているのですが、これだとdgvの列が自動生成されてしまいますよね。
dsに和暦を保持するための列を作って画面にはそちらを表示し、
もともとあった西暦の列は隠してしまう。
そしてda.Fillとda.Updateの直前に相互に変換すればいいでしょうか?
0101デフォルトの名無しさん2008/10/10(金) 12:03:58
いや、自動生成の列は使用せずに、表示する列はすべて作成する。
んで、その中の日付表示する列のDefaultCellStyleプロパティの中のFormatメンバ
に表示フォーマットを
{0:ggyy年M月d日}
という監事で設定すればOK
0102デフォルトの名無しさん2008/10/10(金) 14:14:51
vb.net 2005使ってます。TextBoxの事で質問があります。
MultiLine=falseなテキストボックスの高さとパディング?(右余白)を変更したいのですが、
可能でしょうか?

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

TextBox1.Padding = New Padding(30)

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

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

よろしくお願いいたします。
0103デフォルトの名無しさん2008/10/10(金) 14:25:26
高さはAutoSize = Falseなら普通にHeightとかで設定できる
左右の余白はEM_SETMARGINSが必要かな
上下の余白は……なんかあったっけ
0104デフォルトの名無しさん2008/10/10(金) 14:28:27
>>103
AutoSize = false ですかorz
早速確認してみます

#VB.NET初めて1ヶ月・・・はまりまくりですorz
0105972008/10/10(金) 14:57:07
>>101
ありがとうございます。確かに和暦で表示はできたのですが、本来の要求は

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

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

DBとDataGridViewでデータをやりとりする間に変換処理をはさむ
のがいいかと考えていたのですが、もしかしたら
DataGridViewCellとDataGridViewColumnを継承して独自のコントロールを
作ってしまった方が早いでしょうか?
0106デフォルトの名無しさん2008/10/10(金) 15:07:44
わが君は千代に八千代に さざれ石の、いわおとなりてこけのむすまで

和暦のプログラムがあるたびに、頭の中で国家がループする
0107デフォルトの名無しさん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すればいいんじゃね?
0108デフォルトの名無しさん2008/10/10(金) 23:00:03
教えてください。

FormのWidthが123より小さく出来ません。
なんとかならないでしょうか?
01091082008/10/10(金) 23:08:57
108です
FormBorderStyle = Noneで123以下にしたいのです。お願いします。
0110デフォルトの名無しさん2008/10/10(金) 23:10:58
>>109
Min なんたらとかってプロパティがない?
0111デフォルトの名無しさん2008/10/10(金) 23:11:21
windows 2003 サーバーにアクセスする時
XP以降から VB6 のEXEだといちいち確認メッセージがでるのですが
これって何とかなりませんか?
01121082008/10/10(金) 23:31:26
>>110
上手く行きました。どもっす。
0113デフォルトの名無しさん2008/10/11(土) 01:49:17
>>111
詳しくは知らんけど、コンパネ→管理ツール→.NETflamework1.1ウィザード
の.NETセキュリティあたりを適当にいじってみる
0114デフォルトの名無しさん2008/10/11(土) 01:50:30
ごめんVB6ってかいてあったわw
0115デフォルトの名無しさん2008/10/11(土) 01:52:35
最低だなお前
こんな時間にすげえムカついた
0116デフォルトの名無しさん2008/10/11(土) 12:51:06
VS2005にてスプラッシュ・スクリーンを既存のWindowsFormプ
ロジェクトに入れようと思い、ソリューションエクスプローラーの上で

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

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

ですが表示されなくなりました。(以前は表示されていました。)
どうすれば再び表示する事が出来るのでしょうか?
01171112008/10/11(土) 21:56:03
>>113
すんません。スレ位置違いで投稿してしまいました。
それでも参考になります。
ありがとうございました。
0118デフォルトの名無しさん2008/10/11(土) 22:18:25
VB.netでエクセルマクロいじくることってできます?
参照で追加しなきゃいけないライブラリとか参考になるサイトとか教えて下さい
0119デフォルトの名無しさん2008/10/11(土) 22:20:53
>>118
http://support.microsoft.com/default.aspx?scid=kb;ja;303872
0120デフォルトの名無しさん2008/10/11(土) 22:56:39
Count とかって、メソッドで定義してる人もいれば Function で定義してる人もいるけど、
ReadOnly Property と Function って、どう使い分ければいいの?
0121デフォルトの名無しさん2008/10/11(土) 22:57:01
さんくす
0122デフォルトの名無しさん2008/10/11(土) 23:05:17
CountならFunctionだろう。動詞なんだから。
例えば配列のLengthはプロパティだな。名詞なんだから。
0123デフォルトの名無しさん2008/10/11(土) 23:11:04
Countには名詞用法もあるが
0124デフォルトの名無しさん2008/10/11(土) 23:15:59
.NETでCountはたいがいプロパティだな
0125デフォルトの名無しさん2008/10/11(土) 23:29:21
If foo.Property() = foo.Property() Then
は真となることが望ましいが
If foo.Function() = foo.Function() Then
はわからんぞとか

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

などというガイドラインがあった気がする。
0126デフォルトの名無しさん2008/10/11(土) 23:31:56
プロパティのgetで例外投げちゃダメとかもあったな
0127デフォルトの名無しさん2008/10/11(土) 23:39:01
>>120
そのあたりはフィーリングで決めればいいんじゃないの?

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

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

ちなみにCountならプロパティの方が普通だろう。
0128デフォルトの名無しさん2008/10/11(土) 23:39:07
VB5くらいの時代だったが、
今と同じく上位エディションにはクリスタルレポートがバンドルされていて、
印刷開始の命令が、Actionプロパティに1をつっこむというものだった。
当時でもこりゃないぞと思ったよ(笑
0129デフォルトの名無しさん2008/10/12(日) 00:23:15
>>120-127
ありがとう、参考になりました。
01301162008/10/12(日) 21:15:39
誰か詳しい人教えて下さい。
0131デフォルトの名無しさん2008/10/12(日) 21:21:11
>>130
再インストール
0132デフォルトの名無しさん2008/10/12(日) 21:54:21
>>131
それしか無いんでしょうか?

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

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

Atlasの何たらをインストールしたのが原因かもしれません。
0133デフォルトの名無しさん2008/10/13(月) 01:06:21
VS2005+Ajaxは何度かインストールしたけど
そんな症状は起きたことありません。
0134デフォルトの名無しさん2008/10/13(月) 08:37:53
VB.NetでノートPCのタッチパッドを無効にする方法はありませんか?
0135デフォルトの名無しさん2008/10/13(月) 09:49:27
>>134
デバイス依存だろうから無理っぽい。
マウスを殺すくらいのことならできるけど。(それでも、グローバルには無理)
0136デフォルトの名無しさん2008/10/13(月) 13:34:48
初歩的な質問で申し訳ないです

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

イメージとしては、電話の通話時間のように
・通話開始ボタン→常に00:00:00からカウント
・通話終了ボタン→カウント終了し、値を残しておく
としたいです
0137デフォルトの名無しさん2008/10/13(月) 13:42:46
0で初期化
00:00:00 形式で表示
経過秒を保存

ってだけだろ?w 何がわからないのか整理してみろよ
0138デフォルトの名無しさん2008/10/13(月) 13:45:12
そのレベルのことができないということは、
プログラムなんて何も書けないことと同義じゃないのか?
0139デフォルトの名無しさん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

0140デフォルトの名無しさん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
0141デフォルトの名無しさん2008/10/13(月) 13:53:34
VBな人って時間の計算好きだよね
素直にTimeSpan使え
0142デフォルトの名無しさん2008/10/13(月) 13:57:15
>141
TimeSpanは、24時間以上は使えないような気がする。
0143デフォルトの名無しさん2008/10/13(月) 14:00:24
>141
24時間以上も使えたみたいです。
失礼しました。
0144デフォルトの名無しさん2008/10/13(月) 14:08:30
>>137
センスが無さ杉。
死んだ方が良いよ。
氏ねじゃなくて、死ねだからね。
0145デフォルトの名無しさん2008/10/13(月) 14:13:37
TimeSpanは1刻みが100nsで内部形式がInt64だから
最大約10^19[100ナノ秒]≒10^7[日]くらいか
0146デフォルトの名無しさん2008/10/13(月) 14:30:15
>>144
センスって何?

問題の切り分けができないやつは、プログラマに向いてないよ。
0147デフォルトの名無しさん2008/10/13(月) 18:14:56
>>139-140
それはない
0148デフォルトの名無しさん2008/10/13(月) 20:24:21
質問です

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

個人的にはすごくFalse返してほしいんだけどTrue返してくる
0149デフォルトの名無しさん2008/10/13(月) 20:26:06
>>148
たぶん、コンパイルエラー
0150デフォルトの名無しさん2008/10/13(月) 20:27:51
>>149
まーじでー
ちょっと見直してくるわ
0151デフォルトの名無しさん2008/10/13(月) 20:28:22
IsDate("Oct-8" / 512)

だと、実行時エラー(InvalidCastException)
0152デフォルトの名無しさん2008/10/13(月) 20:31:31
あぁw
ごめ
IsDate("Oct-08/512")
かな
0153デフォルトの名無しさん2008/10/13(月) 20:35:35
True

ちなみに、0512/10/08 0:00:00 に変換される
0154デフォルトの名無しさん2008/10/13(月) 20:37:06
>>153
なるほど!
ありがと〜〜
0155デフォルトの名無しさん2008/10/13(月) 20:43:00
それとデバッグ中にフォームサイズ変更しようとするとVB2008ごと落ちるのは前バージョンからですか?
0156デフォルトの名無しさん2008/10/13(月) 20:44:33
>>155
別に落ちないけど?
0157デフォルトの名無しさん2008/10/13(月) 20:46:20
あ、デバッグ中のアプリじゃなくてデザインの方です〜
0158デフォルトの名無しさん2008/10/13(月) 20:47:37
>>157
うん。やってみたけど落ちなかったよ。

作りたてのフォームだからかもしれないけど。
0159デフォルトの名無しさん2008/10/13(月) 20:53:16
>>158
そっかぁ〜
わざわざ調べてくれてありがとね
0160デフォルトの名無しさん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
0161デフォルトの名無しさん2008/10/14(火) 23:25:51
>>160
インスタンスは?
0162デフォルトの名無しさん2008/10/14(火) 23:50:25
>>161
connectionのインスタンス生成やデータベースへの接続等は問題なく行っています。
0163デフォルトの名無しさん2008/10/14(火) 23:57:54
んー。わかんね。WithEvents じゃなくて、AddHandler してもだめ?
0164デフォルトの名無しさん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) で見てみても
キーダウンのメッセージ が届いていないようでした。この場合どこか間違い
があるでしょうか?
0165デフォルトの名無しさん2008/10/15(水) 00:06:24
>>164
それって、たとえば Form 相手だと有効なの?

イベントをファイヤするのと、キーを送るのはまったく別物よ。
せめて、ウィンドウメッセージか SendInput を使おう。
0166デフォルトの名無しさん2008/10/15(水) 00:19:21
>>165
>イベントをファイヤするのと、キーを送るのはまったく別物よ。

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

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

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

0167デフォルトの名無しさん2008/10/15(水) 00:25:36
VBで書いた結構大きなプロジェクトを丸ごとC#に変換したいのですが
コードをVB→C#に変換する方法って何かありませんかね?
0168デフォルトの名無しさん2008/10/15(水) 00:32:40
あるけど丸ごとじゃないな
01691672008/10/15(水) 00:39:20
丸ごと変換したい場合はどうするのが一般的なんですか?
クラスごとに変換して合体させるんでしょうか?
0170デフォルトの名無しさん2008/10/15(水) 00:40:59
「変換しない」が一般的で唯一の正しい答え
0171デフォルトの名無しさん2008/10/15(水) 00:42:43
DLLにしてC#から使えばいいじゃん
01721672008/10/15(水) 00:48:22
結構古いプロジェクトなんですがC#で改良したいんです
0173デフォルトの名無しさん2008/10/15(水) 00:54:11
しつこいんだよドアホ
0174デフォルトの名無しさん2008/10/15(水) 01:22:31
>>172
正規表現を使って置換
0175デフォルトの名無しさん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
0176デフォルトの名無しさん2008/10/15(水) 19:46:13
DateTimePickerのテキストボックスみたいなとこみたいにカーソルがない状態ってそうやれば作れますかね?
テキストボックスのカスタマイズで出来ますでしょうか?
やり方教えていただきたく
0177デフォルトの名無しさん2008/10/15(水) 22:25:01
>>167

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

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

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

1個のテキストボックスで同じ様な挙動させようとするとたぶん苦労するよ。
0178デフォルトの名無しさん2008/10/15(水) 23:34:52
>>177
どうも、誤字でした。

えーと、テキストボックスを3個使うのは、そのようにやるつもりなんです。
私の聞き方が悪いようでうまく伝わってないようです。
3個使うテキストボックスの1個の中の話でして。
例えばDateTimePickerのyyyyの部分が2008のときに2だけDeleteして3008にするようなことは出来ません。
というのは2008のどれか1文字をDeleteすることは出来ません。そもそもDeleteキーもBackSpaceキーも効きませんが
そもそもカーソルが存在しません。
このカーソルが存在しないっていうのをどうやったら作れるかな、という質問でした。
そもそもTextBoxじゃダメなのかな・・・
0179デフォルトの名無しさん2008/10/15(水) 23:35:47
そもそもって書きすぎだな俺
0180デフォルトの名無しさん2008/10/15(水) 23:49:37
+--UserControl---------------------+
|[Label] 年[Label]月[Label] 日 |
+---------------------------------+

のようにしてUserControlのKeyイベントでLabelのTextを操作するのがいいみたいです。
お騒がせしてすみませんでした。
>>177さんありがとうございました。
01811642008/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では
このインターフェースは対応していないようですがどのようにして使用可能になる
でしょうか?
0182デフォルトの名無しさん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
0183デフォルトの名無しさん2008/10/16(木) 21:33:34
リフレクションなぞ使わなくともActiveXInstanceプロパティで公開されてる
IWebBrowser2インターフェイスはshdocvw.dllをCOM参照すれば使えるようになるがその流れだとわざわざ参照する必要は無いな
IServiceProvider以下は
・自前で定義する
・Windows SDK入れてインターフェイスが定義されているidl探してmidl.exeでtlb作ってそれをCOM参照……できたっけ?
 直接COM参照できないならtlbimp.exeでdll作ってそれを参照
0184デフォルトの名無しさん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・・・の件は現在無知のため調べてみないと
わからない状態でした、もう少し苦しんでみます。ご指導ありがとうございました。
またよろしくお願いします。
0185デフォルトの名無しさん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とかもちゃんと調べておくように。
01861852008/10/16(木) 23:42:47
あ、違ったかな。
Marshal.GetComInterfaceForObjectでIntPtrを取得して、
それをMarshal.QueryInterfaceで変換する。
だったかな。

うろ覚えですまん。
0187デフォルトの名無しさん2008/10/17(金) 06:22:24
いらんよ、Marshalなんぞ。
参照カウンタが上がって面倒なだけだ。
0188デフォルトの名無しさん2008/10/18(土) 15:48:21
currency を$にしたいのに\になっちゃう
どうすればいいの?
0189デフォルトの名無しさん2008/10/18(土) 15:50:21
>>188
Globalization の CultureInfo をどうたらこうたら
0190デフォルトの名無しさん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

この辺かなっと思ったんですけど情報が少なくて…
サンプルなどありますでしょうか?
0191デフォルトの名無しさん2008/10/18(土) 16:07:39
>>190
データの形式にもよるけど、シリアライズ・デシリアライズが簡単でおすすめ。

出力なら、XmlTextWriter のやつを探せばいいんじゃね?
0192デフォルトの名無しさん2008/10/18(土) 16:10:57
>>190
めちゃくちゃ簡単やん
01931902008/10/18(土) 16:25:38
>>191
レスありがとうございます。どのようなものか読んだだけではすぐにはわかりませんでしたが、とにかく試してみます。

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

01941902008/10/18(土) 19:16:47
>>191-192
Serialize やってみたら本当にすごい簡単にできました!
次に、生成されるXMLについてなのですが、これに
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
のような行を追加することは可能でしょうか?
0195デフォルトの名無しさん2008/10/18(土) 19:24:07
XmlWriter作って先にXmlWriter.WriteProcessingInstructionで書き込んでおく
01961902008/10/18(土) 20:59:24
>>195
すげーーーー! あなたが光り輝いて見えます!
0197デフォルトの名無しさん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のポート設定してあります

何か設定忘れてるかな?
0198デフォルトの名無しさん2008/10/19(日) 00:56:10
DBはDB板へ
0199デフォルトの名無しさん2008/10/19(日) 00:59:59
板違いでしたか
聞きなおしてきます
失礼しました
0200デフォルトの名無しさん2008/10/19(日) 01:02:53
>>197
ネットワークの問題だろ
0201デフォルトの名無しさん2008/10/19(日) 01:25:21
初心者にオススメ本を?
02022012008/10/19(日) 01:33:37
すみません。誤爆しました
0203デフォルトの名無しさん2008/10/19(日) 19:24:47
VB2008でForm上に自分でデザインした画像ファイルを使用したボタンを設置したいのですが、一般的なやり方ってどのようなやり方がありますか?
現在は1つの画像ファイルに|通常時|押された時|無効の時|のような感じで並べてあり、
パネルの中に画像を読み込ませたピクチャーボックスを置いてマウスオーバー・ダウンなどでピクチャーボックスの位置をずらして模擬ボタン作っています。
あまりスマートな方法ではないと思うので、ほかに方法はないでしょうか?
よくあるオンラインゲームのランチャー画面的なグラフィカルなものをできるようにしたいです。
0204デフォルトの名無しさん2008/10/19(日) 20:48:32
Buttonを継承したクラスでOnPaintをオーバーライドする
およそVBらしくない手段だから頑張って勉強してね
0205デフォルトの名無しさん2008/10/20(月) 20:49:30
OnPaintをオーバーライドってのが難しくてよくわからんなぁ
わかりやすく解説したサイトorサンプルはないものか…
0206デフォルトの名無しさん2008/10/20(月) 20:55:13
onpaint button vb でぐぐれ

「スマートにやりたい」っていうのが理由なんだったら
横着せずにちゃんと基礎からオブジェクト指向を勉強した方がいいよ
継承してオーバーライドしなくても一応Paintイベントでもできるんだよ
それだと使い回し効かなくて全然スマートじゃないけどね
0207デフォルトの名無しさん2008/10/20(月) 21:08:45
ピクチャーボックス使ったボタンコントロール作りゃいいじゃん
0208デフォルトの名無しさん2008/10/22(水) 05:53:11
0お
0209デフォルトの名無しさん2008/10/22(水) 13:28:22
初めて質問させていただきます><

VBで作成したテキスト入力欄にTABキーでフォーカスを移した際に
元々入力されている文字列を全選択されている状態にしたいのですが、
これって、プロパティの方で設定できるのでしょうか?
それともプログラムの方にそういうロジックを組まなければいけないのでしょうか?
0210デフォルトの名無しさん2008/10/22(水) 13:31:55
そんなプロパティは無いな
0211デフォルトの名無しさん2008/10/22(水) 13:35:29
>>210
ないのですか。。
では、プログラムの方にロジックを組まなきゃいけないんですね;;
02122092008/10/22(水) 14:26:51
>209です。
文字列を全選択する方法がわかったのですが、
どうしてもマスクが使用されているテキストボックスだけ
フォーカスを移動させても、全選択されません。

SlectAllを使っているのですが、マスクが使用されている箇所も
全選択できるようにはならないのでしょうか?
0213デフォルトの名無しさん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): フラグ

要するに「フラグをすべて調べて、最初に見つかったのだけ処理して、ループの前に戻る」コードです。
0214デフォルトの名無しさん2008/10/22(水) 19:07:15
Xをサブルーチンにするとか
仮に短くならなくても上向きのgotoだけはありえない
0215デフォルトの名無しさん2008/10/22(水) 19:16:40
>>213
コードが短くなることに価値のプライオリティを置くのは頭悪げ。
いや「頭悪げ」じゃなくて「頭悪い」と思う。
0216デフォルトの名無しさん2008/10/22(水) 20:14:51
頭悪げも頭悪げ
02172132008/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 があるのも気持ち悪く見えたんですが…
0218デフォルトの名無しさん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
02192132008/10/22(水) 21:40:21
>>218
やはりFor文を分離するのがよかったですか。なるほど。
if match1st = -1 then
  Exit While
End If
  Y
のようにすることにしました。
0220デフォルトの名無しさん2008/10/22(水) 21:42:46
( ^ω^)σ(i)
0221デフォルトの名無しさん2008/10/23(木) 03:12:57
素人にオススメ本にょ?
0222デフォルトの名無しさん2008/10/23(木) 20:32:19
Disposeメソッドを実行するのと、オブジェクトにNothingを代入するのって、
全然意味が違うの?
0223デフォルトの名無しさん2008/10/23(木) 20:35:25
全然違う
Nothingを代入するのはほとんどの場合無意味
IDisposableを実装した型は基本的には必ずDisposeすること
0224デフォルトの名無しさん2008/10/23(木) 20:59:31
>>222
Nothingはオブジェクトを参照していないことを明示的にするため
または参照を解除するために使う
Disposeは確保したリソースが使用しているメモリ領域を開放するために使う

たとえばピクチャボックスならNothingで画像消去してDisposeでメモリ解放するのが
正しい使いかた
0225デフォルトの名無しさん2008/10/23(木) 23:47:38
>>223-224
Disposeメソッドを実行した後に、Nothingを代入すればよい?
Nothingの代入は余計?
0226デフォルトの名無しさん2008/10/23(木) 23:51:32
ローカル変数ならNothingの代入はまずいらない
フィールドならもう使えないことを明示する目的でNothing代入したりするけどしなくてもいい
>>224の言ってるようにピクチャボックスのImageプロパティなんかはNothing入れといた方がいいかも
0227デフォルトの名無しさん2008/10/23(木) 23:57:25
>>223-224
>>226
ありがとう、参考になりました
0228デフォルトの名無しさん2008/10/23(木) 23:58:02
>>225
VB6からの人なんだろうけど、そういう「おまじない」志向いい加減止めたら?
大事なのは、
(1)ちゃんと自分の頭で考えることと、
(2)そのために必要な知識をきちんと学習すること
だろ。

IDisposable.Disposeの意義というか存在理由なんてweb上の情報だけでも
結構得られると思うんだけど。
0229デフォルトの名無しさん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を残すためにもしょうが無いのか。
0230デフォルトの名無しさん2008/10/24(金) 23:41:12
普通に警告でなかったっけ?
まあそんなポカミスあまりやらないし、やってもすぐ発見可能な類のものだから
気にすることもないと思うんだが。
0231デフォルトの名無しさん2008/10/25(土) 00:01:50
そうか、気にしすぎも良くないか。
ちょっと動揺しすぎてたみたいだ。
ちなみにVB2005では警告は出なかった。
0232デフォルトの名無しさん2008/10/25(土) 00:57:37
つか、自分でも色々とVB6 と .NET の速度を計測したけど

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

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

.NET好きだけど遅いのが難点。
0233デフォルトの名無しさん2008/10/25(土) 01:02:58
そもそもVB自体が速度が問題になるような時に使う言語じゃない

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

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

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

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

0235デフォルトの名無しさん2008/10/25(土) 01:16:00
速度うんぬん言うなら、C+SDK 最強w
0236デフォルトの名無しさん2008/10/25(土) 01:16:50
>>234
日経ソフトウエアに、GMail にログインする、ってのがあったよ。
それを参考にしたらどうだろう?
0237デフォルトの名無しさん2008/10/25(土) 01:18:22
>>263
それは雑誌でしょうか?
出来れば「@IT」みたいなサイト上にソースとかが公開されているページをご存知でしたら
お教えください。
02382342008/10/25(土) 01:29:37
ぐぐったら私がやりたい事をすでにやった人がいて
また、HPに公開されていました。

これから作ってみようと思います。
0239デフォルトの名無しさん2008/10/25(土) 08:58:46
それはどこのサイトでしょうか?
出来ればサイト上にソースとかが公開されているページをご存知でしたら
お教えください。
0240デフォルトの名無しさん2008/10/25(土) 18:43:40
それ私も知りたいです。
ヤフオクの出品手続きなど自動化したいので
0241デフォルトの名無しさん2008/10/25(土) 19:03:07
ヤフオク大介使えよ・・・
0242デフォルトの名無しさん2008/10/25(土) 19:53:22
InternetExplorer.application
0243デフォルトの名無しさん2008/10/27(月) 12:59:46
Framework2.0以上で
Const定義もしくはSharedのプロパティ・関数を
サブクラス側に定義を強制させる方法はない?
× Shared・ConstにはMustOverrideが使えない
× Shared・ConstはInterfaceで定義ができない
× Shared Sub Newでは実体が一度でも作成されないと実行されない

素直にSharedやめるか、コメントで「実装してね(はぁと」とでも書くしかない?
0244デフォルトの名無しさん2008/10/27(月) 13:02:03
> × Shared Sub Newでは実体が一度でも作成されないと実行されない

これは意味が分からんが、まあSharedでなければならない理由は大抵無いだろ
0245デフォルトの名無しさん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上でリレーション・連動がどんな仕組みで表現されているかもわからない入門者ですが
小さなヒントだけでも構いませんので、教えて下さいな。
0246デフォルトの名無しさん2008/10/27(月) 15:25:22
>>243
仮にそーゆーメソッドが定義できたとして、どうやって呼び出すつもりなの?
インスタンスがなけりゃどの派生クラスのものかなんて判断できないんだから
結局派生クラスを直接指定して呼び出すしかないだろ。
実行時にまでチェックを遅らせていいなら、
型情報から呼び出すことは出来るが。
0247デフォルトの名無しさん2008/10/27(月) 15:25:58
VB2005でWin32のGDIを使いたいのですが、文字を書くときにフォント名をLOGFONT構造体に設定しようとして
 <MarshalAs(UnmanagedType.ByValArray, SizeConst:=LF_FACESIZE)> _

 Public lfFaceName As Byte
にどうやって”MSゴシック”などを指定していいのかわかりません
何かご存じの方いらっしゃいませんか
0248デフォルトの名無しさん2008/10/27(月) 18:04:33
XMLのファイル処理でタグに応じてサブクラスが分かれるロジックで
Constでタグ名の定義を強制させてループで楽しようかと思ったんだが
そもそものshared使う発想自体が間違ってたようだ。

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

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

連日の残業で疲れているようだ。
今日は早く帰ることにしよう。
0249デフォルトの名無しさん2008/10/27(月) 20:15:46
>>247

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

で宣言すれば?
0250デフォルトの名無しさん2008/10/27(月) 20:38:26
ナースコールの掲示板にvbの質問が(><;)
http://qa.kangonavi.jp/qa4320181.html
0251デフォルトの名無しさん2008/10/27(月) 20:41:19
コピペ君って馬鹿だな、まで読んだ。
0252デフォルトの名無しさん2008/10/27(月) 22:24:32
>>246
ジェネリックで制約かければ使い道がないこともない
0253デフォルトの名無しさん2008/10/27(月) 23:00:32
>>246
デザインパターンのSingletonを使う。
俺は嫌いだが。
0254デフォルトの名無しさん2008/10/27(月) 23:36:13
Graphics と Bitmap とでは概念や機能に違いがあるようですが、どちらをどのように使えばいいのかわかりません><
特定の操作を与えて生成した画像を表示し、その後、ファイルに保存できるようにしたいのです。
・ Graphics.DrawLine/DrawPolygon/DrawString/etc と Bitmap.Save との両方に相当するメソッドを備えたクラスはありますか?
・ どちらかのクラスで、上に挙げたもののうちそれが持っていないものを代用するにはどうすればよいでしょうか。
0255デフォルトの名無しさん2008/10/27(月) 23:42:51
>>254
言ってることの意味がわからない。
GraphicsやImageといった基本的なクラスの意味すら理解せずに
グラフィックを扱うコードなんて書けるはずないと思うけど。
0256デフォルトの名無しさん2008/10/27(月) 23:44:30
Bitmapクラスのコンストラクタで空のBitmapを作成して,
Graphics.FromImageでそのBitmapオブジェクトに対するGraphicsオブジェクトを取得して
そのGraphicsオブジェクトを使ってBitmapオブジェクトに描画して
最後にBitmap.Save
02572542008/10/27(月) 23:45:37
もしかして
Dim g As Graphics
  '描画
(MainForm.CreateGraphics()).DrawImage(g)
Dim b As Bitmap = New Bitmap(g)
b.Save(ファイル名)
とかでいけちゃいます?
02582542008/10/27(月) 23:46:23
うわレス早! ありがとうございます
被ってすいません、今から試します><
02592542008/10/28(火) 21:54:51
ありがとうございます!
0260デフォルトの名無しさん2008/10/29(水) 09:36:13
.NET 2003です。

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

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

なにかもうちょっと手っ取り早くそのフォルダがあるか無いか調べられる関数ってVBには無いのですか?
02612602008/10/29(水) 10:05:18
System.IO.Directory.Existsで自己解決しました…
.NETがありましたね、そういえば。
0262デフォルトの名無しさん2008/10/29(水) 10:32:59
>.NET 2003です。
↓
>.NETがありましたね、そういえば。

…えー
0263デフォルトの名無しさん2008/10/29(水) 12:33:09
あれだな、VB独自関数しか調べなかった
02642602008/10/29(水) 14:04:24
>>263
おっしゃる通りでw
VBなんて触ったのVer.5以来だったから…
0265デフォルトの名無しさん2008/10/29(水) 20:14:26
教えてください。

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

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

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

VB2008、XP。
0266デフォルトの名無しさん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
0267デフォルトの名無しさん2008/10/29(水) 21:46:03
コピペ君って馬鹿だな、まで読んだ。
0268デフォルトの名無しさん2008/10/29(水) 22:39:31
スプレッドの一セル内の文字列の一部分をユーザーが範囲選択、
その値を取得する方法ってありますか?
vb6.0だとSelText使ってたんだけど。
0269デフォルトの名無しさん2008/10/30(木) 08:53:34
>>265
特定のカラムのセルに、常にボタンを出すだけなら
カラムを DataGridViewButtonColumn にするだけなんだけど
それでは駄目な理由が今ひとつわからない。

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

>>268
スプレッド?
02702682008/10/30(木) 10:19:47
>>269
SPREAD for .NETです。
0271デフォルトの名無しさん2008/10/30(木) 15:51:48
2008で質問です。

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

どうすれば親フォームの中央に
表示されるようになりますか?
0272デフォルトの名無しさん2008/10/30(木) 16:25:01
ttp://dobon.net/vb/dotnet/form/startposition.html
0273デフォルトの名無しさん2008/10/30(木) 18:30:20
子フォーム.ShowDialog(親)
02742652008/10/30(木) 23:43:51
>>269
どうもありがとうございます。
プロジェクト全体で主にデザイン上の理由からカスタムのボタンを使ってて
全体の統一をとるためにグリッドのボタンもカスタムのボタンを使いたいということです。
とりあえず今回はDataGridViewButtonCellを継承したクラスで地道にPaintすることで凌ぎました。

DataGridViewCellを継承してPaintで頑張れば何でも表示できるんだろうけど
編集時のコントロールが設定出来るんだから編集時以外の状態も
コントロールを設定出来そうな気がしたんですが見つけられませんでした。
探し方が甘いのかなあ。
誰かご存知の方いましたら教えてください。
0275デフォルトの名無しさん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を貼り付けて、名前を揃えてもエラーになるし・・・
どうしたら良いのでしょう?

0276デフォルトの名無しさん2008/10/30(木) 23:59:45
>>275
名前空間って概念が理解できてないみたいね。
遠回りでもちゃんとそれを理解した方がいいよ。
コピペグラマになりたいのなら薦めないけど。
0277デフォルトの名無しさん2008/10/31(金) 00:30:35
>>275
Dim instance As SerialPort
って書いてダメだとSerialPortの下に波線が出るよね?
そこにマウス持ってくと赤い丸に白のエクスクラメーションが出るよね?
それをクリックするんだ
0278デフォルトの名無しさん2008/10/31(金) 00:34:57
>>276-277
なるほど、宣言する必要があったのですね。
ありがとうございました。
02792712008/10/31(金) 08:08:37
>>272-273

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

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


また、シリアルポートにデータを受信したとイベントを認識させる方法はありますか?
現在はタイマーで定期的にポートを見に行くようにする予定です。
0282 [―{}@{}@{}-] デフォルトの名無しさん2008/10/31(金) 13:39:41
>>281
ボーレートとかスタート/ストップビットとか対向機器とあってますか?
ちゃんとやるなら、System.IO.Portsクラス使った方がよろしいかと
ご所望のイベントハンドラもこっちにはありますし

この手の制御やるならラインモニターぐらいは持ってないと辛いと思いますよ
(持ってたらごめんなさい)
0283デフォルトの名無しさん2008/10/31(金) 13:50:25
VB2008でAlt+Tabが1回押された時と同じ動作をしたいです。

現状、SendKeys.Send("%{TAB}")して逃げてたんですが、
たまに固まるので、他の方法で画面を切り替えたいんですけど、
何かいい方法ってありますか。
0284デフォルトの名無しさん2008/10/31(金) 13:51:47
カモンエスパー
0285デフォルトの名無しさん2008/10/31(金) 14:12:17
>>282
設定は見直しましたが、問題無いはずです。
イベントハンドラはシリアルポートのプロパティにあったのですね。
ただ、これを使用しても、受信時にイベントは発生しませんでした。

対向機器は、専用ソフトでは動作しているので問題無いです。
ただ、Seristerという汎用のシリアルモニタを使用してみたところ、受信できませんでした。
http://www.vector.co.jp/soft/win95/hardware/se423507.html
0286281-2852008/10/31(金) 14:33:24
すいません。
自分の中でいろいろ混乱しているようなので、一度整理してきます。
0287デフォルトの名無しさん2008/10/31(金) 14:38:19
FlexGridの一つ前のバージョン(2005?)
ってVB2008でも使える?
0288デフォルトの名無しさん2008/10/31(金) 15:09:57
DataGridViewで、行数が少ないとき、空きスペースができますよね。
この空きスペースをなくし、行数ぴったりの高さにしたいのですが、
何かいい方法はないでしょうか?
0289デフォルトの名無しさん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
0290 [―{}@{}@{}-] デフォルトの名無しさん2008/10/31(金) 15:35:32
>>289
専用ソフトとやらが何やってるか
モニタ使って観察してみれば違いがわかるんじゃないの?

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

プロパティを見る限りでは、当日の○印の色設定とかは見当たりますが・・・
02922832008/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
0293デフォルトの名無しさん2008/10/31(金) 17:54:33
Alt +Tabで表示されるウィンドウの定義が微妙
0294デフォルトの名無しさん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
0295デフォルトの名無しさん2008/11/01(土) 10:20:47
ヘルプでMessageBox.Showを調べて引数にどんなのを渡せるのか確認する
0296デフォルトの名無しさん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="利用規約とガイドラインに同意して出品する">
と書いてあり、このボタンを押して終了だけどさっぱりわかりません
どう書けばいいの?
0297デフォルトの名無しさん2008/11/01(土) 17:33:40
>>296
なにをしたいのかさっぱりわからないです
0298デフォルトの名無しさん2008/11/01(土) 18:08:43
たしかにw
ボタンを押すようにするソースがわからないです
onClickのイベントを実行すればいいと思うけどどう書けば実行されるのかさっぱりわからないです
0299デフォルトの名無しさん2008/11/01(土) 22:55:14
WebBrowserコントロール使ってるなら、Javascriptとやり方は一緒。
GetElementByIdとかで対象のエレメント探してClickメソッドで実行出来ると思う。
03002962008/11/02(日) 00:12:24
>>299
IDやnameがあるならいいけどないんですよね
だから1ヶ月近く先に進めないのです
0301デフォルトの名無しさん2008/11/02(日) 00:21:25
>>300
じゃあGetElementsByTagName 使えばいいんじゃないのかな。
ボタンなんてのは画面内で大抵数が決まっているだろうから、2つめとか3つめとかで取得すればいいと思う。
それが嫌ならonClick属性の内容を見てみればある程度特定出来ると思うけど。
0302デフォルトの名無しさん2008/11/02(日) 00:50:48
しょせん POST なんだから、必要なデータを Stream に書き込んで、
HttpWebRequest で Post する、って手もあるな。
0303デフォルトの名無しさん2008/11/02(日) 01:45:35
>>296
2chで質問してソフト作ったらそのソフトを売るつもりだろうw?
そんなの簡単に出来るけどおしえねぇーw
0304デフォルトの名無しさん2008/11/02(日) 01:51:58
いや、もうあるから・・・
ヤフオク大介っていう超便利なソフトが・・・
03052962008/11/02(日) 10:37:36
自分のスキルに絶望した・・・o...    rz
>>301>>302
昨夜ヒントを元に調べながらやってみたけどエラーばかり・・・
もうしばらく奮闘してみます

>>303
顧客・販売データをBDで管理しているので市販ソフトでは対応できないのだよ
自分のスキルでは売れるものなんて作れない
なので今はo...   rzなってる
03062962008/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
でなんかできたっぽい
0307デフォルトの名無しさん2008/11/02(日) 13:27:21
>>296
ちょっと質問なんですけどFlashで作られた画面上に特定の項目を入力し、
Flash内のボタンをクリックする
なんて事は出来ますか?

お気に入りのサイトがFlashで作られていてログインとかもFlashなんです。
でこれも何とか自動化出来ない物かと思ってます。
0308デフォルトの名無しさん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型
のようにすると問題なく通ります。


なぜこのような違いが出てしまうのでしょうか。
0309デフォルトの名無しさん2008/11/02(日) 15:01:57
>>308
MSDNライブラリの「演算子の結果のデータ型」を参照。
C#はC#で微妙にルールが違うから要注意
03103082008/11/02(日) 15:18:37
両方Byte型の場合
 a*bをByte型で計算する→計算結果をInteger型に変換してcに入れる
 a*b=15*32=480だから、乗算した段階で溢れてエラー

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

ということですか。


ありがとうございました。
0311デフォルトの名無しさん2008/11/02(日) 16:39:07
ちょっと変な質問なんですが…。

.NET2005のコンパイルって以前のバージョンの様にデバッグコンパイルと
リリースコンパイルをコンボボックスで選択する形式ではなく、デバッグ実行かビルドかで
Debug/Releaseを分けてるんでしょうか?
0312デフォルトの名無しさん2008/11/02(日) 16:44:02
>>311
Standard版以上ならその部分は切り替えができる。
0313デフォルトの名無しさん2008/11/02(日) 16:50:33
Expressでもできる
0314デフォルトの名無しさん2008/11/02(日) 16:54:43
>>312-313
レスありがとうございます

>>313
Express版なんですが、どこで切り替えができるのか教えて頂けないでしょうか?
このままでも困るわけではないのですが、どうも違和感が…
0315デフォルトの名無しさん2008/11/02(日) 16:55:23
環境設定VBのままだと出ないかな
0316デフォルトの名無しさん2008/11/02(日) 16:59:01
ツールバーのユーザー設定にあると思う
0317デフォルトの名無しさん2008/11/03(月) 13:40:35
配列を使う代わりに、ListやDictionaryを最近使うようにしています。
取り扱いが楽ですので・・・

でつまらない疑問なんですが、Foreachでループをするときに、
ループ内でそのオブジェクトが何番目かを知りたいのですが、
添え字をつかって従来通りForでCount -1 まで回すか
別途カウンタの変数を用意して、インクリメントしていくしか方法はないのでしょうか?
0318デフォルトの名無しさん2008/11/03(月) 13:51:15
>>317
純粋に方法論ということならIndexOfを使うとか、Listに登録するオブジェクト自身に
リスト内のIndexを持たせるとかもありそうだけど、普通に考えれば
ループ内でIndexを使うのにあえて頑なにFor Eachを使うメリットが分からない。
0319デフォルトの名無しさん2008/11/03(月) 13:56:21
Listは配列みたいに添え字でアクセスすればいいけど
Dictionaryの順番はほとんど無意味だから数えない方がいいよ
03203172008/11/03(月) 18:53:43
ありがとうございます。
参考になりました
0321デフォルトの名無しさん2008/11/04(火) 08:26:12
初心車 なんですが。

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

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

そもそも、Express Editionで配布って可能なんですか?
0322デフォルトの名無しさん2008/11/04(火) 09:47:42
できませんよ
製品版を買ってください
0323デフォルトの名無しさん2008/11/04(火) 11:55:14
>>321
確かに FAQ すら読まない DQN だ。
ttp://www.microsoft.com/japan/msdn/vstudio/express/faq/2008/default.aspx

でもだからって
>>322
ウソはいくない。
0324デフォルトの名無しさん2008/11/04(火) 13:39:35
>323
だめです。

どこを読めば良いのかわかりません。orz
0325デフォルトの名無しさん2008/11/04(火) 13:47:45
車じゃ読めないよなぁ・・・
0326デフォルトの名無しさん2008/11/04(火) 16:08:01
失礼します。
VisualBasic 2008 ExpressEditionで下記URLのシリアルポート通信プログラムを作ってみたのですが、DataReceivedイベントが発生しません。
http://www.geocities.jp/hatanero/rs232c5.html
ポート設定は合わせましたし、ハイパーターミナルにて受信することを確認しているのでケーブル等の問題ではありません。
何か他に必要なことがありましたら、教えてください。
よろしくお願いします。
0327デフォルトの名無しさん2008/11/04(火) 17:15:27
ここに、エスパーはいらっしゃいますか?
0328 ◆MtLFb74m1U 2008/11/04(火) 18:50:08
エスパーでも誰でもいいので、助けてください。
シリアルポートの受信イベントが何をやっても発生しません。

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

SerialPort1のプロパティは見ました。
この場合、後は何を見ればよいのでしょうか?
よろしくお願いします。
0329 ◆MtLFb74m1U 2008/11/04(火) 19:18:23
すいません、なんとか自己解決できました。
0330デフォルトの名無しさん2008/11/04(火) 20:01:17
おいまてw
0331デフォルトの名無しさん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のところに
インデックスがリストサイズより小さくなるようにしてくださいみたいな表示が出ました
配列の要素数を予め決めてないので、配列のサイズより大きくはなっていないと思います
どう直したらいいんでしょうか
0332デフォルトの名無しさん2008/11/04(火) 21:11:53
>>331
あんた才能なさ過ぎるわ。
みたいな表示が〜、じゃなくてエラーメッセージのマンマだろ。

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

止めた方がいいと思うよマジで。
0333デフォルトの名無しさん2008/11/04(火) 21:20:26
>>331みたいなやつってさあ・・・
いや、>>332が俺の言いたいこと全部言ってたからやっぱなんでもないわ
0334デフォルトの名無しさん2008/11/04(火) 21:21:58
>>331
俺が勉強始めた初日を彷彿とさせる
0335デフォルトの名無しさん2008/11/04(火) 21:27:22
>>332
ここって恥ずかしくて人に見せられないようなコードも気軽に晒せちゃう場所だと思うぜ
それを目にするのが嫌な人はいるだろうけど
そして>>331はいくらなんでもそんくらい自分で考えようぜ
0336デフォルトの名無しさん2008/11/04(火) 21:28:05
VBから始めたら良くある罠だろ・・・
0337デフォルトの名無しさん2008/11/04(火) 21:36:42
>>331

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

これがまんま答え
0338デフォルトの名無しさん2008/11/04(火) 21:39:46
基本中の基本だから、「VB 配列」あたりでぐぐって
一通りVBの配列に関する基礎情報を読んだ方が良いな。
0339デフォルトの名無しさん2008/11/04(火) 21:40:47
>>331
宿題か?
優しい俺様が教えてやろう
1行目のDim →  Dim Yakuyear(2) As Integer
0340デフォルトの名無しさん2008/11/04(火) 21:43:10
>>339
嫌がらせキタ━━━━━━(゚∀゚)━━━━━━ !!
0341デフォルトの名無しさん2008/11/04(火) 23:07:53
>>331です
お騒がせしてしまっているみたいで申し訳ないです
>>337さんを読んで
配列の要素数は予め決めていないといけないか
配列の要素数が少なすぎるかだろうというところまで辿り着きました
>>338さんの言うとおりぐぐってきます
申し訳ないです
0342デフォルトの名無しさん2008/11/04(火) 23:14:44
要素がない配列の要素にはアクセスできない・・・
0343デフォルトの名無しさん2008/11/04(火) 23:18:31
配列の要素数を宣言する必要がない言語しか知らなかった人なんだろう、きっと。
0344デフォルトの名無しさん2008/11/05(水) 00:02:29
リッチテキストボックスで、
DetectUrls = true 
の状態で作成されたリンクを開く方法教えてください
0345デフォルトの名無しさん2008/11/05(水) 00:15:04
開くっつっても色々あるが
0346デフォルトの名無しさん2008/11/05(水) 14:51:49
フォルダ→右クリで「プロパティ」→セキュリティタブ
で表示される、「グループ名またはユーザ名」のアイテムを、
どうやったら削除できるでしょうか? (簡易表示オフ)

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

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

アクセス許可を「なし」にしたいのではなく、「削除」して、アクセス権を設定する前の
状態に戻したいのですが、どうすばできるでしょうか
0347デフォルトの名無しさん2008/11/05(水) 15:00:57
>>342>>343
ありがとうございます
>>342さんの言うとおりでした
0348デフォルトの名無しさん2008/11/05(水) 19:37:37
>>346
前の状態、なんて保持してないだろ。
というわけで、親オブジェクトにあわせるとか、なんらかの設定が必要だと思われ。
0349デフォルトの名無しさん2008/11/05(水) 22:52:12
簡単な質問だと回答多いなw
0350デフォルトの名無しさん2008/11/06(木) 01:20:46
>>344
LinkClicked イベントのイベント ハンドラを作成し、コントロール内でクリックされたすべてのリンクを処理できます。

だってさ。
0351デフォルトの名無しさん2008/11/06(木) 09:15:14
>>349
そりゃぁ仕方ないと思うが・・・
0352デフォルトの名無しさん2008/11/06(木) 11:09:22
>>348
ありがとう。
対象のAccessControl.RemoveAccessRuleの2番目の引数に、FullControlを
指定したら消すことができました。

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

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

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

と346では言っていましたが、
おそらくセキュリティタブ→詳細設定→編集→アクセス許可エントリ
でないと見えないよう小さい権限が残っていたのかもしれません。
0353デフォルトの名無しさん2008/11/06(木) 13:17:44
モードによってフォームの内容を大幅に変えるときは、
モードごとにUserControlを作って切り替える方法が一般的でしょうか?
0354デフォルトの名無しさん2008/11/06(木) 13:33:46
>>353
俺はすごく小さい場合の案件除いて目的が大きく異なるなら分けて作ってる。
共通レイアウト用にベースのフォーム作って継承して使うとか、共通のインターフェイス使うとかで
とりあえずフォーム自体を分けて作ってる。
外からそこに呼び出しが必要なら外部に公開しているインターフェイス経由で呼び出すとかで共通化して対応
03553532008/11/06(木) 14:31:16
>>354
切り替えの際は新しいフォームをShowして自分をCloseするのでいいんでしょうか?
これだとタスクバーが一瞬ちらつきますが、それはしょうがないですか?
0356デフォルトの名無しさん2008/11/06(木) 14:40:35
>>355
いくらでも方法はあると思うんだけど
例えば
表示切り替えしたい親のフォームにパネルをDockをFillで張り付けるとかして
そこに2つのフォームを外枠を消して突っ込むとか
で、2つをLoadだけすませておいてVisible切り替えるとか

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

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

切り替えたい部分だけをUserControlにしておけばそれと同じことが
できるのですが、UserControlが多くなるとVisualStudioが重くなるんですよね…
そうでなければUserControlでいいのですが。
0358デフォルトの名無しさん2008/11/06(木) 16:06:26
トップレベルのままじゃだめ
0359デフォルトの名無しさん2008/11/06(木) 19:06:36
実引数にクラス(インスタンス)を入れて、それを仮引数のストリング型に入れることは出来ますか?
0360デフォルトの名無しさん2008/11/06(木) 19:15:04
それくらいまず試せよ
0361デフォルトの名無しさん2008/11/06(木) 21:22:47
Stringクラスのインスタンスならもちろんできるしそうでないなら無理
0362デフォルトの名無しさん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が使用後に参照されない一時的なものになるので
ベターだと思うのですが。
0363デフォルトの名無しさん2008/11/06(木) 21:46:06
For i As Integer = 0 to 10
0364デフォルトの名無しさん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)の方が良さげ?
0365デフォルトの名無しさん2008/11/06(木) 21:51:32
(1)のほうがベター
>>364の場合は混乱のもとになるので尚更
03663652008/11/06(木) 21:52:51
間違えた
(2)のほうがベター
0367デフォルトの名無しさん2008/11/06(木) 21:54:03
>>365
びっくりしたじゃないかw
03683642008/11/06(木) 22:02:20
>365
サンクス。気をつけます
0369デフォルトの名無しさん2008/11/07(金) 09:47:38
そーゆーものだったのかー
俺は変数はまとめて宣言するほうが良いって昔教わったから、
(1)のほうが良いと思ってた
0370デフォルトの名無しさん2008/11/07(金) 09:54:00
VB6の時代はそうだったからね
0371デフォルトの名無しさん2008/11/07(金) 09:54:19
どっちでも好きなのを使うといいよ
03723532008/11/07(金) 10:07:54
>>356 >>358
こんな感じでできました。ありがとうございます。
form.TopLevel = False
form.Visible = True
form.FormBorderStyle = FormBorderStyle.None
panel1.Controls.Add(form)
UserControlよりフォームを使うほうが単体でテスト実行できるし、
VSも重くならないしでよさそうですね。
とりあえずこれでやってみます。
0373デフォルトの名無しさん2008/11/07(金) 10:52:36
>>369
まとめて宣言するとついつい使い回してしまい、わかりにくくなりやすい
0374デフォルトの名無しさん2008/11/07(金) 11:15:28
昔のBASICは最初にしか宣言できなかったから、その名残もあるだろうな
0375デフォルトの名無しさん2008/11/07(金) 14:16:12
LINQ to SQLを使いたくてImports System.Data.Linqとしてるんだけど
無償版だと使えないのかな?

”インポート 'System.Data.Linq' で指定された名前空間または型が…”
といった警告が表示されて先にすすめません…
0376デフォルトの名無しさん2008/11/07(金) 14:31:50
>>375
System.Linq
03773752008/11/07(金) 14:44:23
返信、ありがとうございます。

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

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

情報の小出しになってしまい申し訳ありません。
0378デフォルトの名無しさん2008/11/07(金) 14:51:28
・2005を使っていた
・System.Core.dll/System.Data.Linq.dllを参照できていない

つか詳しくは無いがLinq to SQLでテーブルの作成とかできたっけ?
03793752008/11/07(金) 14:56:42
返信ありがとうございます。
本当に助かります。

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

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

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

以上、よろしくお願いします。
03803752008/11/07(金) 15:02:05
連投、申し訳ありません。
自己解決しました。

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

回答してくださった方、ありがとうございました。
0381デフォルトの名無しさん2008/11/07(金) 15:24:10
あっはっは!
おっちょこちょいだな〜
0382デフォルトの名無しさん2008/11/07(金) 16:44:48
AppPositionて何のことですか?

ネトゲのツール落としたらiniに記述あったんだけど
0383デフォルトの名無しさん2008/11/07(金) 16:50:27
>>382
作った奴に聞け。
多分スタートアップフォームのウインドウ左上のスクリーン座標だと思うが
0384デフォルトの名無しさん2008/11/07(金) 16:51:50
ツールの作者に聞け
画面位置とかじゃね?
0385デフォルトの名無しさん2008/11/07(金) 20:12:45
みんなやさしいw
0386デフォルトの名無しさん2008/11/07(金) 21:06:42
VBってC#と違ってなぜか(手抜きとしか思えないんだが)デリゲートに対して
代入加算演算子が使えないよね?

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

ジェネリックメソッドで何とかしてみようと最初考えたんだが、
どういうわけか型パラメータの制約にデリゲートは指定できんないんだよねこれが。
0387デフォルトの名無しさん2008/11/07(金) 21:29:14
代入加算演算子ってインクリメントのこと?
0388デフォルトの名無しさん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()
0389デフォルトの名無しさん2008/11/07(金) 22:12:38
普通に加算演算子もつかえないんだっけ…?
0390デフォルトの名無しさん2008/11/07(金) 22:22:02
まあ加算演算が使えるなら加算代入演算もできるわけだからな
0391デフォルトの名無しさん2008/11/07(金) 22:30:26
そのためのCombineでないの?
0392デフォルトの名無しさん2008/11/07(金) 22:35:11
CombineはDelegateしか返さんのでいちいちキャストめんどい、ってのが386の趣旨だろ?
0393デフォルトの名無しさん2008/11/07(金) 22:38:52
>>388
これってVB9?
いずれにしてもやっぱり簡単で綺麗な方法はないんだよねやっぱり。。

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

これが物理的にどうしようもないことなら諦めもつくんだけど
C#だと同じコードがずっとシンプルに書けるから余計腹が立つんだよ。
0394デフォルトの名無しさん2008/11/07(金) 22:41:39
C#使えばええやん?
0395デフォルトの名無しさん2008/11/07(金) 23:33:00
それができないから聞いてるんじゃね?
0396デフォルトの名無しさん2008/11/07(金) 23:37:56
>>364で(2)のほうがベターな理由って何なんすか?
0397デフォルトの名無しさん2008/11/07(金) 23:39:05
メクラかお前。
0398デフォルトの名無しさん2008/11/07(金) 23:41:15
俺に言ってるのか?
0399デフォルトの名無しさん2008/11/07(金) 23:46:52
お前は誰だ
0400デフォルトの名無しさん2008/11/08(土) 00:02:05
なんじゃこりゃ
0401デフォルトの名無しさん2008/11/08(土) 01:04:33
>>396
バグを生みにくいコーディングだから。
パフォーマンスに影響が出るかもしれないから。

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

よっぽどじゃない限り影響なんてコンマ単位ですら出ないだろけど
0403デフォルトの名無しさん2008/11/08(土) 01:33:00
>>396
>>364のコードに限定すれば(2)でも実害はない。
でも普通のプログラマならたとえ実害がないことは認めても必要もないのに
(2)のように書きたいとは思わない。

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

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

こういうのはプログムを書いてるときのマインドのままだと理解できないかもしれない。
頭を他人のプログラムを読んでるときのマインドに切り替えて考える必要がある。
0404デフォルトの名無しさん2008/11/08(土) 01:36:45
すまん>>403の(2)は(1)に読み替えて欲しいw
0405デフォルトの名無しさん2008/11/08(土) 01:49:01
>>403
(1)と(2)間違えてるよね?

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

これが i のような変数じゃなくて、オブジェクトだったら話は変わってくるかもしれんがな。
04063962008/11/08(土) 08:42:46
なるほど。
ただ俺はぱっと見で
For i as Integer = 0 to 10って見ずらいんだよねw
0407デフォルトの名無しさん2008/11/08(土) 11:04:54
そのうち
For i as Integer = 0 to 10
↓
For i = 0 to 10
でもおkになったりして
0408デフォルトの名無しさん2008/11/08(土) 11:36:56
そのうち?
0409デフォルトの名無しさん2008/11/08(土) 11:42:33
それはローカル変数と区別できないからありえない
型推論させるなら、For Dim i = 0 to 10かな
C#ならfor (var i = 0; i < 10; i++)と書ける
0410デフォルトの名無しさん2008/11/08(土) 11:56:29
BASICはPascalの文法を参考に構造化方面の拡張をやった。
VB.NETで急にC/C#風の文法を持ち込んだもんで構文的にしんどくなってる。
0411デフォルトの名無しさん2008/11/08(土) 12:02:18
ラムダ式の書きづらさは相当
0412デフォルトの名無しさん2008/11/08(土) 12:03:29
いいかげん意地張るのやめて{ }使えばいいのにw
0413デフォルトの名無しさん2008/11/08(土) 12:10:02
>>364 >>396
私は
同じ意味の変数を何回も使うならまとめて最初に定義 (1)
いろんな意味のループを別々に使うならそのつど定義 (2)
してます。
0414デフォルトの名無しさん2008/11/08(土) 12:12:43
配列に対する0 to Length-1のループは最適化されるはずだけど
(1)だとどうなんだろう
0415デフォルトの名無しさん2008/11/08(土) 12:12:58
>>412
行指向の構文に{ }を持ち込むとRubyみたくなって見るに忍びない
0416デフォルトの名無しさん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

これで高い給料受け取ってるんだから笑える。
0417デフォルトの名無しさん2008/11/08(土) 14:48:00
コピペ君って馬鹿だな、まで読んだ。
0418デフォルトの名無しさん2008/11/08(土) 15:57:04
>>411
次期バージョンではラムダ式の複数行記述が可能らしい。

寧ろLINQの方が言語仕様上アレだと思う。
0419デフォルトの名無しさん2008/11/08(土) 16:06:43
ラムダ式が書きづらいおかげで、クエリ演算子をなんでもかんでも言語に組み込んじゃってるもんな
何十年前だw
0420デフォルトの名無しさん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
0421デフォルトの名無しさん2008/11/08(土) 17:01:28
C#なら x => { if (x > 0) return x; else return -x; } だもんなあ…
正直、>>420みたいなの書くくらいなら普通にメソッド書いたほうがマシだと思う
0422デフォルトの名無しさん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)

何か方法はあるのでしょうか?
0423デフォルトの名無しさん2008/11/09(日) 12:49:45
>>422

Form2.Show(me)
じゃだめなのかね。
0424デフォルトの名無しさん2008/11/09(日) 12:50:54
ちと説明不足だった。

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

Form2.Show(me)

ってな感じで
0425デフォルトの名無しさん2008/11/09(日) 12:58:32
常にOwnerの手前に表示するだけなら>>424で
すべての手前に表示したいなら>>424+TopMost =Trueでいいと思う
でもあくまでモードレスなのでShowDialogとは違う
0426デフォルトの名無しさん2008/11/09(日) 15:17:52
>>423,424
こんな方法があったのですね。
目から鱗です。

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

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


お二方、ありがとうございました。
0427デフォルトの名無しさん2008/11/09(日) 15:35:27
ShowDialogで駄目な理由はなんなの?
0428デフォルトの名無しさん2008/11/09(日) 15:42:12
>>426
>>424+呼び出し元ウィンドウのEnabled変えれば
ShowDialogと同じになんじゃね?
0429デフォルトの名無しさん2008/11/09(日) 16:02:11
やってないからわからんけど
所有側をenabledにしても非所有側は最小化はできてしまうと思う
0430デフォルトの名無しさん2008/11/09(日) 17:37:41
>>427
呼び出し元の処理を継続したいからです

>>428
ビンゴ!!
目的達成しました
ありがとうございました
0431デフォルトの名無しさん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の分のメモリは開放されますか?
0432デフォルトの名無しさん2008/11/09(日) 22:14:04
参照されなくなったらそのうち解放される
0433デフォルトの名無しさん2008/11/09(日) 22:29:32
確実に3回分のメモリが確保されると思う。
ガベージ任せでBitmapの開放処理入れなかったらメモリを無尽蔵に使われたことがある。

0434デフォルトの名無しさん2008/11/09(日) 22:34:33
Bitmapはアンマネージリソース持ってるから一緒にしてはいけない
0435デフォルトの名無しさん2008/11/09(日) 22:35:36
Bitmapが占有する大部分のメモリはアンマネージド
マネージドなメモリが圧迫されない間はGCがあんまり働かないのは当然
0436デフォルトの名無しさん2008/11/10(月) 00:37:34
正直標準でいまどきメモリ1G積んでるのに
そんなコードレベルでのメモリの開放なんて意識する必要あるの?

正直俺はあまり意識していない。
だってマシンの性能がVb6の頃と比べてかなりあがってるもの。
0437デフォルトの名無しさん2008/11/10(月) 00:50:55
まあ「メモリ解放」は気にする必要ないね
IDisposableのDisposeに気を配ってれば良し
0438デフォルトの名無しさん2008/11/10(月) 01:26:14
つかDispose自体もWindow.Close()をしたらそのコード自体書かなくても問題無いでしょ?
さすがに形上仕事の時にはコード書いてるけどさ。

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

お前らはどう思う?

だってVB6が出てもう10年たっているのに過去の資産を見ればVB6の方が多いしね。
0439デフォルトの名無しさん2008/11/10(月) 03:13:35
単に使いこなせない言い訳じゃなくて、
使おうと思えば自由自在に使えるけどめんどくさいからor好きじゃないからorほとんど影響出ない事知ってるから使わない、なら
そうですか
と。
0440デフォルトの名無しさん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
0441デフォルトの名無しさん2008/11/10(月) 15:45:28
>>436
>>437
>>438
そんなことだからおまえらは虫ケラなんだよ。
0442デフォルトの名無しさん2008/11/10(月) 16:41:19
虫ケラって久しぶりに聞いた
0443デフォルトの名無しさん2008/11/11(火) 01:27:06
VB2005で開発をしているのですが、
メソッドの上で
'''
と入力しても処理概要、引数、戻り値
についてのコメントを入力するエリアが表示されなくなってしまいました。
どうすれば直りますか?


※この事象が発生する前後にツール → オプション
で色々と弄った事が原因と思われます。
0444デフォルトの名無しさん2008/11/11(火) 02:34:11
プロジェクトのプロパティ>コンパイル>XMLドキュメントファイルを生成する
0445デフォルトの名無しさん2008/11/11(火) 02:48:57
>>444
あざーっす!!!!
0446デフォルトの名無しさん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
0447デフォルトの名無しさん2008/11/11(火) 18:12:20
今時VB.NET2002使ってるわけも無いだろうからFolderBrowserDialog使いなよ
0448デフォルトの名無しさん2008/11/11(火) 18:26:15
>>447さん

FolderBrowserDialogだとファイル選択できないんですよね・・・
FolderBrowserDialogでファイル選択をできるようにできればそれが一番いいんですが。。
0449デフォルトの名無しさん2008/11/11(火) 18:26:44
配列の中身の合計を返すクラス、よかったら教えてくだはい!
Dim int As Integer() = {92, 32, 12, 32}
arySum = Array.Sum(int)

見たいな感じのを希望してます!
0450デフォルトの名無しさん2008/11/11(火) 18:36:42
>>448
OpenFileDialog使えばいいじゃない
0451デフォルトの名無しさん2008/11/11(火) 18:38:34
>>449
Enumerable.Sum

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

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

0453デフォルトの名無しさん2008/11/11(火) 19:14:20
>>451
ありがとー
0454デフォルトの名無しさん2008/11/11(火) 19:17:05
>>452
フォルダまたはファイルのどちらも選択可能にしたいってこと?
不思議な需要だね。
0455デフォルトの名無しさん2008/11/11(火) 19:28:42
音楽再生ソフトで、
ファイルをD&Dするとそのファイルが再生リストに追加されて、
フォルダをD&Dするとそのファイル内にある再生可能なファイルが一括で再生リストに追加される、ってのがあったな。
0456デフォルトの名無しさん2008/11/11(火) 19:32:48
すいません、シリアルポートで取得したデータをイベントハンドラ(SerialPort1_DataReceived)で表示させようとしたら、以下のエラーが出ました。
『有効ではないスレッド間の操作: コントロールが作成されたスレッド以外のスレッドからコントロール 'Label1' がアクセスされました。』
Form1.Label1やMe.Label1としても同じエラーが出ました。

ヘルプ等を見たのですが、Classとスレッドの違いがわかりません。
スレッドとは一体何なのでしょうか?
よろしくお願いします。
0457デフォルトの名無しさん2008/11/11(火) 20:32:19
スレッドとクラスの違いなんて言ってるんじゃ話になりません。
それじゃあクラスとインスタンスの違いはわかりますか?
とりあえずスレッドからコントロール触るときはControl.Invoke使ってください
0458デフォルトの名無しさん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
のようにするべきなのでしょうか。
0459デフォルトの名無しさん2008/11/12(水) 08:53:02
引数付きプロパティは使わない方がいいよ
その二つでどちらがいいかといえば上の方がいいけど
0460デフォルトの名無しさん2008/11/12(水) 10:54:45
>>458
問題はないだろうが、ただ
>  If (何か条件式) = True Then
これは恥ずかしいからやめとけ。
条件式はBooleanを戻すのに、なんでまた
Booleanと比較する条件式にしたがるんだ。
0461デフォルトの名無しさん2008/11/12(水) 10:57:42
自分だけが分かり易ければいいから。
0462デフォルトの名無しさん2008/11/12(水) 13:35:33
え、引数つきプロパティってヤバいの?
0463デフォルトの名無しさん2008/11/12(水) 13:40:56
ガイドライン「デフォルトプロパティ以外の引数付きプロパティは使うな」
0464デフォルトの名無しさん2008/11/12(水) 17:23:21
クラス内で、自分自身が宣言された変数名を取得する方法ってない?
0465デフォルトの名無しさん2008/11/12(水) 17:32:34
意味不明すぎる
0466デフォルトの名無しさん2008/11/12(水) 18:59:08
>>462
C#ではデフォルトプロパティ以外の引数付きプロパティが使えないため

>>464
ローカル変数は無理、フィールドならリフレクションを使って探しまわれば可能
0467デフォルトの名無しさん2008/11/12(水) 20:51:57
教えてください。

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

このMyButtonをフォームに貼り付けてコンパイルしますとButtonBaseのdllへの参照がない、とエラーになってしまいます。
参照を追加すればいいのですが、MyButtonを追加した時点でButtonBaseへの参照も自動的に追加されるように出来ないでしょうか?
環境はVB2008Exp、.NetFrameWork3.5、OSはXPです。
よろしくお願いします。
0468デフォルトの名無しさん2008/11/12(水) 22:00:40
データグリッドビューなんだけど
http://dobon.net/vb/dotnet/datagridview/rowpostpaint.html
これで横線の色は変えられるけど縦線の色変える方法はないの?
0469デフォルトの名無しさん2008/11/12(水) 23:06:50
>>462
引数付きプロパティが単純にダメと思われてしまいそうだな。
出来ればそういうのはちゃんとコレクション作ってクラス設計して欲しいということらしい。
0470デフォルトの名無しさん2008/11/12(水) 23:14:54
VBにもC#にも(まあC++とかJavaもそうなのかも知れんが)どうして
(ベースクラスにおいて)継承後の型のインスタンスを表すキーワード(Meやthis)
はあっても継承後の型を表すキーワードってないんだろうか。

おかげで継承後の型のインスタンスを返すメソッドをベースクラスに書こうと思っても
書けやしない。(まあ特定の前提があればジェネリックを使ってできないこともないが。)
0471デフォルトの名無しさん2008/11/12(水) 23:16:20
>>469
個人手にはそんなものを禁止するガイドラインの方に問題があると思ってるけどな。
0472デフォルトの名無しさん2008/11/12(水) 23:26:54
463を見て、慌ててプロパティをSubとFunctionに分ける作業を始めた俺が来ますた。

…ちゃんとした設計とか今の俺にはできそうにないから
引数つきプロパティはデフォルト以外しばらく自重します。
0473デフォルトの名無しさん2008/11/12(水) 23:42:14
別に今後仕様が変わるわけじゃないぞ。

0474デフォルトの名無しさん2008/11/12(水) 23:44:56
ちゃんと設計しろっていうのは、引数付きプロパティを上手く使うという意味じゃなくて
デフォルトの引数付きプロパティのみでうまいことやるって意味だよ
0475デフォルトの名無しさん2008/11/12(水) 23:48:16
>>474
わざわざ引数付プロパティと等価なことを、せっかく引数付プロパティが
サポートされているのに使わないで、わざわざそれだけのためにインデクサを持った型を別途作って
そのインスタンスを返すようにする、なんてことが上手い実装とは
俺には死んでも思えないんだが。
0476デフォルトの名無しさん2008/11/12(水) 23:52:22
VB.net専用なら引数付きプロパティを使っても良い、C#から使われる可能性があるクラスなら ヤ メ ロ ★
…と俺は読んだんだが、間違ってるよな?
0477デフォルトの名無しさん2008/11/12(水) 23:52:45
>>475
VBラマとその他が相容れない部分だな
0478デフォルトの名無しさん2008/11/12(水) 23:56:18
>>476
「クラスライブラリ開発者向けのガイドライン」は、
外に出したときに馬鹿にされたくなければ従った方がいいよ
というような性格のもの
0479デフォルトの名無しさん2008/11/12(水) 23:56:56
>>477
言語は関係ないでしょ。
もっとも、インデクサ以外の引数付きプロパティなんてめってたに必要ないのも
確かなんだけどね。

ただ、あった方が便利な場合もないことはない。
0480デフォルトの名無しさん2008/11/13(木) 00:07:01
引数付きプロパティを設計したやつは池沼
0481デフォルトの名無しさん2008/11/13(木) 00:28:10
インデックス付きイベントはたまにちょっと欲しくなる
プロパティはいらない
0482デフォルトの名無しさん2008/11/13(木) 00:32:11
普通に引数付きプロパティ使ってます。
0483デフォルトの名無しさん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

0484デフォルトの名無しさん2008/11/13(木) 03:33:44
>>483
ガイドライン的にはコレクションを返すプロパティも非推奨。
コレクションを返す場合は普通の関数を使う。
0485デフォルトの名無しさん2008/11/13(木) 03:41:50
ガイドライン的には
Public Function GetItems() As ItemCollection
にするべきだな
0486デフォルトの名無しさん2008/11/13(木) 05:20:12
>>470
キャストして使うじゃだめなの?
0487デフォルトの名無しさん2008/11/13(木) 09:08:55
>>484
え、マジで?
そんだったら標準のライブラリ全滅じゃん。
0488デフォルトの名無しさん2008/11/13(木) 10:45:30
>>487
標準のライブラリにありました?具体例挙げてみてちょうだい。
0489デフォルトの名無しさん2008/11/13(木) 10:52:42
そりゃコレクションつったらControl.Controlsからしてそうだろ

コレクションじゃなくて配列ならガイドラインにあるけどな
> 内部配列を保持するには、プロパティによって使用されている配列への参照ではなく、
> 配列の詳細コピーを返す必要があるため、操作によって配列が返される場合はメソッドを使用します。
0490デフォルトの名無しさん2008/11/13(木) 11:29:38
>>489
配列とごっちゃになってた。ありがと。
0491デフォルトの名無しさん2008/11/13(木) 11:33:18
ダブルバイト文字についての質問です。

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

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

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

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

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

因みにソースコードは貰えません。

よろしくお願いします。
0492デフォルトの名無しさん2008/11/13(木) 11:41:45
VS2005?
言語はなんだよ禿
0493デフォルトの名無しさん2008/11/13(木) 12:09:33
これは酷い
0494デフォルトの名無しさん2008/11/13(木) 12:39:01
".net" で作ったアプリをギャクアセンブルさせせなくする(コードを見られないよう様にする)
事って出来ますか?

0495デフォルトの名無しさん2008/11/13(木) 12:47:35
できねーよ
難読化しろ禿
0496デフォルトの名無しさん2008/11/13(木) 13:21:15
>>492

VB.NETです。
0497デフォルトの名無しさん2008/11/13(木) 13:37:28
知らねーよ
自分で調べろ禿
0498デフォルトの名無しさん2008/11/13(木) 14:49:12
ソースコードはもらえませんって、お前さん自身がその程度の理解じゃもらえても宝の持ち腐れだろJK

その化ける文字の入力元次第だな
0499デフォルトの名無しさん2008/11/13(木) 17:08:32
つか、それフォントの問題なんじゃね?
0500デフォルトの名無しさん2008/11/13(木) 17:34:23
>>498

アプリケーションはサーバ(Linuxの箱)からデータを持ってきます。
アプリケーションとサーバ間の通信は、APIで行われていますが、
この仕様はわかりません。

>>499

ということは、Treeviewのフォントを、日本語のフォント(MS UI Gothicとか)に
変えて貰うといけそうですね。お願いしてみます。

ありがとうございます。
0501デフォルトの名無しさん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上でも実行できるようにするにはどのようにしたらよいのでしょうか?
調べたところ、パスを使うとかなんとか・・・

よくわからないので、お解りになる方がおられましたらご指南よろしくお願い致します。
0502デフォルトの名無しさん2008/11/13(木) 17:55:38
いや、解決ちゃうで
よほど変なフォントを指定してなきゃ、だいたいフォントリンクしてて日本語は出るはず。
byte配列をデコードするときのEncoding選択のバグじゃね? 知らんけど
0503デフォルトの名無しさん2008/11/13(木) 17:58:42
>>501
はぁ? デスクトップフォルダのパス決め打ちなの? 馬鹿?
Environment.GetFolderPath使ってくだちゃいね。
0504デフォルトの名無しさん2008/11/13(木) 17:59:55
通信してるらしいからな。
ASCIIオンリーだったりしてな。
0505デフォルトの名無しさん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使ってみまちゅ。
0506デフォルトの名無しさん2008/11/13(木) 19:45:14
>>483
残念ながらそれは馬鹿の一つ覚えと言うものだよ。
たしかにほとんどの場合そうなんだが、いつでもそうとは限らない。

引数で指定して取得したい値がそもそも「コレクション」という考え方に馴染む場合とかね。

具体例挙げろって言われても簡単なのは挙げられないけど、
例えば何らかのデバイスを抽象化したクラスがあって、そのデバイスのレジスタ的なものが
引数付きでアクセスする構造になってる場合とかね。
0507デフォルトの名無しさん2008/11/13(木) 20:45:10
VISTAのファイルコピー失敗した時とかに
プログレスバーが赤くなるんですけど、
.NETのProgressbarでバーを赤くするには
どうしたらいいですか?
0508デフォルトの名無しさん2008/11/13(木) 21:01:49
女の子が僕の部屋のドアをノックするというイベントを拾いたいのですがどの様にすれば良いでしょう?
とらドラに出てくる あみちゃん みたいな女の子が良いです。
0509デフォルトの名無しさん2008/11/13(木) 22:21:28
>>508
起きないイベントは拾えません
0510デフォルトの名無しさん2008/11/13(木) 22:29:37
骨は拾ってやるぞ
0511デフォルトの名無しさん2008/11/13(木) 22:30:55
>>506
スレの流れ的を読まずに、いきなり反例でも書けとでもいうのか?
0512デフォルトの名無しさん2008/11/13(木) 23:52:11
FormのResizeイベントのところに、ウインドウの比率を固定する処理を入れようと思ったのですが
どのような計算式で実現出来ますか?
フォームの角を引っ張ってリサイズした時に最初にフォームが表示された時の比率のまま拡大縮小出来るようにしたいのですが。
0513デフォルトの名無しさん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;
 }
}
こんな感じか
ちゃんと動くかどうかは知らん
05145132008/11/14(金) 00:13:35
キャストの場所がおかしいな
Height = (int)((double)Width * prevSize.Height / prevSize.Width)
こうか。Width=の方も同様。
でもこれだと比率がちょっとづつ変わっちゃいそうだから、比率を持つフィールドを別に用意して
OnShownで先に計算してそのままのほうがいいな
0515デフォルトの名無しさん2008/11/14(金) 00:22:42
ヒント:ここはVB.NETスレ
0516デフォルトの名無しさん2008/11/14(金) 00:25:15
せっかく考えてもらったのに申し訳ないですが、上記のコードはC系ですよね…。
0517デフォルトの名無しさん2008/11/14(金) 00:44:17
>>516
そもそもやろうとしていることに(不可能ではないにしろ)無理がある。

ウィンドウ枠やクライアント領域のアスペクトを固定することを考えるより、
ちょうどメディアプレーヤーのようにウィンドウ枠の中に固定された
アスペクトの表示領域があるUIの方が実装も簡単だしユーザーにもわかりやすくないか?
0518デフォルトの名無しさん2008/11/14(金) 00:45:44
そもそもとしてResize中にサイズ弄ったりするってどうよ。
0519デフォルトの名無しさん2008/11/14(金) 01:10:51
現在VS2005(VB.net)にて以下の事がやりたいのですがどうすれば
良いのでしょうか?

・コンパイル時にEXEの中に外部dllを組み込み、生成物をEXE
 ファイル一つにする。

※例えば、画像ファイルなどの場合にはリソースの中に組み込めば
実現出来たのですがdllでは不可能なのでしょうか
0520デフォルトの名無しさん2008/11/14(金) 01:29:56
たぶん出来る。
Assembly.Load(Byte[])
あたりが使えると思う。

0521デフォルトの名無しさん2008/11/14(金) 01:52:10
>>520
ごめん。Assembly.Loadで外部DLLを読み込むんじゃなくて、
ソリューションエクスプローラー → 参照設定 の中で外部DLLを参照した状態で
ビルドをすると
1.EXE
2.(参照)DLL
がbin/Releaseに生成されるけど、この時に生成される2ファイルを一まとめにして
MIX.exe1ファイルにしたいのです。

何か良い方法はありますか?
0522デフォルトの名無しさん2008/11/14(金) 01:57:50
>>521
つまりスタティックリンク(すべて合体してひとつのファイルにする)したいの?

だったら俺はわからん
0523デフォルトの名無しさん2008/11/14(金) 02:15:56
>>522
まさにその通りです。

やっぱり出来ないのかなぁー

ようはやりたい事は、他人の作ったライブラリも含めて1つのEXEにまとめたいんです。
例えばEXE1ファイルに纏められたらデスクトップ上にコピーしてそのまま使えるけど、
EXE+(外部参照の)DLLだとデスクトップ上にDLLも
用意しておかないと動作させる事が出来ないし。

※GACにDLLを登録するとか、ショートカットを使って起動させるといった事がしたい
訳じゃないです。

0524デフォルトの名無しさん2008/11/14(金) 02:18:00
>>521
だからあえて引数Byte[]のやつが使えるんじゃないのと言っているのだよ。
EXEにDLL取り込むだけだったらリソースにしちゃえばいいでしょ。
あとはアセンブリとしてメモリからロード出来るんじゃない?
0525デフォルトの名無しさん2008/11/14(金) 02:21:34
>>524
>Assembly.Load(Byte[])
なるほど
Assembly.Load(外部DLLのパス)
ではなくあくまでAssembly.Load(Byte[])とする訳ですね。

何か参考になるサイトとかご存知でしたら教えて頂けると助かります。

0526デフォルトの名無しさん2008/11/14(金) 02:41:06
すまないが俺も知らんで書いたので検討違いかもしれん。
ただ、Byte配列渡してAssemblyが取得出来るんだから、使えそうかなと思った次第。

最悪、リソースにしたDLLをテンポラリに出力して、Assembly.LoadFileしちまうって手はありそうだがw
0527デフォルトの名無しさん2008/11/14(金) 04:23:50

vb.netからWEBブラウザに入力をするプログラムを作っているのですが

<input type="file" name="upfile" size="30">
□□□□□□□□ 参照

という項目については、どうやっても値を設定する事が出来ません。

setAttribute("value", "あいうえお")

一体なぜでしょうか?
0528デフォルトの名無しさん2008/11/14(金) 06:02:03
type="file"だから
0529デフォルトの名無しさん2008/11/14(金) 08:46:19
>528
何かやる手立てはありませんでしょうか?
0530デフォルトの名無しさん2008/11/14(金) 09:32:06
WebBrowser使う限りはありません
0531デフォルトの名無しさん2008/11/14(金) 11:22:38
ILMEARGE
0532デフォルトの名無しさん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
0533デフォルトの名無しさん2008/11/14(金) 13:31:14
windwsのタスクバーを改造したいのですが
タスクバーのクラスってVBでいじれますか?
オーバーライドすれば簡単そうなんですが
0534デフォルトの名無しさん2008/11/14(金) 13:32:50
何をオーバーライドするつもりなんだ
0535デフォルトの名無しさん2008/11/14(金) 13:59:03
>>533
まずタスクバーはExplorerという、君が手を出せる
範囲外のアプリケーションで表示されていることを知っておこう。
0536デフォルトの名無しさん2008/11/14(金) 15:02:36
>>535
なぬ。VBじゃ許可されてないんですか?
タスクバーのアプリタブを入れ替えたり
IE以外のアプリをグループ化したりしたいんです。
0537デフォルトの名無しさん2008/11/14(金) 15:07:25
おい。ほんとにVBやったことあるのか。
0538デフォルトの名無しさん2008/11/14(金) 15:14:59
VBScriptでしたテヘッ
0539デフォルトの名無しさん2008/11/14(金) 16:37:23
ハハハ こやつめ!
0540デフォルトの名無しさん2008/11/14(金) 17:12:31
>>537
なんか知らん人がコントしとるw
VB初心者なので簡単な方法から試したいんですよ。
オーバーライドを少し知ってるだけなので
そこからやってみようかと。

別の方法があれば勉強してトライします
0541デフォルトの名無しさん2008/11/14(金) 17:17:43
タスクバーの拡張はCOMをいじらないとダメだった気がする。
機能を呼び出すんじゃなくて使う側がCOMサーバーになる必要があったような。
VBからは不可能ではないがいろいろ難しいよ。資料も少ないし。
0542デフォルトの名無しさん2008/11/14(金) 17:59:31
ViewプロパティがDetailsのListViewで行を選択した後、
フォーム内のボタンを押すと選択されている行を示す
反転表示が消えてしまうのですが、常に選択されている
行がわかるようにするにはどうすればいいでしょうか?
0543デフォルトの名無しさん2008/11/14(金) 18:36:57
なんでMSDN読まないの?
ListView.HideSelection
0544デフォルトの名無しさん2008/11/14(金) 20:18:24
>>541
うーん、良くあるデスクトップカスタマイズツールとかも別物かな
あれはOSに躍らされてるだけかしら
COMについて調べてみます
0545デフォルトの名無しさん2008/11/14(金) 21:17:20
>>544
>良くあるデスクトップカスタマイズツール
それ、レジストリいじる系のツールだろ

英語版のMSDNに載ってるはず。この辺は日本語化されてないから探すのめんどい。
ttp://msdn.microsoft.com/en-us/library/aa139672.aspx
0546デフォルトの名無しさん2008/11/14(金) 22:31:03
>>525
http://support.microsoft.com/kb/915589/ja
0547デフォルトの名無しさん2008/11/14(金) 23:34:30
タスクバーをマジでいじりたいなら

I
0548デフォルトの名無しさん2008/11/14(金) 23:35:06
↑ごめんキャンセルするつもりで書き込んでしまった
なんでもないんだ気にしないでくれ
0549デフォルトの名無しさん2008/11/15(土) 00:20:50
タスクバー「いじって・・・
0550デフォルトの名無しさん2008/11/15(土) 01:30:10
質問出した本人ですが・・・
http://homepage1.nifty.com/kazubon/progdoc/tclock/taskbarhistory.html

こんなのありますけど、Vistaのクラスが書いてないですねえ・・・
MSDNでも情報すくな(´д`)
0551デフォルトの名無しさん2008/11/15(土) 03:05:24
>>550
もう自分で新しいタスクバー作る
0552デフォルトの名無しさん2008/11/15(土) 03:12:47
Explorerというクラスを作っていじったつもりになる
0553デフォルトの名無しさん2008/11/15(土) 08:26:29
情報はあるよ。
ただそのレベルの人に教えても無駄だから誰も教えないんじゃね。
クラスとかオーバーロードとか言ってる人には。

まずExplorer.exeのプロセスに潜りこむ方法。
・外部からプロセスのメモリにアクセスするか
・シェル拡張として内部に入るか
これの選択。

加えて
http://qwerty.s2.xrea.com/XC2CCCAB82FA5BFA5B9A5AFA5C8A5ECA5A4A4CEA5A2A5A4A5B3A5F3CEF3B5F3CAFDCBA1X.xhtml
(これはタスクトレイだがタスクバーにも通用する)のコードを理解する。
これでタスクボタンのアプリのウィンドウハンドルを列挙できる。
あとITaskBarListを操作するだけだ。それにはインターフェイスの定義をVB.NETで書かねばならない。これは簡単だな。

まあせいぜいリークしまくりのアプリでも作ってくれ
0554デフォルトの名無しさん2008/11/15(土) 10:30:13
>>553
おまいさんも微妙にわかってないようだが・・・

なんかそれっぽいキーワードを並べてるだけじゃん。
0555デフォルトの名無しさん2008/11/15(土) 10:51:52
さすがシェル拡張をやったことあるお方の言うことは違う。
05565272008/11/15(土) 12:08:31
>>532
返信遅くなってしまいすいません。
ちょっとこれからそのサイトを参考に試してみます。
05575272008/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)


05585272008/11/15(土) 22:47:05
最悪「参照...」ボタンをVB.netにてクリックし
ファイルの選択画面が起動させ、
VB.netからファイルの選択画面が起動したかどうかを判定し、
ファイルの選択ウィンドウが起動したら
1.ファイル名(N)  
  にアップロードしたファイルへのパスを入力し
2.開く(O)
  ボタンをクリックする事により起動元であるIE上の
項目にファイルパスを入力させようかと思っているのですが、
VB.net(プログラムから)別ウィンドウの起動の有無を判定し、特定項目に
値を自動で入力するなんて事は可能でしょうか?


□□□□□□□□□□ 参照
↓
c:\test\test.mpg 参照


0559デフォルトの名無しさん2008/11/15(土) 22:53:43
適当なパケットモニタで通信内容調べれば
05605272008/11/15(土) 23:17:05
>>559
パケットモニタつかってデータの送受信を調べるのはちょっと難しそうなので
何とか「ファイルを開く」ウィンドウをVB.netからファイル名を入力させたいと思います。

この場合にはAPIとかを使わなければFrameWorkだけでは出来ないのでしょうか?
0561デフォルトの名無しさん2008/11/15(土) 23:29:22
>>557
hidden項目というか、Formタグ内にあるやつ全部だろう。
その手のことをやろうとしたら、ある程度Webの仕組み、サーバー側のプログラムの勉強をする必要があるよ。
人に聞いて出来ましたレベルのコーディングでは手を出しちゃいけない。
サーバーに変なデータ送られたら大迷惑。

その辺は了承済みというなら何も言わないが・・・

>>560
で、上のは置いておいて入力をエミュレートしたいんだろうけど、
最初からファイル名の入力フォームにSendKeys.Sendでファイル名送っとけば出来ないか?
0562デフォルトの名無しさん2008/11/15(土) 23:30:18
×hidden項目というか、Formタグ内にあるやつ全部だろう。
○hidden項目というか、Formタグ内にあるINPUTタグのやつ全部だろう。
05635602008/11/16(日) 00:19:17
>>561
レスありがとうございます。
> hidden項目というか、Formタグ内にあるやつ全部だろう。
> その手のことをやろうとしたら、ある程度Webの仕組み、サーバー側のプログラムの勉強をする必要があるよ。
> 人に聞いて出来ましたレベルのコーディングでは手を出しちゃいけない。
> サーバーに変なデータ送られたら大迷惑。
ちょっとこの方法は断念します。。。

> で、上のは置いておいて入力をエミュレートしたいんだろうけど、
> 最初からファイル名の入力フォームにSendKeys.Sendでファイル名送っとけば出来ないか?
おっしゃる通りです。
WEBページ上の「参照...」ボタンをクリックすると「ファイルの選択」ウィンドウが起動するので
WindowsAPIを使用してなんとか入力(ボタンのクリック)を行えないかとGoogleで色々調べまして、
プログラムから「ファイルの選択」のウィンドウハンドルを取得する事は出来たのですが、
次の項目にファイル名の入力+ボタンのクリックをする方法が分かりません。

1.ファイル名の入力
2.開く(O)

という事でここから変更させて下さい。
【Question】
 SendMessageあたりを使用して特定のウィンドウに文字列を入力し、そのウィンドウ内の特定のボタンをクリックする。
 にはどうすれば良いでしょうか?
 ※ウィンドウハンドルの取得方法は分かります。

以上 宜しくお願いします。

0564デフォルトの名無しさん2008/11/16(日) 09:52:44
>>563
>  SendMessageあたりを使用して特定のウィンドウに文字列を入力し、

WM_SETTEXT

> そのウィンドウ内の特定のボタンをクリックする。

BM_CLICK

ウィンドウハンドルの取得方法がわかってる、ってのは大いに疑問。
そもそも、ウィンドウの種類に対する言及もないし。
05655632008/11/16(日) 10:12:21
>>564
> ウィンドウハンドルの取得方法がわかってる、ってのは大いに疑問。
> そもそも、ウィンドウの種類に対する言及もないし。
ウィンドウの種類は、独自に作成した画面ではなく「ファイルの選択」ウィンドウです。
ウィンドウハンドルの取得は、 FindWindow を使用し取得する事が出来ました。


親ウィンドウのハンドルは取得出来るのですが、そのウィンドウ内にある特定のテキストボックスに
値をプログラムから入力する場合、ウィンドウ内にあるテキストボックス内のウィンドウハンドル
を取得するにはどうすれば良いのでしょうか?


0566デフォルトの名無しさん2008/11/16(日) 10:16:55
やっぱりわかってないじゃん・・・

とりあえず、Spy++ でよーくウィンドウを確認して、子ウィンドウ取得系の API で。
0567デフォルトの名無しさん2008/11/16(日) 10:19:45
そもそも、今作ってるプログラムと IE はどういう関係なの?

BHO? ActiveX コントロール? それとも、単に外部から操作?
05685632008/11/16(日) 10:29:21
> Spy++ でよーくウィンドウを確認して、子ウィンドウ取得系の API で。
ぐぐってみます。

>>567
いつもの決まり切った操作を自動化したくて今のプログラムを作っています。
IEは忘れて下さいませ。
05695632008/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' というエントリ ポイントが見つかりません。

0570デフォルトの名無しさん2008/11/16(日) 12:02:35
>>569
そんな API はありません、って言われてんじゃん。
W か A か、きちんと指定しろよ。
05715632008/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が取得されてしまいます。
0572デフォルトの名無しさん2008/11/16(日) 13:27:44
えーとそのコードがまともかどうかは知らないけど、
ブラウザ内のコントロールって普通にハンドル持ったWin32のコントロールなんだっけそもそも?
0573デフォルトの名無しさん2008/11/16(日) 13:36:19
ファイルの選択ダイアログを操作しようとしてるらしいよ
0574デフォルトの名無しさん2008/11/16(日) 13:37:58
>>573
違うと思うよ。
っていうか、ブラウザ上の画面からそのダイアログをどうやって出すんだよだからw
0575デフォルトの名無しさん2008/11/16(日) 14:01:16
>>571
C で簡単なサンプル作ってみたけど、問題なく取れてる。
宣言に怪しげなところはないんで、ちゃんと親ウィンドウのウィンドウハンドルが取れてるか、
GetLastError() に何か返ってないか、とか調べてみたら?
0576デフォルトの名無しさん2008/11/16(日) 14:24:42
>>574
それはとっくに突破してます。
あくまで、ファイルの選択ウィンドウを操作したいのです。

・ボタンのクリック
・テキストボックスへのファイルパスの入力
 (ウィンドウハンドルはSpy++で調べた物をそのまま利用)

までは出来てますが、ウィンドウ内にある特定のコントロール(テキストボックス)を調べる方法が
分かりません。。。

あーあ、まいった。
0577デフォルトの名無しさん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 になる。



0578デフォルトの名無しさん2008/11/16(日) 14:35:53
ハンドルを、Intergerに、するなっての、ハゲっが。
0579デフォルトの名無しさん2008/11/16(日) 14:40:27
>>578
VB.net は Integer ですよ。
VB6.0まで Long はね。
分かったか?ハゲ?
0580デフォルトの名無しさん2008/11/16(日) 14:46:11
ハゲハゲって何なの?死ぬの?
0581デフォルトの名無しさん2008/11/16(日) 14:51:42
IntPtrにしろってことじゃね?
0582デフォルトの名無しさん2008/11/16(日) 14:52:48
>>579
これはひどいVB脳ですね
0583デフォルトの名無しさん2008/11/16(日) 14:56:38
>iWindowHandle
って変数名も汚物だな
0584デフォルトの名無しさん2008/11/16(日) 15:37:54
↑

ヒント
 ハンガリアン
05855772008/11/16(日) 15:42:49
どうでもいいけど
教えて下さいな。

iFileNameHandle = FindWindowEx(iWindowHandle, 0, "Edit", vbNullString)  '←ここの結果が 0 になる。


Spy++で検索したらファイル名の入力欄のテキストボックスは ComboBox ではなく Edit でした。
だから↑の様にコードを書いているのにコントロールのウィンドウハンドルが取得出来ないのはなでしょうか?

マジで助けてぇ〜〜
0586デフォルトの名無しさん2008/11/16(日) 16:33:46
>>585
EditじゃなくてComboBoxじゃないのか?
それはともかく、この場合GetDlgItemを使ったほうが簡単かもしれんよ。
まあWin32に詳しくないんで自信はないけど。

ちなみに↓は以前SaveFileDialogをカスタマイズするときに参考にしたものだけど、
これがヒントになるかもね。目的はまったく違うみたいだけど。
http://msdn.microsoft.com/en-us/library/ms996463.aspx
05875072008/11/16(日) 16:36:58
自己解決しますた。
華麗にスルーされてたけど・・・orz
0588デフォルトの名無しさん2008/11/16(日) 16:40:10
なにそれ? 少しはフィードバックぐらいしろよハゲ
05895612008/11/16(日) 20:08:48
俺が言いたかったのは、そもそもコモンダイアログにメッセージを送る必要あるのか?
WebBrowserコントロールからエレメント取得してもファイル名をセット出来ないからって理由だろうけど、
コモンダイアログに文字列送るのと、ファイル名入力欄に文字列送るのに違いはあるか?
入力欄にフォーカス移して、SendKeys.Sendするだけで済むんじゃない?って話。

コモンダイアログを使った方法だと、ダイアログ出てる状態だとメインのスレッドは停止してないか?
監視スレッドでも作るか?いろいろ面倒だと思うぞ。
てか、俺はJavaScriptのAlertに応答するのにスレッドを作って押してた。
0590デフォルトの名無しさん2008/11/16(日) 21:03:19
> 入力欄にフォーカス移して、SendKeys.Sendするだけで済むんじゃない?って話。
それが出来ないから(ダイアログをAPIを操作してファイル名を選択しようとしています。)
※Input type=file は、プログラムから入力不可
0591デフォルトの名無しさん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

05925902008/11/16(日) 21:38:46
自己解決しました。
以外な落とし穴がありましたね。。。
05935902008/11/16(日) 21:40:06
>>591
、、、
そんな方法もあるんですね。。。
俺の1日に苦労は一体。。。
05945902008/11/16(日) 21:44:45
つか、休日返上で8時間位PCと格闘してたのは何だったんだろう・・・
態々APIなんて使わなくても実現出切るだなんて。。。

まぁ、APIの勉強になって良かった!!
と自分を励ましてみます。

>>591さん
ありがとう。
0595デフォルトの名無しさん2008/11/17(月) 13:23:04
わざわざSendKey使わんくても・・・


If item.Name = "Upload" Then
item.InnerText = "TEST"
End If
0596デフォルトの名無しさん2008/11/17(月) 20:15:10
>>595
突っ込んでいいのか?

まず、<INPUT type="file" />は、セキュリティ上、中身を変更出来ない。初期値も持てない。
中身を変更出来ないとは言っても要はJavaScript等からのDOM経由で出来ないという事。
だから今回のようにSendMessageとかで出来ないか?っていうのが話の前提。
という事でまずレスを全く読んでないハズ。

で、item.InnerText = "TEST"なんてのはもろDOMなので出来るわけがない。

さらに<INPUT>タグは、タグ内で完結するタイプなのでInnerTextを持たない。

まあ、レス読んでなきゃ対象がINPUTタグってのもわかってないんだろうけど。
0597デフォルトの名無しさん2008/11/17(月) 20:27:19
やれやれ、ようやく我慢比べも終わったか。
0598デフォルトの名無しさん2008/11/17(月) 22:47:18
>>595
バカ発見WWW
0599デフォルトの名無しさん2008/11/18(火) 00:50:12

現在、VB2005でWindowsFormにDataGridViewを配置したプログラムを書いているのですが
ツールボックスからDataGridViewをFormにドラッグし、各カラムの名称等をプロパティ画面にて設定しただけで
なのですが、DataGridView上にカラム以外に空の1行が存在しています。

DataTable.DataSourceに何もバンドしていない状態なのになぜこの様な現象が
起こってしまうのでしょうか?

※一度DataTableとDataGridViewをバインドしDataTable.Clear() / DataTable.AcceptChange() を呼び出す
 とForm上に貼り付けたDataGridViewの空行は削除されます。
0600デフォルトの名無しさん2008/11/18(火) 01:01:05
たぶん、AllowUserToAddRowsがTrueのままなんだろう。
0601デフォルトの名無しさん2008/11/18(火) 01:14:35
>>600
解決しました。ありがとうございます^^;
0602デフォルトの名無しさん2008/11/18(火) 15:10:01
フォームに貼り付けたWebBrowserコントロールに
ワードファイルを表示させようとし、

WebBrowser.Navigate(FileName)

というふうにしているのですが。。。
WebBrowserの中ではなく、
別ウィンドウでWordのアプリが起動して、
そこにファイルを開いてしまいます。
フォーム内に表示させたいのですが、
どうすればいのでしょうか?
0603デフォルトの名無しさん2008/11/18(火) 19:51:59
すみません、質問です。
CABプロジェクトでデスクトップにショートカットを作成しました。
このショートカットにアイコンを割り当てたいのですがどうしたら良いのでしょうか。
セットアッププロジェクトで上記の設定をした場合、プロパティにiconがあったのですがCABプロジェクトでは無い様なのです。
可能であれば設定方法を教えていただきたいです。
0604デフォルトの名無しさん2008/11/18(火) 20:02:10
>>602
基本無理。
0605デフォルトの名無しさん2008/11/18(火) 21:09:44
DDEのサンプルない?
0606デフォルトの名無しさん2008/11/18(火) 23:11:06
Arraylistに要素として構造体を持たしています。
sortメソッドを使ってソートをかけることはできますか?
0607デフォルトの名無しさん2008/11/18(火) 23:12:34
IComparerを実装したクラスを自分で定義して,そのインスタンスを引数に渡す
0608デフォルトの名無しさん2008/11/19(水) 00:00:55
>>600
>DataGridView上にカラム以外に空の1行が存在しています。
これを読み解いた君は凄いな
0609デフォルトの名無しさん2008/11/19(水) 00:48:54
>>600
感謝してます
0610デフォルトの名無しさん2008/11/19(水) 00:59:43
>>607
現在構造体に持たせている値をクラスに持たせて、Arraylistにはそのインスタンスを持たせるということでいいんでしょうか?
ありがとうございました。
0611デフォルトの名無しさん2008/11/19(水) 01:14:20
>>610
なんか勘違いしてそうな気がする・・・
MSDNのArrayList.Sort メソッド (IComparer) を見ればサンプルがあるぞ。
0612デフォルトの名無しさん2008/11/19(水) 18:36:22
パスの取得について教えて頂きたいのですが、
使用しているOSがVistaの場合は、 ユーザ\パブリック
使用しているOSがXPの場合は, Documents and Settings\All Users
を取得するようにさせたいのですが、
どのようなコードになるのでしょうか?

御教授御願い致します
06136122008/11/19(水) 18:56:42
XPの場合は、
Environment.GetEnvironmentVariable("ALLUSERSPROFILE")
で取得できる事が解りました。

VISTAのユーザ\パブリックを取得する方法が解りません。
宜しく御願いします。
0614デフォルトの名無しさん2008/11/19(水) 20:49:03
>>613
まんまで取れたと思う
System.Environment.GetEnvironmentVariable("PUBLIC")
0615デフォルトの名無しさん2008/11/19(水) 21:07:05
VB10の新機能の一覧がうpされてるサイトってない?
0616デフォルトの名無しさん2008/11/19(水) 21:18:22
質問させてください。

richtextboxで、リンクをクリックした後、そのリンクのURLをブラウザで開きたいのですが、
方法がよくわかりません。どなたかご教授願います……。
0617デフォルトの名無しさん2008/11/19(水) 21:33:34
↓ご教示厨
0618デフォルトの名無しさん2008/11/19(水) 21:37:03
質問させてください。

richtextboxで、リンクをクリックした後、そのリンクのURLをブラウザで開きたいのですが、
方法がよくわかりません。どなたかご教示願います……。
0619デフォルトの名無しさん2008/11/19(水) 21:43:18
LinkClickedでぐぐれ
0620デフォルトの名無しさん2008/11/19(水) 21:49:14
>>619
ありがとうございます、ググってみます。

なぜか2回書き込んでるしorz 申し訳ないです
0621デフォルトの名無しさん2008/11/19(水) 22:28:30
namespaceが名前空間なら、宇宙空間はspacespaceですか?
0622デフォルトの名無しさん2008/11/19(水) 22:48:46
通じればおk
0623デフォルトの名無しさん2008/11/19(水) 22:57:18
namespaceは、本当は名前宇宙なのです
0624サガット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



0625デフォルトの名無しさん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
0626デフォルトの名無しさん2008/11/20(木) 01:17:59
足し算プログラム

□ + □ = □

□はtextbox
+はラベル
=はボタン

これはどうやって書けばいいですか?
0627デフォルトの名無しさん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

と打ち込んでもエラーは出ないのですが
足し算できません><
0628デフォルトの名無しさん2008/11/20(木) 01:28:41
足し算できるできない以前に、左と中央のテキストボックスの中身が書き換えられるだろそれ。


>TextBox1.Text = x
って、TextBox1のTextをxに変えるって意味な。

変数xにTextBox1のTextに入ってるものを代入するなら右辺と左辺が逆だ。
0629サガット2008/11/20(木) 01:30:53
>>625
ありがとうございます!!
0630サガット2008/11/20(木) 01:34:59
>>626

TextBox3.Text = Convert.ToDecimal( x + y).ToString()
0631デフォルトの名無しさん2008/11/20(木) 01:41:44
>>628-630
ありがとうございます。でもまだ解決してないです・・・
明日簡単なVBのプログラムを書かせるらしい試験がありますが間に合うのか。。
0632デフォルトの名無しさん2008/11/20(木) 01:44:58
式の左右間違えるレベルならいっそ開き直って寝たほうが良いと思う。
0633デフォルトの名無しさん2008/11/20(木) 01:47:57
あ、できましたね
始めなに言ってるかわからなかった^p^
=の前後が逆だったんですね
0634デフォルトの名無しさん2008/11/20(木) 02:01:03
まーこれができたから明日はよゆうっすかね
さんくす^^^^^^^^
0635デフォルトの名無しさん2008/11/20(木) 08:34:56
小学生はこんな時間まで起きてちゃだめでしょ
0636デフォルトの名無しさん2008/11/20(木) 22:46:45
皆様のおかげで全部解けました。
ありがとうございました><
0637デフォルトの名無しさん2008/11/21(金) 01:39:54
2005が無かったのでこちらで質問
バージョン情報ダイアログ ShellAbout
はどのように読み込ませればいいのでしょうか?
0638デフォルトの名無しさん2008/11/21(金) 08:12:25
DllImportしたいのか禿?
0639デフォルトの名無しさん2008/11/21(金) 20:38:12
あー一応できました。
でもダイアログではなくフォームとして出てくる…
0640デフォルトの名無しさん2008/11/21(金) 21:26:21
なぁ…VB.netの調べ物してるとよく魔界のなんとかってHNの人
よくみかけるんだけど有名人?

0641デフォルトの名無しさん2008/11/21(金) 21:48:39
>>640
うん
0642デフォルトの名無しさん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

どっちの方が良いコードなのでしょう。
0643デフォルトの名無しさん2008/11/22(土) 06:18:42
どっちでも良いじゃない
0644デフォルトの名無しさん2008/11/22(土) 07:45:13
on error と try catchの違いは
on errorのほうはすべてのエラーを感知してしまう
という答えであってますでしょうか
0645デフォルトの名無しさん2008/11/22(土) 08:10:46
>>644
違います
0646デフォルトの名無しさん2008/11/22(土) 09:26:14
ならどういう違いがあるのでしょうか
0647デフォルトの名無しさん2008/11/22(土) 09:40:09
>>646
一番大きいのは Finally ですね。あと、トラップできるのが例外なのかエラーなのかの違い。
0648デフォルトの名無しさん2008/11/22(土) 10:05:05
使い分ける必要はないよ
On Errorは過去の負の遺産だから不要
0649デフォルトの名無しさん2008/11/22(土) 10:38:08
でもon errorのほうは全てのエラーを感知してしまう
というのはあっているのではないのでしょうか?
そしてtryのほうは感知するエラーを選べるのではないでしょうか?
0650デフォルトの名無しさん2008/11/22(土) 10:43:53
tryで扱うのは例外
昔のVBでいうエラーとは全く違うもの
新規には構造化例外(Try-Catch-Finally,Throw)だけ使ってればいい
0651デフォルトの名無しさん2008/11/22(土) 10:45:28
Try Catchも指定なしの全例外キャッチはできる。
過去のソースと互換以外にGo Error系を使う理由はない。
0652デフォルトの名無しさん2008/11/22(土) 10:51:02
でも過去のソースと互換以外の目的でVB.NET使う理由なくね?
0653デフォルトの名無しさん2008/11/22(土) 10:53:35
つ過去の脳ミソとの互換性
0654デフォルトの名無しさん2008/11/22(土) 13:18:14
もっと簡単に教えてくれ
on errorはどうダメなんだ?
0655デフォルトの名無しさん2008/11/22(土) 13:35:39
エラーの種類を構文上で区別できない
他のオブジェクト指向言語で一般的な方法ではない
.NET Frameworkは構造化例外を使うことが前提なので一貫性がなくなる

MSDNでOn Error系のキーワードを引いてみるといいよ
関連するほとんどのページに,構造化例外使えアホと書いてある
0656デフォルトの名無しさん2008/11/22(土) 13:43:17
どうダメかは、体感するのは簡単だけど説明するのはなかなか骨だろう。

VB厨にグローバル変数の弊害とか、フォームに処理をベタ書きする弊害を
説明しろって話に近い。
0657デフォルトの名無しさん2008/11/22(土) 14:03:45
>グローバル変数の弊害とか、フォームに処理をベタ書きする弊害
をVB厨では無い一般プログラマ向けにkwsk。スレ違いならふさわしいスレに書いてそこに誘導ヨロ
0658デフォルトの名無しさん2008/11/22(土) 14:05:19
BY(文脈読めない)かよ。
だから「骨」なものの一例としてそれらを挙げているわけだが。。
0659デフォルトの名無しさん2008/11/22(土) 14:09:06
>BY(文脈読めない)かよ。

注釈つけないと通じないようなコトバ使うなよw
0660デフォルトの名無しさん2008/11/22(土) 14:28:04
VB・NET関係のマニュアルCHMかPDFで無いですか?
VisualStudioのヘルプ面倒で中途半端なので教えてください。
0661デフォルトの名無しさん2008/11/22(土) 14:55:03
>658
VB厨に説明するのが骨とか煽るから
VB厨以外に説明してみせろって煽りかえされてるんだろ。それぐらいの文脈読めよ
0662デフォルトの名無しさん2008/11/22(土) 15:04:10
VBなんだから気楽に書けばいいのに
0663デフォルトの名無しさん2008/11/22(土) 15:04:13
>>660
ない。どれだけ量あると思ってるんだ
オプションで独立ウィンドウに表示できるけどそれは知ってるよね?
0664デフォルトの名無しさん2008/11/22(土) 15:07:50
chmはともかくPDFは余計見づらいだろどう考えてもw
0665デフォルトの名無しさん2008/11/22(土) 15:12:08
.ToString(”X2”)の2を見つけるのに半日かかったんですよ
頭にあるPrintf・Usingの概念が悪いのかもしれませんが・・・
0666デフォルトの名無しさん2008/11/22(土) 15:16:08
>>654
例外を継承した俺例外とか作れないとこ。Finally がないとこ。
0667デフォルトの名無しさん2008/11/22(土) 15:18:17
>>665
書式指定文字列のドキュメントは確かにわかりにくい
0668デフォルトの名無しさん2008/11/22(土) 15:20:23
>>661
だから文脈読めない馬鹿だというんだ。

VB厨という言葉は、それら「体感するのは簡単だが説明するのは難しい」ものを
体感する能力を欠いた者、という意味で使っているのであって、
相手がVB厨だからそれらを説明するのが難しいのだ、などとは言ってない。
0669デフォルトの名無しさん2008/11/22(土) 15:22:42
>>660
VBの言語仕様のことを言っているのなら
VS2003時代のMSDNライブラリには入っている。

なぜか今のには入ってない。もちろんローカル版のことを言っている。
0670デフォルトの名無しさん2008/11/22(土) 15:39:19
何でもかんでも略せばいいってもんじゃね〜w
0671デフォルトの名無しさん2008/11/22(土) 17:16:02
BY厨(文脈読ませる厨)ワロタ
0672デフォルトの名無しさん2008/11/22(土) 17:28:38
on errorで全ての例外が感知できるのだから
try catchよりも楽だと思うのですが。
0673デフォルトの名無しさん2008/11/22(土) 18:04:10
その理屈ならそもそも例外処理はしない方が楽だと思うのですが
0674デフォルトの名無しさん2008/11/22(土) 18:09:04
例外処理はするという前提で、
on errorはtry cathcを含んでいると感じます。
大は小を兼ねるというイメージが出来てしまっています。
しかし、世間ではon errorはダメだとの評価です。
さっぱりわからないのです。
0675デフォルトの名無しさん2008/11/22(土) 18:10:39
世間では>>674はダメだとの評価だよ
0676デフォルトの名無しさん2008/11/22(土) 18:13:33
On ErrorがTry-Catchより大だと考える点て何?
0677デフォルトの名無しさん2008/11/22(土) 18:14:10
>大は小を兼ねるというイメージが出来てしまっています。
そのイメージが本当に正しい認識なのか疑ってみたことは?
0678デフォルトの名無しさん2008/11/22(土) 18:21:52
Gotoで飛んで数値のエラーコードでエラーの種類を調べるなんて時代錯誤だろ
0679デフォルトの名無しさん2008/11/22(土) 18:33:41
そう思うんなら、on error を使い続ければいいじゃん。
0680デフォルトの名無しさん2008/11/22(土) 19:14:27
>>676
どんなエラーが来るかを予想して5個ぐらい予想が付いたら
5個の文章を書かないとダメじゃないですか。
でもon errorだとエラーになったら発動するじゃないですか。
0681デフォルトの名無しさん2008/11/22(土) 19:16:02
>>680

> どんなエラーが来るかを予想して5個ぐらい予想が付いたら
> 5個の文章を書かないとダメじゃないですか。

そんなことない。以上終了
0682デフォルトの名無しさん2008/11/22(土) 19:18:26
好き嫌い以上の理由を語りたいなら語れるだけの知識を身につけてからにした方が良い。
0683デフォルトの名無しさん2008/11/22(土) 19:20:27
5個予想がついたら5個書くのが当たり前
エラーの種類に応じて対処を変える必要があるだろ
On Errorにしたって一緒。エラーの種類をifで判別したりする。
0684デフォルトの名無しさん2008/11/22(土) 19:57:57
http://www.dotup.org/uploda/www.dotup.org7516.zip.html
ex.messageの例として参考になれば
0685デフォルトの名無しさん2008/11/23(日) 23:33:35
Flashビデオを流しているYouTubeの動画を見る時に

自動でページ内の
「⇒」ボタンをクリックする事とかってやっぱり無理ですか?

指定したページの中にある全FLVをプログラムから一度にクリックするツールを作りたいと思っています。
0686デフォルトの名無しさん2008/11/23(日) 23:34:27
>>685
そのボタンは何でできてるの?
最悪、SendInput() だろうけど・・・
0687デフォルトの名無しさん2008/11/23(日) 23:44:06
なーんにも知らないのにいい加減なこというけど、
YoutubeってAPI公開してるんじゃなかったっけ?
0688デフォルトの名無しさん2008/11/24(月) 00:08:42
http://jp.youtube.com/dev
0689デフォルトの名無しさん2008/11/24(月) 00:24:13
>>686
Flashです。
SenInput()???これはなんですか?


>>687
あああ、API公開してるって事はプログラムで制御出来るかな?

>>688
ちょっと見てみます。

因みにWEBページはVB.netである程度制御する事が出来る事がわかったけど、
Flashページ内の特定のボタンをクリックとかって事はそもそもVB.netから出来るのでしょうか?
Adobe CS3 とか勝手Action Scriptも勉強しなくちゃいけないとは思いますけど。

0690デフォルトの名無しさん2008/11/24(月) 00:34:29
出来るみたい
やったことないけど…
http://ameblo.jp/grim/theme-10001049173.html
0691デフォルトの名無しさん2008/11/24(月) 00:38:11
>>690
うぉーすげー出来るんだw
最近のWEBページはFlashが多くてうざくてしょうがなかったんだけど
ちょっと安心しました。
0692デフォルトの名無しさん2008/11/24(月) 00:52:38
>>690
それってフォームに表示してるflashの操作じゃない?
0693デフォルトの名無しさん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)に平行して
インストールする事は可能でしょうか?

0694デフォルトの名無しさん2008/11/24(月) 14:51:21
コピペ君って馬鹿だな、まで読んだ。
0695デフォルトの名無しさん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)

このようなコードで実行してるのですが、アクセスできないフォルダとかまで検索しようとして
「パス 'ほにゃらら' へのアクセスが拒否されました。」
とでてしまいます
解決策がございましたら教えてください
0696デフォルトの名無しさん2008/11/24(月) 21:06:29
>>695
エラートラップ
0697デフォルトの名無しさん2008/11/24(月) 21:08:32

先日のG20で世界の指導者の全員がブッシュと握手をしなかった。
http://jp.youtube.com/watch?v=uRMAAXNHkh8

世界の外交上の暗黙の了解として、ブッシュが指導するアメリカは
完全に村八分になったという意味らしいが、要するにアメリカ帝国が
終わったという意味だとすると、

そんな沈没して行くアメリカ持ち上げ犬手下バンザイで麻生さんだけが

     ドル機軸、バメリカ帝国マンセーで
     これからもがんばりますデぇ−ス!!

で尻尾振り続けている姿はどう映るんだろうねw

     > バメ犬手下自民党 <
     >    マンセーー   <

日本ってずっとずっとこれで行くつもりなんかな?
0698デフォルトの名無しさん2008/11/24(月) 21:14:24
コピペ君って馬鹿だな、まで読んだ。
0699デフォルトの名無しさん2008/11/25(火) 00:06:57
>>696
ありがとうございます
0700デフォルトの名無しさん2008/11/25(火) 00:12:58
ダメw
例外をキャッチするんだ
>>644〜参照
0701デフォルトの名無しさん2008/11/25(火) 10:40:03
フォームでTransparencyKey指定した時のようにPictureBoxを透過
することは可能でしょうか
PictureBoxのBackColorをTransparentにしてもフォームのTransparencyKey
の色になるだけだし…
現在はPictureBox.Visible=Falseにしてスクリーンキャプチャして切り出して
合成してPictureBoxに書き込むという泥縄なことしてるんで
0702デフォルトの名無しさん2008/11/25(火) 20:59:19
>>701
言ってることがよーわからんけど、
合成して描画できるということは最初からPictureBoxなど不要ということだろう
普通に考えれば。
0703デフォルトの名無しさん2008/11/26(水) 01:03:21
最近.netの2003を授業ではじめたんですけどテキストボックスで
常に同じ文字を表示させておくことってどうすればできますか?

日付をyyyy/MM/dd形式で入力させるテキストボックスを作りたいんですけど
スラッシュうつのめんどくさいのではじめから / が打ち込まれて
いるようにしたいんです。
プロパティのテキストに/書いても実際の処理でテキストボックスに書き込み
したら/消えちゃうし。

あとテキストボックス選択した時にテキストボックスの中身が全部反転して
選択された状態になってしまうんですがそうならないようにする解決策
があればヒントください。

かなり低レベルだと思うんですけどヒントください。
0704デフォルトの名無しさん2008/11/26(水) 12:11:46
>>703
1. 2005 (.NET 2.0) なら MaskedTextBox を使用する。
  →授業だったら勝手に変えられんわな。
2. Microsoft Masked Edit という ActiveX を組み込む。
  →これも勝手にインストールしていいんだろうか。
3. 日付専用なら DateTimePicker を使用する。
  →カレンダーも表示される。
オススメは3。

>テキストボックス選択した時にテキストボックスの中身が全部反転
プログラムでやんないとそうはならないハズだけどなあ。
コードウィンドウの左上で該当するテキストボックスの名前を、
右上で「GotFocus」を探してみ。
太字になってたら、フォーカスイベントを受け取ってなんかやってる。
0705デフォルトの名無しさん2008/11/26(水) 20:26:44
すまんがダメな俺に教えてくれ

VS2008から何かDataRepeaterってのが追加されてるんだけど、これについて。
AllowUserToAddRows = True にしても、行の追加は出来るんだけど、
DataGridViewみたく、 " * "って表示される新規行が常に表示されないんだ

Accessの明細用サブフォームみたいな感じで使いたいから
常に新規行を出したいんだけど、無理?
DataGridViewはデザイン性に難があるから、出来ればDataRepeater使いたいんだ
それとも、他の良い手があるんかな
0706デフォルトの名無しさん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で受けているのかが判らない
0707デフォルトの名無しさん2008/11/26(水) 20:56:48
>>706
型の互換判定ならこうじゃない?
If TypeOf TestClass Is TestInterface Then
0708デフォルトの名無しさん2008/11/26(水) 21:01:42
>>707が正解だけど,もしオブジェクトじゃなくて型"TestClass"が
TestInterfaceを実装しているかどうかを調べるなら
If (GetType(TestInterface).IsAssignableFrom(GetType(TestClass)))
とするのが正しい
0709デフォルトの名無しさん2008/11/26(水) 21:10:34
いきなりTryCastという方法もある。
C#の as と同等のキャストであとはNothing判定でそのまま呼び出し。
TestInterface hoge = TryCast(TestClass, TestInterface)

07107032008/11/26(水) 21:36:58
>>704
ありがとう。色々やってみます
0711デフォルトの名無しさん2008/11/27(木) 14:19:01
>>707,708,709
ありがとうございます。
TypeOf Isでそのまま判定できたんですね
TryCastも初めて知りました

Reflection方面でしか調べてなかったんで
視野が狭くなっちゃってましたね
0712デフォルトの名無しさん2008/11/28(金) 06:31:58
今作ってるプログラムは「フォームでいろいろ設定」→「処理実行」という使い方をするのですが
フォームの設定内容を簡単に書き出す方法はあるでしょうか?
今のところは他のやり方を知らないので、チマチマ各パラメータを保存できるような形式にしてファイルに書き出す方針なのですが。
0713デフォルトの名無しさん2008/11/28(金) 09:56:08
どうせ自分で書くなら必要なパラメータを1つのクラスにしてシリアライズできるようにしておけば?
起動時にデシリアライズかけて元に戻すとか

面倒くさいならユーザースコープで設定使えばいいんじゃないかと

勘違いだったらごめ
0714デフォルトの名無しさん2008/11/28(金) 10:00:01
シリアライズ用のクラスにまとめて,カスタム属性やリフレクションでがんばる
0715デフォルトの名無しさん2008/11/28(金) 10:13:54
カスタム属性がカタツムリ属性に見えた。
もう寝る。
0716デフォルトの名無しさん2008/11/28(金) 13:48:39
VB2008 Expressを使用しています。
500×500の要素を3Dグラフにして表現したいのですが、標準でついているグラフコンポーネントってChart FXだけでしょうか?
これで多くの要素を1画面に収めることってできます・・・?
多くの要素を1画面に収めるか、他にフリーのグラフコンポーネントがありましたら教えてください。
よろしくお願いします。
0717デフォルトの名無しさん2008/11/28(金) 13:58:39
散布図ならgnuplotでも使って画像に出力したら
0718デフォルトの名無しさん2008/11/28(金) 22:53:13
すいません、VB.NETで簡単なFTPソフトのサンプルソースが欲しいです

欲しい機能は
スループットを結果で表示する
ファイル転送の進行状況の表示
ファイルのアップロードダウンロード

宜しくお願い致します。

最初VB6で公開されているソースを参考に作っていたのですが、
スループットを結果で表示する事が出来なくてVB.NETで作り直しを命じられました。
VB6のコマンドボタンの配置法だけの教育でVB6を理解した事にされ、
VB.NET(2003)は昨日初めて触れたド初心者です。

助けてください、お願いします。

またVB6でFTPでの転送結果を取得する関数とかあるのでしょうか?
0719デフォルトの名無しさん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
0720デフォルトの名無しさん2008/11/28(金) 23:06:44
本質的に頭悪いんでしょw
それと「悩んでる私」を他人に語って受け入れてもらいたい女々しいタイプなんだと思うよ。
0721デフォルトの名無しさん2008/11/28(金) 23:13:59
スループットを結果でって……
しかもできないって……
ようするに転送量/時間でしょ?
0722デフォルトの名無しさん2008/11/28(金) 23:20:01
しかも2003w
0723デフォルトの名無しさん2008/11/28(金) 23:23:29
もうこのスレいらなくね?
0724デフォルトの名無しさん2008/11/28(金) 23:31:06
この場合は結果(FTPクライアント(笑))が必要なんじゃなくて
>>718自身の教育が目的なんだからこれでいい
07257182008/11/28(金) 23:49:11
>>719-724
すいません
その検索方法で既に調べていたのですが、よく理解できなかったので。
転送量/時間で出すのがやはり王道なんですね。
皆様回答ありがとうございました。
0726デフォルトの名無しさん2008/11/28(金) 23:53:28
こんなスレじゃなくて余所ならまた違った回答があったかもね
めげずに頑張ってね
0727デフォルトの名無しさん2008/11/28(金) 23:57:22
なるほど聞く場所が悪かっただけだから気にするな、と。
本当にそうかね。
0728デフォルトの名無しさん2008/11/29(土) 00:00:22
ググれカスで全部片付くからこのスレいらね
0729デフォルトの名無しさん2008/11/29(土) 00:01:12
一台のPCに複数のIPアドレスが割り当てられている場合に
VB.NETのWebBrowserでそのIPを切り替えるにはどういう方法がありますか?
0730デフォルトの名無しさん2008/11/29(土) 00:06:16
ググれかす












以後、VB.netの行く末を語るスレになります。
0731デフォルトの名無しさん2008/11/29(土) 01:40:33
答えを理解するのにもある程度の知識が必要
わからないから、とりあえず聞いてみようなんて奴に教えても無駄無駄
0732デフォルトの名無しさん2008/11/29(土) 01:48:35
すぱるたかす
07337122008/11/29(土) 06:17:32
>>713-714
すいません、各パラメータを保存できるような形式にしてというのがパラメータを1つのクラスにしてシリアライズするという意味のつもりでしたw
ユーザースコープで設定というのを調べてみたところ、いろんな設定を読み込みなおして使う目的にはあまり適さないようでしたので、現在の予定のままでいきます。
ありがとうございました。
0734デフォルトの名無しさん2008/11/29(土) 06:59:09
質問スレなのに
>>聞いてみようなんて奴に教えても無駄無駄

ほんともうこのスレいらんよw
0735デフォルトの名無しさん2008/11/29(土) 07:07:33
>>734
つ「とりあえず」
0736デフォルトの名無しさん2008/11/29(土) 07:17:44
あほか
0737デフォルトの名無しさん2008/11/29(土) 08:40:39
はい
0738デフォルトの名無しさん2008/11/29(土) 13:23:53
VBユーザーって性格も悪いんですね^^
0739デフォルトの名無しさん2008/11/29(土) 14:17:11
はい
0740デフォルトの名無しさん2008/11/29(土) 22:04:04
BackgroundWorkerで動かしているスレッドから
他のメソッド(staticではない)を呼んだ場合、問題は発生しますか?
0741デフォルトの名無しさん2008/11/29(土) 22:09:38
>>740
はい
0742デフォルトの名無しさん2008/11/29(土) 22:13:40
問題が発生するようなことをしなければ発生しないけど
そんなことを聞いてるようじゃ間違いなく発生するね
0743デフォルトの名無しさん2008/11/29(土) 22:16:24
staticだって作り方次第じゃ十分問題あるだろう。
0744デフォルトの名無しさん2008/11/29(土) 22:20:30
他のメソッドを呼び出さなくても問題は起きるよ
staticだからどうとかも関係ない
なにをやったらダメなのかわかってないならスレッドなんて使っちゃダメ
0745デフォルトの名無しさん2008/11/29(土) 23:12:50
どのような問題が発生しますか。
0746デフォルトの名無しさん2008/11/29(土) 23:29:09
別スレッド=異次元

君が気づかない間に異次元から君の記憶が操作されていて
君の状態に矛盾が発生してしまう

いつのまにか朝ごはんを食べなかったことにされたり
男なのに女にプロパティが変更されたりしてしまう
0747デフォルトの名無しさん2008/11/29(土) 23:33:09
>>745
BackgroundWorkerで動かしているスレッドから
他のメソッド(staticではない)を呼んでみたら?
0748デフォルトの名無しさん2008/11/30(日) 00:11:37
>>747
どうなりますか
0749デフォルトの名無しさん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になるように切り捨てするには
どうしたらいいですか。
0750デフォルトの名無しさん2008/11/30(日) 01:11:33
http://www.alato.ne.jp/kazu-/vb/tip24.htm
0751デフォルトの名無しさん2008/11/30(日) 01:18:54
一行コピペ君って馬鹿だな、まで読んだ。
こういうコピペ君ってどや顔で一行コピペしてるんだろ馬鹿だよな、まで読んだ。
0752デフォルトの名無しさん2008/11/30(日) 01:25:48
decimal 使うが勝ち
0753デフォルトの名無しさん2008/11/30(日) 09:49:30
どや顔って?
0754デフォルトの名無しさん2008/11/30(日) 11:06:33
わざわざVB関数紹介するなよw
Math.Ceiling
07557542008/11/30(日) 11:12:06
でもdecimalのほうがいいよ
0756デフォルトの名無しさん2008/11/30(日) 11:18:51
浮動小数点を扱う以上、10進法とは誤差が出るのは当たり前。
If re = 3499 Then re = 3500
を挟むのが正解。

ってコードを金融系のソースで見て目ん玉飛び出た。
なんで浮動小数点で金の計算するんだよ。
0757デフォルトの名無しさん2008/11/30(日) 11:51:34
まあ金融系って言っても色々あるんじゃないか
0758デフォルトの名無しさん2008/11/30(日) 13:38:02
利子の計算とかなら端数でるから浮動小数点で多少誤差でてもわからんだろ?
0759デフォルトの名無しさん2008/11/30(日) 13:47:03
筆算やソロバンで計算したときと同じ誤差が求められるから大変だよ
0760デフォルトの名無しさん2008/11/30(日) 14:12:06
>>749
何をしたいかによるね。

単純にその演算に関してのみ正しい結果が欲しいのであり、
かつ必要な有効桁(というか小数点以下の桁数)がはっきりしているのなら
Roundで丸めればいいわけだし。

分数の演算を常に「数学的に正確に」行う必要があるのなら
そういう分数クラスを自分で作るしかないだろうし。
0761デフォルトの名無しさん2008/11/30(日) 15:57:56
いろいろ試したけどdecimalだとうまくいきますね
でも速度が遅くなるみたいだし・・・
しばらく悩みそうです
0762デフォルトの名無しさん2008/11/30(日) 16:08:04
理屈がわかってる人間ならいいんだが、>>749みたいな質問をする人が
decimal使うのは正直どうかなと思うね。

まず実数演算の誤差がどうして起こるのかの理屈を理解するのが先決だよ。
通常は>>760に書いたように精度の仕様を決めてそこで丸めるようにすれば
済む用途が大半だと思うけど。
0763デフォルトの名無しさん2008/11/30(日) 16:09:30
わかんなければ、小数演算するときは decimal、ってのはありだろ。
0764デフォルトの名無しさん2008/11/30(日) 16:12:09
>>760 もあんまり理解していないのではないかな。
問題は1.1という数値自体が2進法であらわせないことにあるわけで。
2進法の丸めは2進法で表したときの少数点以下何桁(ビット!)目で
丸めるといったロジックになるのはわかってるのかな。
0765デフォルトの名無しさん2008/11/30(日) 16:13:33
>>763
ひょっとしてdecimalって「誤差がでない魔法の型」とか思ってるんじゃないの?
まあそのようだけど、だから「正直どうかな」と思うわけ。
0766デフォルトの名無しさん2008/11/30(日) 16:20:05
.NET 2.0でこれが追加された時はこれで勝つると喜んだよ。
偶数丸めと四捨五入の指定ができる。
Math.Round ( d As Decimal, decimals As Integer, mode As MidpointRounding ) As Decimal
0767デフォルトの名無しさん2008/11/30(日) 16:22:23
演算誤差もわからんヴァカにいちから説明するのはめんどいからさ。
そういうやつには、「decimal 使え、理由はいちいち説明しないけど」で十分。
0768デフォルトの名無しさん2008/11/30(日) 16:24:04
>>766
なんで唐突にその話題を出すの?
0769デフォルトの名無しさん2008/11/30(日) 16:35:51
唐突と感じたのなら理解が浅いね。
decimalを使うだけだと手計算との違いは発生する。
decimal(10進化浮動少数点)で丸めの処理がコントロールできれば
手作業で計算したのと同じ結果が出せる。
0770デフォルトの名無しさん2008/11/30(日) 16:40:17
>>769
それ本気で言ってるのかひょっとして?
0771デフォルトの名無しさん2008/11/30(日) 16:43:22
一行レスってバカだなと思った
0772デフォルトの名無しさん2008/11/30(日) 16:44:12
っていうか>>760でMath.Roundを出したが、
ひょっとしてこの引数のdigitに1を指定しろって前提で話をしているとでも
思ったんだろうか。

そういうことじゃないよ。
有効桁の要求仕様がはっきりしてるのなら〜とわざわざ前置きした意味を
すっとばして理解されては困る。
0773デフォルトの名無しさん2008/11/30(日) 16:52:12
>>772
前提をはっきりさせないと何を持って正しいとするか決められないというのは了解。
0774デフォルトの名無しさん2008/11/30(日) 21:54:00
上級者のフリしたいだけの奴は消えろよもう
0775デフォルトの名無しさん2008/11/30(日) 21:58:44
>>774
その言葉自体は同意するが、だったら間違ってると思ってる意見に具体的に反論しろよ。
できないのならその言葉をお前さん自身に適用すること。
0776デフォルトの名無しさん2008/11/30(日) 22:05:17
>>774
>>771
0777デフォルトの名無しさん2008/12/01(月) 10:25:56
「コピペ君って馬鹿だな、まで読んだ」というレスが
すでにコピペである件について

「一行レスってバカだなと思った 」というレスが
すでに一行レスである件について
0778デフォルトの名無しさん2008/12/01(月) 13:42:02
荒らしに構うやつは荒らし、ってレスを書くのと同じだな
0779デフォルトの名無しさん2008/12/02(火) 15:46:22
ちょっと課題で悩んでいます。
Listbox1に表示させた文字列を部分検索して、該当する文字列を全てlistbox2に
表示させるプログラムを作らなければならないのですが、検索してもよくわかりませんでした。

低レベルの質問だとは思いますが、どなたか教えていただけないでしょうか?
0780デフォルトの名無しさん2008/12/02(火) 15:47:54
何が分からないのさ
0781デフォルトの名無しさん2008/12/02(火) 16:50:28
・Listbox1を表示させる
・Listbox2を表示させる
・文字列をListbox1に表示させる
・Listbox1に表示させた文字列を部分検索する
・該当する文字列を全て取得する
・取得した文字列を全てListbox2に表示させる

これだけじゃん
07827792008/12/02(火) 17:14:50
>780
>781
事故解決しました。すみません。
本当に質問するような問題ではなかったです
0783デフォルトの名無しさん2008/12/02(火) 21:07:00
ユーザーとパスワードで制限されたネットワーク上のディレクトリのファイル一覧とそれらのファイルのタイムスタンプを取得するには
どのようなコードを書けば良いのでしょうか?
0784デフォルトの名無しさん2008/12/02(火) 21:38:51
どうやって公開されてるかによる
0785デフォルトの名無しさん2008/12/02(火) 21:42:35
ネットワークに接続する
認証を通る
ファイル一覧を取得する
タイムスタンプを取得する

コードを書けばOK
0786デフォルトの名無しさん2008/12/02(火) 22:21:00
VB.NET初心者です。オブジェクト指向をマスターした人に質問です。
入門書を購入して一通り学習しましたが。オブジェクト指向やクラスの段階で、挫折気味です。
オブジェクト指向の前の段階までは確実に理解できて自分でコードが書けるのですが。
クラスとか応用してプログラムを作ることができません。
クラスは8000種類あるらしいですが、コードが書ける人はこれを全部覚えてる人なんているのでしょうか?
クラスごとにコードの使い方のルールが違っていて、基本がわかっていてもクラスがうまく使いこなせません。
やはりいちいちMSDNを検索して参考にしてコードを書いてるんでしょうか?
しかしMSDNを見ても書いてあることがよく理解できません。
今、見てる本が基本的過ぎるのでしょうか?
みなさんはどんな本でなにを参考にしてプログラミングや勉強しましたか?
0787デフォルトの名無しさん2008/12/02(火) 22:24:35
>>786
> オブジェクト指向の前の段階までは確実に理解できて自分でコードが書けるのですが。
> クラスとか応用してプログラムを作ることができません。

それは理解できてないと思う。まずは、構造化プログラミングをきちっと身につけた方がいい。

> クラスは8000種類あるらしいですが、コードが書ける人はこれを全部覚えてる人なんているのでしょうか?

いないと思うよ。

> クラスごとにコードの使い方のルールが違っていて、基本がわかっていてもクラスがうまく使いこなせません。
> やはりいちいちMSDNを検索して参考にしてコードを書いてるんでしょうか?
> しかしMSDNを見ても書いてあることがよく理解できません。

それは基本がわかってないから。

> 今、見てる本が基本的過ぎるのでしょうか?
> みなさんはどんな本でなにを参考にしてプログラミングや勉強しましたか?

基本的な文法を覚えたら、とにかくプログラムを書く。書いたら、別の方法を試してみる。
繰り返し、繰り返し。そのうち、コツがわかってくる。
0788デフォルトの名無しさん2008/12/02(火) 22:31:07
>基本的な文法を覚えたら、とにかくプログラムを書く。書いたら、別の方法を試し>てみる。
>繰り返し、繰り返し。そのうち、コツがわかってくる。

これはプログラミングをマスターする王道だと思う。
0789デフォルトの名無しさん2008/12/03(水) 10:35:57
サンプルソースをコピペ ⇔ ちょこっと改造
そのうち全部自分で書ける様になる
先輩方のコードを読むのは勉強になるよ
0790デフォルトの名無しさん2008/12/03(水) 15:51:03
出来合いのクラスを使うだけじゃなくて
自分でクラスを書いてみるとよく理解できる
0791デフォルトの名無しさん2008/12/03(水) 15:57:37
むしろモジュールだけ使ってソフト組んでいるといつかクラスが必要な時がわかるんじゃないかとw
0792デフォルトの名無しさん2008/12/03(水) 16:03:10
今から始めるんだったらモジュールなんて飛ばしてもいいよ
0793デフォルトの名無しさん2008/12/03(水) 17:36:41
ためになるスレだなぁ。
0794デフォルトの名無しさん2008/12/03(水) 23:26:35
ねえ、VB中学校とか言うサイトがあるけど、このスレの人はどんな評価?
あれわかりやすいですか?
0795デフォルトの名無しさん2008/12/03(水) 23:39:18
>>794
なあ、それ他人に聞いて意味のある質問だと思う?
0796デフォルトの名無しさん2008/12/03(水) 23:42:22
わかりやすい本やサイトなんて存在しないと思っていい。
どんなに噛み砕いて説明してるつもりでも、本当に助けが欲しいと思ってる人には理解出来ないことが多い。

やはり覚えたいと思ったことは、自分でやってみるのが一番の勉強になるし身に付く。
特に独学で体験した失敗はとても重要な財産になる。

一通り勉強した後に見る、自称わかりやすい本やサイトは「復習」として見る分にはいいと思う。
0797デフォルトの名無しさん2008/12/03(水) 23:48:40
そうは言ってもVBに関しては中学校ぐらい初心者を意識した参考書なんてないよ
巷にあふれてるVB本はリファレンス形式のものが多いし.NETに限定してしまえば
「オブジェクト指向?なにそれ?」な参考書ばっかり
なんでちゃんとしたクラス設計の説明などを省くのだろうかといつも不思議に思う
0798デフォルトの名無しさん2008/12/03(水) 23:54:36
一冊や1サイトですべてがわかる奴はいないんだよ
0799デフォルトの名無しさん2008/12/03(水) 23:56:21
初心者がしっかりオブジェクト指向勉強するならjavaの本でも読んだ方が早いんじゃね
.NETでもC#の基礎的(≠簡単)な解説はわりとwebにも多いんだけど
VBは本当に無いね
0800デフォルトの名無しさん2008/12/03(水) 23:57:16
>なんでちゃんとしたクラス設計の説明などを省くのだろうか
簡単にそういうけど、君書ける?
初心者相手じゃなくても相当ハードな分野だと思うけど。
っていうか、VB中学校にはその種の内容の文章はないと思うが。
0801デフォルトの名無しさん2008/12/04(木) 00:37:02
Processクラスでバッチファイルを起動しています。
そのバッチファイルから起動しているプログラムの
プロセス名またはPIDを取得するにはどのように
すれば良いでしょうか?色々調べてみましたが、
わかりませんでした。よろしくお願いします。
0802デフォルトの名無しさん2008/12/04(木) 00:51:07
煽りじゃないという前提で聞いてくれ。

たまにプログラムが分からない、という奴がいるけど俺からすると

そいつらが何が分からないか分からない。

オブジェクト指向で躓く奴もいるけど、そこもマジで分からない。

例えていうならファイアーエンブレムでクラスチェンジしたキャラで

合体する事によって両方の機能(メソッド)が使用出来るってだけの

事をなぜ理解できない?そして組めない?

前に国立理系院卒で確実に頭は良いであろう奴がいたけど、プログラムが

一切組めない奴がいた。マジでそいつらの頭は一体どうなっているんだ?

プログラムなんて複雑な数学と比べれば簡単過ぎると思うのだが。
0803デフォルトの名無しさん2008/12/04(木) 01:08:00
煽りの特徴のひとつ、1行とばし。
0804デフォルトの名無しさん2008/12/04(木) 01:16:54
>>802
長い。最適化しろ
0805デフォルトの名無しさん2008/12/04(木) 02:04:15
>>802
つまり君にとっての数学がその人にとってのプログラムなんだ。
0806デフォルトの名無しさん2008/12/04(木) 02:17:29
>>805
オレは、すまんが数学もそれなりに得意。(院卒レベルには及ばないけどね。)

>>804
読み易くする為に行間を空けてるんだよ。


用は、オレが何を言いたいかというと、車で例えるなら車がどういうメカニズムで動いているか(化学・物理学等も含めて)

を突詰め様とすると難しいけど、既に出来上がった車(プログラム)を運転(組む)のが難しい訳が無い。


というのがオレの意見なわけ。だからこそ車のメカニズムまで分かっている奴がF1レーサーみたいな

運転をする訳ではなく、普通の運転をする事すら出来ないって事が不思議でならないという訳さ。

0807デフォルトの名無しさん2008/12/04(木) 02:51:53
>>806
>院卒レベルには及ばないけどね。
つまり院卒レベルの人から見たらなんでこんな問題もできないのってなるのさ。

人には得手・不得手っていうのがある。
なんでも自分基準で考えないで、客観的に見たほうがいいよ。
世界中の人がプログラム組めたらプログラマの仕事がなくなるし。
0808デフォルトの名無しさん2008/12/04(木) 03:22:00
俺にはVB.netスレでそんなスレ違いな愚痴を得意げに書くやつが不思議でならない。
明らかに面白い(と言うか恣意的な)例えを持ち出してるところとかも
0809デフォルトの名無しさん2008/12/04(木) 03:45:55
>>806
お前の例えは分かり易くて良いね。
設計書もしっかりしていそう。
0810デフォルトの名無しさん2008/12/04(木) 04:22:32
車のメカニズムとか量子力学とか超ひも理論とかを極めた日本人のほとんどが、
ロシア語とかスペイン語とか中国語を話せないわけだ。
あんなのその国の6歳児のほぼ全体が簡単に習得できているのにな。

あぁ失礼。お前さんはロシア語もスペイン語も中国語も簡単に習得できていましたか。
0811デフォルトの名無しさん2008/12/04(木) 07:18:23
>>809
自演か知らんがその感覚はないわwww
さすがVB房
0812デフォルトの名無しさん2008/12/04(木) 09:23:38
>>806
>読み易くする為に
うぜぇ。
0813デフォルトの名無しさん2008/12/04(木) 09:55:14
>>801
WMI使ってParentProcessIdが[起動したバッチファイルProcessのId]になってるWin32_Processを探す
0814デフォルトの名無しさん2008/12/04(木) 11:45:21
>>806
全然読みやすくない、ってかウザったらしいだけ
0815 [―{}@{}@{}-] デフォルトの名無しさん2008/12/04(木) 12:26:47
>>814
バカに構うな
0816デフォルトの名無しさん2008/12/04(木) 13:31:27
2008で日本語を全部英語とかに変換できるとか聞いたんだけど
(xmlがどうのこうのいってたような)
本当に可能?
もし可能ならどうやってするんだろ・・・
08172552008/12/04(木) 13:34:19
コネ━━━━━('A`)━━━━━━ !!
0818デフォルトの名無しさん2008/12/04(木) 13:35:25
単にlocalizationの話じゃね?
0819デフォルトの名無しさん2008/12/04(木) 14:04:50
>>816
何言ってるのこの人
0820デフォルトの名無しさん2008/12/04(木) 17:48:09
SendKeysで半角カナを送る方法はないものでしょうか?
SendKeys.SendWait("ア")
だと ア が送られるけど
SendKeys.SendWait("ア")
だと 3 が送られてしまいます。
VBの
SendKeys "ア"
だとちゃんと ア が送られていたのですが、.NETへの移行でつまずいています。
0821デフォルトの名無しさん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に関するメモ書き とか?
0822デフォルトの名無しさん2008/12/04(木) 18:14:51
オブジェクト指向とは合体して両方使えるようになるってことです。
こんな簡単なことが分からないなんて理解できません!!
0823デフォルトの名無しさん2008/12/04(木) 18:19:02
>821
ggytz(ぐぐってやったぞ)ksですね、わかりますわかります
0824デフォルトの名無しさん2008/12/04(木) 18:20:15
そもそもSendKeysは文字通りキー入力を送信するもんなのだから
半角カナなんてキー入力を旧VBがどうやって実装していたのか気になる
0825デフォルトの名無しさん2008/12/04(木) 18:52:26
>>821
おおありがたや、と思ったら
VB.NETに関するメモ書き
のリンク先なくなっとる
0826デフォルトの名無しさん2008/12/04(木) 19:18:55
どこを読んで「なくなってる」と判断してるんだ?

エラーメッセージを読むのは言うまでもなく基本。
>CGIが、開設したホームページ領域以外から呼び出されました。
って書いてあるなら、URL直打ちなりグーグルキャッシュから見れる事も多い。

検索結果のリンクからCGIに飛ぶとそういうことがよくある。
0827デフォルトの名無しさん2008/12/04(木) 21:56:29
もちろんそのサイト内入念に探した上での返答です
0828デフォルトの名無しさん2008/12/04(木) 21:59:43
ttp://www5b.biglobe.ne.jp/~yone-ken/VBNET/

こっから入れんじゃん。
0829デフォルトの名無しさん2008/12/04(木) 22:07:37
すみません、キャッシュまでは見てませんでした。
この方法だとIMEがきかないところなので無理そうです。
0830デフォルトの名無しさん2008/12/04(木) 22:10:28
半角のアのキー入力を送りたいなら、カナモードにして送るしかないんじゃない?

テキストボックスに半角のアを設定したいなら、WM_SETTEXT とかそういう系で。
0831デフォルトの名無しさん2008/12/04(木) 22:10:59
>>828
ほんとだ。
お手数おかけしました。
0832デフォルトの名無しさん2008/12/04(木) 22:12:23
>>813
ありがとうございました。
できました! m(_ _)m
0833デフォルトの名無しさん2008/12/04(木) 22:26:41
>>811
バカ、皮肉だろ。
0834デフォルトの名無しさん2008/12/04(木) 23:32:02
>831
右クリック→ショートカットのコピー→ブラウザのURL欄に貼り付け でも行けた。
0835デフォルトの名無しさん2008/12/05(金) 00:09:18
VBのSendKeysをラップしたCOMを作って使う
0836デフォルトの名無しさん2008/12/05(金) 00:17:59
>>814

死ねよ

ボケ
0837デフォルトの名無しさん2008/12/05(金) 00:24:24
ちっちっちっちきち〜♪
うちうち♪
うちの父ちゃんは♪
毎朝元気だyo!
0838デフォルトの名無しさん2008/12/05(金) 21:44:25
フォームの中にラインを引く方法教えてくれ〜
なんで初心者用にツールボックスにDrawLineがないんだよ\(^o^)/
0839デフォルトの名無しさん2008/12/05(金) 21:52:35
Visual Basic Power Packでも使ってろ無能
0840デフォルトの名無しさん2008/12/05(金) 22:36:34
>>839
なんという便利さあざーす
0841デフォルトの名無しさん2008/12/06(土) 03:21:11
MouseEnterでフォームをアクティブにすることってできますか?
サンプルなどあったらそれもお願いします
0842デフォルトの名無しさん2008/12/06(土) 12:24:37
プログラミング初心者なのですが
変数は初期化して使い回した方がいいのでしょうか?
変数が多いと処理が重くなったりするんでしょうか?
今の作ってる部分の変数が100個位なのですがこの100個の変数は一気に処理するので
これから増やしていくなら初期化した方が処理自体はおもくならないのですか?
0843デフォルトの名無しさん2008/12/06(土) 12:27:25
そのレベルなら
とりあえず書きたいように書け
動作が遅いと体感できてから改善を考えろ
0844デフォルトの名無しさん2008/12/06(土) 12:31:23
速い遅いの前にまずは値型と参照型について勉強しようね
それより,一つのメソッドに100個の変数へのアクセスが出てくるの?w自動生成ならともかく
0845デフォルトの名無しさん2008/12/06(土) 12:43:53
まあ実際にどうかは計測するのが一番だよね
その方が勉強になるよ
0846デフォルトの名無しさん2008/12/06(土) 12:47:40
変数100個って想像がつかんのだが…
いったいどういうメソッドなんだ…?
0847デフォルトの名無しさん2008/12/06(土) 13:08:06
一気に処理するってことは配列を使うべき場所なのかもしれない。
0848デフォルトの名無しさん2008/12/06(土) 13:31:26
ありがとうございます
とりあえず完成させてから考えた方がいいのですね。そうしてみようと思います
0849デフォルトの名無しさん2008/12/06(土) 14:02:48
>>846
自家製ORマップか?
0850デフォルトの名無しさん2008/12/06(土) 14:08:03
それにしたって変数100個は頭悪すぎる
0851デフォルトの名無しさん2008/12/06(土) 14:19:45
そもそもVB.NETスレよりもふさわしいスレがあるような
0852デフォルトの名無しさん2008/12/06(土) 17:53:34
pictureboxにある画像を二値化したいのですが、やり方がわかる人おられませんか?
調べても全然出てこない・・・
0853デフォルトの名無しさん2008/12/06(土) 17:57:54
Bitmap.LockBitsでロックして自分でピクセルデータを触る
0854デフォルトの名無しさん2008/12/07(日) 02:03:29
>>852
2値化する為の何が分からないのかが分からない。
それだとアルゴリズムがわからないのがプログラムがわからんのかどっちだ。

0855デフォルトの名無しさん2008/12/07(日) 04:28:46
VB.netでインストールパッケージを作っているのですが

インストールが完了したら、ユーザのデスクトップにアプリへのショートカットを自動で

作成するにはどうすれば良いでしょうか?

(VS2005)
0856デフォルトの名無しさん2008/12/07(日) 12:02:59
あの画面構成を見て分からないようじゃアドバイスのしようがない。
頭の上に眼鏡があるのに「母さん、ワシの眼鏡知らんか?」と言っているようなものだ。
0857デフォルトの名無しさん2008/12/07(日) 12:30:39
教えてやれや。
そんな長い文章まで書き込む位なら。
0858デフォルトの名無しさん2008/12/07(日) 13:50:19
オマエモナー
0859デフォルトの名無しさん2008/12/07(日) 16:35:12
>>855
http://www.microsoft.com/japan/msdn/thisweek/300x10/phase2/setup_program/default.aspx
ご参考あれ
0860デフォルトの名無しさん2008/12/07(日) 19:06:08
>>856
死ね


>>859
ありがとうございました!!
0861デフォルトの名無しさん2008/12/07(日) 19:36:19
>>860
理解したのなら>>856の言う事ももっともだと思ったんじゃないの?
とりあえず自分の○○(都合により自己規制)を棚に上げて「死ね」はちょっと酷くないか。
0862デフォルトの名無しさん2008/12/07(日) 19:49:20
>>861
No
0863デフォルトの名無しさん2008/12/07(日) 19:57:24
そうか。
そういう可哀想な人なら仕方ないね。
0864デフォルトの名無しさん2008/12/07(日) 23:17:58
行間空けるタイプの人間はロクなヤツがいないという
私の持論がまた証明された!
0865デフォルトの名無しさん2008/12/08(月) 19:18:51
タイマー処理をしたいんだけど起動直後にも処理をしてほしい
MyBase.Load, Timer.Tick の両方で動作するイベントを書こうとしてるんだけど、タイマーをちょこっといじるだけで実現できたりする?
0866デフォルトの名無しさん2008/12/08(月) 19:43:35
>>865
できるけど(そのためにイベントハンドラの引数eはEventArgsの派生クラスとするように
統一されてるんでしょ)やるな。

両方から同じメソッド呼べば済むしその方が読みやすいよ。
0867デフォルトの名無しさん2008/12/08(月) 20:11:15
>>866
そうしました。ありがとうございました〜。
0868デフォルトの名無しさん2008/12/09(火) 22:01:12
マウスのクリックを無効化したいんですがどうしたらよいですか?
たとえばデスクトップ上でもアイコンをクリックしても
何も起こらないようなものです。

目的としてはデスクトップのハードコピーをとる際に、
範囲を指定できるようなプログラムを作りたいと考えています。
どなたか教えてください。
0869デフォルトの名無しさん2008/12/09(火) 22:53:55
画面いっぱいに透明な窓を作るとか
0870デフォルトの名無しさん2008/12/09(火) 23:19:33
>>869
イメージとしてはそんな感じです
APIとか使えばよいのでしょうか?
0871デフォルトの名無しさん2008/12/09(火) 23:22:01
そんなに難しく考えないでいいよ
0872デフォルトの名無しさん2008/12/09(火) 23:25:59
自分でもいろいろ調べてみたんですが
APIなんかでマウスをフックして
クリックイベントが起こったらExitSubとかすればよいですか?
0873デフォルトの名無しさん2008/12/09(火) 23:29:21
おれはエクセルワークシートのクリック無効にする為にワークシート全体に
透明のラベル貼ったことある
しばらく使ってるとメモリ不足になって止まっちまったけど
(Windows95でExcel97使ってた頃の話)
0874デフォルトの名無しさん2008/12/09(火) 23:43:13
フックする必要が無いでしょうに
0875デフォルトの名無しさん2008/12/09(火) 23:49:33
デスクトップを触れなくするなんて
どう考えてもまっとうな人間が作るまともなソフトとは思えんな。
好意的に解釈してもUIってものがまるでわかってないお馬鹿ってとこ?

一人で馬鹿やるのは勝手だけど、俺は犯罪幇助みたいなことはしたくないもんだな。
0876デフォルトの名無しさん2008/12/10(水) 00:09:41
>>875
>目的としてはデスクトップのハードコピーをとる際に、
>範囲を指定できるようなプログラムを作りたいと考えています。
>どなたか教えてください。

よくお読みになってください!!
0877デフォルトの名無しさん2008/12/10(水) 00:16:25
背景色をTransparencyKeyにしてFormBorderStyle = FormBorderStyle.Noneにして最大化するだけ
0878デフォルトの名無しさん2008/12/10(水) 00:17:34
そんなのキャプチャしてからトリミングすれば済むことだろ常識で考えて。
そもそもトリミング範囲を指定するのにデスクトップをドラッグするわけ?
そんなソフト絶対使いにくいわ。
0879デフォルトの名無しさん2008/12/10(水) 00:35:57
>>878
マウスで指定した矩形範囲をキャプしたいってことだろ。
0880デフォルトの名無しさん2008/12/10(水) 00:40:23
なんか既視感を覚えると思って記憶を頼りにぐぐってみたが、
ベクター登録の「らくがきですくとっぷ」にあるカッター機能が近そうだ。
ttp://allabout.co.jp/computer/freeware/closeup/CU20070831A/index2.htm

作業中は左クリックが占有されるが、右クリックですぐ解除できるから操作性はそんなに悪くなかった覚えがある。仕様次第かと
0881デフォルトの名無しさん2008/12/10(水) 01:10:58
どちらかというとwinshotじゃね?
0882デフォルトの名無しさん2008/12/10(水) 01:22:17
>>879の答えが>>878のやり方だろうにw


0883デフォルトの名無しさん2008/12/10(水) 01:51:18
>>878の
>トリミング範囲を指定するのにデスクトップをドラッグする
ってどういう意味だ?
0884デフォルトの名無しさん2008/12/10(水) 02:17:38
>>883
普通はデスクトップのビットマップをウィンドウで表示して
そのウィンドウの中でトリミングするというが真っ当なやり方だけど
デスクトップを直接ドラッグしてトリミングするって意味で言ってると思われ
0885デフォルトの名無しさん2008/12/10(水) 08:46:15
つーかそんなアプリはVistaに標準添付されてるから作らなくていいよ
0886デフォルトの名無しさん2008/12/10(水) 09:32:12
>>875
Vista の Snipping Tool や、Mac OS X の CMD+Shift+4 てのを考えた奴は
お前よりまっとうな人間。

>>885
Home Basic にはないけどな。
0887デフォルトの名無しさん2008/12/10(水) 11:38:13
まだ粘着してるのか
その執念深さを検索に向けようとは思わないんだねぇ…
0888デフォルトの名無しさん2008/12/10(水) 11:59:43
>>887
独り言でないのなら、アンカーくらい付けたら?
0889デフォルトの名無しさん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を書く必要なかった?
0890デフォルトの名無しさん2008/12/11(木) 16:31:46
基本Disposeで全ての終了系処理はやってくれるんじゃないか?
と思ってるんだが

むしろUsing使うべきでは?
0891デフォルトの名無しさん2008/12/11(木) 20:11:43
Closeはいらない
Using使った方がいいけど,明示的にDisposeするなら必ずTry-FinallyのFinally内でやること
0892デフォルトの名無しさん2008/12/12(金) 12:21:59
リソースを閉じるのは両方ともやるけど
Closeはガベージコレクト任せ(内部の実装にもよる)
Disposeは呼び出した時点で開放を行う
だと思ってたんだが
0893デフォルトの名無しさん2008/12/12(金) 12:30:01
全然違う
Stream.Closeは中でDispose(true)を呼ぶだけ
つまり明示的にDisposeを呼ぶ(もしくはUsingを使う)のと全く同じ
08948922008/12/12(金) 12:44:51
ちょっと認識が曖昧だったんで「close dispose」でググってみたが
Closeはスコープ内でインスタンスの再利用を考慮した時に使用
Disposeはインスタンス自体の破棄する時に使用
というように認識した

StreamReaderの場合なら
再利用できないっぽいから明示的にDisposeのみがいいと思う
それ以前に再利用できないならCloseを同時に実装するなと…
※意見が別れるっぽいから、コレはあくまで自分個人の感想ね

0895デフォルトの名無しさん2008/12/12(金) 12:51:15
フォームが「移動し終わった」あるいは「リサイズし終わった」ことを知るには
どうすればよかろう?
(moveやresizeで再描画してるので重くてしょうがない)
0896デフォルトの名無しさん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と書くよりも字面上でわかりやすいから存在するだけ
0897デフォルトの名無しさん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
0898デフォルトの名無しさん2008/12/12(金) 13:10:25
つまり字面上の違いだけってことだな
昔はもっと曖昧な記述だった気がするんだけど,議論がよく出るからはっきりさせたのかな
0899デフォルトの名無しさん2008/12/12(金) 14:29:13
Finaraise?ファイナライズをかけばDisposeもCloseもかかなくていい?
0900デフォルトの名無しさん2008/12/12(金) 14:42:11
よくない
理由は上のリンク
0901デフォルトの名無しさん2008/12/12(金) 15:25:42
ファイナライザは直接アンマネージリソース持ってたりしてどうしても必要な場合以外は「書くな」
GCに悪影響を与える
0902デフォルトの名無しさん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
プログラム経験が浅い為、対処方が解りません。
どうか、御教授御願い致します。
0903デフォルトの名無しさん2008/12/12(金) 21:28:39
異なるスレッドで作成されたFormをOwnerにしようとしない。
どうせモーダルにしたいならThreadなんて起こす必要はなくて
ownerFormのスレッドでShowDialogしたらいいじゃないか。
具体的にはownerForm.Invoke(...)
0904デフォルトの名無しさん2008/12/12(金) 21:59:33
> InvalidOperationExceptionが発生されました。スレッドセーフな呼び出し方法を教えてください。
> という例外エラー

> 教えてください。
> という例外エラー

mjd?
09059022008/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にした時点でエラーとなってしまいました。

御教授御願い致します。


0906デフォルトの名無しさん2008/12/12(金) 22:16:13
もう回答出てるだろよ・・・
0907デフォルトの名無しさん2008/12/12(金) 22:19:15
えーっと、
どぼん氏の所のコードをそのまま2005で作ってエラーが出るかどうか試してみるところから始めてみたらどうだろうか
0908デフォルトの名無しさん2008/12/12(金) 22:21:46
二次関数のグラフを描画するのってどうしたらいいですか?
0909デフォルトの名無しさん2008/12/12(金) 22:25:04
フォームに自由に描画する→OnPaintをオーバーライド
線を引く→Graphics.DrawLine
これで必要十分のはずだよ
あとはVBと直接関係ない
0910デフォルトの名無しさん2008/12/12(金) 22:27:50
あとは、Excel とかを含めてコンポーネントを使うか、だね。
0911デフォルトの名無しさん2008/12/13(土) 01:20:16
>異なる点は、Showにownerの引数を追加して、
>Runの中のshowdialogでownerを指定しているだけです。

それが致命的なわけだ。

まあ2005でもデバッグ実行じゃなければ動くだろ。
どっかでおかしくなってても知らんが。
0912デフォルトの名無しさん2008/12/13(土) 01:21:41
まあついでに言っとくと本当は重い処理の方を別スレッドで、
プログレス表示を元のスレッドでやるべき。
0913デフォルトの名無しさん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
0914デフォルトの名無しさん2008/12/13(土) 02:38:29
>>913
「方法 : コールバック関数を実装する」で検索
0915デフォルトの名無しさん2008/12/13(土) 09:44:54
APIを使うんじゃなくて、WndProcをオーバーライドするだけな気がする。
0916デフォルトの名無しさん2008/12/13(土) 09:46:37
Delegate
0917デフォルトの名無しさん2008/12/13(土) 09:48:26
サブクラス化ならNativeWindowクラス使えってことに
0918デフォルトの名無しさん2008/12/14(日) 17:53:09
VB2008 Express Editionで教えて下さい

一つのFormに二つのPictureBoxを配置して、
片方のPictureBoxの任意の位置の四角い範囲を
もう片方のPictureBoxの任意の位置へコピーする場合どのようなソースになるのでしょう?

PictureBox1(x,y,w,h)の領域を→PictureBox2(x,y)へコピーしたいという事です

よろしくお願いします
0919デフォルトの名無しさん2008/12/14(日) 17:57:50
なんでもPictureBoxを基準に考えてはいけない
Bitmap.DrawImageを使うんだ
0920デフォルトの名無しさん2008/12/14(日) 18:46:15
VB2005を使ってれば2008に移行しなくても大丈夫?
09219182008/12/14(日) 19:01:57
>919
Bitmapオブジェクトで実現するって事で良いのですか?
元の画像をbitmapに読み込んで、もう一つのbitmapに部分複写で作成
→出来た物をPictureBoxに貼り付ける方向で調べております

しかし、VBも随分変わりましたね、オブジェクト思考?の基礎も
よく判っていないので、何から調べてよいのかすら判りません
Bitmap.DrawImageをキーワードに更に調べてみます
ありがとうございました
0922デフォルトの名無しさん2008/12/14(日) 20:33:42
>>921
指向な
0923デフォルトの名無しさん2008/12/14(日) 21:46:05
usingとかいう見慣れないものは必要ないんだべ
0924デフォルトの名無しさん2008/12/14(日) 21:54:00
ファイルサーバー上のファイルのタイムスタンプを取得するにはどうすればいいのでしょうか?
ローカルのファイルは
System.IO.File.GetLastWriteTime(FILE_PATH)
で取得できるのですが、ファイルサーバーにアクセスするにはユーザー名とパスワードが必要なため
どのようなコードを書けばよいのか分からないのです。
0925デフォルトの名無しさん2008/12/14(日) 21:54:28
自己完結乙
0926デフォルトの名無しさん2008/12/14(日) 21:57:54
ああ、割り込まれた!

>>924。
ファイルサーバーじゃ抽象的でわからん。
もっと具体的に。
0927デフォルトの名無しさん2008/12/14(日) 22:08:30
>>926
ファイルを置くためのサーバーで、普段はFFFTPというソフトでファイル転送を行っているのですが
その際の設定は
「ホストの設定名」→任意
「ホスト名」→192.168.x.xx
でユーザー名とパスワードを指定するという感じです。
0928デフォルトの名無しさん2008/12/14(日) 22:14:09
FTPじゃん!
0929デフォルトの名無しさん2008/12/14(日) 22:22:59
>>928
よくわかっていないのですが、WNetAddConnection2でドライブ名を割り当てて参照するようにすればいいのでしょうか?
FILE_PATH = "\\192.168.x.xx\home\foo.txt"
System.IO.File.GetLastWriteTime(FILE_PATH)
みたいな感じでドライブ名を割り当てずにできないかとも思っているのですが、ここでユーザー名とパスワードの扱いを
どうすればいいのかわからないのです。
0930デフォルトの名無しさん2008/12/14(日) 22:27:27
FTP相手ならFTP相手用の方法とる必要がある
FtpWebRequest辺りか
0931デフォルトの名無しさん2008/12/14(日) 22:28:23
って共有フォルダにできるの?
0932デフォルトの名無しさん2008/12/14(日) 22:38:58
>>930
ありがとうございます。
このあたりのことでしょうか?
http://dobon.net/vb/dotnet/internet/ftpwebrequest.html#getdatetimestamp
しかし、931氏もおっしゃっているように、共有ディレクトリに対してもこの方法は使えるのでしょうか?
0933デフォルトの名無しさん2008/12/15(月) 01:22:30
まったく別物。
共有フォルダ VB.Net
あたりでググれば出てくるかと。
0934デフォルトの名無しさん2008/12/15(月) 06:42:33
>>933
ありがとうございます。
しかし、ググってもVB.netのサンプルが見つからないんですよ。
WNetAddConnection2を使えばいいのでしょうか?
0935デフォルトの名無しさん2008/12/15(月) 09:30:34
結局、「Windowsのファイル共有」なのか「FTP」なのか判らずじまいという…
0936デフォルトの名無しさん2008/12/15(月) 10:04:55
Location.Yになんで値を代入できないんだ?
0937デフォルトの名無しさん2008/12/15(月) 10:33:43
Pointが構造体だから
0938デフォルトの名無しさん2008/12/15(月) 14:48:27
画面を呼び出すときに表示するフォームの縦横幅と画面幅をとり、窓が真ん中に来るように計算していて、
プログラムを単発で呼び出すとちゃんと動作してくれるんですが、別フォームからmicrosoft.visualbasic.shellで
呼び出して表示すると取ってくるフォームの縦横幅がおかしくなってしまってます、画面幅は正常でした
何か原因に心当たりがあれば教えて頂きたい
09399382008/12/15(月) 15:57:32
自己解決しました、原因はshellの第二引数でした
0940デフォルトの名無しさん2008/12/15(月) 17:21:40
なんのことやら
0941デフォルトの名無しさん2008/12/15(月) 23:01:59
>>934
http://dobon.net/vb/bbs/log3-13/7329.html

試してないけど、質問者は成功してるようだからこれは回答の一つだろう。

使う機会がないので詳しく追ったことはないが、WMIをキーワードに加えて検索しても
やり方は見つかりそう。
0942デフォルトの名無しさん2008/12/15(月) 23:05:55
>>934
相手が FTP なら無理。WebDAV ならありなんだけどなw
0943デフォルトの名無しさん2008/12/15(月) 23:18:08
ややこしくなってきたな。
Windowsの共有フォルダのアクセスは
>>934
>>941
あたり

FTPは
>>932

か?

0944デフォルトの名無しさん2008/12/15(月) 23:58:27
>>942-943
ありがとうございます。

ファイルサーバーは多分バッファローのNASだと思います。
dosでnetuseを使ってもいけそうな気もするのですが、自宅にはネットワーク環境がないので試せないのです。
今日は時間がとれなくて試せなかったけれど、明日辺り仕事の空き時間に少し試せればと思っています。
0945デフォルトの名無しさん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
0946デフォルトの名無しさん2008/12/16(火) 19:57:30
パネルの(0, 0)はいつも「今表示されている」左上。
子コントロールの位置もそこから起算されるから、
スクロールするだけで子コントロールのLocationも変わる。

AutoScrollPositionを考慮に入れないと駄目。
09479452008/12/16(火) 20:06:43
>>946
レスありがとうございます。
そういうことですか・・・・
AutoScrollPositionをキーワードに調べてみます。
0948デフォルトの名無しさん2008/12/16(火) 23:41:03
テキストボックスの文字をフォントサイズ変えずに拡大、縮小って出来ませんかね?
エクセルの拡大とか縮小のイメージです。200%みたいな。
方法ご存知の方いましたらご教授ください。よろしくお願いします。
0949デフォルトの名無しさん2008/12/16(火) 23:58:14
初心者なんだけど、業務上必要な画像処理ソフトを作成中です。
JPEG画像をWindowsの標準回転機能(90度づつ右や左へ)回転させる機能が作りたい。
ボタンを2つ配置して、�@左へ90度、�A右へ90度回転としたい。
現状では、ピクチャボックスへ画像が表示されていて、見た目だけはフリップメソッドやらで動くんだけど、ファイルは
更新保存されていません。
JPEGの保存やEXIF情報の書き換えなんかは助力を得ながら完成したんだけど、
なにかヒントになるようなキーワードを教えて貰えませんか?
標準的な機能だとは思うので、神様がいれば参考コードをくださるとホントはありがたいのですけれど・・。



0950デフォルトの名無しさん2008/12/17(水) 00:03:54
>>948
表示だけならいけると思うけど、入力もするの?

>>949
意味がわからん。できないのは回転? それとも保存?
何ができて何ができないのかを明確にしような。
0951デフォルトの名無しさん2008/12/17(水) 00:05:18
ピクチャボックス内で画像処理ってちょっとお粗末設計すぎないか
簡単にやるなら回転後のサイズのBitmapオブジェクトを新しく作って
回転行列のColorMatrixを作ってGraphics.DrawImageの引数に渡す
本格的にやるならPaint.NETのソースコードをパクるといいと思う
0952デフォルトの名無しさん2008/12/17(水) 00:06:53
>>950
ありがとうございます。
倍率を変えた状態で入力するかどうか決まっておりません。
表示の方法だけでも教えていただけませんか。
09539512008/12/17(水) 00:09:41
何がしたいのかよくわからないけど>>951は間違ってたので訂正だけ
ColorMatrix→Matrix
0954デフォルトの名無しさん2008/12/17(水) 00:11:27
>>952
CopyFromScreen() とか使って、イメージを拡大コピーすればOKでしょ
0955デフォルトの名無しさん2008/12/17(水) 00:15:12
バイナリファイルや作業用ファイルを除いて
つまりソースファイルだけをバージョン管理したいんだけど、
どの拡張子のファイルを管理すべきなのでしょうか?
0956デフォルトの名無しさん2008/12/17(水) 00:16:26
>>954
ありがとうございます。
スクロール可能にしなければならないのでハードコピーでは無理かもです。
0957デフォルトの名無しさん2008/12/17(水) 00:16:33
VSS2005 で確認してみればいいじゃん。
0958デフォルトの名無しさん2008/12/17(水) 00:16:43
知るかよそんなこと。。
どんな質問だよ
0959デフォルトの名無しさん2008/12/17(水) 00:19:36
答えられないヤシが書き込む理由を手短に
0960デフォルトの名無しさん2008/12/17(水) 00:21:23
スクロールか・・・ フォントサイズを大きくする形で描画、でいいなら楽なんだけどな・・・
Excel もそういう動きじゃね?
0961デフォルトの名無しさん2008/12/17(水) 00:25:11
>>959
くやしいんジャマイカ?
0962デフォルトの名無しさん2008/12/17(水) 00:25:21
>>955
実行ファイルが出来るbinとobjフォルダを対象外にするだけでいいんちゃうの?
リソースとかも対象外にしたいのかもしれんけど、更新頻度低いでしょ。
管理しても問題ないと思うけど。
0963デフォルトの名無しさん2008/12/17(水) 00:27:16
つーか、何で管理してるか知らんけど、VSS でソリューションを VSS に追加すれば、
自動的にやってくれるんだけどな。
0964デフォルトの名無しさん2008/12/17(水) 00:27:31
>>959
君「頭悪いなお前」ってよく人に言われるでしょ。
0965デフォルトの名無しさん2008/12/17(水) 00:28:48
>>963
VSS基準で考えるのはよくないな。
0966デフォルトの名無しさん2008/12/17(水) 00:30:32
>>965
なんで? ソース管理ツールに何を使ってるか言わない時点で、VSS の可能性は
排除できないよ。単に、VSS の使い方をわかってないだけ、って可能性もあるし。
0967デフォルトの名無しさん2008/12/17(水) 00:47:07
>>955
↓ここの「ソース管理によるファイルの処理」が参考になるかも
ttp://msdn.microsoft.com/ja-jp/library/ms171339(VS.80).aspx
0968デフォルトの名無しさん2008/12/17(水) 02:36:16
ttp://www2.uploda.org/uporg1861492.zip
こんな感じのプログレスバーで中止ボタン押されたらメインのループ処理止めるって方法が分からんのです。
0969デフォルトの名無しさん2008/12/17(水) 02:51:15
>>509
流れ無視して悪いが、めちゃ吹いたw
確かに起こらないイベントは拾えんなww
0970デフォルトの名無しさん2008/12/17(水) 09:08:47
俺もあみちゃんは好みだ
0971デフォルトの名無しさん2008/12/17(水) 09:11:33
>>968
zipファイルは見てないけど
BackgroundWorkerでぐぐれ
0972デフォルトの名無しさん2008/12/17(水) 15:42:33
流れ無視して質問すまん。

重い処理やってる画面なんかで、
キー入力→コントロール移動(処理)→キー入力とか素早く入力すると、
2回目のキー入力がうまくいかないんで、なんとかしたい。

例
項目1に「ABC」と入力
↓
項目2へ移動(Validating処理で時間がかかる。処理中は砂時計)
↓
まだ処理中(砂時計)の状態で「123」とキー入力
↓
項目2には「23」と表示され「1」がどこかへいってしまっている。

調べてみたらバッファ?とかいうのが関係するかもしれないことまではわかったんだが、
具体的に何すれば解決するのかわからないんで、どうかアドバイスお願いします。
0973デフォルトの名無しさん2008/12/17(水) 16:29:28
>>968
メインスレッドで時間のかかる処理しちゃダメ
>>971のBackgroundWorkerを使うなら
バックグラウンドで別スレッドで処理させるのはそのループ処理の方

>>972
Validation処理がまずいだけなんじゃないの
どう実装しても時間がかかるなら項目ごとに検証せずにまとめてやるとか
0974デフォルトの名無しさん2008/12/17(水) 17:54:13
バックグラウンドワーカー使えばよろし
0975デフォルトの名無しさん2008/12/17(水) 18:04:00
次の項目の入力に移った後に前の項目に対するエラーが出るのはかなり不自然に感じない?
0976デフォルトの名無しさん2008/12/17(水) 20:28:53
はぁ? なにいってんの?
0977デフォルトの名無しさん2008/12/17(水) 23:30:24
VBでテキストエディタを作ろうと思ってるんだが、本かサイトかお勧めくれ
0978デフォルトの名無しさん2008/12/17(水) 23:45:42
どの程度のものを作ろうとしてるのかによるな
既存のテキストエディタよりも便利なものを作って自分自身で使うとか考えているのであれば
テキストボックス貼り付けて終わりみたいなレベルの話じゃないから
かなり低いレベルから自分で実装することになる
自分で頑張れとしか言えない
0979デフォルトの名無しさん2008/12/17(水) 23:54:37
>>978
そうか……地道にやるしかないか。わかった。頑張ってみるわ。
ありがと
0980デフォルトの名無しさん2008/12/18(木) 01:59:55
>>979
SharpDevelopのソースでも見たらどうだ?
俺は挫折した。
0981デフォルトの名無しさん2008/12/18(木) 11:31:31
レスサンクス

>>973
Validation処理は仕様とかいろいろ関わってくるからもう一度確認してみる。
検証についてはちょっと触ったことないんで調べていろいろ試してみる。


>>974
バックグラウンドワーカーについて調べてみたが、
処理状態を確認・キャンセルできるイベントが使えるようになる?みたいなことは書いてあったんだが、
どういう風に使うのか理解できんかった・・・すまん
0982デフォルトの名無しさん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
0983デフォルトの名無しさん2008/12/18(木) 17:34:43
0984デフォルトの名無しさん2008/12/18(木) 23:32:28
0985デフォルトの名無しさん2008/12/19(金) 07:22:47
0986デフォルトの名無しさん2008/12/19(金) 21:16:25
0987デフォルトの名無しさん2008/12/19(金) 21:47:36
ステータスバーにセパレータを表示させるにはどうしたらいいでしょうか?
0988デフォルトの名無しさん2008/12/19(金) 22:18:46
セパレータの意味が不明だがステータスバーパネルコレクションのこと?
0989デフォルトの名無しさん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

セパレータは項目を区切るためのコントロールです。
よくスタートメニューで使われている棒みたいなのです。

0990デフォルトの名無しさん2008/12/19(金) 22:28:58
間違い
メニューです
0991デフォルトの名無しさん2008/12/19(金) 22:34:00
次スレって立ってる?
0992デフォルトの名無しさん2008/12/19(金) 22:55:39
>>989
フォームに ToolStrip 作って Separator を挿入、
Separator をカット&StatusStrip を選択してペースト。
なんで直接挿入できないかは知らん。

>>991
立ててみる。
0993デフォルトの名無しさん2008/12/19(金) 23:01:26
立てたよ。

VB.NET質問スレ(Part28)
http://pc11.2ch.net/test/read.cgi/tech/1229695062/l50
0994デフォルトの名無しさん2008/12/19(金) 23:06:32
>>992
thx!

やっと進める…
0995デフォルトの名無しさん2008/12/19(金) 23:17:22
ウメ
0996デフォルトの名無しさん2008/12/19(金) 23:31:08
 
0997デフォルトの名無しさん2008/12/20(土) 00:17:02
埋めるか
0998デフォルトの名無しさん2008/12/20(土) 00:32:09
998
0999デフォルトの名無しさん2008/12/20(土) 00:35:40
999なら願いが叶う。
1000デフォルトの名無しさん2008/12/20(土) 00:39:39
1000
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。