VB.NET質問スレ

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
前スレ

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

テンプレは2〜10くらいまでの間にある予定
2デフォルトの名無しさん:2007/09/06(木) 09:26:51
Partナンバー書き忘れてしまった…Part23です。

MSDN
http://msdn2.microsoft.com/ja-jp/library/ms229284.aspx
どぼん!のVB道のトップページとTipsページ
http://dobon.net/vb/
http://dobon.net/vb/dotnet/index.html
Microsoftクイック スタート チュートリアル
http://ja.gotdotnet.com/quickstart/default.aspx
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
3デフォルトの名無しさん:2007/09/06(木) 09:27:21
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/
4デフォルトの名無しさん:2007/09/06(木) 09:27:51
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
5デフォルトの名無しさん:2007/09/06(木) 09:30:57
テンプレ終り。

質問者そっちのけで住人同士の議論のぶつけ合いになることが多々あります。
議論のぶつけ合いは互いの成長に良き糧となりますが、そういった場合は文字通り
別スレッドを立てて、裏で処理してください。
また、このスレにTry-Catch文が書かれていた場合、自分の発言が例外としてCatchされないか、良く考えてから書き込みをして下さい。
6デフォルトの名無しさん:2007/09/06(木) 09:52:48
>>1-5
乙。特に5乙w
7デフォルトの名無しさん:2007/09/06(木) 11:40:57
>>5
gjwww
8デフォルトの名無しさん:2007/09/06(木) 14:17:11
あんだけ騒いで、Usingでいいじゃんの話題にならないのね。
まあ2003で止まってる人かもしれんが。
9デフォルトの名無しさん:2007/09/06(木) 14:29:27
>>8
開放の話ならUsingの話題になっただろうが、ヒートアップしてたのは例外処理の話題だからなw
10デフォルトの名無しさん:2007/09/06(木) 14:30:54
最初は解放の話だったよね。
Finallyで解放するのが普通だとかどうだとか。

ちゅうか、Using使ったらもう戻れません。w
11デフォルトの名無しさん:2007/09/06(木) 14:40:26
非同期例外もとりあえずキャッチしておけばいいとかってあたりは少し怖かった。
いやもちろんキャッチした後、正しくリカバリできるならそれがベストなんだろうけど、
普通はできないでしょ。
12デフォルトの名無しさん:2007/09/06(木) 14:55:29
すいません、質問させていただきます。
.net2003でデータグリッドを使ってファイル操作を行っているんですが、
データグリッド内のTabキーの動きを制限したいんですが、やり方がわかりません。
自分のしたい動きは、Tabを横移動させないで、下にだけ移動させたいんですけど。。。
どなたか教えてください!!
13デフォルトの名無しさん:2007/09/06(木) 14:58:13
RCWはなぜかIDisposableじゃないんだよ。usingは使えない。
ReleaseComObjectを呼ばないとインターフェイスが開放されないと思ってる人が多いが、
ファイナライザでも開放される。
Disposeに対するFinalizeと同じ位置づけで、ある種のフェイルセーフ。
場合にもよるが異常系でのReleaseComObjectはそれほど神経質になる必要はない。
14デフォルトの名無しさん:2007/09/06(木) 15:01:27
つうか、どどねとになってCOM経由でのOFFICE連携は超大変。
丁寧に作る or ラップするクラスを作ってオブジェクト管理しっかりならOKだけどさ。
暗黙のオブジェクトでNGってのはちょっと。

仕事だったら、安定性も考えて市販のライブラリが安い。
15デフォルトの名無しさん:2007/09/06(木) 15:17:34
>>12
KeyDownとかで拾えない?
TabKey押下時、もともとの動きをe.handle=trueでキャンセルして、CurrentCellを現在のCellからRow+1する。
16デフォルトの名無しさん:2007/09/06(木) 18:28:34
>>10
だからそんな話は誰もしてなかったんだよw
かってにそういう話だと思い込んじゃった人が少なくとも一人はいたというだけのこと。

>>13
>ReleaseComObjectを呼ばないとインターフェイスが開放されないと思ってる人が多いが、
>ファイナライザでも開放される。
やっぱりそうだよね

ReleaseComObject読んでおかないとエクセルのプロセスが残る、
とかいう話がまことしやかに言われているが、個人的にはそんな経験は
まったくしたことがないんだよね。

個人的に、この手のことを喧伝してる人はそれ以外のところで
何か妙なことをやっているんだろうなあと思ってる。

あと、こういうことを言う人って何故か「プログラムで作成したエクセルの
プロセスはプログラムで<絶対に>終了しなければならない」という
妙な思い込みにとりつかれていることが多い。
17デフォルトの名無しさん:2007/09/06(木) 18:44:06
いやプロセスは残るだろw
18デフォルトの名無しさん:2007/09/06(木) 18:49:42
>>17
ちょっと説明が舌足らずだったけど、「エクセルのプロセスが残る」という主張を
する人のその言葉の意味は、Application.Quit呼んでエクセルを終了した
はずなのにエクセルのプロセスが残るってことらしいよ。

しかもエクセルを起動したアプリを終了しても残るんだとさ。
19デフォルトの名無しさん:2007/09/06(木) 19:42:39
>>18
プロセスが終了する条件はインターフェイスがすべて開放されてかつ
Workbook.CloseとApplication.Quitの両方が実行されている。
(もちろんWorkbookを開いたり、Addしてない場合はCloseは不要なのだけど)
Quitしてるのに残ってる場合はCloseしてないか見当違いなものをCloseしている。
前スレのソースはそれだった。
20デフォルトの名無しさん:2007/09/06(木) 19:46:10
>>18
JScriptの例だけど、Microsoftの文書で
Application.Quitを呼んでも、参照が残っているとExcelのプロセスは完全に破棄されない。
すぐにExcelのプロセスを終了させるためには参照を破棄するためにガベージコレクション
を強制的に引き起こしてやる必要がある。
と明示的に書かれた記事はある。

ttp://support.microsoft.com/kb/266088/ja

なので、Application.Quitを呼んだだけでは不十分で、その後、速やかに
参照を破棄する、というのは正しいのではないの?

>しかもエクセルを起動したアプリを終了しても残るんだとさ。
これは分からない。
Application.Quit読んでれば問題ないと思うけどね。
21デフォルトの名無しさん:2007/09/06(木) 19:46:37
以下の関数をXPで実行するとIPV4の文字列が返って来るのに
Vistaで実行するとIPV6の値が返ってきてしまいます。
なんとかIPV4のほうのアドレスを取得できないものでしょうか?

Public Function GetLocalIpAddress(Optional ByVal ipNo As Integer = 0) As String
  Dim temp As System.Net.IPAddress() = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName).AddressList
  If temp.Length <= 0 Then
    Return System.Net.Dns.GetHostName & ":IpUnKnown"
  Else
    Return temp(temp.Length - 1).ToString
  End If
End Function
22デフォルトの名無しさん:2007/09/06(木) 20:17:33
>>21
V4, V6あったらV6が優先されるようだからそうなるのかな。
Dns.GetHostAddressesなら両方戻ってくるはず。
23デフォルトの名無しさん:2007/09/06(木) 20:31:44
>>20
>なので、Application.Quitを呼んだだけでは不十分で、その後、速やかに
>参照を破棄する、というのは正しいのではないの?
それはたぶん正しいと思う。
疑問なのはReleaseComObjectが本当に必要かどうか。

エクセルを起動したアプリを終了してもエクセルのプロセスが消えない問題は
VB6の時は確かにあった。

ドトネドでは、たとえばメソッド内で使う一時的なオブジェクトでも必ず変数に
入れて使用後はそれにNothingを入れる、というような面倒なことをしなくても
そういった問題は経験してないなあ。
24デフォルトの名無しさん:2007/09/06(木) 20:38:20
>>22
レスありがとうございます。

どうやらGetHostAddressesを調べながらテストしてみたら
もとの提示したサンプルでもIpAddressのArrayの中の一つにV4形式のアドレスがあるようでした。

これってVistaのV4を切っていなければ必ず入っているものなんでしょうか・・・・
とりあえずIPV4が有効なことを前提に、ループで回して適当な正規表現を取得してみることにします。

25デフォルトの名無しさん:2007/09/06(木) 20:42:52
参照の破棄なんかいらんよ大抵は
その場でガベージコレクションするなら別だが

問題なのはガベージコレクションじゃ実際にいつ解放されるのか分からんて事だ。
26デフォルトの名無しさん:2007/09/06(木) 20:46:13
ファイナライザで解放されるってのもみんな分かってると思うが。
たんにそれがあまり望ましい動きじゃないってだけで
27デフォルトの名無しさん:2007/09/06(木) 20:48:47
>>11
そんなこと誰も言ってなかったぞ?
勘違いしてたやつはいたみたいだが…
28デフォルトの名無しさん:2007/09/06(木) 20:57:50
Try内でリターンしてもFinallyは実行されるという動作を理解してない人もいるということ
29デフォルトの名無しさん:2007/09/06(木) 21:02:01
かといってガベージコレクションを明示的に呼ぶのもあんまりしたくないから
結局まっとうな手段としては漏れなく解放してやるしかない

はっきりいってあまり現実的じゃないから
ガベージコレクションでごまかしたくなる
開発者に徹底するなんてまず無理だもんorz
30デフォルトの名無しさん:2007/09/07(金) 07:54:19

ListView のカラムの移動について教えてください。

ListView で、カラムを摘んで別のカラム位置にD&Dして移動することができましたが、
これで ListView.ColumnReordered イベント が発生しますが、

そこで ColumnReorderedEventArgs.OldDisplayIndex プロパティ や 同NewDisplayIndex プロパティ
を知ってカラムの並び順を記憶する配列などを更新することができ、

それを使って、次回にその並び順に Columns (=ColumnHeaderCollection クラス ) の
メンバーItemを並べ替えることはできるのですが、

それだけですと、データ部の ListViewItem の各カラムはそれに伴って同様に移動しては
くれませんでした。

この場合、このデータ部分のカラムもいっしょに移動する(D&Dで移動するのと同じ効果)
方法はありますでしょうか? よろしくお願いします。
31デフォルトの名無しさん:2007/09/07(金) 08:24:36
>>30
が、が、が、
こういう日本語使う人ってたまにいるね。

君はListViewItemtというものを根本的に勘違いしてないか?
おまけにどうしようもなく知恵がない。
カラム(ヘッダ)の順番が分かっているなら、カラムの順番に対応して
サブアイテムを設定するだけだと思うんだが。
32デフォルトの名無しさん:2007/09/07(金) 08:25:30
>>31
訂正
×ListViewItem
○ListView
33デフォルトの名無しさん:2007/09/07(金) 08:36:40
>>31
>カラム(ヘッダ)の順番が分かっているなら、カラムの順番に対応して
>サブアイテムを設定するだけだと思うんだが。

確かにその通りで、ListViewItem.ListViewSubItemCollection クラス の説明をみますと
そのように行うことが可能なようなのですが、D&Dで一発で実行されていることを考えると
どうも一発系のメソッドかプロパティがあるのでは・・・・・?と思ったのです。

もう一度Helpを探してみてもどうやら見つからないところを見ると、やはりおっしゃるように
ひとつひとつ ListViewItem をForループで回して対応するしかないのかもしれないです。

ものすごく大量の ListViewItem があった場合に時間がかかりそうなのも懸念された
のですが、それしか方法がない場合はしかたないですね、とりあえずこれでやってみる
ことにします。ご指導どうもでした。
34デフォルトの名無しさん:2007/09/07(金) 08:54:17
もう、ぷログラミングなんてやめなよ。まっとうじゃないよ
35デフォルトの名無しさん:2007/09/07(金) 08:57:28
>>34

やっぱりもっといい方法あるでしょうか。それ知りたいのですが、よろしければ
ご指導をよろしく。
36デフォルトの名無しさん:2007/09/07(金) 09:00:23

実際、Explorer ではちゃんと実現されているので、やはり簡単にできるのではとは
思っているのですが、どうも Help が読みこなせていないのかもしれません。

やはり一発系があれば知りたいのですが・・・
37デフォルトの名無しさん:2007/09/07(金) 12:01:23
>>23
>エクセルを起動したアプリを終了してもエクセルのプロセスが消えない問題は 
>VB6の時は確かにあった。 

VB6でのこの問題はClose/Quit操作漏れの他に、
End命令や捕捉されていない例外で終了した場合にCOMオブジェクト破棄がなされないことにある。
この場合COMオブジェクトがアウトプロセスサーバーの場合はそのプロセスが残る。
一方、全フォームがUnloadか閉じるで終了した場合は後処理でオブジェクトの破棄はなされる。

COMへの参照をグローバルやstatic変数に置くとNothingを設定しない限り
終了時まで参照が残るため、Endで終了した場合は後処理が省かれプロセスが残ってしまう。
さらにFormの暗黙のインスタンスの問題がある。Formで暗黙のインスタンスを使った場合、
そのFormのインスタンスはUnload(閉じるを含む)したとしても、プロセスの終了まで破棄されない。
ただしUnload(閉じるを含む) とSet Form1 = Nothingの両方の操作を行った場合は破棄される。
このためFormのフィールドにCOMの参照を置いた場合もグローバルやstatic変数に置くのと
同じ問題が発生する。あとケースとしてはまれだが循環参照があった場合も同様。
38デフォルトの名無しさん:2007/09/07(金) 12:05:42
>>37 続き

VB.NETの場合はEnvironment.Exitで終了しても未補足の例外で異常終了した場合も
オブジェクトの終了処理はなされるので問題はおきにくい。
例外はCLR自体が~C操作やOS側の例外での終了した場合。

Formの暗黙のインスタンスはVB6と似た動きをするので早期に参照を破棄したい場合は
同様の注意が必要になる。
暗黙のインスタンスではForm1のメソッドにアクセスする時に、
Form1が初期状態(Nothing)または既にDispose(Close)された状態であれば
新規にForm1のインスタンスを生成してForm1に設定する。
VB6と違ってUnload(Dispose)後の再利用はしないが、
参照が破棄されるのは次のForm1を新たに操作し始めたタイミングになる。
Dispose後速やかにGCの対象にするためにはSet Form1 = Nothingの操作が必要になる。
39デフォルトの名無しさん:2007/09/07(金) 14:01:37
まあそこまでわかってる人は暗黙のインスタンスなんか使わないよなあ
40デフォルトの名無しさん:2007/09/07(金) 18:51:14
>>37-38
詳しいね。
なるほど勉強になったよありがとう。
41デフォルトの名無しさん:2007/09/08(土) 17:32:17
Inherits System.Windows.Forms.Formにてウィンドウを作成したのですが、
このウィンドウクラスを変更するにはどのような手段を用いればよろしいのでしょうか?

VC++ですとPreCreateWindowをオーバーライドしろ、とあるのですが・・・
4241:2007/09/08(土) 20:26:48
誤:ウィンドウクラス
正:ウィンドウクラス名

失礼しました・・・
43デフォルトの名無しさん:2007/09/08(土) 22:42:58

Loadを実装しれ
private void Form1_Load(object sender, System.EventArgs e){}
4443:2007/09/08(土) 22:49:24
C#だったorz

こっち
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
VBだとイベント明示しないといけないのね
45デフォルトの名無しさん:2007/09/08(土) 23:07:49
>>43-44
誰に向かって何を言ってるの?
46デフォルトの名無しさん:2007/09/09(日) 03:07:08
>>41
CreateParams オーバーライドすれば書き換えられるが、
確か自前で事前に RegisterClass しなけりゃ駄目だった気がする
4746:2007/09/09(日) 05:12:19
つっても内部でサブクラス化されて結局 .NET 特有の修飾名は追加されるみたいだな
48デフォルトの名無しさん:2007/09/09(日) 21:15:24
VB.NETで静的メソッドばかりを集めたクラスを作る場合、
MustInheritを付けてコンストラクタをPrivateにするのが普通ですか?
49デフォルトの名無しさん:2007/09/09(日) 21:16:38
間違えましたNotInheritableです
50デフォルトの名無しさん:2007/09/09(日) 21:50:19
VB2005(VB8)なら Shared Class も使える。
Module にするのも一般的かもしれない。
まあ静的クラス作ることはあんまり無いはずだが。
51デフォルトの名無しさん:2007/09/09(日) 22:29:28
>Shared Class
それは初耳
52デフォルトの名無しさん:2007/09/10(月) 10:42:28
VB6以前スレに間違えて投稿してしまったのでこちらで再度質問です。
VB2005を使っているのですが、
VB6のときにあった、ディストリビューションウィザードがなくなって
セットアップディスクが作成できなくて困ってます。
別のツールかなにかで作るのでしょうか?
お勧めがあったら教えてください。
53デフォルトの名無しさん:2007/09/10(月) 12:38:38
>>52
VS2005STD以上には付いてるよ。
ただフロッピーにはしてくれない。
54デフォルトの名無しさん:2007/09/10(月) 12:39:14
>>52
@itに解説があるだろ。
なんでウダウダいってる間に自分で調べようとしないの?
55デフォルトの名無しさん:2007/09/10(月) 16:58:32
初歩的な質問ですいません

プロジェクト全体にスコープを持つ変数を設定したい場合には
どこにどう書けばいいのでしょうか・・・・。
56デフォルトの名無しさん:2007/09/10(月) 17:04:19
>>55
module
57デフォルトの名無しさん:2007/09/10(月) 17:13:02
つうか、グローバル変数なんて基本的に不要だっぺ。
もし、各フォームで共通の変数とか必要でも、その所有フォームなり所有プロセスってものがあるっぺさ。
どこに書くか知る前に、本当に必要かかんがえろって。

グローバル変数は普通許可制だよな。
プロジェクトリーダに申請書出して審議委員会が決定して使える。
58デフォルトの名無しさん:2007/09/10(月) 17:16:25
>56

ありがとうございました!!!
59デフォルトの名無しさん:2007/09/10(月) 17:20:08
>>57
VBを使わせてること自体がそのなんとか委員会の落ち度だろ。
あるものはありがたく使おうぜ。
60デフォルトの名無しさん:2007/09/10(月) 17:41:21
今VBAの糞コードを移植してる
自責の念に駆られつつ盛大にグローバル変数使ってる
61デフォルトの名無しさん:2007/09/10(月) 17:47:20
>59
VB..netにかぎらないっぺ。
Public で Static なクラス変数作れば、モジュールと同じだっちゅーの。
VBだからとかいってると、はじかくど。
6260:2007/09/10(月) 17:50:11
頭にクラス名が付くだけましだよ
g_とかプリフィックス付けてくれてたらまだ許せるけど
そういうのも一切なくて殴りたくなる
63デフォルトの名無しさん:2007/09/10(月) 17:52:01
モジュールだとモジュール名の修飾なしでグローバルになるね。
64デフォルトの名無しさん:2007/09/10(月) 17:52:16
i とか buf とかがグローバルってのは、よくある屑プログラムだね。
それがWebだったりしたら、もう萌え萌え。
65デフォルトの名無しさん:2007/09/10(月) 17:54:52
それにしても、何できれいなプログラムを組める言語になったのに、
そういう人種はクズで汚れたプログラムを組む努力を怠らないのだろう・・・。

たとえば、グローバル変数を作るのにしたって、ここで聞いたら勉強しないでまたやるだけじゃん。
そのグローバル変数を .net とか Java でどう実現するかって、非常に勉強になるよ。

つうか、その勉強と労力考えたら、普通作らないよね。
シングルトン実装とかいろいろ出てくるからいい勉強なんだが。
66デフォルトの名無しさん:2007/09/10(月) 18:12:11
Javaはstatic importを導入しやがったけどなw
67デフォルトの名無しさん:2007/09/11(火) 17:50:16

Private Structure struct1

Dim st As struct2()

End Structure

Private Structure struct2

Dim a, b, c As String

Dim uniqueID As Integer

End Structure

Private structAry As struct1()


上記のような構造体を使っています。

uniqueIDだけが情報として分かる状態において、そのuniqueIDに対応する a,b,c as String
を取り出したいのですが、どのようにすればよいでしょうか。
環境は、VB2005pro、WinXPproSP2です。

System.Array.Find()を使うのかと思いましたが、Predicateのインスタンシング自体がよく分かりません。

Dim ch As Predicate(Of struct1) = New Predicate(Of struct1)(AddressOf 〜〜〜)

とか書くのでしょうか?
宜しくお願いします
68デフォルトの名無しさん:2007/09/11(火) 18:03:54
>>67
struct1にstract2の配列を持ってるのに、
さらにstract1を配列にしてるのはどして?
69デフォルトの名無しさん:2007/09/11(火) 18:10:31
>>68

Private Structure struct1

Dim structID,Length,etc As Integer

Dim st As struct2()

End Structure

Private Structure struct2

Dim a, b, c As String

Dim uniqueID As Integer

End Structure

Private structAry As struct1()



失礼しました。必要ないと思って書きませんでしたが、各構造体には他にもいろいろなメンバがあります。
必要があって、構造体配列の中に構造体配列が入っているような状況です。
70デフォルトの名無しさん:2007/09/11(火) 18:31:48
普通にDictionary使えばいいじゃん。
71デフォルトの名無しさん:2007/09/11(火) 19:06:26
>>69 
こういう構造になってるわけだろ。検索ロジックも2重に使うわけかな?
stractAry - struct1 - struct2
                         + struct2
                         + struct2
             + struct1 - struct2
                         + struct2
             + struct1 - struct2


>>70 に同意。
Array.Find/Predicateは匿名デリゲートが使えないとありがたみがないからね。
いまのVBだと意味なし。
72デフォルトの名無しさん:2007/09/11(火) 19:16:04
配列が二重なのをやめて単純な構造にした場合。
Structure struct2 
  Dim a, b, c As String 
  Dim uniqueID As Integer 
End Structure 
Module Program
 Private structAry As struct2()
 Sub Main
    ReDim structAry(3)
    structAry(0).uniqueID = 1
    structAry(0).a = "a1"
    : 略
    structAry(2).c = "c3"
    Dim rslt As struct2 = Array.Find(structAry, AddressOf MyProduct)
    Console.WriteLine("{0} : {1}, {2}, {3}", rslt.uniqueID, rslt.a, rslt.b, rslt.c)
 End Sub
 Function MyProduct(ByVal st2 As struct2) As Boolean
   Return st2.uniqueID = 2
 End Function
End Module
73デフォルトの名無しさん:2007/09/12(水) 00:29:23
ttp://www.atmarkit.co.jp/fdotnet/vblab/vb2005m_11/vb2005m_11_01.html
すばらしい。
こいつの記事は全部読まないほうがいい。
7467:2007/09/12(水) 10:27:07
>>70
このクラスの存在を知りませんでした。
とても便利そうなのでこれを使ってみようと思います。

>>72
配列が二重になっているせいで、Array.Find()を使うのが難しいようですね。
しかしながら、おかげさまで単純配列におけるArray.Find()の使い方が分かりました。
ブール値を返す関数を作って、それに対してAddressOfを指定すれば良いのですね。
勉強になりました、ありがとうございます。
75デフォルトの名無しさん:2007/09/14(金) 15:07:14

コード・エディタ上で右クリックして出てくるコンテキスト・メニューで、

「すべての参照の検索」 がありますが、そのとき、検索する範囲を
「現在のドキュメント」「現在のプロジェクト」などと
自分で限定する方法があれば知りたく。よろしく。
76デフォルトの名無しさん:2007/09/14(金) 20:20:18
>>75
ctrl+F
ctrl+shift+F
77デフォルトの名無しさん:2007/09/15(土) 05:45:46
ちょいと質問なのですが、Graphics.DrawLineメソッドが指定した座標を描画してくれない現象ってあります?
(0,0)-(15,0)を指定しても描画されず、
(0,1)-(15,1)だと実際には(0,0)-(14,0)を描画。

SetPixelや、DrawRectangleとか他のメソッドは想定した座標を描画してくれるのですが・・・
7877:2007/09/15(土) 06:41:11
自己解決。

PixelOffsetModeプロパティをHighQualityにしてたせいでした。


79デフォルトの名無しさん:2007/09/15(土) 12:56:46
>>77
それたぶん解決してないよ。
根本的なことが分かってないと思うな。

グラフィックデバイスの点はモザイク画のタイルみたいなものであって
数学的な「点」とは違う。

たぶん当たり前のことに聞こえると思うけど、
これをとことん理解してないとそういう不可解な現象(実際は本人の勘違い)に
いろいろ出くわすことになるよ。

