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

VB.NET質問スレ(Part32)

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2009/11/19(木) 10:06:09
前スレ

VB.NET質問スレ(Part31)
http://pc12.2ch.net/test/read.cgi/tech/1250930696/l50

テンプレは >>2-4 あたり
0002デフォルトの名無しさん2009/11/19(木) 10:07:14
MSDN
  http://msdn.microsoft.com/ja-jp/library/ms229284.aspx
どぼん!のVB道のトップページとTipsページ
  http://dobon.net/vb/
  http://dobon.net/vb/dotnet/index.html
Insider.NET
  http://www.atmarkit.co.jp/fdotnet/index.html
宇宙仮面の C# プログラミング
  http://uchukamen.com/
.NET TIPS
  http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
緑のバイク ★ 初めてのC# プログラム全般
  http://homepage3.nifty.com/midori_no_bike/CS/
VB.NETとC#でデザインパターン
  http://hccweb1.bai.ne.jp/tsune-1/
匣の向こう側
  http://www.ne.jp/asahi/nami/mei/index.html
WisdomSoft
  http://wisdom.sakura.ne.jp/
じゃんぬねっと
  http://jeanne.wankuma.com/
どっとねっとふぁん - C# Tips And Samples -
  http://homepage3.nifty.com/dotnetfan/index.html
  http://dotnetfan.org/
C#プログラミングTips
  http://www.atmarkit.co.jp/fdotnet/csharptips/index/csharptips_index.html
0003デフォルトの名無しさん2009/11/19(木) 10:07:41
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/
0004デフォルトの名無しさん2009/11/19(木) 10:08:14
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
VB中学校
  http://homepage1.nifty.com/rucio/main/main.htm
初心者から中級者のためのVB
  http://www7b.biglobe.ne.jp/~vb_beginner2008/

テンプレここまで
0005デフォルトの名無しさん2009/11/19(木) 13:32:58
すみません。質問です。
VB.NETにおいて、メインメニューから、別のメニューに移る場合の
フォームを開いたり閉じたりするコードは、どのようなものをかいたら
いいのかを教えていただきたいです。

以前、テキストファイルを開いたり、書き込んだりする際に自分で
調べていると、入出力ステートメント(VB.NETではVB専用関数)を用いる方法と、
ファイル・システム・オブジェクトを使用する方法、それとは別に、
.NET Frameworkのクラス・ライブラリを用いる方法がある。
という感じでいろいろな書き方や概念がある事を知ったのですが、
サンプルコードだけではなく、こういう感じに説明がついているサイトを
教えていただきたいです。

なるべくなら、移植性などを考えると.NET Frameworkのクラス・ライブラリを
用いてのコードがいいのですよね?
0006デフォルトの名無しさん2009/11/19(木) 13:44:51
「zedgraph」というクラスライブラリを使ってグラフを描写する
ユーザーコントロールを作りたいと思っています

テストとしてユーザーコントロールを貼り付けたフォームに、
textboxとbuttonを貼り付けて、textboxに入力した値を表示させ
ようと試してみたのですが、値が渡っていてもグラフ自体が表示
されません。グラフをリロードさせるためにはどうすればよいの
でしょうか。よろしくお願いします。
0007デフォルトの名無しさん2009/11/19(木) 14:49:04
>>6
内容は若干異なるけれど、このページが参考になるのではと思います。
http://www.atmarkit.co.jp/fdotnet/dotnettips/191resizedraw/resizedraw.html
0008デフォルトの名無しさん2009/11/19(木) 16:52:50
質問です。

フォームを閉じる
ttp://dobon.net/vb/dotnet/form/closeform.html

このサイトを見ていると、アプリケーションを終了する際のコードは、
スタートアップフォームに指定しているフォームにて
Me.Close() と記述するか、Application.Exit() を記述する、
という事ですが、これは内部の仕様の関係でどちらを使った方が良い
というのはあるのでしょうか。

ちゃんと終了できなかった際の事も考えて、こういう記述にしておく方法も
あるのではとか思ったのですが、ここまで終了処理には気を配る必要は
無いのでしょうか。
Me.Close()
Application.Exit()

何度かソフトを起動したり終了したりするたびに、その都度メモリが
圧迫されていくという可能性が気になりましたので。
0009デフォルトの名無しさん2009/11/19(木) 17:22:38
普通はCloseで十分
0010デフォルトの名無しさん2009/11/19(木) 17:29:57
プロセスが終了すればメモリは開放される。
気にするな。
0011デフォルトの名無しさん2009/11/19(木) 17:49:58
>>7
ありがとう御座います
取り敢えずやってみます
0012デフォルトの名無しさん2009/11/19(木) 21:11:54
>>9
>>10
ありがとうございます。
closeを使ってコーディングしたいと思います。
0013デフォルトの名無しさん2009/11/19(木) 21:17:51
VBは6から.NETに変わるにおいて大幅な仕様変更&サポートの打ち切りがあり、
さらに、バージョンアップごとに言語の仕様変更がある状況です。
あるソフト開発会社は、これが原因で.NETでの開発は見送り、javaに
切り替える方向で考えている、という方針を聞きました。
VBは、javaなど他の言語に比べて仕様変更が多く、サポート期間が
短い言語なのでしょうか?
0014デフォルトの名無しさん2009/11/19(木) 21:23:37
そうです
C#はむしろそれを売りにしています
VBはそれに追従している感じです
0015デフォルトの名無しさん2009/11/19(木) 21:28:30
>>14
レスありがとうございます。
一つ、念のために確認しておきたいのですが、「C#はむしろそれを売りに
している」というのは、「仕様変更が少なく、サポート期間が長い」という
意味合いでしょうか?
0016デフォルトの名無しさん2009/11/19(木) 21:33:10
言語仕様を拡張しまくって実用最先端を突っ走るということ
0017デフォルトの名無しさん2009/11/20(金) 01:04:37
Labelに数値を表示しているのですが、
数値が変化した場合にそれまでの数値より上か下を判断して
BackColorを変えたいのですが、どのような方法が良いでしょうか?

前スレ998さんレスありがとうございます。解決しました。
0018デフォルトの名無しさん2009/11/20(金) 01:04:57
このスレは、テンプレ以外価値のない書き込みばかりですね
0019デフォルトの名無しさん2009/11/20(金) 05:33:34
>>13
>VBは6から.NETに変わるにおいて だろ
それまでのVB(6以下)と、VB.NETは別物と言っていいほど違う
.NETいちからやるならJavaやるって判断はまああるだろう
VBのサポート期間はかなり長かった
VB.NETの言語仕様の変更ってのはあんまり記憶にない
追加要素ってのはいっぱいあるが、それを変更というならJavaだってずいぶんと変わってきた
0020デフォルトの名無しさん2009/11/20(金) 07:14:27
え? VB6 は Windows 7 でもサポートされますよ?
何言ってるんですか?
0021デフォルトの名無しさん2009/11/20(金) 12:20:24
javaだって滅茶苦茶変わってるぞ。
0022デフォルトの名無しさん2009/11/20(金) 14:32:03
>>16
そっちでしたか。ありがとうございます。
0023デフォルトの名無しさん2009/11/20(金) 14:36:25
>>17
ラベルの数値が変化した場合に色を変えるのだから、
ラベルの数値を変更する(値を代入する)タイミングで、上か下かを判断し、
BackColorを変えるプログラムを記述する方法が適切だと思います。

なんらかの理由でラベルの値が取得できない(表示が文字であるなど)
のであれば、そのフォームのメンバ(数値型変数)にそれに格納し、
その値で判断するしかないでしょう。
0024デフォルトの名無しさん2009/11/20(金) 14:57:56
>>19>>20>>21
ご回答ありがとうございます。

java の場合も、リファレンスには、使用が推奨されないクラスが結構
ある事から、言語の仕様変更は多くあることが推測されます。

検索してみると、Win7でもVB6がサポートされるということでした。
ありがとうございました。

ハードウェアの性能と共に技術的な需要が変わっていくので
仕様変更は仕方が無いとしても、その言語のサポート期間が
気になっていましたが、VBの方もOSが変わってもサポートが続いて
いますので、それでの開発も問題なさそうですね。
0025デフォルトの名無しさん2009/11/20(金) 16:38:52
開発環境はもうサポート終了だけどな
0026デフォルトの名無しさん2009/11/20(金) 16:40:10
なにぃ〜
0027デフォルトの名無しさん2009/11/20(金) 19:25:38
セキュリティパッチも提供されないけどな
0028デフォルトの名無しさん2009/11/20(金) 21:14:58
そんなもんどうでもいいよ
VB6プログラマがプログラム自体に作りこんだセキュリティホールのリスクの方が遥かに大きい
0029デフォルトの名無しさん2009/11/20(金) 21:37:39
>>28
まったくもってはげしく同意
0030デフォルトの名無しさん2009/11/20(金) 22:40:39
>>28-29
セキュリティホールって意味わかって言ってるのかそれw
0031デフォルトの名無しさん2009/11/20(金) 22:44:40
?
0032デフォルトの名無しさん2009/11/21(土) 00:43:06
セキュリティホールなんか誰でもいくらでも作れるじゃん
何もおかしくないけど
0033デフォルトの名無しさん2009/11/21(土) 02:25:38
Multimedia Fusion 2が来月発売されるらしい。

マウス操作だけでゲームを制作できるソフト。
プログラミングの知識がなくても、RPG 、シューティング、アクション、パズル、
アドベンチャーなどほぼすべてのジャンルのゲームを制作できる。
作ったゲームを Windows で動作する実行ファイルに変換したり、
Web ブラウザで動く Java アプレットとしても出力可能。
OS 問わずに実行できる Java アプリに変換にすることもできる。

願わくば、豊富な時間に恵まれて、
これからプログラミングを始めようとしている諸君らが、
プログラムの勉強を思いとどまってくれますように。

http://www.forest.impress.co.jp/docs/news/20091120_330540.html

>“Multimedia Fusion 2”は、豊富に用意されたオブジェクトをマウス操作で
>配置していくだけでゲームを制作できるソフト。キャラクターの動きなども、
>あらかじめ用意されたコマンドを組み合わせるだけで表現可能。
>プログラミングの知識がなくても、RPGやシューティング、アクション、
>パズル、アドベンチャーなどほぼすべてのジャンルのゲームを制作できる。

>製品版では、制作したゲームをWindowsで動作する実行ファイルへ変換できるほか、
>Webブラウザーで実行できるJavaアプレットとしても出力可能。
>Mac OSでも利用可能なJavaアプリケーションへ変換することもできる。
0034デフォルトの名無しさん2009/11/21(土) 10:40:43
2回同じ内容を書いているところあたりで、頭が悪そうな印象を受けた。
0035デフォルトの名無しさん2009/11/21(土) 12:23:17
>>30
何を言ってるのか分からない。
0036デフォルトの名無しさん2009/11/21(土) 13:07:27
どなたかDelegateとInvokeの考え方を噛み砕いてもらえませんか?
VS2008のVB環境ですが理解しようと苦心しています。
いくつかサイトを見て
http://634.ayumu-baby.com/vb/vb_delegate.html
とかは他よりかなり判り易い気して
「利用方法」部とかは判った気にはなるのですが
「サンプルコード」でコンストラクタ?何するPG??となり

最初からしっかり読もうと最初の「デリゲートとは」の部分で
関数ポインタ?委譲(コンポジション)??

とか、実際にコードを作るまでには至らない状況です。

ドラクエに例えて..とかとかネタで言いたい気もするんですが
なんかこの部分の考え方みたいなモノをどなたかレクチャーしてもらえないでしょうか?

助けて下さい、よろしくお願いします。
0037デフォルトの名無しさん2009/11/21(土) 13:21:07
コンストラクタで疑問符が出ちゃダメだろう そこはデリゲート以前だ
0038デフォルトの名無しさん2009/11/21(土) 13:36:24
まずクラスとかのオブジェクト指向関係をきちんとりかいしないとダメ
その上で、デリゲートやイベントについては本当の意味で理解するにはデザインパターンも必要かも
0039デフォルトの名無しさん2009/11/21(土) 15:13:49
VB.NETの場合、通常はCallを記述したりしないのが流儀なんでしょうか
0040デフォルトの名無しさん2009/11/21(土) 16:10:45
>>39
流儀ということは無いと思う。
ま、場合によっては複数人でそのコードを書く場合、引継ぎを考えて
そういったルールを設ける場合もあるかもしれないけれど。

もしエラーが起きた場合、どこで起きているかを確認する為、
必ず返り値を取得し、確認するというルールがあるというのも
きいたことはある。
0041デフォルトの名無しさん2009/11/21(土) 17:10:41
例外使ってれば全く不要だけどな
0042デフォルトの名無しさん2009/11/21(土) 17:12:57
何でもかんでも例外投げてりゃいい、ってもんじゃないけどな。
0043デフォルトの名無しさん2009/11/21(土) 18:08:39
まあVB6のようにCallの有無で機能が変ったりしないからね。
意味のないものをわざわざ記述する意味は通常ないだろう。
0044デフォルトの名無しさん2009/11/21(土) 18:41:46
&H00としたいんだけど&H0に変換されてしまう
&H0=&H00で合ってる?
0045デフォルトの名無しさん2009/11/21(土) 18:47:13
うん。
0046デフォルトの名無しさん2009/11/21(土) 19:08:23
ありがとう!
0047デフォルトの名無しさん2009/11/21(土) 23:37:24
1秒ごとにタイマーでデータを更新してラベルに数値を表示するようになっているのですが、
文字を変更する際に、数値が変更前より上か下かでラベルの色を変えているのですが、
3秒後に元の色に自動的に戻るようにしたいのですが、どんな方法が良いでしょうか?
3秒未満にまた色の変更があったらそこからまた3秒をカウントしたいです。
たくさんのラベルの色を戻す処理が重なっても負荷が少なく、
フォームがフリーズしたような状態にならないようにしたいのですがどんな方法が良いでしょうか?

>>23さんありがとうございます。
0048デフォルトの名無しさん2009/11/22(日) 01:31:24
>>47
メンバ変数か静的ローカル変数でカウンタ持ってタイマーのイベントが動く毎にカウントアップ
3回目が来たら色を元に戻せばいんじゃないかな?
途中で色が変わったらカウンタをクリアすればいいし
フォームを止めたくないならDoEvents書くかワーカスレッド作るとか

初心者なんで見当違いだったらすいません


というわけで質問させて下さい。
開発環境 :VB2005EE
データベース : SQLSERVER2005EE
接続はSqlClientを利用しています。

データベースに20万件の初期データを生成するのですが
処理開始から終了まで平均して5分ほどかかります
大雑把に処理内容としては、SqlConnectionで接続して
SqlCommandからInsert文をパラメータ差し替える形で発行します
課題として提出したらもうちょっと早くなるようにしてみてと
言われてしまい途方にくれています
やはり作りが問題なのでしょうか?
こういった場合どうするのが一般的なのでしょうか?
また、あくまでVBから実行するようにとのことでストアドプロシージャは
使えません

微妙な内容で申し訳有りませんが宜しくお願いいたします
0049デフォルトの名無しさん2009/11/22(日) 02:28:05
大量データのINSERTならBULK INSERTを検討してみるとか
http://msdn.microsoft.com/ja-jp/library/microsoft.sqlserver.dts.tasks.bulkinserttask.bulkinserttask.aspx

後、トランザクションは明示的に指定しているかい?
SQL SERVERは既定のトランザクション管理モードを自動コミットとしているから
単純にINSERT文を発行するとその度にAUTO COMMITされる
大量に処理する場合は最初にBEGIN TRANSACTION、最後にCOMMIT TRANSACTIONとして
TRY-CATCHで例外をROLLBACKしてやった方がいい
まぁVB.NETというより内容的にSQL SERVERかな
0050デフォルトの名無しさん2009/11/22(日) 10:18:30
まずは、どこに時間がかかってるのか確認することだな。

ファイルに吐きだして、BCP で突っ込む、ってのが一番速そうだけど。
0051デフォルトの名無しさん2009/11/22(日) 17:44:58
こんな感じのコードなんですけど。Tryで囲んであるのに異常が起きた場合
「WiimoteException はハンドルされませんでした。」のダイアログが出るです。
exをExceptionにしてもcatchされずに↑の例外ダイアログが出るです。
どうなってるの?

Try

    ' Wii リモコンに接続する
    wiimote.Connect()

Catch ex As WiimoteException

    MessageBox.Show(ex.Message)

End Try
0052デフォルトの名無しさん2009/11/22(日) 17:55:20
Connect呼び出し以外で投げられてんじゃね?
0053デフォルトの名無しさん2009/11/22(日) 17:57:33
たぶん別スレ
0054デフォルトの名無しさん2009/11/22(日) 17:58:32
そのライブラリ?がマルチスレッドでふぁ
0055デフォルトの名無しさん2009/11/22(日) 18:04:49
ほんとにそこで例外が発生してる?
0056デフォルトの名無しさん2009/11/22(日) 18:19:24
本当にそこで発生してます。
wiimote.Connect()にブレークポイントして調べた。
0057デフォルトの名無しさん2009/11/22(日) 18:20:07
っ ttp://www.atmarkit.co.jp/fdotnet/dotnettips/320appexception/appexception.html
0058デフォルトの名無しさん2009/11/22(日) 18:25:59
そういう問題ではなかろう…
0059デフォルトの名無しさん2009/11/22(日) 18:29:23
>>56
ブレークポイントしたらどうなったんだ?
普通に考えれば有り得ない気がするんだが。
ちなみにキャッチブロックにブレークポイント仕掛けても止まらないんだよね?
0060デフォルトの名無しさん2009/11/22(日) 19:12:34
DLLの中って落ちだろ
0061デフォルトの名無しさん2009/11/22(日) 19:51:18
>>60
オチというか、たぶんそうだろうねえ。
ならそのまま[F5]押して継続すれば何も問題ない。
0062デフォルトの名無しさん2009/11/22(日) 22:58:38
プログレスバーをオーディオのレベルメーターみたいに3色にしたいのですがどのようにやれば良いでしょうか?
0063デフォルトの名無しさん2009/11/22(日) 23:03:01
プログレスバーにはそんな機能ないから、自作するしかない。
0064デフォルトの名無しさん2009/11/22(日) 23:16:13
プログレスバーを元に改造?することはできますか?
ゼロから自作ですか?
0065デフォルトの名無しさん2009/11/22(日) 23:18:40
ゼロからじゃね?
0066デフォルトの名無しさん2009/11/22(日) 23:18:57
改造できるにしてもゼロから作った方が圧倒的に早いのは確実
0067デフォルトの名無しさん2009/11/22(日) 23:25:35
.NET のプログレスバーは、Windows コモンコントロールのプログレスバーをベースにしてる。
ベースの方でそういう機能がないので、改造は面倒だろうね。

いちから作っちゃった方が早いと思うよ。
0068デフォルトの名無しさん2009/11/22(日) 23:31:13
そうですか
作ると言ってもまるで状況が想像できないのですがすごく難しそうですね
ボタンでも無理そう><
0069デフォルトの名無しさん2009/11/22(日) 23:38:31
数が固定なら簡単だろ?

[][][][][][][][][][][][][][][][][]