Graphicsのメソッドで指定する座標っていうのは論理座標(数学の座標に近いもの)
であって、大きさを持つタイルの位置ではない。
80デフォルトの名無しさん:2007/09/15(土) 18:50:03
グローバル変数・関数が大好きだからVB選んだのだけど正解だった。
81デフォルトの名無しさん:2007/09/15(土) 19:32:14
グローバル変数・関数が大嫌いだからVB使っててもC#のつもりで書いてる
82デフォルトの名無しさん:2007/09/15(土) 23:13:54
namespaceがあるらグローバル変数なんていわれても(ry
83デフォルトの名無しさん:2007/09/15(土) 23:21:54
日本語…
84デフォルトの名無しさん:2007/09/16(日) 06:23:45
質問です
ビジネスロジックとFormをオブジェクトバインディングで紐付けた場合
Validationをビジネスロジックに記述します
このとき、データ更新のときは、Validationにより適切に処理されますが
データ作成(登録)のときは初期値を設定した時点で
Validationエラーとなります(必須項目など)
回避する方法は無いでしょうか?
85デフォルトの名無しさん:2007/09/19(水) 19:19:17
お世話になっております
ソケット通信を行うプログラム(ホスト側)を作成しています
ぐぐったサンプルを参考にし、受信データが0文字の際、接続が切れたとみなし
再接続を行う処理を実装したいのですが
実際に接続が切れた状態でデータを読み出そうとすると、IOExceptionが発生し、処理を行うスレッドが終了しています。
文字列で接続を判断するのでなく、ポーリングで接続を判断し、再接続処理を行いたいのです。
8685:2007/09/19(水) 19:22:45
書いてみたコード
''クライアントからの接続を受け付ける
Dim client As TcpClient = server(intMachineNo).AcceptTcpClient()
Dim stream As NetworkStream = client.GetStream()

While True
Dim ReadData(100) As Byte
Dim SendData(2) As Byte
Dim len As Integer
Dim strQR As String

''受信データの読み出し
len = stream.Read(ReadData, 0, ReadData.Length) '' ここで切断時エラー
strQR = System.Text.Encoding.ASCII.GetString(ReadData, 0, len)

''受信データありの場合
If len > 0 Then

''クライアントに応答し処理を実行

''len = 0 は、接続が切れたとみなす
Else

''クライアント受入モジュールのリフレッシュ
client = server(intMachineNo).AcceptTcpClient()
stream = client.GetStream()

End If
End While
87デフォルトの名無しさん:2007/09/19(水) 19:50:18
Imports System
Imports System.IO
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim n As Integer
For n = 0 To 1000000
Dim fs1 As FileStream = New FileStream("test.jpg", FileMode.Open, FileAccess.Read)
Next
End Sub
End Class

上記コードを実行させても、メモリの使用量が増えません。
GCが働いてるからでしょうか。

あと、読み取り専用ならば、上記のようにストリームを閉じる必要ないでしょうか。
88デフォルトの名無しさん:2007/09/19(水) 21:05:33
ないわけがない。
89デフォルトの名無しさん:2007/09/20(木) 00:10:11
>>85
Try...Catch
9085:2007/09/20(木) 05:23:47
あいや、Try Catchの中に書いてある
長くなるから省いてあります
91デフォルトの名無しさん:2007/09/20(木) 10:14:08
>>90
どの範囲でTry Catchしてるのよ?
閉じたら0を返すの動作が必要なら、SocketクラスのReceiveを直に使おう。
9290:2007/09/20(木) 15:17:43
このコードが範囲
Receiveでも同じで0は返ってきませんでした
93デフォルトの名無しさん:2007/09/20(木) 15:24:53
ばかばかしいからprogramなんかやめろって。
そんなの無駄な努力だよ。ほとんどのばあい。
94デフォルトの名無しさん:2007/09/20(木) 15:27:35
Socketが閉じたら IOExceptionが起きるのがNetworkStreamの仕様なんだろ?
だったらこれでいいじゃん。
Try
 len = stream.Read(ReadData, 0, ReadData.Length) '' ここで切断時エラー 
Catch Ex As IOException
 len = 0
End Try
95デフォルトの名無しさん:2007/09/20(木) 18:00:11
VS2005、XPsp2、インストーラー作成時の質問です。

インストール時に、インストールPCのレジストリ内の値(ディレクトリパスを格納している)を読み込んで、
そのディレクトリに対してdllをインストールするようにしたいのですが、どうしたらよいでしょうか。

やりたいことは、Setup>ファイルシステム>カスタムフォルダ

このカスタムフォルダのDefaultLocationに、インストール時にPCから取得したレジストリの値を
入れ込みたいのです。

よろしくおねがいします。

96デフォルトの名無しさん:2007/09/20(木) 18:01:10
>>92
通信の終端判定はNetworkStreamでもReceiveでも受信サイズ0で可能。
IOExceptionはMSDNにあるとおりソケットを閉じた後に操作した場合に発生する。
エスパーするにコードを省略してる部分でソケットを閉じてるのだと思うよ。

''受信データありの場合 
If len > 0 Then 
''クライアントに応答し処理を実行 
 client.Close()  '' ここでこういうことをしてないか?
97デフォルトの名無しさん:2007/09/20(木) 20:28:01
>>95
Registryクラス
98デフォルトの名無しさん:2007/09/21(金) 19:11:44
>>92
接続が切れててclientにOKメッセージを返してたのが問題だったようです
ありがとうありがとう
スタックトレースしてもその位置でエラーは発生してない不思議。
99デフォルトの名無しさん:2007/09/21(金) 22:44:49
すんません

Dim myDirectries as Object
myDirectories = My.Computer.FileSystem.GetDirectories(Me.TextBox1.Text)

のようなコードがあったとしてmyDirectriesはObjectで配列ですよね
これをObjectじゃなくてStringの1次配列にとりたい場合はどんな方法を使えば良いでしょう?
For〜Nextで回す方法以外であれば教えてください
100デフォルトの名無しさん:2007/09/21(金) 22:51:42
ObjectじゃなくてReadOnlyCollection(Of String)で受けろ
CopyToでいける
101デフォルトの名無しさん:2007/09/21(金) 23:04:46
というか、なんでわざわざMyなんか使うのよ。
特別便利ならともかく、標準のライブラリの機能になにかプラスされてるとも
思えないんだけどそれ。
102デフォルトの名無しさん:2007/09/21(金) 23:07:47
Directory.GetDirectoriesならはじめからString配列で取れるな
103デフォルトの名無しさん:2007/09/21(金) 23:49:02
>>100
こんなクラスもあるんですねぇ。勉強になりました。

>>101>>102
特に便利とか優れてるからとか理由はないんですが
せっかくの新しいオブジェクトだしちょっとだけ打ちやすい読みやすい感じがして
System.IOと両方使ってます。

ありがとうございました。
10499=103:2007/09/21(金) 23:52:43
あぁ、Settingは重宝してますね
105デフォルトの名無しさん:2007/09/21(金) 23:57:39
え〜雪隠具なんて使う奴いたのかよw
あれ全然使えねえと思うんだけど。
全ユーザー共通の設定は残せないし、アンインストールしてもゴミ残すし。
なにより融通がきかない。

普通に自分でシリアル化してレジストリなり実行ファイルのディレクトリなりに
保存する方が融通が利くし、手間もほとんど変わらないだろう。
106デフォルトの名無しさん:2007/09/22(土) 00:05:10
実行ファイルのディレクトリw
107デフォルトの名無しさん:2007/09/22(土) 00:16:04
手間はぜんぜん違うだろうw
108デフォルトの名無しさん:2007/09/22(土) 00:33:00
>>107
微妙な差だとは思うが、個人的には自分でシリアル化して保存した方がむしろ手間は少ないと思う。
すくなくとも精神的にはるかに楽だ。

シリアル化なんて自分でライブラリ化(といってもシリアライズとデシリアライスの静的メソッド
のペアに過ぎないが)しておけばメソッド一発呼ぶだけだぞ。
109デフォルトの名無しさん:2007/09/22(土) 01:24:31
自作だとアンインストールでごみが残らないの?
110デフォルトの名無しさん:2007/09/22(土) 01:28:41
もう仕様とか好み問題だと思う
111デフォルトの名無しさん:2007/09/22(土) 11:43:34
>>105なんでも極端なこと言いたがる馬鹿って多いよね。
112デフォルトの名無しさん:2007/09/22(土) 19:16:38
以前にC#スレで聞いたら、VBのほうがC#より少ないコードでプログラミングできると言っていたのだけど、これって本当?
113デフォルトの名無しさん:2007/09/22(土) 19:21:53
ものによる
Officeオートメーションなら確実にVBの方が少ないな
114デフォルトの名無しさん:2007/09/22(土) 19:25:13
全く同じ動作で同じ意味のコードを書くなら
C#の方が構文が簡潔でインテリセンスも親切で速く書けるよ(Excel操作なんかは例外だけど)
使う上で同じ動作をしているように見えるコードならVBの方が短くなることもあるよ
短いことが必ずしもいいこととは限らないよ
115デフォルトの名無しさん:2007/09/22(土) 19:34:33
短ければスクロールする必要がないから便利。
116デフォルトの名無しさん:2007/09/22(土) 22:36:53
.NET 2005についての質問です。
TrackBarを使ってシステム音量を操作するプログラムを製作しているのですが、
音量の取得や設定の仕方がよくわかりません。
詳しい方ご教授願います。
117デフォルトの名無しさん:2007/09/23(日) 17:19:21
VB2005でのTCP/IP通信を行いたいのですが、

サーバー側

Dim host As String = "localhost"
Dim port As Integer = 2001
Dim ipAdd As System.Net.IPAddress = System.Net.Dns.Resolve(host).AddressList(0)
Dim listener As New System.Net.Sockets.TcpListener(ipAdd, port)

listener.Start()

クライアント側
Dim host As String = "localhost" 'サーバーのホスト名
Dim port As Integer = 2001 'サーバーのポート番号

Dim hostadd As System.Net.IPAddress = System.Net.Dns.Resolve(host).AddressList(0)
Dim tcp As New System.Net.Sockets.TcpClient(host, port) 'TcpClientを作成し、サーバーと接続する

1台のマシンでのTCP/IP通信はこれで上手くいくのですが、
クライアント側のサーバー名を  host = "192.168.1.13"とローカルマシンのIPアドレスにしたら
うまくいきません。なにか間違ってるのでしょうか?
実際は、このアドレスを、グローバルアドレスに設定して、遠距離で通信したいと考えています。
118デフォルトの名無しさん:2007/09/23(日) 17:21:48
両方IPにしてみた?
119デフォルトの名無しさん:2007/09/23(日) 17:26:45
>>117
サーバー側がLoopbackアダプタでリスニングしてるせいだろう。
全アダプタでリスニングする。
Dim ipAdd As System.Net.IPAddress = System.Net.IPAddress.Any 
120デフォルトの名無しさん:2007/09/23(日) 17:33:33
>119さんの方法でうまくいきました。
ありがとうございます。

次は、ポートを開放してから、このサーバーを起動したまま、場所を移して
クライアントをグローバルIPにして試してみます。
121デフォルトの名無しさん:2007/09/23(日) 22:37:22
スレッド内でTimer動かしても動いてくれないのは仕様でしょうか?
122デフォルトの名無しさん:2007/09/23(日) 22:40:33
どうやってスレッド外でコードを動かすのか教えてくれ
123デフォルトの名無しさん:2007/09/23(日) 23:33:22
動くし
そんな仕様ありえないし
Timerってもいろいろあるし
今日は雨だし
124デフォルトの名無しさん:2007/09/23(日) 23:39:53
>>121
Timerってなに?(いや実際自分で作れるし)
125デフォルトの名無しさん:2007/09/24(月) 01:22:56
むしろ
ベつスレッド内からタイマーコントロールの開始・停止を行うんじゃないかと予想してみる
126デフォルトの名無しさん:2007/09/24(月) 02:00:31
>>72
質問した人と別人なんですが、このとき
Return?st2.uniqueID?=?2
の2を引数で渡すにはどう書くんでしょうか。
それともそういう使い方はしないのでしょうか。
127デフォルトの名無しさん:2007/09/24(月) 02:13:22
>>126
意味不明なんだが・・・
128デフォルトの名無しさん:2007/09/24(月) 02:41:23
>>126
C#ではこうかける。
int findID = 2;
struct2 rslt = Array.Find(structAry,
   delegate(struct2 st2){ return st2.uniqueID == findID; }); 
C#3.0ではさらにラムダ式ですっきり。
int findID = 2;
struct2 rslt = Array.Find(structAry, st2 => st2.uniqueID == targetID);

VB.NETではfindIDをクラスのメンバー変数に持つしかない。>>71
>Array.Find/Predicateは匿名デリゲートが使えないとありがたみがないからね。 
と言ってるのはこのためだろう。
129デフォルトの名無しさん:2007/09/24(月) 09:21:38
C#3.0と同じタイミングでVBでもラムダ式が使えるようになるさ
XMLリテラルキモス
130デフォルトの名無しさん:2007/09/24(月) 15:03:32
VBにどういう形で匿名メソッドやラムダ式を導入するか情報がなかなか出てきませんね。
VSのBeta2では今のところまだのようで、
LINQ文自体はC#のより拡張しててラムダ式なしで書けるようにしているようです。
文法的にタイトそうなのでどういう形でサポートするか興味があります。

こんな関数内関数でクロージャをサポートするんじゃないかと予想していますがどうなんでしょうね。
Dim k As Integer = 123
Function MyProduct(ByVal st2 As struct2) As Boolean 
  Return st2.uniqueID = k
End Function 
Dim rslt As struct2 = Array.Find(structAry, AddressOf MyProduct)
131デフォルトの名無しさん:2007/09/24(月) 15:55:39
匿名メソッドやラムダ式 を使うタイミングってのが今一歩よくわかんない
まぁ、書籍で読んで「こんなことできますよ」くらいしか知らないからで
実際にやってみたら何かいい使い道が浮かぶのかもしれないが
132デフォルトの名無しさん:2007/09/24(月) 15:58:47
もう破綻してるんだね言語として
また大改造するのかな
133デフォルトの名無しさん:2007/09/24(月) 16:30:21
DEF FNが復活したらBASICのOLDファンにはうれしいな
134デフォルトの名無しさん:2007/09/24(月) 16:38:02
そもそも特殊な言語使用など使う事はまずない。
135デフォルトの名無しさん:2007/09/24(月) 16:49:12
Dim rslt As struct2 = Array.Find(structAry, AddressO Function MyProduct(ByVal st2 As struct2) As Boolean 
  Return st2.uniqueID = k
End Function 
136デフォルトの名無しさん:2007/09/24(月) 16:50:35
じゃなくて

Dim rslt As struct2 = Array.Find(structAry, AddressOf Function(ByVal st2 As struct2) As Boolean 
  Return st2.uniqueID = k
End Function 
137デフォルトの名無しさん:2007/09/24(月) 17:39:52
>>130
>VSのBeta2では今のところまだのようで、

普通に実装されてるけど < VBの匿名メソッドとラムダ式
ttp://msdn.microsoft.com/msdnmag/issues/07/09/BasicInstincts/default.aspx?loc=jp
138デフォルトの名無しさん:2007/09/24(月) 17:56:17
匿名メソッドはどうなんの?
ってかAddressOfもないだけかな?

おう、3項演算子も導入されるのね…
139デフォルトの名無しさん:2007/09/24(月) 18:35:47
おやB2からサポートされてたのか。
結果の型を推定する、遅延バインディングあたりは面白そうだ。
ステートメント本体を含むラムダとか匿名メソッドはまだっぽいけど?
140デフォルトの名無しさん:2007/09/24(月) 18:48:55
>>139
beta2に間に合わなかった機能は多分無理なんじゃないかな
というかC#と同じ機能を持たせるみたいな公約とかあったっけ?
141デフォルトの名無しさん :2007/09/24(月) 23:05:52
今、C#で作成したDLLのメソッドをVBのScriptからDLLのクラスを
生成しようとしているのですが、以下のエラーが出てしまいます。
======================================================
コンパイラ エラー メッセージ: BC30188: 宣言が必要です。

行 8: t_class = New CSTEST.MyClass

ソース ファイル: C:\test\test.aspx 行: 8
=======================================================
DLLの配値に関して特別な事をしなければいけないのでしょうか。


環境はIIS 5.1をWindowsXP SP2上で動作
test.aspxをC:\Inetpub\wwwroot\test
CSTEST.dllをC:\Inetpub\wwwroot\test\bin
にいれています。

test.aspxソース
<%@ PAGE LANGUAGE="VB" %>
<%@ Import namespace="CSTEST" %>
<Script runat="server">

Dim val As Integer = 111
Dim t_class As CSTEST.MyClass
Dim valrtn As Integer
t_class = New CSTEST.MyClass
t_class.setValue(val)
valrtn = t_class.getValue()
</Script>
<html><head></head>
<body>value = <%= valrtn %></body></html>
142デフォルトの名無しさん:2007/09/25(火) 02:34:36
VS2003でMySQL5.1を使っています
MySqlDataReaderを使ってデータを取得していますが、データの数を取得する方法がわかりません
Public Dr As MySqlDataReader
(略)
While (Dr.Read())
i = i + 1
End While
現在こんな感じで取得する方法しか思いつきませんが、なにかプロパティとかあるのでしょうか?
143デフォルトの名無しさん:2007/09/25(火) 02:40:29
countとかないの?
144デフォルトの名無しさん:2007/09/25(火) 02:43:25
142で言うDr.countというのは見当たらないのです
今までは特に問題なかったのですが、Whileの前にレコード数を取得する必要が出てきて困ってます
145デフォルトの名無しさん:2007/09/25(火) 03:39:21
>>142
IDataReaderは消火ホース型だから読み終わらないと件数は確定しない。
事前に件数が必要というのは固定の配列に格納したいのだろうけど、
可変のコレクションにつっこむのをすすめる。
select count(*) のクエリーを先に発行することで件数を求めることも出来るが、
当然実際にレコードを読み取るときには件数が変動している可能性はある。
146デフォルトの名無しさん:2007/09/25(火) 03:43:10
>>141
Error ID: BC30188
このエラーを解決するには
非宣言ステートメントをプロシージャの本体に移動します。

147142:2007/09/25(火) 03:44:39
できないのですか・・・
無理やりやるしかないですね
フィールドのカウントはできるのにレコードのカウントが出来ないというのも困ったちゃんだ
148デフォルトの名無しさん:2007/09/25(火) 08:21:02
あたりまえだろそれ…
149デフォルトの名無しさん:2007/09/25(火) 19:58:18
>>128
なるほどー。
ありがとう、よくわかりました。
150デフォルトの名無しさん:2007/09/25(火) 20:28:58
VISUAL BASIC
151デフォルトの名無しさん:2007/09/26(水) 07:12:19
VBいらね C#だな
152デフォルトの名無しさん:2007/09/26(水) 07:25:05
まあ同じことが,記述量がほぼ等しくて尚且つVB以上のこともできるからな
否定はしないが工程もしない
153デフォルトの名無しさん:2007/09/26(水) 14:37:04
質問です、教えてください。

VS2005の日本語版で開発したアプリケーションは、表示用の文字列をすべて英語にしたとして、
それをそのままビルドして配布したら、.NET Framework がインストールされている英語圏の
WindowsOSでも(Framework の Version が一致するものがインストールされてさえいれば)、
日本語圏と同様に動作すると考えていいでしょうか?
154デフォルトの名無しさん:2007/09/26(水) 14:41:21
うん
155デフォルトの名無しさん:2007/09/26(水) 14:45:49
>>154
あーそうだったんですか、ありがとうございました!!
156デフォルトの名無しさん:2007/09/26(水) 15:06:12
言語別にリソースのサテライトアセンブリ作れ
157デフォルトの名無しさん:2007/09/26(水) 15:44:11
VB2005でちょっとしたソフトを頼まれて開発しているのですが、
Text1に入力した数字を使って、Text2のフォントサイズをリアルタイムで
変更することはできないのでしょうか?
Text2.Font.Size=Text1.Text では、ReadOnlyなのでダメとエラーが出るため、
困っています。
158デフォルトの名無しさん:2007/09/26(水) 16:09:05
その都度フォントオブジェクトを作って代入すればできるだろうけどさすがにそれはやめたほうがいいよ
159デフォルトの名無しさん:2007/09/26(水) 16:09:16
・Fontのコンストラクタ
・float型とstring型
・リアルタイムというならTextChangedイベント
160デフォルトの名無しさん:2007/09/26(水) 21:40:48
notifyiconから左クリックでもコンテキストメニュー出すにはどうすればいいでしょう
161デフォルトの名無しさん:2007/09/26(水) 22:06:30
しかしなぜDataTableに取り込まないんだろうな
そこまで大きなデータなんだろうか…・
162デフォルトの名無しさん:2007/09/26(水) 22:07:17
>>160
コンテキストメニューをShowしてやればいいんじゃね?
163デフォルトの名無しさん:2007/09/26(水) 23:17:32
DoWorkイベントに記述したコードから他のメソッドを呼び出したら、
呼び出したメソッドはバックグラウンドで実行されないんでしょうか?
164デフォルトの名無しさん:2007/09/26(水) 23:25:16
BackgroundWorker の名前ぐらい出せ
あとスレッドってもんを勉強して来い
165163:2007/09/27(木) 00:26:25
ありがとうございます。すいません、省略しすぎました。
もうひとつお聞きしたいのですが、本来BackgroundWorkerの
DoWorkイベントに記述するコードが長すぎて一部を別のイベントかメソッドに
分割したいのですが、DoWorkイベントに引数を渡すことは可能でしょうか?

166デフォルトの名無しさん:2007/09/27(木) 00:29:42
>>165
えーっと、戻り値を返すって意味?
167デフォルトの名無しさん:2007/09/27(木) 00:45:03
>>166
戻り値?でしょうか?
メソッド作ると値渡しか参照渡しで別のメソッドから引数を渡せますよね
同じような感じでDoWorkイベントに引数を渡す方法がないかな、と思いまして
説明下手ですいません
168↑163:2007/09/27(木) 00:47:36
名前入れ忘れました
169デフォルトの名無しさん:2007/09/27(木) 00:49:02
DoWorkから呼び出されるメソッドのはずがなぜかDoWorkを呼び出す話になる不思議
170163:2007/09/27(木) 01:08:20
>>169
一応お断りしましたが、最初の質問と2番目の質問は関連性はありますが別件です
紛らわしくてすみません
171デフォルトの名無しさん:2007/09/27(木) 01:14:04
つうDoWorkイベントの引数くらい自分で調べてみろや
172デフォルトの名無しさん:2007/09/27(木) 01:15:54
は?
DoWorkに書く内容が長すぎて分けたいんだろ?
つまり処理の一部を別メソッドに書いて、それをDoWorkから呼び出すんだろ?

分割したいのですが と DoWorkイベントに引数を が別の文章だとか言わないよな
173163:2007/09/27(木) 01:20:45
>>172
まことにおっしゃるとおりです
というかおっしゃるとおりでなかったのでおっしゃるとおりにします
脳みそ沸いててごめんなさい
ありがとうございました
174デフォルトの名無しさん:2007/09/27(木) 01:22:04
もうバックグラウンド処理しないほうがいいよ
おとなしくタイマーコントロールでも使ってれば?

どうせフォーム終了させるときも同期とらずに終わらせそうだし
175デフォルトの名無しさん:2007/09/27(木) 01:48:32
>>173
残暑にやられたか。
176デフォルトの名無しさん:2007/09/27(木) 01:58:23
おれもしないほうがいいと思うわ。
はっきり言ってマジで。
177163:2007/09/27(木) 02:23:49
>>174
処理を途中で中止することができるようにするのが目的ですが
タイマーコントロールでもできるでしょうか?
マルチスレッドかApplication.DoEvents以外で実現できる方法があれば
お願いします

>>175
お慈悲に感謝
178デフォルトの名無しさん:2007/09/27(木) 02:37:22
1.されます
2.可能です
179デフォルトの名無しさん:2007/09/27(木) 03:20:52
>>162
その時にコントロールと位置を指定しろって言われるのだけど、コントロールって?
notifyicon入れてもだめだったし…
180デフォルトの名無しさん:2007/09/27(木) 03:32:20
>>179
左クリックでWM_CONTEXTMENUでも自分に投げてやればいいんじゃね?
181デフォルトの名無しさん:2007/09/27(木) 07:04:13
基本的な質問で申し訳ないですが
複数の変数をまるごとファイルに入出力する、セーブ&ロード機能は
どのように書けばいいでしょうか?
182181:2007/09/27(木) 07:20:04
失礼;
XMLエンコードシリアルで解決しました;
183デフォルトの名無しさん:2007/09/27(木) 10:58:49
テキストファイルを書き換えたり、中身を削除するプログラムをVB 2005で作成しています。
iniファイルの中にアクセス先のファイルパスを書き込んであり、ファイルパスを読み込んでからファイルにアクセスするようになっています。

iniファイルからファイルパスを読み込んだまではよかったのですが、変換先のテキストファイルを読み込むときにエラーが発生します。

Dim path As String
path = getIni(iniファイルのパス)
Dim sr As New System.IO.StreamReader(path, System.Text.Encoding.Default)
ここでSystem.ArgumentExceptionが発生します。

読み込み先のパスを”でくくっていないのが悪いのかと思い、
path = """" + getIni(iniファイルのパス) + """"
と、書き換えてみたのですが、イミディエイトウィンドウでは
""変換先テキストファイルのパス
と、表示されます。
iniファイルのパスは
"iniファイルのパス"
と、ダブルクォーテーションでくくられているのでその辺がまずいのかとあたりをつけてみたのですが、これ以上わかりませんでした。

変換先のファイルにアクセスするにはどのようにすればいいのでしょうか?
184デフォルトの名無しさん:2007/09/27(木) 12:03:06
getIniの戻り値に無効な文字がふくまれてるんじゃね?
\0とか
185183:2007/09/27(木) 17:04:52
解決しました

GetPrivateProfileStringAの戻り値をStringで受けていましたが、System.Text.StringBuilderで受けるようにしたらきちんとパスを取得できました。
186デフォルトの名無しさん:2007/09/27(木) 17:39:56
VB2005をインストールして初めて使ったのだけどびっくり!
メニューバーコントロールとかが青になっているじゃないの。
これが売りなのかな
187デフォルトの名無しさん:2007/09/27(木) 18:32:28
むしろプログラマでルナを有効にしてる奴がいることにびっくりだよ。
あんな曼荼羅みたいな原色のUIでよく作業する気になるねw
188デフォルトの名無しさん:2007/09/27(木) 18:38:12
プログラマでってw
どうみても個人の好みです。本当にあr(ry
189デフォルトの名無しさん:2007/09/27(木) 18:39:35
クラシックか、青くならないVisualStyleにしてると
新しいメニューバーは綺麗に見えるね
190デフォルトの名無しさん:2007/09/27(木) 18:45:58
極端な意見をさも当たり前のように言う人が多いね
191デフォルトの名無しさん:2007/09/27(木) 18:51:09
使う人や標準の環境に合わせることも多いだろ。
192デフォルトの名無しさん:2007/09/27(木) 18:53:36
いや、まあ確かに俺は世間が広い方ではないのは確かだが、
それにしても日常的にルナ使ってるプログラマって本当見たことないよ。

三流のなんちゃってPGみたいな人は例外として。
193デフォルトの名無しさん:2007/09/27(木) 19:01:39
>>192
自分が三流でないことに気付いてない時点でおわっt
194デフォルトの名無しさん:2007/09/27(木) 19:12:13
おれはLUNAにしてるお
195デフォルトの名無しさん:2007/09/27(木) 19:25:33
LUNA SEA
196デフォルトの名無しさん:2007/09/27(木) 19:30:47
>>195
イヴにライヴがあるらしいですね、らっしゃい
197デフォルトの名無しさん:2007/09/27(木) 19:48:15
>>192だからなんなんだ?
198デフォルトの名無しさん:2007/09/27(木) 19:51:37
>>197
なんでも無いわッッ!!
199デフォルトの名無しさん:2007/09/27(木) 20:07:27
ルナシー行きたいな。
昔好きだった。
200デフォルトの名無しさん:2007/09/27(木) 20:31:15
ToolStripRendererを継承してRendererを自前で用意すればどんなメニューでも
201デフォルトの名無しさん:2007/09/29(土) 05:16:42
動画ファイルをデータベースを自作しようとしています
その中のサブ機能で、動画ファイルから適当な時間で画像を抜き出して保存する
(サムネイル作成みたいなイメージ)
という事をやりたいのですが、VB.netではこういう時に一般的にどういう手段が使われるのでしょうか?

aviファイルだとVFWとかいうwin32APIを使えば色々いじれるらしいのですが、
wmvファイルからだったりmpg2ファイルからだったりrmファイルからだったり
汎用的に対応できるようにする為の定番みたいなのはあるんでしょうか?

202デフォルトの名無しさん:2007/09/29(土) 06:03:51
ListBoxで選択した複数項目をボタンで上下に移動できるようにしたいのですが
方法が思い浮かびません。
選択項目が1つの時はSelectedItemを一度削除して上または下のインデックスに
挿入してました。
何か良い方法があればお願いします。
203デフォルトの名無しさん:2007/09/29(土) 09:43:07
>>201
DirectShowかな。
204デフォルトの名無しさん:2007/09/29(土) 11:23:35
NotifyIconから左クリックでコンテキストメニュー、出すのは出せたんだが
今度は閉じることが出来ない
メニューアイテムクリックすると閉じるが、メニュー以外をクリックして閉じることが出来ない
仕方ないんでダミーアイテム入れてるけどみっともないし…
どうすりゃいいんでしょ
205デフォルトの名無しさん:2007/09/29(土) 14:29:22
F8連打キー作りたいんですが
F8を押したらどうなるってコードは書けるけど
F8を押すってコードは書けないんでしょうか?
206デフォルトの名無しさん:2007/09/29(土) 15:10:51
保存しておいたプロジェクトを開こうとしたら、
関連データソースがありません とでてしまいました。
開く方法はありませんでしょうか?
207デフォルトの名無しさん:2007/09/29(土) 16:20:22
>>205
timerかなんかでF8を押された時のメソッドを呼べばいいんじゃね?
208デフォルトの名無しさん:2007/09/29(土) 16:28:13
>>202
1つの時と同じじゃね?
どこからどこまで選択されているか判断するプロパティくらいあるんじゃね
209デフォルトの名無しさん:2007/09/29(土) 17:01:08
>>206
普通に考えて、存在しないものはどうしようもないのでは・・
参照ミスでデータソースがどこにあるか分っている場合は
プロジェクトファイル自体がさほど大きくはないので
XMLのように直接編集する手があります
210デフォルトの名無しさん:2007/09/29(土) 17:03:49
211210:2007/09/29(土) 17:15:53
初心者かな
ちょっと追記
SendKeysはVB6以前からある、キー押し発動機能
リアルなシミュレートがしたい場合は普通のモードを使うが
他ウィンドウ等に対して、遠隔操作や情報伝達等、
何かしら期待する動作がある場合、
確実に動作させるのがWaitモードでこちらを利用することが多い
特定の予約文字列を直接引数に送れば、後はSendKeys側で勝手に解釈してくれる

概要はこんなとこ
MSDNも見てください
212209:2007/09/29(土) 17:32:13
>>206
まとめるとエラーのあるプロジェクトを強引に開く方法は2つ
1.プロジェクトファイルの中身をメモ帳で変更(データソース部を削除等)
2.新しくプロジェクトを作って、他の.vbファイルを手動で全部追加

お試しください
213デフォルトの名無しさん:2007/09/29(土) 17:37:26
VB6使って以来最近になってVB2005使ったんだけど、
普通の関数を作成しようと思ってフォームのモジュールに書いたのだけど、
VB.NETからは標準モジュールにしか作成できなくなったのね・・・
214デフォルトの名無しさん:2007/09/29(土) 17:44:08
何を言ってんだ?
215デフォルトの名無しさん:2007/09/29(土) 17:59:59
>>213
???
216デフォルトの名無しさん:2007/09/29(土) 20:12:20
化石VB6脳ですね。
入院加療の必要があります。
217デフォルトの名無しさん:2007/09/29(土) 20:31:25
と、童貞が騒いでいます。
218デフォルトの名無しさん:2007/09/29(土) 20:47:20
ToolTip クラスを使ってToolTip テキストを設定した場合、一応ヘルプにあるような

' Set up the delays for the ToolTip.
toolTip1.AutoPopDelay = 5000
toolTip1.InitialDelay = 1000
toolTip1.ReshowDelay = 500
' Force the ToolTip text to be displayed whether or not the form is active.
toolTip1.ShowAlways = True

' Set up the ToolTip text for the Button and Checkbox.
toolTip1.SetToolTip(Me.button1, "My button1")

のような形では設定しているのですが、

ToolTip テキストが初めの数回だけは表示されるものの、その後は
Mouseがホバーしても表示されない状態でした。
これは設定が不正なのでしょうか?

この設定はFormのLoadイベントではなく、プログラムの途中で動的にコンストラクトした
ユーザーコントロールに対して設定していました。
219デフォルトの名無しさん:2007/09/29(土) 21:11:42

どうも、toolTip1.AutoPopDelay = 5000 の5秒の時間を連続して消費してしまうと
その後はMouseホバーしてもToolTipを表示しなくなるような感じでした。
なので新しく該当のユーザーコントロールをコンストラクトして新たにToolTipが
設定されるとまたその5秒間が設定され、それが連続消費されるまでは表示できる
ような感じでした。

この5秒を連続して消費しても、再びMouseホバーしたらまたToolTipを表示される
ようにならないでしょうか?
220デフォルトの名無しさん:2007/09/30(日) 01:16:03
221デフォルトの名無しさん:2007/09/30(日) 02:17:38
>>220

あ、バグだったんですか。うわーん期待してたのになー・・・・
ガックシ。教えてくださったところ見て方法考えてみます。。。
222デフォルトの名無しさん:2007/09/30(日) 12:51:16
2005はGUI関係バグ多いね。

MenuStripでもVisible = Falseのサブ項目を持ってるMenuStripItemをキーで
操作すると……。

間抜けすぎるなw
223デフォルトの名無しさん:2007/09/30(日) 13:25:27
>>222

2005というか、「.NET Famework 2.0 のバグ」 ですよねこれって・・・
3.0 にUpしたら直ってるとか?あるいはその上までダメ???

>MenuStripでもVisible = Falseのサブ項目を持ってるMenuStripItemをキーで操作すると……。

これってのもVisible = Falseの場合に何か対策して解決できるのでしょうか??


224デフォルトの名無しさん:2007/09/30(日) 14:50:25
Remove/Insertでそのつど対処するしかないんじゃね
Reflection使って内部動作いじるのも面倒くさいし
225デフォルトの名無しさん:2007/09/30(日) 15:15:48
標準モジュールに関数作ってそれを.NETの他の言語から使う事って可能ですか?
それともクラスモジュールじゃなければ駄目なのかな?
226デフォルトの名無しさん:2007/09/30(日) 15:20:54
標準モジュールなんてVB6の段階で既に
「VBの仕様上仕方なく使う」代物だったのにw

恥書きたくなかったら出来てもやらない方がいいんじゃないの?

まあ見方によってはc#のスタティックなクラスの相当品だと言えなくもないのかもしれんが。
227デフォルトの名無しさん:2007/09/30(日) 15:38:39
.NETになってからも標準関数は追加されている。
VB言語設計者も積極的に使っていると言ってる。
228デフォルトの名無しさん:2007/09/30(日) 16:11:49
関数wwwww
229デフォルトの名無しさん:2007/09/30(日) 16:34:23
うんちゃらモジュールだって実体はクラスでしょ?
そとからアクセスできるか知らんが
230デフォルトの名無しさん:2007/09/30(日) 17:03:13
>>225
VBモジュールの実体はsealedクラスになってるから、C#からは「モジュール名.関数名()」でアクセスできる。

ちなみにC#でVBの標準モジュール相当のものを作る場合
using Microsoft.VisualBasic.CompilerServices;
[StandardModule]
public static class StdModule {
  public static int Mul(int i, int j) { return i * j; }
}
231デフォルトの名無しさん:2007/09/30(日) 17:49:44
>>229
コンパイラ製作者の視点から見れば
本当はそれ逆に考えるべきなんだけどねw
232デフォルトの名無しさん:2007/09/30(日) 18:05:35
わざわざ作っても大してありがたくもないけどね。
233デフォルトの名無しさん:2007/09/30(日) 18:57:07
>>208
遅くなりましたができました。ありがとう。
234デフォルトの名無しさん:2007/09/30(日) 21:06:51
abc\1\1
abc\1\10
abc\1\2
abc\10\1
abc\2\1

のようにアルファベット順に並んでいる文字列を
番号順に並べ替えるメソッドや関数などはないでしょうか?
235デフォルトの名無しさん:2007/09/30(日) 21:47:30
まず日本語書けよ。
お前さんの意図をエスパーして作動するような関数があるとでおおもってんのかw
236デフォルトの名無しさん:2007/09/30(日) 22:38:03
> あるとでおおもってんのかw
237デフォルトの名無しさん:2007/09/30(日) 23:06:13
>>234
ソートしたいならここをみればいいとでおおもうよ。
ttp://smdn.invisiblefulmoon.net/ikimasshoy/vbdotnet/comparison.html
238デフォルトの名無しさん:2007/09/30(日) 23:29:30
>>237
ありがとうございます。何とか実装できそうです。
239238:2007/09/30(日) 23:32:19
234でした。
240デフォルトの名無しさん:2007/09/30(日) 23:47:52
>>238
が本人だとして,
ヘルプっつーかgoogleで根気良く3回くらい調べれば直ぐに出てきそうなんだがなぁ
「何とか実装できそう」なんて言い放っちゃってるけど,どうせまた「〜はどうすればいいでしょうか?」
ってどこかに聴きにいくのが落ちなんだろうねぇ


本人じゃないなら市ね
241デフォルトの名無しさん:2007/10/01(月) 00:15:37
市ねは言い過ぎだと思うが、まあ書いてる文章からすると
正しい推測だと俺も思うね。

ダメグラマは説明能力がない。説明能力がない、という自覚もない。
なにより、説明能力がないならないなりに、自分の意図を他人に理解してもらおう、
という努力が見られない。
242デフォルトの名無しさん:2007/10/01(月) 00:22:52
ここの住人は極論大好きなのな
243デフォルトの名無しさん:2007/10/01(月) 00:39:46
自分で調べる人だらけになったらこのスレは必要なくなるぜ?
244デフォルトの名無しさん:2007/10/01(月) 00:48:23
いいことじゃまいか。
245238:2007/10/01(月) 00:49:12
>>240
間違いなく本人です。
検索が下手なので教えてもらったページは知りませんでした。
ヘルプではIComparerまでたどり着いてましたし、Array.Sortは使ってますが
ほかの手段もあるかもとおもい、抽象的に質問しました。ごめんなさい。
>>237さんの回答はベストアンサーです。

>>241
とりあえず>>237さんには理解してもらえたようです。
246デフォルトの名無しさん:2007/10/01(月) 01:29:17
理解するほうに努力を求めるな。
247237:2007/10/01(月) 01:40:47
IComparerとSortを知ってて他の手段を知りたいならそう書けばいい。
>>241の言っていることは間違ってないと思う。

ただ「でおおもうよ」って書きたかっただけ。
248デフォルトの名無しさん:2007/10/01(月) 01:45:04
自然ソートの質問だと思ったが違うの?
249デフォルトの名無しさん:2007/10/01(月) 12:58:38
VB.NETでWindowsアプリケーションを作る際に、
エラーメッセージなどのメッセージ表示部分を
クラスライブラリにしようと思います。

そこで質問なのですが、メッセージの定義内容
(メッセージ本文やアイコンなど)を
どういう形で持たせるのが一般的か、ご教授いただきたいのです。
参考になりそうなサイトの情報提供も有り難いです。

よろしくお願いします。
250デフォルトの名無しさん:2007/10/01(月) 14:07:01
>>249
> そこで質問なのですが、メッセージの定義内容 
> (メッセージ本文やアイコンなど)を 
> どういう形で持たせるのが一般的か、
リソースとして持たせるのが一般的なんでねーの?
251デフォルトの名無しさん:2007/10/01(月) 20:29:59
多言語対応するんじゃないなら、ベタにハードコードしちまうのが
結局一番分かりやすいと思う。
252249:2007/10/02(火) 00:40:29
>>250

ありがとうございます。
やはりリソースが一般的ですよね。
ただ、今回はひとつのメッセージIDに複数の情報(メッセージ本文、アイコン、ボタン種別など)を
持たせたいと言うことで、他の方法を考えようと思います。


>>251

ありがとうございます。
なるほど。確かにそれが一番シンプルですよね。同感です。
ただ、今回は敢えて外に切り出すという前提条件なので、他の方法を検討します。
253デフォルトの名無しさん:2007/10/02(火) 07:49:47
>>252
複数持たせる場合も普通はリソースですけどねぇ
逆に他に何があるか聞きたいですよ
254デフォルトの名無しさん:2007/10/02(火) 09:48:24

IEのアドレスバーのComboBoxのように、ComboBoxのテキストの先頭に
アイコンを付けることは可能でしょうか?ComboBoxの何かのプロパティに
アイコンをセットするとかできれば簡単なのですが・・・それとも新しくコントロール
を作成しないといけないでしょうか?

255デフォルトの名無しさん:2007/10/02(火) 10:08:29
>>252
データベースって知ってる?
知らないならググるといいナリよ。
256デフォルトの名無しさん:2007/10/02(火) 11:03:46
>>254
オーナードロー
257デフォルトの名無しさん:2007/10/02(火) 13:06:10
>>256
なるほどーそういうときにOwenerDrawって使うのですか!
でもこれ結構面倒そうですね・・・時間掛かるだろなぁ・・・
わかりました、やるかどうか考えて見ます。どうもでした。
258デフォルトの名無しさん:2007/10/02(火) 15:00:34
クライアント/サーバーアプリケーションを作ろうとした場合、
クライアント側からサーバーへの問い合わせをし、
サーバーアプリケーションがそれに返答する、というタイプの方式では、
通常はどんな形態の応答構造を使うでしょうか?

データベースを利用してしまうのが一番楽でしょうか?
それともデータベースは使わない場合、あるいは
データベース等のインストールや設定をせずに簡単に済ませる方法
としてはどのような方式がお勧めでしょうか。Webサービスなどの方が
便利でしょうか、それとももっと楽な方法があるでしょうか?
よろしくお願いします!
259デフォルトの名無しさん:2007/10/02(火) 15:17:52
>258
まずは、クライアント/サーバーのどういったアプリケーションを作ろうとしている訳?
260デフォルトの名無しさん:2007/10/02(火) 15:26:55
>>259

たとえばですが、クライアント側がもつべき設定上の要件をサーバーで
集中的に管理して持ち、クライアントは自分の起動時にその設定を問い合わせて
から作業に入れるといった場合、簡単な情報だけにかぎられるためデータベース
にするまでもなくやれないものかと思いまして、データベースなどをインストールさせずに
解決できれば楽でいいのではと。こうした目的でも本当なら通常はデータベースで行う
べきでしょうか・・・
261デフォルトの名無しさん:2007/10/02(火) 16:21:35
情報の一元管理をするってことか。

DBでもXMLでも好きなの使えばいいじゃん。
262デフォルトの名無しさん:2007/10/02(火) 16:36:22
>>261
それと、あと情報を公開でなく中身の情報はあくまで秘匿してモロにファイル
を晒さず、管理者だけがその情報を管理して変更可能とするとしますと、
やはり専用のサーバーアプリケーションを置いてそれを情報の出入り口にしておく
ようにしたほうがいいのではと思ったのでしたが、そういう場合は普通は
やはりデータベースにするべきでしょうか?

Xmlを使った場合でもファイルは暗号化、復号化して隠しファイル等にできるかと
思うので、その場合でも出入り口をどうするとクライアントとの通信ができるか
ということなんですが、その場合はIISも設定しない、データベースもインストールしない、
という方法として、後はDCOMとかになるのでしょうか?それもまだ勉強してないため
よくわからないのはありますが・・・。。
263デフォルトの名無しさん:2007/10/02(火) 17:13:22
>>262
.NET リモーティング
264デフォルトの名無しさん:2007/10/02(火) 20:20:35
>>262
んなもんC/Sかんけいあらへんがな
265デフォルトの名無しさん:2007/10/02(火) 20:36:36
配列の中身を「文字順」ではんく「数値順」でソートしたいのですが、
どうすればいいのでしょうか?
266デフォルトの名無しさん:2007/10/02(火) 20:39:20
>>263
.NETリモーティングというものを初めて知りました。ありがとうございました。

>>264
言葉の使い方からわかりませんでした。別PCのデータにその別PCでの
アプリケーション実行を通してアクセスする、あるいは情報をもらう、という
意味でした。
267デフォルトの名無しさん:2007/10/02(火) 20:40:16
そのようなIComparerで比較してソートすればよか
268デフォルトの名無しさん:2007/10/02(火) 20:50:48
>>265
IComparerはもちろん自分で実装するんだよ
そのようなIComparerって何ですか?とは聞くなよ
269デフォルトの名無しさん:2007/10/02(火) 22:36:24
自前で実装しなければいけないのですね。
数値順でソートするアルゴリズムの定石を教えて下さい。
270デフォルトの名無しさん:2007/10/02(火) 22:57:54
ちとずれてるんだなそれは
271デフォルトの名無しさん:2007/10/02(火) 22:59:02
>>269
あなたにソートを自前で実装しろなんて無茶なことは言いませんよ
自前で実装するのはIComparer/IComparer<T>.Compareメソッドだけでいい
MSDNのArray.Sortのオーバーロードを調べることをお勧めする
272デフォルトの名無しさん:2007/10/02(火) 23:03:36
ID変わりましたが269です。

もちろん自前でソートのアルゴリズムを書くわけではありません。
数値順でソートするときの比較関数の定石が知りたいのです。
273デフォルトの名無しさん:2007/10/02(火) 23:13:57
定石も糞もIDもねーよw
274デフォルトの名無しさん:2007/10/02(火) 23:19:08
わからないなら黙ってればいいのに
275デフォルトの名無しさん:2007/10/02(火) 23:30:10
ちとずれてるんだなそれは
276デフォルトの名無しさん:2007/10/02(火) 23:36:58
return Int32.Parse(1つ目の引数の数値部文字列).CompareTo(Int32.Parse(2つ目の引数の数値部文字列))
でよかったかな
277269:2007/10/03(水) 00:09:22
あ、すみません、数値だけならdoubleかfloatに型変換すればいいのはわかるのですが、
ファイル名をXP以降のエクスプローラのようにソートしたいのです。
APIが用意されていますが自前でやりたいなと。
でもこのすれで聞いたのは間違いなきがしてきました。。

ちなみにいい案が出てこなかったら、数値部分を16桁ぐらいに展開して野郎と思っています。
278デフォルトの名無しさん:2007/10/03(水) 00:12:23
野郎
279デフォルトの名無しさん:2007/10/03(水) 01:13:25
>>277
Array.Sortじゃだめだったの?
280デフォルトの名無しさん:2007/10/03(水) 02:08:32
すんげー情報後出し……
281デフォルトの名無しさん:2007/10/03(水) 05:48:11
>>277
あ、すみません、ちんこだけならまんこかあなるに挿入すればいいのはわかるのですが、 
源氏名を登録以降のエクスプローのようにソープしたいのです。 
たらいが用意されていますが自前でやりたいなと。 
でもこのすれで聞いたのは間違いなきがしてきました。。 (はぁと

ちなみにいい案が出てこなかったら、数値部分を16桁ぐらいに展開して野郎と思っています。 
282デフォルトの名無しさん:2007/10/03(水) 05:53:36
つまんね
283デフォルトの名無しさん:2007/10/03(水) 10:26:29
ファイルの拡張子によって「これはExcelファイル」「Wordファイル」「PowerPointファイル」
などと知るにはどうすればよいでしょうか?(Explorerでなされる表示のような感じで)

もしかするとこれはレジストリーを見ているのでしょうか?その場合にはどんなクラスで
調べればいいでしょうか?
284デフォルトの名無しさん:2007/10/03(水) 10:51:53
>>283
ご明察

でもエクスプローラは「これはExcelふぁいる」とか「これはWordふぁいる」とか
そこまで知的な推察はやっていなくて,
単純にファイルの拡張子を使ってレジストリから必要な情報を集めてきているだけ.
(最近はNTFS副ストリームからも拾ってきて色々やってるよーだがしらん)

というわけで
> などと知るにはどうすればよいでしょうか?(Explorerでなされる表示のような感じで)
というのはちょっと方向が違う.
何がどう違うのかは,もっとエクスプローラじゃなく貴方がやろうとしてることをかかないと分からん.

> その場合にはどんなクラスで調べればいいでしょうか?
vb.net 2005ならMy.Computer.Registryでレジストリ見れたはず.
285デフォルトの名無しさん:2007/10/03(水) 13:51:27
ちょっとDtaGridViewで困っています。

System.Data.NoNullAllowedExceptionがDataGridViewで発生するのですが
以下のような操作の場合にエラーが起きます。
(例)
DataTable定義
 ID integer(not null & AllowDbNull = false) PK
 Name String

これをDataGridViewにバインドさせて使用しています。(Name列はDataGridViewでリスト形式のComboboxColumnから選択)
1行目つまりDt.Rows.Count=0で入力を開始し IDに数値を入力しNameにマウスなどでフォーカスを移動させます。
(この時点でDataGridViewは行の追加削除が可能な為、新規入力行が表示されます)
このあとESCキーを押すと例外が発生するのですがDataRowErrorでキャッチすることはできません。
KeyPressでESCを抑制しようとも考えたのですが、ComboboxEditingControlでESCをキャンセルしようとしましたが難しいようで・・・
なお、1行目がある状態で同じ操作をすると同じエラーをDataErrorイベントでキャッチできるようです。

説明が難しくてうまく伝えられないのですが、なにかご存知の方がいらっしゃいましたら回避方法の知恵をお借りできませんか?
出来ればDataTableはAllowDbNullはTrueにせずに作っておきたいのですが・・・ 

スタックトレースの一部を掲載しておきます。
    Message="列 'ID' に Null を使用することはできません。"
   場所 System.Data.DataColumn.CheckNullable(DataRow row)
場所 System.Data.DataTable.RaiseRowChanging(DataRowChangeEventArgs args, DataRow eRow, DataRowAction eAction, Boolean fireEvent)
場所 System.Data.DataTable.SetNewRecordWorker(DataRow row, Int32 proposedRecord, DataRowAction action, Boolean isInMerge, Int32 position, Boolean fireEvent, Exception& deferredException)
場所 System.Data.DataTable.InsertRow(DataRow row, Int32 proposedID, Int32 pos, Boolean fireEvent)
場所 System.Data.DataView.FinishAddNew(Int32 currentIndex, Boolean success)
場所 System.Data.DataRowView.EndEdit()
場所 System.Windows.Forms.CurrencyManager.EndCurrentEdit()
    以下沢山つづく
286デフォルトの名無しさん:2007/10/03(水) 17:55:22
コンテキストメニューが閉じられたことを(つーかキャンセルされたことを)検出する
方法はあるでしょうか
287デフォルトの名無しさん:2007/10/03(水) 18:01:01
MSDN読め
288デフォルトの名無しさん:2007/10/03(水) 19:09:40
>>284
やはりレジストリーの情報などから知るのですね。

>NTFS副ストリームからも拾ってきて色々やってる
>vb.net 2005ならMy.Computer.Registryでレジストリ見れたはず.

とりあえず教えていただいたこのクラスを勉強してみます、
ご指導ありがとうございました!!
289デフォルトの名無しさん:2007/10/03(水) 19:15:15
>>288
追記ですが、やろうとしていることはそうした情報をなんらかの形で知れれば
ということでした。何をどうすれば情報が入手できるか皆目わからなかったのです。
それにしても、皆様のお蔭でやっとさでこれましたが、プログラムの世界は本当に
大変な苦労をして出来上がっているのだとここ半年ほどは日々実感する次第です・・・。
290デフォルトの名無しさん:2007/10/03(水) 22:13:41
FTPでDBサーバにCSVをアップロードして成功したらローカルのファイル消したいんだけど、
Shell使うかMSDNのクラス使うかWinInet使うかどれがいい?
291デフォルトの名無しさん:2007/10/03(水) 22:30:58
>>290
FTPでDBサーバにアップロードがよく分からないけれど
「アップロードに成功」をどうやって確かめるのか分からないけれど
ファイル消すのはFrameworkに任せてもいいと思う
FTPクライアントもFrameworkに任せていいと思う
292デフォルトの名無しさん:2007/10/03(水) 22:53:27
VB.NETのクライアントでファイル指定させて、DBサーバのディレクトリにアップロードして、
PL/SQLでファイル読み込んでDBに反映させるっていう処理なんだけど・・・どうしたもんかなとおもって・・・。

Frameworkに任せるというのはなにどういうこと?
文字通りおまかせ?
293デフォルトの名無しさん:2007/10/03(水) 22:55:59
>>292
どうしたもんだろうね
よくわからんよ

> MSDNのクラス使う
これ,.net frameworkのクラスを使うってことだよね?
# ファイル消すのはFrameworkに任せてもいいと思う 
それの俺的表現がこれ↑
294デフォルトの名無しさん:2007/10/03(水) 23:16:43
>>293

MSDNのクラスはこれ
http://support.microsoft.com/default.aspx?scid=kb;ja;832679

このままコピればいけるみたい。
でも電子媒体持込禁止&ネット不可の現場なの。

手打ちするほどやる気はないから、簡単な方法ないかと探しているんだけど、
どれもめんどくさそうだ。

Shell使うのだと成功したかどうかログからあさるらしいし、
WinInetはよくわからん。

正々堂々持ち込んじゃおうかな。
295デフォルトの名無しさん:2007/10/04(木) 06:53:13
Form1_Activateイベント

TextBox1.Focus()
と書いてから実行してもフォーカスがButton1のところにあるままなのはなぜ?
296デフォルトの名無しさん:2007/10/04(木) 17:27:05
VB2005でTPC/IP通信を以前おききしたものですが
通信の開始がうまくいかず、悩み中でしてご教授ください。
ホスト側、クライアント側のソースは以下のとおりで、
ローカル内では、うまくいくのですが外のPCからのグローバルでは
うまくいきません。210.XXX.XXX.XXX"は、ホストのグローバルIPアドレスで
ホスト、クライアント共に、ポートの開放は行ってあります。

クライアントの「tcp As New System.Net.Sockets.TcpClient(host, port) 」の部分で
{"対象のコンピュータによって拒否されたため、接続できませんでした。"}のエラーでとまります。

'----ホスト側--------------------------------------------------------
Dim host As String = "localhost"
Dim port As Integer = 2001
Dim ipAdd As System.Net.IPAddress = System.Net.IPAddress.Any
Dim listener As New System.Net.Sockets.TcpListener(ipAdd, port)
listener.Start()

' ----クライアント側------------------------------------------------
Dim tcp As System.Net.Sockets.TcpClient = listener.AcceptTcpClient()
Dim host As String
Dim port As Integer = 2001 ' サーバーのポート番号

host = "192.168.1.13" ' こちらではローカル内での通信OK
host = "210.XXX.XXX.XXX" ' こちらではローカル内、グローバルでも通信NG
Dim hostadd As System.Net.IPAddress = System.Net.Dns.Resolve(host).AddressList(0)
Dim tcp As New System.Net.Sockets.TcpClient(host, port)
297デフォルトの名無しさん:2007/10/04(木) 17:36:08
>>296
外部からpingはとおってる?
298デフォルトの名無しさん:2007/10/04(木) 20:40:59
>297
外部からのPINGでとおってなかったですorz
とおるようにしたら、進みました!
なんとかうごきそうです。
ありがとうございます。
299デフォルトの名無しさん:2007/10/04(木) 20:54:59
>>298
ぬるぽ
300デフォルトの名無しさん:2007/10/05(金) 10:02:20
ディレクトリのNTFSアクセス権設定をプログラムで行うには、.NET上での
特定のクラスはありますか?ない場合は、いわゆるcalsコマンドで実行する
のだと思います。そのときはそれをVB.NETのプログラムからどのようにして
叩くのか、教えてください。よろしくお願いします。
301デフォルトの名無しさん:2007/10/05(金) 22:26:17
>>300
IO.Directory
にあるのではなくって?

他にやるならWSHでもAPIでもWMIでもあると思うけど・・・・
302デフォルトの名無しさん:2007/10/06(土) 15:44:29
>>301
GetAccessControl()やSetAccessControl()がそれだったんですか、
わかりました!助かりました、ありがとうございます!!
303デフォルトの名無しさん:2007/10/06(土) 15:48:56
それからついでですみませんが、隠しファイルを表すアイコンが薄い色で表示されるのは、通常のアイコンに何かの修飾を施して作り出すのでしょうか。
その場合は何か簡便な処理メソッドなどがあれば教えてください。
304デフォルトの名無しさん:2007/10/06(土) 17:43:32
>>303
多分アルファチャネルビットマップ
はるか昔からある機能
VB.NETならGDI+で直接操作出来ます
305デフォルトの名無しさん:2007/10/06(土) 18:50:47
>>304
>アルファチャネルビットマップ
>昔からある機能
そうだったんですか。
>GDI+で直接操作
方法については何かのクラスメソッドで対応するのですね、探してみます。
またわからなかったらお聞きします。何卒よろしくお願いします。
306デフォルトの名無しさん:2007/10/08(月) 02:13:18
プログラムしてると溜まってくる「俺様コレクション」は
みなさんどうやって管理してますか?
自分は印刷してとってありますが、ほかにいい方法があれば
教えてください
307デフォルトの名無しさん:2007/10/08(月) 14:25:14
俺はとりあえず「俺様スクラップ」にしてるよ。
308デフォルトの名無しさん:2007/10/08(月) 15:03:28
俺は「俺様マネージャ」で管理してるなぁ
309デフォルトの名無しさん:2007/10/08(月) 15:15:26
まあ2chで馴れ合いレスして嬉しくなっちゃう馬鹿が何やってもやらなくても一緒
そもそも「俺様コレクション」とか「管理」とかいう言葉は具体的に何のこと言ってるんだよ
310デフォルトの名無しさん:2007/10/08(月) 15:19:25
>>309
> 「俺様コレクション」とか「管理」とかいう言葉は具体的に何のこと言ってるんだよ
> 「俺様コレクション」とか「管理」とかいう言葉は具体的に何のこと言ってるんだよ
> 「俺様コレクション」とか「管理」とかいう言葉は具体的に何のこと言ってるんだよ
> 「俺様コレクション」とか「管理」とかいう言葉は具体的に何のこと言ってるんだよ

たとえばタバコに火をつけたくて,ライターを持ってないときに
「すみません,何か火をつけるものありませんか?」
 →「『何か火をつけるもの』とかいう言葉は具体的に何のことを言ってるだ?」

\(^o^)/
311デフォルトの名無しさん:2007/10/08(月) 15:26:01
2ちゃんねるですら馴れ合い出来ない人は
実社会の人間関係だと大変なんだろうな・・・
312デフォルトの名無しさん:2007/10/08(月) 15:28:50
>>310
> 「すみません,何か火をつけるものありませんか?」 
>  →「『何か火をつけるもの』とかいう言葉は具体的に何のことを言ってるだ?」 
   →「あ,すみませんライターかマッチでもあればと思ったんですけど・・・」
    →「どんなライターだ?マッチはどこの銘柄がいいんだ?具体的に言えよ」
     →「サーセン^^;;;;;;;」
313デフォルトの名無しさん:2007/10/08(月) 15:30:51
2ちゃんねるの殺伐とした雰囲気を実社会に持ち込む奴が居て困る
314デフォルトの名無しさん:2007/10/08(月) 16:26:39
>>310
ガキみたいな突込みする前に 306 が具体的になんなのか行ってみたら?w
315デフォルトの名無しさん:2007/10/08(月) 16:38:00
>>314
アホな頭で一生懸命あら捜ししないでいいから
少しは足りない脳みそで具体例を考えてみたら?
316デフォルトの名無しさん:2007/10/08(月) 18:03:04
俺様コレクションについて現在わかっていこと
・プログラムしてくると溜まってくる
・印刷できる
317デフォルトの名無しさん:2007/10/08(月) 18:33:56
>>316
その2点から推測できない脳みその構造体がかなりヤヴァイ
書き直したほうがいい
318デフォルトの名無しさん:2007/10/08(月) 18:54:42
>>316
ファンレターだな。うん。
319デフォルトの名無しさん:2007/10/08(月) 18:55:35
C#スレと違って流石VB房!と言わんばかりのスレだな。
320デフォルトの名無しさん:2007/10/08(月) 18:58:55
>>318
お前頭いいな。
ストレスだと思ってたけど印刷にあてはまらなくて悩んでたんだ。
321デフォルトの名無しさん:2007/10/08(月) 19:58:41

おーい、これ見ろおまいら。

これが政府が答えられずに手も足もでなくなった最優秀質問だぜぃ!!!
長妻議員を総理大臣にしようぜい!!!

開会日 : 平成19年10月3日 (水) 長妻昭(民主党・無所属クラブ)  14時 56分  1時間 23分
http://www.shugiintv.go.jp/jp/wmpdyna.asx?deli_id=36730&media_type=wb&lang=j&spkid=578&time=02:04:16.0
322デフォルトの名無しさん:2007/10/08(月) 21:26:00
人を攻めるのだけは得意なヤツいるよなw
自分は何もできんくせに
323デフォルトの名無しさん:2007/10/08(月) 23:08:24
突っ込むのは簡単なんだよ
それを実行にうつすとなると難しい
あいつらは与党じゃないから突っ込みまくってるが
与党になったてあれと同じ質問に回答できるかどうかは微妙なところかもな
324デフォルトの名無しさん:2007/10/08(月) 23:56:01
>>322
いやーどうだろ、できてもやらない人もいると思うよ。
プログラムでもられてもああだこうだといってできない理由並べる人もいるでしょ、
ほんのちょっとしたことでも。

まー自民等って官僚にどうして頭上がらなかったのかはこの質問でとてもよくわかるよ
325デフォルトの名無しさん:2007/10/09(火) 00:46:30
さすがVB房
326デフォルトの名無しさん:2007/10/09(火) 05:33:10
突っ込みはバカでもできる
ボケこそがお笑いの本質だよ
327デフォルトの名無しさん:2007/10/09(火) 11:17:24
>お笑いの本質

なるほど政府はお笑いかw
328デフォルトの名無しさん:2007/10/09(火) 21:39:13
つまり「俺様コレクション」じゃなくて「俺様アレイリスト」ならいいわけか
329デフォルトの名無しさん:2007/10/09(火) 23:22:41
流れ読まずに悪いんですが、
ContextMenuのMenuItemにToolTipを配置するにはどうすればよいのでしょうか?

2005です
330デフォルトの名無しさん:2007/10/09(火) 23:41:08
ToolStripMenuItemのプロパティの一覧をじっくり見る
331デフォルトの名無しさん:2007/10/09(火) 23:42:33
すみません。書き忘れてました。
現状2005しかないので2005で開発してるんですが、
後から2003に置き換えるので、2005のコントロールが使えませんorz
332デフォルトの名無しさん:2007/10/09(火) 23:48:05
気軽に置き換えって言うけどな
333デフォルトの名無しさん:2007/10/10(水) 12:33:04
あふぉかと
334デフォルトの名無しさん:2007/10/11(木) 10:00:16
ttp://www.microsoft.com/japan/msdn/vbasic/migration/tips/office.aspx

これを動かすと、メソッドが終了したときにEXCEL.EXEのプロセスが終了するんじゃなくて、
アプリケーションが終了したときにEXCEL.EXEプロセスが終了しているんですが、これが正常なんでしょうか?
335デフォルトの名無しさん:2007/10/11(木) 10:33:40
http://pc11.2ch.net/test/read.cgi/tech/1162467959/263
これですが、TreeViewだとアイコンはもともと透明にはならないのでしょうか。
336デフォルトの名無しさん:2007/10/11(木) 11:29:22
>>334
いいえ

>>335
いいえ
337335:2007/10/11(木) 16:46:35
>>336
TreeViewでアイコンの透明部分を有効にするのはTreeViewのプロイパティの
設定でしょうか、その場合どのプロパティでしょうか。あるいはもしかして、
TreeNodeのプロパティやるのでしょうか。
338デフォルトの名無しさん:2007/10/11(木) 16:51:00
>>337訂正
>プロイパティ → プロパティ
>TreeNodeのプロパティやるのでしょうか → TreeNodeのプロパティでやるのでしょうか
339デフォルトの名無しさん:2007/10/11(木) 18:47:45
>>338
TreeViewに設定しているImageListのColorDepthやTransparentColorは適切か?
もともとのアイコンが腐ってるのではないか?
340デフォルトの名無しさん:2007/10/11(木) 22:46:24
ISOイメージ形式を扱いたいのですが、参考資料を見つけられません。
ヒントだけでもいいので教えてもらえないでしょうか。

やりたいこと
・ISOイメージ内からの特定ファイルの抽出
341デフォルトの名無しさん:2007/10/11(木) 22:54:00
342デフォルトの名無しさん:2007/10/11(木) 22:56:02
>>340
ISOイメージの構造ならここが参考になる。
http://euc.jp/periphs/iso9660.ja.html
343デフォルトの名無しさん:2007/10/11(木) 22:59:31
>>341-342
ありがとうございます。
がんばってみます。
344デフォルトの名無しさん:2007/10/12(金) 00:17:00
TrackPopupMenuでコンテキストメニューを表示した場合Addhandlerで指定した
clickイベントが起こらないし、フォームのwndProcでメッセージモニタしてもWM_COMMAND
来ないし、かろうじてTPM_RETURNCMDすると選択値は帰ってくるものの何故かindex+256
だし…
どうするのが本当なんでしょ
345338:2007/10/12(金) 00:30:27
>>339
すみません、IamgeList の TransparentColorが設定されていませんでした。
ご指導ありがとうございました、助かりました。
346デフォルトの名無しさん:2007/10/12(金) 02:26:12
>>344
イベントハンドリング等をマネージド内でやるならTrackPopupMenu使うな
TrackPopupMenu使うならMSDNくらい読め
347デフォルトの名無しさん:2007/10/12(金) 10:13:50
msdn嫁しか言えないならレスしなくていいよw
348デフォルトの名無しさん:2007/10/12(金) 10:51:24
TextBoxのValidatingで入力した値をチェックして(エラーだったら、e.Cancel = True)、
Validatedで入力値によって処理を変えています(Focusで飛び先を変えるとか)

ロジックはValidatingの処理結果をFormのPrivateな変数にいれて、
Validatedでその変数を参照するにしているのですが、コントロールの数が多いと、
どうにもプログラムが追いづらいです。

Validatingでの処理の結果を、ダイレクトにValidatedで拾う方法ってないでしょうか?



ひっとしたらValidatedを使わずに、Validatingで全て処理するのが普通だったりするのでしょうか。
349デフォルトの名無しさん:2007/10/12(金) 18:24:59
質問があります。
DBプログラミングにおいて、2003と2005では、書き方に相当な差があると
聞いたのですが本当でしょうか?
よろしくお願い致します。
350デフォルトの名無しさん:2007/10/12(金) 19:12:42
総統も相当冗談がお好きなようで
351デフォルトの名無しさん:2007/10/12(金) 23:15:00
そっとしておく。。
352デフォルトの名無しさん:2007/10/13(土) 16:29:15
VB.NET 2005 でアプリ内でFLVを再生させたいと思っています。
FlashのACTIVE Xが入っているとか制限があってもいいので再生させられるいい方法はないでしょうか?
353352:2007/10/13(土) 16:34:32
追伸
IEのコンポーネントを使う手もあったのですが、出来ればこの手法は使いたくないと考えています。
どうしても直接再生できないのであれば使うしかないとは思うのですが・・・
354デフォルトの名無しさん:2007/10/13(土) 16:54:54
WMPコンポーネントを使う
355デフォルトの名無しさん:2007/10/13(土) 17:03:29
>>354
メディアプレイヤーで再生させようとしたら警告でるけど再生できるようでした
その方法をまず試してみることにします〜
356352:2007/10/13(土) 17:27:09
コンポーネントを使用して再生するだけの簡単なアプリを作成してみました。
WMPコンポーネントを使用して自作アプリを作成し、メディアプレイヤー本体と自作アプリ側の両方で再生したのですが
WMP=警告は出るが再生できた
自作アプリ=警告が出てコーデックの自動ダウンロード→失敗→音だけ再生

という結果になってしまいました。
どうもWMPアプリ本体側でコーデックとかの選別をいろいろやってくれてたようで、なかなか難しそうだなと・・・

とりあえず結果のご報告です。
357デフォルトの名無しさん:2007/10/13(土) 19:38:23
プロパティグリッド(PropertyGrid)で、

Text編集の項目を複数行編集するには属性をどう設定すればいいでしょうか。
また常にIMEを活かしておきたい場合はどうすればよいでしょう?

またこの辺のことを知るにはHelpのどの辺りのところを見ればよいでしょうか。
358デフォルトの名無しさん:2007/10/13(土) 19:55:18
> Text編集の項目を複数行編集するには属性をどう設定すればいいでしょうか。
UIエディタを自作する必要があると思う
UITypeEditorを調べてみ

> また常にIMEを活かしておきたい場合はどうすればよいでしょう?
エディタ自作してればImeModeでどうにかなるんじゃないかな

> またこの辺のことを知るにはHelpのどの辺りのところを見ればよいでしょうか。
デザイン時サポートの拡張
ユーザー インターフェイス型エディタの概要

とはいえWPF時代はどうなることやら
359デフォルトの名無しさん:2007/10/13(土) 21:15:33
MultilineStringEditor
360デフォルトの名無しさん:2007/10/14(日) 00:06:19
>>358-359
ご教示と情報ありがとうございました!

>>359
Helpで見ることができました、助かりました、さっそくこれでやってみます!

>>358
ご指導感謝です。MultilineStringEditorでImeModeをどうするべきか考えてみます、
また、教えていただいた 「ユーザー インターフェイス型エディタの概要」もHelpで
勉強できそうでとても助かりました。

PropertyGridはものすごく便利なのですがこうした知識を学ぶ必要があるのですね、
しっかり勉強したいと思います。ありがとうございました!
361デフォルトの名無しさん:2007/10/15(月) 01:59:58
AxWebBrowser(HTMLDocument)からMouseイベントを受け取るにはどうすればいいんでしょうか?

MouseMove/MouseDown/MouseUpを受け取り、マウスジェスチャを実装したいのですが、
AxWebBrowserにはこれらのイベントがなく、乗せることもできず、
HTMLDocumentには、Mouseイベントがあるものの、onmouse〜というもので、
onmousemoveでドラッグが受け取れなかったり、イベントがキャンセルされたりと、挙動が違っています。
詳細は省いてますがソースは下のような感じです。開発環境は.NET2003です。

Dim doc As HTMLDocument = AxWebBrowser.Document

AddHandler CType(doc, HTMLDocumentEvents2_Event).onmouseOver, AddressOf MG_MouseOver
AddHandler CType(doc, HTMLDocumentEvents2_Event).onmousemove, AddressOf MG_MouseMove
AddHandler CType(doc, HTMLDocumentEvents2_Event).onmouseup, AddressOf MG_MouseUp

Private Sub MG_MouseOver(ByVal e As IHTMLEventObj)
 ジェスチャ開始
End Function

Private Sub MG_MouseMove(ByVal e As IHTMLEventObj)
 ジェスチャ中(ラベルにマウスの軌道を矢印で表示)
End Sub

Private Sub MG_MouseUp(ByVal e As IHTMLEventObj)
 ジェスチャ終了
End Sub
362361:2007/10/15(月) 22:44:01
一応自己解決しました。
不具合も多いですが・・・
363デフォルトの名無しさん:2007/10/15(月) 22:57:03
メニューアイテムのメニューIDがprotectedのためアクセスできんと言われるのだが
どうすればいいのでしょう
364デフォルトの名無しさん:2007/10/15(月) 23:03:12
なんに使うんだよそんなの
365デフォルトの名無しさん:2007/10/16(火) 00:27:28
TrackPopupMenuとマネージドのMenuをまぜまぜして使ったときじゃね?
とりあえずGetMenuItemID
366デフォルトの名無しさん:2007/10/16(火) 22:56:12
>>365
やっと納得のいくものになりました
ありがとさんでした
367デフォルトの名無しさん:2007/10/17(水) 14:48:03
.NETでWindowsアプリを作ったけど、やっぱどうしても起動に
時間がかかってしまう。これは.NETだからしょうがないんだけど。
そこで、起動までスプラッシュ・ウィンドウを表示させるようにした。
ところが、そのスプラッシュ自体が表示されるまでに、やっぱ
時間がかかっちゃうんだよなw 考えてみたらそのスプラッシュだって
.NETで作ってるんだから、当たり前っちゃ当たり前なんけどww

スプラッシュ用のスプラッシュも作るかwww
368デフォルトの名無しさん:2007/10/17(水) 14:50:21
ngen使えよ。
369デフォルトの名無しさん:2007/10/17(水) 17:00:07
>>367
何もかも1つのアセンブリにまとめてしまってないか?
起動時に必要な最低限のイメージだけ単独の
アセンブリにして、最初はそれだけをロードするようにしる。
370デフォルトの名無しさん:2007/10/17(水) 18:59:00
そんな限定的な場面でしか使えないような小技を得意になって言うこともなかろうに。。
371デフォルトの名無しさん:2007/10/17(水) 20:32:28

            ∩_ 
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ こいつ最高にアホ
 彡、   |∪|  /
/ __  ヽノ /
(___)   /
372デフォルトの名無しさん:2007/10/17(水) 21:01:41
すべてを1つのアセンブリにまとめても実際にロードされるのは
そのとき必要とされるクラスだけだよ(・∀・)
むしろ、個々のクラスを不必要に巨大化させないことが肝要
373デフォルトの名無しさん:2007/10/17(水) 22:15:27
お前もアホ。
アセンブリのロードそのものにも結構時間はかかるぞ。
でかけりゃだが。
374デフォルトの名無しさん:2007/10/17(水) 22:19:42
そして一番大きいのはSystem.Windows.Forms.dll
375デフォルトの名無しさん:2007/10/17(水) 22:58:13
>>373
お前もアホ。
起動が遅いことの最大の問題は、CLRが中間コードを
コンパイルするオーバーヘッドだろ。アセンブリのロードなんて
単なるファイル読み込みにすぎない。
376デフォルトの名無しさん:2007/10/17(水) 23:03:07
アホちゃいまんねん
377デフォルトの名無しさん:2007/10/17(水) 23:13:58
>>375
起動最初のコードだけでどんだけでかいのを想定してるんだお前は…
アセンブリのロードが単なるファイル読み込みだって?
378デフォルトの名無しさん:2007/10/17(水) 23:17:02
どうもJITコンパイルを変に重いと思ってるやつが多いんだな。
起動が遅い原因てそれじゃないことが多いのに。
379デフォルトの名無しさん:2007/10/17(水) 23:20:22
じゃあNgenの存在理由は何だ?
380デフォルトの名無しさん:2007/10/17(水) 23:39:30
あのさ、変に重いと思ってるってかいてるだろうに。
ぜんぜん無意味なんていって無いよ。
381デフォルトの名無しさん:2007/10/18(木) 00:51:52
こんな時間に人が居るとも思えませんが、

質問です、
VB.NETの初心者質問スレは無いのでしょうか?
ソレらしいスレが見当たらないのですが、ココで質問しても良いでしょうか?
382デフォルトの名無しさん:2007/10/18(木) 00:55:38
いいよ
383381:2007/10/18(木) 02:15:15
ありがとうございます。

画像の読み込み→ピクチャボックスへの表示が、うまくいきません。
いくつかの書籍を見たところ、
Dim ○○ As Image = Image.FromFile("ファイル名") の形で画像を読み込み、
ピクチャボックスにPaintイベントでもって表示する
・・・・といったものがほとんどでした。

タダ試してみたところ、
画像の読み込みの段階で毎回エラー(ハンドルされていない例外が発生しました)が発生します。


プログラムを実行した段階で
フォーム上に指定した画像が出ているようにしたいのですが。
このエラーはどういうことでしょうか?

つたなく見苦しい質問で申し訳ありません。
あつかましいようですが「見本」のようなファイルが見れるサイトなど無いでしょうか?
384デフォルトの名無しさん:2007/10/18(木) 03:27:59
Paintで描画するならPictureBoxの意味ないけどな

まずどんな例外なのか書かないのはなぜ?
385デフォルトの名無しさん:2007/10/18(木) 23:55:55
すいません、VB.netでOracleのSQLを実行しようとしたら、
下のようにSQLの実行結果をリードする処理が異常に遅いのですが原因はなんでしょうか?

Dim odr As OracleDataReader


sql.CommandText = "SELECT * FROM 職員マスタ WHERE 職員コード = '001'"
odr = sql.ExecuteReader
If odr.Read Then  ← この行が遅い



End If

ちなみに
特定のテーブルを呼ぶと発生(カラム数が少ないテーブルほど発生している)
取得件数0件でも発生
「Do While odr.Read」だとループの最初の1回目のみ遅い
のような感じになってます。
386381:2007/10/19(金) 00:37:01
失礼しました。

’System.IO.FileNotFoundException’のハンドルされてない例外がsystem.drawing.dllで発生しました。

と、出ます。
追加情報にドライブの保存先とファイル名が出ています。

>>Paintで描画するならPictureBoxの意味ないけどな
書籍にそんな事が書いてあったのは覚えています。
PictureBoxを間借りしているというか上に乗っかっているだけ、
ということでしょうか?
387デフォルトの名無しさん:2007/10/19(金) 00:38:41
質問の仕方がよく判らないのですが、
エラーの内容を写せば大丈夫でしょうか?
388デフォルトの名無しさん:2007/10/19(金) 01:18:24
>>387
とりあえず質問してみれば?
389デフォルトの名無しさん:2007/10/19(金) 01:34:41
>>386
例外そのままだよ
ファイルが見つからないって言ってるよ

Paintイベントで描画するならPanelでもLabelでも基本は同じ
390デフォルトの名無しさん:2007/10/19(金) 13:44:46
>>386

フォームのLoadイベントにより画像読み込みを実行しているということは
OpenFileDialogを使っていない。

このことからエスパーしてみると、

Dim ○○ As Image = Image.FromFile("ファイル名")

この部分の"ファイル名"のところが"image.jpg"とかになっていると思われる。
ここで言うファイル名というのは当然そのファイルの絶対パスでなければならない。

Cドライブのルートに画像ファイル(image.jpg)を置いて、

Dim pict As Image = Image.FromFile("c:\image.jpg")
とでもしてやってみれば?
391デフォルトの名無しさん:2007/10/19(金) 13:50:14
相対パスでもいいけどね。
".\image.jpg"とか。
まぁ、DebugフォルダなりReleaseフォルダに入れてないと
当然動かないけど。
392386:2007/10/20(土) 00:47:01
Public Class Form1
Inherits System.Windows.Forms.Form

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim bmp As Image = Image.FromFile("c:\WINDOWS\maru.bmp")


現在はこうなっています、
ナゼファイルを見つけてくれないのでしょうか・・・・
393デフォルトの名無しさん:2007/10/20(土) 01:49:33
>>392
そもそもファイルは見つけてほしいものじゃなくて,教えてあげるものだし
俺の家は C:\Windows そのものが無い,環境によって読み込ませるパスを指定しなおせば単純に直るわけだが
それすら思いつかないなら死ね
394デフォルトの名無しさん:2007/10/20(土) 15:58:04
>>385
sql は OracleCommand型だよね?
395デフォルトの名無しさん:2007/10/20(土) 20:07:03
自動対戦オセロプログラムを作ってみました。

ユーザが一時停止可能なように、主フォームから
別スレッドを起動して、その中でゲームを進行させます。

ゲームが終了したら、結果表示フォームを
showdialogで開きます。ownerは主フォーム。

このとき、主フォームがモーダルにならないのですが、
モーダルにするにはどうしたらいいんでしょうか。

言語は VB.Net 2003です。
396デフォルトの名無しさん:2007/10/20(土) 20:20:39
どういう意味か分からん。
397デフォルトの名無しさん:2007/10/20(土) 21:37:12
そこまでできてて、モーダルにならないので悩むってのが分からん。

主フォームのスレッドでダイアログだせばいいんじゃね?
398395:2007/10/21(日) 10:57:24
こんな風にしてみました。

' スレッド実行するためのデリゲート
Private Delegate Sub GameThreadDelegate

' 主フォーム ゲームスレッドを起動する部分
Private Sub StartGame()
  Dim thrd As New GameThreadDelegate(AddressOf GameThread)
  Dim cb As New AsyncCallback(AddressOf EndGame)

  thrd.BeginInvoke(cb, Nothing)
End Sub

' ゲーム進行する部分(スレッドで実行)
Private Sub GameThread()
  ' ゲームが終わるまでループ(コード省略)
End Sub

' ゲームが終わった時点で呼び出されるコールバックメソッド
Private Sub EndGame(ByVal ar As IAsyncResult)
  Dim thrd As GameThreadDelegate = Ctype(ar, AsyncResult).AsyncDelegate
  thrd.EndInvoke(ar)

  ' 結果を表示
  Dim rf as New ResultForm
  rf.ShowDialog(Me)
End Sub
399デフォルトの名無しさん:2007/10/21(日) 12:02:26
BackGroundWorker使うのが一番簡単よ。

400395:2007/10/21(日) 12:43:47
なるほど、「.NET Framework 2.0」が使えたらそうしたいです。
401デフォルトの名無しさん:2007/10/21(日) 12:52:34
BackGroundWorkerって、自分でThreadクラスを作成して実行する
従来のやり方とどこが違うんでしょうか?
402デフォルトの名無しさん:2007/10/21(日) 12:52:48
っていうか、同じクラスにあるメソッドをわざわざコールバックする意味って何だろ?w
それ以前にわざわざデリゲート使う意味もよくわからん。
普通にスレッド起動すればいいと思うけど。。

あと、BackGroundWorkerなんて個人的には存在意義ゼロだと思うな。
Myと一緒で初心者に悪い意味で媚びるだけの代物に過ぎんと思う。
403デフォルトの名無しさん:2007/10/21(日) 13:01:25
スレッド越しアクセスの質問が減るならそれだけで十分な意義だ


減ってないのが問題だが
404デフォルトの名無しさん:2007/10/21(日) 13:02:04
スレッド1からスレッド2を起動したとき、
スレッド2の終了時点でスレッド1の処理を起動することってできるの?
405デフォルトの名無しさん:2007/10/21(日) 13:07:39
スレッド1がGUI持ちスレッドなら簡単に
406デフォルトの名無しさん:2007/10/21(日) 14:06:45
Invokeを使えばいいのか。
407デフォルトの名無しさん:2007/10/21(日) 18:42:36
>>402なんか微妙に変…
408デフォルトの名無しさん:2007/10/21(日) 18:56:45
しっー!
409デフォルトの名無しさん:2007/10/21(日) 22:30:07
ToolStripMenuItem のHeightプロパティを変更してItem間の隙間を
少し詰めたいと思ったのですが、値を代入しても元の 22 という値に
戻ってしまうのですが、これを自由に設定できるといいのですが。
Fontのサイズを変更するとそれに合わせて変わるのはわかりました。

ただ自由には設定可能にはなっていないようでした。これが何かの制限が
あったとしたとき、それを外す方法とかあるでしょうか。よろしくお願いします。
410デフォルトの名無しさん:2007/10/21(日) 23:38:31
.NETで別スレッド実行するやり方って
何種類もあって迷うよ(´・ω・`)
411デフォルトの名無しさん:2007/10/22(月) 00:10:39
>>409
AutoSizeプロパティ
412デフォルトの名無しさん:2007/10/22(月) 01:19:52
>>410
プリミティブな方法を知っていないと見た
413デフォルトの名無しさん:2007/10/22(月) 01:26:32
基本はThreadとThreadPoolだけっしょ
414409:2007/10/22(月) 10:01:15
>>411
あーなるほど!ありがとうございました!!
415デフォルトの名無しさん:2007/10/22(月) 11:01:30
質問です。
クラス内に Private bmp As Bitmap
というメンバがあり、クラス内で使用しています。
このクラスのあるメソッド内にこのメンバをNewし直している
「bmp = New Bitmap(〜)」
箇所があるのですが、こういう時はBitmapのDispose()を実行させたほうが
よいのでしょうか?
Private Sub Test()
  If bmp Isnot Nothing Then bmp.Dispose()
  bmp = New Bitmap(〜)
.......
End Sub
Disposeしている行を入れても入れなくても動作しますが、
Newすることで元のbmpが解放されているかどうかが分りません。
416デフォルトの名無しさん:2007/10/22(月) 15:21:42
しなくても通常は大丈夫だろうけどした方がいいに決まってる
417415:2007/10/22(月) 15:59:23
>>416
ありがとうございます。
胸のつっかえが取れました。
418デフォルトの名無しさん:2007/10/22(月) 22:37:00
ほかにそのインスタンス参照するものがある場合は微妙だけどな
419385:2007/10/23(火) 01:22:44
事故解決しました。FetchSizeを小さくしたら一気に早くなりました。
420デフォルトの名無しさん:2007/10/23(火) 04:27:18
質問です。

VB2005で、RichTextBoxを使ったテキストエディタを製作しているのですが、
(RichTextBoxで)Wordのように文書に表を作成できるようにするには
どのようにすればよいのでしょうか。計算などはできなくて構いません。
どなたかご教示いただけないでしょうか。
よろしくお願いします。
421デフォルトの名無しさん:2007/10/23(火) 08:21:03
こんなところでご教示願えるような内容とも思えないな。
つまり間単にメソッド呼び出し一発とかでできると思ってるなら、
それは考え違いだろう、と。
422デフォルトの名無しさん:2007/10/23(火) 09:46:05
そうですか...
APIを使うのかなとも思ったのですが、
キーワードも浮かばない状態だったので質問させていただいたのですが...
423デフォルトの名無しさん:2007/10/23(火) 11:31:31
自前で内容を解析して自前で罫線引くんじゃね
424デフォルトの名無しさん:2007/10/23(火) 12:40:09
>>422
そんな知識水準じゃ確実に無理だろうね。
つまりそもそも「リッチテキスト」が何かも知らないんでしょ。
425デフォルトの名無しさん:2007/10/23(火) 13:02:03
>>424
ズバっとリッチテキストとは何か解説を。
426デフォルトの名無しさん:2007/10/23(火) 13:16:27

         ,.,.::;:::;:;:::;::;.,.、
        /;::;::;:;:::;:;::;:;:;::;)._
      ,...;::;:" ´ ` ー" ヽ:;:ヽ
      ,:;::;           ヽ:;ヽ
     {:ミ            ミ;:.,
     ;:;:;:            i:;:ノ
     i;:;i ;;iiiiillllllll)  (llllllllliii;; l:;::;}
    r^ミ  /_(;;)ゝヽ / <(;;)_ゝ ミ
    i ^ヽ.    ̄ l l   ̄   /^i
    ヾ i: .   , i j 、    .:./^ i
     ヽi: : :   ^`-'^   . :./-'/
     _| i:. :.: .:_.:_.:_:._:. :. :. .:.lー'"
    /ヽ .: .:...´ニニニ`. :i..:/
  /   ヽ :.ヽ.: .: :. : .:. .:.i/
       ヽ . :.ヽ、: .:_:ノ/

     リッチー・テクスト[Ritchie Teccusto ]
    (1931〜1996 ドミニカ共和国)
427デフォルトの名無しさん:2007/10/23(火) 14:01:07
Janeとかはツリービューやブラウザ側にフォーカスを当てなくても、
マウスホイールを動かすだけで自動的にカーソルの下にあるコントロールをスクロールさせてますが、
あれはどうしてるんでしょうか?

@IT ある座標や領域がコントロールの領域内に含まれるているかを確認するには?
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/382ctrlcontain/ctrlcontain.html

↑これを使い、Mouse系の各イベントなどでFocusを移動させるようにしてみたんですが、
確かに似たような挙動はするものの、TabIndexが効かなくなったりとFormが重くなったりと問題が多いです。
そもそもJaneなどではFocus移動すらしていないと思うのですが、
ホイールの移動量をそのままフォーカスのないコントロールに引き渡すような処理はどう書けばいいんでしょうか?
JaneはDelphiなので参考にするのはあまりよくないとは思いますが…、.NET2003です。
428デフォルトの名無しさん:2007/10/23(火) 15:22:32
TreeViewで、TreeNode以外の部分をクリックしても同じ行にあるNodeが選択
されていますが、これをNode部分をクリックしたときだけ選択されるようにするには
どのプロパティを設定すればいいでしょうか?よろしくお願いします。
429デフォルトの名無しさん:2007/10/23(火) 16:28:11
質問です。
StringFormatクラスのFormatFlagsに
orを使って複数設定しました。
= StringFormatFlags.MeasureTrailingSpaces Or StringFormatFlags.DirectionRightToLeft
このプロパティから値を取得するとMeasureTrailingSpacesが2048で
DirectionRightToLeftが1なので2049が返ってきます。
この値を一つ一つ取得するにはどうしたらいいでしょうか?
今はSelect case で
case 1
case 2
case 3
case 2048
case 2049
case 2050
case 2051
というふうにしていますが、数が多すぎてメンドクサイです。
430デフォルトの名無しさん:2007/10/23(火) 16:50:57
DateTimePickerコントロールのChekedプロパティが
変わった事を検出するにはどうしたらいいでしょうか。
ValueChangedイベントでいけそうかと思ったのですが、
コードで.Checked = True(False)と指定すると、このイベントが走らないようです。
宜しくお願いします。
431429:2007/10/23(火) 17:21:00
自己解決しました。
And演算子というのがあるんですね。
If (Value And MeasureTrailingSpaces) = MeasureTrailingSpaces Then

432デフォルトの名無しさん:2007/10/23(火) 17:56:51
>>427
各コントロールのMouseEnterイベントでマウスの位置を拾っておいて、
Meのマウスホイールイベントで対応するスクロールバーのValueを変更するとかじゃダメ?



さてさて質問です。
035641.012というDoubleがあって、これは3時間56分41.012秒を表しています。
こういう書式のDoubleをTimespanかDateTimeで扱いたいのですが、
スマートに解決する方法はないでしょうか?
ToStringメソッドを使ってスマートにできそうかなとは思ったのですが、
ググってもintやdoubleや日付などからのToString()の説明しかでてきませんでした。
Substringメソッドを使って部分で切り出してやればできるのは想像つくのですが、
後学のために、Tostringで一発で切り取れる方法があれば教えていただきたいです。

Dim str as String = "035641.012".Tostring(##:##:##)

こんな感じでいけないものでしょうか?
433430:2007/10/23(火) 18:12:16
>>432
String.Format("{0:00:00:00}", CDbl("035641.012"))
でどうでしょう。
434432:2007/10/23(火) 18:12:51
質問がおかしかったので訂正します。

Dim str As String = "035641.012"

変換したい書式: "03:56:41.012"

Tostringメソッドで一発変換する方法があれば、教えて下さい。
435デフォルトの名無しさん:2007/10/23(火) 18:36:45
>>433でいいと思うけど
ToStringなら
CDbl("035641.012").ToString("00:00:00.000")
まぁやってることはいっしょだね
436435:2007/10/23(火) 18:57:05
あ、doubleはダメなのね。
すまん435は忘れて。
437デフォルトの名無しさん:2007/10/23(火) 19:07:51
質問です。
VB2005にて複数の画面切替があるプログラムを開発しているのですが、
画面切替時の描画がもっさりとしていると言われました。
簡単に画面描画を高速にする方法がありましたら、ご教授願います。
438デフォルトの名無しさん:2007/10/23(火) 20:21:26
・高速なマシンに代える
・C++で書き直す
・描画しない

ところで画面切替って何?
439デフォルトの名無しさん:2007/10/23(火) 20:43:59
ダブルバッファリング使えばええやん
440デフォルトの名無しさん:2007/10/23(火) 20:59:34
なんか最近ダブルバッファリングが銀の弾丸だと勘違いしてる奴が多いのかねw
ありゃむしろ描画を遅くする方向に作用するはずだけど
441デフォルトの名無しさん:2007/10/23(火) 22:12:20
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ListBox2.Items.Insert(0, ListBox1.SelectedItem)
ListBox1.Items.Remove(ListBox1.SelectedItem)
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ListBox1.Items.Insert(0, ListBox2.SelectedItem)
ListBox2.Items.Remove(ListBox2.SelectedItem)
End Sub
End Class

リストボックス2つの間でアイテムを移動するようなプログラムなんですが
開始後何も選択せずにbutton1、button2と押すとbutton2を押した時点で強制終了します
button1を押した時点で落ちるならまだ分かるんですが、なぜbutton2を押した時点で落ちるのか教えてください
442デフォルトの名無しさん:2007/10/23(火) 22:21:13
エスパーじゃないから無理。
っていうか、お前さんプログラマの癖に例外のメッセージをみることもしないの?
443デフォルトの名無しさん:2007/10/23(火) 22:22:59
ていうかデバッグしろよ
444デフォルトの名無しさん:2007/10/23(火) 22:52:04
まぁ、なんと言うか、疑問を持つ場所が違う気がしないでもない。
445441:2007/10/24(水) 00:29:11
すみません
System.NullReferenceException はハンドルされませんでした。
"オブジェクト参照がオブジェクト インスタンスに設定されていません。"
と8行目で怒られます
8行目の地点でListBox2.SelectedItem=nothingがまずいのではないかと思っていますが
4行目はちゃんと動いている理由がよく分かりません
446デフォルトの名無しさん:2007/10/24(水) 00:37:30
button2→button1の順だとbutton1で例外が出る。
何行目とかじゃなくってさ、Null参照を回避すればいいだけ。
447デフォルトの名無しさん:2007/10/24(水) 01:38:16
>>446
確かにその通りになりました
しかし、NothingをRemoveするのは1度目も2度目も
条件は同じじゃないかと思ってしまいます
どうも、私の理解が浅くおかしなことを言ってるようなので
もっと勉強してから出直します、ありがとうございました
448デフォルトの名無しさん:2007/10/24(水) 02:20:49
>>428
クリックしたときのマウスの座標(確かe.x)と
クリックされたノードのbounds.Leftとかwidthとを比べて判断するとか
449デフォルトの名無しさん:2007/10/24(水) 03:10:34
>>448
BeforeMouseClick、みたいなものがあればいいわけですか、、。
どこかに簡単なプロパティ一発で設定できればと、確かVB6の頃の
TreeViewではみかけたような気もするのですが・・・一応もう一回
調べてみます。
450デフォルトの名無しさん:2007/10/24(水) 09:13:54
>>438さん
むしろ低速なマシンに変えるたいと言っていますorz
画面切り替えは、現在の画面をdisposeして、次の画面をNewしています。
451デフォルトの名無しさん:2007/10/24(水) 09:55:09
>>423
解決しましたm(__)m
452432:2007/10/24(水) 12:26:06
>>433
Tostringメソッドで調べていたのが間違いだったのですね。
Formatメソッドでググってみたら、使えそうな記事がわんさかでてきました。
助かりました、ありがとうございます。
453デフォルトの名無しさん:2007/10/24(水) 15:40:24
すみません、教えてください。
PointクラスやKeyValueSetクラスなどのように2つ以上の型の組み合わせ
で(・・・,・・・,・・・,, )といったように定義されるクラスを作る場合にはどのような
定義をすればいいのでしょうか。
よろしくお願いします。
454デフォルトの名無しさん:2007/10/24(水) 15:53:38
もしかしてコンストラクタのこと?
Public Sub New(ByVal x As Integer, ByVal y As Integer)
こんなこといちいち人に聞いてたらキリが無いしかえって時間かかるから
入門書くらいは一通り済ませたほうがいいよ
その質問とは直接関係ないけどPointやKeyValuePairはクラスじゃなくて構造体だよ
455デフォルトの名無しさん:2007/10/24(水) 20:44:09
vb.net 2005です。

通常のFormクラスにPartialクラスを追加しました。
コードを追加する分には期待通り問題なく動きます。

ただ、このPartialクラスをデザイナで開くと、
元のフォームとは別のデザイン画面が開いてしまいます。
混乱の元なので何とかしたいのですが、よい方法ありませんか?
456デフォルトの名無しさん:2007/10/24(水) 20:58:44
まずは日本語書けよ
457デフォルトの名無しさん:2007/10/24(水) 21:11:08
>>454
あーどうもです!そうでした、コンストラクターでした。。。
実はそうかなと思って実装してみたのですが、確かに聞くには初歩的でした・・・、
すまんです。

>PointやKeyValuePairはクラスじゃなくて構造体だよ

これ勉強になりました。また調べてみます。

ずーっと仕事では10年ぐらいVB6をやってきてクラスプログラミングしてなかった
せいもあって、頭の中でわかっててコンストラクタもたくさん書いているのに、
別の目的で見渡したときに実践ですぐにパッと?がっていかないことがありました。
だんだん頭慣らして行きます。どうもでした。
458455:2007/10/24(水) 21:29:58
>>456
手順はこんな感じです。

Windowアプリケーションとして新規のプロジェクトを作成します。
Form1クラス(Form1.vbとForm1.Designer.vb)がデフォルトで作成
されている状態のはず。

こいつのPartialクラスとして新規クラスファイルを追加します。
中身はこれだけ。
> Partial Class Form1
> End Class
ファイル名はデフォルトのClass1.vb

んで、このClass1.vbをソリューションエクスプローラ上でダブルクリック
すると、Form1とは違うフォームが表示されてしまいます。

このフォームの正体は何?という話です。

459デフォルトの名無しさん:2007/10/24(水) 21:45:24
>>458
最初からそう書けばわかるのに。
確かに謎だね。

でもそもそもForm(に限らずクラス)を複数のファイルに分割するのはよくないでしょ。
IDEのデザイナのコードみたいに特殊な意図(プログラマの御操作によるコードの破壊を防ぐ)
があれば話は別だけど。
460デフォルトの名無しさん:2007/10/25(木) 11:02:46
VB2005でRS232Cポートからバーコードスキャナで取り込んだデータを処理するプログラムを作っています

SerialPortを使用してバーコードスキャナと通信できていますが、取得したデータが8文字づつDataReceivedに入ってきます
たとえば、10文字のバーコードを読み取ると最初に8文字取得し、続いて残り2文字入ってくる状態です
スキャナと一緒に購入したキーボードインターフェースソフトでは10文字取得できます
また、USB接続のバーコードリーダも問題なく10文字取得できます

スキャナメーカに聞いてみると取得したデータをそのまま垂れ流すだけとのことでした
念のため、代わりのスキャナとUSB接続のスキャナをメーカに送ってもらい試したところ、状態は変わりませんでした

どのようにすれば全てのコードを一括で取得できますか?

バーコードスキャナはKEYENCEのTL-30で初期状態にセットしてあります
SerialPortの設定は
BaudRate 9600
Parity None
DataBits 8
StopBits One
ReadBufferSize 4096
WriteBufferSize 2048
DiscardNull False
RtsEnable True
DtrEnable False
です
461デフォルトの名無しさん:2007/10/25(木) 12:40:57
>>460
シリアルポートの「シリアル」ってどういう意味かわかってる?
1バイトずつ(正確には1ビットずつか)行列状につながってデータを送受信するから
「シリアル」ポート。

要するに8文字ずつとか寝ぼけたこと言うなってこと。
そんなのたまたまReadした時にバッファに8バイト入ってるだけのこと。
462460:2007/10/25(木) 13:11:46
それでは、なぜ同じプログラムからUSB接続のスキャナと通信した場合、うまく取得できたのでしょうか?
テストに使用したスキャナはTL-30UBです
463デフォルトの名無しさん:2007/10/25(木) 13:42:17
>>462
全米が引いた
464デフォルトの名無しさん:2007/10/25(木) 15:55:53
>>460
それってもしかして、チェックサムjの設定で末尾に2キャラクターを
でフォルトで読むようになってるかどうかが関係してるんじゃないでしょうか。

バーコードリーダーのデコーダー側の設定とPC側の読み取りソフトの間で
それに関してマッチしていないとそういうことがあり得るとか、ありそうな話だからね。
465デフォルトの名無しさん:2007/10/25(木) 15:59:08
>>464 (追記)
で、どうしても調べたいのなら、シリアル用のラインモニターをケーブルとコネクタの
間に挟んで、流れてるキャラクターを全部モニターすればすぐにわかる。

たくさんそういう仕事があるのなら買って常備しとくのがお勧め。
466デフォルトの名無しさん:2007/10/25(木) 19:25:30
モニターとかそういうレベルじゃないでしょ460は。
そもそもシリアル通信の意味がわかってないんだから。

もっとも、知識以前に「俺様のプログラムがバッファをReadしたタイミングで、
必ず俺様が必要とする長さのデータが入っているはずだ」みたいな発想をする
アブナイ人なのかもしれないけどw
467デフォルトの名無しさん:2007/10/25(木) 19:46:56
末尾はCR LFだと思うんだけど☆(ゝω・)v
468デフォルトの名無しさん:2007/10/25(木) 19:58:29
何かボケてた、バーコードリーダーだから終端がCR LFとは限らないのか orz
USBは転送速度が早いからたまたま8文字来たんじゃないか?
469デフォルトの名無しさん:2007/10/25(木) 20:10:10
USBは転送速度が早いからたまたま10文字来たんじゃないか? に訂正
470デフォルトの名無しさん:2007/10/25(木) 21:14:19
いや転送速度っていうか、USBのプロトコルが関係してるんだろうね恐らく。
USBの場合、物理層はたしかにシリアル転送だけど、
もっと上の層からはチャンクが飛んでくるように見えるわけで
471デフォルトの名無しさん:2007/10/26(金) 09:05:44
なになに?>>461=466は煽り入れたいだけ房で
真実は>>470が押さえてるの?
472460:2007/10/26(金) 10:18:12
人がいない間にえらい言われようだなぁ
不勉強なのは認めるが

>>464
スキャナのマニュアルを読んでみましたが、そんな妙な設定はありませんでした
実際、このプログラムで使用するバーコードのほかにJANコードも読み取ってみましたが、
最初に8文字を取得して次に5文字取得しましたし
後、うちはソフト会社じゃないのでそういうものは買ってもらえません
シリアルポートを使うプログラムもそうそう作ることはないですし

>>467
初期設定では終端はCRでした
CRLFに変えてもDataReceivedイベントで読み取ったデータごとにCRLFがついてくるだけのようです

ちょっと調べてみた結果、DataReceivedイベントが発生するタイミングにばらつきがあるという書き込みがありました
これが真実だとすると>>461が一番答えに近いかと思います
バーコードデータの中身の仕様は決まっているので10文字取得したらデータを操作するように書いた方がいいかもしれません
473デフォルトの名無しさん:2007/10/26(金) 11:05:48
煽りとかプロトコル層とか関係なく、分かれて届く事実だけを見れば良い。
474デフォルトの名無しさん:2007/10/26(金) 11:40:35
もう何年もシリアルポート使う仕事してないけど、ターミナルソフトでモニタとかできないのか?
他にもCOMポートからデータを受信してダンプするツールとか探したか?
475460:2007/10/26(金) 11:54:15
一応、ハイパーターミナルやTera Termで試したところ、全ての文字を一括で受信してました
476デフォルトの名無しさん:2007/10/26(金) 12:43:01
>>477
悪いけどその三者は全部俺なんだけどw

>>475
まだそういう寝ぼけたこと言うわけ?
一括して受信した、なんてどうしてわかるんだよ頭悪いな。
だからそんなのお前さんの目にそう見えるだけなんだよ。

それともお前さんは人様の作ったコードの処理を(デバッガで追うように)
追跡できるわけ?w
477デフォルトの名無しさん:2007/10/26(金) 12:46:14
というか、だからシリアルポートの物理層からして一括して受信するなど
あり得ないと散々言っているのに。

バッファって知ってる?
お前さんのプログラムが読んでるのはSerialPortオブジェクト内のバッファなんだよ。
そこをちゃんと理解しないと埒あかないよ
478デフォルトの名無しさん:2007/10/26(金) 12:52:59
偉そうに答えるわりには答えが曖昧で分かりません。
479デフォルトの名無しさん:2007/10/26(金) 13:19:44
>お前さんのプログラムが読んでるのはSerialPortオブジェクト内のバッファなんだよ
最初からそういわないからよけいに混乱してると思うが
480デフォルトの名無しさん:2007/10/26(金) 14:27:57
>>476

もしかして三者ってどれとどれとどれのこと言ってるの??
481デフォルトの名無しさん:2007/10/26(金) 14:38:54
>>472
>バーコードデータの中身の仕様は決まっているので10文字取得したら
>データを操作するように書いた方がいいかもしれません

バーコードなど形式一定の場合はそういうことかと。
以前やってたときは、Receiveバッファに入ったものをあるだけ読み込み、それが
期待した文字数と形式を満足したことを確認したら読み込みルーチンを抜け、
満足しないままタイムアウト時間を過ぎたらタイムアウトしてエラーを出す、

というアルゴリズムにしましたが何年も使っててそれでハングしたりしたことは
ありませんでした。(もし仮に余分な文字が後ろに付いていたら、通常ゴミと
判断できるなら捨てるようにすればいいかと思います)
482デフォルトの名無しさん:2007/10/26(金) 16:05:12
物理層とか関係ないし。
483デフォルトの名無しさん:2007/10/26(金) 16:06:03
>>477
SerialPortオブジェクト内のバッファを相手にするなら、一括して受信できてるように見えることだってあるだろうが
484デフォルトの名無しさん:2007/10/27(土) 00:08:05
.Netアプリケーションで出てくるToolTipTestは、その表示枠がちょっと狭いので
できれば、WindowsXpのデスクトップでアイコンなどのToolTipのように枠が広く
表示できるようになったもっと見やすいのにと思いました。
このようにToolTipの枠を広げるようなことはできるでしょうか?可能だとしたら
どのような方法があるでしょうか。よろしくお願いします。
485デフォルトの名無しさん:2007/10/27(土) 00:09:05
>>484(訂正)ToolTipTest -> ToolTipText
486デフォルトの名無しさん:2007/10/27(土) 03:55:38
ネイティブのToolTipのラッパじゃねーの?
487デフォルトの名無しさん:2007/10/27(土) 10:27:25
>>484
自分でフックしてドローすればいいんじゃね?
488デフォルトの名無しさん:2007/10/27(土) 12:15:12
変なことにこだわるなあwいや別に批判じゃないんだけどね。

とりあえずテキストの上下には改行を、左右には空白を必ず入れるようにすれば
場当たり的ではあるがとりあえず実現はできないかな

489484:2007/10/27(土) 12:22:03
>>486-487
そうですか、自分には結構難しく感じますが方法はあるでしょうか。

>>488
なるほど、たぶん一行の半分ぐらいの余裕がちょうどいい感じかなと
思うんですがとりあえず試してみます。

ありがとうございました。
490デフォルトの名無しさん:2007/10/28(日) 18:37:02
はじめまして、質問させてもらえますでしょうか。

ASP.NET+VB.NETでアプリ構築中なのですが、
高負荷状態の時にログの出力処理同士がバッティングしてしまい、
ログファイルを開く際に「他のプロセスが使用中」エラーが発生してしまいます。

原因として、セッション毎にログクラスのインスタンスを作成しているため、
それぞれが好き勝手に出力しようとして・・・上記のようになっていると思いました。

そこで、アプリケーションの方で1つインスタンスを作成して
みんながそれを使えば問題は解決するのでは?と考えました。


そこで質問です。
1:APサーバで1つもっているログクラスインスタンスをみんなで呼び合った場合、
  プロセスのキューは何個まで溜められるのでしょうか。
2:制限を超えたときの挙動はどんなものでしょうか。また、トラップ可能かどうか

そもそものところ、この考えで抜けがないか心配・・・

スペック
WINDOWSserver2003+.netFramework2.0
491デフォルトの名無しさん:2007/10/28(日) 19:56:29
ログクラス自作して自分で好きなように管理すればいいだろ
492デフォルトの名無しさん:2007/10/28(日) 20:28:44
やってみればいいだろーが。
493デフォルトの名無しさん:2007/10/28(日) 22:54:14
@IT会議室で妙なやり取りを見つけたんだけど、
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=41920&forum=7&11

これって普通にFileInfo.FullNameの比較で可能だと思うんだけど、
この方法って何か落とし穴でもあるのか?
494デフォルトの名無しさん:2007/10/28(日) 22:57:30
取り合えずFileInfo作成時に与えた大文字小文字を維持する
495デフォルトの名無しさん:2007/10/29(月) 00:06:06
IShellFolder.CompareIDsでできんかのぉ
496デフォルトの名無しさん:2007/10/29(月) 00:29:24
>>490
むしろそれでどう解決になると思ってんのか不思議で仕方がない。
497デフォルトの名無しさん:2007/10/29(月) 14:35:29
("TextBox" & i).Text="abc"
みたいなカンジでコントロールを使用したいんだけどムリなのかな?
498デフォルトの名無しさん:2007/10/29(月) 15:59:14
凄くよくある質問
Controlsでできるけど凄く嫌われるやり方だからやめとけ
499デフォルトの名無しさん:2007/10/29(月) 16:04:15
コントロールのBackGroundImageプロパティに画像ファイルを貼り付けたのですが
フォームをリサイズしたときに画像が再描画されて何度もパタパタします。
これを回避するためにSuspendLayoutなどを使うのかと思ったのですが、
その場合にはどのイベントを利用して行うべきでしょうか、またその実装方法を
ご指導ください、よろしくお願いします。
500デフォルトの名無しさん:2007/10/29(月) 16:39:03
Controls総当りは何年も前から知ってたけどしかしなぁ
501デフォルトの名無しさん:2007/10/29(月) 18:28:27
無理やりダブルバッファ化w
502デフォルトの名無しさん:2007/10/29(月) 19:36:35
>>499
ResizeRedrawを切ればとりあえず解決しないか?
503デフォルトの名無しさん:2007/10/29(月) 20:34:29
>>501-502
ありがとうございます、おっしゃっていることの意味としては、SetStyleメソッドを
使って制御可能ということですか、わかりました。やってみます。
ということは、コントロールを一回派生して別のものにして、それを使うという
ことなのですね。トライしましたら結果を報告します。
504460:2007/10/29(月) 20:49:12
先日はありがとうございました
おかげさまで目的のプログラムは完成しました

もう一つバーコード関連で質問させてください
今度はハンディターミナルを使ってバーコードを読み取り、PCに転送するソフトを作れと言われました
そして、ハンディターミナルも選定しろと言われました

VB2005でプログラムを作成しやすいメーカーってあるのでしょうか?
WindowsCE搭載の物なら作りやすいだろうと思いますが、予算が10万前後といわれているので
予算不足で却下されるのではないかと思います
参考になるようなホームページ等ありましたら教えてください
505デフォルトの名無しさん:2007/10/29(月) 21:39:36
506デフォルトの名無しさん:2007/10/29(月) 21:45:20
VB.netであるクラスを継承して新しいクラスを定義したいのですが
定義した新しいクラスでデフォルトコンストラクタは定義できないのでしょうか?
インスタンスが作成された時にメンバ変数を初期化したいのですが…
507デフォルトの名無しさん:2007/10/29(月) 21:48:21
できるよ 構造体でない限り
基底クラスがデフォルトコンストラクタを公開していないなら妥当な引数を渡す必要があるけど
508デフォルトの名無しさん:2007/10/29(月) 21:53:53
っていうか、なんでまずやってみて聞かないんだろう。。
俺には理解できない神経だなそういうの
509506:2007/10/29(月) 22:00:53
>>507
やっぱりできますよね。
で、自分のコードを確認したところ以下のようになっていました。
DataSetを扱うためにVSが自動で継承して作成したD_TESTTableAdapterというクラスです。
Namespace DataSet1TableAdapters
Partial Public Class D_TESTTableAdapter
Sub New()

Dim s As String = ""
End Sub
エラー:'Public Sub New()' には同じ署名で複数の定義が存在します。
派生じゃなくてPartialでした。。
コンストラクタとは全く別件ですね。
Partialの自動作成されたコードのコンストラクタを書き換えるのはまずいという認識なのですが、
このクラスが呼び出された際、メンバを初期化するにはどうすればよいでしょうか?
ぱっと思いつく方法としては初期化のためのコンストラクタのためにこのクラスを
派生する、という方法ですがなにか違和感があります。。
よい方法ありませんか?
510デフォルトの名無しさん:2007/10/29(月) 22:08:12
ハンディターミナルはハンディーターミナル用プログラム開発キットがある。
そんなのは、ここじゃなくてメーカーに聞くべき。
511503:2007/10/29(月) 22:58:14
>>501-502
使いたいコントロールを一回派生して別のものにしてから
そのコンストラクタ内でSetStyleメソッドを書いてダブルバッファなどを
処理し、それを使うということで解決しました。ありがとうございました。

ただ、このような要求は普通にあるかとも思われ、できればデフォルト
でそうした処理となるようにしておいてくれていればとも思ったのですが、
これですと毎回Imageを貼るものでは一手間がかかるような感じはします。
なぜ標準でパタツキ防止になっていないのでしょうね・・・。
512デフォルトの名無しさん:2007/10/29(月) 23:02:11
>>509
>Partialの自動作成されたコードのコンストラクタを書き換えるのはまずいという認識

あーやっぱりそうですか。自分もそういう感じはあったのですが、
派生コントロールなどでは、結局そのNewの中から自前の初期l設定を
呼び出したりしてました。

それ以外のものでは、Shownイベント時や、Loadイベント時に処置したりして
対応したものもあります。
513デフォルトの名無しさん:2007/10/29(月) 23:16:07
基底クラスつくればいいじゃん。
514デフォルトの名無しさん:2007/10/29(月) 23:20:47
自動生成されたコードのフィールドを初期化?
派生してそれをやりたい?
訳がワカラン。

わけの分からんこと言ってる暇があれば地道に勉強した方がいいと思うよ。
勉強する気もないのなら、悪いこと言わないから継承なんか使わないことだね。
515デフォルトの名無しさん:2007/10/29(月) 23:42:14
たしかにw
516デフォルトの名無しさん:2007/10/30(火) 00:00:54
テーブルアダプタ使ったこと無いだろ。
っていうか自動生成されたコードのフィールドって誰がいってんの?
517506:2007/10/30(火) 00:22:24
紛らわしい表現してすみません。
書き直します。

テーブルアダプタを利用する時にVSが自動で
Partial Public Class ???TableAdapter
みたいなコードを作成するのですが、
このクラスに手動でメンバ変数を追加して、
それをこのクラスのインスタンスが作成された時に初期化したいと思います。
ところがこのクラス自体はVSが自動で作成したもので
自動で作成されている部分でコンストラクタが定義されており、手を加えることができません
(実際できないことはないですがしてなならないというスタンスのはず)
許されている行為はPartial Public Class ???TableAdapterと定義し、
こちらでこのクラス自体を継承、ではなく拡張することです。
こういった場合自分でメンバ変数を追加した場合、本来コンストラクタで初期化したいのですが
VS自動作成部分であり任意の値で初期化することができません。
任意の値で初期化するにはどうすればよいでしょうか?
518デフォルトの名無しさん:2007/10/30(火) 02:25:36
>>517
一つは、NewコンストラクタのOverLoadを作ってやり、
そこですでに生成済みのそのNew(=Partialクラス内のコンストラクタ)
の中身をコピーし、かつ、その後ろに自分の書きたいコードを書く、
ということで実現できると思います。

自分がそのクラスを使うときは、その後で自分が追加したほうの
コンストラクタを使ってインスタンスを生成してやればいいわけです。

その際、OverLoadになるように引数を工夫してちびっと違うものにして
やれば元のものと両立できます。もし引数を一致させたいときはShadow
にして前のものを無視するようにすればいいのでは?
519デフォルトの名無しさん:2007/10/30(火) 08:57:26
パーシャルでシャドウとは器用な奴だw
520デフォルトの名無しさん:2007/10/30(火) 10:21:51
>>519
そうですね、Partialに宣言されたものをPartialじゃない方でShadowする
のは無理でした、すみません(Shadowは派生したときですものね)。
521デフォルトの名無しさん:2007/10/30(火) 16:42:25
質問失礼します。
空気抵抗を持たせた物体の放物運動のプログラムを作ったのですが、
実行はできるのですが、放物線がうまく描かれません・・。

Dim X, Y, Vx, Vy, Ax, Ay, dt, ga, Pi, V0, theta, k As Double
Dim XF, YF, XL, YL, X0, Y0 As Double
Dim XFI, YFI, XLI, YLI As Integer
Dim T, Xe, Ye, Vxe0, Vye0 As Double
Dim XeF, YeF, XeL, YeL As Double
Dim XeFI, YeFI, XeLI, YeLI As Integer
Dim kVy, g As Integer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ga = 9.8 : Pi = 3.1415963
dt = 0.01
X0 = 0 : Y0 = 0
Ax = 0 : Ay = -ga
X = X0 : Y = Y0
V0 = 70 : TextBox1.Text = V0
k = 0.02 : TextBox3.Text = k
theta = 45 : TextBox2.Text = theta
theta = theta * Pi / 180
Vx = V0 * Math.Cos(theta) : Vxe0 = Vx
Vy = V0 * Math.Sin(theta) : Vye0 = Vy
T = 0
XF = X : YF = Y
Xe = X0 : Ye = Y0
XeF = Xe : YeF = Ye

End Sub
522デフォルトの名無しさん:2007/10/30(火) 16:46:44
Private Sub PictureBox1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
Dim w As Integer = PictureBox1.Width
Dim h As Integer = PictureBox1.Height
e.Graphics.TranslateTransform(20, h - 20)
e.Graphics.ScaleTransform(1, -1)
e.Graphics.DrawLine(Pens.Black, 0, 0, w - 40, 0)
e.Graphics.DrawLine(Pens.Black, 0, 0, 0, h - 40)

End Sub

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

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Timer1.Enabled = False

End Sub
523デフォルトの名無しさん:2007/10/30(火) 16:50:20
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
X = X0 : Y = Y0
XF = X0 : YF = Y0
V0 = TextBox1.Text
theta = TextBox2.Text
theta = theta * Pi / 180
k = TextBox3.Text
Vx = V0 * Math.Cos(theta) : Vxe0 = Vx
Vy = V0 * Math.Sin(theta) : Vye0 = Vy
T = 0
XF = X : YF = Y
Xe = X0 : Ye = Y0
XeF = Xe : YeF = Ye
Timer1.Enabled = True
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
End
End Sub
524デフォルトの名無しさん:2007/10/30(火) 16:51:26
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim g As Graphics = PictureBox1.CreateGraphics()
Dim w As Integer = PictureBox1.Width
Dim h As Integer = PictureBox1.Height
g.TranslateTransform(20, h - 20)
g.ScaleTransform(1, -1)
Vx = Vx - k * Vx * dt
Vy = Vy - ga - k * Vy * dt
X = X + Vx * dt
Y = Y + Vy * dt
XL = X : YL = Y
XFI = CInt(XF) : YFI = CInt(YF) : XLI = CInt(XL) : YLI = CInt(YL)
g.DrawLine(Pens.Black, XFI, YFI, XLI, YLI)
XF = XL : YF = YL
T = T + dt
If Y <= 0 Then Timer1.Enabled() = False

End Sub

End Class

上のプログラムです。間違っているところをお教えください。
よろしくお願いします。レスの無駄遣い失礼しました・・・。
本当に申し訳ありません。
525デフォルトの名無しさん:2007/10/30(火) 18:33:41
>>524
>がうまく描かれません
というのを具体的に。
いったん描画されるが動かしたり別のウインドウを重ねるとすぐ消えてしまうことをいっているのか、
それとも4点ほどですぐに圏外にでてほとんどなにも描画されないことを言っているのか明確に。
526524:2007/10/30(火) 19:05:38
>>525
レスどうもです。
後者のほうです。すぐ圏外に出てしまい、ほとんど何も描画されず、点の
ようなものが描かれるだけになってしまいます。
527デフォルトの名無しさん:2007/10/30(火) 20:50:30
方眼紙にグラフを書こうとしたらすぐにはみ出してしまうのです。
どうしたらいいですか?


528デフォルトの名無しさん:2007/10/30(火) 22:38:19
あすかわらず煽りは低脳だな
529デフォルトの名無しさん:2007/10/30(火) 22:47:52
誰が誰を煽ってる、と?
530デフォルトの名無しさん:2007/10/31(水) 00:05:04
>>527は難しく考えるなと言っているんだぜ?
531デフォルトの名無しさん:2007/10/31(水) 00:16:35
質問です
VB.Netのソースを書く上で使い勝手のいい、
フリーのテキストエディタというと、何になるでしょうか?
532デフォルトの名無しさん:2007/10/31(水) 00:25:51
>>531
Visual Basic 2005 Express Edition
533506:2007/10/31(水) 03:15:21
>>517の件
結論として「できない」ということでまとめさせてもらいますね。
>>518でもあるようにオーバーロードを定義すると可能ですが
今回のようにVSの自動作成されたコードの中でインスタンス化されてしまう場合は
ちょっと厳しいようです。
ありがとうございました。
534デフォルトの名無しさん:2007/10/31(水) 08:55:40
>>533
>VSの自動作成されたコードの中でインスタンス化されてしまう

というのはどういう意味でしょうね?
Partial Class 定義の中で 「インスタンス化」 などはされていないはず。
インスタンス化するのはあくまでもそれを使う側のコードで行う処理で。
だからそのクラスのコンストラクタ (Newプロシージャ) を呼ぶところで
呼び出すNewを変えてやればいいことでは?
535デフォルトの名無しさん:2007/10/31(水) 20:14:04
536デフォルトの名無しさん:2007/10/31(水) 20:22:54
なんつーか、VB .NETのスレなわけで、俺の替わりに考えてくれと言うスレではないんだよ。
まる投げがおおすぎなくない
537デフォルトの名無しさん:2007/10/31(水) 20:24:07
多すぎなくないか?

途中で送信したorzスマン。
538デフォルトの名無しさん:2007/10/31(水) 20:35:09
>>524はもう荒らしの領域
丸投げするにしても、これだけ長くなるなら迷惑だから
ソースファイルごとをどっかのアップローダに置いといてくれ
こっちで試しに動かしてみようと思ってもコントロールへの依存が多くてすごく面倒だし
539506:2007/10/31(水) 23:28:21
>>534
少し説明が足りなかったです。
実際には???TableAdapterはObjectDataSourceに連結されており、
VSが内部で自動で作成したソースの中でインスタンス化されているようです。
ですのでコンストラクタに引数を渡すことができない状態です。
540デフォルトの名無しさん:2007/11/01(木) 01:15:50
>>539
それなら仕方ないんで、そのNewコンストラクターの最後のところに
自分で作った初期化用のプシージャを呼ぶように一行だけ追加しとけば
当面たくさんいじった感じにならないからそれくらいならいいんじゃないかね?
(初期化用のプロシージャはPartialではない方のファイルに書いておいて)

その初期化の内容の如何で、動作がおかしくなることがあるとしたら
その追加の内容によってはあり得るってことで、Partial側に触ったからおかしく
なる、ってことではないと思うので・・・。
541デフォルトの名無しさん:2007/11/01(木) 01:20:40

ところでみなさんに質問、2ch用にJaneブラウザ使ってるのですが
VS2005でデバッグしていて、その最中にJaneを起動すると、その後から
IEが動作不良を起こすようになりました。これはほぼ100%の確率で
起こるため、おそらくこのJaneの動作が絡まっているんじゃないかと
疑ってるのですが、みなさんのところではそういう状況は起きてない
でしょうか。

もし起きたことがあり、何か対策して直ったということがありましたら
情報教えて戴けないでしょうか?
542デフォルトの名無しさん:2007/11/01(木) 02:05:47
>>539
基底クラス作ればいいっていってんのに全然聞かないんだな。

TableAdapter用の基底クラス作って初期化メソッドをOverridable辺りで作っとく。
TableAdapterのデザイナのプロパティで基底クラスを上記のものに明示的に設定する。
パーシャルクラスで初期化メソッドをオーバーライドする。
以上
543506:2007/11/01(木) 04:08:38
>>540
自動作成のコードの上部に以下のようなコメントが自動作成されてました。
' このコードはツールによって生成されました。
' ランタイム バージョン:2.0.50727.312
'
' このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
' コードが再生成されるときに損失したりします。
やはりだめということはしない方がよいと思います。
ですがこの辺はリスクとメリットを検討した上で判断したいと思います。
ありがとうございます。

>>542
悪気はなかったのですが返事をスルーしてしまっていました。
申し訳ありません。
基底クラスを作るということだけでピンとこなかったものですので。
基底クラスは元々DataSetの*.xsdから自動作成されたクラスがこれまた自動で派生されて
作成されたコードですのでやはり差し替えはサポートしていないと思います。

544デフォルトの名無しさん:2007/11/01(木) 04:49:52
やれやれ、デザイナのプロパティで明示的に設定するって
やり方まで書いてんのに、サポートしてないと思いますってのはどういう了見だよ。

出来ないと思いますじゃなくて、間違いなく で き る の。
545デフォルトの名無しさん:2007/11/01(木) 09:44:21
さらに細かく書いてやる。

データセットのデザイナ画面で対象のテーブルアダプタを選択してプロパティを表示する。
するとBaseClassだったかいうプロパティがあるから
それを自作の基底クラスに書き換える。

以上
546デフォルトの名無しさん:2007/11/03(土) 00:59:47
デザイナで作られる型つきデータセットは並びとかが判りにくくなるからいやだなぁ・・・
自作してる

ColIsNULLとかより
IsNullCol
のが好きなんだぜ

と言ってみる
ついでに楽観的排他制御無駄多いし
547デフォルトの名無しさん:2007/11/03(土) 03:37:04
VB2005
ツリービューにテキストファイルからノードを読み込んでるんですが
18000行ぐらいあるので全部読み込むまで20秒ぐらいかかってます。
たぶん階層構造も保持できるXMLあたりで保存しておけば
読み込む時間も早くなると思うのですが保存方法がわかりません。
わかりやすく解説してるサイトとかあったら教えてください。
548デフォルトの名無しさん:2007/11/03(土) 10:19:49
とりあえずデータテーブルのSAVEXMLとかLOADXMLみたいなメソッドあったと思うんだけどそれではいかんかな?
XMLのサンプルとか紹介はGOOGLEで一撃で出てくると思うぞ
VB.NET XMLとかで
549548:2007/11/03(土) 11:32:58
ごめん、よくかんがえたらツリーノ描画でCSVしゃぁなしでつかってるんだからデータテーブルじゃ駄目だね

http://support.microsoft.com/kb/301101/ja

とかで簡単なサンプルあるしつかってみれば?
でも、XMLにしたからって早くなるわけじゃぁない感じだと思うんだけど・・・
テキストの読み取りに時間かかってるんだろうし
2005なら読み込みをマルチスレッドでやってから展開する手もあるだろうし

550デフォルトの名無しさん:2007/11/03(土) 14:41:23
質問があります。VB2005です。
グラフィックの描画、あるいはビットマップイメージの表示などで、二つの絵を重ねる場合、
通常は後に描画されたものが前のものに覆いかぶさるように表示されます。
後ろの絵を表示したい場合は、透過を使用できますよね?

今回、重なった部分のみ加法混色のようにしたいんです。
たとえば、緑色に塗りつぶした図形と赤色に塗りつぶした図形を部分的に重ねるとき、
その重ねた部分だけを黄色にして表示したいんです。

どなたか、やり方を知っている方がいましたらお願いします。
551506:2007/11/03(土) 15:23:46
>>544-545
できるんですね。
知りませんでした。
BaseClassプロパティを変更し、基底クラスを差し替えれることを確認しました。
次にVSがそれを継承した???TableAdapterを自動で作成するので
こちらはVSの自動作成部分以外でpartial定義されてる部分で
基底クラスのコンストラクタをオーバーライドし、メンバの初期化を行おうとしたのですが、
できませんでした。
???TableAdapterはpartial定義されているだけで実際にはコンストラクタはコードが分離されているだけで
定義されているためです。
BaseClassに指定した基底クラスで継承先クラスのメンバの初期化はできないので
???TableAdapterを継承し、継承先のクラスでコンストラクタをオーバーライドすることで???TableAdapterのメンバの
初期化をコンストラクタに書くことができそうです。
しかし継承を繰り返し可視性が下がってしまいましたんで実装するかは検討しますね。
技術的に可能なことがわかってよかったです。
ありがとうございました。


552デフォルトの名無しさん:2007/11/03(土) 15:33:30
>>550
RegionとGraphics.CopyFromScreenの組み合わせでいけるんじゃないの?

描画対象が画像ではなく単純な図形の塗りつぶしならRegionの使い方だけ
覚えれば問題ないね。

しかし、なんでラスタオペレーションが描画サーフェイスに対してしか
用意されてないのかは謎だなあ。。
553デフォルトの名無しさん:2007/11/03(土) 15:34:51
おまえね〜それは>>542でちゃんと書いてやっただろうがw
オーバーライド用の初期化メソッドを基底クラスで用意して
基底クラスのコンストラクタで呼んどくの。

ただしテーブルアダプタ自体のコンストラクタより先に呼ばれるから、
それは制限になるけどね。
554デフォルトの名無しさん:2007/11/03(土) 15:50:47
あっと、>>542ではコンストラクタから初期化メソッドを呼ぶと
はっきり書かなかったから分からなかったのか…
いやさすがに皆までいわいでも分かると思ったんだよ…
555550:2007/11/03(土) 16:13:29
>>552
お答えありがとうございます。質問が少し説明不足でした。

Regionで・・・ということは、塗りつぶし色のRGB値を記号で表しておいて、
重なった領域の色は、重なり合うそれぞれの領域のRGB値を足し合わせて・・・
ということですよね?

実はそれも少し考えました。
今回は線分の交点がメインになるので、Regionじゃ無理かなと思いました。
説明不足ですいませんでした。何か良いやり方をご存知でしたらお願いしたいのですが・・
556デフォルトの名無しさん:2007/11/03(土) 16:37:51
なんで無理とか思うのかなあ。。
線分の形状のRegionは作れないの?
できるでしょ。

それとも都合のいいところ(この場合は線分の交点)だけORとって
描画してくれる方法があるはずだ、とか思ってるのかな。
そんなエスパー機能を期待したって無理でしょ
557デフォルトの名無しさん:2007/11/03(土) 20:30:07
vb2005です。
簡易タブファイラーをつくろうと思ってるんですが、
タブコントロールの中にエクスプローラをインポートする事って出来るでしょうか?
ファイルの縮小版表示機能がどうしても必要なんで、出来ればエクスプローラ
をタブの中に埋め込みたいです。

やり方をご存知の方いましたらお願いします。
558デフォルトの名無しさん:2007/11/03(土) 21:32:44
axWebBrowser1.Navigate("C:\"
559デフォルトの名無しさん:2007/11/03(土) 22:06:50
ファイルを一行ずつ読み込むのを高速化するにはどうしたらよいでしょうか?
560デフォルトの名無しさん:2007/11/03(土) 22:18:17
どんな処理をやりたくて今はどうやってんだよ。
561デフォルトの名無しさん:2007/11/03(土) 22:26:09
数十Mbyteの数字の羅列であるデータファイルを一行ずつ読み込んで、配列に代入していく処理をしたくて
System.IO.StreamReader クラスの ReadLine メソッドを使用して今は実行しています。

しかし処理に数分かかるので、もっとよい方法があれば教えていただきたいです。
562557:2007/11/03(土) 22:44:06
>>558

出来ました〜!
縮小版もバッチリです。
ありがとうございました!
563デフォルトの名無しさん:2007/11/03(土) 22:44:26
>>549
アドバイスありがとう
一度データテーブルに読み込んでツリービューに追加はやったことありますが
めっさ遅くなりましたw
今のテキストファイルの状態だと、全ノードに全階層が書いてあるので
重複を省けるだけでも速くなるかなと思ったんですけどそうでもないんでしょうかね
マルチスレッド化したほうがいいかな
564デフォルトの名無しさん:2007/11/03(土) 23:02:15
MSDNにあるように、BeginUpdate とか AddRange で早くならんかな?
実際ふつうにやったら、テキストやらファイル構造からの処理よりも
TreeViewへの追加処理そのものの方が圧倒的に遅いでしょ。
ファイルからの読み込み自体が遅いなら知らんが…
565547=563:2007/11/03(土) 23:32:16
>>564
おっさるとおりTreeViewへの追加処理に時間が掛かってる感じです

・何もせず都度表示の更新をしながら追加処理をすると20秒以上掛かるが表示のタイムラグはない
・BeginUpdate,EndUpdateで追加処理自体は速くなるが表示まで10秒ほどタイムラグが発生
・TreeViewがshowメソッド等でアクティブになってなければ追加処理は数秒で終わりますが表示に10数秒タイムラグが発生

ノード数約2万個を1行ずつ追加していったときの結果です
一個ずつ追加する方法だと限界なのかも知れませんね
AddRangeは試してないのでわかりません
AddRangeを使うとなると配列作るのが厄介そうですがちょっとやってみます
566デフォルトの名無しさん:2007/11/03(土) 23:43:02
AddRange と BeginUpdate は同じ意味だぞ
つか適当な件数ごとに BeginUpdate/EndUpdate 繰り返せばいいんじゃね?
567デフォルトの名無しさん:2007/11/04(日) 02:06:52
>>561
数十MB程度のReadLineでなんで数分かかるんだ?
配列に代入するところのコードをちゃんと書いてくれ。
ループの中で毎回Redimしてないかね?

.NetFramework2.0が使えるなら、
System.IO.File.ReadAllLines()
を使ってみそ。

Dim ReadLines As New List(Of String)
Do
Call ReadLines.Add(sr.ReadLine)
Loop Until sr.Peek = -1

こんなんでもいいし
568デフォルトの名無しさん:2007/11/04(日) 02:11:32
亀乙
569デフォルトの名無しさん:2007/11/04(日) 09:41:14
そもそも数十MB配列に入れる必要があるんかね?
570デフォルトの名無しさん:2007/11/04(日) 11:04:14
ああ、1行毎にReDimはありそうだな。
旧VBでなぜか定石のように使われまくってたからな。
571550:2007/11/04(日) 14:54:55
>>556
お答えありがとうございます。
少しそのエスパー機能的なものを期待してた部分はありました。

今回作りたいのは、垂直線対称な色の異なる線分を2本描いて、その交点のORをとる。
というものなのですが、RegionとRotateTransformなどを組み合わせて・・・だと無理だと
思ったのです。

もうすこし色々がんばってみます。ありがとうございます。
572デフォルトの名無しさん:2007/11/04(日) 23:09:49
>>565
こうなったら・・・・
新しいツリービューのインスタンスに別スレからノードを追加完了した状態にして 完了時に元のツリービューを削除して
新しいツリーを同じ名前に変更した後差し替えだw
573デフォルトの名無しさん:2007/11/05(月) 15:00:12
ワードなどで、一行の初めのところにマウスをポイントすると
ポインターの向きが右向きになるのを実現するにはどうしたらいい
でしょう?コントロールパネルのマウス->ポインターで調べると
右向きポインターは見当たらないので単純にポインターを差し替える
のではないような感じです。

それと現在自分は拡大ポインターを使用していますが、.NETFrameworkで
指定するMouseポインターは、たとえばsplitContainerの仕切り線を動かす
ときの間仕切り用のポインターなどは決まったものしか使用できないで
しょうか、これらも拡大ポインターなど使いたいものに変更できれば
うれしいのですが・・・
574デフォルトの名無しさん:2007/11/05(月) 16:49:19
>>573
VSのプロジェクトにカーソルを追加
http://msdn2.microsoft.com/ja-jp/library/0b1674x8(VS.80).aspx
上を参考にしてホットスポットを設定
Me.Cursor = New Cursor("mycursor.cur")
575デフォルトの名無しさん:2007/11/05(月) 18:28:01
そんなやり方でええのんか?w
576デフォルトの名無しさん:2007/11/05(月) 22:47:43
>>574
右向きポインターはその右上側に指し先を指定するという意味でホットスポット
というものを設定する必要があるということなのですね。ありがとうございました。

その際ポインターの絵は自分で用意する必要がありそうですね。

>>573の後段については、もしできれば、現在のSplitカーソルが拡大版の
両矢印カーソルに自動的になるような何かの設定ができたらとも思ったのですが、
この方法に準じる場合は、該当の領域にマウスが入ったときに自分でプログラム
でカーソルを変更するコードを書くということなのですね。これが設定だけで
なんとかなればとも思うのですが、何か方法はないものでしょうか?
577デフォルトの名無しさん:2007/11/06(火) 02:53:19
なんでも用意されてると思うな、ハゲ
578デフォルトの名無しさん:2007/11/06(火) 07:33:22
>>577
>なんでも用意されてると思うな

あーやはりそうですか・・・わかりました。
ありがとうございました。
579デフォルトの名無しさん:2007/11/06(火) 16:49:49
     __ ( *^ω^*)__ジョギング行ってくるお
〔ノ二二,___       __,二二ヽ〕
 |:::::::::::::::::::::::::::ヽ ゜ ゜ /::::::::::::::::::::::::::/
  〉::::::::: :::::::::::::〉 ・ 〈:::::::::::::: ::::::::〈 
 |:::::::::::::::::::::::::/  (u)  ヽ::::::::::::::::::::::/
  〔:::::::::::::::::::::/  ノ~ヽ  ヽ::::::::::::::::::|
  ヽ:::::::::::::::::/ /::::::::::::\ ):::::::::::::::::::ゝ
  ノ:::::::::::::::::::| |_〜─〜-| |〜〜〜/
       (_)      (_)
580デフォルトの名無しさん:2007/11/06(火) 22:30:17
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::。:::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::: :::::::::.....:☆彡::::( *^ω^*)__::::。::::::::::::::::: ゜.::::::::::::
:. .:::::。:〔ノ二二,___       __,二二ヽ〕 :::::::::゜:::::::::: ..
:::::::::::::::::::::::::::::::...... ....:::::::゜::::::::::::::::::::::::::::::::::::::::::::::::::::::.....:::::::::::::::......
:.... .... ..:.... .... ..... .... .. .:.... .... .. ..... .... .. ..... ............. .. . ........ ......
:.... . ∧∧   ∧∧  ∧∧   ∧∧ .... .... .. .:.... .... ..... .... .. .
... ..:(   )ゝ (   )ゝ(   )ゝ(   )ゝ無茶しやがって… ..........
....  i⌒ /   i⌒ /  i⌒ /   i⌒ / .. ..... ................... .. . ...
..   三  |   三  |   三  |   三 |  ... ............. ........... . .....
...  ∪ ∪   ∪ ∪   ∪ ∪  ∪ ∪ ............. ............. .. ........ ...
  三三  三三  三三   三三
 三三  三三  三三   三三
581デフォルトの名無しさん:2007/11/06(火) 23:00:03
コピペ君って馬鹿だな、まで読んだ。
582デフォルトの名無しさん:2007/11/06(火) 23:25:03
すいません、質問でつ。
VB.NETとJavaで動作が違うんだが、何をどぉすればイイんだか
さっぱりわからんので、バカなオレにアドバイスを。

やりたいこと
AES(Rijndael)/CBC/PKCS5Padding(.NETはPKCS7Padding) での、文字列暗号化

文字列 ABCDEF を暗号化した時に、
VB.NET : 31QD2jPrI8yeVzdYV0NrHg==
Java : [B@b122a1
となる
Javaにあわせるには、どぉしたらイイんだ?
↓プログラム
583デフォルトの名無しさん:2007/11/06(火) 23:25:50
Java
==========================================
import javax.crypto.*;
import javax.crypto.spec.*;
import java.lang.*;

public class EncryptAES {
public static void main(String[] args) {
try{
String cryptAlgorithm = "AES/CBC/PKCS5Padding";
Cipher cipher = Cipher.getInstance(cryptAlgorithm);
SecretKeySpec secretKey = new
SecretKeySpec("ABCDEFGHIJKLMNOPQRSTUVWXYZ012345".getBytes(), "AES");
IvParameterSpec ivSpec = new IvParameterSpec("ABCDEFGHIJKLMNOP".
getBytes());
cipher.init(Cipher.ENCRYPT_MODE , secretKey, ivSpec);


System.out.println(cipher.doFinal("ABCDEF".getBytes()).toString());

}
catch(Exception e) {
System.out.println("暗号化に失敗しました" + e.toString());

}
}
}
584デフォルトの名無しさん:2007/11/06(火) 23:26:21
VB .NET
==========================================
Public Sub Sub_Encrypt()

Dim RijndaelAlg As New RijndaelManaged
Dim plaintextBytes() As Byte = Encoding.ASCII.GetBytes("ABCDEF")
Dim workMemoryStream As New System.IO.MemoryStream
Dim EncryptStream As CryptoStream

With RijndaelAlg
.Mode = CipherMode.CBC
.Padding = PaddingMode.PKCS7
.Key = Encoding.ASCII.GetBytes("ABCDEFGHIJKLMNOPQRSTUVWXYZ012345")
.IV = Encoding.ASCII.GetBytes("ABCDEFGHIJKLMNOP")
End With

EncryptStream = New CryptoStream(workMemoryStream, _
RijndaelAlg.CreateEncryptor(), _
CryptoStreamMode.Write)

With EncryptStream
.Write(plaintextBytes, 0, plaintextBytes.Length)
.FlushFinalBlock()
End With

strOutput = Convert.ToBase64String(workMemoryStream.ToArray)

End Sub
585デフォルトの名無しさん:2007/11/06(火) 23:48:05
明らかにPaddingが違うようだが。
.NETだとPKCSは#7しかできないから手で埋めるかJavaの方を#7にするか。
あとよう知らんがgetBytes()ってのはASCIIでいいのか?
586デフォルトの名無しさん:2007/11/06(火) 23:55:49
>>585
Paddingが違うのは自分でもわかってるが、
イマイチ暗号化自体よくわかってないバカなオレ(^^ゞ
だから、「手で埋めるかJavaの方を#7にするか」って言われてもよくわからん(-_-)

んで、getBytes()は、ASCIIでイイと思ってるがダメなの?
JavaとVBで、デバック時に変数の値を見たら、同じ(ASCII変換)だったから
OKだと思っちゃってるんだが...
587デフォルトの名無しさん:2007/11/07(水) 00:08:58
Rijndaelはブロック暗号。BlockSizeごとに暗号化していく。
ところがデータの末尾は大抵BlockSizeに足りない。
足りない部分を埋めるアルゴリズムがPadding。
あとはPaddingMode.PKCS7の解説見れ。

> んで、getBytes()は、ASCIIでイイと思ってるがダメなの?
Javaは知らんからちょっと疑問だっただけ。
同じバイト配列になるんだったらそれでいいでそ。
588デフォルトの名無しさん:2007/11/07(水) 00:14:13
>>587
> あとはPaddingMode.PKCS7の解説見れ。
勉強不足だから、もうちと頑張って理解してみる

解説&アドバイス ありがとでした
589デフォルトの名無しさん:2007/11/07(水) 00:24:15
>String.GetBytes
>プラットフォームのデフォルト文字セットを使用してこの String をバイトシーケンスに符号化し、結果を新規バイト配列に格納します。

俺もJavaは知らないんだが、ほんとにいいのか?
590デフォルトの名無しさん:2007/11/07(水) 00:28:28
Javaの方の出力の意味が分からん
なんで16バイトのbyte[]をtoStringしたら9バイトの文字列になってんだ?

あとBase64するならJavaでもやれ
591デフォルトの名無しさん:2007/11/07(水) 00:36:10
582でつ

本来は、同じにならないとダメだからってのは理解しているが、
JavaとVBで、なぜこんなに違うのかって理由がよくわかってないから
みんなの意見を参考に、実験&勉強してみまつ
592デフォルトの名無しさん:2007/11/07(水) 10:20:29
>>591
Javaでの文字列への変換が間違ってる。
Cipher.doFinalがbyte[]が返すので、それをtoStringしてもだめ。
System.out.println(new String(Ciphyer.doFinal("ABCDEF".getBytes()), "ISO-8859-1"));
593582:2007/11/07(水) 11:51:59
>>592
参考になりまつ
まだまだ勉強が足りないなぁ...反省
594デフォルトの名無しさん:2007/11/07(水) 16:48:57
vb.net 2003でbitmapを使って画像拡大したいのですが、画像がぼけて綺麗に表示されません。
どうしたらいいですか!?ちなみに、モノクロ画像で16*16の画像を256*256にしたいです。
よろしくお願いします!!
595デフォルトの名無しさん:2007/11/07(水) 18:20:51
そんなミエミエの釣りなんかな〜んにも面白くないよ
596デフォルトの名無しさん:2007/11/07(水) 20:16:51
1ピクセルごとにスキャンして拡大して描画
597デフォルトの名無しさん:2007/11/07(水) 20:32:40
ありがとうございます。そのやり方だとsetpixelとgetpixelの所でエラーがでます!!
1pixelを4pixelに拡大したいです。
598デフォルトの名無しさん:2007/11/07(水) 21:10:35
>>597
がんばてください
599デフォルトの名無しさん:2007/11/07(水) 21:20:53
With BmpInfo
With .bmiHeader
.biSize = Len(BmpInfo.bmiHeader)
.biWidth = BmpData.bmWidth
.biHeight = BmpData.bmHeight
.biPlanes = 1
.biBitCount = 32
.biCompression = 0
.biSizeImage = BmpData.bmWidth * BmpData.bmHeight * 4
.biClrUsed = 0
End With
End With
これをvisual basic 2003で書き換えたらどうなりますか?
600デフォルトの名無しさん:2007/11/07(水) 21:21:35
>>599
600げっと
601デフォルトの名無しさん:2007/11/07(水) 21:30:56
bitmap構造体を使って、モノクロの画像を拡大したいです。画像は16*16の画像で
その時の画像の1pixelを4pixelにして256*256の画像にしたいです。同じ画像は
表示できたのですが、拡大が出来ません!pictureboxが二つあり、picbox1のほうに画像を読み込み
picbox2に拡大表示したいです。どうしたらよいですか!?よろしくお願いします!!
602デフォルトの名無しさん:2007/11/07(水) 21:40:14
>>601

>>598
てか字数はあるけど〜したいですが、できませn。
だしなぁ、シね
603デフォルトの名無しさん:2007/11/07(水) 22:03:04
不可能です。
604デフォルトの名無しさん:2007/11/07(水) 22:05:24
>>601
嘘教えるけど怒らんでね
(x,y)が黒だったら
(x*4, y*4, 4,4 )の領域を黒く濡場おk
605デフォルトの名無しさん:2007/11/07(水) 22:05:56
4ピクセルて2*2だよな
どうやって16*16が256*256になるんだ?
606デフォルトの名無しさん:2007/11/07(水) 22:06:45
てか16x16を256x256にしたら4倍じゃなくて16倍だろ常識的に考えて……
607デフォルトの名無しさん:2007/11/08(木) 00:39:31
すみませんよろしければ教えてください。お願いします。
IEなどで、Webサイトを開くとそのページのタイトルがIEのタイトルに
表示されますよね、あれと同じものを取り出したいのですが、
VB.NETでそれを行うにはどのようにすればよいか教えてください。
よろしくお願いします。
608607:2007/11/08(木) 00:41:33
>>607追記
VB.NETではWebBrowserでWeb表示する場合となります。
WebBrowserのイベントで何を取り込めばよいでしょうか。
609607:2007/11/08(木) 00:52:48
>>607
あ、わかりました!!DocumentTitleプロパティでした。
失礼しました!!

610デフォルトの名無しさん:2007/11/08(木) 00:53:05
つうかHTMLの タイトル解析して取り出せよ
611デフォルトの名無しさん:2007/11/08(木) 00:58:03
>>608
ソースを文字列で読み込んでから
"<title>"と"</title>"で挟まれてる部分を抜き取ってるだけじゃねーの?
ソース見てそれくらい類推できないかね?
612デフォルトの名無しさん:2007/11/08(木) 02:32:33
>VB.NETではWebBrowserでWeb表示する場合となります。
なんだからそういう話じゃないんだろ多分。
613デフォルトの名無しさん:2007/11/08(木) 16:50:08
TabControlでMouseDownされたTabPageを知りたいのですが、

Private Sub TabControl1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles TabControl1.MouseDown
MouseDownedTabPage = CType(TabControl1.GetChildAtPoint(e.Location), TabPage)
End Sub

という方法で取り出せるかと思いましたら、どうもNothingが返ってきて取り出せませんでした。

Moseボタンは右クリックの場合もあり、Selectされるとは限らず、
Selectされてもされなくても、Mouseボタンが押された所のTabPageが
わかればありがたく。どのようにするべきでしょうか。

614デフォルトの名無しさん:2007/11/08(木) 17:03:41
すいません、質問があるんですが!bitmapeditorの設定の仕方を教えてくだい。
bitmapeditorの設定で高さや幅、プレーンのプログラムを教えてください。お願いします
615あにす ◆sGTL1yK0.6 :2007/11/08(木) 17:22:11
>>613
これでいけないかなぁ、多分。
Private Sub TabControl_MouseClick(ByVal sender As Object, ByVal e As MouseEventArgs) _
Handles TabControl.MouseDown
Dim SelectedTabPage As TabPage
For i As Integer = 0 To Me.TabControl.TabPages.Count - 1
If Me.TabControl.GetTabRect(i).Contains(e.X, e.Y) Then
SelectedTabPage = Me.TabControl.TabPages(i)
End If
Next
End Sub
616デフォルトの名無しさん:2007/11/08(木) 18:33:36
>>613
なんかWinのGUIの基本的な考え方がわかってないっぽい発想だなあ。。

当たり前のことだが、マウスのイベントというのは、

「ユーザーによってマウスで操作されたコントロール」

で発生するんだけど、それ理解してる?

TabPage1が操作されればTabPage1(TabControl1ではない)のイベントが発生するし、
TabPage1の中のButton1が操作されればButton1のイベントが発生するんだよ。
617613:2007/11/08(木) 18:44:09
>>615
どうもありがとうございました!!
教えてくださった方法でTabPageを知ることができました!!助かりました!!
618デフォルトの名無しさん:2007/11/08(木) 18:50:35
なんか馬鹿だな
619デフォルトの名無しさん:2007/11/08(木) 19:15:53
煽るだけ房うぜーーww

あ、おれもかwww
620あにす ◆sGTL1yK0.6 :2007/11/08(木) 22:33:52
>>616
TabPageのクリックイベントぢゃTabPageのタブ部分のクリックは拾えないのよね。
TabPageのタブ部分のクリックはTabControlでしか拾えないから困ったちゃんなのよ。
んで>>613になったんだと思うにょ。
621デフォルトの名無しさん:2007/11/08(木) 23:02:42
だから、それならクリックされたのは(TabPageではなく)TabControl(のタブの部分)でしょ。

読み手のESP能力に頼ってるのか、ベタに区別がつかないのか知らないが
いずれにせよ愚かな質問だね
622あにす ◆sGTL1yK0.6 :2007/11/08(木) 23:11:31
回答ついでに質問。
Dim hoge() As Object
Dim hoge As Object()
ってどう違うんでしょうか?
623デフォルトの名無しさん:2007/11/08(木) 23:12:21
()の位置が違う
624デフォルトの名無しさん:2007/11/08(木) 23:14:12
一緒。
時々前者の方を自信満々に推奨する奴がいるけど、
そういう人の言うことは今後話し半分に聞いた方がいいと思う。
625あにす ◆sGTL1yK0.6 :2007/11/08(木) 23:18:15
626デフォルトの名無しさん:2007/11/08(木) 23:30:16
前者は昔の名残
JavaやVB.NETだと「配列型」という意味で後者が正しいんだけど
昔のスタイルに慣れた人のために両方使えるようになってる
C#ではついに後者のみになってたりする
627デフォルトの名無しさん:2007/11/09(金) 01:43:11
へー、そうなんだ。
そういう文法的なことってパッケ買ったらマニュアルとかに書いてあるの?
628あにす ◆sGTL1yK0.6 :2007/11/09(金) 07:01:48
>>626
へ〜。
そしたら
Dim hoge(0) As Object
はどう書いたらいいの?
Dim hoge As Object(0)
って書いたら怒られよ。
629デフォルトの名無しさん:2007/11/09(金) 09:12:58
newつけろよ
っていうかほんとに0でいいのか?
いやなんとなく
630あにす ◆sGTL1yK0.6 :2007/11/09(金) 09:45:05
>>629
配列でインスタンス化?
怒られるよ。
631デフォルトの名無しさん:2007/11/09(金) 10:50:47
なんか勘違いしてるみたいだけど
Dim hoge(0) As Object と
Dim hoge As Object() = New Object(0) {}
は全く同じ意味だよ。どちらもhogeにはObject()型のインスタンスが代入される。
まあ後者は構文上かなり無理した感じがあるから、
きちんと理解した上で使うなら前者でいいと思う。
632あにす ◆sGTL1yK0.6 :2007/11/09(金) 11:41:43
Dim hoge(0) As Object←Object型の配列の宣言
Dim hoge As Object() = New Object(0) {}←Object型の配列をObject型のインスタンスの配列で初期化

宣言だけしたいときはどうすればいいのん?ってお話でし。
Dim hoge(0) As Object
はコンパイル通るけど
Dim hoge As Object(0)
は通らないぬ。
633デフォルトの名無しさん:2007/11/09(金) 11:45:20
>>632が釣りにしか見えない
634デフォルトの名無しさん:2007/11/09(金) 11:53:43
それで空の配列作ったつもりかい。
まえこれが原因のバグ入れた奴がいたな。
635あにす ◆sGTL1yK0.6 :2007/11/09(金) 12:15:12
>>634
Dim hoge(0) As Object
hoge(0) = "moge"
Console.WriteLine(DirectCast(hoge(0), String))
で問題なく配列出来てると思うんだけど、漏れにも分かるように説明してほすぃ。
636デフォルトの名無しさん:2007/11/09(金) 12:54:11
>>635.
VB.NETでは固定長配列は使えません。それっぽく書けるだけです。
Dim hoge(0) as Objectと宣言しても実際にはhogeはObject()型の変数になり、
Object()オブジェクトへの参照が代入されます。
637あにす ◆sGTL1yK0.6 :2007/11/09(金) 13:08:07
ぢゃあ
Dim hoge(10) As String

Dim hoge As String()
も同じってこと?
638デフォルトの名無しさん:2007/11/09(金) 13:11:48
違う。後者では宣言のみで配列のインスタンスへの参照は代入されない。
Dim hoge As Object() = New Object(10) { }
前者はこれと同じ。実際全く同じコードにコンパイルされる。釣り?
639デフォルトの名無しさん:2007/11/09(金) 13:13:42
型はいっしょだな。
てか>>634はそういう話ではない。
640デフォルトの名無しさん:2007/11/09(金) 13:31:16
RichTextBoxについて
通常Link用のテキストはhttp://でないといけないのですが
これを通常のファイルパス文字列とかでもリンク文字列にするようには
できますでしょうか?
641あにす ◆sGTL1yK0.6 :2007/11/09(金) 13:47:49
>>638
わかった気がする。
宣言時に長さを指定出来ないから
Dim hoge As Object()
として、
初期化する時に長さを決める
hoge = New Object(10) { }
つなげると
Dim hoge As Object() = New Object(10) { }
これを旧式で
Dim hoge(10) As Object
としてもいいようにしてあるってことね?
これで表面上はObject型の配列として扱えるように配慮してあると。
でもそれはObject()型の変数とな。
とすると、どう書くのが理想的なんでしょう?
642デフォルトの名無しさん:2007/11/09(金) 13:49:38
>>640
file://
643デフォルトの名無しさん:2007/11/09(金) 14:34:28
>>641
まさか本気で先程

>Dim hoge As Object(0)

って書いてたのか?


釣りかと思ってた。
644あにす ◆sGTL1yK0.6 :2007/11/09(金) 14:49:39
>>643
書くわけない。怒られるもん。
Dim hoge(10) As Object
って書いてた。
645デフォルトの名無しさん:2007/11/09(金) 15:04:32
書いたんじゃねーかw
646あにす ◆sGTL1yK0.6 :2007/11/09(金) 15:14:40
駄目なの?ちゃんと動くけど。
647デフォルトの名無しさん:2007/11/09(金) 15:43:06
>>644
>書くわけない。怒られるもん。

つまり書いた。把握。
648あにす ◆sGTL1yK0.6 :2007/11/09(金) 15:48:39
ちょ、試しただけwww
649デフォルトの名無しさん:2007/11/09(金) 16:20:12
>>642
ありがとうございました!!
650デフォルトの名無しさん:2007/11/09(金) 16:50:24
まったくの気分の問題なのだが次のように使い分けてる。
ReDimと組み合わせる場合はこれ
Dim Hoge() As Object
ReDim Hoge(3)
C#っぽく、Hogeを配列オブジェクトとして意識して使う場合はこれ
Dim Hoge As Object()
Hoge = New Object(3) { }
651デフォルトの名無しさん:2007/11/09(金) 17:08:30
使い分ける意味がわからんw
どっちでもいいけど統一するべきだと思うよ
652あにす ◆sGTL1yK0.6 :2007/11/09(金) 17:18:55
同じ意味なら
Dim hoge(10) As Object
が違和感なくていいなぁ、N88風で。
でもなんか急に古臭く見えてきたw
Dim hoge As Object()
hoge = New Object(10) { }
がカッコいいかも。
ReDim使うことが確実なようなら最初から
Dim hoge As New List(Of Object)
にするかな。
653デフォルトの名無しさん:2007/11/09(金) 17:27:14
ROMってた

勉強になった
654あにす ◆sGTL1yK0.6 :2007/11/09(金) 17:30:38
>>653
ずるいw
漏れだけハヂかくなんて!
釣り?とか言われてさ…orz
655デフォルトの名無しさん:2007/11/09(金) 17:33:35
>>654
まぁまぁ

聞くは一時の恥、聞かぬは一生の恥というではないか
656デフォルトの名無しさん:2007/11/09(金) 17:36:26
>>651
>>650の上2行はVB6でも実行できるが、下2行はエラーになる。
つまりVB6らしい書き方をするかC#らしい書き方をするかの違い。
あくまでも気分的な問題だよ。
657デフォルトの名無しさん:2007/11/09(金) 17:43:41
話はそれるが、
この2つは結果が異なり、結構はまることがある。
' VB6
Dim i As Integer, j As Integer   
For i = 0 To 9
  Dim t(9) As Integer
  t(i) = i
  For j = 0 To 9: Debug.Print t(j);: Next: Debug.Print
Next

' VB.NET
Dim i, j As Integer
For i = 0 To 9
  Dim t(9) As Integer
  t(i) = i
  For j = 0 To 9: Console.Write(t(j)): Next: Console.WriteLine()
Next
658あにす ◆sGTL1yK0.6 :2007/11/09(金) 17:51:57
VB6読めない。
下のコードも意図がわかんないけど。
ふいんき(←何故か変換出来ない)では一緒に見える。
変数のスコープの話?
659デフォルトの名無しさん:2007/11/09(金) 18:06:10
VB6ではDimステートメントは宣言文だが、.NET以降は宣言+命令の複合になる。

VB6
0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
0 1 2 0 0 0 0 0 0 0
0 1 2 3 0 0 0 0 0 0
 :
0 1 2 3 4 5 6 7 8 9

.NETでは毎回初期化される。
0000000000
0100000000
0020000000
0003000000
 :
0000000009
660あにす ◆sGTL1yK0.6 :2007/11/09(金) 18:14:39
うはっ、VB6まぢ想定外WWW
661デフォルトの名無しさん:2007/11/09(金) 18:40:01
>>659
なんか勘違いしてると思うよw
VB6は単にブロックレベルのスコープが存在しないだけでしょたぶん。
662デフォルトの名無しさん:2007/11/09(金) 18:49:27
>>658
日本語の勉強も必要なのか…
ふんいき だよ…
663デフォルトの名無しさん:2007/11/09(金) 18:55:30
664あにす ◆sGTL1yK0.6 :2007/11/09(金) 19:55:32
>>662
何か?
665デフォルトの名無しさん:2007/11/09(金) 21:37:28
>>662
釣りなのか、2ch初心者なのか。
つまり言葉のふいんき←(なぜか変換出来ない)ですよ。

(´-`).。oO(わかんねえかなぁ、この微妙なヒーリング)
666デフォルトの名無しさん:2007/11/09(金) 22:13:43
どう見ても後者
667デフォルトの名無しさん:2007/11/09(金) 22:24:54
寂しいのかなんか知らんが、くだらん馴れ合いなら他所でやれよ
668デフォルトの名無しさん:2007/11/10(土) 00:58:08
RichTextBoxでまた教えてください、よろしくお願いします。

RichTextBoxで、SelectedRtfをClipBoardにRtf形式で取り込むと
たとえばWordPadにはPasteできるのですが、メモ帳などのText形式の
エディタにはPasteできませんでした。

おなじRichText形式のエディタであるWordPadにおいては、
Selectされた部分をPasteすると、WordPadにもメモ帳にもPasteできました。

これと同様にPasteできるようにするにはどのようにClipBoardに格納すれば
よろしいでしょうか。

ちなみに、Rtf形式で格納した直後に、同等の形式でText形式でも格納して
しまいましたら、あとの方のText形式のものだけが有効になってRtf形式のものは
無効になってしまってWordPadにはPasteできませんでした。
669668:2007/11/10(土) 01:01:09
>>668
失敗したコードは、連続してこのように両方書いたもので、
Clipboard.SetData(DataFormats.Rtf, ActiveRichText.SelectedRtf)
Clipboard.SetData(DataFormats.Text, ActiveRichText.SelectedText)
です。

両方の形式でどちらも保存することができるものでしょうか、
できるとしたらどのようにして行えばよいでしょうか。
670デフォルトの名無しさん:2007/11/10(土) 01:21:21

画像の上に影付きの文字を書きたくて、Picturebox に label1 と label2 を重ねて置いて、
それぞれのラベルを、BackColor = Color.Transparent として、また、どちらも Parent = Picturebox としました。
すると、下に敷いた方は見えますが、上に置いた方が見えません。
labelコントロールを重ねないと両方の文字が表示されます。

画像の上に影付きの文字を描画するには、labelコントロールではだめなのでしょうか?
671デフォルトの名無しさん:2007/11/10(土) 02:00:36
labelでもなんでも自前で文字を描画すればよかよ
672668:2007/11/10(土) 12:54:01
>>668 (訂正)
>あとの方のText形式のものだけが有効になってRtf形式のものは
>無効になってしまってWordPadにはPasteできませんでした

これは意味としては、Pasteはできるが、Rtf情報がないただのTextの
Pasteにしかならなかったということでした。

673デフォルトの名無しさん:2007/11/10(土) 15:55:07
VB2005 ExpressをDLして使ってみたのですが
しばらく使ってると、コードの画面が「Form1.Designer.vb」になり
デザインコードが書かれたコード画面になります。
「Form1.vb」も別タブで存在しますが、フォームにボタンなどを置いて
Wクリックすると、「Form1.Designer.vb」にコードを書こうとします。
これは何らかが原因でPartial Classが無効になったのでしょうか?
「Form1.Designer.vb」が出てこないようにするにはどうすればいいのでしょう?
674668:2007/11/10(土) 16:23:16
この関係でさらにですが、RichTextBoxについて調べてみると、どうも英語のオンラインの情報と
Localにある日本語の情報で異なるようでした。

RichTextBoxは、日本語のHelpでは、System.Windows.Forms 名前空間にあるRivhTextBox
                                  ~~~~~~~~~~~~~~~~~~
であり、Controlからの派生のように見えます。実際、そこにはHelpにおいてもPreviewDragOver
等はは存在していません。(単なるDragOverイベントもHelpにはありますが、実際のコードペイン
やプロパティウインドウではそれが出てきません。)

しかし、オンラインのHelp情報によると、
http://msdn2.microsoft.com/ja-jp/library/system.windows.controls.richtextbox_events(vs.80).aspx
This page is specific to Microsoft Visual Studio 2005/.NET Framework 2.0
では、System.Windows.Controls 名前空間に存在しているようでした。
               ~~~~~~~~~~~~~~~~~~~
しかもどうもUIElement クラスというものからの派生であるらしく、PreviewDragOverというイベントなどが
存在していました。
http://msdn2.microsoft.com/ja-jp/library/system.windows.uielement(VS.80).aspx
http://msdn2.microsoft.com/ja-jp/library/system.windows.uielement.previewdragover(VS.80).aspx


しかも、このUIElement クラスというのは「Windows Presentation Foundation (WPF) の要素および
基本プレゼンテーション特性に基づいて構築される WPF コア レベル実装の基本クラスです」
とあり、これって、既存のいま私が使っている .NET Framework とは全然異なるものなのでしょうか?

そうするとRichTextBoxを使う際、上記のDragOverイベント等を使いたい場合、現状のHelpや情報が
食い違うということなのでしょうか?すみませんが、この件どなたかご指導のほどお願いできればありがたく。
675デフォルトの名無しさん:2007/11/10(土) 17:51:36
>>674
名前空間違いで同じ名前のコントロールが複数ある。
System.Windows.Controls はWPF用で.NET3.0から追加される。
System.Windows.Formsもなくなってはいないからよく探すべし。
676デフォルトの名無しさん:2007/11/10(土) 19:59:11

イベントを持つ Class を作成して、それにHandles でくっつけるために

Public WithEvents ClassA as New ClassAA

のように定義し、Form1 で宣言しましたが
Formの外からこの ClassA のプロパティなどにアクセスできません。

Public だから当然、他からも参照できると思ったのですが、
こういう使い方はダメなのでしょうか?
677デフォルトの名無しさん:2007/11/10(土) 20:31:13
参照できるよ
クラスとインスタンスの関係とか理解してなさそう
678デフォルトの名無しさん:2007/11/10(土) 20:36:21
>>677

ああ、なるほど

Form1 は Formから派生してるから、その Public にアクセスするためには
Form1.ClassA とまで修飾してあげないとダメなんですね

WithEvents とか関係なかったです

ありがとうございました
679デフォルトの名無しさん:2007/11/10(土) 20:44:28
まあ、できても良くないことだよ
ClassAのインスタンス自体を公開するんじゃなくて、Form1にイベントを定義して
ClassAのイベントが発生したらそのイベントを発生させるようにするべき
680デフォルトの名無しさん:2007/11/10(土) 20:55:43
>>679
ナニを言ってるんだ?w
681デフォルトの名無しさん:2007/11/10(土) 23:59:01
>>671
labelをやめて、
DrawStringで文字を書くことにしたのですが、指定する文字列に改行が入ったときに
その行間の指定は出来るのでしょうか?
ご存じの方、いらっしゃいませんか?
682デフォルトの名無しさん:2007/11/11(日) 02:07:41
>>681
調べてみるとベタにはできそうにないね。
自分で一行ごとに描画するしかなさそう
683デフォルトの名無しさん:2007/11/11(日) 11:20:00
今、二台のPC間で互いの画面をキャプチャし、それを相手のPCに送るソフトを作っているのですが、
画面をキャプチャし、送らずに自分のソフトに表示させることはできています。
しかし、それを相手に転送するとなると、jpeg辺りに画質を落として送るのが良いと思うのですが、
画質を落として送る方法がわかりません。
一旦、送る前に画質を落としてjpeg形式で保存、というのは保存する必要はないと思うので避けたいのですが…。

画面のキャプチャにはhttp://dobon.net/vb/dotnet/graphics/screencapture.htmlの.NET Framework2.0以降で追加された...というのを使っています。
また、転送にはUDPを使用する予定です。

開発環境はVS2005です。

よろしくお願いします。
684デフォルトの名無しさん:2007/11/11(日) 11:52:16
だから画質を「落とす」んではなく、
jpegにすると(非可逆圧縮の結果として)画質が「落ちる」んだよ。
恥ずかしい質問だなあw
685デフォルトの名無しさん:2007/11/11(日) 12:09:54
>>684
返信ありがとうございます。
少し勘違いしていたようです。
解決しました、ありがとうございました。
686デフォルトの名無しさん:2007/11/11(日) 14:55:07
>>682

だいぶ探してみましたが、.netでは設定できないというものだけが2件ありました。
情報ありがとうございました。
687デフォルトの名無しさん:2007/11/11(日) 15:40:49
DrawStringの行間を決めるものはFontのHeight(あるいはGetHeight?)のようだから
フォントを自作できればいいんだろうけど、それはあまり現実的な解ではないよね。
688デフォルトの名無しさん:2007/11/11(日) 20:49:25
RegisterHotKey で質問です。
ttp://smdn.invisiblefulmoon.net/ikimasshoy/dotnettips/tips025.html
を参考にプログラムを作成したのですが、
上記URLのコードでは複数のホットキーには
対応できないようなのです。
そこで、どのように改良すれば複数のホットキーを登録できるようになるか
教えていただけないでしょうか。

689デフォルトの名無しさん:2007/11/11(日) 21:29:31
2003でTextBoxを継承して、数字しか入らないようにとか、いくつかカスタマイズして使っているのだけど、
VSでフォームを開いてみると、カスタマイズしたTextBoxが表示されてないことがあります。
(コードを実行すると表示される)
大体はリビルドするとなおるのだけど、どうしても直らないこともあって、動作がいまいち不安定です。

これってこんなもんなんでしょうか?
それとも、普通はこんなことはなくて、自分のところだけのことなんでしょうか?
690デフォルトの名無しさん:2007/11/11(日) 21:30:25
あるある
691デフォルトの名無しさん:2007/11/11(日) 21:33:44
>>689
単なる俺の経験則で根拠はないけど、
継承コントロールが、それを使ってるフォームと同じプロジェクトにあると
そういう問題が発生するみたいな気がする。

少なくともプロジェクトを分ければそういう問題は発生しないと思うよ。
でも循環参照の問題でそれが困難な場合があるから困るんだよね。。
692デフォルトの名無しさん:2007/11/13(火) 21:30:56
イベントログのAPI ReadEventLogで教えてください。

  '--- イベントログファイルを読み込み
  Private Declare Auto Function ReadEventLog Lib "advapi32.dll" _
    Alias "ReadEventLogA" ( _
    ByVal hEventLog As Integer, _
    ByVal dwReadFlags As Integer, _
    ByVal dwRecordOffset As Integer, _
    ByRefl lpBuffer As EVENTLOGRECORD, _
    ByVal nNumberOfBytesToRead As Integer, _
    ByRef pnBytesRead As Integer, _
    ByRef pnMinNumberOfBytesNeeded As Integer) As Integer

と定義して

  ReadEventLog(hEventlog, EVENTLOG_SEQUENTIAL_READ Or
          EVENTLOG_FORWARDS_READ, _
          0, lpBuffer, BUFFER_SIZE, pnBytesRead, pnMinNumber)

と呼び出したところ、以下のエラーが表示されました。
PInvoke 関数 'ManagedEventLog!ManagedEventLog.frmMain::ReadEventLog' が
スタックを不安定にしています。PInvoke シグネチャがアンマネージ ターゲッ
ト シグネチャに一致していないことが原因として考えられます。呼び出し規
約、および PInvoke シグネチャのパラメータがターゲットのアンマネージ シグ
ネチャに一致していることを確認してください。

エラーを表示させずに実行させるアドバイスをいただければと思います。
693デフォルトの名無しさん:2007/11/13(火) 21:33:12
各項目の定義は以下です。
  '* 定数
  Private Const EVENTLOG_SEQUENTIAL_READ = 1
  Private Const EVENTLOG_SEEK_READ = 2
  Private Const EVENTLOG_FORWARDS_READ = 4
  Private Const EVENTLOG_BACKWARDS_READ = 8
  '* 構造体
  Public Structure EVENTLOGRECORD
    Public Length As Integer
    Public Reserved As Integer
    Public RecordNumber As Integer
    Public TimeGenerated As Integer
    Public TimeWritten As Integer
    Public EventID As Integer
    Public EventStructure As Short
    Public NumStrings As Short
    Public EventCategory As Short
    Public ReservedFlags As Short
    Public ClosingRecordNumber As Integer
    Public StringOffset As Integer
    Public UserSidLength As Integer
    Public UserSidOffset As Integer
    Public DataLength As Integer
    Public DataOffset As Integer
  End Structure

  Dim hEventlog As Integer

  Dim lpBuffer As EVENTLOGRECORD
  Dim pnBytesRead As Integer
  Dim pnMinNumber As Integer
694デフォルトの名無しさん:2007/11/14(水) 02:06:48
>>687
はい。やはり、1行ずつ書いた方が楽かもしれません。
ありがとうございました。
695デフォルトの名無しさん:2007/11/15(木) 10:53:40
Visual Studio 2005 vb.net で質問です。

Windows Forms 上に Excel ファイルを表示させたいのですが
なにかよい方法はないでしょうか?

Excel の内容の表示のみで編集などは一切不要です。
ただし Excel にはグラフ、画像などが貼ってあるので
それらも表示させたい。

実現させるために、よい方法があれば教えてください、よろしくお願いします。
696デフォルトの名無しさん:2007/11/15(木) 11:08:58
697デフォルトの名無しさん:2007/11/15(木) 11:38:15
質問です。
Graphics.DrawStringメソッドの引数StringFormat
にStringFormatFlags.DirectionRightToLeftを指定して
実行すると
指定文字列="(AB)C."に対して
画面上は.AB)C)となります。
この変換処理には関心するばかりですが、
この"(AB)C."文字列からRightToLeftした結果の".AB)C)"という
文字列を取得する方法はあるのでしょうか?
698デフォルトの名無しさん:2007/11/15(木) 19:37:43
>>697
関心するっていうか、バクじゃないのこれ?

DirectionRightToLeftって指定した四角の右辺か、指定した座標を起点に
右から左に向かって描画しろって意味のはずだよね。
こんな妙な細工をする仕様に意味があるとも思えないけど
699デフォルトの名無しさん:2007/11/15(木) 19:38:37
わしもそう思った
700デフォルトの名無しさん:2007/11/15(木) 21:02:37
".C(BA)"

が本来の結果ってこと?
701デフォルトの名無しさん:2007/11/15(木) 21:40:52
いや、>>697みたいな変な(?)文字じゃなくて普通の文章でやればわかると思うし、
MSDNライブラリを普通に読めば、単に指定された点または四角の領域にたいして
右寄せで描画するのが本来の仕様じゃないの?
702デフォルトの名無しさん:2007/11/15(木) 21:43:47
しかし括弧がはずれてしまうのは明らかにおかしいでしょ
703697:2007/11/16(金) 14:15:43
>>701
私も最初はたんに右寄せというのを期待したのですが、
調べてみるとRightToLeftというのはアラビア語や日本語縦書きの様に
右から左へ書く為の機能であり、且つ左から右へ書く言語との
共存を意識した結果、こういう機能に至ったのだと判断しました。

例えばアラビア語と英語の混在では
"アラビア ABC" → "ABC アビラア"となるようです。

今回の場合、"."や"()"は、単体であれば右から左へ書く言語として
扱いアルファベットに挟まれていると左から右へ書く言語と
なっているんだと思います。
"(AB)C."これは
最初の"("を右から左へ書く言語として判断し括弧を反転させた。
次にABの後にスペースが無い為"AB(C"までを一つの左から右へ書く
言語として扱い、
最後に"."を扱った結果、
".AB)C)"になったと推測しています。

(MSDNに確認しろよ自分と思いましたが先に2ちゃんでry

これを自前で処理するのはちょっと時間が掛かりそうなので、
RightToLeftした結果の文字列を取得できるような機能が
用意されていないのか聞きました。
すみません。自分で探せ、ですよね。
704デフォルトの名無しさん:2007/11/16(金) 18:26:25
質問です。
.net compact framework 使っているのですが、
タブ遷移のような動作を行う場合に
Me.SelectNextControl(Me.activecontrol, True, True, True, True)
を使うことはできないのでしょうか?

どうやらactivecontrolがないっぽいです。
705デフォルトの名無しさん:2007/11/16(金) 18:39:45
SendMessageじゃだめすか?
つうかTabIndex設定したらTAB遷移は普通にけないか?
706デフォルトの名無しさん:2007/11/16(金) 19:08:09
>>705
ありがとうございます。
なんかいろいろありまして、X01HTのハードウェアボタンを取得して
それにタブ機能つけることに・・・
どのボタンが対応しているかすらわからない・・・
とりあえず、タブ機能だけ考えようかと・・

>SendMessageじゃだめすか?
MessageWindow.SendMessage()のことですよね?
サンプル見たのですがよくわかりません。

へたれで申し訳ございませぬ OTL

707557:2007/11/16(金) 22:42:26
>>557で質問した者です。
WebBrowserコントロールを使用して
Navigateメソッドでパスを指定することにより、任意のフォルダ内のファイルを表示させる
ところまではうまくいきました。
この時、ファイルの表示スタイル(縮小版、並べて表示etc)を、
右クリックのコンテキストメニューで指定するのではなく、
プログラム内部で制御したいのですが、方法がどうしてもわかりません。
ヘルプのメンバ一覧を見てもそれらしきプロパティやメソッドは無かったです。
出来ればWindowsエクスプローラのファイル表示方法をフォルダ毎に取得して、
表示スタイルを同期出来ればベストなんですが、WebBrowserコントロールでは
そういう事は不可能なんでしょうか?

長文すいませんです。
708デフォルトの名無しさん:2007/11/16(金) 23:36:18
テキストファイルの編集で質問です。

数万行のテキストファイルがあり
末尾の改行コードしかない行だけを削除したいのですが

何か高速に末尾から読み込んで判断する方法はあるでしょうか?

ご存知でしたら教えてください。
709デフォルトの名無しさん:2007/11/16(金) 23:40:58
>>708
普通に処理するより高速にしたいの?
710デフォルトの名無しさん:2007/11/16(金) 23:53:19
>>709
はい。
数万行ならStreamReaderでも良いかと思ったのですが
ファイルが複数ありかつ1ファイルが90MBくらいあるので性能が気になります。

何か方法がありますか?
711デフォルトの名無しさん:2007/11/17(土) 00:35:00
>>710
普通の処理ってのは、FileStreamあたりで、ファイルの最後までseekさせて、最後の4バイトが、
CRLFCRLFになっていたら、ファイルサイズを2バイト縮めるってのを考えたたんだけど。
712デフォルトの名無しさん:2007/11/17(土) 00:48:32
>>708
最後の空行だけを削除したいってんなら、

Dim str as String = System.IO.File.ReadAllText(filepath)
Dim output as String = str.Replace(vbCrLf & vbCrLf , vbCrLf)

Call System.IO.File.AppendAllText(newfilepath , output)

こんなんでどうでしょうか?
713デフォルトの名無しさん:2007/11/17(土) 00:58:51
>>712
途中の空行も削除しない?
714デフォルトの名無しさん:2007/11/17(土) 01:06:06
bcpにパイプは使えんのか。
715704:2007/11/17(土) 01:18:51
>>706 なんとなくですが動きました。
項目の数だけイベント作って、ハンドル変更して実現してるのですが、
もっとうまい方法とかあれば教えてください。
716デフォルトの名無しさん:2007/11/17(土) 02:52:05
>>712
おまえは90MBのファイルにそんなことするんかいw
717デフォルトの名無しさん:2007/11/17(土) 11:31:26
CSV作るコードとかでも、全部メモリ上で作成してから
ファイルに書き込むコードを書く奴が多い。
サイズが大きくなったときにどうなるかとかはあまり考えないんだろうな。

でも文字列の連結を+でやることにはめちゃめちゃ過敏だったりする。
718デフォルトの名無しさん:2007/11/17(土) 13:28:35
>>717
でもそれって理念的には必ずしも間違いとはいえないんじゃない?
Win環境を前提とした現実解としてはたぶん間違いだろうけど。
719デフォルトの名無しさん:2007/11/17(土) 13:58:44
理念てどういうのを言ってる?
理由があってそうしてて想定されるサイズからも
問題ないなら別に文句無いけど、
深く考えてないだけで後で問題になるケースをよく見る。
720デフォルトの名無しさん:2007/11/17(土) 14:54:30
低レベルな質問ですがよろしくお願いします。

つかわないインスタンスを無駄に作らないように、下のような繰り返し構造の中で
オブジェクトの生成や変数宣言をしていて、何度か同じ宣言を通過することがあります。

こういうやりかたは問題がありますでしょうか

Do

 '処理いろいろ

 If i = 1 Then
    Dim str As String
   '処理いろいろ
 End If

Loop
721デフォルトの名無しさん:2007/11/17(土) 15:11:46
目的とやってることが逆
インスタンスを無駄に作りたくないんだったら中じゃなくて外で作る。
ループの中で変数宣言すること自体は全く問題ないけど
(むしろ中でしか使わないなら極力そうするべき。その方が見やすい。)
重いクラスのオブジェクトをループ内で何回も作りまくったりすると
遅くなったりメモリがえらいことになるかもしれないから、外で作って使いまわすとか
場合ごとに適当に判断するしかない
722デフォルトの名無しさん:2007/11/17(土) 15:25:09
>>721
なるほど、こういうことを説明してくれるところが
なかなか見つからなかったので大変勉強になりました。

使用する範囲や頻度、重さなどを考えて(オブジェクトは重複しないように)使いまわせるものは
外で作るようにがんばってみます。
ありがとうございやした
723デフォルトの名無しさん:2007/11/17(土) 15:41:04
なぜなら説明しなくても見たままだから。
724デフォルトの名無しさん:2007/11/17(土) 17:25:13
他人のコードを見るときは、宣言がメソッドの先頭に無いと分かりづらいなぁ
725デフォルトの名無しさん:2007/11/17(土) 18:00:25
VB6と両方使ってるならそこはいろいろ非互換がある部分だから、
宣言は先頭にもって行ったほうが安全だ。

VB6だとこういう変態的なことが出来る。
Do While True
  Dim A As Double
  A = Rnd()
  If A > 0.5 Then Exit Do
Loop
Debug.Print A
726デフォルトの名無しさん:2007/11/17(土) 18:02:41
スコープって何? それおいしいの?
727デフォルトの名無しさん:2007/11/17(土) 18:14:48
>>724
すまんそれもちろんネタで言ってるんだよね?
ひょっとして本気で言ってるの?
728デフォルトの名無しさん:2007/11/17(土) 19:16:09
メソッドの先頭に必ず
Dim i, j, k, l, tmp, buf As Integer
とかコピぺする人なんだよきっと
729デフォルトの名無しさん:2007/11/17(土) 19:31:59
どの言語でも、関数の先頭で変数宣言をするほうがいいと思ってる人っているけど、
あまりに勉強不足すぎる。
730デフォルトの名無しさん:2007/11/17(土) 19:35:15
先頭にまとめてると自然にgoto的なコードを書いちゃう
731デフォルトの名無しさん:2007/11/18(日) 13:08:29
お世話になります。どなたか教えてください。
インターフェース内の抽象メソッドの名前を、そのインターフェースを実装したクラスでリネーム不可能にすることは出来ますか?
例えば

●インターフェース
Public Interface ITest
  Sub hoge(ByVal hoge As String)
End Interface

●上記を実装するクラス
Public Class test
  Implements ITest
  Public Sub hoge(ByVal hoge As String) Implements ITest.hoge
        ↑ここを変更不可にしたい。
  End Sub
End Class

デフォルトだと、hogeの部分が自由に変更できてしまいます。
そもそもなんで変更できちゃうのでしょうか?
変更できるのならインターフェースを実装する意味があまりないような気もします。
732デフォルトの名無しさん:2007/11/18(日) 13:13:24
名前をそろえるのがインターフェイスの目的じゃないからね
インターフェイス経由でアクセスするときは名前が変更されてても常にhogeで問題ないよ
気に入らなかったらC#使え
733デフォルトの名無しさん:2007/11/18(日) 14:08:19
>732 どうもありがとうございます。

>インターフェイス経由でアクセスするときは名前が変更されてても常にhogeで問題ないよ
試してみました。
確かにクラスをインターフェースにキャストすれば、インターフェースでのメソッド名でアクセス可能ですね。
安心しました。

>名前をそろえるのがインターフェイスの目的じゃないからね
Javaではそういった感じでしたが…。
外ッ面を統一するからこそ”インターフェース”という名称であると認識しています。
VBだと他に目的があるのですか?
734デフォルトの名無しさん:2007/11/18(日) 14:18:25
インターフェイス経由でアクセスできさえすればいいわけで
VB.NETやC#では、インターフェイスメンバをprivateにして実装することもできるんだよ
もちろんインターフェイス経由なら外部からアクセス可能
735デフォルトの名無しさん:2007/11/18(日) 14:39:13
Public Interface ITest2
    Sub hoge(ByVal hoge As String)
End Interface
"も"実装したくなったときのためってのもある
736デフォルトの名無しさん:2007/11/18(日) 14:48:27
javaだって名前を揃えるのが目的じゃない。
インターフェイスをちゃんと理解してたら、
そんな風には思わない。
737デフォルトの名無しさん:2007/11/18(日) 16:37:08
Windowsのユーザーアカウントの一覧リストをプログラム上で表示して
そこからアカウントを選択するようなことをする場合、ユーザーアカウントの
リストを得るためのクラスがあればうれしいのですが、どのようなものがある
でしょうか?よろしくお願いします。
738737:2007/11/18(日) 16:39:04
>>737追記
また、そのリストを、Domain上のユーザーアカウントに対しても取得したい
場合にも有効なクラスであれば尚ありがたいです。
739737:2007/11/18(日) 23:45:45
>>737
アクティブ ディレクトリのユーザーリストを取得する方法
http://www.microsoft.com/japan/msdn/vbasic/migration/tips/DirectoryUser/


ここのサンプルで与えられているような方法があることがわかりましたが、
ここでActiveDirectoryの子ノードという形での取得の仕方の場合では

   WinNT://TestPC

という形式で特定のPCをしているようでした。

これを、スタンドアローン、もしくは単なる(ドメインでない)WorkGroup上のPCの場合
ではPCの名前の与え方というのはどのようになるでしょうか。

System.DirectoryServices.DirectoryEntryオブジェクトのPathプロパティの与え方
ということになりますが、その一般形式について教えてください。よろしくお願いします。
740737:2007/11/18(日) 23:47:29
>>739 訂正
>WinNT://TestPC
>という形式で特定のPCをしているようでした。

>WinNT://TestPC
>という形式で特定のPCを指定しているようでした。
741737:2007/11/19(月) 00:05:06
>>739 本件、Helpに記載がありました、失礼致しました。
742デフォルトの名無しさん:2007/11/19(月) 03:22:44
メソッド名が格納されたStringの変数がある状態で
その変数から格納された文字列の名前のメソッドを呼び出すのは
どうすればよいでしょうか?
ObjectDataSourceのSelectedMethodのようなプロパティを実装することが
目的です。
よろしくお願いします。
743デフォルトの名無しさん:2007/11/19(月) 03:27:17
ObjectDataSourceのSelectedMethodで取得した名前からどうしているのか聞こうか
744742:2007/11/19(月) 03:57:04
>>743
すみませんどういう意味ですか?
ObjectDataSourceのSelectedMethodのように変数名を受け取るプロパティを定義したのはよいのですが
別の場所で受け取った文字列のMethod名から実際に呼び出す方法がわからなくて悩んでいます。
ObjectDataSourceのSelectedMethodは例で特に今回の話は関係ありません。

dim s as string ="Method1"

「s」からこんな感じでメソッドを呼び出したいのです。
AllMethods(s)()

メソッド名の文字列から該当する名前のメソッドを呼び出す方法、ですね。
745デフォルトの名無しさん:2007/11/19(月) 05:37:29
>>744
System.Reflection
746デフォルトの名無しさん:2007/11/19(月) 12:19:29
ここでいいか分からないけど、
普通のC/SシステムでDBアクセス部分だけC#で作って
他はVB.netにするメリットはありますか?

何故か今の現場はC#の方が速いらしく導入しているみたいですが、
結局フレームワーク上で動くから同じような気がするのですが・・・。
747デフォルトの名無しさん:2007/11/19(月) 12:27:22
RichTextBox で LinkClickedイベントが立ったときに、そのリンクの場所を
知る方法はあるでしょうか。

e.LinkText を Search しても同じものが複数あるときに一意に定まりません。
MouseDownした場所などからでも該当箇所を知るようなことはできるでしょうか?
748デフォルトの名無しさん:2007/11/19(月) 12:30:31
>>747
ちなみにLinkClickedEventArgsでは該当の位置等は取得できないためです。

これの目的は、2バイト文字があるとLinkTextにすべて含まれてくれないので
それをすべて取り込むために一行すべてを認識するためです。
こういうことは不可能でしょうか?
749747:2007/11/19(月) 13:02:58
>>747-748
どうやら関連するメソッドがありそうでした!ありがとうございました。
750デフォルトの名無しさん:2007/11/19(月) 18:20:28
最後に勝利するのは

 コ ボ ラ ー

751デフォルトの名無しさん:2007/11/19(月) 20:12:39
コボルネタは巣に(・∀・)カエレ
752デフォルトの名無しさん:2007/11/19(月) 20:29:56
VB2005です。いつもはPartialで分かれている「デザイナで生成されたコード」
がいつのまにか本体に入ってきてしまいました。
どうしたら元のように分けることができますか?
753デフォルトの名無しさん:2007/11/19(月) 22:22:26
WindowsアプリケーションのDateGridViewのヘッダー部分を2行にしたいのですがどうやれば良いのでしょう?
検索するとASPのやり方はたくさん出てくるのですが・・・助けてください。。。

↓こんな感じのことがやりたい。。。
NO| なまえ |住所 |
 |  性| 名 |   |
754デフォルトの名無しさん:2007/11/19(月) 23:00:46
DataGridViewを継承したユーザーコントロール作成してヘッダのデータを2行分持ったりなんかして
オーナードローすればいいんじゃね?
755デフォルトの名無しさん:2007/11/19(月) 23:42:46
VB.NET2003で、「c:\・・\hoge(1)」みたいに、ディレクトリ名に"()"が入ってるところで下のコードを
実行すると必ず接続に失敗する現象に今日一日はまった。

dim conn as new OracleConnection(・・・)
conn.Open() ' 必ず失敗

フォルダ名を「c:\・・\hoge-01」とリネームするとうまく実行できるようになる。
わけわからん。
756デフォルトの名無しさん:2007/11/20(火) 01:55:41
>>755
> VB.NET2003で
じゃなくて
> OracleConnection
で、だろ
757742:2007/11/20(火) 02:32:06
>>745
ばっちりです。
ありがとうございました。
758デフォルトの名無しさん:2007/11/20(火) 05:06:13
デスクトップマスコットを作りたいのですが、どうやって作ったらいいか思い浮かびません
サンプルソース等参考になるものはないでしょうか?
759デフォルトの名無しさん:2007/11/20(火) 13:15:18
ググレカス
760デフォルトの名無しさん:2007/11/20(火) 14:02:10

CONTECのDIO(DIO-24DY-USB)から出力されるビットを監視して、
立上りでマウス左ボタンDOWN、立下りでマウス左ボタンUP
といった動作をさせるツール(VB2005)を製作したのですが、
こんな自作ツールを使わずにハードウェアだけで実現させる事のできる装置はあるのでしょうか?
761デフォルトの名無しさん:2007/11/20(火) 15:47:49

Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\user\My Documents\Mu.mdb")
Dim SQLCm As OleDbCommand = Cn.CreateCommand
SQLCm.CommandText = "UPDATE テーブル1 SET Count = Count+1 WHERE ID = 2"
Cn.Open()
SQLCm.ExecuteNonQuery()
Cn.Close()
MsgBox("変更しました。")

SQLCm.ExecuteNonQuery() の所 で'『 System.Data.OleDb.OleDbException' のハンドルされていない例外が system.data.dll で発生しました。』 と出て、データの変更が出来ないのですが
どうすればよいでしょうか。 よろしくお願いします。
762デフォルトの名無しさん:2007/11/20(火) 15:50:32
マウスクリックで接点がつながってるはずだから
マウス分解してその接点つながったことにするような回路作ればいいんじゃね?
763デフォルトの名無しさん:2007/11/20(火) 15:51:37
SQLだけをACCESSに投げたら成功しますかい?
764デフォルトの名無しさん:2007/11/20(火) 16:00:48
>>763 日本語を書けよ、しかもスレ違い
765デフォルトの名無しさん:2007/11/20(火) 16:02:09
つーか、このスレ不親切だから、VB基地害脳のDQNの集まりw
766デフォルトの名無しさん:2007/11/20(火) 16:10:22
>>761
コード見た感じではエラーが見当たらないので、まずはコネクション
だけとか、ある程度限定したところでやってみるしかないと思う。
767デフォルトの名無しさん:2007/11/20(火) 21:28:20
Windowsアプリケーションにおける Thread についていまひとつよく理解できて
おりません、すみませんが教えてください。

Help等のサンプルを見ましたところ、Threadを作成するということ、イコール、
ある一つのSubプロシージャを、平行実行するThreadとして割り当てるという
ものののようでしたが、

これはメインのThreadである、スタートアップForm上のように、イベントドリブンでの
書き方で制御を表すようなことは不可能なのでしょうか?

独立した複数のアプリケーションを、マルチプロセスで平行実行させてその間を
DDEやOLEなどで通信して連動的に並行的処理を進めるというようなことを、
マルチThreadの方式で実現したい場合、

ThreadをどれかのSubプロシージャに割り付けるということをしますと、その内部で
イベントドリブンにするということができなくなるものと思われ、やはり不可能なのか
と思いました。そうなるとそのSubプロシージャ内ではループを回して常にCPUが
休まることがない状態に置かれてしまうと。

こういう理解でよいものでしょうか、いまひとつ理解しきれていません。
ご指導のほど何卒よろしくお願いします。
768767:2007/11/20(火) 21:37:55
たとえば、ですが、FileSystemWatcherの動作は、SyncronizedObjectを設定しなければ
ThreadプールというFramework内のシステムで持っているThreadにおいて実行されると
説明されていまして、

この場合、それでも、FileSystemWatcherのイベントは、メイン側、つまりユーザーアプリケーション
のメインThread側に伝えられてきて、なんらかの処理が可能になっていました。

これは、Frameworkの備え付けのThreadプール内のどれかの或るThread内でイベントを
発生させているものと思われ、

ということは、Thread内でのイベントドリブンという制御フローは存在できるのではないか、
とも考えられたのですが、

もしそうであれば、それと同様に、いわゆるThread.Startで実行される特定のSubプロシージャ
内でも、イベントドリブンの制御に近いことが可能になるものなのでしょうか。
すみませんがよろしくお願い致します。
769デフォルトの名無しさん:2007/11/20(火) 21:56:26
mdbのアクセスはADOでやってる☆(ゝω・)v
770デフォルトの名無しさん:2007/11/20(火) 22:04:37
意味不明
771デフォルトの名無しさん:2007/11/20(火) 22:23:10
なんで日本語のはずなのにこんなに読みづらいんだろう

基本的にスレッドは使い捨てと考えた方が気が楽になるよ
772デフォルトの名無しさん:2007/11/20(火) 22:27:45
読点の使い方がおかしいからでは
773デフォルトの名無しさん:2007/11/20(火) 23:19:09
イベントドリブンとマルチスレッディングって直交する概念だぞ。
ごっちゃにしても何も新しいものは出てこない、ただ組み合わさるだけ。
774デフォルトの名無しさん:2007/11/20(火) 23:21:11
プログラマって文章下手な人結構多いよね
たぶん、精査せずとりあえず書いちゃう人が大多数だろうけど
775デフォルトの名無しさん:2007/11/20(火) 23:26:44
俺は少数派なのか。
776デフォルトの名無しさん:2007/11/20(火) 23:35:28
あんま関係なかろう。
777767:2007/11/21(水) 00:09:49
>>773
>イベントドリブンとマルチスレッディングって直交する概念

ということは、やはりThreadクラスで作られるスレッドの中には何かのオブジェクトを
コンストラクトして、それのイベントが立つのを待っているような「アプリケーション」の
形は書けないということなんでしょうか、、

>>768のFileSystemWatcherの場合はどのようにしてそれが実現しているのか
よくわからないんですが、あれってのは現実にFileの変化をイベントとして送って
来ますよね、あれができてるということは、Threadオブジェクトの中でもできそうな
感じがしたのですが、やっぱりできないものでしょうか・・・。
778デフォルトの名無しさん:2007/11/21(水) 00:16:26
て言うか何が分からんのかが分からんのよね
素直に BackgroundWorker 使ってればいいんじゃない?
779767:2007/11/21(水) 00:16:49
>>771
ということは、アプリケーションが始まると同時にスタートし、終了の手前で止める、
みたいな使い方は普通はしない、ということでしょうか。

とすると、やはりイベントドリブン制御は望むべくもないと・・・。
そういうものはマルチプロセスでプロセス間通信でやるしかないと・・・いうことでしょうか。
780デフォルトの名無しさん:2007/11/21(水) 00:20:22
>>778
BackgroundWorkerですが、これではイベント発生ように渡せる引数が限られている
感じがしたのですが。それと、やはり内部ではループを回していることにはかわりない
ような感じもしました。また勉強してみます。
781デフォルトの名無しさん:2007/11/21(水) 00:24:59
自分で定義したクラスのインスタンスを渡せばいいだけだと思うけど、そういう話ではない?
もしそういう話だとしたらスレッド云々より遥か以前の問題だと思うけど
782デフォルトの名無しさん:2007/11/21(水) 00:43:49
>>777
直交って言葉知っている?
マルチスレッドにしたからといって、
イベントドリブンができないというというのは間違いだと言っているのだが。
783デフォルトの名無しさん:2007/11/21(水) 00:55:58
>>778
なんのために引数がObjectになっているかわかってないんじゃね?
784デフォルトの名無しさん:2007/11/21(水) 00:57:07
正直何が疑問で何が聞きたいのかさっぱりわからない。
785デフォルトの名無しさん:2007/11/21(水) 00:59:18
とりあえずThread起こして、そのスレッドでForm.ShowDialog()でもしてみたら?
ボタンとか付けてみて、イベント起こしてみたら?
そいでIllegalCrossThreadCallのExceptionのひとつでも起こしてみたらよかよ
786デフォルトの名無しさん:2007/11/21(水) 01:44:02
つうか、こういうやつにBackGroundWorker使わせるのは危険だな
いや・・そういうやつのために安全につくってあるんだろうけど・・・・

一回はスレッドをコントロールに頼らず作らせたりして勉強すべきなんじゃないかと・・・
787デフォルトの名無しさん:2007/11/21(水) 02:27:42
いやむしろスレッドなんか触らせない。
勉強させても無駄。
788デフォルトの名無しさん:2007/11/21(水) 05:07:41
サンプルプログラムとかをいじり倒せばいいのに。
机上で理解しようとしてわかんねーと言う奴多すぎ。
机上で理解とか俺だって無理。
789デフォルトの名無しさん:2007/11/21(水) 08:47:51
まあ最初はね。
790デフォルトの名無しさん:2007/11/21(水) 08:49:27
スレッドは机上で論理的に考えられなきゃまともには使えない。
791767:2007/11/21(水) 09:44:46
みなさんどうもありがとうございます。

わたしのできればの要求は、メインスレッドと同じように内部でコントロールを配置して
それらの発するイベントを検知してそれによって制御ルーチンが移動するものにして、
かつメインスレッドと対等な関係で並行して伴奏実行して存在する第2、第3、のスレッド
ができるのなら助かるということでした。

どうもサンプルみた限りではそういう構造では存在していないように感じるのですが、
どんなものでしょうか?
792767:2007/11/21(水) 09:46:25
要するに、プロセスの内部版がスレッドということなら、単純に理解しやすくて
かつ有用なのではないかということでした。そういうようなものはこの世には
存在しないのでしょうか。
793デフォルトの名無しさん:2007/11/21(水) 10:18:21
VB.NETで作成した実行ファイルExeを実行中にエラーが起きたとき、
「デバッグしますか?」と出てきてそれを選ぶとアセンブラのニーモニック表示
でコードが出てきてエラーした場所を示して停止していました。

そこでですが、その場所がソースコード上のどこに該当するのかを知るには
どのようにすればよいでしょうか。よろしくお願いします。
794デフォルトの名無しさん:2007/11/21(水) 11:11:37
>>793
コンパイルの意味分かってる?
795デフォルトの名無しさん:2007/11/21(水) 11:40:18
>>794
やっと「逆アセンブル」メニューをHiddenから表に出せるようになりましたが、
そこでどこら辺で止めてエラーしたアドレス近辺を表示できるかためそうとしてました。
こんな感じでいつかそこが出せればいいんでしょうか?

ソースレベルでデバッグしてもエラーしたところで何も表示されず、OSレベルか
.NETのRuntimeレベルでのエラー表示しか出ず、ソースではとまってくれない
エラーなので困ってました。
796デフォルトの名無しさん:2007/11/21(水) 12:11:31
>>792
「スレッド メッセージループ」
で、ぐくれや、ハゲ。
797デフォルトの名無しさん:2007/11/21(水) 13:17:34
>>795
>OSレベルか.NETのRuntimeレベルでのエラー表示

これですが、メッセージは

「〜の 0x766da3bc でハンドルされていない例外が発生しました:
0xC0000005: 場所 0xb2ac0005 を読み込み中にアクセス違反が発生しました。」

というもので、それに前後して出る.NET用のメッセージボックスで

 「問題が発生したため、〜を終了します。ご不便をおかけして申し訳ありません。」

となって、その左下の[デバッグボタン]を押して出る、「エラー署名」のところに、

 「 ModName: wininet.dll 
   ModVer: 6.0.2900.3199   Offset: 0007a3bc 」

と表示されていました。

これはwininet.dllのネイティブコード上の場所なんだと思いますが、その呼び出し元が
自分のソースコード上のどこなのかがわかればと思ったのです。自分ではそれを直接Call
してないので、WebBrowserがCallしているのだと思います。

この不具合は、2ch用のJaneStyleをいっしょに使っているときに、IEやWebBrowserアプリケーション
でそのネイティブ・コンテキストメニューからURLショートカットを作成したときに発生し始めます。

これはJanestyleを使わないでいれば発生しません。なのでおそらくWininet.dllとJaneStyleが
.NETを使ったときに何か絡まってエラーを引き起こしているのだと推測していましたが、
これでは.NETでWebBrowserアプリケーションが作成できないことになって困るのでした。
798デフォルトの名無しさん:2007/11/21(水) 13:22:10
>>797
それでみなさんのところではこうした問題は起きていないようでしたので、
WebBrowserの使い方で回避策があればそれを適用して直せないものか
とも思ってました。
こんな感じなのですが、何かアドバイス等いただけたらありがたく。
799デフォルトの名無しさん:2007/11/21(水) 13:33:20
ちなみに、この>>797のエラーが発生してしまうとその後でJaneStyleを終了して
も直らず、最終的にはWinXpの再起動でしか回復しなくなり困っていました。
(みなさんのところではこれに類する似たような不具合はやはり起きていないでしょうか)
800デフォルトの名無しさん:2007/11/21(水) 14:23:31
どうしても、ここの部分でエラーがでます。bitmapの情報を保存したいのですが、どう書き換えればよいですか!?
vb.netで書き換えたいです。
open (fname) for binary as#1
put #1, , bmp
For j = 0 To 256 - 1
buf = ("")
For i = 0 To 256 - 1
buf = buf & Chr$(i) & Chr$(i) & Chr$(i)

Next i
put #1 , , buf

Next j
close #1
801デフォルトの名無しさん:2007/11/21(水) 15:08:31
>>791
ようするにコントロールの発したイベントの処理を別スレッドで行いたいということか。
それなら、コントロールのイベント処理の中で、新しくスレッドを起こせばよいのではないのか?
802デフォルトの名無しさん:2007/11/21(水) 17:42:29
ToolStripコントロール上に載せられるコントロールで、Anchorが設定できて自動で
伸縮するものはあるでしょうか。ComboBoxやTextBoxでそれができるといいんですが。
803デフォルトの名無しさん:2007/11/21(水) 17:42:50
変なスレ 基地害の集まり ( ゚д゚)、ペッ
804デフォルトの名無しさん:2007/11/21(水) 17:51:01
>>797
デバッガ上で呼出履歴ってVB.NETだと見れなかったっけ?
805デフォルトの名無しさん:2007/11/21(水) 18:42:35
>>761 ウチ風の書き方だとこんな感じ

Dim cn As New OleDbConnection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\user\My Documents\Mu.mdb;Persist Security Info=False"

Dim cmd As New OleDb.OleDbCommand
cmd.Connection = cn
cmd.CommandText = "SELECT * FROM テーブル1"

cn.Open()
Dim rs As OleDb.OleDbDataReader
rs = cmd.ExecuteReader

rs.Close()
cn.Close()
806デフォルトの名無しさん:2007/11/21(水) 18:49:25
>>804
どこかでエラーでとまってくれれば、その時点で履歴がある程度出るはずですが、
とまってくれません。エラーの出方はそこのUrlショートカット作成時と、WebBrowser
がNavigationするときの両方があるのですが、そrも不定期でそうなったりならなかったり
しているうちに、しまいにハングして触れなくなって飛ぶというようになります。
Urlショートカット作成時は結局自分のコードは動いていないため、WebBrowserが
Wininet.dllの内部のAPIを使っているときに起きているのだと思いました。

みなさんのところでそれが無いということは、WebBrowserの使い方でどこかに不備が
あるのかもしれません・・・。その辺また見直してみます。

本件はまたとします、いろいろありがとうございました。
807デフォルトの名無しさん:2007/11/21(水) 18:50:50
一応、ホラ初心者と名前のついていないスレだからサ。
不親切とか騒ぐくらいなら、初心者スレ探してくれ。
なければ立てろ。
808デフォルトの名無しさん:2007/11/21(水) 18:52:58
>>806
Visual Studioって実行中のプロセスをデバッグするなんてこともできるぞ。
ハングアップした段階でアタッチしてみたらどうよ。
809デフォルトの名無しさん:2007/11/21(水) 21:59:13
てゆーか、どう見ても環境の問題じゃあないですか?
810デフォルトの名無しさん:2007/11/22(木) 02:41:44
VS2005を使っている者です。
MenuStripのショートカットキーの表示に不具合が出てしまいます。
(何故か、Ctrl, Shift, Altの表記だけがダブってしまいます・・・。)
因みに、表記はダブっていますが、キー割り当て自体は正常に動いて居ます。
これについて、何方か解決策をご存じないでしょうか?

参考画像:http://nanami-city.info/files/20071122023457.png
811デフォルトの名無しさん:2007/11/22(木) 03:22:41
>>810の補足です。
>>810の現象は、デバッグ中には見られませんが、
bin/Debugやbin/Releaseの中にあるexeの方では見ることが出来ます。

デバッグ中には起きなくて、exeとして吐き出したものだと起きるという事は、VS2005のバグなのでしょうか・・・?
812デフォルトの名無しさん:2007/11/22(木) 07:00:53
普通はそんなことにはならないと言うことは知ってる
813デフォルトの名無しさん:2007/11/22(木) 09:58:20
もともとダメなつくりの奴の問題がリリース版で表に出ることはある。
814デフォルトの名無しさん:2007/11/22(木) 17:26:58
vb.netでは、bitmap構造体をかえられないですか!?例えば、プレーンの数とか!
どうか、お願いします。
815デフォルトの名無しさん:2007/11/22(木) 20:15:14
無理!
816デフォルトの名無しさん:2007/11/22(木) 20:47:26
>>812,813
開発はWindowsVistaでやっているので、もしかするとそれが問題なのかも知れません・・・
(VistaのOSとしての不具合?)

Debug版、Release版ともにVista上でビルドし起動すると、依然として>>810の状態になりますが、
そのEXEを、XPに持ってくると、何故か>>810の状態にはならず、ショートカットキーの表示がダブらなくなり、普通になります。

因みに、XPでビルドしたEXEをVistaで動かしても>>810の状態になります。

また、手を加えずにビルドを繰り返していると、
稀にショートカットキーの情報が消滅したり、正常な表示になることもありました。
(しかし、VistaでなくXPで動かすと、そんなことは全然関係ないかのように、常に正常な表記になりました。)

因みに、自分のVistaだけが問題なのか?と思い、知り合いのVistaマシンで動かして見たりもしましたが、結果は変わりませんでした。
817デフォルトの名無しさん:2007/11/22(木) 20:54:54
取りあえず最小のコードを書いてみろ。
新しくプロジェクト起こしてMenuStripはっつけただけの。

ちなみにおいらのVistaでは問題ない。
818デフォルトの名無しさん:2007/11/22(木) 22:16:49
>>817
それだと問題は起こりませんでした。
安定して、ショートカットキーの情報が正常な状態で表示されます。

所で、問題のプロジェクトを貼り付けてみた方がいいですかね?
819デフォルトの名無しさん:2007/11/22(木) 23:09:29
>>810
なんかジョークソフトみたいだねw
明らかにドトネトフレームワークのバグだろうけど。

しかし、2.0はGUI関係のバグ本当に多いな。
820デフォルトの名無しさん:2007/11/23(金) 00:02:35
VS2005のデザイナで外観を弄っていたら、存在しないボタンやプログレスバー等が出来てしまいました・・・
どうも、GroupBoxを消した時に入っていたオブジェクトたちのようなんですが・・・
これらを何とかして消す方法はないでしょうか?

状態としては、Formからオブジェクトは消えているのに、プロパティ上には残っている状態です。
(なので、タブでオブジェクトをつかむ事はできないです。)
821デフォルトの名無しさん:2007/11/23(金) 00:11:39
.designer.vbには残ってるのか?
822デフォルトの名無しさん:2007/11/23(金) 00:35:14
>>821
その中の奴を消したら消えました!
どうも、ありがとうございました。
823デフォルトの名無しさん:2007/11/24(土) 14:16:00
windowsフォームデザインで、FormコントロールのSizeを横幅2560にして開発を行いたいのですが、
開発PCの画面解像度(1280*1024)よりSizeプロパティを大きく出来ないです。
対策方法はあるのでしょうか?
824デフォルトの名無しさん:2007/11/24(土) 14:39:12
作成したアプリケーションを最小化してWindowsのタスクバーに引っ込めると
その瞬間に占有していたメモリーが10分の1になり、またもとに戻しても
以前の3分の1ぐらいに減っていました。これはプログラム上ではとくに何も
していないため、ガーベジコレクションが最小化のタイミングで起きてくれて
いるというふうに考えればよいでしょうか?
825デフォルトの名無しさん:2007/11/24(土) 14:54:58
駄目
826824:2007/11/24(土) 15:25:20
>>825
ということはこれは正常な動きでしょうか、それとも
何か不具合があるのでしょうか。
827デフォルトの名無しさん:2007/11/24(土) 15:37:10
現状のWindowsのメモリ管理の動作による現象。
828デフォルトの名無しさん:2007/11/24(土) 15:59:42
.netアプリじゃなくたってその動作。
ちなみにVistaからは変わった
829824:2007/11/24(土) 16:10:03
>>827-828
教えてくださりありがとうございます!

>ちなみにVistaからは変わった

もしかするとVistaからだと最小化しても減らないのでしょうか、
減ってくれると何かうれしい気がするのですが・・・。
830デフォルトの名無しさん:2007/11/24(土) 16:22:31
>>824
ついでにだけど、タスクマネージャで見てるとか言わないよな?
831デフォルトの名無しさん:2007/11/24(土) 16:38:58
>>829
見た目以外にいいことなど一つもないから気にするな
832デフォルトの名無しさん:2007/11/24(土) 19:21:49
右クリックでContext出すんですがそのときに選択していた文字列を取得するにはどうしたらいいんでしょうか?
833デフォルトの名無しさん:2007/11/24(土) 19:25:16
どのコントロールのを選択してたかによるに決まってるだろ
834デフォルトの名無しさん:2007/11/24(土) 19:42:53
>>833
webbrowserコントロールです。

テキストを選択してその部分を右クリックからコピーをしたいと思っています。
835デフォルトの名無しさん:2007/11/24(土) 20:12:16
標準のコンテキストメニューで(ry

IHTMLDocument2.selection IHTMLSelectionObject.createRange IHTMLTxtRange.text
836デフォルトの名無しさん:2007/11/24(土) 22:34:41
>>835
ありがとうございます。
ただそれだけでは分からず悩んでます・・・

ぐぐって
Imports System.Runtime.InteropServices
Imports mshtml

というインポートはできました。
Dim test as IHTMLdocument2
はできますが .selection を足すと怒られます。

よろしければお付き合いお願いします。
837デフォルトの名無しさん:2007/11/24(土) 22:45:42
型とかプロパティとか勉強しなおして来い
838デフォルトの名無しさん:2007/11/25(日) 00:00:46
>>836
あとCOMもな
839デフォルトの名無しさん:2007/11/25(日) 10:42:18
>>836
ここは初心者スレじゃないから。
初心者スレが無かったら自分で立てな。
840デフォルトの名無しさん:2007/11/26(月) 10:48:07
VB2005でExcel2003にログを出しています。
ログが追加されていくと、右側にスクロールバーが表示されますが、
常に最初のログが表示されている状態です。
これを、一番下の行が見えるように自動でスクロールさせたいです。
どうすればよいか教えてください。
CType(CType(WB.Worksheets, Excel.Sheets)(1), Excel.Worksheet).ScrollArea
あたりが使えそうだと思ったのですが、Stringだし。
841デフォルトの名無しさん:2007/11/26(月) 17:53:42
VS2005、XPsp2です。

ListViewのColumnHeader1のTextAlignの値がどうやっても変更できないのは仕様ですか?
デザイナ上からも変更不可、デザイナコードに直で書き込んでも反映せず。
FormのLoadイベント上でも一切変更を受け付けません。
ColumnHeader2以降に関しては変更を受け付けるみたいなんですが。

//////////参考コード//////////

Form1上にListView1を実装>ColumnHeader1を追加

この状態で下記のコードを実行する

Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Do
Me.ListView1.Columns(0).TextAlign = HorizontalAlignment.Right
Debug.WriteLine(Me.ListView1.Columns(0).TextAlign.ToString)
Loop Until Me.ListView1.Columns(0).TextAlign = HorizontalAlignment.Right
End Sub
End Class

これで一生ループを抜け出せません。
842デフォルトの名無しさん:2007/11/26(月) 18:14:57
>>841
Due to a limitation in the underlying control, this property has no effect on
the first column in the ListView control, which is always aligned to the left.
To work around this limitation in Microsoft .NET Framework version 2.0,
you can handle the ListView.DrawColumnHeader event and paint
the column header yourself.
843デフォルトの名無しさん:2007/11/26(月) 18:20:48
>>842
オーナードローで逃げるしかないですか・・・
ありがとうございました。
844デフォルトの名無しさん:2007/11/26(月) 18:38:29
PostMessageでSHIFT+TAB送信する方法を教えてください。
845デフォルトの名無しさん:2007/11/26(月) 19:08:58
Test
846デフォルトの名無しさん:2007/11/26(月) 23:04:28
>>844
無理
847デフォルトの名無しさん:2007/11/28(水) 16:38:32
VB.NETでモノクロ画像表示をしたいのですが、getpixelのところでエラーがでてしまいます
。どうしたら、モノクロ画像を表示することができますか!?
848デフォルトの名無しさん:2007/11/28(水) 17:04:18
エラーがでてしまいますとしか書かない低能さをなんとかしたらいいんじゃね?
849デフォルトの名無しさん:2007/11/28(水) 17:18:28
getpixelってことはモノクロ画像を表示したいんじゃなくて
カラー画像をモノクロで表示したいってこと?
{ 1/3, 1/3, 1/3, 0, 0 },
{ 1/3, 1/3, 1/3, 0, 0 },
{ 1/3, 1/3, 1/3, 0, 0 },
{ 0, 0, 0, 1, 0 },
{ 0, 0, 0, 0, 1 },
こういうColorMatrixを作ってImageAttributesに設定
それをDrawImageの引数に渡す
850デフォルトの名無しさん:2007/11/28(水) 18:25:59
ToolStripDropDownButton と ToolStripSplitButton の動作は、
ボタン部分だけのClickイベントとしてButtonClickイベントが用意されて
いるかぢないかが大きいと思いますが、

ToolStripSplitButton で、DropDownItem をドロップダウンする側の
Clickでも、ButtonClickイベントが付随して起こり、それに割り当てた
プロシージャが実行されてしまう現象が起きていて、

マウスクリック時の動作がチャッタリング気味の動きをしているのが
目視した状況でもわかりました。こうした異常が起きていない正常動作
するものもあるのですが、Form上の置いてある深さという面では異常を
起こす方のものはコンロトールとしては深い位置にあります。

プロパティを比較してみたのですが、正常に動作するものととくに異なる
部分はないようでしたが、このような異常動作は設定で出やすくなる状況
ということはあり得るでしょうか?ご指導くださいお願い致します。
851850:2007/11/28(水) 18:32:15
>>850
>コンロトールとしては深い位置にあります
(この意味ですが、コントロールの子コントロールとしての階層の意味で、
正常動作する方はForm内の部品として、異常を起こす方のものはそれら
コントール内の子コントロール内の部品として置かれていて、深さとして
深い階層にあるということでした。)
852デフォルトの名無しさん:2007/11/28(水) 18:56:34
>>850
本当に起こるのならバグじゃない?
2005ってGUI関係のバグ多いからあっても不思議じゃないね。

でもどういう状況なら出やすいとか出にくいとかいう曖昧な話は
問題の解決にはあまり役に立たないと思う。

OnButtonClickかButtonClickのハンドラでマウスポインタがボタン部分の上にあるか
チェックしてなければ無視するようにすればとりあえず問題を回避できるんじゃないかな
853デフォルトの名無しさん:2007/11/28(水) 20:57:29
それだけの情報でフレームワークのバグを疑うより
コードのバグを疑うほうがいいと思うが、どうかね
854デフォルトの名無しさん:2007/11/28(水) 21:04:23
>>853
ボクちゃんは学校で「仮定法」って習わなかったのかな。
っていうかむしろそんな不可解なバグが起こるコードがどんなものか見てみたいけどねw
855デフォルトの名無しさん:2007/11/28(水) 22:10:01
>>854
バグか仕様か迷うことはないのか?
856850:2007/11/28(水) 22:40:07
>>852
>OnButtonClickかButtonClickのハンドラでマウスポインタがボタン部分の上にあるか
>チェックしてなければ無視するようにすればとりあえず問題を回避できるんじゃないかな

なるほど!そうやって確認するのですか!!わかりました!!
試してみます。ありがとうございました。
857デフォルトの名無しさん:2007/11/29(木) 12:21:23
vb.net2003に付属されてるVisual Studio Installerで
A、B、Cという3つのセットアップファイルを作成しました。

A、B、Cとも共通のDというファイルを参照してるのですが、
BをアンインストールするとDのファイルも一緒に削除されてしまい
残ったA、Cのプログラムが実行できません。

アンインストール時にDのファイルを残すような設定をするには
どうすればいいでしょうか?
858デフォルトの名無しさん:2007/11/29(木) 12:34:04
849 :ありがとうございます。bitmapの中身をかえたいのですが!?
859デフォルトの名無しさん:2007/11/29(木) 13:17:13
質問が漠然としすぎだよ...。
860デフォルトの名無しさん:2007/11/29(木) 18:54:56
質問の意味が誰にもわからない
861デフォルトの名無しさん:2007/11/29(木) 19:12:52
すみません、コードでマウスの左クリックを行う方法を
教えてください。
862デフォルトの名無しさん:2007/11/29(木) 19:38:49
863861:2007/11/29(木) 21:12:50
>>862
mouse_event
おおこれです、探していたのは!!
ありがとうございました。
864デフォルトの名無しさん:2007/11/29(木) 21:53:42
WshShellオブジェクトでURLショートカットファイルを作成する際に
ファイル内容に不足があることがわかりました。
例として、たとえばマイクロソフトのサイト
http://www.microsoft.com/japan/msdn/architecture/
などに対して作成すると、IEで作成した場合に作成される処の

[DOC_pagetools]
XMLUSERDATA__Size=・・・・・
XMLUSERDATA=・・・・・
USERDATAURL=・・・・・

という部分が作成されていませんでした。そしてこの部分がないと、クリック
して実行してもIEで表示できないことがわかりました。どうも実行に際して
不可欠の内容のようでした(これはユーザーの同定等を行っているのでしょうか)。

こうした部分をWsg\hShellオブジェクトのCreateShortcutメソッドで作成する
ことは不可能でしょうか。可能とした場合はどのようにすればよいでしょうか?
なにとぞよろしくお願いします。
865デフォルトの名無しさん:2007/11/30(金) 00:13:44
.urlはテキストファイルだからfsoなりなんなり好きなのでどうぞ
866デフォルトの名無しさん:2007/11/30(金) 00:48:33
vbsの話だったりして
867デフォルトの名無しさん:2007/11/30(金) 07:04:52
MsgBox
868デフォルトの名無しさん:2007/11/30(金) 08:26:50
DataGridViewを使用しComboBoxのセルを作成し、リストデータの追加までは
できました、しかし、DBから取得したデータを初期値として各セルに設定する
肝心の方法がわかりません。

例えば通常のComboBoxなら
Combobox1.SelectedItem = "初期値"
もしくは
ComboBox1.SelectedIndex = 1 '初期値に対するインデックスNo
といった具合でできるのですが。。。

DataGridViewのComboBoxセルではどのように設定すればよいのでしょう?
一応参考にしているURLです。
http://dobon.net/vb/dotnet/datagridview/index.html
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2062060
Googleでの検索は「DataGridView ComboBox SelectedIndex SelectedItem」
この辺りのキーワードで検索してみました。

ご教授宜しくお願い致します。
869デフォルトの名無しさん:2007/11/30(金) 09:57:09
>>868
自己レスです。
ここを参考に
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=789315&SiteID=7

DataGridView1.Rows(0).Cells(1).Value = 1 ’初期値のインデックスNo
このようにしましたらできました。
870デフォルトの名無しさん:2007/11/30(金) 10:01:04
>>868
ComboBoxカラムのDataSourceプロパティに、DBから取得したデータ中のコンボと連携する列名を入れてやれば、
あとは自動でComboBoxの表示初期値がデータに対応した値になると思うyo!
871デフォルトの名無しさん:2007/11/30(金) 10:03:30
oh...タイミングが。
>>869 手動で設定するならそれでokかな。
というかそういう風なやり方をするってことは、非バインド列なのかな。
872デフォルトの名無しさん:2007/11/30(金) 15:23:10
bitmap構造体を変えて、モノクロ画像の表示、拡大をしたいです。新しく、bitmapの情報を与え(例えば、PIXELの幅や高さ、PLANESの数など
(BITMAPINFOHEADER))、この情報をpicturbox2にこの情報を入れてその画像を拡大したいです。今考えてるは、picturebox1に16*16の画像
を表示し、picturebox2に256*256に拡大した画像を出力したいです。
873デフォルトの名無しさん:2007/11/30(金) 18:41:54
とあるコンポーネントを継承したサブクラスを使用したいのですが、
サブクラスの作成後、フォームデザイナでそのコントロールを追加するにはどうしたらいいでしょうか。

VS2005、XPsp2です。
874873:2007/11/30(金) 18:43:06
http://www2u.biglobe.ne.jp/~kaduhiko/csharp_02.html

上記のようなことがしたいのです。
宜しくお願いします
875デフォルトの名無しさん:2007/11/30(金) 18:43:27
RichTextBoxで保存した rtfフォーマットのファイルをWordで
読み込み編集して保存すると、それをまたRichTextBoxにLoadFile
メソッドで読み込むことができないのですが、これは同じrtf
フォーマットでも形式が異なるためかと思いました。

Wordで保存したrtfフォーマットのファイルを読み込む方法は
あるでしょうか、あるとしたらどのようにすれば可能になる
でしょうか。よろしくお願いします。
876875:2007/11/30(金) 18:50:40
ちなみに、Wordで保存したrtfファイルは、WordPadでは読み込むことが
できました。これはWordPadではWordの扱うrtfフォーマットにも対応
しているということでしょうか。もしそうであればそれと同じ機能を
RichTextBoxでも実現することは可能なのではないかと思いました。

ご存知の方がいらっしゃいましたら何卒教えて戴きたく、よろしく
お願い致します。
877デフォルトの名無しさん:2007/11/30(金) 20:21:46
>>875
RichTextBox1.LoadFile(FilePath, RichTextBoxStreamType.RichText)
保存も同様に
RichTextBox1.SaveFile(FilePath, RichTextBoxStreamType.RichText)
FilePathはファイルのパス
878デフォルトの名無しさん:2007/11/30(金) 22:42:44
WEBページを非同期で取得するクラスを作っています。
下記がソースです。フォーム上にラベルとボタンを配置しています。
http://2sen.dip.jp:81/cgi-bin/upgun/up7/source/up0431.txt
ボタンをクリックするとクラスのメソッドが呼び出され、取得完了時にイベントが発生します。
そしてイベントが発生すると、取得されたHTMLがラベルに表示されるはず・・・なのですが
イベントが発生してもラベルのテキストが変化せず困っています。
デバッグしてイベント内のHttp.ResponseDataの値を調べましたが、正常に取得されていました。
どうも原因が非同期処理にあるような感じなのですが、解決法が見つかりません。
どなたか解決法をご存知の方がいらっしゃいましたらお教えください。よろしくお願いします。
879デフォルトの名無しさん:2007/11/30(金) 22:50:58
別スレッドから書き換えはもう飽きたな
素直に BackgroundWorker 使っとけば?
880デフォルトの名無しさん:2007/11/30(金) 22:58:32
同時に複数使用するためクラスのほうが効率が良いのですが、
解決しない場合は諦めてBackgroundWorkerを使おうと思っています。
881デフォルトの名無しさん:2007/11/30(金) 23:08:04
16*16とか馬鹿だろう。
仕様を作り直せ。
882デフォルトの名無しさん:2007/11/30(金) 23:22:10
↓交互にドットがうってある、16*16のビットマップ。
http://www.hsjp.net/upload/src/up6694.bmp
883873:2007/12/01(土) 23:29:43
自己解決しました。

http://msdn2.microsoft.com/ja-jp/library/w2a8y03d(VS.80).aspx
884デフォルトの名無しさん:2007/12/02(日) 05:57:55
メインフォームでWndProcしてMouseWheelをフックしてるんですけど、
フォーム内にあるTextBoxなどのスクロール付きコントロールのMouseWheelメッセージが拾えません。

自作コントロールにしてコントロール内でメッセージを送り返すなり処理するなりすれば可能なんですが・・・
なんとかコントロールはそのままで、親コントロールから子コントロールのメッセを拾う方法はありませんか?
885デフォルトの名無しさん:2007/12/02(日) 11:16:05
SetWindowsHookEx WH_MOUSE
886884:2007/12/02(日) 17:19:56
グローバルフックですか・・・(; ゚д゚)
ありがとうございます。一度試してみます。
887884:2007/12/02(日) 18:06:56
ローカルフックで可能でした。失礼しました。
ただ、少し詰まったのでもうひとつ質問させて下さい。

hHook = SetWindowsHookEx(WH_MOUSE, AddressOf MyMouseProc, IntPtr.Zero, AppDomain.GetCurrentThreadId)

これでフックしてるんですが、Formがアクティブでなくなると例外が投げられてしまいます。
メインフォームに投げられててキャッチの場所にも戸惑っているんですが・・・どうすれば対処できるんでしょうか?
888デフォルトの名無しさん:2007/12/02(日) 21:35:41
>AddressOf MyMouseProc
それはやばい。
889デフォルトの名無しさん:2007/12/02(日) 23:09:01
まぁ
890デフォルトの名無しさん:2007/12/02(日) 23:09:41
早漏してしまった…

C#の例だが充分だろ
そういった部分はMSDNでしらべてみるこった
http://support.microsoft.com/?kbid=318804
891デフォルトの名無しさん:2007/12/03(月) 15:38:57
なんかおまいらPGってかわいそうだよ

将来性なくてさ
892デフォルトの名無しさん:2007/12/03(月) 15:41:00
50になってもPGか?
893デフォルトの名無しさん:2007/12/03(月) 15:41:57
PGってさ、職種転換にしても潰しなんて全く利かないからな

哀れになるよ
894デフォルトの名無しさん:2007/12/03(月) 18:25:51
と、PGになれない者が申しております☆(ゝω・)v
895デフォルトの名無しさん:2007/12/03(月) 18:50:39
潰しが聞く職種なんて、逆に言えば誰にでも出来る仕事だけどな。
896デフォルトの名無しさん:2007/12/03(月) 21:16:49
それどんな不思議思考だよw
897デフォルトの名無しさん:2007/12/04(火) 00:03:58
謝れ!
20でPGの俺に謝れ!!
898デフォルトの名無しさん:2007/12/04(火) 11:09:14
牧紳一なめんな
899デフォルトの名無しさん:2007/12/04(火) 18:53:45
VB6のInvisibleAtRuntimeプロパティに
あたる機能はどこー?
900デフォルトの名無しさん:2007/12/04(火) 19:10:30
901デフォルトの名無しさん:2007/12/05(水) 09:19:06
>>900
やってみたけど、ならない・・・
タイマーコントロールみたいに、
デザイン時にフォーム上に表示しないように
したいんだけど
902デフォルトの名無しさん:2007/12/05(水) 15:06:14
>>895 age
それが馬鹿の思考回路
潰しの利く職種のスペシャリストにならなければいずれポイされておしまいだww
>>897
いいよ高卒は もう終わってるから
903デフォルトの名無しさん:2007/12/05(水) 15:08:52
TextBoxのKeyUpイベントで処理をしているのですが、このKeyUpイベントを
プログラムから発生させることは出来るのでしょうか?
904デフォルトの名無しさん:2007/12/05(水) 15:27:33
>>903
sendkeyで、ってこと?
それとも、例えばButtonのクリックイベントで発生させたいってこと?
それなら、
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim UpKey As New System.Windows.Forms.KeyEventArgs(Keys.A) 'Keysはなんでもいい。選択したキーが押されたことになる
TextBox1_KeyUp(sender, UpKey) 'TextBox1のKeyUpイベントを発生させる。
End Sub

Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
Me.Text = e.KeyCode.ToString '受け取ったキーコードをFormのテキストに設定する
End Sub

TextBox1_KeyUp(sender,e)にしたらエラーでたんでちょっと変えてみたけど…。
905デフォルトの名無しさん:2007/12/05(水) 15:28:37
>>903
Call TextBox1_KeyUp(Nothing,Nothing)
906デフォルトの名無しさん:2007/12/05(水) 16:09:05
>>904
>>905
できました!!

テキストボックスに指定した値を入れて、KeyUpイベントを発生させたかったんです。
おかげで、イベントの発生のさせ方がわかりました。

ありがとうございました。
907デフォルトの名無しさん:2007/12/05(水) 16:17:12
ASP.NET(VB)
の質問はここでOKなんでしょうか?

テキストボックスコントロールの上に文字数カウント表示(入力内容変更時のカウント計算と表示はクライアントスクリプトで行う)をつけたWebCustomControlを作成したいと考えています。

最終的に吐き出される内容は
<div>
<ASP:Label>・・・・・</Label><br />
<ASP:TextBox ・・・/>
<div>
のようになると思うのですが単純にタグを吐き出すだけではなくTextBoxなどのイベント等も受け取りたいと考えています。
WebControlを継承して作成すると思うのですが、AddHandlerでイベントを受け取るような感じで構わないのでしょうか?

また、根本的なことですが各種プロパティを設定してやってRenderイベントをオーバーライドした中の記述でプロパティを組み込んだ上記のタグ内容を吐き出してやる
というやり方であっているのでしょうか?

書きたいことがうまく書けないのですが、よろしくお願いします。
908デフォルトの名無しさん:2007/12/05(水) 22:28:48
VB.NETで作ったゲームにセーブ&ロード機能を付けたいのですが
どのように作ればいいでしょうか?
バイトストリームで読み書きすると変数が多すぎてどうにもならないです;
909デフォルトの名無しさん:2007/12/05(水) 22:37:18
設定をクラスにしてシリアライズで一発
xmlかBinaryFormatterか
910デフォルトの名無しさん:2007/12/05(水) 22:40:38
>>909
すいません;
「設定をクラスにして」というのは
具体的にどうすればいいのでしょうか

現状、ゲーム要素のほとんどはModuleやFormのPublic変数に格納しています
911デフォルトの名無しさん:2007/12/05(水) 22:50:51
状態を表す変数をメンバに持つクラス作っとけば楽なのに。
日頃はそのクラスオブジェクト経由で使用して
保存・復元はシリアライズ・デシリアライズ。
マルチユーザー方面も簡単

とゲーム作ったことないおれが適当に言ってみる
912デフォルトの名無しさん:2007/12/05(水) 23:40:51
む〜;
最初から計画的にしていないといけないですか;
ありがとうございましたm(_ _ )m
913デフォルトの名無しさん:2007/12/06(木) 00:05:31
新規のファイルに文字列を書いたり既存のファイルの最後の行に文字列を追加するやり方は知ってるんですがテキストファイルのn行目に文字列を追加する方法がわかりません
どなたか教えてください
914デフォルトの名無しさん:2007/12/06(木) 00:12:22
もうひとつファイル用意して元のから読み出しながら新しいほうに書き込んでいくのがたぶん一番楽だよ
915デフォルトの名無しさん:2007/12/06(木) 06:53:57
http://www.dotup.org/uploda/www.dotup.org7860.zip.html (VB2005)
2から5000までの素数をloopで乱立しようというプログラムなのですが
うまくいきません、どうすればよいでしょうか?
loopの使い方がよくわからない・・・
916デフォルトの名無しさん:2007/12/06(木) 09:26:30
>>915
コードみたけど、これ自分で意味解かって書いてるか?
どういう処理をしたいかをはっきりさせて、それにそってコードを書きなよ。
UppernumberやUndernumberが何を示すのかコメントすらないし、人に丸投げするにしては不親切すぎ。
917デフォルトの名無しさん:2007/12/06(木) 10:19:32
>>915
すまん、削除する。
918デフォルトの名無しさん:2007/12/06(木) 11:10:25
>>901
ControlじゃなくてComponentから派生させる
919デフォルトの名無しさん:2007/12/06(木) 14:48:43
あ〜あ、また将来のない奴らが集まってるわw

おまえら終わってることに気付けよww
920デフォルトの名無しさん:2007/12/06(木) 16:47:42
>>919
なにも自分自身のことを仰らなくてもよいではないですか
921デフォルトの名無しさん:2007/12/06(木) 22:20:39
派遣先の上司に叱られたんだろ。そっとしとけ
922デフォルトの名無しさん:2007/12/07(金) 11:31:55
>>913
ワードやメモ帳だって一度メモリに読み込んでから再度それを書き込むだろ?
923デフォルトの名無しさん:2007/12/07(金) 11:52:46
>>922
そのやり方はオススメしない方がよくね?
924デフォルトの名無しさん:2007/12/07(金) 12:28:33
Visual C# 2005 または Visual C# .NET で WebBrowser コントロールを使用して Office ドキュメントを開く方法
http://support.microsoft.com/kb/304662/ja

の中の、「WebBrowser コントロール使用時の注意」 のところにある、

> 1 つのプロジェクト内で複数の WebBrowser コントロールを使用する場合、各コントロールに
> 同じ種類の Office ドキュメント (すべて Word 文書、すべて Excel ワークシートなど) を読み込むと、
> いくつかの問題が発生することが確認されています。そのため、1 つのプロジェクトに使用する
> コントロールは 1 つとし、1 度に参照するドキュメントも 1 つとすることをお勧めします。

> 最も一般的なのは、Microsoft Office コマンド バーが無効になっているように見えるという問題です。
> 同一のフォームに WebBrowser コントロールが 2 つあり、その両方で Word 文書を読み込む場合に、
> 上記の方法のいずれかを使用してツール バーを表示すると、片方のツール バーのセットのみが
> 有効になり、正しく機能します。もう一方は無効になり、使用できません。

という問題についてですが、これを解決する方法というのはあるものでしょうか?
マイクロソフトがこう言っているわけですから、もう無理でしょうか?

最低でも複数のWebBrowserで複数のExcelファイルなりが開ければ助かるのですが・・・
925924:2007/12/07(金) 12:35:17
実際にこれをやってみるとたしかに、Excelなどではクリックしてもセル自体が
選択できなくなったりとトラブルが多いのは事実でした。数値バーが無効になって
しまうなども常態化していました。

こうしたことは、基本的にOfficeのCOMサーバー・アプリケーションが複数のコンテナ
で同時に動くという状況に対応していないというようなことなのでしょうか?
これは解決はあきらめるべきでしょうか?
926デフォルトの名無しさん:2007/12/07(金) 15:58:32
bitmapを作り、モノクロ画像を表示したいのですがどうしたらいいですか!
表示をした後に、画像を拡大したいです。
927デフォルトの名無しさん:2007/12/07(金) 17:00:36
また出たなw
もっと聞く側が理解できる質問の仕方をしろといってるだろw

>bitmapを作り、モノクロ画像を表示したい
適当なbitmapを作って、それをモノクロで表示したいということか?
元の画像は既にモノクロなのか?カラーなのか?
928デフォルトの名無しさん:2007/12/07(金) 18:55:19
コピペにマジレス禁止
929デフォルトの名無しさん:2007/12/08(土) 17:33:43
すいません。一つ質問させてください。
TEXTBOXに値を入れて検索すると、SQLサーバーのデータベースから条件に合ったデータを呼び出すWebアプリを作っているのですが
TEXTBOXと比較するデータベースの項目のデータ型がMONEYだった場合
『money データ型から nvarchar データ型への暗黙的な変換は許可されません。このクエリを実行するには、CONVERT 関数を使います。』
『nvarchar データ型から money データ型、テーブル 'DB'、 列 'A' への暗黙の型変換はできません。
このクエリを実行するには、CONVERT 関数を使います。』
というようなエラーが出てしまいます。
そこでCONVERT 関数というものを調べてみたのですがイマイチ使い方が解りませんでした。
こういった場合はどのように記述すればいいか教えていただけないでしょうか?
言語はVISUALBASICの方を使っています。
宜しくお願いします。
930929:2007/12/08(土) 17:44:19
すいません。答え教えてくれとは図々し過ぎました…
「VB CONVERT 関数」あたりでググッて見たかぎりでは見つけられなかったのですが
どこか解説してくださっているサイトであればサイト名だけでも教えていただけないでしょうか?
931デフォルトの名無しさん:2007/12/08(土) 17:55:23
932デフォルトの名無しさん:2007/12/08(土) 17:56:47
>>929
パラメータークエリーを使ってるなら、Decimalで突っ込めばいい。
933デフォルトの名無しさん:2007/12/09(日) 03:34:57
>>929
どう見てもSQLエラーな件。

VBでどうこうするんじゃなく、SQL文そのものにCONVERT関数使うんだよ。
もしくはCAST。
934デフォルトの名無しさん:2007/12/09(日) 03:58:55
>>929
CONVERT( 型 ,値 ,[変換タイプ] )
935デフォルトの名無しさん:2007/12/09(日) 16:22:27
すみません。一つ質問させて下さい。

vb.Net2003でテキストボックスの入力制限で、
スペースを入力不可にしたいのですが、
やり方が分かりません。

教えていただけないでしょうか。
よろしくお願い致します。
936デフォルトの名無しさん:2007/12/09(日) 16:35:42
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyCode = Keys.Space Then
e.SuppressKeyPress = True
End If
End Sub
937デフォルトの名無しさん:2007/12/09(日) 16:44:56
環境のあるところでやってみます。
本当に有難うございました。
938デフォルトの名無しさん:2007/12/09(日) 17:18:51
ペーストした場合はどうすんの
939デフォルトの名無しさん:2007/12/09(日) 17:36:06
TextChangeのイベントハンドラにスペースを取り除く処理を書いたほうがいいんじゃないかと思った。
例えば、Replaceで取り除くとか…。
ペーストできないようにする方法もあるけど。
.NetFramework2.0以降だったらTextBoxのShortcutsEnabledをFalseにするとか、空のConTextMenuをつけるとか。
940デフォルトの名無しさん:2007/12/09(日) 17:38:39
そこまで気がつきませんでした。
すみません。ありがとうございます。
ペーストも制御できるのですか??
941デフォルトの名無しさん:2007/12/09(日) 19:01:25
Dim numCode As Integer
numCode = 10
TextBox1.Text = numCode
って10進数じゃなくて・・・
16進数を表示させたい場合は、どう書けばいいのですか?
942デフォルトの名無しさん:2007/12/09(日) 19:16:34
Hex(numCode)
943デフォルトの名無しさん:2007/12/09(日) 19:39:00
ついでに2進数も教えてくれるとうれしいな♪
1が出るまで2で割っていって、都度商を文字に直して文字連結?
944デフォルトの名無しさん:2007/12/09(日) 19:40:54
ちょっとはググろうか。なんのためのヘルプか考えろ。
16進数がHexなら2進数も想像付くだろ
945デフォルトの名無しさん:2007/12/09(日) 20:06:46
16進がHexなら2進はBin()じゃねぇ?と思ったんだが、違うかったみたいで質問したしだい。
Dec2Binでなし(こりゃexcelか) binでもなし・・・まだ判らん
946デフォルトの名無しさん:2007/12/09(日) 20:19:52
numCode.ToString("x")のほうが正式で柔軟
他のはキーワード「書式指定文字列」でMSDNで調べればいい
947デフォルトの名無しさん:2007/12/09(日) 20:39:56
キーワードありがとうございました!
TextBox1.Text = Convert.ToString(numCode, 2)
ですね。2時間かかってようやくできました。
948929:2007/12/10(月) 09:05:59
>>931,932,933,934
色々とお答えをいただき、ありがとうございました。
VB側でDBに合わせられたらと思ったのですが
それは駄目でSQLからデータ引っ張るあたりで
データの方を数字タイプにしないといけないのですね。
教えていただいたキーワードでもう一度どうやるか
考えるようにします。
本当にありがとうございました。
949デフォルトの名無しさん:2007/12/10(月) 17:27:14
今、モノクロ画像をそのままモノクロ画像表示ができなくて困っています。新しくBITMAPを作るにはどうしたら
いいですか!?今のままではgetpixelとsetpixelのところでエラーがでてきます。
もうひとつの問題は、画像を拡大したいのですが、ぼけてしまします。どうしたらいいですか!?
950デフォルトの名無しさん:2007/12/10(月) 17:30:45
お触り厳禁
951デフォルトの名無しさん:2007/12/10(月) 17:40:51
>>949
現状どのようにして画像を表示させようとしているか、書いてみな〜
952デフォルトの名無しさん:2007/12/10(月) 17:56:31
拡大すりゃぼけるだろ、普通。
アンチエイリアス処理でもすりゃあ別だと思うが。
953デフォルトの名無しさん:2007/12/10(月) 18:00:28
アンチエイリアスかけたら逆にぼけるだろw

ペイントみたいに任意倍数拡大すると、カクカクな感じで表示されるようにしたいんじゃね?
954デフォルトの名無しさん:2007/12/10(月) 19:45:46
>>952そりゃあんまりだw
955デフォルトの名無しさん:2007/12/10(月) 22:34:51
マジレス禁止
956デフォルトの名無しさん:2007/12/10(月) 23:16:18
asp.net 2005 でコントロール継承して作った自作プロパティをデザイン時に
RequiredFieldValidatorコントロールのControlToValidate
みたいに現在貼り付けているフォームのコントロール一覧みたいなものを選べるように実装したいんだけど
なにかいい方法ないでしょうか??

よろしくお願いします。
957デフォルトの名無しさん:2007/12/11(火) 01:08:28
WEBユーザーコントロールライブラリのデザイナかなんかの設定のほうかな?
958デフォルトの名無しさん:2007/12/11(火) 01:37:57
>>957
そうですそうです。
プロパティボックスのところにドロップダウンコンボがでて選ぶか入力するかみたいな
959デフォルトの名無しさん:2007/12/11(火) 13:50:20
DataGridViewの件で質問です。
やりたいことは、

//////////////DataGridViewコントロール////////////////

名前    山田太郎

性別    男性

血液型   A

生年月日 1988/12/30

趣味    ウインドサーフィン

////////////////////////////////////////////////////

このように、2列*複数行という一覧表を作りたいのです。
このときに血液型のセルのみをコンボボックスにしたいです。(プルダウンメニューで編集したい)
2列目のColumnTypeをコンボボックスに設定したのでは、
当然2列目全体がコンボボックスになってしまい、やりたいことができません。

よろしくおねがいします。



960デフォルトの名無しさん:2007/12/11(火) 13:55:19
DetailsViewだったか使えよ。
961デフォルトの名無しさん:2007/12/11(火) 14:30:17
>>960
調べてみたんですが、

Public Class DetailsView
   Inherits System.Web.UI.WebControls.CompositeDataBoundControl
  System.Web.UI.WebControls のメンバ

とあり、

System.Windows.Forms.Controlを継承していないので、
どうやってフォームに追加すれば良いのか分かりませんでした。
962デフォルトの名無しさん:2007/12/11(火) 14:39:53
>>959
コンボボックスを表示しない列は、
CellPaintingイベントで、コンボボックスを書く処理をキャンセル(e.Handled = True)(*正確にはキャンセルではないが)し、
セルの背景、枠線、文字列などを自分で描画する。

フォーカスが当たっているかどうかで背景色を変えたりなんだりと、割と面倒くさい。
963デフォルトの名無しさん:2007/12/11(火) 14:41:33
訂正 列は×
    行は○
964デフォルトの名無しさん:2007/12/11(火) 15:05:30
>>962
やはり面倒くさい方法しかないですよね。

今回は別の方法を取ってみたいと思います。
ありがとうございました。
965デフォルトの名無しさん:2007/12/11(火) 15:17:25
なんだ、別の方法を取るのか(´・ω・`)
966デフォルトの名無しさん:2007/12/11(火) 21:01:56
>>949, 現状は、16×16モノクロ画像を表示したいです。で、その後256×256モノクロ画像を表示
したいです。普通に、拡大したらぼけるのでBITMAP構造体を使ってぼけないようにしたいのですが。
どうしたらよいですか!?
967デフォルトの名無しさん:2007/12/11(火) 21:15:30
構造体使わなくてもボケない方法いくらでもあると思うが・・・
968デフォルトの名無しさん:2007/12/11(火) 21:18:12
このコピペはいつになったら終わるんだろう(ヽ´ω`)
969デフォルトの名無しさん:2007/12/11(火) 21:35:32
>>967 本当ですか!?構造体を使うやりかたはわかりますか!?
970デフォルトの名無しさん:2007/12/11(火) 21:36:59
>>961
すまねえ、Webと勘違いしてた。
971デフォルトの名無しさん:2007/12/11(火) 21:53:11
これまでのあらすじ
>>594
>>601
>>847
>>872
>>926
>>949
>>966
972デフォルトの名無しさん:2007/12/11(火) 23:31:44
>>971 まとめていただいて、ありがとうございます
973デフォルトの名無しさん:2007/12/11(火) 23:43:03
元々16x16を256x256に拡大する話なんだろ。
情報量が足りてないんだから、そりゃ、ぼけるさ。
それとも整数倍だからドットを16倍にするだけで
補完処理は要らないという話なのかい?
974デフォルトの名無しさん:2007/12/12(水) 00:08:04
はい。説明不足ですいません。ほんとに、作りたいのはモノクロビットマップです。
ここに、モノクロ画像を表示し拡大したいです。本当に説明が下手ですいません。
ネットでいろいろ調べてるんですが、VB.NET2003に使えそうなものがなかなか見つかりません。

975デフォルトの名無しさん:2007/12/12(水) 00:55:12
どんだけ低能なんだよw
>ここに、モノクロ画像を表示し拡大したいです。
ここってどこだよ。
モノクロがそのままモノクロにならないって、色が勝手に着くのかよ。
bitmap構造体ってなんだよ。
書くこといろいろあるだろ。笑っちゃうよねまったく
976デフォルトの名無しさん:2007/12/12(水) 01:04:55
もういいからソースうpしろよカス
977デフォルトの名無しさん:2007/12/12(水) 12:40:48
日本人じゃないんだから許してやれよ

スルーだスルー。
978デフォルトの名無しさん:2007/12/12(水) 15:58:41
Long型のEnumに含まれている定数のうち
最大の数値を知るのに効率のいい方法ってありますか?

現在、GetValuesで配列にして、並び替えて、
最大の値をひっぱってるのですが、
もうちょっとスマートにできないでしょうか?
979デフォルトの名無しさん:2007/12/12(水) 16:31:09
それしかないんじゃないの
その辺は意図的に不便になってる感じがするな
気に入らなかったらもっとモダンな方法使えと
980デフォルトの名無しさん:2007/12/12(水) 20:00:39
やっぱり外国人だよな。
韓国人っぽいなとは思ってたんだ。
981デフォルトの名無しさん:2007/12/12(水) 20:40:57
>>978
任意のEnumの、ってこと?
でなきゃナンセンスな質問だよな。

しかし、そんなの何に使うんだろ。
982デフォルトの名無しさん:2007/12/12(水) 20:46:58
配列のインデックスに使ったりするんじゃね
Dictionary使うよりちょっと速いかも
983デフォルトの名無しさん:2007/12/12(水) 20:51:34
いや、別にそういう使い方は別にあってもいいと思うんだけどさw

言いたかったのは、静的に、つまりコンパイル時に既に確定している値を
動的に求めたい場合ってあるんかねって意味だけど。
984デフォルトの名無しさん:2007/12/12(水) 20:55:55
実は、静的には求まらない、とか。
特にDLLの先にあるEnumとかだったりすると、
最大値は変わりうるからねぇ。
985デフォルトの名無しさん:2007/12/12(水) 20:59:19
決め打ちがお行儀悪いからっていうだけなんじゃないの
最大値を表すMaxValueフィールドみたいなのを列挙体に足すのはMSのガイドライン違反だし
986デフォルトの名無しさん:2007/12/12(水) 22:31:10
ListDictionary<TKey,TValue>がないのはなぜなんだぜ?
987デフォルトの名無しさん:2007/12/12(水) 22:35:01
KeyValuePair を推して見る
988デフォルトの名無しさん:2007/12/12(水) 22:57:04
KeyedCollection<TKey, TItem>やSortedList<TKey, TValue>がある
989デフォルトの名無しさん:2007/12/12(水) 23:25:46
VB2005でファイルを転送するソフトを作っているのですが、
SSLを使用してセキュリティを高めようと思います。

System.Net.Security.SslStreemについて質問があります。
TCPでサーバに接続し、その接続で得られたNetworkStreemをSslStreemの初期化に使用し、以後の通信にはそのSslStreemを使用する、と書いてあったのですが、
http://msdn2.microsoft.com/ja-jp/library/system.net.security.sslstream(VS.80).aspx
に書いてあるC#のサンプルコードでSSLを使用した通信が行われているのでしょうか。
SSLを使用するためのサンプルコードでこのような質問をすることはかなりおかしなことだと思いますが、
SSLの仕組みについて調べたところサーバの証明書、などで認証すると書いてあり、それはX509Certificate....に当たると思うのですが…
そのサンプルコードで本当にSSLが適用された通信ができるのか疑問が残っています。
かなりまぬけな質問ではありますが、よろしくお願いします。
990デフォルトの名無しさん:2007/12/12(水) 23:32:53
そのサンプルをサーバとして動かすには、それなりにまっとうな
サーバ証明書が必要で、第一引数で渡してあげるっていうのは判るよね。

後はクライアント側の話で、接続したさいに、アドレスが合致しているかとか
既知のルート証明書からたどれるか、みたいな検証を、AuthenticateAsClientで
実行するわけで、そこで通るなら、SSLとして成立するわけだけど。
991978:2007/12/13(木) 09:19:49
>>981-984

そう、任意のEnumで
配列のインデックスに使ってます


あいつぐ仕様変更で、なんどもEnumの
上限数が、あちこちかわるんです・・・
そのたびにソース変更するのだるくてw


>>985
MaxValue定義するのいいかもw
全部のEnumに追加しなきゃならんけど・・・
でもガイドライン違反かなのか・・・


たくさんのレスありがとうございました。
992デフォルトの名無しさん:2007/12/13(木) 09:29:08
あきらめてディクショナリにした方が楽かもよ?
まあ既存のアプリぽいからむりかも知れんが。
993デフォルトの名無しさん:2007/12/13(木) 09:50:07
質問させていただきたいのですが、

同じイベントをメソッド名を変えて複数記述した際に、
実行される順序はどうやって決定されるのでしょうか。

Private Sub Button_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button.Click

Private Sub Button_Click_2(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button.Click

と記述した際にButton_Click_1を先に実行して、次にButton_Click_2を実行する
といった感じで実行される順序を指定することはできるのでしょうか。
994デフォルトの名無しさん:2007/12/13(木) 10:14:02
Button_Click_1で処理A、Button_Click_2で処理Bをするとした場合、
Button_Click_1の方のみで処理A,処理Bと順に実行させたらダメなの?
なんでわざわざButton.Clickに関連付けしたメソッドを複数作る必要があるの?
995デフォルトの名無しさん:2007/12/13(木) 10:15:41
VB.NET質問スレ (Part24)
http://pc11.2ch.net/test/read.cgi/tech/1197507828/
次スレ立てましたー。
こっち埋まったら使ってくんろ。
996デフォルトの名無しさん:2007/12/13(木) 10:35:02
>>944
他人が作成したコードを修正しているのですが
ボタンが複数あり、処理Aが各ボタンごとに異なる処理
処理Bは各ボタン共通の処理をしており、
処理Bをすべていつのメソッドにまとめて記述してあります。

その為、Button.Clickイベントが複数のメソッドに関連付けされている状態です。

説明が足りず申し訳ありません。
997デフォルトの名無しさん:2007/12/13(木) 11:13:41
>>996
適当にググって、こんなの見つけた
ttp://blogs.wankuma.com/mrt/archive/2007/10/24/103847.aspx
一番下まで読んでみたけど、やはり明確な順序をつけるのは無理じゃあないかな。

順序を気にするような処理なら、やはり>>994のような処理になると思う。
998デフォルトの名無しさん:2007/12/13(木) 11:21:57
h
999デフォルトの名無しさん:2007/12/13(木) 11:23:02
t
1000小倉優子 ◆YUKO3./00M :2007/12/13(木) 11:23:33
1000ならジュースでも飲むか
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。