みたいに四角を描画していけばいいわけだ。左から、緑・黄・赤で塗りつぶすと。
0070デフォルトの名無しさん2009/11/22(日) 23:46:50
その前の段階も良くわかっていません。
WindowsControlLiblaryというプロジェクトを開いて
フォームの枠(コントロールを何も置かない状態のフォーム)みたいなのを
レベルメーターみたいにしようと思ってやっているのですが、ここまではあってるでしょうか?
0071デフォルトの名無しさん2009/11/22(日) 23:51:53
いやカスタムコントロールの方を使う
いま君が開いてるのはユーザーコントロールだけどどうせデザイナ使えないから意味ない
0072デフォルトの名無しさん2009/11/22(日) 23:56:41
カスタムコントロールで調べてみます。
ありがとうございます。
0073デフォルトの名無しさん2009/11/23(月) 00:01:15
コントロールとして実装する前に、フォーム上でできるようにしてみるほうがいいんじゃね?
できてから、コントロールにすればいいし。
0074デフォルトの名無しさん2009/11/23(月) 00:08:21
まあ挫折するだろうな
オーバーライドとかわかってないだろ
0075デフォルトの名無しさん2009/11/23(月) 00:13:50
もう挫折してました
誰かが作ったのを探し始めてた;(vb レベルメーター コントロール 検索とかw
既存のプログレスバーのコードは見れないでしょうか?
0076デフォルトの名無しさん2009/11/23(月) 00:15:47
未公開
見れても読めるとも思えないけどな、C言語だろうし
0077デフォルトの名無しさん2009/11/23(月) 00:17:55
あきらめろよ。

VB6 だろうけど、こんなのはあった。
http://www.a1vbcode.com/a1vbcode/app-1490.asp
0078デフォルトの名無しさん2009/11/23(月) 00:18:15
あ。VB4 って書いてあるな。
0079デフォルトの名無しさん2009/11/23(月) 00:24:15
2002年にこんなもん出したのか
アホだな
0080デフォルトの名無しさん2009/11/23(月) 00:53:08
>>62
暇だったからサンプルコードを書いてみたよ。
ただ、手間だからLED状のブロック表示は諦めて単純な塗りつぶしにして手を抜いてある。
これなら意外と簡単でしょ?
Public Class LevelIndicator : Inherits Control
  ReadOnly GreenZoneColor As Color = Color.Green
  Const YellowZoneThreshold As Double = 60
  ReadOnly YellowZoneColor As Color = Color.Yellow
  Const RedZoneThreshold As Double = 90
  ReadOnly RedZoneColor As Color = Color.Red
  Private mPercent As Double = 0
  Public Property Percent() As Double
    Get
      Return mPercent
    End Get
    Set(ByVal value As Double)
      value = Math.Max(0, value)
      value = Math.Min(100.0R, value)
      If value <> mPercent Then
        mPercent = value
        Me.Refresh()
      End If
    End Set
  End Property
  Private Function PercentRangeToRect(ByVal percentFrom As Double, ByVal percentTo As Double) As Rectangle
    Dim left As Integer = CInt(Me.Width * percentFrom / 100)
    Dim right As Integer = CInt(Me.Width * percentTo / 100)
    Dim width As Integer = right - left
    Return New Rectangle(left, 0, width, Me.Height)
  End Function
0081デフォルトの名無しさん2009/11/23(月) 00:54:26
* 80続き *
  Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
    MyBase.OnPaint(e)

    Dim g As Graphics = e.Graphics

    Dim greenRect As Rectangle = PercentRangeToRect(0, Math.Min(Percent, YellowZoneThreshold))
    Using br As Brush = New SolidBrush(GreenZoneColor)
      g.FillRectangle(br, greenRect)
    End Using

    If Percent >= YellowZoneThreshold Then
      Dim yellowRect As Rectangle = PercentRangeToRect(YellowZoneThreshold, Math.Min(Percent, RedZoneThreshold))
      Using br As New SolidBrush(YellowZoneColor)
        g.FillRectangle(br, yellowRect)
      End Using
    End If

    If Percent >= RedZoneThreshold Then
      Dim redRect As Rectangle = PercentRangeToRect(RedZoneThreshold, Math.Min(Percent, 100))
      Using br As New SolidBrush(RedZoneColor)
        g.FillRectangle(br, redRect)
      End Using
    End If

    Dim rect As Rectangle = Me.ClientRectangle
    rect.Width -= 1 : rect.Height -= 1
    g.DrawRectangle(Pens.DimGray, rect)
  End Sub
End Class
0082デフォルトの名無しさん2009/11/23(月) 01:00:17
おおーすごい!
早速やってみます!ありがとう!
0083デフォルトの名無しさん2009/11/23(月) 01:15:42
動いたーー!!
完璧すぎてすご過ぎ
ありがとう!!!!!!!!!!!!!!
さっそくLEDみたいにするのをやってみます。
感謝!感謝!
0084デフォルトの名無しさん2009/11/23(月) 01:59:40
なんという甘やかし・・・
0085デフォルトの名無しさん2009/11/23(月) 03:28:06
ここは暇つぶしにプログラムするお題を探すスレになりましたw
0086デフォルトの名無しさん2009/11/23(月) 09:23:51
>>48
場合によっては具体的なコードをここでさらして、処理過程を見直した方が
良いと思います。
DataTableを使ってまとめてupdateをしてみた場合はどうなのかとか、
いくつか実験をやってみてはいかがでしょうか。
0087デフォルトの名無しさん2009/11/23(月) 11:36:50
質問です。
フォーム上にいくつか連名でオブジェクト(テキストボックス)を配置し、
その各テキストボックスにアクセスする場合のコードの書き方を教えて下さい。
AccessVBAだと、以下のような感じにコードを書く事が出来ますが、VB.NETだと
me(....)を書いた時点でエラーが表示されてしまいます。

dim str1 as string
dim i as integer
str1="textbox"
i=3
me(str1 & i)="a"

ループで処理をしたいので、こんな感じにコードを書きたくない場合の話です。
textbox3.text="a"
0088デフォルトの名無しさん2009/11/23(月) 11:42:02

CType(Controls(str1&i), TextBox).Text = "a"

みたいな感じでできる気がするけどあまり褒められたものではない
VBAとは全く別の言語だからVBAではどうとかいう考え方は捨てた方がいい
0089デフォルトの名無しさん2009/11/23(月) 11:48:45
>>88
すばやいレスありがとうございます。
早速コードを書いて試してみたところ、動作しました。
VBAとは別の言語であるという考えで勉強していこうと思いますが、
一つだけ追加で質問させてください。
VB.NETの場合は、フォーム上にテキストボックスをたくさん配置して
おいて、それらを一括ですべてクリアにするとか、値を取得して
配列に格納するとかいう場合、以下のようなコードを書くのが一般的
ということになるのでしょうか。

Me.TextBox1.Text = "a"
Me.TextBox2.Text = "a"
Me.TextBox3.Text = "a"
Me.TextBox4.Text = "a"
Me.TextBox5.Text = "a"
・
・
・
0090デフォルトの名無しさん2009/11/23(月) 11:49:59
VBAのフォームってこんなデタラメなことが出来たんだw
フォームの既定のプロパティなのかな?
こんなことができて嬉しい場面が思い浮かばないが・・・
0091デフォルトの名無しさん2009/11/23(月) 11:51:54
配列作る
0092デフォルトの名無しさん2009/11/23(月) 11:52:41
配列だな
0093デフォルトの名無しさん2009/11/23(月) 11:55:20
>>90
コードが少なくて済むというメリットがあると思います。
0094デフォルトの名無しさん2009/11/23(月) 11:57:29
>>91>>92
配列とは、どのような意味なのでしょうか?
TextBoxに格納する文字列を、TextBoxとは別に配列を宣言し、
それに格納しておいて・・・その後の処理をどうしたらいいのかの
イメージがつきません。すみません。
0095デフォルトの名無しさん2009/11/23(月) 12:03:09
>>94
配列っていうのは本当はいい答えじゃない。

要は何らかのコレクションになっていれば、そのコレクションが含んでいるアイテムを
「一括ですべて(まとめて)」操作することも出来るでしょ。

例えばVBのコントロール配列だって、君の書いているVBAのMe(コントロール名)だって
そういうアイデアだよね?

要はそのコレクションを自分で用意すればいいってこと。
それはList(Of T)だったり、Dictionary(Of TKey, TValue)だったり、
ただの配列だったり、目的に合わせて適切なものをね。
0096デフォルトの名無しさん2009/11/23(月) 12:21:07
>>95
レスありがとうございます。
となると、VB.NETの場合は、必ず以下のような関数を作らないといけなく
なってくるという考えでよろしいのですよね?
・格納する配列の内容をフォーム上のオブジェクトに反映する。
・フォーム上のオブジェクトの内容を配列に格納する。

VBAでは、直接フォーム上のオブジェクトを操作していたので、
VB.NETのこの、つなぎを行う処理を書かなければならないという
考え方にはちょっと違和感を感じますが、慣れる様にしたいと思います。
0097デフォルトの名無しさん2009/11/23(月) 12:28:33
そもそもまとめて操作する機会なんてそんなにあるか?
0098デフォルトの名無しさん2009/11/23(月) 12:30:34
VB.NET でも、Controls コレクションって用意されてなかったっけ?
0099デフォルトの名無しさん2009/11/23(月) 12:30:36
コントロールそのものをコレクションに入れてもいいけど
一般にはクラスやコレクションでデータだけ別管理にした方がUIと分離できて良い方法
VBAだろうと同じ
0100デフォルトの名無しさん2009/11/23(月) 13:08:29
>>97
全般的に言うと少ないとなるでしょうね。しかし、似たようなコードを
たくさん書かないといけなくなったりすると、何とかならないかなと
おもったりするんですよ。


>>98
詳細をお願いします。


>>99
確かにMVCモデルという言葉があるように、データと表示は分離した
作り方をした方がいいと思いましたが、型指定されたDataSetみたいな
便利機能がないのが、今のところひっかかっています。
(プログラムをしていけば、慣れていくのだと思いますが)
0101デフォルトの名無しさん2009/11/23(月) 13:11:45
>>98
それが>>88のControls
0102デフォルトの名無しさん2009/11/23(月) 13:24:45
DataTable作って各TextBoxバインドすれば
一括クリアーも配列への格納も楽だよー
0103デフォルトの名無しさん2009/11/23(月) 13:29:36
>>101
解説ありがとうございます。


>>102
ああ、その手がありましたね。
0104デフォルトの名無しさん2009/11/23(月) 13:34:10
型付きデータセットなんて、この文脈じゃまったく関係ないだろうに。

頭でっかちになる前に、手を動かせよ。
0105デフォルトの名無しさん2009/11/23(月) 14:45:23
IExtenderProvider実装してやればいろいろできる。
グループ名プロパティ提供してグループ名で一括操作とかな。
0106デフォルトの名無しさん2009/11/23(月) 15:13:45
>>104
私は、コードを書くよりも、いろいろ考えすぎてたようです。
もっといろいろなプログラムを作る事に集中します。


>>105
私の知識不足で、直感的にどのような操作なのかがイメージ出来ません
でしたが、出していただいたキーワードを元に検索などかけて調べて
みます。ありがとうございます。
0107デフォルトの名無しさん2009/11/23(月) 15:48:10
>>106
とりあえずブログラムは経験だから頑張れ
0108デフォルトの名無しさん2009/11/23(月) 16:36:33
すみません、質問です。
VB.NET Express のコントロールには、Lineなどというものはないのでしょうか。
フォーム上に、区切りとして、単に線を引いたり、枠線を描いたりしたいのですが。
0109デフォルトの名無しさん2009/11/23(月) 16:47:34
labelで代用してる
0110デフォルトの名無しさん2009/11/23(月) 16:55:25
VB系の拡張コントロールが提供されてなかったっけ?
Lineとかそういうのが使えるやつ。
0111デフォルトの名無しさん2009/11/23(月) 16:57:33
>>109
レスありがとうございます。
線や四角を描く部分をlabelで代用する場合、具体的にプロパティはどのように設定したら
よいのでしょうか?
BorderStyle を FixedSingle にするとラベルに枠が出来るというまでは思いつくの
ですが、その後、線にしたり、任意の大きさの四角にする部分が分かりません。
0112デフォルトの名無しさん2009/11/23(月) 17:02:02
PowerPack だな。
0113デフォルトの名無しさん2009/11/23(月) 17:07:18
Dim NewPen As New System.Drawing.Pen(System.Drawing.Color.Black)
Dim FormGraphics as System.Drawing.Graphics
FormGraphics = Me.CreateGraphics()
FormGraphics.DrawLine(NewPen, 0, 0, 300, 300)
NewPen.Dispose()
FormGraphics.Dispose()

こんな感じで無理だっけ?
0114デフォルトの名無しさん2009/11/23(月) 17:12:19
http://www.atmarkit.co.jp/fdotnet/dotnettips/310linecontrol/linecontrol.html
直線

http://www.atmarkit.co.jp/fdotnet/dotnettips/792winrectshape/winrectshape.html
四角

0115デフォルトの名無しさん2009/11/23(月) 17:14:09
失敗

http://www.atmarkit.co.jp/fdotnet/dotnettips/781winlineshape/winlineshape.html
こっちが直線

114の直線はlabelで代用した直線
0116デフォルトの名無しさん2009/11/23(月) 17:42:41
かなり早く、多くの回答ありがとうございました。

>>110>>112
拡張コントロールを使うんですね。

>>113
出来れば、フォーム上のオブジェクトとしてマウスで操作する
方法で配置したいと思っていたのです。
もし、その方法が無理であれば、紹介していただいたコードを書く
方法を使うしかないでしょうね。

>>114>>115
labelで代用する場合は AutoSize を false に変えたらよかったのですね。
上手くリサイズが出来なくて苦労してましたが出来ました。
紹介していただいた@ITのサイトも見てみます。
0117デフォルトの名無しさん2009/11/23(月) 18:27:41
イベントプロシージャーの外に宣言した
Dim num As Integer
という変数をTextBoxなどのように変更のイベントを発生させるにはどのようにしたら良いでしょうか?
0118デフォルトの名無しさん2009/11/23(月) 18:29:26
無理。
0119デフォルトの名無しさん2009/11/23(月) 19:10:05
>>117
その変数を自分で変更したら自分で定義した好きなイベントを発生させる
0120デフォルトの名無しさん2009/11/23(月) 20:20:28
これを翻訳するとどうなりますか?

Vector3[] vertexs;
vertices = new Vector3[vertices.Length];
0121デフォルトの名無しさん2009/11/23(月) 20:24:14
知らんがな。
0122デフォルトの名無しさん2009/11/23(月) 20:26:23
DirectXかXNAかなんか?
そんなの自分で調べられないと絶対無理だよ
C#どころかC++も読めないと厳しい
0123デフォルトの名無しさん2009/11/23(月) 20:33:38
2chスレッドのレス抽出をするプログラムを作ろうとしています。
URLからスレッドのHTMLを取得することはできたのですが、そこからどうすればいいのかわかりません。

プログラムの引数に指定範囲の最小、最大を与えてその範囲内のレスの本文とIDを取得したいのですが。
0124デフォルトの名無しさん2009/11/23(月) 20:34:51
>120
VBでは無理
0125デフォルトの名無しさん2009/11/23(月) 20:38:32
>>123
正規表現あたり
.dat取得したほうが解析は楽だと思うけど
0126デフォルトの名無しさん2009/11/23(月) 20:42:52
>>123
Datファイルを調べれば幸せになれるかも
0127デフォルトの名無しさん2009/11/23(月) 20:53:08
レスありがとうございます。
Datファイルからの取得のほうが楽そうですね。
Datファイルからの解析となると、Datファイルのパスを取得、レス番に指定範囲行を代入、ID、本文を格納という流れになるのかな。
0128デフォルトの名無しさん2009/11/23(月) 21:43:33
むかしチャレンジしたが、POSTが分からずに断念した俺登場
0129デフォルトの名無しさん2009/11/24(火) 02:13:58
ログ読むだけなんでしょ。
投稿するわけじゃないんだから、POSTは関係ないでしょ。
0130デフォルトの名無しさん2009/11/24(火) 03:02:39
それは設計レベルの問題。
「ソフト作りたいのですが、設計ができません」
じゃ、教えるというよりも
代わりに考えて、といってるようなもの。
作りたいと思ったなら自分で考えろ。
0131デフォルトの名無しさん2009/11/24(火) 03:03:32
自分で考えるのが嫌なら、既製品を使え。
0132デフォルトの名無しさん2009/11/24(火) 10:09:43
○×ゲームのフィールドにあたるクラスを設計・コードを記述し、
以下のスレに投稿したのですが、コーディングや設計に関する部分で、
経験豊富なプログラマーの方々が思う指摘というものを受けてみたいと思い、
こちらで質問をしてみました。
http://pc12.2ch.net/test/read.cgi/tech/1258895847/52-59n

ざっと読んでみたところ、こちらのスレは全般的に、TIPS系の質問が
多いようですので、もし、こういった質問がスレ違いということでしたら
該当スレへの誘導をお願いしたいと思います。

どうぞよろしくお願い致します。
0133デフォルトの名無しさん2009/11/24(火) 10:16:09
>>127
ローカルに保存したdatは、テキストファイルをどのような形式で表示
させるかという話だと思う。
テキストファイルの操作について分からなければ、ファイルのopenやら
closeはどうやったらいいのか、といったレベルから勉強しなおした方が
良いと思う。
0134デフォルトの名無しさん2009/11/24(火) 15:00:44
>>127
とりあえずテキストファイルの操作を学べばおk
0135デフォルトの名無しさん2009/11/24(火) 15:44:43
すみませんが質問です。

コンボボックスやテキストボックスにて、未入力や未選択、任意に入力内容を
消した状態を確認するコードは、
If Me.TextBox1.Text = "" Then
というコードのみでよいのでしょうか?それとも、
If Me.TextBox1.Text = "" Or IsNothing(Me.TextBox1.Text) Then
という感じに、null判定も入れておくべきなのでしょうか?

細かいところですが、ある程度はユーザの操作内容を確実に取得できる
ようなコードを書いておく習慣をつけておきたいと思い、質問してみました。
0136デフォルトの名無しさん2009/11/24(火) 15:54:17
コントロールのTextがnullになることは普通ないけど
(カスタムコントロールでTextをオーバーライドしてnullを返すような実装にわざとしない限り)、
一応String.IsNullOrEmptyで判断しておけば
0137デフォルトの名無しさん2009/11/24(火) 16:06:50
>>136
null判定は不要だったのですね。
String.IsNullOrEmpty で判断したコードを書くように
したいと思います。ありがとうございます。
0138デフォルトの名無しさん2009/11/24(火) 16:33:25
VB.NET2003について教えてください。
http://dobon.net/vb/dotnet/form/savefiledialog.html
を参考にファイル保存ダイアログを出しているのですが
sfd.OverwritePrompt = True
'存在しないパスが指定されたとき警告を表示する
'デフォルトでTrueなので指定する必要はない
で上書きの警告ダイアログを出したとき
通常は「はい」ボタンがデフォルトになっているのですが
これを「いいえ」ボタンをデフォルトにすることは可能でしょうか?
0139デフォルトの名無しさん2009/11/24(火) 17:06:40
>>138
無理だったと思う
0140デフォルトの名無しさん2009/11/24(火) 17:09:21
>>139
やはりそうですか。ありがとうございました。
0141デフォルトの名無しさん2009/11/24(火) 17:10:50
>>140
ちょっとまて
それをFalseにして自分で警告ダイアログを表示すればいいんじゃね
0142デフォルトの名無しさん2009/11/24(火) 17:30:09
>>140
そもそも 「存在しないパスが指定されたとき警告ダイアログを表示する」
なのに上書き警告ダイアログを表示するってのがよく分からん
0143デフォルトの名無しさん2009/11/24(火) 17:39:46
>>142
それはおそらくコピペする行を間違えているのだろうw


>>138
OverwritePromptは、TrueかFalseしか指定できないので、それを
設定する方法では出来ない。となるが、>>141にあるように、
自作で、上書きしようとしているかどうかをチェックし、
警告ダイアログをMessagebox.Show( で表示すると可能ではある。
0144デフォルトの名無しさん2009/11/24(火) 18:02:53
なるほど
自分でやればいいのか。ありがとうございました。
0145デフォルトの名無しさん2009/11/24(火) 18:49:06
俺は質問者ではないが、実際にどんなコードを書いたらいいのかを
調べてたが、自作する場合はダイアログが一旦閉じてしまう方法
しかなさそうだな。(ま、それでキャンセルしたら再度ダイアログが
開くようにすればいいだけともいえるのだが)

こんな感じになるんだろうな。

If sfd.ShowDialog() = DialogResult.OK Then
If System.IO.File.Exists(sfd.FileName) Then
' filePathのファイルは存在する
MessageBox.Show("上書きしてもよか?")
End If
End If
0146デフォルトの名無しさん2009/11/24(火) 20:30:58
基本的な質問で申し訳ありませんが、お願いします。

一番最初に開くフォーム(Form1)で設定ファイルから値を読込み、それが、
他のフォームにおいても使えるようにしたいのですが、.NETの場合は、
オブジェクト指向言語なので、グローバル変数に値を格納というのは
良くないのですよね?
では、具体的にはどうしたらよいのでしょうか?

VBAの際は、モジュールを追加して、global 〜〜って感じに
変数を宣言すればよかったのですが。
0147デフォルトの名無しさん2009/11/24(火) 20:36:50
Timerイベントで一秒に一回ファイルストリームに1行ずつ書き込んでいるのですが、
同じ時間が重複して書き込まれることがよくあるのですが、これは何が原因でしょうか?
0148デフォルトの名無しさん2009/11/24(火) 20:47:41
>>146
public 変数 as integer
こんな感じでいけた気がする
0149デフォルトの名無しさん2009/11/24(火) 20:50:46
>>147
>>147
>Timerイベントで一秒に一回ファイルストリームに1行ずつ書き込んでいるのですが、
ファイルストリームに書き込むとは?

>同じ時間が重複して書き込まれることがよくあるのですが、これは何が原因でしょうか?
現在の時間を書き込むってこと?kwskお願い
01501492009/11/24(火) 20:52:44
ミスったorz
0151デフォルトの名無しさん2009/11/24(火) 20:56:41
>>146
オブジェクト指向言語だからってオブジェクト指向で書く必要はない
オブジェクト指向する気ないんだったら>>147で十分
本当に勉強する気があるならJavaでもやった方がいい
0152デフォルトの名無しさん2009/11/24(火) 21:08:27
>>149
一秒ごとに変化するデータを時間と一緒に書き込んでいます。
今日日中は無人でパソコンを使いながら実行していたのではないのですが
確認したら重複がたくさんありました。
0153デフォルトの名無しさん2009/11/24(火) 21:10:03
>>149
ファイルストリームに書き込むというのは
StreamWriterのWriteLine(Str)という方法です。

連投スマソ
0154デフォルトの名無しさん2009/11/24(火) 21:10:32
System.Windows.Forms.Timerは不正確だから呼び出し間隔を当てにしてはいけない
01551492009/11/24(火) 21:12:54
>>153
ああ、そういうことね
Timerはそんなに正確じゃなかった気がするよ
0156デフォルトの名無しさん2009/11/24(火) 21:21:03
了解です。
時間がとんだ時に取り戻すように同じ時間を書き込んでいる感じなのですが、
これはパソコンの速度の限界なので回避しようがないでしょうか?
01571492009/11/24(火) 21:24:26
>>156
パソコンの早さはあまり関係ないと思う
ライブラリ自体が不正確だったかな
0158デフォルトの名無しさん2009/11/24(火) 21:26:23
System.Threading.TimerかSystem.Timers.Timerを使えばかなり精確
どちらも別のスレッドで呼び出されるから扱いには注意
0159デフォルトの名無しさん2009/11/24(火) 21:58:27
試してみます。
どうもありがとうございました。
0160デフォルトの名無しさん2009/11/24(火) 22:06:51
ここにvbNullString vbNullChar ""の違いを説明できるヤシは居ない予感
0161デフォルトの名無しさん2009/11/24(火) 22:13:27
vbNullStringはただのNothing
vbNullCharは0
""は空のStringオブジェクト
01621492009/11/24(火) 22:27:06
>>160
分からないならそう書けよ
0163デフォルトの名無しさん2009/11/24(火) 22:46:11
>>148>>151
レスありがとうございます。
オブジェクト指向する気が無いコードの書き方があるのも
分かりましたが、もし、オブジェクト指向する気がある場合だと、
どういう考え方になるのでしょうか?
値が格納されたクラス(もしくは構造体)を設定し、そのインスタンスを
Form2がopenする際に渡すという考え方になるのでしょうか?
0164デフォルトの名無しさん2009/11/24(火) 22:49:21
まあそうするのがいいと思う
あと特別な理由(主にパフォーマンス)がなければ構造体は使わずクラスを使う
0165デフォルトの名無しさん2009/11/24(火) 23:16:35
>>162逆に素直に教えてクン丸出しで質問してもググレカスと返される
あえて煽ったり釣ったりした方が、適度なマジレスが的確に返ってくる
度を越すと誰にも相手されずにおじゃんだけどな !
0166デフォルトの名無しさん2009/11/24(火) 23:25:45
>>164
ありがとうございます。
0167デフォルトの名無しさん2009/11/24(火) 23:27:13
>>165
わけのわからんかけひきはしなくていい。
0168デフォルトの名無しさん2009/11/24(火) 23:32:16
>>163
いやいやそんなタコ足配線みたいなコードはOOPしようがしまいが
普通のセンスをしてれば「やりたくない」と思うはず。

冷静に考えてみ?
どうして他のフォームの設定値を"Form1"が管理するの?
なんでその設定値を必要とするフォーム自身で管理しようと思わないの?
その方がずっとわかりやすいじゃない。
0169デフォルトの名無しさん2009/11/24(火) 23:53:05
考えるより体で覚えろ
0170デフォルトの名無しさん2009/11/25(水) 00:53:59
何も考えずに走れ!!!!
0171デフォルトの名無しさん2009/11/25(水) 00:56:38
.NETフレームワークって実は内部でWIN32APIをうごかしてる?
0172デフォルトの名無しさん2009/11/25(水) 01:00:29
まあそりゃWindowsとの対話は基本Win32API越しにするもんだからな
0173デフォルトの名無しさん2009/11/25(水) 14:30:32
昔はDOSやPOSIXやOS/2のAPIも聞いてくれたけどな
0174デフォルトの名無しさん2009/11/25(水) 15:14:02
WindowsサービスにIPCサーバーさせてるんですが、IPCクライアントから接続すると、
「IPCポートに接続できません。アクセスが拒否されました。」と出ます。
TCPの時は問題なかったのですが、IPCだとACL設定がいるようで、その方法がわか
りません。
誰にでもアクセス許可させたいんですが、どのようにACL設定したらよいのでしょうか。
下記のようにしてダメでした(すいません、C#です...)。
SecurityIdentifier allUserSid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
DiscretionaryAcl dacl = new DiscretionaryAcl(false, false, 1);
dacl.AddAccess(AccessControlType.Allow, allUserSid, -1, InheritanceFlags.None, PropagationFlags.None);
CommonSecurityDescriptor securityDescriptor = new CommonSecurityDescriptor(
false, false,
ControlFlags.GroupDefaulted | ControlFlags.OwnerDefaulted | ControlFlags.DiscretionaryAclPresent,
null, null, null, dacl);
App.configに何か書くサイトもありましたが、Expressで空のプロジェクトから自前でW
indowsサービスにしたので、App.configがなく、自前で下記を追加したら「'application'
のスキーマ情報が見つかりませんでした。」と怒られました。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown mode="SingleCall" type="Server.MyRemoteObject, Server" objectUri="MyRemoteObject.rem" />
</service>
<channels>
<channel ref="ipc" portName="MyIpcChannel" authorizedGroup="Users"/>
</channels>
</application>
</system.runtime.remoting>
</configuration>

どうしたらよいのか教えてください...
01753612009/11/25(水) 16:20:34
>>174
スレ違い
C# の質問スレの方がいい答えがかえってくるはず
0176デフォルトの名無しさん2009/11/25(水) 17:24:17
現在オセロ作っていまして
石を置くときにクルッと一回転させてから置くような感じの効果を付けたいのですが
どのように考えればいいんでしょうか?
よろしくお願いします
0177デフォルトの名無しさん2009/11/25(水) 17:27:24
3Dでモデリングとか考えてないなら、
何枚か回転途中の絵を用意しといてタイマで絵を切り替えながら描画する
01781762009/11/25(水) 17:29:18
あ、石は単純に円で表現してます
本当は円柱で描きたかったのですがそちらの方もやり方がわかりませんでしたので・・・
では改めてよろしくお願いします
0179デフォルトの名無しさん2009/11/25(水) 17:29:42
>>176
石の横幅を小さくしてから大きくする
0180デフォルトの名無しさん2009/11/25(水) 17:31:23
>>178
黒と白の石をずらして重ねてみるとか
01811762009/11/25(水) 17:32:24
補足書いてある間に回答がきててすれ違いになってしまいました
>>177、>>179
両方のやり方で作ってみて見た目が良かった方でいこうと思います
どうもありがとうございました
01821762009/11/25(水) 17:35:03
これまたすれ違いに・・
>>180
早速取り入れてみます
ありがとうございました
0183デフォルトの名無しさん2009/11/26(木) 00:32:02
WebRequestとWebResponseクラスを使ってサイトにアクセスしているのですが、
HTMLソースをString変数に読み込んで、内容を正規表現で調べているのですが、
mshtmlクラスのように、GetElementByTagNameなどのメソッドで
データの取得や設定が簡単に扱えるようにするにはどんな方法でやれば良いでしょうか?
0184デフォルトの名無しさん2009/11/26(木) 00:37:25
標準では用意されてない
0185デフォルトの名無しさん2009/11/26(木) 00:51:58
DOM やりたいなら、mshtml で読み込めよ。
0186デフォルトの名無しさん2009/11/26(木) 00:59:56
レスありがとうございます。
DOMというのですか。この方法はAxWebBrowserを使う時の方法しか知らないのですが、
WebRequestとWebResponseクラスを使った方法でも使うことが出来るでしょうか?
ヒントでも良いので方法を教えて頂けると助かります。
0187デフォルトの名無しさん2009/11/26(木) 01:06:38
http://msdn.microsoft.com/en-us/library/aa752047(VS.85).aspx

こーゆーやつ。
0188デフォルトの名無しさん2009/11/26(木) 07:22:24
すいません、質問です。
(VB.NETというよりも、IDEに関係する話かもしれませんが)
プロジェクトを作成し、プログラムを実行すると、ディフォルトでは
Debugにexeが格納されますが、このexeのみを別のPCへコピーして
実行してみる事に問題はありますか?

基本は、インストーラーを作成して・・・となるのでしょうが、
私が作っているプログラムの規模が小さいのもあり、この操作方法で
今のところうまく行っているのですが、これによってどういった不具合が
予測されるかが良く分からない状況です。
どういう問題や不具合が起きると考えられるのかを教えて下さい。お願いします。
01891742009/11/26(木) 07:44:24
>>175
了解しました。
ありがとうございます。
0190デフォルトの名無しさん2009/11/26(木) 07:44:33
それで動くんなら問題ない。

マナーとして、debug ビルド版じゃなくて、release ビルド版の方を
配布した方がいいかもしれんが。
0191デフォルトの名無しさん2009/11/26(木) 09:37:07
どっかに、汎用の「遺伝的アルゴリズム」のソース落ちてないですか?
0192デフォルトの名無しさん2009/11/26(木) 09:51:45
>>188
Debug版は配布すべきでない。
単にDebug.WriteLineなどのログ情報が必要なだけなら、
ReleaseビルドでDEBUG定数の定義を追加すればよい。
0193デフォルトの名無しさん2009/11/26(木) 10:21:12
>>188
外部ツール使ってなければ
気にするのはFrameworkのバージョン位だな

3.xが入ってれば
明示的に2.0入れなくても動くんだっけ?
0194デフォルトの名無しさん2009/11/26(木) 14:47:31
>>188
Debugビルドの方が、Releaseビルドより容量が大きくなることがあるんじゃなかったっけ?
Debug用の情報が含まれるとかなんとかで。

0195デフォルトの名無しさん2009/11/26(木) 15:02:02
ほとんど変わらんかったと思う。
でかいのはあくまでpdb。
0196デフォルトの名無しさん2009/11/26(木) 15:38:26
pdbって何なの?
ちょこっとプログラム組んだだけで、
ものすごいサイズのpdbファイルができることがあるんだけど・・・
0197デフォルトの名無しさん2009/11/26(木) 17:45:10
どうやってデバッガがソースファイルや行位置やその他諸々を理解してると思う?
0198デフォルトの名無しさん2009/11/26(木) 18:10:26
>>197
???
0199デフォルトの名無しさん2009/11/26(木) 18:32:07
「pdbファイル」というキーワードを自ら出しておきながら
ググれないとか、もうね。
0200デフォルトの名無しさん2009/11/26(木) 21:03:01
>>199
すいません >>198は誤爆なので質問者じゃありません
0201デフォルトの名無しさん2009/11/26(木) 21:27:37
>>187
ありがとうございます。
ほとんど意味がわかりませんがまた調べてみたいと思います。
0202デフォルトの名無しさん2009/11/26(木) 22:22:57
VBはDebug.Break()ないのけ?
0203デフォルトの名無しさん2009/11/26(木) 22:43:32
System.Diagnostics.Debugger.Break()
0204デフォルトの名無しさん2009/11/26(木) 22:59:35
なんか俺みたいな初級者が「開発」なんて言葉こっぱずかしくて使えない
0205デフォルトの名無しさん2009/11/26(木) 23:59:44
関数の戻り値で配列をReturnで返すには1行で書くにはどう書いたら良いですか?

Function Hoge(hoge As String) As String()
Dim res(1) As String
res(0)="hoge"
res(1)="hoge2"
Return res
End Function

と書かずに
Return {hoge,hoge2}

のように書きたいです。
0206デフォルトの名無しさん2009/11/27(金) 00:00:57
Return New String() { hoge, hoge2 }
0207デフォルトの名無しさん2009/11/27(金) 00:06:39
>>206さんありがとうござます。
0208デフォルトの名無しさん2009/11/27(金) 02:10:18
新規フォーム作成時の赤黄青のデフォルトアイコン↓
http://dobon.net/vb/dotnet/form/img/formborderstyle_single.png
これを実行ファイルのアイコンにも使用したいと思っているのですが
どこに存在するか分かる方いますか?
0209デフォルトの名無しさん2009/11/27(金) 03:31:48
Standard以上ならVisualStudioのImageLibraryにあるかもしれんが
そうでなければ勝手に使うのはライセンス違反になる気がする
02101882009/11/27(金) 07:51:56
debugのexeの質問へのレスをしていただいた方々、ありがとうございました。
なにやら、別の方が割り込んできている様子でしたので念のために断って
おきますが、私は質問の投稿しかしていませんでしたので、それ以外の質問は
別の方だと思われます。

今のところ、特に凝ったものを使ったりはしていないのと、細かいレベルで
プログラムの修正がある関係から、とりあえずは release ビルド版の配布を
行うようにしておきたいと思います。
ありがとうございました。
0211デフォルトの名無しさん2009/11/27(金) 08:09:19
別にdebugビルドをリリースしてもええよ
細かすぎんだよプログラマは
0212デフォルトの名無しさん2009/11/28(土) 09:40:45
質問です。
私はやっと、VB.NET Express Edition をある程度使いこなせるように
なった者です。
このエディションだと印刷機能が低く、Line関数で座標を数値で
指定しながら程度しか帳票を作ることが出来ないようですが、
コストもある程度考えながら、保守性や生産効率性を考えた上で
帳票を作りたい場合は、どのような方法を取るケースが多いのでしょうか?
上位エディションや、Grapeなどのサードパーティー、Accessを使う方法など
いろいろあるようですが、それらをそろえるには資金的な壁がありましたので、
ちょっとここで聞いてみたいと思いました。
0213デフォルトの名無しさん2009/11/28(土) 13:05:15
ActiveReportsとかCrystalReportsとかが一般的だが要は金がないんだろ
WordやExcelをCOM使って帳票の代わりにするとか検討してみれば
小規模であれば差込印刷とかで、アプリ側はCSVだけ作成して
帳票の印字調整はあらかじめWordに設定しておくとかすれば工数も掛からんだろ
後は時間と知識があるなら帳票コントロールの自作とかかね
0214デフォルトの名無しさん2009/11/28(土) 13:17:12
iText.netがいいよ
02152122009/11/28(土) 19:15:06
>>213>>214
情報提供ありがとうございます。
出していただいたキーワードをもとに調べてみます。
0216デフォルトの名無しさん2009/11/28(土) 19:26:23
自アプリのメッセージボックスをプログラムで消す(キャンセルを押す)にはAPIでハンドルを調べてAPIでメッセージを
送るという方法しかありませんか?
0217デフォルトの名無しさん2009/11/28(土) 19:31:40
MessageBoxTimeOutA/W
0218デフォルトの名無しさん2009/11/28(土) 19:33:28
プログラム側で勝手に「消す」ようなメッセジーボックスなら
最初から表示しなけりゃいいのに。

時限で自動的に閉じる、みたいなことがしたいのかもしれないが、
それならそういうメッセージボックスクラスを自分で作ればいい。
少なくとも俺はそうした。
別にたいした手間じゃない。
0219デフォルトの名無しさん2009/11/28(土) 22:17:07
レスありがとうございます。
MessageBoxTimeOut
で検索したらサンプルが出てきたので今回はそれを使ってみます。
0220デフォルトの名無しさん2009/11/30(月) 11:38:00
Dim gyo As String
Dim moji As Char
Dim sr As New System.IO.StreamReader(Opendonfile.FileName, System.Text.Encoding.Default) '読込みモードでオープン
Do Until sr.Peek = -1 '最終行が終わるまで繰り返す
gyo = sr.ReadLine 'gyoに行を読み込ませる
mojisu = gyo.Length '行の文字数をmojisuに代入
For count = 0 To mojisu Step 1
moji = gyo.Chars(count)
MsgBox(moji)
Next
Loop

1行目までは行くんですが2行目に行くときに
moji = gyo.char...の文で「IndexOutOfRangeExceptionはハンドルされませんでした」と出るのですがどうすればよいのでしょうか?
0221デフォルトの名無しさん2009/11/30(月) 11:44:48
Lengthは文字数を返す
ForはToで指定された値まで繰り返す
例えばLength=3だったとして、For 0 To 3 は何回繰り返す?
0222デフォルトの名無しさん2009/11/30(月) 11:51:51
なるほど、文字数より1つ大きい値まで指定してしまったんですね。
ありがとうございました。
0223デフォルトの名無しさん2009/11/30(月) 18:27:02
すみません、質問です。
クラス(DataBox)をコーディングにおいて、そのクラスの設定状況によって
別の値を取得できるかどうか、変更可能かどうか、などの動作を行うように
したいと思っています。
このような動きにする場合は、プロパティでは不可能で、メソッドにて
行うということでよろしいのでしょか?

イメージ的にはこんな感じです。
IF mSettei = 1 Then
 return mColor;
Else
 return False;
 ' もしくは例外を返すとか
End IF
0224デフォルトの名無しさん2009/11/30(月) 18:30:44
プロパティでは「不可能」ではなく、「不適切」でした。
質問したいのは、プロパティとメソッドの使い分けの考え方の部分です。
0225デフォルトの名無しさん2009/11/30(月) 18:56:22
よくわからんが…状況によって、どういう型を返すか解らんよ、ってこと?
0226デフォルトの名無しさん2009/11/30(月) 19:19:11
>>225
ある状況であると、値をちゃんとかえす。
べつな状況であると、値を返さない。
という動きにしようと思っているのです。
箱が閉じて鍵がかかってデータが取れない状態と、
空いていて、データが取れる状態の二つの動作を
持たせようと思っているのです。

もしかすると、このような設計をすること自体が
間違いなのかもしれません。
箱が空いていてデータが取れるかどうかの区別は
DataBoxを使用する側の方が制御するべきなのかな?
0227デフォルトの名無しさん2009/11/30(月) 20:10:58
1. 値を返せるかどうか
2. 値そのもの
の2つを同時に戻したいなら、
A. 「Function Get〜(ByRef 戻り値) as Boolean」として
  戻り値へ値をセットしたかどうかを返す。
B. 「Property 〜() as Nullable(Of 型)」として、返せないときは
  Nothing を戻す。
C. 戻り値の型が参照型なら Nothing を、値型なら
   (もしあれば) その型の Empty 値を戻す。
D. (プロパティだろうとメソッドだろうと構わないが) 別々に戻す。
0228デフォルトの名無しさん2009/11/30(月) 21:09:56
>>226
それはダメ
Getで失敗させるのはMSのガイドラインに違反する
0229デフォルトの名無しさん2009/11/30(月) 22:25:37
処理に時間がかかる大きな変数を関数に渡して
その後すぐにその変数を書き換えた場合おかしな動作になりますか?
0230デフォルトの名無しさん2009/11/30(月) 22:27:24
ならんよ。
0231デフォルトの名無しさん2009/11/30(月) 22:52:59
了解です。
0232デフォルトの名無しさん2009/11/30(月) 23:34:07
>>226
値を返さない仕様では無く、nullpoを返すとか0や有り得ない数値(時間の分なら59以上とかマイナスの値)を返す様にするんじゃないかな。
0233デフォルトの名無しさん2009/12/01(火) 01:24:22
For Each Str As String In ?????
で、ListViewのSubItem(3)をStrに入れるにはどのように書けば良いでしょうか?
0234デフォルトの名無しさん2009/12/01(火) 01:52:11
> ListViewのSubItem(3)
とかいう謎の言葉は良くない
ListViewの各アイテムの4列目を列挙したいってこと?
ならListView.ItemsをFor EachつかってListViewItem列挙して
それのSubItems(3).Textを取得する
02352262009/12/01(火) 11:21:31
みなさん、親切にご回答ありがとうございました。

>>227
「値を返せるかどうか」と「値そのもの」を、同時に一つのもの
として処理をするように考えるのではなく、別のものとして
処理するように考えれば良いのですね。

>>228
Getで失敗させてはいけないという設計は知りませんでしたが、
納得はいきました。Getを使用する際は、いちいち Try 〜 Catch 〜 は
使用しませんしね。

>>232
「値が返せない」状況の場合は、例外よりも、0などを返す
方向で設計するとよさそうですね。
そのクラスを使うプログラムの方は、例外を取得するのではなく、
ちゃんとした値だったら・・・0だったら・・・という
プログラムになるのですね。
0236デフォルトの名無しさん2009/12/01(火) 15:06:10
>>235
エラーコード返すんだったら例外と変わらん
プロパティはあくまでフィールドのように振舞うべき
素直にGetHogeみたいなメソッドにしたほうがいい
0237デフォルトの名無しさん2009/12/01(火) 15:18:54
>>236
レスありがとうございます。
クラス設計を行う場合、カプセル化の実現の為、必ずSetter/Getterを設定し、
外部のプログラムは、フィールドを直接操作しないような方向で考えるべきと
されていますが、VB.NETでは、そのあたりの必要機能すべてをプロパティにて
網羅している、と解釈してしまっていたところで、間違った解釈につながって
しまったようです。

純粋にフィールドの値を代入したり取得したりする場合のみ、プロパティを
使用する。そして、(オブジェクトの状態により振る舞いが変わるなど)
条件付きでデータを取得したり設定したりする場合は、メソッドを作る。
という考えでいるべきなのだなと思いました。
0238デフォルトの名無しさん2009/12/01(火) 18:15:50
外からフィールドのように見えればいいんであって、
中身は自由に実装していいんだぞ。でないとプロパティの意味がない。
返す値が無いからNothingなのはかまわないが、そのNothingは取得操作が失敗したから
Nothingをエラーコードとして返しているのではなく、そのプロパティの値自体がNothingという意味でなければいけない。
0239デフォルトの名無しさん2009/12/01(火) 20:41:49
こういうセオリーだ、とか、これはバッドノウハウだ、とかってのは置いといて、
好きに作ってみればいいじゃん。で、ダメだったらやり直せばいいんだし。
0240デフォルトの名無しさん2009/12/01(火) 21:33:42
1の位や10の位で切り上げや切り捨ては行えますか?
0241デフォルトの名無しさん2009/12/01(火) 21:38:46
>>240
除余を引いてください。
っていうか、小学生でも思いつく知恵だと思うけど・・・
0242デフォルトの名無しさん2009/12/01(火) 21:38:55
足して割って掛ければいいよ
0243デフォルトの名無しさん2009/12/01(火) 21:42:10
int型なら10で割ると切捨てなので1の位が消滅する

105/10→10 これにまた10をかける
0244デフォルトの名無しさん2009/12/01(火) 23:34:39
>>243
Dim val1, val2 As Integer
val1 = 99999 / 100
val2 = val1 * 100
Console.WriteLine(val2)
( ゚Д゚)

Math.Floor()
( ゚Д゚ )
0245デフォルトの名無しさん2009/12/01(火) 23:43:53
\
0246デフォルトの名無しさん2009/12/01(火) 23:44:54
/じゃなくて\ね。
っていうか、だから除余を使おうよ。
0247デフォルトの名無しさん2009/12/02(水) 00:42:24
っていうか、馬鹿相手にレスするなよ。
0248デフォルトの名無しさん2009/12/02(水) 15:03:59
初心者な質問ですが宜しくお願いします。

Button1をクリックしたら、Do While〜Loopを使ってi=1から10まで加算して
初回ループ
・Console.WriteLineで標準出力ストリームに「i = 1」
・Form1のLabel1にも「i = 1」
n回目ループ
・Console.WriteLineで標準出力ストリームに「i = n」
・Form1のLabel1にも「i =n」
と表示させる。ということをイメージして書いたのが

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 Dim i As Integer = 1
 Do While i <= 10
  Console.WriteLine("i = {0}", i)
  Label1.Text = "i = " & i
  i += 1
 Loop
End Sub

Button1をクリックした実行結果は
・標準出力ストリームは1度も表示されない。
・Form1のLabel1には1回だけ「i = 10」と表示される。
・ループが回っていることはステップインで確認。

何が問題なのかアドバイスお願いします。
0249デフォルトの名無しさん2009/12/02(水) 15:19:13
フォームアプリケーションだとそもそも標準出力先が用意されてない
デバッガの出力に表示させたいならDebug.WriteLineとか使う

そのループも画面更新も同じスレッドで行われるので、ループが回ってる間画面更新できない
定期的な処理ならタイマを使う
重い処理ならBackgroundWorker辺りを使う
Refreshで強制的に再描画させられるけど普通ではないしそんなループ程度じゃ視認できないだろ
0250デフォルトの名無しさん2009/12/02(水) 16:35:33
>>249
回答有り難うございます。

>フォームアプリケーションだとそもそも標準出力先が用意されてない
>デバッガの出力に表示させたいならDebug.WriteLineとか使う
フォームだと窓表示ができないのですね。なるほど!

>そのループも画面更新も同じスレッドで行われるので、ループが回ってる間画面更新できない
>定期的な処理ならタイマを使う
実行結果を見ると確かにPrivate Sub Button1_Clickを抜けて初めてLabel表示が更新されるので
そうかなあと思ってましたが納得です。
0251デフォルトの名無しさん2009/12/02(水) 16:53:40
Labelに値をセットすることと、フォームを更新することが
異なるタイミングで行われるということなので、
Update()などで更新してやれば実現できる。

Label1.Text = "i = " & i 
Label1.Update()

これでも処理中に画面が張り付いてしまうのは変わらないから、
本格的なアプリならTimerやBackgroundworkerをすすめる。
0252デフォルトの名無しさん2009/12/02(水) 17:21:05
質問です。

以前C++で、構造体配列を宣言するために、

typedef struct tagA
{
CString strName;
int iCount;
} tagA;

CArray< tagA, tagA > tagArray;
というように宣言し、構造体要素をAddしたりDeleteしたりしていました。
tagArray.Add(...) のように。

VB.NETではどのように宣言してやればいいのでしょうか?
0253デフォルトの名無しさん2009/12/02(水) 17:32:23
List(Of T)とか使う
0254デフォルトの名無しさん2009/12/02(水) 17:53:03
>> 253
ほんとありがとー。
Cだけしかやったことないっていうのはほんとダメだねぇ・・・
たすかりました。
0255デフォルトの名無しさん2009/12/02(水) 19:35:30
そういう教科書に載ってるようなのはたいがいあらかじめ用意されてるから
自分で書こうとしてはいけない
0256デフォルトの名無しさん2009/12/02(水) 19:38:22
整数の数があるとして、
11個の連続した整数を取り出したいのに
60-50=10なのに
でも50から60には11個の整数がある。
この矛盾はなに?
0257デフォルトの名無しさん2009/12/02(水) 19:43:13
つれますか?
0258デフォルトの名無しさん2009/12/02(水) 19:50:32
>>252
CArray 使うとか…いや、まあいい。

>>255
でもツリーとかグラフはないんだよねえ。

>>256
しょうがっこうの べんきょうは むずかしいですか?
すうじを 5 と 3 にしてみるとわかりますよ。
0259デフォルトの名無しさん2009/12/02(水) 19:51:57
>>256
1-1=0なのに
1から1までは1という1個の整数がある!ふしぎ!
0260デフォルトの名無しさん2009/12/02(水) 20:10:08
マジレスヨクナイ
0261デフォルトの名無しさん2009/12/03(木) 07:36:33
>>238>>239
レスありがとうございます。
とりあえず手を動かしていろいろやってみたいと思います。
0262デフォルトの名無しさん2009/12/03(木) 08:12:54
すいません、もう一つだけ質問です。
メンテナンス目的時のみに使用するメソッドを設定する場合の
命名規則やルールはあるのでしょうか?
コーディング規約ではそういうものは見たことがないので、
質問してみました。
_(アンダーバー)で始まる名前にするなど、適当な考えで
やっておくといいのかな?

細かい事を気にしすぎだという意見が出るかもしれませんが、
多くの人が必ず関係するような事だと思ったので確認しておきたいと
思いました。
0263デフォルトの名無しさん2009/12/03(木) 08:21:45
さすがにメンテ云々までMSのガイドラインは無いんじゃないかな?
もし、あったらごめんね
0264デフォルトの名無しさん2009/12/03(木) 09:28:19
VB.NETっていきなりWindowsアプリじゃなく
C言語が一番最初コマンドプロンプトでprintfだのから始まったように初歩の初歩から学べないの?
0265デフォルトの名無しさん2009/12/03(木) 09:35:51
>>264
プロジェクト作成時に、コンソールアプリケーションを選べばいいと思います。

場合によっては、VB.NETから離れて、BASICを学ぶという選択肢で考えた方が
いいかもしれません。
0266デフォルトの名無しさん2009/12/03(木) 09:45:00
そもそも Visual なのだから、基本はフォームにコマンドボタンと
テキストボックスを配置して、コマンドボタンクリック時のイベントに
コードを書いていくというのが、初歩という考え方でもあると思う。
(GUIを作るまでの過程がマウスによる操作で出来るので簡単っていう
意味合いで、Visualです。)
0267デフォルトの名無しさん2009/12/03(木) 10:07:59
とりあえずこれで
' save hello.vb
module Program
 sub main
   Console.WriteLine("Hello World !")
 end sub
end module

vbc hello.vb
hello
0268デフォルトの名無しさん2009/12/03(木) 10:39:07
デバッグはドM作業っていうのがよくわかったよ
2時間悩んでもわからなかったのに寝て起きたらあっさり見つかったり
0269デフォルトの名無しさん2009/12/03(木) 11:57:53
俺はシャワーのとき解決策を思いつくよ
0270デフォルトの名無しさん2009/12/03(木) 12:05:12
俺はいつも丑三つ時に閃くな
0271デフォルトの名無しさん2009/12/03(木) 14:40:33
正規表現難しいな
数字の桁数が定まってないのは\dでは探せないしなぁ
0272デフォルトの名無しさん2009/12/03(木) 14:44:14
いつからここは愚痴をいうスレになり下がったんだ?w
0273デフォルトの名無しさん2009/12/03(木) 15:20:31
オレは、トイレ入ってる時だな。。 一番思いつくのは
0274デフォルトの名無しさん2009/12/03(木) 15:56:25
>>271
+とか*の量子指定じゃ駄目なの?
せっかくの質スレなんだから聞いてみろよw
0275デフォルトの名無しさん2009/12/03(木) 17:08:18
質問
http://homepage1.nifty.com/rucio/main/kiso/Scope.htm
このサイトを読んでいたのですが、「2.適用範囲」の Friend を
使う場合はどんなケースであるのがいまいちわかりませんでした。
同じプロジェクトであればということですが、基本的にモジュールは
自分が今作成しているプロジェクトに組み込んで使うものではないの
でしょうか。

例えば、AさんがJisakuクラスを作成し、Jisaku.vbファイルに保存。
それをBさんが、新規プロジェクトを作成し、Jisaku.vbファイルをその
プロジェクトフォルダの中にコピーしてForm.vbを記述。
Cさんが自分のPCにて、それとは別に新規プロジェクトを作成し、
Jisaku.vbファイルをそのプロジェクトフォルダの中にコピーして
Form.vbを記述。

という感じにやるのだと思っていたのですが、この考え方が間違いなのでしょうか。
0276デフォルトの名無しさん2009/12/03(木) 17:40:01
>>275
プロジェクト内でも間違いではないが、同一アセンブリ内というのが正確だな。
アセンブリが異なれば例え同じ名前のクラスでも別のクラスという扱いになる。
.NETでは基本的にソースレベルでコピーや共有はしない。
0277デフォルトの名無しさん2009/12/03(木) 19:01:37
>>263
レスありがとうございます。
使う人が使い方を間違えないような感じの名前をつけておきたいと思います。
0278デフォルトの名無しさん2009/12/03(木) 19:18:40
現在VB.NET2005にて
データベースの接続及びSQL文発行を行う
DLLを作成しており、
接続には『SqlDataReader』を使用しています。

Transactionを指定しない場合に
排他制御がどのように行われているのか、がわかりません。
一切排他が行われないのでしょうか?

また、排他制御を実装する場合はどのようにすれば良いのでしょうか?
行いたい制御としては、
�@データ取得中(SELECT)にデータ更新を抑止する
�Aデータ更新中(INSERT/UPDATE/DELETE)にはデータの取得/更新を抑止する 
です。
0279デフォルトの名無しさん2009/12/03(木) 19:42:34
データベースによる
02802782009/12/03(木) 19:47:40
>>279
すみません、書き忘れました。
使用するデータベースは
『SQLServer2005 Workgroup Edition』です。
0281デフォルトの名無しさん2009/12/03(木) 19:49:24
その質問の答えは回答者による。
0282デフォルトの名無しさん2009/12/03(木) 19:52:59
SqlDataReader では接続できないんだが
(SqlDataConnection だろ、ってのは置いといて)
MS SQL Server の Isolation Level の設定次第。
0283デフォルトの名無しさん2009/12/03(木) 20:04:11
select * from tab with(xlock)
0284デフォルトの名無しさん2009/12/03(木) 20:04:14
>>278
とりあえず元スレに移動したことを書いとけよ。
マルチとかいわれんぞ。
0285デフォルトの名無しさん2009/12/03(木) 21:19:35
皆プログラミングになんのエディタ使ってる?
俺はPCがカスだから動作が重いけど楽で便利だからVBの統合開発環境をそのまま使ってるんだけど
0286デフォルトの名無しさん2009/12/03(木) 21:21:43
VBでVB使わないとかただのアホかマゾ
0287デフォルトの名無しさん2009/12/03(木) 21:24:04
メモ帳でやりたいけどやり方わからんから仕方なくVisual Basic 2008 Express使ってる
0288デフォルトの名無しさん2009/12/03(木) 21:26:29
edlin
0289デフォルトの名無しさん2009/12/03(木) 21:35:22
.NETのクラスライブラリの糞長い型名やメンバ名なんかいちいちタイプしてられるか
もともとインテリセンス前提で作られてるんであってPythonみたいな書きやすさ重視の言語とはわけが違う
0290デフォルトの名無しさん2009/12/04(金) 07:50:49
>>276
レスありがとうございます。
分かりやすい説明でした。
0291デフォルトの名無しさん2009/12/04(金) 09:34:54
ランダム関数についての質問です。
ランダムに数字を取得する方法は、googleで検索するとすぐに
出てきたりしますが、(例えば以下のサイトなど)
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=21547&forum=7
ある数字の幅を指定して、その範囲で数字を1回ずつ重複せずに取得する
ことはできないのでしょうか?
(同じ数字であるかのチェックを行うプログラムを書いて工夫をする
しかないのでしょうか)

(例)0〜5の数字をランダムに取得する
1回目:2
2回目:1
3回目:4
4回目:0
5回目:3
6回目:5
このような感じに数字が取得でき、6回目の数字の取得まで、
一度出た数字が重複することが無い。
0292デフォルトの名無しさん2009/12/04(金) 09:45:05
http://dobon.net/vb/dotnet/programing/arrayshuffle.html
「シャッフル」というキーワードで調べてみるとよかったようですね。
自己解決しました。
0293デフォルトの名無しさん2009/12/04(金) 09:49:11
年末ジャンボシミュレータ作る気ですね?
解ります。(゚ー゚ )(。_。)(゚ー゚ )(。_。)ウンウン
私も考えたのですが、どっかにメモしておくしか考えつかないです。
数学板かアルゴリズムのスレで聞いてみようかと思ってました。
0294デフォルトの名無しさん2009/12/04(金) 14:17:31
質問です。
VB.NETの変数には、値型と参照型がありますが、変数にこういう二つの
概念を持たせて、プログラミングの際に使い分けをさせたりするメリット
とはどういうものがあるのでしょうか?
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard34.htm
実際にプログラミングをする際に感じるものがいまいち見えませんでしたので
質問をしてみました。こういうプログラミングをしてみるとわかるよという
ものの紹介でも結構です。よろしくお願い致します。
0295デフォルトの名無しさん2009/12/04(金) 14:22:59
未定のType変数を用意し、それを後から必要に応じてセットしてから
後でそれを使ってオブジェクトを設定したい場合、

たとえば

Dim TypeA as Type = GetType(Integer)
 ・・・
Dim ObjectA as TypeA = CType(obj, TypeA) ・・・・・(*)

このようにすると(*)でエラーします。こういう使い方はNGのようで、
どういう仕方で行なうものか教えてください。
02962952009/12/04(金) 14:25:05
(*)ではコーディング状態で「TypeAは定義されていない」となります。
0297デフォルトの名無しさん2009/12/04(金) 14:32:16
>>294
値型の理由は主にパフォーマンス ただし分かって使わないと却って悪化する
自分で定義する分には値型を作ることは(列挙体以外)まずないよ

>>295
Dim ObjectAのところでTypeAはプログラム上確定してないんだろ? 実行時に初めて確定する
ならTypeAにキャストしてどうするの? 何もできないじゃん?
02982952009/12/04(金) 14:43:11
>>297
>Dim ObjectAのところでTypeAはプログラム上確定してないんだろ?

そうなんですが、たとえば、親のオブジェクトからプロパティで型を受け取って
それを使ってキャストしたいと思いました。それで元々定義されたメソッドを
子の方で叩くなどしたいと。こういうのは無理なものですか?
0299デフォルトの名無しさん2009/12/04(金) 14:55:25
だからさ、TypeAが何型かコーディング時に分からないのに、
どうキャストすんのよ?

VBならレイトバインドでも使っとけ。
おすすめしないけど。

何がしたいか具体的に書けばもっと真っ当な方法がある可能性が高い。
03002952009/12/04(金) 15:23:55
>>299
コーディング時には実はわかっているのですが、クラス型は親の方で宣言して
おきたく、子の方はいろんな種類があって実行時に型を受け取りたいということ
でした。

ただ、どうも(*)という方法自体が不可能なような感じですかね?Type型のもので
オブジェクトを宣言したりキャストすること自体が間違いなのかなあ・・・
0301デフォルトの名無しさん2009/12/04(金) 16:12:35
親が分かってるからとかそういう問題じゃないんだ。
コーディング時にってのは子のコーディング部分で分かってるかって意味だ。
0302デフォルトの名無しさん2009/12/04(金) 16:19:09
マウスカーソルがフォーム上の指定した座標上に移動したときに
その座標にグラフィックが描画されるようにしたいのですが、
そのようなイベント(?)はあるのでしょうか?
どのようにすればいいのでしょうか?

現在はピクチャーボックスとマウスエンターイベントで実現しているのですが、
たくさんのピクチャーボックスを使うとものすごく重くなってしまうそうで
ダメと言われてしまいました。
0303デフォルトの名無しさん2009/12/04(金) 16:20:26
ひとつのピクチャーボックスでいいだろ
なんでたくさん使うの
0304デフォルトの名無しさん2009/12/04(金) 16:28:33
ポトペタ脳ってうざいよね
0305デフォルトの名無しさん2009/12/04(金) 16:30:37
>>303
レスありがとうございます
現在はフォームにフォームのクライアント領域と同じ大きさのピクチャーボックスをすでに貼り付けていて
その上に一個ずつ麻雀牌のピクチャーボックスを貼り付けている形になっています。
麻雀パイにマウスエンターすると牌が浮き上がって見えるようにしたいのですが、
これもひとつのピクチャーボックスで実現できますか?
0306デフォルトの名無しさん2009/12/04(金) 16:32:37
>>302
こんな感じで領域を指定するんじゃないの?
If MousePosition.X > 250 And MousePosition.Y > 250 Then
Me.PictureBox1.BackColor = Color.Aqua
Else
Me.PictureBox1.BackColor = Color.Blue
End If
0307デフォルトの名無しさん2009/12/04(金) 16:37:10
データとビューはわけろよー
0308デフォルトの名無しさん2009/12/04(金) 16:44:26
>>300
CType や DirectCast は「型名」を指定するものであって、
Type型で指定するわけじゃない。
>キャストすること自体が
動的な型変換は面倒だぞ。
つ[TypeDescriptor.GetConverter]
0309デフォルトの名無しさん2009/12/04(金) 16:48:26
>>305
MouseEnter と MouseLeave のときだけ捕まえて描画したらええやん。
0310デフォルトの名無しさん2009/12/04(金) 16:49:29
>>308
たぶん型変換したいわけではなくてどっちかというとレイトバインディングの方だと思う
03112952009/12/04(金) 16:55:31
>>308
>CType や DirectCast は「型名」を指定するものであって、
>Type型で指定するわけじゃない。

やっぱりそうだったのですか。わかりました。ありがとうございます。

>動的な型変換
>TypeDescriptor.GetConverter

こういうものがあったのですね。勉強します、またよろしくです。

03122952009/12/04(金) 17:00:55
>>301
>>310
>レイトバインディング

子のコーディング時にも親を見ているのでわかっているのですが、
子の方ではそのクラスを宣言できないので、クラスの宣言自体をオブジェクト
にして受け取りたいということなのでした。しかしそういうことは簡単では
なさそうな感じので、とりあえず別の方法も考えてみます。
0313デフォルトの名無しさん2009/12/04(金) 17:01:39
>>305がイメージしていることって、例えて言うと、ホームページで
Flashでデザインされたメニューのようなものか?
マウスを動かすとリアルタイムでボタンの色や形が若干変わるという。
0314デフォルトの名無しさん2009/12/04(金) 17:30:16
あるイベントに対して、すでになんらかのハンドラが AddHandler
されていることを知るにはどうすればよいでしょう?それらを全て
列挙することはできるでしょうか。
0315デフォルトの名無しさん2009/12/04(金) 17:35:57
できないと言っていい
そもそもそんなのが必要になるのってどんなときよ
0316デフォルトの名無しさん2009/12/04(金) 17:44:26
ListBox を Form に貼り付けてプログラミングする場合の質問です。
ListBox は、1行につき1件のデータしか表示出来ないのでしょうか?
Access の場合は、ListBox に対してテーブルそのものを貼り付けることが
出来、さらに1件目のデータを非表示にしておいて、クリックした時に
そのデータを取得するということもできたりしたのですが、
そういったことができなさそうなので確認のため、書き込みました。
0317デフォルトの名無しさん2009/12/04(金) 17:47:51
[質問]
Panel の中に複数の RadioButton を貼り付けた場合、
現在、どの RadioButton が選択されているかをチェックするには、
Panel のプロパティからでは確認は出来ない?
貼り付けているすべての RadioButtion において
If Me.RadioButton1.Checked = True Then
みたいなコードを書いてチェックするしかない?
0318デフォルトの名無しさん2009/12/04(金) 17:51:00
>>316
標準のListBoxはそう
まあListBoxだってDataTableをDataSourceにして
DisplayMemberとValueMemberを指定するぐらいならできる
それで不満ならネットでMultiColumnListBoxでも探せば
0319デフォルトの名無しさん2009/12/04(金) 17:53:40
>>317
うん
まあ関数化しとけば便利だね

>>316
ListViewとかDataGridViewとか使うのは?
0320デフォルトの名無しさん2009/12/04(金) 17:54:11
>>318
すばやい回答ありがとうございました。
とりあえずは DisplayMember と ValueMember を使う方法でやってみます。
それでうまくできない場合は、紹介していただいたコントロールや
Grid を使うなど別な方法を検討してみます。
0321デフォルトの名無しさん2009/12/04(金) 17:57:26
>>319
回答ありがとうございます。
紹介していただいた ListView とか DataGridView の機能について
詳しく調べてみます。
初心者にも親切にありがとうございました。
0322デフォルトの名無しさん2009/12/04(金) 17:58:58
arraylist(listbox.listindex)でいいじゃん
0323デフォルトの名無しさん2009/12/04(金) 18:07:24
>>322
arraylist を工夫して使えば、 listbox でクリックした名前に相当する
数値データを取得することが出来るっていう意味かな?
ちょっと私の頭がついていけてなくてどういうコードを書いていけば
いいのかのイメージはついていませんが、いろいろとやってみます。
ありがとうございました。
03243172009/12/04(金) 18:09:15
>>319
レスありがとうございます。独りで考えていて不安だったけれど、
他の人の考えを聞く事が出来てすっきりとしました。
0325デフォルトの名無しさん2009/12/04(金) 19:24:38
DataSetとDataGridでできるだろ。
DataGridViewじゃなくてDataGridな。
0326デフォルトの名無しさん2009/12/05(土) 07:48:04
コマンドボタンの色
Botan1.BackColor = Color.FromArgb(255, 95, 158, 160)
の255のところは0でも255でも色に変化ないようなんだけどどんな意味が?
0327デフォルトの名無しさん2009/12/05(土) 07:50:25
透明度
0328デフォルトの名無しさん2009/12/05(土) 08:35:10
0でもボタンが透明にならなかったし
0329デフォルトの名無しさん2009/12/05(土) 08:46:18
>>328
ボタンは透明にはならんだろ
0330デフォルトの名無しさん2009/12/05(土) 10:19:01
どれがどんなかんじに透明に
0331デフォルトの名無しさん2009/12/05(土) 10:58:12
>>306
ありがとうございます!!
>If MousePosition.X > 250 And MousePosition.Y > 250 Then
↑のようにマウスの位置を検出できるとは知りませんでした
試してみたいと思います

>>313
はい、そういうイメージです
0332デフォルトの名無しさん2009/12/05(土) 11:28:04
かっこいいアニメーションを作りたい気持ちもわからんでもないが、
パイの部分にマウスを持っていったらっていう処理にしようとするから
重たくなったりして、どうしたらいいのやら・・・ってなるんじゃないの?
パイが描画されている座標部分をクリックしたら、浮いて表示される
じゃだめなの?
0333デフォルトの名無しさん2009/12/05(土) 13:09:28
>>332さんのアイデアで伺いを立てたら
「それだとなんかイメージと違う」って言われちゃいましたTT
0334デフォルトの名無しさん2009/12/05(土) 13:14:41
>>333
だったら、pictureboxをパイの数だけ貼り付けるしかないんじゃないかなぁ。
enterやleaveのイベントをひろって背景を入れ替えていくとか。
場合によっては、VB.NETを使うこと自体をあきらめるのを選択肢に入れた
ほうがいいかもね。
.NET になってから、java並みに重くなってしまってるから。
0335デフォルトの名無しさん2009/12/05(土) 13:17:44
処理内容をどこまで考えているかにもよるけれど、
インターフェースはhtmlのスタイルシートでやって、
処理部分をjavascriptでって方法はどうかな?w
この方法だとファイル保存は出来ないけどね。
0336デフォルトの名無しさん2009/12/05(土) 15:29:31
>>302
その程度のことなら.NETのWindows Formでも普通にできると俺は思うよ。
というか、まず確実にできる。

要はマウスポインタの座標からOnMouseしている牌の特定と、あとは牌の描画が
出来ればいいだけのことでしょ。

だから、例えば牌を表し牌の描画も担当するTileクラスと、牌を描くキャンバスになるコントロールと
Tileのリストをフィールドに持って、OnMouseしている牌の特定などを行う
TimeManegerクラスを用意すればいい。

たいして難しい問題とも、パフォーマンス的に無理な処理とも思えない。

>>334
まだこういう恥ずかしい勘違いをしている人がいるのかw
03373342009/12/05(土) 16:31:28
>>336
私は恥ずかしい人でしたが、Timerコントロールとマウスの座標位置を取得する
処理の組み合わせで、原型となるものを作り上げることが出来ました。
今までマウスのイベントのみで処理をしようと考えていたので、コントロールが
大量に必要だという結論に至ってしまっていました。
ありがとうございました。
0338デフォルトの名無しさん2009/12/05(土) 17:05:16
WPF
0339デフォルトの名無しさん2009/12/05(土) 17:22:59
use32.dllのSendInputでマウスを動かすってのをやってたんだけど
XP32bitの時は問題なく動いてて、今Windows7 64に変えたんで試してみたら
SendInputがまったく機能してないんだけどこれはどうすれば
0340デフォルトの名無しさん2009/12/05(土) 17:50:33
まずソース
次にUAC
03413392009/12/05(土) 18:30:23
x86でコンパイルしたら動いた
0342デフォルトの名無しさん2009/12/05(土) 18:34:10
API の呼び出し方が悪いのか。
0343デフォルトの名無しさん2009/12/05(土) 20:50:57
まずソース
でひっかかったかな?
0344デフォルトの名無しさん2009/12/05(土) 21:43:29
ポインタが必要なところをIntPtrではなくIntegerで宣言したりしてない?
0345デフォルトの名無しさん2009/12/05(土) 22:54:59
>>330
ボタンのBackColorが透明ってことじゃないの?
0346デフォルトの名無しさん2009/12/06(日) 10:07:23
Clipboard.SetText(リッチテキストボックス.Text)
だと
リッチテキストボックス内のテキストの改行が全部なくなっちゃうんだけどどうすれば

0347デフォルトの名無しさん2009/12/06(日) 10:31:48
いまVS2005使っています。
#Regionで定義したものがコードウインドウのメソッド選択ボックスで
選択できたら便利だなと思ったんですが、VS2008以降ではそういった
拡張が行なわれていたりしてますか?
0348デフォルトの名無しさん2009/12/06(日) 11:04:40
メソッド選択ボックスってインテリセンスのことか?
#Regionってプリプロセッサだからコードの中身とは何の関係もないのでそんな機能あるわけがない
0349デフォルトの名無しさん2009/12/06(日) 11:17:00
>>348
コードウインドウの上部にある、「クラス」の選択ボックスの右側にある
「メソッド」選択ボックスです。

>#Regionってプリプロセッサだからコードの中身とは何の関係もない

そうだったのですか。あればすばやく該当の場所を出せるので便利かな
と思ったのでした。
0350デフォルトの名無しさん2009/12/06(日) 11:29:10
個人的にはリージョン嫌い。
まあ使いすぎてなきゃいいんだけど。

リージョンを大量にしかも入れ子に何重も書いてたソースは泣きたくなった。
0351デフォルトの名無しさん2009/12/06(日) 11:31:54
あんまりでかいソースならPartialで分けるとかクラス分けるとかするべきだな
0352デフォルトの名無しさん2009/12/06(日) 12:59:45
>>351
さすがにそれはないし、もっと悪い。

>>350
まさかマウス操作で展開してる、なんてオチじゃないよね?
0353デフォルトの名無しさん2009/12/06(日) 13:27:10
カンジンのVB.NETの仕事が見つからない
0354デフォルトの名無しさん2009/12/06(日) 13:28:21
VB6のときみたいに、仮想でそのメソッドだけ表示されるような
モードもあったらわかりやすいということはないですか?
0355デフォルトの名無しさん2009/12/06(日) 13:53:29
ないから無くなったんだろうね
そういう機能があるとつい長いメソッドを書いてしまいがちになって良くないし
0356デフォルトの名無しさん2009/12/06(日) 14:48:20
アウトラインを全部展開する方法が分からない。
普通の全部展開・折りたたみだと、VBの場合うまく行かない。
0357デフォルトの名無しさん2009/12/06(日) 18:47:31
アウトラインを止めるみたいなのがあったはず
0358デフォルトの名無しさん2009/12/06(日) 19:29:55
If 1 <= iR <= 100 Then

End If

ここらへんでプログラムがうまくうごかないけどどうすれば
0359デフォルトの名無しさん2009/12/06(日) 19:35:35
if 1 <= ir and ir <= 100 then
end if

じゃなくて?
0360デフォルトの名無しさん2009/12/06(日) 19:57:14
基礎ができてないがな
If 1 <= iR And iR <= 100 Then

End If
0361デフォルトの名無しさん2009/12/06(日) 19:57:58
あ、ゴメン被った
0362デフォルトの名無しさん2009/12/06(日) 23:04:46
この場合はどうでもいいレベルだけど、
基本的にAndAlso使う癖つけといた方がいいぜ。
0363デフォルトの名無しさん2009/12/07(月) 03:41:52
>>362
それはどうしてですか?
「他の言語にも近いような書き方と」いう観点では、AndAlsoは使わないほうが
良いと思っていて、私は使っていないのですが。

これは、あおりとかじゃなくて、私はあまり経験が深いほうではないので、
そのメリットなどの確認がしたいという意味合いです。
0364デフォルトの名無しさん2009/12/07(月) 08:27:16
ショートサーキット評価でぐぐろう
0365デフォルトの名無しさん2009/12/07(月) 08:32:40
>>363
それに何の意味が?
0366デフォルトの名無しさん2009/12/07(月) 09:19:43
Form1から別のフォームのコントロールにアクセスするばあい
もしForm2の名前が
とってもながいなまえのフォーム
だったら
とってもながいなまえのフォーム.textbox1.text="abc"
とかになっちゃうけどどーすれば
ちなみに
Dim frm2 as とってもながいなまえのフォーム
frm2.textbox1.text="abc"
としてもabcは入力されない
0367デフォルトの名無しさん2009/12/07(月) 10:10:34
>>366
・上の質問
withを使う
短い名前のForm2型に入れなおす

・下の質問
frm2.textbox1.text="abc"
でもコード上は問題なく文字が設定されるはず

frm2とfrm2.textbox1に実体はあるのか?
Nothingになってないかステップ実行して確認しる
0368デフォルトの名無しさん2009/12/07(月) 10:13:59
>366

理由は判らないけど、

Dim frm2 As とってもながいなまえのフォーム
frm2 = とってもながいなまえのフォーム
frm2.TextBox1.Text = "abc"
frm2.Show()

で行けた。

詳しい解説は、誰か頼む。
0369デフォルトの名無しさん2009/12/07(月) 10:20:27
イミディエイトウィンドウの文字化け..

プログラムが実際にどう動いているのかトレースする為に
下記の様なプロシージャを作り
Sub TraceLog(ByVal strName As String)
Debug.WriteLine(Now.ToString("HH:mm:ss @ " & strName))
End Sub

で、各プロシージャの頭に
TraceLog("TextBox3_GotFocus")
とか
TraceLog("fmClear")
こんな感じでプロシージャ名を追加してみたんですが...

イミディエイトウィンドウ中で下記の様に文字化けするです。
10:18:11 @ Ti18er1_Tick
10:18:11 @ or181_+09:00e97own
10:18:11 @ 11a午uei
10:18:12 @ Ge午Da午eTex午
10:18:14 @ PreV_o00
10:18:14 @ Tex午Box3_Go午ocu14

なーんとなく意味は判る様な文字化けなんですが
これってどうやって直したら良いんでしょうか?
03703662009/12/07(月) 10:29:06
できた

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

Dim frm2 As New とってもながいなまえのフォーム
frm2.TextBox1.Text = "abc"
'frm2 = とってもながいなまえのフォーム
frm2.Show()
MsgBox(frm2.TextBox1.Text)

End Sub
0371デフォルトの名無しさん2009/12/07(月) 10:33:53
>>364
処理時間を短縮する為ということなのですね。
ありがとうございました。


>>365
「覚えてしまえば良い」とかいいきってしまったら
反論は出来ませんが、ある言語特有のコードの
書き方のスタイルだけが身についてしまうと、
他の言語を使わなければならない状況になった時、
苦労しそうだなという意見です。
なので、よっぽど処理速度が遅くて・・・という
状況でない限りは、コーディングスタイルの方を
優先した方がよいのでは、と思っているのです。
DB接続時の設定なども、ウィザードを使っての
方法しか知らない場合は他の言語での応用性が
全くありませんし。
0372デフォルトの名無しさん2009/12/07(月) 10:40:44
>>369
Debug.WriteLine(Now.ToString("HH:mm:ss @ ") & strName)
じゃないの?

どうしてNowの中に文字列を入れようとしているのかが
良く分かりません。やろうとしている目的や得たい結果
などもあわせて書いてください。
0373デフォルトの名無しさん2009/12/07(月) 10:41:33
>>369
例えばTraceLog("TextBox3_GotFocus")だと
Debug.WriteLing(Now.ToString("HH:mm:ss @ TextBox3_GotFocus"))
になるだろ
この末尾のsは先行ゼロ無しの秒数を指してるし
tはAM/PM 指定子の最初の文字を指してる
03743692009/12/07(月) 10:52:38
>>372,373
ああああああっーー
理解しました...ありが�dです。

なんで"t"が"牛"に化けるんだろって思ってたら"牛"じゃなくて"午"だったのね...
0375デフォルトの名無しさん2009/12/07(月) 11:21:41
>>371
なんかずれてるなあ。
パフォーマンスもあるけど、
例えばnullチェックの後でプロパティチェックするとか、
そういう時に必要になるんだよ。
そして他の言語って大抵ショートサーキットが普通じゃないか?
だから他の言語に合わせる意味でもAndAlsoなんだよ。
0376デフォルトの名無しさん2009/12/07(月) 11:29:19
でもなー
andalsoとかキモイんだよな
いやわかるよ。処理をあわせたほうがいいのは。
つかVBの変態仕様を引き継いだのが悪い
0377デフォルトの名無しさん2009/12/07(月) 12:01:16
最近プログラム組みだしたんだが、BASICも変わったんだなぁ。
AndAlsoとかOrElseとか論理演算子追加されてるのか。
やっぱ、頭からマニュアル読まないとダメっぽいな。
0378デフォルトの名無しさん2009/12/07(月) 12:28:28
C#だってただの&は両辺評価で
&&がショートサーキットなんだから同じだよ。
0379デフォルトの名無しさん2009/12/07(月) 13:06:59
あれ?
&ってビット演算で、&&が論理積じゃ無くなってるの?
0380デフォルトの名無しさん2009/12/07(月) 13:13:28
C#では論理型と整数型が完全に分離されたから、
(整数) & (整数) はビットごとのAND
(整数) && (整数) は文法エラー
(論理型) & (論理型) はショートサーキットなしのAND
(論理型) && (論理型) はショートサーキットありのAND

VBスレだから触れとくけど
VBの場合は暗黙の型変換があるからちょっと複雑
0381デフォルトの名無しさん2009/12/07(月) 16:17:44
さんくすこ。
0382デフォルトの名無しさん2009/12/07(月) 18:47:22
俺はショートサーキットすることを前提、またはしないことを前提にした
コーディングはするべきじゃないと思ってる
AndAlsoとか、IF文のネストを1段下げれられるだけだと思うがな

VB.NETってベータで1回ショートサーキットありにしてみて、
結局製品版でなしになったんじゃなかったかな
0383デフォルトの名無しさん2009/12/07(月) 19:02:12
思うのは勝手だけども、>>375 の
>例えばnullチェックの後でプロパティチェックするとか
のような局面で2行に分けて書け、と今更言われても
かったるくてしょうがない。

>結局製品版でなしになったんじゃなかったかな
は?
0384デフォルトの名無しさん2009/12/07(月) 19:28:04
>>382
ネスト減らせるだけって…
ショートサーキット無けりゃElseが必要なときに困るだろ。
0385デフォルトの名無しさん2009/12/07(月) 19:32:21
例えば>>375でElseが必要なとき面倒な事になる。
わざわざ言語で使い分けられるようになってんのに、
どちらも前提にしない意味が分からない。

素人が理解せずに間違いやすいのは分かるが、
じゃあどちらも前提にしないときに
素人が間違ったことをやらなくなるかというと
そうは思えない。
0386デフォルトの名無しさん2009/12/07(月) 19:39:50
VB.NETは開発中のときに、通常の演算でショートサーキットする仕様にするって話があった
結局従来通り通常の演算ではショートサーキットしない仕様に落ち着いた
その代わりに、ショートサーキットする特別な演算子が追加されたんだ
0387デフォルトの名無しさん2009/12/07(月) 19:47:53
古すぎて覚えてないな。ありそうな話ではあるがbeta以前じゃね?
0388デフォルトの名無しさん2009/12/07(月) 19:50:50
C#などのC系言語ではショートサーキットが普通だから
読む人もちゃんと分かって読むから全く問題ないけど
確かにVBオンリーの人には馴染みが薄いだろうから
使わないことにするならそれもアリだと思う
0389デフォルトの名無しさん2009/12/07(月) 19:55:09
クラスやメソッドを全部…でなくてもいいけどまとめてある本はありますか?
0390デフォルトの名無しさん2009/12/07(月) 19:56:46
msdn
0391デフォルトの名無しさん2009/12/07(月) 20:15:30
ですよねっ。w
0392デフォルトの名無しさん2009/12/07(月) 20:44:53
>>388
んなこと言って阿呆を甘やかすから
いつまでたってもゴミグラマが死滅しないんだ。
0393デフォルトの名無しさん2009/12/07(月) 21:58:13
じゃあVB定番のForm1.button1.Text = "クラスの外から変更!"とか禁止な
0394デフォルトの名無しさん2009/12/07(月) 22:04:25
ゴミグラマなんてどうでもいいわ。
0395デフォルトの名無しさん2009/12/07(月) 22:07:17
VBだからこそゴミグラマホイホイを目指せ
0396デフォルトの名無しさん2009/12/07(月) 22:09:29
>>393
げっ。
あかんのん?
0397デフォルトの名無しさん2009/12/07(月) 22:11:22
カプセル化の観点からは問題外です
プロパティやメソッドを定義して間接的に触らせるのが正解です
でもVBだからどうでもいい
0398デフォルトの名無しさん2009/12/07(月) 22:12:01
vbでできるんなら使えばいいじゃん
ダメなら他でいい
0399デフォルトの名無しさん2009/12/08(火) 10:15:12
>>398の考えも正しいが、突然、開発未経験の他の言語を使って開発を
しなければならなくなる状況も想定してであれば、カプセル化などの
観点を身に付けたやり方をしておいた方が良い。
Accessでは、GUIでテーブルやフィールドの指定が出来るクエリという
機能があるのでSQL文の読み書きが出来なくても良いかどうかと同じ話。
0400デフォルトの名無しさん2009/12/08(火) 11:58:52
開発って言葉なんか気恥ずかしくない?
なんだか俺が開発なんてそんな大そうな事とてもじゃないけど言えない
0401デフォルトの名無しさん2009/12/08(火) 12:10:06
アナル開発とか
0402デフォルトの名無しさん2009/12/08(火) 13:02:47
VBでできるできないじゃなくてカプセル化は作法の問題だぞ
そりゃC#でもJavaでも>>393のようなことはできる
0403デフォルトの名無しさん2009/12/08(火) 13:23:48
記述の議論の話になっているので聞いてみたいのだが、
こんな感じの表記を使ったりしていますか?
cnt = cnt + 1
0404デフォルトの名無しさん2009/12/08(火) 13:30:34
+= 1 が使えるのは知ってるけど、
VBの場合その表記にしてしまうな。
0405デフォルトの名無しさん2009/12/08(火) 13:35:55
はっはっはっ。
最初、cnt++と書いて通らないのに愕然としたのは秘密だ。
04064032009/12/08(火) 13:44:21
レスありがとう。
私の場合は、概ねの言語で使う事が出来る>>403の表記を使うのが
一番だと思うんだけどね。
まちがえて =+ とコード書いてしまうこともあるし。
0407デフォルトの名無しさん2009/12/08(火) 13:49:29
ふつー、+= があるならそれを使うだろう。
0408デフォルトの名無しさん2009/12/08(火) 13:52:33
VB10 というものがリリースされるそうですが、今度はどんな変更なのですか?
VB9 の時は、LINQ の追加、言語仕様の方は従来と同じ、みたいな感じだったけれど。
0409デフォルトの名無しさん2009/12/08(火) 13:59:23
.NET 4.0ベースになるという他に、
これまで足りなかった分の補足といった感じかな。

Action型のラムダ式、ステートメント本体を持つラムダ式が書けるようになったのと
コレクションの初期化構文。
 Dim f2 = new List(Of Integer) from { 2, 7, 4, 0, 6 }
自動プロパティ。
 public property Bar1 as string = "abc"
0410デフォルトの名無しさん2009/12/08(火) 16:31:13
なんと。VBってC#みたいな自動プロパティなかったのか。
いちいちpublic int Number
0411デフォルトの名無しさん2009/12/08(火) 16:32:43
趣味程度ならVBはやっぱりいいな。楽だし
何千行もガリガリ書くような言語じゃないかな
0412デフォルトの名無しさん2009/12/08(火) 17:05:06
すいません。話についていけてないので質問なのですが、
自動プロパティってなんでしょうか?
0413デフォルトの名無しさん2009/12/08(火) 17:06:47
getとかsetとかを書かないで作成できる単純なプロパティ
0414デフォルトの名無しさん2009/12/08(火) 17:12:00
>>413
サンクス。
>>410のコードの例だと、クラス名.Number = 10 とか出来るという
ことなんだろうけれど、その10が代入されたメンバを使っての
メソッドの定義は不可能ということになるんですよね?
あくまで、Get/Setのみが目的の限定されたメンバの定義という。
0415デフォルトの名無しさん2009/12/08(火) 17:16:23
何言ってるのかわからない
普通のプロパティも分かってないでしょ君
0416デフォルトの名無しさん2009/12/08(火) 17:21:21
やたらとラムダ式に対応していっているメリットが良く分からない。
雰囲気的には、少ないメリットの為に、ややこしく、従来とは違う表記も
許可するような機能にしか見えない。
ttp://www.atmarkit.co.jp/fdotnet/csharp30/csharp30_01/csharp30_01_02.html

だからといって学ばなければいいというわけでもないからな。
もっと、いろいろなコードなど、多くの事例を見ていけばつかめる
ようになるのかな?
0417デフォルトの名無しさん2009/12/08(火) 17:24:54
>>415
じゃ、俺にプロパティというものを教えてくれ。
あおりとかじゃなくて、フィールドに対するGetter/Setterの役割を
持っているものだと思っていたのだが。
0418デフォルトの名無しさん2009/12/08(火) 17:33:51
Dim children As Person() = Array.FindAll(persons, Function(p) p.Age < 18)
とか
VBのスタンスとしてはC#に合わせてるだけだろうけど
0419デフォルトの名無しさん2009/12/08(火) 17:41:02
ラムダならF#をやるべきだな。C#のラムダじゃ物足りない!となること請け合い(笑

それは置いといて、VB9ではあまりラムダ式には熱心じゃなかったんだな。
ラムダ式はLinqのクエリ式を実現するための仕掛けと捉えていたので、
クエリ式をリッチにすれば、ラムダ式も拡張メソッドもいらないと考えられていた。
0420デフォルトの名無しさん2009/12/08(火) 17:46:49
ラムダ式って何?
0421デフォルトの名無しさん2009/12/08(火) 17:48:37
こういうの。とりあえず、関数内関数だと思えばいいよ。

' Action型ラムダ
  Dim Lambda1 As Action(Of Integer) = Sub(x) Console.WriteLine(x)
 Lambda1(888)
' ステートメントを持つラムダ
  Dim Lambda2 As Func(Of String, integer, integer) = Function(s, i) 
         for r = 1 to i
           Console.WriteLine(s)
         next
         return 0
  End Function
  Lambda2("aaaa", 4)
0422デフォルトの名無しさん2009/12/08(火) 17:56:15
>>421
なんじゃこりゃー
わけわかめ
要らないや
0423デフォルトの名無しさん2009/12/08(火) 18:05:33
ラムダ式って、勉強しようとしても毎回わけわかめだ。
なんでも聞くところによると、ラムダ式はM$製ではないある言語によって、
その有用性を世の中に示したらしいが、それのレベルからやらないと
理解は難しいのかなぁ?

初めてDBに触れる人が、 ADO.NET & SQL Server のみでは SQL文 の習得は
難しい。なので、そこから一旦離れて、Accessのクエリを使うなどして、
SQL文や結果をチェックしながら学ぶと理解が出来、使えるようになる。
みたいな話のような気がしている。
0424デフォルトの名無しさん2009/12/08(火) 18:36:23
ラムダ式ってオブジェクト指向なみに有用なの?
0425デフォルトの名無しさん2009/12/08(火) 18:47:38
>>410
>自動プロパティなかったのか。
必要性がわからん。

>>415
俺の ESP 能力が
「get/set しかできなくて、例えば set されたときに OnNumberChanged() を
 呼び出すことも叶わない」
という意味だよと囁いている。
0426デフォルトの名無しさん2009/12/08(火) 19:08:55
>>425
リフレクションにおいてフィールドとプロパティは別モンだから
「取り敢えずフィールドにしておいてset実装が必要になったらプロパティにする」
のは良くない
「取り敢えず自動プロパティ」にしておけば一貫性が保たれる
0427デフォルトの名無しさん2009/12/08(火) 19:19:55
ラムダ式か匿名メソッドどっちかは要るよ。
使うときはほんとに使う、ないとやってられない。

まあみた記事が悪いと思うよ。
もっと当たり前の使い方見ればありがたみが分かる。
0428デフォルトの名無しさん2009/12/08(火) 19:29:15
赤間信幸著「LINQテクノロジ入門」(日経BPソフトプレス)によると、
自動プロパティは
LINQでデータ加工する際に通常は匿名データ型を使う所で、
明示的にクラスを作成したいときに使うらしい

ラムダ式の必要性もこの本に解説あるし、一度読んでみればいいかも
0429デフォルトの名無しさん2009/12/08(火) 20:18:01
自動プロパティとあまり関係ないけど、VBはせっかくメソッドスコープの
Static変数があるんだから、これをプロパティのゲッタからもセッタからも
アクセスできる書き方ができるようにしておいて欲しかったな。

これがあれば鬱陶しいバッキングフィールドを隠蔽できる自動プロパティのよさと
普通のプロパティの柔軟性を両立できるのに。
0430デフォルトの名無しさん2009/12/08(火) 20:36:16
>>422
たったこの程度でわからないとか勉強不足だろう。
関数やメソッドもよく知らないんでないか?
0431デフォルトの名無しさん2009/12/08(火) 20:40:58
現在、静止画(JpgまたはBmp)の情報を
取得するクラスを作成しているのですが、
『System.Drawing.Image』クラスが使用出来ず、
困っています。
Windowsフォームのみで使用可能なのでしょうか?
クラスライブラリでは同様の情報は取得不可でしょうか?

取得したい情報としては、
・画像の解像度
・PixelFormatの値 
・Flagsの値(YCCかどうかの判断に使用)
などです。
0432デフォルトの名無しさん2009/12/08(火) 20:42:50
DLLを参照に追加してないんじゃね
0433デフォルトの名無しさん2009/12/08(火) 20:48:05
dllをちゃんと参照しなければ使えない
04344312009/12/08(火) 21:11:15
>>432
>>433
ありがとうございました。
『System.Drawing.dll』を参照設定に
追加する事で対応出来ました。
0435デフォルトの名無しさん2009/12/09(水) 01:54:44
For i =0 To arr(cnt) = "A"
みたいにできないのが難点だなぁ
0436デフォルトの名無しさん2009/12/09(水) 08:57:20
>>435
それが何をやりたいのか俺には理解できない
0437デフォルトの名無しさん2009/12/09(水) 10:50:20
わからねー初心者はレスすんなや
0438デフォルトの名無しさん2009/12/09(水) 11:02:59
WindowsCE6.0端末で動作するプログラムを作成しています。
PC上のエクセルで作成したCSVファイルを端末上に転送し
そのファイル内のデータを下記の様なプログラムでメモリ上に格納したいと考えています。

Sub MemYomikomi()
Dim StR As StreamReader
Dim strLine As String = ""
Dim intC As Integer = 0
Dim intCnt As Integer = 0

StR = File.OpenText(HanteiFilePath)
Do While StR.Peek() >= 0
strLine = StR.ReadLine
intC = InStr(strLine, ",", CompareMethod.Text)
CODE(intCnt) = Mid(strLine, 1, intC - 1)
Kekka(intCnt) = Mid(strLine, intC + 1)

intCnt = intCnt + 1
Loop

TextBox1.Text = intCnt
StR.Close()
End Sub

しかし、プログラムは正常動作するのですがメモリ中の結果を見ると文字化けしています。
色々調べてみた結果、OpentextはUTF-8のエンコードを読み取るとのことなので
問題のCSVファイルのエンコードが違うのかと思うのですが
運用時に制限を加えるより現在のエクセルからCSVで保存されたエンコードを読みたいと考えています。

現在のエンコードが何なのかも判っていないのですが
なんとかUTF-8以外のエンコードも文字を認識する方法はないでしょうか?
0439デフォルトの名無しさん2009/12/09(水) 11:03:09
出来る言語って有るのかな?
0440デフォルトの名無しさん2009/12/09(水) 11:05:51
>>438
取り敢えずStreamReaderを調べるといいよ
04414382009/12/09(水) 11:21:43
>>440
見たつもりだったのに..
StR = File.OpenText(HanteiFilePath)
の部分を
StR = New StreamReader(HanteiFilePath, System.Text.Encoding.GetEncoding("Shift-JIS"))
としたら解決でした。

ありがとございましたー
0442デフォルトの名無しさん2009/12/09(水) 17:41:33
カウンターに使う変数で
0から加算されて10になったらというのを判断したい場合には
If Counter = 10 Then
・・・・・
Counter = 0
End If
でいいですか?
念のためIf Counter > 9 Then
の方がいいですか?
カウントアップが早かったりパソコンの処理が重かったりして10を飛び越してしまうことはないですか?
0443デフォルトの名無しさん2009/12/09(水) 17:49:27
Counterが整数ならお好きに。

ただ10という数字に積極的な意味があるなら
9より上より、10以上のほうがいいかな。
0444デフォルトの名無しさん2009/12/09(水) 18:53:24
誤差が出る計算だったり、別のスレッドでカウントアップしてるとかじゃなければ
心配してるようなことは起こりえない
仮に飛び越す可能性がある状況だったとして、そのIf Counter > 9のところ
だけうまく通ったところで、そんな状況で他のところがまともに動くとは思えないな
0445デフォルトの名無しさん2009/12/09(水) 19:41:46
>>442
カウンターを間違えて2回増加させるとか
カウンターにうっかり2を足してしまうとか

そういった不安要素を排除したいなら>=10のがいいんじゃね

ま、そんなレベルのプログラムでまともに動くわけないってのは>444に同意
0446デフォルトの名無しさん2009/12/09(水) 19:48:33
コントロールって、メンバに自分自身(Excel VBAで、RangeオブジェクトのCellsメンバのようなもの)
は持ってないのでしょうか?


例えば、※行の()の中をWithを活かして書けないものでしょうか?

With Form2.TextBox1
    '色々設定
    Form2.Controls.Add(Form2.TextBox1) '※
End With


よろしくお願い致します。
0447デフォルトの名無しさん2009/12/09(水) 19:52:01
>>446
真面目に日本語でオッケー過ぎる質問だと思う。
エスパーの俺でも訳がわからん。
0448デフォルトの名無しさん2009/12/09(水) 20:11:42
Me
0449デフォルトの名無しさん2009/12/09(水) 23:50:56
VB.netで複数のマウスからの情報を制御して、1つのマウスからのみの情報をカーソルに送るプログラムを組もうとしています。

今のところ、WM_INPUTのメッセージから各デバイスの識別はできたのですが、いらないマウスからの情報を破棄する方法が見あたらず困ってます。

今後どのようなステップを踏めば良いのか御教授お願いします。
0450デフォルトの名無しさん2009/12/09(水) 23:51:08
>>443-445
レスありがとうございます。解決です。
0451デフォルトの名無しさん2009/12/10(木) 00:29:16
>>449
多分RawInputじゃ入力の破棄はできないはず
WH_MOUSE_LLなら破棄できるけど、このタイミングで入力元の識別できるかなー
WM_INPUTでdwExtraInfoを設定できる余地はあったっけ…と思ったらそもそもWH_MOUSE_LLの後か、WM_INPUT
WH_MOUSE_LLの最中にGetRawInputBufferは有効かどうか…?
0452デフォルトの名無しさん2009/12/10(木) 00:37:24
Dim f As Boolean
とするとfはTrueとFalseが選べますが、これを自分で定義する方法を教えてください。
例えばYes,Noとかできないでしょうか?
0453デフォルトの名無しさん2009/12/10(木) 00:47:11
比較的要望に近いのは列挙型か?
あーそうだ、モジュールで
Yes As Boolean = True
とかすればいいんだー(棒
0454デフォルトの名無しさん2009/12/10(木) 01:21:42
レスどうもです。
出来ればコードエディタで入力時に選択肢が出るようにしたいですがそういう方法はないでしょうか?
0455デフォルトの名無しさん2009/12/10(木) 01:28:53
すみません。列挙型を調べたら希望通りのものができました。ありがとうございます。
0456デフォルトの名無しさん2009/12/10(木) 02:18:07
このスレ、質問がない時読むと、
ほんと興味ないつまらない話ばっかな。
0457デフォルトの名無しさん2009/12/10(木) 03:19:42
>>451

返信ありがとうございます

WM_INPUTのフック無理なんですかね...

ちなみに検索をかけたら、dll作成というキーワードが出てきたのですが、この方法だと実現可能なのでしょうか。

0458デフォルトの名無しさん2009/12/10(木) 03:57:43
Dim i As Integer
の後に
また
Dim i As Integer
と書きたい場合は
Dim i As Integer
と
Dim i As Integer
の間に何を書けば
0459デフォルトの名無しさん2009/12/10(木) 04:39:16
なぜ書きたいのか
0460デフォルトの名無しさん2009/12/10(木) 07:56:43
Redimのことか?
0461デフォルトの名無しさん2009/12/10(木) 08:05:09
Dim i As Integer を先頭に書けばいい
0462デフォルトの名無しさん2009/12/10(木) 09:01:24
"Red"という文字列を
Color.Red
にするにはどうすれば
0463デフォルトの名無しさん2009/12/10(木) 09:06:21
Enum.Parse
0464デフォルトの名無しさん2009/12/10(木) 09:16:09
System.Drawing.ColorのRedはプロパティで列挙型じゃなかった。
>>463は間違い。
リフレクションを使うか。
0465デフォルトの名無しさん2009/12/10(木) 09:23:57
よくわかんない
0466デフォルトの名無しさん2009/12/10(木) 09:26:21
KnownColorが列挙体だった。
dim kc as KnownColor = System.Enum.Parse(GetType(KnownColor), "Red")
dim col as Color = Color.FromKnownColor(kc)
Console.WriteLine("{0:D} {0} -> {1}", kc, col)
--
141 Red -> Color [Red]
0467デフォルトの名無しさん2009/12/10(木) 09:57:54
EnumとかKnownとか0:D} {0} -> {1}とかしらんけどコピペして使ってみる
0468デフォルトの名無しさん2009/12/10(木) 10:10:57
>>457
WH_MOUSE_LLはグローバルフックでもDLLは不要
フック用DLLが必要なら.NETだと作れなくなってしまうしな
0469デフォルトの名無しさん2009/12/10(木) 10:52:52
ColorConverterだったか使えば?
0470デフォルトの名無しさん2009/12/10(木) 10:58:50
いやColor.FromNameっていうそのまんまなのがあるんだが
0471デフォルトの名無しさん2009/12/10(木) 11:58:01
おお、忘れてた。
システムカラーとか要らないならそれで良かったな確か。
0472デフォルトの名無しさん2009/12/10(木) 12:55:24
できた


Color.FromName メソッド
定義済みの色の指定した名前から Color 構造体を作成します。

名前空間: System.Drawing
アセンブリ: System.Drawing (system.drawing.dll 内)
0473デフォルトの名無しさん2009/12/10(木) 15:17:22
デバッグ>ウィンドウ>イミディエイト
でフォームが表示されるはずなんだけどピクリとも反応しない。
普通にデバッグすればフォームは立ち上がる。
なにか設定がおかしいのかな?
0474デフォルトの名無しさん2009/12/10(木) 15:23:08
>>473
>デバッグ>ウィンドウ>イミディエイト
>で
「イミディエイト ウィンドウ」が開きましたか?ならば正常です。
0475デフォルトの名無しさん2009/12/10(木) 18:41:15
ttp://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet08/vb6tonet08_01.html
このサイトには、ファイルの入出力においては、いくつかやり方がありますよ。
ただ、.NET Framework のクラス・ライブラリで動かすやり方で記述した
方がいいですよ。という印象を受けるような記事がかかれていますが、
私が感じる.NET Framework のクラス・ライブラリで記述するメリットは
Monoなど、「移植性」という部分だけだと感じるのですが、それ以外にも
何かあるのでしょうか?
.NET Framework そのもののバージョンアップ時の互換性が保たれ易いかは、
大きな違いがなさそうに思いますし。

クラスライブラリ関係の事がよくわかってないので、質問をしてみました。
誘導でも良いので何かヒントをお願い致します。
0476デフォルトの名無しさん2009/12/10(木) 18:52:58
記事読んでないけど、
.NET Framework は、Windows 標準でもあるし
VBやC#などでもクラスライブラリを使いまわしやすいからじゃない?
0477デフォルトの名無しさん2009/12/10(木) 23:18:25
今のVBでまだ
Open "Hhhhh.dat" For Input As #1
みたいな書き方できるんだっけ?
0478デフォルトの名無しさん2009/12/10(木) 23:25:21
無理 FileOpen関数が代わり
有効なファイル番号とかマルチスレッドのかけらも考慮されてないよな
まあVB6までは存在しなかった概念だから仕方ないが
0479デフォルトの名無しさん2009/12/11(金) 01:02:42
Transparency
で透明にしたフォームは
画面を動画としてキャプチャするソフトに写らないけどどうすれば
0480デフォルトの名無しさん2009/12/11(金) 01:21:37
>>475
古いやり方に何のメリットがあるんだよ。
ただ不便なだけ。
0481デフォルトの名無しさん2009/12/11(金) 06:40:06
VB.NET2003で作ったプログラムにバグがあったと思ってデバックしようとしたけど、
IDEで実行しても再現しない。よく考えると、どうやらVisual Studioo .NET 2003
に付属のDotfuscator Community Editionで難読化したものを実行すると動作がお
かしくなるらしい。
何なんだこれは、出来損ないではないか。
これ使ってる人いるのかな。
0482デフォルトの名無しさん2009/12/11(金) 07:00:33
>>475
どっちでもいいよ。
0483デフォルトの名無しさん2009/12/11(金) 08:49:39
>>481
ボクたちには関係無い話だな。w
0484デフォルトの名無しさん2009/12/11(金) 09:07:28
1/297.9を

x/16bit
に書き直すとして
16bitの10ッしんすうと
xの10進数の値の部分はどうなるか計算できない
0485デフォルトの名無しさん2009/12/11(金) 10:04:46
何を言ッているかわからねーと思うが(ry

10/2979 じゃなくて?
0486デフォルトの名無しさん2009/12/11(金) 10:07:31
意味がわからない
16bitって何? 一般的に16bitっていうと具体的な値じゃなくて
値の記憶域の幅だぞ
04874842009/12/11(金) 11:18:19
分母が6万ごせんなんちゃらかんちゃらのときの分子の値
0488146=1352009/12/11(金) 11:31:56
Dim y As Double = 2^16
Dim x As Double = 1 / 297.9 * y
Console.WriteLine("{0}/{1}", x, y)
もしかしてこれだけのこと?
宿題としては意図が分からんな
整数なら理解できるがなぜ小数点・・・
0489デフォルトの名無しさん2009/12/11(金) 11:49:38
>>476
>>480
>>482
レスありがとうございます。
0490デフォルトの名無しさん2009/12/11(金) 13:10:56
>>487
ああ、1/297.9 ってBB確率か何かか。
そんな算数も判んなくて大丈夫か?
0491デフォルトの名無しさん2009/12/11(金) 22:19:40
http://msdn.microsoft.com/ja-jp/library/wkze6zky.aspx
ここのページで
参照の追加ボックスには
Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Public Assemblies
にあるアセンブリのみが表示されます

って書いてるんだけど明らかにそれ以外のものも参照の追加にあるんだけどなんで?
0492デフォルトの名無しさん2009/12/11(金) 23:01:55
いや、ちゃんと説明されてるやんけ。。。(−_−;)
0493デフォルトの名無しさん2009/12/11(金) 23:16:06
・アセンブリを次の場所のいずれかに移動またはコピーします。

 ・現在のプロジェクト ディレクトリ。
  ここにあるアセンブリは、[参照] タブに表示されます。

 ・同じソリューション内のその他のプロジェクト ディレクトリ。
  ここにあるアセンブリは、[プロジェクト] タブに表示されます。

 ・Public Assemblies フォルダ (Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Public Assemblies)。
  ここにあるアセンブリは、[.NET] タブに表示されます。

と書いてあるよ?
0494デフォルトの名無しさん2009/12/11(金) 23:20:15
Public Class Form1
 Private Sub Button_goukei_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
 Handles Button_goukei.Click
  Dim kosuu, goukei As Integer : goukei = 0
  Dim ctl As Control

  For bangou = 0 To 2
   ctl = Me.Controls(bangou)
   kosuu = CInt(ctl.Text)
   goukei += kosuu
  Next
  TextBox_goukei.Text = CStr(goukei)
 End Sub
End Class

「Formに、TextBox1、TextBox2、TextBox3、TextBox4、TextBox_goukei(Text = "表示")、
 Button_goukeiを配置し
 プログラムを実行しButton_goukeiをクリックたら
 TextBox1、TextBox2、TextBox3に数字を入力し、合計をTextBox4に表示する。」
と言うことをしたいんだけど、
bangou = 0のループでctl.Text = "表示"となって型が合わないという理由でエラーになる。
コントロールの配置順でControls(bangou)が決まるようなんだけど、狙い通りに行かない。

テキストボックスのプロパティを見ると、順番らしきものはTabIndexしか見あたらないんだけど
これとは違うみたい。

コントロールの順番を設定するにはどうすれば良いのでしょうか?
0495デフォルトの名無しさん2009/12/11(金) 23:21:20
×「Formに、TextBox1、TextBox2、TextBox3、TextBox4、TextBox_goukei(Text = "表示")、
  Button_goukeiを配置し
↓
○「Formに、TextBox1、TextBox2、TextBox3、TextBox4、TextBox_goukei、
 Button_goukei(Text = "表示")を配置し
0496デフォルトの名無しさん2009/12/11(金) 23:37:58
>>494
番号でコントロールを指定できて何か嬉しいことある?
本当にある?

よーく考えた方がいいよ。
0497デフォルトの名無しさん2009/12/11(金) 23:51:20
>>493
C:\Windows\Microsoft.net\DirectX for Managed Code

とか、あきらかにその三つに含まれないものも.NETタブにあるんだけどなんで?
0498デフォルトの名無しさん2009/12/12(土) 00:45:14
ここにあるアセンブリ*だけ*が、とは書かれてないだろ。
0499デフォルトの名無しさん2009/12/12(土) 08:55:04
Format(Single,"0.00")
だと少数3位で切り捨てになっちゃうので
3位を四捨五入するにはどうすれば
0500デフォルトの名無しさん2009/12/12(土) 08:58:16
+0.005してからformat?
0501デフォルトの名無しさん2009/12/12(土) 13:58:31
切り捨てて本当かよそれ
0502デフォルトの名無しさん2009/12/12(土) 14:56:01
VBのFormat関数の動きってどうだったかな…
0503デフォルトの名無しさん2009/12/12(土) 16:58:50
質問です。textbox で右クリックしたときに表示される
コンテキストメニューをrichtextboxでも同様に使いたいのですが、
デフォルトで無い状態です。 どうすればいいですか?
0504デフォルトの名無しさん2009/12/12(土) 17:12:58
無理
0505デフォルトの名無しさん2009/12/12(土) 19:06:27
了解
0506デフォルトの名無しさん2009/12/12(土) 19:28:53
VBってひとつの行にいっぱい書く方法ないの?
C言語だと
int x,y; x=10; y=x+10; printf("%d",x+y);

みたいにいっぱいかけたんだけどVBは?
0507デフォルトの名無しさん2009/12/12(土) 19:31:58
:
0508デフォルトの名無しさん2009/12/13(日) 00:12:32
もう、熟成しきって、そんなレベルでしかネタが無くなりましたか。
0509デフォルトの名無しさん2009/12/13(日) 01:15:12
なんかXNAのページでC#専用みたいに書いてるけどDLLさえあればVBでもいいんだな。
0510デフォルトの名無しさん2009/12/13(日) 18:50:22
Xboxでは動かせないよ
審査が通らない
0511デフォルトの名無しさん2009/12/13(日) 19:03:27
すんません、教えてください。VS2005でVBで開発していますが、
ブレークポイントを設定して止めたり、一時停止ボタンで実行を
止めたりしたときに、やたらと開発環境がハングして困っています。
これはソースコードに問題がある場合がありますか?それとも
VS2008以降ではこういうことはなくなっている問題なのでしょうか?
ご指導ください。
0512デフォルトの名無しさん2009/12/13(日) 19:05:46
スタートページを表示しない設定にしてみて
0513デフォルトの名無しさん2009/12/13(日) 19:07:48
低スペ乙
0514デフォルトの名無しさん2009/12/13(日) 19:15:03
>>512
一応スタートページは表示していないのですが、コードウインドウはたくさん
残したまま終了していて、再度立ち上げるときにはたくさんのコードウインドウが
開かれて立ち上がります、これがいけないのでしょうか・・・

>>513
マシンのスペックが足りていないということでしょうか?
メモリーは一応4GB積んであり、物理メモリーは850MGぐらいまでしか
使用されていない状態のようで、そちらの余裕はあるようなのですが。
05155142009/12/13(日) 19:34:21
(訂正)>850MG→850MB
05165142009/12/13(日) 19:42:09
あと、それとExplorer等でファイルやフォルダを削除すると、その最初の実行の際に
やたらと時間がかかる傾向にありました。2回目以降はそれほどかからない
のですが、1回目のときは30秒ぐらいかかっています。CPUは、一応
Core2Duoの2.6GHzなのですがこれでも遅いのか・・・
0517デフォルトの名無しさん2009/12/13(日) 19:48:46
ブレークポイントとか使ったことない
msgboxデバッグで十分
0518デフォルトの名無しさん2009/12/13(日) 20:19:31
>Explorer等でファイルやフォルダを削除すると、その最初の実行の際にやたらと時間がかかる傾向

VSとは関係なく、何かしらのファイルを削除しようとすると30秒かかるって事なら
OSのファイル管理の具合が悪いか、ドライブの物理的異常かもねー。そうなると板違い
0519デフォルトの名無しさん2009/12/13(日) 21:04:04
まずはスキャンディスクだ
0520デフォルトの名無しさん2009/12/13(日) 21:14:58
トドメになることあるから覚悟して実行しろよ…
0521デフォルトの名無しさん2009/12/13(日) 21:19:14
オブジェクトブラウザ日本語にしてくれよMS
0522デフォルトの名無しさん2009/12/13(日) 21:24:05
メッセージボックスの文字列をAPI(SetWindowText)で書き換えたいのですが、
メッセージボックスのメッセージ部分のウインドウハンドルを取得する方法で
Windows全体の子ウィンドウを列挙して調べる以外の方法があれば
流れのような感じでも良いので教えていただけないでしょうか?
0523デフォルトの名無しさん2009/12/13(日) 21:28:02
自プロセスなら CBTフックができるかも。
他プロセスなら列挙しかないだろ。
0524デフォルトの名無しさん2009/12/13(日) 21:48:44
ありがとうございます。
CBTフックの方法で調べてみたいとおもいます。
0525デフォルトの名無しさん2009/12/13(日) 23:28:41
>>520
なぜトドメになるのかkwsk
0526デフォルトの名無しさん2009/12/13(日) 23:40:28
>>525
何故かは知らんけ瀕死のHDDにそんなことしちゃダメなのは常識でしょ。
しかし、最近のHDDはSMART当てにならんね。
死ぬときは何の予兆もなくコロッと逝く。
その辺は10年ぐらい前のHDDの方がまともだった気がする。
0527デフォルトの名無しさん2009/12/14(月) 00:19:33
HDD瀕死なら、たまにOSが起動しないとか
他にも色々と問題が発生してそうだけどな

一応SMART確認して、ヤバそうなら他HDDにバックアップしてから
平気そうならいきなりスキャンディスクかな

それでもデバックやらで固まるならVS入れ直すな
それでもダメならOSから入れ直し
0528デフォルトの名無しさん2009/12/14(月) 01:33:13
すみません、VB2005で開発をしているものです。
規模の小さなアプリ開発で
ファイルベースのデータを扱う際のDALC
(データアクセスロジックコントロール)の作り方がわかりません。
どういう点に注意して作れば良いのでしょうか。
0529デフォルトの名無しさん2009/12/14(月) 01:58:31
現在VB.netで自動でWEBページへログインを行うツールを作成しているのですが、
どうしてもGoogleAdsenseには自動でログインをする事が出来ません。
(Yahoo mail等には普通にログインする事は出来ています。)

■Google Adsense のページ
https://www.google.com/adsense/login/ja/

■記述したVB.netのコード
objeBrowser.Navigate(strNavigate, Nothing, Nothing, Nothing, Nothing)
Do
Loop Until Not objeBrowser.Busy

Dim HTMLDoc As mshtml.HTMLDocument

HTMLDoc = objeBrowser.Document

Dim iCol As mshtml.IHTMLElementCollection
iCol = HTMLDoc.getElementsByTagName("input") ← ここで通常は iCol に複数のオブジェクトが取得されなくてはならないハズが
                                   取得されません。

一体なぜGoogle Adsenseのログインページだけinputタグの値を
上記のコードで取得する事が出来ないのでしょうか?



0530デフォルトの名無しさん2009/12/14(月) 03:56:45
たいてい、そういうツール作ってるのはブラック。

悪用しないで下さいと言われても
悪用以外に使い道がなさそうなツール。
0531デフォルトの名無しさん2009/12/14(月) 07:09:43
>>529
そのページinputタグが無いみたいだけど
0532デフォルトの名無しさん2009/12/14(月) 08:38:20
>>529
inputじゃないね
ページによってソース違うからソース見てみ
0533デフォルトの名無しさん2009/12/14(月) 08:56:29
ログインには Java Script が必要です。

だって
05345292009/12/14(月) 21:23:36
>>531
恐らくJavaScriptでDOMを操作して作成しているのだと思います。

>>532
FireFoxのアドインで「要素を調査」でページが表示され切ってから
確認すると間違い無くinputタグが吐き出されているのですが、、、


どうしてもGoogleのこのページだけ自動でログインする事が出来ません。。。
誰か凄腕の方。この牙城を突破する方法をご指南下さい。。。。

このページだけ自動ログインできない、、、
0535デフォルトの名無しさん2009/12/14(月) 21:43:22
がんばってください
0536デフォルトの名無しさん2009/12/14(月) 21:58:40
そういうことやっても問題ないと思っているようなら
googleに直接メールして聞いてみりゃいいじゃん
0537デフォルトの名無しさん2009/12/14(月) 22:00:04
Busy 判定じゃなくて、DocumentComplete のあとに、しばらく待ってみたら?
0538デフォルトの名無しさん2009/12/14(月) 22:09:50
>>537
一応5秒程度スリープして試してみてもダメでした。。。
Googleトラップをなんとしても突破したいです。。。

凄腕のPGさん突破できた人はいますか?
マジでここだけ無理。。。
0539デフォルトの名無しさん2009/12/14(月) 22:13:49
5秒とかじゃなくてさ・・・。
0540デフォルトの名無しさん2009/12/14(月) 22:21:58
loginとこiframeになってるのか
0541デフォルトの名無しさん2009/12/14(月) 22:27:33
凄腕のPGさん(笑)
いい加減しつこい
VIPでヤレ
0542デフォルトの名無しさん2009/12/14(月) 22:38:30
iframeのとこのURLでやったらログインできたよ
0543デフォルトの名無しさん2009/12/14(月) 22:45:02
adSense の URL -> iframe(awlogin) -> outerhtml -> input タグ(Email, Passwd)

でいいのかな。
0544デフォルトの名無しさん2009/12/14(月) 22:48:07
>>542
すみません。ソースを iframeで検索してもヒットしませんでした。
どうやってURLを見つけられたのでしょうか?
またURLを教えて頂けると非常に助かります。
0545デフォルトの名無しさん2009/12/14(月) 22:50:48
>>542 >>543
どうもありがとうございます。Googleの牙城を突破する事が出来ました^^;
やっぱ上には上がいますね。凄いです。

>>541
低脳は氏ね。
0546デフォルトの名無しさん2009/12/14(月) 22:50:56
これだけ説明聞いてもダメならあきらめろよ。
0547デフォルトの名無しさん2009/12/14(月) 22:50:57
../../login-box.js
このソースがログインボックス生成してるのわかるじゃん
でこれを読むと
document.write('\n\74iframe style\75\・・・・

ってことはログインボックスのあたりを右クリックでプロパティで
URLゲット
0548デフォルトの名無しさん2009/12/14(月) 22:51:47
つか、iframe とって、getAttribute("src") でいいだろ。
0549デフォルトの名無しさん2009/12/14(月) 23:00:39
>>547 >>548
本当に凄いです。スーパーハカーです。

>>546
お前はクズ。
0550デフォルトの名無しさん2009/12/15(火) 00:14:29
凄腕のPGさん以外書き込むんじゃねーぞカス共
0551デフォルトの名無しさん2009/12/15(火) 00:17:53
>>550
呼んだ?
0552デフォルトの名無しさん2009/12/15(火) 00:36:51
解決した途端、強気になる>>545
解決して良かったね、もう来るなよ。
0553デフォルトの名無しさん2009/12/15(火) 20:22:57
ファイル名が違っても内容が同じファイルを探したいのですが、
容量がぴったり同じものを最初に探し出して
次にファイルの適当な位置を何箇所か比較するという
方法を考えているのですが、いきなりファイルの途中を読み込む
方法がわからないのですが、良い方法があったら教えて頂きたいです。
0554デフォルトの名無しさん2009/12/15(火) 20:26:53
ハッシュするとかでいいんじゃね?
0555デフォルトの名無しさん2009/12/15(火) 20:48:42
FileStream使えばランダムアクセスできるよ
ファイル比較は比較対象を想定できるかどうかで望ましいアプローチが結構変わるね
0556デフォルトの名無しさん2009/12/15(火) 22:11:19
どうしても分からないので質問させてください。

カスタムコントロールを自作してフォームに貼り付けようとしたところ
以下のようなエラーメッセージが吐かれて貼り付けられません。
「コントロールSystem.Windows.forms.tabcontrolがデザイナでハンドル
されていない例外をスローして、無効になりました。
例外:
DataSourceのプロパティまたは列SettingNameにバインドできません。
パラメーター名:dataMember
スタック トレース:
〜以下略

このエラーはどういったときに発生するものなのでしょうか?
よろしくお願いいたします。
0557デフォルトの名無しさん2009/12/15(火) 22:22:37
>>556
フォームではなくコード上でまずインスタンス生成するコードを書いて、例外でストップするように設定し、デバッグ実行してみたら?
0558デフォルトの名無しさん2009/12/15(火) 22:23:01
デバッグすれば?

その手の問題の多くは、DesignMode への考慮不足だけど・・・。
0559デフォルトの名無しさん2009/12/15(火) 22:34:43
>>557,558
ありがとうございます。
仰るとおり DesignMode の考慮不足だったようですorz
次から tabcontrol を扱う際は注意したいと思います。
05605532009/12/16(水) 00:54:58
レスありがとうございました。
FileStreamでできました。
0561デフォルトの名無しさん2009/12/16(水) 18:03:21
VB2005でシュオッチ(キーボード連打回数測定ソフト)を作っています。

キーを叩くごとに効果音が鳴るようにしようと
「My.Computer.Audio.Play("")」を使ってみたんですが
連打するたびにこの処理だと、重すぎてプログラム全体に支障が出てしまいました。

もう少し負担の軽い、効果音専用のようなコードは無いでしょうか?
0562デフォルトの名無しさん2009/12/16(水) 18:37:05
ttp://dobon.net/vb/dotnet/programing/playwavfile.html
WAVEファイルを再生する

ttp://dobon.net/vb/dotnet/programing/playmidifile.html
MIDI、MP3などの音楽ファイルを再生する

使ったことは無いから知らないぞ
大体連打なんだから音鳴らさなくても困らないんじゃないか
05635622009/12/16(水) 18:38:37
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/440systemsounds/systemsounds.html
beep音
0564デフォルトの名無しさん2009/12/16(水) 18:46:43
DirectXを利用するのが一番簡単みたいだな
DirectXすごいな
0565デフォルトの名無しさん2009/12/16(水) 18:53:38
>>562
さっそく試してみようと思います。
ありがとうございました!
0566デフォルトの名無しさん2009/12/16(水) 19:32:28
DirectX SDK ダウンロードページ
http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&displaylang=en
0567デフォルトの名無しさん2009/12/16(水) 20:20:24
アプリケーションの設定の作成について質問です。
ListBoxの値をユーザーが追加、編集できるようなプログラムを
作りたいと考えているのですが、値をどう保存すればよいのか、
が分かりません。
アプリケーション構成ファイルに簡単に保存できるのでしょうか?
iniやcsvファイルなどを使って保存しておくしかないのでしょうか?
0568デフォルトの名無しさん2009/12/16(水) 20:24:36
多分そういう方法を取るのが一番
0569デフォルトの名無しさん2009/12/16(水) 20:44:39
ありがとうございます。
やってみます!
0570デフォルトの名無しさん2009/12/16(水) 21:51:17
その方法は二番だな
0571デフォルトの名無しさん2009/12/16(水) 21:56:28
xmlファイルに保存とかでもいいんじゃね?
0572デフォルトの名無しさん2009/12/16(水) 22:01:34
じゃ、一番は何?
0573デフォルトの名無しさん2009/12/16(水) 22:10:31
>>570先生に期待してますよ^^
0574デフォルトの名無しさん2009/12/16(水) 22:14:31
一番はJSON
0575デフォルトの名無しさん2009/12/16(水) 22:19:38
それはないわ・・・
0576デフォルトの名無しさん2009/12/16(水) 22:22:03
簡単なのはXMLだな
フォーマットを意識したコードが一切不要
0577デフォルトの名無しさん2009/12/16(水) 23:13:05
一番はアプリケーションセッティングのカスタマイズ。
0578デフォルトの名無しさん2009/12/16(水) 23:51:44
俺のスタンスでは、設定情報は原則XMLにしておくが、
リストボックスに表示するような系統のもの(データ件数が多いもの)であれば、
mdbファイルにまとめておくだろうな。
SQL文書いてアクセスするだけで目的のものがすぐに取得できるし、
そういうSQL文での抽出が便利であると感じるケースが多いから。
0579デフォルトの名無しさん2009/12/16(水) 23:53:38
オレは、csvだなぁ
0580デフォルトの名無しさん2009/12/16(水) 23:57:28
件数次第だな。
0581デフォルトの名無しさん2009/12/16(水) 23:58:58
親プログラムから子プログラムを呼ぶんだけど、
子プログラムから数値以外の値を返す方法はない?

親と子は両方VB.NETで作成します。
子をDLLにしろってのは無しで。別プロセス別アプリケーションでお願いします。
子がファイルにシリアライズ出力してそれを親が読み取る以外の方法があれば教えて。
0582デフォルトの名無しさん2009/12/17(木) 00:00:57
クリップボードとかじゃダメなん?
0583デフォルトの名無しさん2009/12/17(木) 00:02:38
標準出力か、普通のプロセス間通信。
0584デフォルトの名無しさん2009/12/17(木) 00:08:15
SendMessage で WM_COPYDATA とか
0585デフォルトの名無しさん2009/12/17(木) 00:16:11
やったことないけど、GlobalAddAtom() して、ATOM を親プロセスに返す、ってのはどうだろ?
0586デフォルトの名無しさん2009/12/17(木) 00:59:04
>582-585
ありがとう。それぞれ調べてみるよ。
0587デフォルトの名無しさん2009/12/17(木) 01:03:32
>普通のプロセス間通信
普通ってなんだよっ
0588デフォルトの名無しさん2009/12/17(木) 01:18:20
親子のプログラムってどういう状況の話をしているのかがわからん。
いや、あおりとかじゃなくて。
異なるフォームでのデータのやり取りではなさそうだし、親となるクラスが、
子どもとなるクラスを持っているというわけでもなさそうだし。
0589デフォルトの名無しさん2009/12/17(木) 01:40:17
いい方法かどうかは別としてよくあると言えばよくある話だと思うが。
特に理由がなければ基本的にはやらない方向で考えるけどな。
0590デフォルトの名無しさん2009/12/17(木) 04:55:38
すでにVB.NETの枠をはみ出て、Windows OSの機能とかAPIとか
ついでにDCOMとかの話だもんな。
0591デフォルトの名無しさん2009/12/17(木) 07:12:52
>>581
ソケット通信がいいよ
0592デフォルトの名無しさん2009/12/17(木) 12:15:17
そんなこと言い出したら.NET Frameworkのクラスの使い方すらスレ違いだ
0593581,5862009/12/17(木) 23:14:45
子がConsole.Writelineで文字列を出力して、
親がProcess.StandardOutput.ReadToEndで読めました。楽でいいね。ありがとう。
0594デフォルトの名無しさん2009/12/18(金) 01:53:47
それは無理だろうw
0595デフォルトの名無しさん2009/12/18(金) 02:04:13
?
0596デフォルトの名無しさん2009/12/18(金) 02:22:39
>>593
オメ!
0597デフォルトの名無しさん2009/12/18(金) 12:57:56
>子がファイルにシリアライズ出力してそれを親が読み取る以外の方法
>>593なら実質的に同じようなもんだと思うんだが
0598デフォルトの名無しさん2009/12/18(金) 17:43:07
「ファイルシステム上のファイル」でさえなければ、何でもよかったんだろう。
0599デフォルトの名無しさん2009/12/18(金) 20:39:03
RvResult = MessageBox.Show(MSG, "CAUTION", _
      MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, _
      MessageBoxDefaultButton.Button1, 0)

こんな感じで記述しているメッセージボックスなんですが、
なぜか素通りしてしまう場合がありました。これまで、
ここまでしっかり引数を書いたときには発生していなかったのですが、
ここのところ頻発してしまうので困っています。環境はVS2005ですが
何か注意するべき点があるでしょうか?よろしくです。
0600デフォルトの名無しさん2009/12/18(金) 21:05:55
クラスビューがあるらしいんだけど表示メニューにない。
VB2008Expressだからですか?
VS2008Exだとあるんでしょうか?
06016002009/12/18(金) 21:19:42
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard40.htm
ないんか。なんでや・・・VSはあるんか糞
ナンデワザワザケズッテルンヤ?
06025992009/12/18(金) 21:21:01
あんまり頻発するんでしかたなくブレークポイントを置いて止めながら
見てみるとそういう場合はほとんど例外なくMessageBoxは表示されます。
ゆっくり一つ一つステップを確認しながら実行する分には表示されるという
感じなのです。こういうことはしばしばあるものでしょうか?あるとすると
原因はどんなことが考えられるでしょう?
06036002009/12/18(金) 21:41:26
その行の前にデバッグプリントでカウントしてみたらどう?
99%勘違いだと思うよ。
0604デフォルトの名無しさん2009/12/18(金) 21:44:38
トラックバーについて質問です。
トラックバー内のどの部分でマウスの左ボタンを押下しても、
つまみをつかんだ状態にしたいのですが可能でしょうか?
つまみのない場所で、マウスの左ボタンを押下すると、
つまみがその位置に移動し、その状態でマウスを動かすと
つまみも連動して動くといったような処理がしたいです。
よろしくお願いします。
06055992009/12/18(金) 21:56:33
>>603
どうもです。Debug.Print()がもちろんやってみています。
確実にMessageBox.Show()のすぐ次のDebug.Print()が実行されて
います(100%)。

こうしたことは、以前にはMessageBox(MSG)とだけ簡略に書いたとき
にはときどき起きていたもので、それからは多くの引数を書き、かつ
戻り値を受ける形で書くことにしてほぼそうしたケースはなくなって
いたのですが、本日になってやってみているとそれが同様にすり抜ける
場合が頻発してきたのです。不思議なのですが、どうも現実のようです。

どうするべきだろうか、どうしてもYesNoCancelで表示したいのだが。
06066002009/12/18(金) 22:00:51
いや、あなたが表示されるはずと思っている時にデバッグプリンとではカウントしているかどうかを見てほしい
06075992009/12/18(金) 22:06:41
>>606
>デバッグプリンとではカウントしているかどうか

カウント、というと意味としては「Debug.Print("ABC")」という行を
MessageBox.Show()の直後の行に置き、実行したときに、イミディエイト
ウインドウに ABC と表示されるかどうか、というチェックでいいのですよね?
ですから、そのチェックでは確実に100% ABC と表示されているのでしたが。

そういう意味じゃなくて、でしょうか??
0608デフォルトの名無しさん2009/12/18(金) 22:08:58
いや絶対勘違いだから(100%)
賭けてもいいよ
06095992009/12/18(金) 22:09:37
>>607
それで、その上で、その直前のMessageBox.Show()は実行されていない
のは確かなのでした。

ところが、その前からブレークポイントで止めておいて、そこから
ステップ実行していくと、確実にMessageBox.Show()が実行されて
メッセージが出てボタンで選択できるのでした。

つまり、出てきていいはずのところが、通常実行では出てこないという
状況なのです。
06106002009/12/18(金) 22:10:20
それでもいいんですけど、要するに制御がその行に入ってないんじゃないのかという事。
素通りなんて普通に考えてない。
メッセージ表示する行だけにして、何度も実行してみて表示されない時があるならそういうこともあるということだろうね。やってみては?
06115992009/12/18(金) 22:15:19
>>610
どうもです。この現象、どうも書く場所(メソッド)によるようなのです。

あるメソッド内ではほとんどそういうことは起きませんが、ある場所では
高確率で発生します。そのときにその場所は確実に通っています。条件分岐
されていないフローの中でDebug.Print("ABC")して確認していました。
0612デフォルトの名無しさん2009/12/18(金) 22:16:58
そんなの聞いたこと無い
0613デフォルトの名無しさん2009/12/18(金) 22:17:01
もういいから再現可能なコードを晒せ
06146002009/12/18(金) 22:20:31
ブレークでとめるって、メッセージ表示の行に入る直前で止めれば、そりゃ表示できるでしょう。メッセージ行へ制御がちゃんと移動してるんだから。
コード全体見えてないんで私はどんな制御してるのか知らないけど。
どうしてもマシンのせいにしたいならリソース不足でメッセージが表示できないとかじゃないかなw
0615デフォルトの名無しさん2009/12/18(金) 22:23:05
そういうときはとにかくログ入れまくって予想通りのログに
なってるか確認するのが大事だ
debug.printじゃだめ
06165992009/12/18(金) 22:25:31
>>612-614
一つ奇妙な現象としてあることは、実行しているアプリのウインドウが
アクティブで動いているときに、その箇所にきて、本来メッセージが出る
べきタイミングで出ないときには、開発環境がアクティブになって、画面上
前に出てくるのでしたw。

そしてそこが流れたことを示すイミディエイトウインドウ上のPrint結果が
出ていて、そこを通ったときに開発環境がアクティブになったことを示して
いました。

正常にメッセージが出るときにはそうした奇妙な現象は起きず、アプリの
ウインドウがアクティブになりっぱなしで普通なのでした。どうも変な現象
なのです。
0617デフォルトの名無しさん2009/12/18(金) 22:27:54
周りの処理は?
06185992009/12/18(金) 22:28:59
>>615
>debug.printじゃだめ

ではテキストファイルなどに書き込んでみるのもやってみます。
いろいろご助言ありがとうございました、また思いつく限り調べて
みてわかり次第報告します。
0619デフォルトの名無しさん2009/12/18(金) 22:29:51
環境がぶっ壊れてる可能性もあるな。
06205992009/12/18(金) 22:33:53
>>617
WindowMsgなどをフックするコントロールを使っていて、
可能性としてはもしかするとそこが悪さしているのでしょうか・・・。
開発環境がアクティブになるというようなソースコードは存在して
いないので、なぜそういうことがあるのかはわからないのです。
またわかったら来ます。
0621デフォルトの名無しさん2009/12/18(金) 22:37:11
たぶんそうだろね。
0622デフォルトの名無しさん2009/12/18(金) 22:44:58
なんだ最初からどこが怪しいのか見当が付いてたのかよ。
ただ人に「悩み」聞いてもらいたかっただけってか。
なんか女のグチみたいだな。
やな感じ。
06236002009/12/18(金) 22:46:25
IDEがアクティブになるのは単に元のフォームが非アクティブになったからでは?メッセージ表示するときは非アクティブになるからね。
で本来のメッセージはなぜか表示されないので、かわりに直前にアクティブだったウィンドウが・・・
0624デフォルトの名無しさん2009/12/18(金) 22:49:02
ソース晒せばいいんだけどね
0625デフォルトの名無しさん2009/12/18(金) 23:15:31
>>600 ウザイな。
0626デフォルトの名無しさん2009/12/18(金) 23:24:48
>WindowMsgなどをフックするコントロールを使っていて、
どう考えてもそれが怪しいだろ。
0627デフォルトの名無しさん2009/12/18(金) 23:25:41
クラスビューってC++の見通しが悪いから生まれた機能だからなあ
.NETでは無くてもほとんど問題ない
06286002009/12/18(金) 23:41:31
>>625
しね
0629デフォルトの名無しさん2009/12/18(金) 23:43:48
質問者であることを示すために数字コテを使うのはわかるけどさ。
関係ないのにずーっと使い続けてるのって、バカみたいだよ。
06306002009/12/18(金) 23:45:38
いちいちくだらねぇことでつっこんでんじゃねーよカス
0631デフォルトの名無しさん2009/12/18(金) 23:46:59
キチガイを刺激すんなよ。
06326002009/12/18(金) 23:47:52
かまってほしそうだな
06336002009/12/18(金) 23:49:00
うるせー死ねカス
06346002009/12/18(金) 23:49:24
誰がキチガイだって? 死ねよハゲ
06356002009/12/18(金) 23:49:35
おめーが死ねよキチガイ
06366002009/12/18(金) 23:49:45
荒らすなよハゲ
06376002009/12/18(金) 23:50:27
さすが馬鹿が多そうだなここはwほんとカッスい
06386002009/12/18(金) 23:52:01
こんなところで質問してる俺って・・・
06396002009/12/18(金) 23:52:34
回線切って首吊れよカス
06406002009/12/18(金) 23:52:51
くっだらねぇ質問はここにするに限るからなw
06416002009/12/18(金) 23:55:09
さっさとデバッグしろ、今日も帰れないぞw
0642デフォルトの名無しさん2009/12/19(土) 00:21:57
何が面白いわけ?
よそでやれ。
0643デフォルトの名無しさん2009/12/19(土) 00:24:09
ホンモノのキチガイかw
06446002009/12/19(土) 06:01:58
他所でやるにも適したスレがない。
いや、俺この書き込みが初参戦だが。
0645デフォルトの名無しさん2009/12/19(土) 23:26:48
ド初心者な質問で申し訳ないですが
Formの背景イメージをcomboboxで選んで変更できるようにしたいんですが
難しいでしょうか?
ピクチャーボックス内の画像変更はできたのですがFormのほうがどうしてもできませんorz
どなたかお願いします ((○| ̄|_
06466002009/12/19(土) 23:27:40
同じようにやればいいだろ。
0647デフォルトの名無しさん2009/12/19(土) 23:34:41
同じようにやってなるんだったら
ここで質問してません
0648デフォルトの名無しさん2009/12/19(土) 23:38:05
Me.BackgroundImage = Image.FromFile("画像ファイル名")

0649デフォルトの名無しさん2009/12/19(土) 23:43:23
>>648
ありがとうございました
Meの部分を直球でForm1としていたのが原因でした
単純ミスですがとても助かりました┏○ペコ
06506002009/12/20(日) 00:04:51
単純ミスというより、何もわかってないだけだな。
0651デフォルトの名無しさん2009/12/20(日) 00:04:55
http://oshiete1.goo.ne.jp/qa5243671.html

すんません。
このやり方を使って、shellで起動したプログラムの終了までVBのプログラムを
待機させるにはどうしたらいいですか?

引数つきのshellでなおかつ待機機能が欲しいのです。
0652デフォルトの名無しさん2009/12/20(日) 00:10:33
Processクラスに WaitForExit() がある。
0653デフォルトの名無しさん2009/12/20(日) 00:11:38
shellでって曖昧

Process.WaitForExitでいいじゃん
0654デフォルトの名無しさん2009/12/20(日) 00:15:25
>>652-653
ありがとうございました。
0655デフォルトの名無しさん2009/12/20(日) 00:17:01

Dim hProcess As System.Diagnostics.Process

hProcess = System.Diagnostics.Process.Start("起動する外部プログラム名", "引数")

hProcess.WaitForExit()

hProcess.Close()
hProcess.Dispose()
06566002009/12/20(日) 00:36:23
Dim proc As System.Diagnostics.Process

proc = System.Diagnostics.Process.Start("プログラムファイルの名前", "引数")
proc.WaitForExit()

proc.Close()
proc.Dispose()
0657デフォルトの名無しさん2009/12/20(日) 01:14:30
VB.NET 2008

アクセス制限がされているフォルダに保存されているファイルを
別のフォルダに保存したい。

ファイルをコピーする瞬間だけ「別のユーザーで実行」のような
処理をしてくれるクラス(方法)はないでしょうか。

現在は、ファイルコピーのみを実行するアプリケーションを作成し、
それを別のプログラムから「別のユーザーで実行」してファイルコピーの
アプリケーションを起動しています。しかし、Windowsをログオフした状態で
タスクスケジューラーのようなもので起動するとうまく動作していないようなので、
他の方法を模索しています。

なにか上手い方法をご存知の方がいましたら教えてください。
0658デフォルトの名無しさん2009/12/20(日) 01:27:29
Windowsのコントロールパネルのタスクで、
そのフォルダへの実行権を持つユーザー名で
タスクを登録すればいいんじゃない?
タスク登録時にユーザー名とパスワードを入力しておけば
タスク実行時には聞かれないし。
0659デフォルトの名無しさん2009/12/20(日) 01:30:08
別のユーザーでほかのアプリケーションを実行するには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/877processstartuser/processstartuser.html
0660デフォルトの名無しさん2009/12/20(日) 01:32:19
runasコマンドを使うとか

runas /env /user:%USERDOMAIN%\権限を持ったユーザー名 "実行するプログラム名"
0661デフォルトの名無しさん2009/12/20(日) 01:57:20
今夜は冷えるな
06626612009/12/20(日) 01:58:03
ミス
0663デフォルトの名無しさん2009/12/20(日) 02:16:55
Process.Start メソッド (String, String, SecureString, String)
アプリケーションの名前、ユーザー名、パスワード、およびドメインを指定してプロセス リソースを起動し、リソースを新しい Process コンポーネントに関連付けます。
ttp://msdn.microsoft.com/ja-jp/library/sxf2saat.aspx
0664デフォルトの名無しさん2009/12/20(日) 04:03:13
このスレは色々勉強になるなぁ。先人の皆さんに感謝。
0665デフォルトの名無しさん2009/12/20(日) 04:18:08
>>657 です。

>>658
ファイルコピーは一連の処理の中の一部分になります。
メインのプログラムは、フォルダにアクセス権を持っていないユーザーで起動します。
(セキュリティの関係上、なんでもできるユーザーを作りたくないので)


>>659
>>663
>「別のユーザーで実行」してファイルコピーのアプリケーションを起動しています。
「別のユーザーで実行」をProcess.Start メソッドでやってみて
ダメだったので質問しました。説明が足りず申し訳ないです。

タスクスケジューラーに実行アプリケーションを登録しておいて、
ログオンしたままだと問題なく動作するのですが、
ログオフすると動作しませんでした。
(ユーザーとパスワードを指定しないとログオフしても問題なく動作するので、
タスクスケジューラーに登録したユーザーでアプリケーションを実行しているのに、
さらにその中で別のユーザーとしてアプリケーションを実行しているのが
悪いのかなと推測しています。)

>>660
runas は、対話型でパスワードの入力を求められるのでログオフした状態だと
どうすればよいのか分かりません。

0666デフォルトの名無しさん2009/12/20(日) 06:53:11
>>665

>>659 のページのやつでログオフして実験したけど、出来たよ。

最初は、失敗したんだが、呼び出される側のコピーするプログラムを
フルパスで書いたらちゃんと実行された。

管理者しかアクセス出来ないフォルダへアクセスできた。
0667デフォルトの名無しさん2009/12/20(日) 21:04:01
コントロールにカーソル合わせると表示される説明のだしかたを教えてください。
0668デフォルトの名無しさん2009/12/20(日) 21:27:00
Tooltip かな。
0669デフォルトの名無しさん2009/12/20(日) 22:08:30
>>>668
できますた トンです
0670デフォルトの名無しさん2009/12/21(月) 16:11:41
KeyedCollection でkeyに割り当てるプロパティを
2つ以上持つことは出来ますか?

クラスが
item.ID
item.Code
item.Name

とあったとき、
とName(String)とID(integer)の両方をKeyとして
コレクションの要素を取れるようなことはできるでしょうか?
0671デフォルトの名無しさん2009/12/21(月) 17:19:12
VB.NET(VS2005)にてDLLを作成しております。
DLLファイルの格納先を1つとし、
各exeがそのDLLを参照する、という運用をしたく、
GACを用いて実現する方法は調べてわかりました。
しかし、DLL更新時に使用するexe側の再コンパイルが必要な点や、
exe側が使用しているDLLのバージョンが判断しずらい点などを考慮して
その方法は採用しない事になりました。

DLLを各exeのローカルに配置するほうが良いかとも思うのですが、
『regsvr32を用いて登録すれば実現出来ないか?』という提案が出ました。
しかし実際に"regsvr32 xxx.dll"とすると、
『xxx.dllは読み込まれましたが、DllRegisterServerエントリポイントが見つかりませんでした。』
といったエラーメッセージが表示されます。
これはDLL側の設定に何か問題があるのでしょうか?

ご存知の方がいればご教示下さい。
0672デフォルトの名無しさん2009/12/21(月) 17:30:14
>>671
COMとして登録しても.NET間の呼び出しには使用できない。
またCOMとして登録する方法もregsvr32ではない。

アセンブリはexeのあるディレクトリか
exeのあるディレクトリからみてサブディレクトリに置く必要がある。
特定のネーミングルールに従うか、構成ファイルで指定する必要がある。

DEVPATHは開発用なのでお勧めしない。
これも構成ファイルにDEVPATHを使うための設定をする必要がある。
0673デフォルトの名無しさん2009/12/21(月) 17:31:12
.NETじゃDLLはそれぞれのexeごとにローカル配置が基本だぜ
app.configの<dependentAssembly>使えば厳密名付きdllならexeのサブフォルダ以外以外でも見に行けるな、一応
0674デフォルトの名無しさん2009/12/21(月) 17:53:52
>>670
collection(ID)とcollection(Name)どっちもで取りたい?
ならKeyedCollectionだけじゃ無理だね
06756712009/12/21(月) 19:04:47
>>672
>>673
レスありがとうございます。

>COMとして登録しても.NET間の呼び出しには使用できない。
>またCOMとして登録する方法もregsvr32ではない。
ということは、VB.NET2005で作成したDLLは
GACを使用しない限りEXEファイルと同一フォルダ
或いはサブフォルダに配置する以外ない、ということでしょうか?
0676デフォルトの名無しさん2009/12/21(月) 19:24:02
方法が全く無いわけではないが、
わざわざやる価値がないしトラブルの元。

ハードリンクでも作っとけw
0677デフォルトの名無しさん2009/12/21(月) 19:25:28
あいや、ハードリンクでもファイル上書きしたら意味ないか…
まあ、あきらめて個別に置くのが無難だよ。
0678デフォルトの名無しさん2009/12/21(月) 19:27:25
ああ、厳密名つけてコードベース指定する方法もあるが、
これも手間が増えるだけで余りメリットはないと思うよ。
0679デフォルトの名無しさん2009/12/21(月) 19:28:50
あと、厳密名で改竄防止出来るとかってメリットもよく言われたりするけど、
現実にはあまり意味ないから。
0680デフォルトの名無しさん2009/12/21(月) 20:06:40
VB2005+SQL Server 2005で開発を行っています。

次のような感じのコードでデータを一時テーブルに保存し、
別の場所でそれを読み出しています。

Dim sql as string = "select * into #tmp from hoge"
Dim cmd as New SqlCommand(sql,connection)
cmd.ExecuteNonQuery

上記の内容だと期待通りの動作をするのですが、
抽出条件を指定するためにwhereを追加すると動作しなくなります。

Dim sql as string = "select * into #tmp from hoge where id = @id"
Dim cmd as New SqlCommand(sql,connection)
cmd.Parameters.AddWithValue("id", 1)
cmd.ExecuteNonQuery

プロファイラで調べてみると パラメータを指定すると sp_executesql
を使用して sql を実行する様で、「ストアド内で作成した一時テーブルは
ストアド終了と共に削除される」という仕様に従い削除されているようです。

これを回避するいい手があれば教えてください。
出来ればグローバル一時テーブルは使用しない方向でお願いします。

よろしくお願いします。
0681デフォルトの名無しさん2009/12/21(月) 20:48:18
>>670
できる
自分でインデックス付きのItemプロパティを定義すればいいだけ
検索は線形検索でもいいしID専用のDictionaryを持ってもいいし
0682デフォルトの名無しさん2009/12/21(月) 21:20:21
Private Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hWnd As IntPtr, _
  ByVal hWndInsertAfter As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal cx As Integer, _
  ByVal cy As Integer, ByVal wFlags As Integer) As Integer

Private Sub SetWindow()
  SetWindowPos(p.MainWindowHandle, 0, 0, 0, 100, 100, &H40)
End Sub

として、XPでは問題なく動くのに、VistaやWindows7では、32ビット版でも全然動かないのですが、
どうしてなのでしょうか?

教えて下さい。よろしくお願いします。
06836712009/12/21(月) 21:21:41
>>676-679

ネットなどで調べてみても、共有化についてメリットよりも
デメリットのほうが多いという意見が多数でしたので、
使用しない方向で話を進めてみたいと思います。

ありがとうございました。
0684デフォルトの名無しさん2009/12/21(月) 22:00:42
>>682
とりあえずハンドルやポインタにはIntegerではなくIntPtrを使う
0685デフォルトの名無しさん2009/12/21(月) 22:22:49
返値確認して、GetLastError くらいしろよ。
0686デフォルトの名無しさん2009/12/21(月) 23:07:43
>>684-685
ありがとうございます。

GetLastErrorの使い方を調べて、拡張エラー情報が1400というのは分かったのですが、
それが何なのか、調べても見つけられませんでした・・・
できましたらどのように調べたら良いのか教えて下さい。お願いします。
0687デフォルトの名無しさん2009/12/21(月) 23:11:44
Error Lookup ってのに入れると、エラーメッセージを教えてくれる。

1400 は、「ウィンドウ ハンドルが無効です。 」だってさ。
0688デフォルトの名無しさん2009/12/22(火) 00:06:08
>>687
welt見つけられました。ありがとうございました。
0689デフォルトの名無しさん2009/12/22(火) 00:43:57
メモリ256MBの糞マシンでも
VS2008pro動きますか?
0690デフォルトの名無しさん2009/12/22(火) 01:09:24
C#だとabstractだの書かないと駄目なのがMustInheritとかになってて面白いな
概念より機能を重視か
0691デフォルトの名無しさん2009/12/22(火) 01:43:37
>>690
???
真面目に言ってる意味がわからんぞ
0692デフォルトの名無しさん2009/12/22(火) 02:51:20
マシン語でOK
0693デフォルトの名無しさん2009/12/22(火) 08:46:29
DOS画面でipconfigを入力したのと同じ機能をVB.NETで実現するにはどうすれば
0694デフォルトの名無しさん2009/12/22(火) 09:40:04
ipconfigして出力をリダイレクト
0695デフォルトの名無しさん2009/12/22(火) 10:23:25
>>693

VB.net IPアドレスを取得するには

でググル
0696デフォルトの名無しさん2009/12/22(火) 10:36:23
ネットワークインターフェイスを列挙して色々する必要があると思うよ。
Vistaや7とかでうまく動くかも確認した方がいい。
0697デフォルトの名無しさん2009/12/22(火) 10:54:35
VB.NET 2003のツリービューコントロールについてご存知の方いましたら
教えてください。

ツリーノードのForeColorで色を変えているのですが
選択状態のときは背景色、青、前景色白になってしまいます。
選択状態のときの前景色もForeColorで指定した色に
したいのですが難しいでしょうか?

よろしくお願いいたします。
06986972009/12/22(火) 10:56:56
>>693
この辺じゃないでしょうか?
http://dobon.net/vb/dotnet/internet/ipglobalproperties.html
0699デフォルトの名無しさん2009/12/22(火) 13:22:17
>>694-698�d
0700デフォルトの名無しさん2009/12/22(火) 14:19:49
VB2005で開発しています。

D&Dでエクスプローラに対してファイルコピー、移動等を行う際、
ドロップ先のフォルダ・パスのみを取得する方法はありませんか?
D&D直後は一覧に処理する内容をまとめておき、最後に開始ボタンがクリックされた際に、
まとめてファイルのコピー、移動を行わせたいと考えています。

自分なりに検索してみたところ、ICopyHookとかいう高度な?処理が
必要なのではないか、というところまで確認しました。
ただ当方英語がチンプンカンプンなものでMSDNとか見てもさっぱりです。
日本語で解説されたサイトや書籍をご存知の方がいましたら、そちらについても
教えていただければ嬉しいです。
0701デフォルトの名無しさん2009/12/22(火) 14:24:46
どなたかご存知でしたら知恵をお貸しください。
やりたいことはVB.NET2008,PowerPoint2003で、スライドショーの遠隔(同期)操作です。
WebBrowserコントロール上で展開しているPowerPointのスライドショーがあるとき、
スライドショーで発生したイベント(例えばボタンのクリックなど)をフォーム側で取得、
また、イベントを発生させる、といったことはできるのでしょうか?

開始や終了であればPowerPoint.Applicationクラスのイベントで取得できるのですが……
0702デフォルトの名無しさん2009/12/22(火) 16:24:26
SendMessage
0703デフォルトの名無しさん2009/12/22(火) 16:35:10
>>700

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25960&forum=7

>ファイルの存在をチェック して、そのファイルの属性を取得 して、
>System.IO.FileAttributes.Directory 属性があれば、ディレクトリ (フォルダ)
>
>System.IO.Directory.Exists()
>System.IO.File.Exists()
0704デフォルトの名無しさん2009/12/22(火) 16:44:17
>>701

VB.net SetWindowsHookEx
07057012009/12/23(水) 23:31:29
レスありがとうございます。
とりあえずは、調べて試してみようと思います。
0706デフォルトの名無しさん2009/12/24(木) 12:17:38
DirectCast(sender, TextBox).Select()
DirectCast(sender, TextBox).SelectionStart = 0

VB2005で開発しています。
テキストボックスとボタンのフォーカス移動にて
問題が発生したので教えてください。


テキストボックスからtabキーで、
タブインデックスで次に指定しているボタンへフォーカスを動かす際に、
ボタンへフォーカスが移動しているのに、
テキストボックス内にキャレット(カーソル)が残っています。
キャレットが出た理由・消す方法を教えていただけませんか。

tabキー押下後にEnterを押すと、ボタン押下の動作をするのですが、
キー入力を行うと、テキストボックスに入力したキーが表示され、
フォーカスがテキストボックスへ移動してしまいます。

処理のルートとして、 
Handles TextBox7.Validating の動作としては、データの取得を行い、
異常ルート:
 DirectCast(sender, TextBox).Select()
 DirectCast(sender, TextBox).SelectionStart = 0
正常ルート:
 取得したデータを表示


DirectCast(sender, TextBox).SelectionLength = 0
DirectCast(sender, TextBox).DeselectAll
を正常ルートの最後に配置してみてもだめでした。
よろしくお願いします。
07077062009/12/24(木) 18:24:19
自己解決しました。
ここに提示した情報だけでは、結果は出せないような情報でした。
すみません。

tabキーを押下した際に、
ActiveControl.Name でアクティブなオブジェクトを取得してみたところ、
Enabled = false になっている項目が、選択されている場合に発生していたようです。

ボタンを連打した場合の対処で、
処理中はオブジェクトを一時的にEnabled=Falseとして、
処理終了後にEnabled=Trueに復帰させるという処理を行っていたのが原因でした。
テキストボックスからEnabled=Falseなオブジェクトをアクティブなオブジェクトとして
設定をした場合に発生するようです。

対処としては、一時的なEnabled処理のオンオフ後にフォーカスを設定する。
で解決しました。。。
0708デフォルトの名無しさん2009/12/24(木) 19:09:47
現在の時間が午前6時〜午前8時までの間というのを判断するには
どんな形で計算すれば良いでしょうか?
0709デフォルトの名無しさん2009/12/24(木) 19:14:56
宿題は宿題スレにどうぞ
0710デフォルトの名無しさん2009/12/24(木) 19:58:17
できた
0711デフォルトの名無しさん2009/12/24(木) 22:06:47
俺は中卒だからよく分からんけどさ、
宿題ってそんなもんが出るのか。
独学の方が早くね?
0712デフォルトの名無しさん2009/12/24(木) 22:33:50
やる気がある奴ならな
0713デフォルトの名無しさん2009/12/24(木) 22:52:41
グループボックス内にたくさんあるラジオボタンのどれにチェックが付いているか調べるにはどうしたらいいですか?
0714デフォルトの名無しさん2009/12/24(木) 22:58:11
禅問答でもしたいんだろうか?
真面目な話、「どれにチェックが付いているか調べ」ればいいんじゃないの?
0715デフォルトの名無しさん2009/12/24(木) 23:29:42
1000個くらいあったら大変じゃん
0716デフォルトの名無しさん2009/12/24(木) 23:56:58
ループにすればいいだろ・・・
0717デフォルトの名無しさん2009/12/24(木) 23:57:40
そこまでアホみたいに大量なら、
チェックされた瞬間にどのボタンをチェックしたかを変数に入れときたくなるな。

もっとも1000個ぐらいじゃたとえ総当りしても対して時間はかからなさそうだけど
0718デフォルトの名無しさん2009/12/24(木) 23:58:05
設計見直せよ
1000個でまとまったラジオボタンをユーザがどう使うんだ?
C#のスレでも同じように数千個のラベルがどうとかってレスが以前あったな
0719デフォルトの名無しさん2009/12/25(金) 00:40:20
VisualStudioスレかここで見た気がする。
0720デフォルトの名無しさん2009/12/25(金) 15:38:37
VB.NET2005からSQLServerへ接続するプログラムを作成しています。
その中に、カーソルを定義し、カーソルにて取得した結果を
データセットに格納するという処理があるのですが、
カーソル定義の際に指定した列以外に『ROWSTAT』という列が
データセット内に存在しています。
内容を参照するとDBNullとなっているのですが
この列は何なのでしょうか?
また当該列をデータセットに含めない方法はあるのでしょうか?
0721デフォルトの名無しさん2009/12/25(金) 18:18:17
VB.NET Express で帳票作成を行う場合についての質問です。

このバージョンにはGUIでの帳票作成機能が含まれていないので、
以下の「印刷プレビューを表示する」の、
Private Sub pd_PrintPage(ByVal sender As Object, _
ByVal e As System.Drawing.Printing.PrintPageEventArgs)
の関数の内部に図形や文字を描くコードを記述する方法で、帳票機能を
実現するしかないと思うのですが、そこで、以下の「折り返して描画する」の
コードを記述しようとしたのですが、うまくいきませんでした。
Dim g As Graphics = PictureBox1.CreateGraphics()
の部分を書き換えたら良いのだろうと思うのですが、どのように
記述したらよろしいのでしょうか?

印刷プレビューを表示する
http://dobon.net/vb/dotnet/graphics/printpreviewdialog.html
折り返して描画する
http://dobon.net/vb/dotnet/graphics/drawstring.html#rect
0722デフォルトの名無しさん2009/12/25(金) 18:38:59
>>721
どう「うまくいかない」のかが分からないので答えようがないです
0723デフォルトの名無しさん2009/12/25(金) 18:53:44
>>722
文字列そのものがプレビューに表示されるように出来ないのです。
プレビューには、画像のみが表示されています。
私が書いたコードは以下の通りです。やりたいことは、画像と
矩形の文字を表示させることです。

Private Sub pd_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
' 以下4行は「印刷プレビュー」のコピペ
Dim img As Image = Image.FromFile("c:\test.bmp")
e.Graphics.DrawImage(img, 0, 0, img.Width, img.Height)
e.HasMorePages = False
img.Dispose()

' これより下は「折り返して描画する」のコピペ
Dim g As Graphics = PictureBox1.CreateGraphics()
Dim drawString As String = "智に働けば角が立つ。情に棹させば流される。" _
+ vbCrLf + "意地を通せば窮屈だ。とかくに人の世は住みにくい。"
Dim fnt As New Font("MS ゴシック", 12)
Dim rect As New RectangleF(10, 10, 100, 200)
g.FillRectangle(Brushes.White, rect)
e.Graphics.DrawString(drawString, fnt, Brushes.Black, rect)
fnt.Dispose()
g.Dispose()
End Sub
0724デフォルトの名無しさん2009/12/25(金) 19:27:33
>>723
その後半のgは関係無いよね
それとHasMorePageの意味分かってる?
0725デフォルトの名無しさん2009/12/25(金) 19:47:44
>>724
そうです。このコードだと、後半のgが関係ないで終わって
しまっているので、そのgを、印刷プレビューに関連付けたいのです。

HasMorePageの意味は、次のページに関する指定だと思いますが。
0726デフォルトの名無しさん2009/12/25(金) 20:25:35
ゴメンHasMorePageの件は勘違い
その後で描いても問題無かった
つか試してみたらちゃんと描画されたんだけど…
0727デフォルトの名無しさん2009/12/25(金) 21:04:24
Expressは2005?2008?
0728デフォルトの名無しさん2009/12/25(金) 21:49:55
関連付けっつーか、e.Graphics使えよって話
0729デフォルトの名無しさん2009/12/25(金) 22:26:52
htmlの表からデータを取得したいのですが、それようの方法があったら教えてください。
縦と横の項目名を指定するとそのデータが得られるという方法はないでしょうか?
0730デフォルトの名無しさん2009/12/25(金) 22:28:28
DOM舐めるしかない
それ以上はHTMLの知識の問題なのでスレ違い
0731デフォルトの名無しさん2009/12/25(金) 23:49:31
レスどうもです。
HTMLを解析する方法でやってみます。
0732デフォルトの名無しさん2009/12/26(土) 00:39:34
TextBox.Textに大きなString(100,000行ぐらい)を放り込んでるんですが重い・・・
多分全部分描写してるのが原因だと思うんですが、これを回避するような方法ってありますか?
0733デフォルトの名無しさん2009/12/26(土) 00:47:42
・数千個のラベルがうんたらかんたら
・数千個のラジオボタンがうんたらかんたら
・100000万行のStringをTextBoxにうんたらかんたら ← New!
0734デフォルトの名無しさん2009/12/26(土) 00:57:15
画面内に収まる分だけ描いとけ
0735デフォルトの名無しさん2009/12/26(土) 01:08:45
class というのでdllファイルを作ったのですが、使い方がよくわからないのですが
aaa.dllというものの中に、Functionが複数入っていて、
最終的に一つの結果を得たいのですが、それを使う際には参照設定をして
それ以外ではどんな風に書けば良いでしょうか?
(複数の関数というのはそれぞれは単体で外部からは使わなくて
1つのメインの関数が他の関数を使って結果を得るようになっています)

Dim MyFunc As New aaa
と定義して
res = aaa.hogehoge(hoge1,hoge2)
とすると結果は得られるのですが、いまいち正しい方法のような感じがしません。
普通の関数やAPIなどの時のように
res = hoge(hoge1,hoge2)
のように書ける方法があれば教えて頂きたいです。
0736デフォルトの名無しさん2009/12/26(土) 01:10:11
なんというVB脳
0737デフォルトの名無しさん2009/12/26(土) 01:18:41
>>735
public classじゃなくてpublic moduleにすればそういう使い方ができるよ。
0738デフォルトの名無しさん2009/12/26(土) 01:32:03
resをretにすれば動く
0739デフォルトの名無しさん2009/12/26(土) 05:03:10
.net frameworkって3.x spが入ってれば1.0や2.0削除してもいいの?
0740デフォルトの名無しさん2009/12/26(土) 08:04:16
それぞれ対応したバージョンが必要
0741デフォルトの名無しさん2009/12/26(土) 08:04:59
だったと思う
07426972009/12/26(土) 09:44:23
基本は上位のバージョンがあればいいでしょ
0743デフォルトの名無しさん2009/12/26(土) 09:46:58
ハードディスクの中のすべてのフォルダとファイルを列挙するプログラムは?
0744デフォルトの名無しさん2009/12/26(土) 11:22:47
>>742
そう思うならやってみろ。そして泣け。
0745デフォルトの名無しさん2009/12/26(土) 12:06:56
>>726
文字の描画は、PictureBox1ではなく、帳票の中に行いたいのです。

>>727
2005を使用しています。

>>728
g.〜 を e.Graphics に変換すると帳票の中に印刷出来ました。
解決しました。ありがとうございます。
0746デフォルトの名無しさん2009/12/26(土) 13:27:02
Excel出力に関する質問です。
Excel出力に関して調べていると、以下のサイトに方法が載っていましたが、
これは、新規にファイルを作成し、そこに表示する方法です。
http://www.geocities.jp/i_love_balard/myhome/dnet/excel1.html
出来れば、あらかじめひな形を準備しておいて、それを開いて該当箇所に
データを表示させるという方法を行いたいのですが、そのような方法は
可能なのでしょうか?
サイトのコードを見る限りでは、Excelファイル名の指定を行う箇所が
ありませんので、不可能のようにも思えますが・・・
0747デフォルトの名無しさん2009/12/26(土) 13:29:24
可能。WorkBooks.Open でファイルを開けばいい。
0748デフォルトの名無しさん2009/12/26(土) 14:38:38
>>743
このあたりの情報を参考にして、自分の好きなようにカスタマイズ
ttp://dobon.net/vb/dotnet/file/getdirectories.html
ttp://dobon.net/vb/dotnet/file/getfiles.html
ttp://dobon.net/vb/dotnet/file/getlogicaldrives.html
07497462009/12/26(土) 14:39:42
>>747
ありがとうございます。Excelファイルの処理が出来ました。
0750デフォルトの名無しさん2009/12/26(土) 17:00:58
文法について質問です。

Dim hash As [String] = [String].Empty

なる記述をWebサイトで見つけました。
この [ ] の記述は何を表しているんでしょうか。

よろしくご教示お願いします。
0751デフォルトの名無しさん2009/12/26(土) 17:05:18
ならそのWebサイトを貼れよ
0752デフォルトの名無しさん2009/12/26(土) 17:12:29
ここです、よろしくお願いします

tp://wednesdaymoon.net/kzweb/articles/vbnet/article.aspx?articleid=92
0753デフォルトの名無しさん2009/12/26(土) 17:13:44
ぐぐってみたら、このサイトがヒットした。
http://wednesdaymoon.net/kzweb/articles/vbnet/article.aspx?articleid=92
下の方の「使い方は以下の通りです。」の欄に表記されているようだ。
ただし、質問者が見たサイトであるという確証はない。
07547502009/12/26(土) 17:13:47
すいません
>>752は>>751宛てです

よろしくお願いします。
0755デフォルトの名無しさん2009/12/26(土) 17:28:50
ヘルプで
Visual Basic 言語のキーワード
を見れ
0756デフォルトの名無しさん2009/12/26(土) 17:42:30
かんすー
07577502009/12/26(土) 17:59:36
>>755
ありがとうございます。
HELPで調べてみました。

Visual Basic 言語のキーワードから
> 次のキーワードは予約済みであり、プログラミングの要素 (変数やプロシージャなど) の名前として使用でき
> ません。ただし、名前を角かっこ ([ ]) で囲むと、この制約を回避できます。詳細については、「宣言された要素
> の名前」の「エスケープされた名前」を参照してください。

「宣言された要素の名前」の「エスケープされた名前」から
> 通常は、Visual Basic によって予約されているキーワード (Case や Friend など) と一致する名前を要素名
> として使用することはできません。ただし、名前を角かっこ ([ ]) で囲んで、エスケープされた名前として定義
> できます。角かっこによってあいまいさがなくなるため、エスケープされた名前では、Visual Basic のキーワード
> と一致する名前を使用できます。定義した名前を後でコード内で使用するときも、同じように角かっこで囲みます。

[ ]で囲むと予約語でもエスケープされてその名前を変数名やプロシージャなんかで使用できるということですね。
全然知りませんでした。
ありがとうございます。

でもそうした場合、Webサイトの例のStringはStringとして使われるべきで、それ以外に利用しようが無いように見えます。
Dim hash As String = String.Empty とするのが普通に正しい気がします。
私の認識は間違っていますでしょうか?

>>756
??
もう少しヒントください orz
0758デフォルトの名無しさん2009/12/26(土) 18:04:58
そう書いてる奴に聞けよ。
0759デフォルトの名無しさん2009/12/26(土) 18:10:43
Stringは予約語の他にSystem.Stringクラスがある
[]を使えばこのクラス名を指すことになる
予約語Stringは単純にSystem.Stringのエイリアスに過ぎないが
なんで予約語の方を嫌ったのかは書いた奴に聞けとしか言い様がないな
07607502009/12/26(土) 18:28:47
>>759

なるほどです。
分かりやすい解説、ありがとうございました。

>>758 >>759

> 書いてる奴に聞け

なるほどごもっともです。
ですが、私のあずかり知らぬ世間一般の論理が其処にあるのかな・・とも思いましたので
こちらで質問させていただいた次第です。

--
皆さん、ご親切に導いてくださりありがとうございました。
感謝いたします。
0761デフォルトの名無しさん2009/12/26(土) 21:05:42
>>737
それはどんなふうに書けばよいでしょうか?
試したところ
Unable to find an entry point named aaa in DLL module1.dll.
というエラーが出てしまいました。
0762デフォルトの名無しさん2009/12/27(日) 18:15:06
少々質問です。

エクセルのような項目を使いたいのですが何かありませんか?
0763デフォルトの名無しさん2009/12/27(日) 18:17:34
DataGrid
0764デフォルトの名無しさん2009/12/27(日) 18:54:11
>>748
おk
0765デフォルトの名無しさん2009/12/27(日) 19:13:16
>>763
ありがとうございます。

次にテキストボックスとボタンを作成し、テキストボックスにあるフォルダのアドレスからフォルダ内のファイルを読み込んできて、
ファイル名やファイルサイズ等の情報をDataGridに表示させたいのですが、このような事に関する分かりやすく紹介しているサイト等はありませんか?
もしくは説明していただけるようでしたらお願い致します。
0766デフォルトの名無しさん2009/12/27(日) 19:18:28
>>765
「表示するだけ」ならlistviewが一番簡単だと思うけどな
0767デフォルトの名無しさん2009/12/27(日) 19:21:22
向いてないからあきらめろ。
0768デフォルトの名無しさん2009/12/27(日) 19:22:22
もう少し自分の手足を動かしてから質問しろよ、と思う。
0769デフォルトの名無しさん2009/12/27(日) 19:23:15
>>765
もっと基礎的な所から勉強したほうが良いかと
http://www.google.co.jp/search?q=vb.net+%93%FC%96%E5
0770デフォルトの名無しさん2009/12/27(日) 19:37:48
>>765
テキストボックスに入力されたアドレスの解析(ファイル, フォルダ, ドライブ, etc.)とか
それらの存在チェックとか面倒だろうし、TreeViewでフォルダを対象にして
選択されたものをListViewに表示するだけでいいんじゃね
フォームの左側にTreeView、右側にListViewとかはまぁ結構ありきたりだけど
0771デフォルトの名無しさん2009/12/27(日) 19:40:04
正直に課題の内容を書けば、教えてくれる奴が居るかもしれないぞ。
0772デフォルトの名無しさん2009/12/27(日) 19:50:02
あぁいや、色々すいません。
課題じゃなくここ半年ちょっとの間、プログラミング一切せずにいたらなんか出来てた事がまったく分からなくなってしまっていて、
ちょっとヤバイと思って丁度フォルダ内のファイルを管理するソフトが欲しかったものでちょっと慣らしに作ろうと思ったもので。

根本的にDataGridの存在自体を忘れていたのがちょっとまずくて質問しましたが、
もう暫く自分で調べて頭動かしてから分からなければきまた質問させてもらいます。

失礼しました。
07736972009/12/27(日) 20:03:04
半年のブランクでそこまで落ちぶれるものなのか
0774デフォルトの名無しさん2009/12/27(日) 20:07:00
3月まで仕事で制御ソフトやらPOSやら作ってたんですがね・・・。
さすがに自分でも恐いレベルに何も出来なくなってます。
0775デフォルトの名無しさん2009/12/27(日) 20:19:51
日常で全角英文字を使う人が作ったソースは使いたくない。
という、偏見を持ったプログラマーがココに居ます。
0776デフォルトの名無しさん2009/12/27(日) 20:24:20
他の言語でプログラミングしながら半年程度ならそんなに腕も落ちないだろうが
完全にプログラム以外の仕事を半年やってればまぁ分からなくもない
0777デフォルトの名無しさん2009/12/27(日) 20:25:48
コーダーならそんなもん。
0778デフォルトの名無しさん2009/12/27(日) 20:33:22
日本語読みのローマ字変数(kekkaとか)だけは勘弁
0779デフォルトの名無しさん2009/12/27(日) 20:41:09
全角英文字を使ってる時点でプログラマかどうかも怪しい
0780デフォルトの名無しさん2009/12/27(日) 21:12:42
字面を暗記しただけでプログラムが書けた気になってる人多いよね
0781デフォルトの名無しさん2009/12/27(日) 23:40:11
プログラムが書けるとか出来るとかはこのスレに限らず
議論の対象になることはたまにあるが
それらに厳密な定義も基準もないわけで
本人がそう思えばそれまでだろ
そんなの議論したって水掛け論になるだけ
0782デフォルトの名無しさん2009/12/27(日) 23:43:32
誰も議論なんてしてない。
0783デフォルトの名無しさん2009/12/27(日) 23:56:57
propertyitemsでexifの撮影日読んでるんだが、exif情報が無いか
壊れてるファイルでGDI+で一般的なエラーとか出るんだが、現在は
tryで無視してるけどそのエラー回避する方法あるかな?
watchで見るとerrorcodeとかあるんだが、それ指定するとそんなものはないと
言われるし
0784デフォルトの名無しさん2009/12/28(月) 00:58:22
>>783
どんなコード書けば「一般的なエラー」なんて例外が出るのか知らんけど、
普通にMSDNライブラリのPropertyIdListの解説にあるとおりじゃないの?

----
イメージにプロパティ項目がないか、イメージ形式でプロパティ項目がサポートされていない場合、PropertyIdList プロパティは、空の配列 (長さが 0 の配列) を返します。
----

しかし、「……んだが」って語尾を口語で使うのはただでさえ爺臭いのに、
重ねて使うとさらに効果抜群だねw

思うんだが、2chだってもう10年も歴史があるわけで、いい加減ガキ臭い訳のわからん
2ch風の言い回しを無理に使うの止めたらどうかなと思うんだけど、
少しもそういう空気が醸成される雰囲気がないのが日本のネット文化の痛いところだなあ。
つくづく。
0785デフォルトの名無しさん2009/12/28(月) 01:24:35
ネットスラングってアメリカのほうが色濃いと思うんだが
こうですか?わかりません><
0786デフォルトの名無しさん2009/12/28(月) 04:16:16
じつにくだらないことで・・・・これが、若さか・・・
0787デフォルトの名無しさん2009/12/28(月) 11:43:48
2ch 如きで「日本のネット文化」を語り始める痛さについては
触れてはならないんですかね?
0788デフォルトの名無しさん2009/12/28(月) 12:46:35
思うんだが、「……んだが」って語尾を口語で使うのはただでさえ爺臭いんだが
重ねて使うとさらに効果抜群だねw
0789デフォルトの名無しさん2009/12/28(月) 16:31:06
>>1をよく読もう。
ここは質問スレだぞ。
0790デフォルトの名無しさん2009/12/28(月) 17:24:59
帳票部分を Access で代用する方法を考えています。
ADO.NET にて、(テーブルとレポートオブジェクトなどを作って)
あらかじめ準備しておいた mdb ファイルに接続し、
テーブルの内容を変更し、VB.NETからの操作で、Access(もしくは
Accessランタイム)を起動し、あるレポートオブジェクトを開く
という事は可能なのでしょうか?
帳票1種類でmdbファイルを1つ準備しておいて、マクロでAutoexecを
使用して起動時に自動的にレポートオブジェクトを開く以外に方法が
無いかが気になって質問してみました。
0791デフォルトの名無しさん2009/12/28(月) 17:59:09
コンパイル時に、constAと書いた部分をa(0)に自動で置換するというような事はできないでしょうか?

今後、a(1)やa(0,0)に簡単に置き換え可能なようにして置きたいのですが・・・
0792デフォルトの名無しさん2009/12/28(月) 18:01:57
C#ならできます
0793デフォルトの名無しさん2009/12/28(月) 20:08:17
>>790
できるよ。Access がインストールされてれば、Access.Application で。
ランタイム版のみだとやったことないなぁ。
0794デフォルトの名無しさん2009/12/29(火) 08:02:55
>>793
VB.NET側で、Accessのmdbファイルのどのレポートオブジェクトを
開くかを指定はできますか?
0795デフォルトの名無しさん2009/12/29(火) 09:04:19
できるよ。これは VBAの例だけど、同じようにVB.NETからでも呼べる

http://www.happy2-island.com/access/gogo03/capter60005.shtml
0796デフォルトの名無しさん2009/12/29(火) 10:31:45
>>795
VB.NETから呼ぶ場合の具体的なコードをお願い致します。
そのようなサンプルサイトがヒットする検索キーワードの案内でも結構です。
0797デフォルトの名無しさん2009/12/29(火) 10:39:50
まず、自分で探してからにしような。
0798デフォルトの名無しさん2009/12/29(火) 11:03:28
>>797
探して見つけ切れなかったから質問してるのですよ。
ADO.NET関連など、テーブルの操作ばかりがヒットしてしまうのです。
0799デフォルトの名無しさん2009/12/29(火) 11:05:38
そうか。ググったら2秒で見つかるけどな。
0800デフォルトの名無しさん2009/12/29(火) 11:06:43
自己解決しました。
0801デフォルトの名無しさん2009/12/29(火) 11:08:30
じゃ、紹介しなくていいな。
0802デフォルトの名無しさん2009/12/29(火) 11:16:11
>>800は質問者じゃないぞ。勝手に書くな
0803デフォルトの名無しさん2009/12/29(火) 11:18:06
2秒もかかる検索って、相当重い処理じゃね?
通常は0.数秒の世界だと思うんだが。
0804デフォルトの名無しさん2009/12/29(火) 11:21:14
欲しいものは、これのAccessバージョンのものです。
(サイトは、Excelを起動するものです。)
http://hanatyan.sakura.ne.jp/dotnet/Excel01.htm
0805デフォルトの名無しさん2009/12/29(火) 11:22:28
確かにそうだな。もう一度やってみたら

|| 検索結果 約 2,800 件中 1 - 10 件目 (0.07 秒)

だった。
0806デフォルトの名無しさん2009/12/29(火) 13:24:57
>>805
その検索を行った際のキーワードを教えて下さい。
0807デフォルトの名無しさん2009/12/29(火) 13:29:10
これを書いたらmdbファイルのあるレポートのみを指定して印刷
することが出来るというところまでわかりました。
このコードだとAccessを終了してしまうのですが、Accessを終了
しないままで処理を終える事は可能なのでしょうか?
(印刷プレビューを確認するだけの処理です)

Dim access As Object
access = CreateObject("Access.Application")
access.OpenCurrentDatabase("C:\test.mdb")
access.DoCmd.OpenReport("レポート名称未設定1", 0 )
0808デフォルトの名無しさん2009/12/29(火) 13:40:42
acViewPreview を指定すればいいんじゃないの?
0809デフォルトの名無しさん2009/12/29(火) 13:47:26
>>808
それでも終了してしまいます。
acViewPreviewは値が2なので、以下のように記述しても終了してしまうのです。

Dim access As Object
access = CreateObject("Access.Application")
access.OpenCurrentDatabase("C:\test.mdb")
access.DoCmd.OpenReport("レポート名称未設定1", 2 )
0810デフォルトの名無しさん2009/12/29(火) 13:49:20
「VB.NET Access レポート」で検索してみても、こんなサイトしかヒット
しないのです。
http://oshiete.searchina.ne.jp/qa958987.html
http://okwave.jp/qa/q958987.html?order=&by=
0811デフォルトの名無しさん2009/12/29(火) 13:53:26
その access 変数をフォームの Private スコープにしてみるとどうなる?
0812デフォルトの名無しさん2009/12/29(火) 14:03:20
>>811
それをやってみても、同じでした。
私なりにいろいろ見てみたところ、タスクマネージャで確認してみると、
プロセスは残っていました。
そこで、表示モードかと思い、以下のコードを追加で書いてみると、
うまくいきました。

access.Visible = True

もうひとつだけ、確認したいのですがこのコードのみでは、後処理の
問題が残ると思います。
ちゃんと以下のようなコードを実行する必要があると思うのですが、
ユーザがAccessの右上の×印をクリックして終了する場合は、
必要はないと考えても良いのでしょうか?
(最後のNothinはどこかで処理を含める必要がありそうな気が
するのですが・・・)

access.CloseCurrentDatabase()
access.Quit()
access = Nothing
0813デフォルトの名無しさん2009/12/29(火) 14:05:54
COM参照が残ってれば、Marshal.ReleaseComObject() する必要があるけど、
ユーザーが Access を閉じてくれたんならいらない。
0814デフォルトの名無しさん2009/12/29(火) 14:10:41
>>813
素早い回答ありがとうございます。
目的のものを作ることが出来ました。ありがとうございました。
0815デフォルトの名無しさん2009/12/30(水) 14:21:32
なんじゃこりゃあ!!何故急にスレが伸びる?
0816デフォルトの名無しさん2009/12/30(水) 17:16:04
そうか?前から平均して勢い20前後だったと思うけど
0817デフォルトの名無しさん2009/12/31(木) 19:07:39
エクスプローラーからファイルをドラック、ドロップして
リストボックスにファイル名を登録するようにしているのですが、
複数のファイルを同時にドロップした時に
複数選択にした順番で登録したいのですが、
順番が変わってしまいます。
登録はForEachで配列を順に登録しているだけなのですが、
選択した順番で処理する方法があったら教えて頂きたいです。
0818デフォルトの名無しさん2009/12/31(木) 19:13:19
エクスプローラを使ってる限り無理
そもそも選択順の情報自体が存在しない
0819デフォルトの名無しさん2009/12/31(木) 21:53:27
しかし、コード書いててそれぐらい分かんないのがむしろ不思議だw

ちなみに、プログラムにファイル名が通知されるときの順番は、
ドラッグ&ドロップを開始する時、マウスポインタがポイントしていたファイルを
先頭に円筒ループするような順番となるから、ユーザー側では(その気になれば)
順番を制御することはできたはずだと思った。
0820デフォルトの名無しさん2009/12/31(木) 22:47:12
自分が知らない方法があるんじゃないか?
って思って調べる/訊くてのなら、不思議じゃないべ。

そういう疑問を解決することで、より知識が増える/理解が進むものだろう。

「出来ない」って言われて、「そうですか」で終わるのなら進歩はないだろうけど。
0821 【大凶】 【1523円】 2010/01/01(金) 00:58:29
しかし縦書きでも左から右に書いてくれるとは思わなかったw
0822デフォルトの名無しさん2010/01/01(金) 04:53:11
>>821
大凶おめでとう
0823デフォルトの名無しさん2010/01/01(金) 19:21:55
LinearGradientBrushってcolor.blueみたいな名前で定義出来る
色でないとダメ?
普通にカラーダイアログで拾った色使うとワケワカな動作するんだが…

黒→白&左→右で例えると
1列目は白(ここですでにおかしい)2列目が黒でそこから右に向かって
白くグラデしていくという
つまり本来のグラデの右端に来るべきものがある一定の幅左側に来て
しまっているという
斜めだともっとおかしい…つかその白い部分の幅が1文字分〜対角線
までだったり安定しないし
エラーは何も出さないけどどうなってるものやら
0824デフォルトの名無しさん2010/01/01(金) 19:33:03
>普通にカラーダイアログで拾った色使うとワケワカな動作するんだが…
絶対にこれが思い込み。
そんなわけねえじゃん。
単にLinearGradientBrushの開始点と終了点の問題に決まってる。
こんなの質問する前に自分で確認しろよ。
0825デフォルトの名無しさん2010/01/05(火) 00:32:20
ZIPを操作するプログラムは良く見かけるけど
LZHやRARやGCAはどうすれば。
さらに、Q4やMAGなどの画像をVBで見るにはどうすれば。
0826デフォルトの名無しさん2010/01/05(火) 01:30:35
それぞれ添付されている資料(SDKとかAPI.txtとか)を参考に作ればいいだけでしょ
CやC++で書かれていようがVBとそんなに使い方が違うこともない
0827デフォルトの名無しさん2010/01/05(火) 09:17:27
まあC用のライブラリをDllImportして使うだけだな
C読めないとか論外
0828デフォルトの名無しさん2010/01/05(火) 09:42:26
あの手の奴って大体同じインターフェイスもってなかったっけ?
0829デフォルトの名無しさん2010/01/05(火) 10:38:54
>>825
SPI直接呼ぶのが面倒ならラッパー使えば?
ttp://elku.at.infoseek.co.jp/memo/spi_com.html
0830デフォルトの名無しさん2010/01/05(火) 10:41:14
COMもたいがい面倒だろ
レジストリ弄らないといけないし
08318252010/01/05(火) 11:19:07
>>826-830
�d
0832デフォルトの名無しさん2010/01/05(火) 12:41:17
VB2008で、http://support.microsoft.com/kb/319524/ja
を参考にフックを触り始めたのですが、
疑問に思うところがあったので質問させていただきます。

SetWindowsHookExの第4変数wParam に渡す値ですが、
MSDNのリファレンスでは AppDomain.GetCurrentThreadId は旧式だから
Thread.ManagedThreadId を使え、とのこと。
そこでThreading.CurrentThread.ManagedThreadIdを試してみましたが、
返ってくる値が GetCurrentThreadId とは違うようです。
適切な代替手段はあるのでしょうか、ありましたら方法をお願いします。
0833デフォルトの名無しさん2010/01/05(火) 19:36:41
マネージコードからは原則「取得してはいけない」決まりになってるらしい
どうしても必要ならWin32APIのGetCurrentThreadId呼べるけど
そんなことしたら本末転倒だから警告抑止して古いの使い続けた方がマシだと思う
0834デフォルトの名無しさん2010/01/05(火) 22:19:44
>>830
いまどきは、Reg-Free COM とか、分離 COM って呼ばれるモノがあってな・・・。
0835デフォルトの名無しさん2010/01/06(水) 00:06:12
みなさんこんばんは。
VB2005Proにある「ReportViewer」と「CrystalReportViewer」は
通常はどちらを使用すればよろしいのですか?
また用途や機能の違いなどもご教示いただければ幸いです。
よろしくお願いいたします。
0836デフォルトの名無しさん2010/01/06(水) 00:28:39
ReportViewerはおまけ。CrystalReportViewerも機能制限版。
あんまり使うもんじゃない。
0837デフォルトの名無しさん2010/01/06(水) 09:23:16
>833
レスありがとうございます。
調べていたらそれらしい記述にぶつかりました。
警告だけなので無視していきます。
0838デフォルトの名無しさん2010/01/06(水) 15:08:32
>>833 >>837
↓の下から2番目のレスには「API 使う方が良いかな」と書き込んでいる人がいるけどどうかな?
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28860&forum=7

>警告を無視して AppDomain のメソッドを使うか、API 関数を使うかはその人次第ですが、AppDomain.GetCurrentThreadId のドキュメントにネイティブの ID を取得できるとは書いていない以上 API 使う方が良いかな。
>少なくともそのスレッドがメインスレッドである限り、恐らく問題は発生しないでしょうし。

おれもAPIのSetWindowsHookExに渡すからGetCurrentThreadIdを使ってるけど・・・
0839デフォルトの名無しさん2010/01/06(水) 16:41:05
どっちにしろ本当はやっちゃいけないことをやってるんだから一緒
将来バージョンのWindowsや.NETで仕様が変わったりして
本当にマネージコードからは使えなくなったときには
AppDomain.GetCurrentThreadIdは削除されるだろうから気付きやすいかもしれない
0840デフォルトの名無しさん2010/01/06(水) 19:05:50
>>836
ありがとうございます。
ではみなさんは帳票類は何で作っているのですか?
PrintDocument??
0841デフォルトの名無しさん2010/01/06(水) 22:11:06
サードパーティのコンポーネントを買う
0842デフォルトの名無しさん2010/01/06(水) 22:16:04
おれは iText.NETでPDFにしてる
0843エロ坊主2010/01/07(木) 00:48:13
VB2008で、
http://www.nakadashi.to/movie/1683.htm から、
http://cpz9.actnw.jp/naka5/1683-1.zip をダウンロードしたいのですがうまくイけません。
DownloadFileメソッドを使って Headers.Add で http_referer などいろいろ指定してみたのですが。

ホントにエロい人教えてください。
0844デフォルトの名無しさん2010/01/07(木) 00:51:48
そんな変態なURLに触れたくねぇよ・・・
0845デフォルトの名無しさん2010/01/07(木) 00:59:07
違法ダウンロードは犯罪になるしな。
0846デフォルトの名無しさん2010/01/07(木) 01:08:44
パケットモニタとかでブラウザでのHTTPリクエストとの差異を調べな
0847デフォルトの名無しさん2010/01/07(木) 01:16:35
ユーザーエージェント、リファラー、クッキー、getメソッド、postメソッド

0848デフォルトの名無しさん2010/01/07(木) 01:20:20
referer を http://www.nakadashi.to/movie/1683.htm に設定だろ
0849デフォルトの名無しさん2010/01/07(木) 07:58:10
WebRequestを作成 webreq

webreq.referer = URL

ダウンロード
0850デフォルトの名無しさん2010/01/07(木) 14:32:07
>838 >839
同じスレッドでも、OSに管理されているスレッドと、
コード上のThreadオブジェクトは別物、という感じですね。
前者を後者でラップして直接触れないようにした、と言うべきかな?
今はサンプルいじってる段階なんでどっちでもいーや、ですが、
きちんとしたものを作るならAPI使って取得しておいたほうが無難ですかね。
0851デフォルトの名無しさん2010/01/07(木) 16:13:06
>>850
>きちんとしたものを作るならAPI使って取得しておいたほうが無難ですかね。

おれもそう思ってAPI使って取得してるけど>>839氏のいうことも分る

「本当はやっちゃいけないこと」なんだろうけど、messageboxの表示位置を
指定したいので仕方なく使ってる
0852デフォルトの名無しさん2010/01/07(木) 16:45:39
メッセージボックス位でやっちゃいけない事やらないといけないなら
俺はめんどくさくても自作する。
0853デフォルトの名無しさん2010/01/07(木) 23:41:18
>>852
やっぱり自作が一番かな・・・
めんどうだから自作しなかった(ていうかCBTフック使って新クラス作ってた)
けど一から自作も検討してみるかな
0854デフォルトの名無しさん2010/01/08(金) 10:09:31
>>853
うちはメッセージボックスもどきとエラーの時はVSみたいな概要とエラー詳細が出るようなメッセージボックス2つ用意して使い分けてるよ
あとメッセージボックスは一定時間経過後自動で閉じるオプションとか付けてる

どうせダイアログでメッセージ開くだけなら大したことないだろうし、レイアウトやアイコンも自由だから試しに簡単なの作ってやってみればどうかな?
0855デフォルトの名無しさん2010/01/08(金) 14:32:08
VB2005使ってます。

自前でクラスを初めて(6.0以来)作っているのですが、
Public Shared にして宣言した変数を外部から代入したりすると警告が出ます。

Public Class hogehoge
Public Shared hogege as String
End Class

Dim hg as New hogehoge
hogehoge.hogege = "test"

のような感じです。一応これでも代入は成功して参照も出来るですが、本来はどうあるべきなのでしょうか?
Newで実体をインスタンスの実体を作ったオブジェクトへの代入に警告が出る理由が今イチ分かりません・・・。
警告文は以下のような感じです。
「インスタンスを経由する共有メンバ、定数メンバ、列挙型メンバ、または入れ子にされた型へのアクセスです。正規の式は評価されません。」
0856デフォルトの名無しさん2010/01/08(金) 14:45:17
まさにそのままだと思うんだが・・・?

型.変数 =""

だと思うけど?
08578552010/01/08(金) 14:48:56
すいません、書き間違えた点がありました。

hogehoge.hogege = "test"
        ↓
hg.hogege = "test"

でした。。
0858デフォルトの名無しさん2010/01/08(金) 15:08:37
説明するのめんどくさいからここでも読んでみて
はたしてこの説明が本当に正しいかどうかは自分で評価してほしい。

ttp://blogs.wankuma.com/torikobito/archive/2007/04/04/70121.aspx
0859デフォルトの名無しさん2010/01/08(金) 16:48:24
VB2005 + Access

TableAdapterを使用してプログラムを作成しています。
連続型のオートナンバー型のフィールドについて質問があります。

オートナンバー型のフィールドの名前を【ID】とします。
データメンテ画面上でレコードを削除(たとえば【ID】は、25)した後、
すぐにレコード追加を行うと、【ID】フィールドに、25と表示されてしまいます。
(さきほど削除したレコードと同じ【ID】)

保存されたデータを見ると、【ID】フィールドには正しく26と入力されています。

この現象は、回避できないのでしょうか?
08608552010/01/08(金) 17:39:26
>>858
レスありがとうございます。
一応そこは目を通してあるのですが、
では一体どういう形であるべきなのか・・・が解らないのです。
使えてしまう分だけ、無視していいものか、それとも回避可能な形があるのか解らず。。すいません。。
0861デフォルトの名無しさん2010/01/08(金) 18:09:01
>>860
意図的にSharedで定義しているんだから迷わずインスタンスからは使わないようにすればいいんじゃない?
インスタンスごとに何かするのならSharedで定義するはずもないし

VB6でいうモジュールの変数みたいな感じになるんだからインスタンス化して使うのは逆に抵抗があると思うんだけど・・・

0862デフォルトの名無しさん2010/01/08(金) 19:58:33
質問です。
複数のコンソールアプリでApp.Configを作成しました。
設定内容を共通Configで持ちたいのですが
共通Configはどこに作ればいいのでしょうか?
0863デフォルトの名無しさん2010/01/08(金) 20:01:21
C++にて作成されたDLLを
VB.NETから使用する処理を作成しているのですが、
DLL側の関数の戻り値の型が『HANDLE』型となっています。

調べたところ、VB.NETでは『System.IntPtr』型で
対応可能という記述を見つけたので
そのように対応したのですが、
正常に動作しない状態です。
原因が戻り値の型の定義ミスなのか、
その他にあるのかの切り分けが出来ない状態です。
『HANDLE』型=『System.IntPtr』型の認識で問題ないでしょうか?

なお、下記のようなエラーが発生していました。
『保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。』
0864デフォルトの名無しさん2010/01/08(金) 20:26:35
>>863
単純にP/Invokeの使い方を間違ってるだけだから
とりあえず、DLL側のC(?)の関数のプロトタイプと、
Declare部分の定義をさらそうよ。
08658632010/01/08(金) 21:11:59
>>864
すみません、自己解決致しました。
引数を指定する箇所に誤りがあり、エラーとなっていたようです。
お手数をおかけ致しました。

0866デフォルトの名無しさん2010/01/08(金) 21:24:06
>>857
>書き間違えた点がありました。
正しいわけだが。

例えば
 Dim hg As New hogehoge, mg As New hogehoge
があったとして、hg の hogege と mg の hogege は同じ場所にあるわけだからして
「インスタンス (ここでは hg や mg) の hogege」ではなく
「クラス (hogehoge) の hogege」と指定するのが正しい。
0867デフォルトの名無しさん2010/01/08(金) 23:43:00
>>854
なるほど、自動で閉じるオプションはいいかも
ひまができたら簡単なの作ってみようと思う
アドバイスありがと
0868デフォルトの名無しさん2010/01/09(土) 08:20:31
リストボックスのアイテムを上にずらせないけどなんで?

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
If ListBox1.SelectedIndex < 1 Then Exit Sub
Dim S As String
S = ListBox1.SelectedItem
Dim i As Integer
i = ListBox1.SelectedIndex
ListBox1.Items.Insert(i, S)
ListBox1.Items.RemoveAt(i + 1)
End Sub
0869デフォルトの名無しさん2010/01/09(土) 13:24:27
馬鹿だから
0870デフォルトの名無しさん2010/01/10(日) 01:11:21
n番目の内容をn番目に挿入して (この時点で同じ内容が並ぶ)
元n番目(今n+1番目)を削除したら、そりゃ元通りになると思うのね。
0871デフォルトの名無しさん2010/01/10(日) 23:19:52
2次元配列のSortメソッドの使い方なのですが、

Dim ar(2, 1) As String
ar(0, 0) = "みかん"
ar(1, 0) = "りんご"
ar(2, 0) = "ばなな"

ar(0, 1) = "100"
ar(1, 1) = "200"
ar(2, 1) = "300"
ar(2,1)="300"

このような配列を名前で並べ替えたり数量で並べ替えたりしたいのですが
Sortメソッドはどのように使ったら良いでしょうか?

0872デフォルトの名無しさん2010/01/10(日) 23:25:12
できない
2次元配列は他にも何かと冷遇されてるから使わない方がいいよ
配列の配列を使いましょう
でも>>871の場合はそういう話ではなくてクラスを使うべきだと思う
0873デフォルトの名無しさん2010/01/10(日) 23:29:57
そもそも二次元配列を並び替えるって・・・
一体どういう結果を期待してるんだ?

N次元配列がどういうものか根本的に誤解してるとしか思えん。
0874デフォルトの名無しさん2010/01/10(日) 23:35:16
行で並び変えたいんでしょ
そういう場合は,行を表すクラスを作ってそのオブジェクトの配列として扱う
0875デフォルトの名無しさん2010/01/11(月) 00:31:52
こういうケースはDataTable使うんじゃないの?
0876デフォルトの名無しさん2010/01/11(月) 00:35:32
>>872
俺は質問者ではないが、ちょっと確認させてくれ。
> 配列の配列を使いましょう
これは具体的にどういうことでしょうか?
私は「構造体の配列」だと思うのですが。
0877デフォルトの名無しさん2010/01/11(月) 00:41:46
Dim ar()() As String
0878デフォルトの名無しさん2010/01/11(月) 00:44:52
>>876
「配列の配列」は文字通り「配列の配列」だよ。
dim hoge as Integer()()
例えばこれはIntegerの配列の配列、つまりInterger()の配列。

それからソートするのなら値型より参照型の方がいい。
08798712010/01/11(月) 01:10:25
レスありがとうございます。
2次元配列の並べ替えで検索してもあまりそれらしいものが出てこなくておかしいなと思ってたんです。
配列の配列という方法だと思うのですが、Dim ar()() As String の宣言を使う方法で調べてみたら
説明してくれてるページが見つかったのでそれでやってみたいと思います。
ありがとうございました。
0880デフォルトの名無しさん2010/01/11(月) 15:11:32
>>871が誤った方向に進んでしまったぞ
どう考えても構造体かクラスの配列にすべきなのに
次善の方法としてはDataTableもありかとは思うが

プログラミングの勉強は、コーディングテクニックだけじゃなくて
設計もいっしょに勉強した方がいいぞ
0881デフォルトの名無しさん2010/01/11(月) 15:22:15
だってVBだもん
0882デフォルトの名無しさん2010/01/11(月) 15:58:41
>>880
コーディングテクニックない人乙
0883デフォルトの名無しさん2010/01/11(月) 19:10:57
俺はオブジェクト指向の流れを考えると、データの処理を行う都度、
配列を準備してそれを操作なんていうプログラミングをしているのは
ナンセンスだと思うけどな。
既存のクラスを活用して、もしくは、クラスや構造体を作って行うのが
本来の方向では?
0884デフォルトの名無しさん2010/01/11(月) 20:00:35
みんなそれができればVBなんかいらねーよw
0885デフォルトの名無しさん2010/01/12(火) 01:24:12
いくらなんでもできない人のがよっぽど珍しいレベル
0886デフォルトの名無しさん2010/01/12(火) 09:51:02
方向性に答えも糞もねぇだろ

どうせそのうちこのやり方では難しい時が来たら自然と気がつくだろ
0887デフォルトの名無しさん2010/01/12(火) 15:05:56
糞はあるだろ
0888デフォルトの名無しさん2010/01/12(火) 18:11:54
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 Dim ResultArr As New ArrayList
 Dim Result(9) As String
 Dim c As Integer = 0

 ResultArr = GetArrList("hogehoge")

 For Each Result In ResultArr
    Console.WriteLine(Result(c))
    c += 1
 Next
End Sub


Function GetArrList(ByVal str As String) As ArrayList
 Dim Result(10) As String
 Dim Ret As New ArrayList

 For i As Integer = 0 To 9
     For i2 As Integer = 0 To 10
        Result(i) = i2 & " - " & i
     Next
   Ret.Add(Result)
 Next
 
 Return Ret
 End Function

上のコードで結果を表示すると10 - 0から10 - 9までしか出ないのですが、
0 - 0から9 - 9まで出るようしたいです。
どこが間違ってるか教えていただけないでしょうか。
0889デフォルトの名無しさん2010/01/12(火) 18:24:34
>>888
何がしたいのかが分からない。
配列のリストが欲しいのか、
単に "1-3" といった文字列のリストがあればいいのか。
0890デフォルトの名無しさん2010/01/12(火) 18:30:21
0-0
0-1
0-2
 :
 :
 :
10-0
10-1
10-2
10-3
 :
10-9

配列の中の数字を全部表示したいです。
Button1_ClickのFor Eachを下記のように書き直しましたが
配列の最後のものしか出てこないです。(10 - 0 〜 10 - 9 の繰り返しが10回出ます)

For Each Result In ResultArr
  For i As Integer = 0 To 9
    Console.WriteLine(Result(i))
  Next
Next
0891デフォルトの名無しさん2010/01/12(火) 18:39:03
だったら配列は不要。

Dim ResultArr As New List(Of String)
For i2 As Integer = 0 To 10
   For i As Integer = 0 To 9
     ResultArr.Add(i2 & " - " & i)
   Next
Next
For Each Result In ResultArr
   Console.WriteLine(Result)
Next
0892デフォルトの名無しさん2010/01/12(火) 18:45:18
レスありがとうございます。
説明が悪くてすみません。
一覧を表示したいだけではなくて、0-(0-10)、、1-(0-10)という親番号ごとには
配列に格納したいです。
その配列を格納したArrayListから読み出したいです。
0893デフォルトの名無しさん2010/01/12(火) 19:05:24
突っ込みどこはほかにもあるが、
VBの配列が.NETでは参照型になったにもかかわらず、
記述上は値型のように見えるのが誤解の元だな。

For i2 As Integer = 0 To 10
   Dim Result(9) As String  ' この位置に注意。
   For i As Integer = 0 To 9
      Result(i) = i2 & " - " & i
   Next
   Ret.Add(Result)
Next
0894デフォルトの名無しさん2010/01/12(火) 19:25:35
レスありがとうございます。
できました。値型、参照型でこのようなのに出くわしたのが始めてだったので勉強になりました。
0895デフォルトの名無しさん2010/01/12(火) 19:45:51
質問お願いします(VB.NET2008EE, VistaSP2)

FontChangedイベントハンドラ
OnFontChangedメソッドのオーバーライド
Fontプロパティのオーバーライド

これらのコードのどれか一つを書くとMe.Fontプロパティにイタリック体や太字などの
スタイルや、取り消し線や下線などの文字飾りが設定できなくなります。
(Me.Font = Dlg1.Fontなどで設定してもスタイルと文字飾りが設定されない)
(上記のコードを削除すると設定できるようになります)

どうすればこの状況を回避できますか?
0896デフォルトの名無しさん2010/01/12(火) 19:55:23
なんというお馬鹿質問・・・
0897デフォルトの名無しさん2010/01/12(火) 19:57:19
895です
自己解決しました
自分で書いたコードの所為でした
(他のイベントハンドラに書いたコードが原因でした)

スレ汚し大変失礼しました。
0898デフォルトの名無しさん2010/01/12(火) 20:19:15
>>893
いや、まず値型か参照型か以前の問題があるだろ
そっち突っ込んでやれよ

元のコードの直接のバグは
        For i As Integer = 0 To 9
            For i2 As Integer = 0 To 10
                Result(i2) = i2 & " - " & i
            Next
            Ret.Add(Result)
        Next
だったんじゃないか

で、行と列が入れ替わってるだとかの問題を修正して
それでも思い通り動かなくて参照型の問題になるんだが

>>894
参照型うんぬん以前の問題があるのは理解できてるか?
もとのコードだと、すべての変数が値型だったとしても正常に動いてないぞ
08998942010/01/12(火) 20:34:07
ほんとだ
表示のところのi2 - i の並びを逆にしたりしているうちに
気付かないうちに正しくなっていましたが最初のはおかしかったですね
0900デフォルトの名無しさん2010/01/12(火) 20:55:48
違いが面白い。
' 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
09018352010/01/12(火) 23:37:50
以前、ここでみなさんからいただいたアドバイスを上司に話して
みたところ、サードパーティの帳票ツールを購入する予算もないので
VB2005Proに入っている帳票ツールを使うように言われてしまいました。

そこであらためて相談です。VB2005Proのみを使用してシステムを
作り上げる場合、帳票は「Report」と「CrystalReport」
はたまた「PrintDocument」のどれがいいのでしょうか?

ざっと見たところ、CrystalReport(.rpt)はある程度の自由度のある
帳票が作れそうですが、Report(.rdlc)はPDFにも出力できるようです。
よって甲乙付けがたいように思えるのですが、実はPrintDocumentが
一番オススメだったりするのでしょうか?
と同時にそれぞれの一長一短をご教示いただければ幸いです。

当方の会社はソフト開発とは無縁の会社です。
今回「発注入荷の管理システム」を自社で作ることになり、
(理由はソフト会社へ依頼する予算がないからだそうです)
Access.adpをチョロっといじくっていた私にお鉢が回ってきたのです。

では何故、Accessで作らないのかと申しますと、上司が
「長く使えるシステムを作るのならAccessよりVB」と何処からか
聞いてきたらしく、問答無用でVBで作ることになったのです。
(なぜか上司が持ってきたのは2008ではなく、2005でした。)

ですので現在、参考書を片手に奮闘中です。
どうかご教示の程、よろしくお願い申し上げます。
0902デフォルトの名無しさん2010/01/12(火) 23:43:23
For i=1 to 10
i=i+1
RichTextBox.Text &= i & vbcrlf
Next

1づつ増えない助けて
0903デフォルトの名無しさん2010/01/12(火) 23:44:15
>>901
まあアクセスだと壊れるからねぇw
0904デフォルトの名無しさん2010/01/12(火) 23:45:03
>>902
for-nextの意味分かってる?
0905デフォルトの名無しさん2010/01/12(火) 23:46:39
VSに付いてるのは体験版みたいなもんだから無いものと思った方がいい
そりゃPrintDocument使えば何でもできるけどちゃんとやろうと思ったら
システム本体の作成よりもそっちの方に遥かに時間かかるよ
0906デフォルトの名無しさん2010/01/12(火) 23:49:56
単純なレポートなら、クリリポでもMSレポートでもどっちでもいい。
複雑なことをやりたいなら、PrintDocumentでごりごりやるか、もしくはExcelってのもあり。
0907デフォルトの名無しさん2010/01/12(火) 23:57:16
Excelがいいな
0908デフォルトの名無しさん2010/01/13(水) 03:27:28
>>902
wwwwwwwwwwwwwwwww
0909デフォルトの名無しさん2010/01/13(水) 07:49:54
>>902
forを書く時は、stepを書くように心がけよう
0910デフォルトの名無しさん2010/01/13(水) 07:53:27
帳票の話は、>>212-214あたりでも同じようなものが出てる。
そっちも参考にすると良いと思うよ。
0911デフォルトの名無しさん2010/01/13(水) 07:57:33
>>901
> 「長く使えるシステムを作るのならAccessよりVB」
何を根拠に言っているのか分からないが、インターネットから切り離した
ネットワークで、WindowsUpdate等を行わせなくて、別なソフトを勝手に
インスコしないという状況だと、長く安定したシステムが構築出来る。
AccessとかVBなどは関係が無い。

複数同時アクセスが多い状況であれば、Accessの方がファイルが壊れる
などのトラブルがおきやすいというのはあるが。
(VBでもネットワーク障害などのエラーでデータの再入力の手間は必ず
発生する。)
0912デフォルトの名無しさん2010/01/13(水) 08:20:15
「オブジェクト」ってなに?
「コンストラクター」って?
0913デフォルトの名無しさん2010/01/13(水) 09:25:56
オブジェクト
すべてのクラスの基本型

コンストラクター
クラスのインスタンス作成したときに勝手に呼び出されちゃうへんなサブルーチン
0914デフォルトの名無しさん2010/01/13(水) 10:10:00
だいたい,VBならなんでもできるからちゃんと作ればよいものも作れるというだけのことであって,
初心者が無理にVBで作ってAccessで作ったものより信頼性のあるものが作れるわけないだろ
0915デフォルトの名無しさん2010/01/13(水) 10:17:49
内製の時代が来てるな
0916デフォルトの名無しさん2010/01/13(水) 10:32:53
オブジェクト
 対象の男

コンストラクタ
 後の処女膜貫通儀式
0917デフォルトの名無しさん2010/01/13(水) 14:08:06
ボタンの文字を
Past&OK
にしたいのに
&をかくとへんになっちゃうからふつうに
Past&OK
というボタンテキストにしたいどうすれば
0918デフォルトの名無しさん2010/01/13(水) 14:15:15
&&
0919デフォルトの名無しさん2010/01/13(水) 14:15:46
Past&&OK
0920デフォルトの名無しさん2010/01/13(水) 14:25:07
ためしてみるなり
0921デフォルトの名無しさん2010/01/13(水) 14:43:47
ニーモニックなんかつかわねえよ、というのならUseMnemonicをfalseにしちゃうのもあり
0922デフォルトの名無しさん2010/01/13(水) 14:48:32
コントロールの背景色が黒だった時、の処理をしたいんだけど
If Button1.BackColor = Color.Black Then
だとエラーになってしまいます

どうすればいいんでしょうか?
よろしくお願いします
0923デフォルトの名無しさん2010/01/13(水) 14:52:46
まずは、エラーの内容を確認してここに書く。いつエラーになったかも忘れずに。
09249222010/01/13(水) 14:58:39
>>923
System.Drawing.Colorでは演算子(=)は使えないと言うエラーだったと思います
エラーになったのは書いた時に出るエラーメッセージです

言い忘れてましたが環境は2003です
0925デフォルトの名無しさん2010/01/13(水) 15:01:30
じゃあ
If Button1.BackColor Is Color.Black Then
で
0926デフォルトの名無しさん2010/01/13(水) 15:03:33
つか、それでエラーにならんぞ
0927デフォルトの名無しさん2010/01/13(水) 15:04:42
わかった
If Button1.BackColor.ToArgb = Color.Red.ToArgb Then
だ
09289222010/01/13(水) 15:08:08
>>925
'Is' 演算子は型 'System.Drawing.Color' のオペランドを受け付けません。オペランドは参照型または Null 許容型でなければなりません。 C:\Documents and Settings\ryu\Local Settings\Application Data\Temporary Projects\WindowsApplication1\Form1.vb
と言うエラーが出て行けませんでした

>>926
2003ではエラーになりました
今手元に2003が無いので詳しく確認出来なくて申し訳ない

>>927
2008で行けました!
ありがとうございます

これでやって行きたいと思います
回答下さった皆様ありがとうございました
0929デフォルトの名無しさん2010/01/13(水) 15:09:59
>>927は2003で試した
0930デフォルトの名無しさん2010/01/13(水) 15:11:21
ニーモニックねなるほろ
09319222010/01/13(水) 15:17:07
>>929
どうもありがとうございます!
0932デフォルトの名無しさん2010/01/13(水) 15:50:45
>>928
.NET1.1にはop_Exualityが無いのかと思ったがしっかりあった。
それでC#では==で大丈夫だった。昔のVBは難儀だったんだね。
普通はEqualsを使うのだがBoxingがないだけ.ToArgbのほうが速いかもしれない。

If Color.Equals(Button1.BackColor, Color.Black) Then 
0933デフォルトの名無しさん2010/01/13(水) 16:47:48
>>932
そっちのがいいな
0934デフォルトの名無しさん2010/01/13(水) 16:53:19
>>914
問題が摩り替わってないか?
VBがいいかAccessがいいかを>>901は聞いているんじゃないだろ。
VBを使わざる得ない状況にあって帳票はどれがいいかを聞いているんだろ。

俺はAccessが使えているのであれば、作り方は違うが
CrystalReportだと、Accessのレポート近い雰囲気の物を作れると思うぞ。
PrintDocumentは >>905 や >>906 が言うようにプログラムを
ごりごりと書かなければならないから、君にはちとつらいと思うぞ。
0935デフォルトの名無しさん2010/01/13(水) 17:42:34
といってみたかっただけ。
0936デフォルトの名無しさん2010/01/13(水) 18:37:37
↑人に文句を言うだけで自分では何も解決出来ないオタクがいますよ。
0937デフォルトの名無しさん2010/01/13(水) 20:34:55
フォームアプリでForNextの繰り返し処理中にフォームを閉じると
タスクマネージャー上でイメージ名の一覧から中々消えないのですが
すぐに完全に終了にするようにするにはどのように書けばよいですか?
0938デフォルトの名無しさん2010/01/13(水) 20:47:51
時間のかかる処理はスレッドにする。
または、ループ内で頻繁にDoEventsをcallする。
0939デフォルトの名無しさん2010/01/13(水) 22:03:58
Microsoft Visual Basic 2008 Express Edition
をインストールしました。
新規のフォームアプリケーションを開いて実行してもすぐに実行が終わってしまいます。
なぜでしょうか?
あまりにも初歩的な質問ですみませんが、本気でわからないです。
ウインドウズアップデートで最新状態にもしました。
他のPCでは、インストールするだけで、普通に使えるようです。
よろしくお願いします。
0940デフォルトの名無しさん2010/01/13(水) 22:32:52
>あまりにも初歩的な質問ですみませんが、本気でわからないです。
質問の仕方が初歩的な点、および本気でわからない点にも同意しておこう。

せめてステップ実行して、どこで終了してるかくらい調べたら?
09419392010/01/13(水) 22:52:44
まったく何もコードを書いていない状態です。
普通なら、実行すると、なにもないフォームが表示されると思います。
ところが、実行すると何も表示せずに、終わってしまいます。
インストールがうまくいっていないようです。
VB2008のインストール以外にも必要なことがあるのでしょうか?
0942デフォルトの名無しさん2010/01/13(水) 22:54:40
一回アンインストールして入れなおしてみたら?
0943デフォルトの名無しさん2010/01/13(水) 23:02:57
Mybase.Load
Application.Exit()
0944デフォルトの名無しさん2010/01/13(水) 23:13:34
なんかおかしいね。ステップ実行してもダメなの?
0945デフォルトの名無しさん2010/01/13(水) 23:26:27
どうせ 下手にデザイナいじったんだろう
0946デフォルトの名無しさん2010/01/13(水) 23:31:56
http://www.microsoft.com/japan/msdn/vstudio/express/
の下のほうに注意書きがある。
>Visual Studio 2008 Express Edition with SP1 インストール時の注意
SPなしとSP1がチャンポンになってるとかないの?
09479392010/01/14(木) 00:06:15
再インストールしてもだめでした。
よくわからないものを、いろいろアンインストールして、もう一度入れなおしてみます。
ありがとうございました。
0948デフォルトの名無しさん2010/01/14(木) 01:15:56
コンソールアプリなんじゃね?
0949デフォルトの名無しさん2010/01/14(木) 03:50:40
テキストボックスをインプットボックスみたいに
モーダルにしたいんだけど、いい方法ないですか?
0950デフォルトの名無しさん2010/01/14(木) 04:03:54
>インプットボックスみたいに
ない。自分で作って ShowDialog() しる。
09519502010/01/14(木) 04:05:28
きゃほー!C#スレと間違ったぜー!
orz
0952デフォルトの名無しさん2010/01/14(木) 13:43:04
質問者が何を聞いているのかという点では、>>934のいうことももっともだと思うが、
AccessよりもVBという考えは間違いでもあるので、そのあたりの情報を収集し、
上司を説得する方法も考えた方がいいと思う。
VB.NETに関係する部分はこのスレで引き続き質問出来るわけだし。
0953デフォルトの名無しさん2010/01/14(木) 13:52:41
上司を説得するなんて仕事してたら無理ってわかるようなものなのに
0954デフォルトの名無しさん2010/01/14(木) 15:21:00
えっ!?
キミがリストラされた会社ってブラックリストに有るんだ。
0955デフォルトの名無しさん2010/01/14(木) 15:35:59
<samplelist>
<sample>
<test>test</test>
<testlist>
<factor>
<factor1>100</factor1>
<factor2>1</factor2>
</factor>
</testlist>
</sample>
</samplelist>

上記のようなXMLをDOMとXPathで読み出したいと思っています
(<sample>、<factor>要素は実際は複数存在します)

<sample></sample>の中のデータをsampleクラスのインスタンスに
それぞれ落とし込んで管理しています。
XMLnodelistにSelectNodesでそれぞれの要素のリストをつくって
取り出せないことはないのですが、データの抜き方が気持ち悪いです

[samlpelist]-[1番目のsample]-以下それぞれの要素に処理
というような処理は可能でしょうか
0956デフォルトの名無しさん2010/01/14(木) 16:25:02
>>955
selectNodes(".//*")
0957デフォルトの名無しさん2010/01/14(木) 16:33:33
だが>>901の上司はいわゆる部下の提案など聞かないタイプ
0958デフォルトの名無しさん2010/01/14(木) 18:53:07
実際に彼がVBで作ったものを上司に見せれば上司も考えを改めるだろう
悲惨な出来になるのは間違いないから
0959デフォルトの名無しさん2010/01/14(木) 18:55:22
できるまでやらせるだけだろう
なぜならその上司はこの記事を読んでいるから
http://itpro.nikkeibp.co.jp/article/COLUMN/20081202/320537/
0960デフォルトの名無しさん2010/01/14(木) 20:09:46
>>956
XPathについての知識が全然足りないということが分かりましたので
ロケーションパスをしっかり把握できるぐらいまで学習します

ありがとうございました
0961デフォルトの名無しさん2010/01/14(木) 20:12:25
で、どのレポートツールがいいかって話はどうなった?
09629552010/01/14(木) 22:02:46
>>956
ありがとうございました。
やりたいことが形にできました。
0963デフォルトの名無しさん2010/01/14(木) 23:10:22
>>938
レスどうもです。スレッドでやってみようと思います。
0964デフォルトの名無しさん2010/01/15(金) 02:08:50
VB2008EEを使っています。
Color構造体って
TextBox1.BackColor =
まで書いた時に列挙体のように候補が出てくるんですが、
これを自作構造体でやるにはどうすればいいですか?
0965デフォルトの名無しさん2010/01/15(金) 02:23:12
>>963
ただスレッドを使ってみたいだけだろw
0966デフォルトの名無しさん2010/01/15(金) 02:28:03
>>964
Sharedで自分自身の型のプロパティを書く
Color構造体のメンバ一覧をまず見れ
0967デフォルトの名無しさん2010/01/15(金) 05:59:05
ボタンを12,12等のサイズにしてbackcolorを黒にし、Textに何も入れない時に点線みたいなのが表示されます
点線を無くし、ただの黒いボタンにするにはどうするのでしょうか?
0968デフォルトの名無しさん2010/01/15(金) 07:38:33
>>967
それ、オブジェクトを選択したときの表記の点線じゃないの?
0969デフォルトの名無しさん2010/01/15(金) 07:41:42
>>968
・・・!
どうもそれみたいでした
消す事って出来ないのでしょうか?
0970デフォルトの名無しさん2010/01/15(金) 08:04:54
>>969
ボタンじゃなくピクチャーボックスとかラベルにすればいいんじゃない?
0971デフォルトの名無しさん2010/01/15(金) 08:09:11
>>970
ボタンでやりたかったのですが無理っぽいですかー
諦めてこのままやります!
ありがとうございました
0972デフォルトの名無しさん2010/01/15(金) 08:17:22
Buttonクラスを継承して独自のボタンを作ります。
この独自クラスでは、コンストラクタあたりでSetStyleメソッドを呼び出して、
スタイルからControlStyles.Selectableを外せば、選択できないボタンになり、
結果として点線の枠線はでなくなります。

だそうだ
0973デフォルトの名無しさん2010/01/15(金) 08:22:06
できた

Public Class Class1
  Inherits Button

  Sub New()
    Me.SetStyle(ControlStyles.Selectable, False)
  End Sub

End Class
0974デフォルトの名無しさん2010/01/15(金) 09:33:40
なんというか・・・・うん・・・
0975デフォルトの名無しさん2010/01/15(金) 10:36:29
なんだよー
0976デフォルトの名無しさん2010/01/15(金) 17:00:12
HttpWebRequest クラスでサイトにアクセスしたいのでヘッダー情報を設定したいのですが
メンバの一覧に出てこないヘッダー(サイトの固有?)はどうやって設定したら良いでしょうか?
0977デフォルトの名無しさん2010/01/15(金) 17:03:41
HeadersにAddする
0978デフォルトの名無しさん2010/01/15(金) 23:08:36
>>977
ありがとうございます。できました。
webreq.Headers.Add("Host: www.hogehoge.com")
webreq.Headers.Add("Proxy-Connection: Keep-Alive")
この二つの設定が通らないのですが、どうやって設定すれば良いでしょうか?
0979デフォルトの名無しさん2010/01/16(土) 00:16:30
HostはWebRequest.Createで指定したURLのホストに強制的に設定 変更できない
Proxy-ConnectionはProxy設定してKeepAlive=Trueで
09809642010/01/16(土) 00:30:26
>>966
すみません、質問がわかりにくかったかもしれません。
= を書いた時点でインテリセンスを働かせて候補を出したいという意味です。

Private _myBackColor As MyColor
Public Property MyBackColor() As MyColor
  Get
    Return _myBackColor
  End Get
  Set(ByVal value As MyColor)
    _myBackColor = value
  End Set
End Property

Public Enum KnownColor As Integer
  Red = 1
End Enum

Public Structure MyColor
  Public Sub New(ByVal knownColor As KnownColor)
    Me.value = CShort(knownColor)
  End Sub
  Private ReadOnly value As Short
  Public Shared ReadOnly Property Red() As MyColor
    Get
      Return New MyColor(KnownColor.Red)
    End Get
  End Property
End Structure

を記述して、Me.MyBackColor = まで打ってみましたが
Color構造体のように候補はでませんでした。わかる方いましたらお願いします。
0981デフォルトの名無しさん2010/01/16(土) 00:57:23
こうなってくるとプログラマーというより、
Visual Studio ユーザーだな。
マニュアル嫁。
0982デフォルトの名無しさん2010/01/16(土) 01:33:42
>>980
んー、確かにColorのStatic Readonlyプロパティがインテリセンスに入力候補として
いきなり出てくるのは不思議。

何かそういうことが可能になる属性でもあるかと思って調べてみたが、
今のところ見つからない。

さっき気付いたけど、これVBのみでC#はない機能のようだから、
ひょっとするとVB専用にIDEレベルでColorを特別扱いするように実装されてるのかも。

>>981
980はそうおかしなことは言ってないぞ。
何がマニュアル嫁だ馬鹿かw
0983デフォルトの名無しさん2010/01/16(土) 02:07:07
>>979
ありがとうございます。解決です。
0984デフォルトの名無しさん2010/01/16(土) 02:29:07
超初心者です。

コンボボックスで初めから選択肢のうちのひとつを選択させておきたい
(要するに標準の選択肢を用意したい)のですが、
プロパティの中にもそのような項目はありませんでした
どうすればよいでしょうか。

当方visual basic 2008 express editionをつかっています。
0985デフォルトの名無しさん2010/01/16(土) 02:44:07
超初心者が来るスレでは無いです。
初心者にジョブチェンジしてから来て下さい。
0986デフォルトの名無しさん2010/01/16(土) 02:46:21
HttpWebRequest クラスでサイトにアクセスしたいのですが、
最初にIDとパスワードを使ってログインしなければならないのですが、
IDとパスワードをPOSTするアドレスがhttpsのため、普通の方法では駄目なようなのですが、
対処方法を教えて頂きたいです。
0987デフォルトの名無しさん2010/01/16(土) 02:46:48
コンボボックス.SelectedIndex = 10;
0988デフォルトの名無しさん2010/01/16(土) 02:51:04
>>986
ん?httpsでも何も変わらんと思うが、普通の方法ってどんな方法?
0989デフォルトの名無しさん2010/01/16(土) 03:24:59
>>988
レスありがとうございます。
どぼんさんのところのサンプルで試しています。↓
ttp://dobon.net/vb/dotnet/internet/usecookie.html
違うサイトで試してみたのですがhttpsでもログインできました。
ずっとこれが原因だと思ってたのですが違ったのですね・・・
何か必要なキーの設定が抜けているのかな?
09909802010/01/16(土) 03:37:25
>>982
>VB専用にIDEレベルでColorを特別扱いするように実装されてるのかも。
C#で出ないならその可能性が高そうですね。
構造体でのインテリセンスは諦めることにしました。
ありがとうございました。
0991デフォルトの名無しさん2010/01/17(日) 00:41:50
別のアプリケーションもしくは特定のアプリケーション実行中に
ワンキーでForm1のウインドウをアクティブにしたいんですけど
どうすればいいですか?
0992デフォルトの名無しさん2010/01/17(日) 00:51:52
ローレベルフック。コンビネーションでよければホットキー。
0993デフォルトの名無しさん2010/01/17(日) 00:57:44
もう少しわかりやすくお願いします
0994デフォルトの名無しさん2010/01/17(日) 06:50:43
とりあえず単語でggrks
Windowsツールを使ったことあるならホットキーくらいは知ってそうなもんだろう
0995デフォルトの名無しさん2010/01/17(日) 18:42:08
VB.netってC#とどういうつながりなんだろう
C#のほうはVS2008であったけどVBにはなかったい自動実装プロパティいれたり・・・

C#でテストしてからVB作ってるのかな
0996デフォルトの名無しさん2010/01/17(日) 18:53:49
MSの中の人が使ってるのは基本的にC#だからMSの意向がより早く反映されるんだよ
0997デフォルトの名無しさん2010/01/17(日) 22:37:58
ああ、それは元々C#はVSのインテリセンスとかの恩恵を最大限に受けられる事を前提に
マイクロソフトが開発した言語なわけで、VBとはちょっと思想が違うんでしょ
だから、新しい機能とかはVBよりも選考してC#側で取り入れているんじゃないの
LINQの記述方法がfromからだったりするのもインテリセンスが影響しているとか
0998デフォルトの名無しさん2010/01/18(月) 01:21:59
VPNや専用回線やaspxを使わず、Windowsフォームから離れた施設の
SQL Server 2005 Express にネット経由で接続することは可能でしょうか?

一応、サーバーがある施設はダイナミックDNSの登録はしてありますが。
ConnectionString の DataSource に ドメイン名:ポート番号 を記述しても
うまく接続してくれません。

もし接続&データ取得が可能でしたら、どうかその方法をご教示下さい。
0999デフォルトの名無しさん2010/01/18(月) 01:41:50
>>998
すすめはしないがサーバーやサーバー側ルータの1433tcp/1434udpポートを空けとく
1000デフォルトの名無しさん2010/01/18(月) 03:05:27
次スレ
ttp://pc12.2ch.net/test/read.cgi/tech/1263738929/l50
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。