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

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

VB.NET質問スレ(Part32)

1 :デフォルトの名無しさん:2009/11/19(木) 10:06:09
前スレ

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

テンプレは >>2-4 あたり

2 :デフォルトの名無しさん: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

3 :デフォルトの名無しさん: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/

4 :デフォルトの名無しさん: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/

テンプレここまで

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

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

なるべくなら、移植性などを考えると.NET Frameworkのクラス・ライブラリを
用いてのコードがいいのですよね?

6 :デフォルトの名無しさん:2009/11/19(木) 13:44:51
「zedgraph」というクラスライブラリを使ってグラフを描写する
ユーザーコントロールを作りたいと思っています

テストとしてユーザーコントロールを貼り付けたフォームに、
textboxとbuttonを貼り付けて、textboxに入力した値を表示させ
ようと試してみたのですが、値が渡っていてもグラフ自体が表示
されません。グラフをリロードさせるためにはどうすればよいの
でしょうか。よろしくお願いします。

7 :デフォルトの名無しさん:2009/11/19(木) 14:49:04
>>6
内容は若干異なるけれど、このページが参考になるのではと思います。
http://www.atmarkit.co.jp/fdotnet/dotnettips/191resizedraw/resizedraw.html

8 :デフォルトの名無しさん:2009/11/19(木) 16:52:50
質問です。

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

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

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

何度かソフトを起動したり終了したりするたびに、その都度メモリが
圧迫されていくという可能性が気になりましたので。

9 :デフォルトの名無しさん:2009/11/19(木) 17:22:38
普通はCloseで十分

10 :デフォルトの名無しさん:2009/11/19(木) 17:29:57
プロセスが終了すればメモリは開放される。
気にするな。

11 :デフォルトの名無しさん:2009/11/19(木) 17:49:58
>>7
ありがとう御座います
取り敢えずやってみます

12 :デフォルトの名無しさん:2009/11/19(木) 21:11:54
>>9
>>10
ありがとうございます。
closeを使ってコーディングしたいと思います。

13 :デフォルトの名無しさん:2009/11/19(木) 21:17:51
VBは6から.NETに変わるにおいて大幅な仕様変更&サポートの打ち切りがあり、
さらに、バージョンアップごとに言語の仕様変更がある状況です。
あるソフト開発会社は、これが原因で.NETでの開発は見送り、javaに
切り替える方向で考えている、という方針を聞きました。
VBは、javaなど他の言語に比べて仕様変更が多く、サポート期間が
短い言語なのでしょうか?

14 :デフォルトの名無しさん:2009/11/19(木) 21:23:37
そうです
C#はむしろそれを売りにしています
VBはそれに追従している感じです

15 :デフォルトの名無しさん:2009/11/19(木) 21:28:30
>>14
レスありがとうございます。
一つ、念のために確認しておきたいのですが、「C#はむしろそれを売りに
している」というのは、「仕様変更が少なく、サポート期間が長い」という
意味合いでしょうか?

16 :デフォルトの名無しさん:2009/11/19(木) 21:33:10
言語仕様を拡張しまくって実用最先端を突っ走るということ

17 :デフォルトの名無しさん:2009/11/20(金) 01:04:37
Labelに数値を表示しているのですが、
数値が変化した場合にそれまでの数値より上か下を判断して
BackColorを変えたいのですが、どのような方法が良いでしょうか?

前スレ998さんレスありがとうございます。解決しました。

18 :デフォルトの名無しさん:2009/11/20(金) 01:04:57
このスレは、テンプレ以外価値のない書き込みばかりですね

19 :デフォルトの名無しさん:2009/11/20(金) 05:33:34
>>13
>VBは6から.NETに変わるにおいて だろ
それまでのVB(6以下)と、VB.NETは別物と言っていいほど違う
.NETいちからやるならJavaやるって判断はまああるだろう
VBのサポート期間はかなり長かった
VB.NETの言語仕様の変更ってのはあんまり記憶にない
追加要素ってのはいっぱいあるが、それを変更というならJavaだってずいぶんと変わってきた


20 :デフォルトの名無しさん:2009/11/20(金) 07:14:27
え? VB6 は Windows 7 でもサポートされますよ?
何言ってるんですか?

21 :デフォルトの名無しさん:2009/11/20(金) 12:20:24
javaだって滅茶苦茶変わってるぞ。


22 :デフォルトの名無しさん:2009/11/20(金) 14:32:03
>>16
そっちでしたか。ありがとうございます。

23 :デフォルトの名無しさん:2009/11/20(金) 14:36:25
>>17
ラベルの数値が変化した場合に色を変えるのだから、
ラベルの数値を変更する(値を代入する)タイミングで、上か下かを判断し、
BackColorを変えるプログラムを記述する方法が適切だと思います。

なんらかの理由でラベルの値が取得できない(表示が文字であるなど)
のであれば、そのフォームのメンバ(数値型変数)にそれに格納し、
その値で判断するしかないでしょう。

24 :デフォルトの名無しさん:2009/11/20(金) 14:57:56
>>19>>20>>21
ご回答ありがとうございます。

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

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

ハードウェアの性能と共に技術的な需要が変わっていくので
仕様変更は仕方が無いとしても、その言語のサポート期間が
気になっていましたが、VBの方もOSが変わってもサポートが続いて
いますので、それでの開発も問題なさそうですね。

25 :デフォルトの名無しさん:2009/11/20(金) 16:38:52
開発環境はもうサポート終了だけどな

26 :デフォルトの名無しさん:2009/11/20(金) 16:40:10
なにぃ〜

27 :デフォルトの名無しさん:2009/11/20(金) 19:25:38
セキュリティパッチも提供されないけどな

28 :デフォルトの名無しさん:2009/11/20(金) 21:14:58
そんなもんどうでもいいよ
VB6プログラマがプログラム自体に作りこんだセキュリティホールのリスクの方が遥かに大きい

29 :デフォルトの名無しさん:2009/11/20(金) 21:37:39
>>28
まったくもってはげしく同意

30 :デフォルトの名無しさん:2009/11/20(金) 22:40:39
>>28-29
セキュリティホールって意味わかって言ってるのかそれw

31 :デフォルトの名無しさん:2009/11/20(金) 22:44:40



32 :デフォルトの名無しさん:2009/11/21(土) 00:43:06
セキュリティホールなんか誰でもいくらでも作れるじゃん
何もおかしくないけど

33 :デフォルトの名無しさん: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アプリケーションへ変換することもできる。


34 :デフォルトの名無しさん:2009/11/21(土) 10:40:43
2回同じ内容を書いているところあたりで、頭が悪そうな印象を受けた。

35 :デフォルトの名無しさん:2009/11/21(土) 12:23:17
>>30
何を言ってるのか分からない。


36 :デフォルトの名無しさん:2009/11/21(土) 13:07:27
どなたかDelegateとInvokeの考え方を噛み砕いてもらえませんか?
VS2008のVB環境ですが理解しようと苦心しています。
いくつかサイトを見て
http://634.ayumu-baby.com/vb/vb_delegate.html
とかは他よりかなり判り易い気して
「利用方法」部とかは判った気にはなるのですが
「サンプルコード」でコンストラクタ?何するPG??となり

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

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

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

助けて下さい、よろしくお願いします。

37 :デフォルトの名無しさん:2009/11/21(土) 13:21:07
コンストラクタで疑問符が出ちゃダメだろう そこはデリゲート以前だ

38 :デフォルトの名無しさん:2009/11/21(土) 13:36:24
まずクラスとかのオブジェクト指向関係をきちんとりかいしないとダメ
その上で、デリゲートやイベントについては本当の意味で理解するにはデザインパターンも必要かも

39 :デフォルトの名無しさん:2009/11/21(土) 15:13:49
VB.NETの場合、通常はCallを記述したりしないのが流儀なんでしょうか

40 :デフォルトの名無しさん:2009/11/21(土) 16:10:45
>>39
流儀ということは無いと思う。
ま、場合によっては複数人でそのコードを書く場合、引継ぎを考えて
そういったルールを設ける場合もあるかもしれないけれど。

もしエラーが起きた場合、どこで起きているかを確認する為、
必ず返り値を取得し、確認するというルールがあるというのも
きいたことはある。

41 :デフォルトの名無しさん:2009/11/21(土) 17:10:41
例外使ってれば全く不要だけどな

42 :デフォルトの名無しさん:2009/11/21(土) 17:12:57
何でもかんでも例外投げてりゃいい、ってもんじゃないけどな。

43 :デフォルトの名無しさん:2009/11/21(土) 18:08:39
まあVB6のようにCallの有無で機能が変ったりしないからね。
意味のないものをわざわざ記述する意味は通常ないだろう。

44 :デフォルトの名無しさん:2009/11/21(土) 18:41:46
&H00としたいんだけど&H0に変換されてしまう
&H0=&H00で合ってる?

45 :デフォルトの名無しさん:2009/11/21(土) 18:47:13
うん。

46 :デフォルトの名無しさん:2009/11/21(土) 19:08:23
ありがとう!

47 :デフォルトの名無しさん:2009/11/21(土) 23:37:24
1秒ごとにタイマーでデータを更新してラベルに数値を表示するようになっているのですが、
文字を変更する際に、数値が変更前より上か下かでラベルの色を変えているのですが、
3秒後に元の色に自動的に戻るようにしたいのですが、どんな方法が良いでしょうか?
3秒未満にまた色の変更があったらそこからまた3秒をカウントしたいです。
たくさんのラベルの色を戻す処理が重なっても負荷が少なく、
フォームがフリーズしたような状態にならないようにしたいのですがどんな方法が良いでしょうか?

>>23さんありがとうございます。

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

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


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

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

微妙な内容で申し訳有りませんが宜しくお願いいたします

49 :デフォルトの名無しさん: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かな

50 :デフォルトの名無しさん:2009/11/22(日) 10:18:30
まずは、どこに時間がかかってるのか確認することだな。

ファイルに吐きだして、BCP で突っ込む、ってのが一番速そうだけど。

51 :デフォルトの名無しさん: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


52 :デフォルトの名無しさん:2009/11/22(日) 17:55:20
Connect呼び出し以外で投げられてんじゃね?

53 :デフォルトの名無しさん:2009/11/22(日) 17:57:33
たぶん別スレ

54 :デフォルトの名無しさん:2009/11/22(日) 17:58:32
そのライブラリ?がマルチスレッドでふぁ

55 :デフォルトの名無しさん:2009/11/22(日) 18:04:49
ほんとにそこで例外が発生してる?

56 :デフォルトの名無しさん:2009/11/22(日) 18:19:24
本当にそこで発生してます。
wiimote.Connect()にブレークポイントして調べた。

57 :デフォルトの名無しさん:2009/11/22(日) 18:20:07
っ ttp://www.atmarkit.co.jp/fdotnet/dotnettips/320appexception/appexception.html

58 :デフォルトの名無しさん:2009/11/22(日) 18:25:59
そういう問題ではなかろう…

59 :デフォルトの名無しさん:2009/11/22(日) 18:29:23
>>56
ブレークポイントしたらどうなったんだ?
普通に考えれば有り得ない気がするんだが。
ちなみにキャッチブロックにブレークポイント仕掛けても止まらないんだよね?


60 :デフォルトの名無しさん:2009/11/22(日) 19:12:34
DLLの中って落ちだろ

61 :デフォルトの名無しさん:2009/11/22(日) 19:51:18
>>60
オチというか、たぶんそうだろうねえ。
ならそのまま[F5]押して継続すれば何も問題ない。

62 :デフォルトの名無しさん:2009/11/22(日) 22:58:38
プログレスバーをオーディオのレベルメーターみたいに3色にしたいのですがどのようにやれば良いでしょうか?

63 :デフォルトの名無しさん:2009/11/22(日) 23:03:01
プログレスバーにはそんな機能ないから、自作するしかない。

64 :デフォルトの名無しさん:2009/11/22(日) 23:16:13
プログレスバーを元に改造?することはできますか?
ゼロから自作ですか?

65 :デフォルトの名無しさん:2009/11/22(日) 23:18:40
ゼロからじゃね?

66 :デフォルトの名無しさん:2009/11/22(日) 23:18:57
改造できるにしてもゼロから作った方が圧倒的に早いのは確実

67 :デフォルトの名無しさん:2009/11/22(日) 23:25:35
.NET のプログレスバーは、Windows コモンコントロールのプログレスバーをベースにしてる。
ベースの方でそういう機能がないので、改造は面倒だろうね。

いちから作っちゃった方が早いと思うよ。

68 :デフォルトの名無しさん:2009/11/22(日) 23:31:13
そうですか
作ると言ってもまるで状況が想像できないのですがすごく難しそうですね
ボタンでも無理そう><

69 :デフォルトの名無しさん:2009/11/22(日) 23:38:31
数が固定なら簡単だろ?

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

みたいに四角を描画していけばいいわけだ。左から、緑・黄・赤で塗りつぶすと。

70 :デフォルトの名無しさん:2009/11/22(日) 23:46:50
その前の段階も良くわかっていません。
WindowsControlLiblaryというプロジェクトを開いて
フォームの枠(コントロールを何も置かない状態のフォーム)みたいなのを
レベルメーターみたいにしようと思ってやっているのですが、ここまではあってるでしょうか?

71 :デフォルトの名無しさん:2009/11/22(日) 23:51:53
いやカスタムコントロールの方を使う
いま君が開いてるのはユーザーコントロールだけどどうせデザイナ使えないから意味ない

72 :デフォルトの名無しさん:2009/11/22(日) 23:56:41
カスタムコントロールで調べてみます。
ありがとうございます。

73 :デフォルトの名無しさん:2009/11/23(月) 00:01:15
コントロールとして実装する前に、フォーム上でできるようにしてみるほうがいいんじゃね?
できてから、コントロールにすればいいし。

74 :デフォルトの名無しさん:2009/11/23(月) 00:08:21
まあ挫折するだろうな
オーバーライドとかわかってないだろ

75 :デフォルトの名無しさん:2009/11/23(月) 00:13:50
もう挫折してました
誰かが作ったのを探し始めてた;(vb レベルメーター コントロール 検索とかw
既存のプログレスバーのコードは見れないでしょうか?

76 :デフォルトの名無しさん:2009/11/23(月) 00:15:47
未公開
見れても読めるとも思えないけどな、C言語だろうし

77 :デフォルトの名無しさん:2009/11/23(月) 00:17:55
あきらめろよ。

VB6 だろうけど、こんなのはあった。
http://www.a1vbcode.com/a1vbcode/app-1490.asp

78 :デフォルトの名無しさん:2009/11/23(月) 00:18:15
あ。VB4 って書いてあるな。

79 :デフォルトの名無しさん:2009/11/23(月) 00:24:15
2002年にこんなもん出したのか
アホだな

80 :デフォルトの名無しさん: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

81 :デフォルトの名無しさん: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

82 :デフォルトの名無しさん:2009/11/23(月) 01:00:17
おおーすごい!
早速やってみます!ありがとう!

83 :デフォルトの名無しさん:2009/11/23(月) 01:15:42
動いたーー!!
完璧すぎてすご過ぎ
ありがとう!!!!!!!!!!!!!!
さっそくLEDみたいにするのをやってみます。
感謝!感謝!

84 :デフォルトの名無しさん:2009/11/23(月) 01:59:40
なんという甘やかし・・・

85 :デフォルトの名無しさん:2009/11/23(月) 03:28:06
ここは暇つぶしにプログラムするお題を探すスレになりましたw


86 :デフォルトの名無しさん:2009/11/23(月) 09:23:51
>>48
場合によっては具体的なコードをここでさらして、処理過程を見直した方が
良いと思います。
DataTableを使ってまとめてupdateをしてみた場合はどうなのかとか、
いくつか実験をやってみてはいかがでしょうか。

87 :デフォルトの名無しさん: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"

88 :デフォルトの名無しさん:2009/11/23(月) 11:42:02

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

みたいな感じでできる気がするけどあまり褒められたものではない
VBAとは全く別の言語だからVBAではどうとかいう考え方は捨てた方がいい

89 :デフォルトの名無しさん: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"




90 :デフォルトの名無しさん:2009/11/23(月) 11:49:59
VBAのフォームってこんなデタラメなことが出来たんだw
フォームの既定のプロパティなのかな?
こんなことができて嬉しい場面が思い浮かばないが・・・

91 :デフォルトの名無しさん:2009/11/23(月) 11:51:54
配列作る

92 :デフォルトの名無しさん:2009/11/23(月) 11:52:41
配列だな

93 :デフォルトの名無しさん:2009/11/23(月) 11:55:20
>>90
コードが少なくて済むというメリットがあると思います。

94 :デフォルトの名無しさん:2009/11/23(月) 11:57:29
>>91>>92
配列とは、どのような意味なのでしょうか?
TextBoxに格納する文字列を、TextBoxとは別に配列を宣言し、
それに格納しておいて・・・その後の処理をどうしたらいいのかの
イメージがつきません。すみません。

95 :デフォルトの名無しさん:2009/11/23(月) 12:03:09
>>94
配列っていうのは本当はいい答えじゃない。

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

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

要はそのコレクションを自分で用意すればいいってこと。
それはList(Of T)だったり、Dictionary(Of TKey, TValue)だったり、
ただの配列だったり、目的に合わせて適切なものをね。

96 :デフォルトの名無しさん:2009/11/23(月) 12:21:07
>>95
レスありがとうございます。
となると、VB.NETの場合は、必ず以下のような関数を作らないといけなく
なってくるという考えでよろしいのですよね?
・格納する配列の内容をフォーム上のオブジェクトに反映する。
・フォーム上のオブジェクトの内容を配列に格納する。

VBAでは、直接フォーム上のオブジェクトを操作していたので、
VB.NETのこの、つなぎを行う処理を書かなければならないという
考え方にはちょっと違和感を感じますが、慣れる様にしたいと思います。

97 :デフォルトの名無しさん:2009/11/23(月) 12:28:33
そもそもまとめて操作する機会なんてそんなにあるか?

98 :デフォルトの名無しさん:2009/11/23(月) 12:30:34
VB.NET でも、Controls コレクションって用意されてなかったっけ?

99 :デフォルトの名無しさん:2009/11/23(月) 12:30:36
コントロールそのものをコレクションに入れてもいいけど
一般にはクラスやコレクションでデータだけ別管理にした方がUIと分離できて良い方法
VBAだろうと同じ

100 :デフォルトの名無しさん:2009/11/23(月) 13:08:29
>>97
全般的に言うと少ないとなるでしょうね。しかし、似たようなコードを
たくさん書かないといけなくなったりすると、何とかならないかなと
おもったりするんですよ。


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


>>99
確かにMVCモデルという言葉があるように、データと表示は分離した
作り方をした方がいいと思いましたが、型指定されたDataSetみたいな
便利機能がないのが、今のところひっかかっています。
(プログラムをしていけば、慣れていくのだと思いますが)

101 :デフォルトの名無しさん:2009/11/23(月) 13:11:45
>>98
それが>>88のControls

102 :デフォルトの名無しさん:2009/11/23(月) 13:24:45
DataTable作って各TextBoxバインドすれば
一括クリアーも配列への格納も楽だよー

103 :デフォルトの名無しさん:2009/11/23(月) 13:29:36
>>101
解説ありがとうございます。


>>102
ああ、その手がありましたね。

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

頭でっかちになる前に、手を動かせよ。

105 :デフォルトの名無しさん:2009/11/23(月) 14:45:23
IExtenderProvider実装してやればいろいろできる。
グループ名プロパティ提供してグループ名で一括操作とかな。


106 :デフォルトの名無しさん:2009/11/23(月) 15:13:45
>>104
私は、コードを書くよりも、いろいろ考えすぎてたようです。
もっといろいろなプログラムを作る事に集中します。


>>105
私の知識不足で、直感的にどのような操作なのかがイメージ出来ません
でしたが、出していただいたキーワードを元に検索などかけて調べて
みます。ありがとうございます。

107 :デフォルトの名無しさん:2009/11/23(月) 15:48:10
>>106
とりあえずブログラムは経験だから頑張れ

108 :デフォルトの名無しさん:2009/11/23(月) 16:36:33
すみません、質問です。
VB.NET Express のコントロールには、Lineなどというものはないのでしょうか。
フォーム上に、区切りとして、単に線を引いたり、枠線を描いたりしたいのですが。

109 :デフォルトの名無しさん:2009/11/23(月) 16:47:34
labelで代用してる

110 :デフォルトの名無しさん:2009/11/23(月) 16:55:25
VB系の拡張コントロールが提供されてなかったっけ?
Lineとかそういうのが使えるやつ。


111 :デフォルトの名無しさん:2009/11/23(月) 16:57:33
>>109
レスありがとうございます。
線や四角を描く部分をlabelで代用する場合、具体的にプロパティはどのように設定したら
よいのでしょうか?
BorderStyle を FixedSingle にするとラベルに枠が出来るというまでは思いつくの
ですが、その後、線にしたり、任意の大きさの四角にする部分が分かりません。

112 :デフォルトの名無しさん:2009/11/23(月) 17:02:02
PowerPack だな。

113 :デフォルトの名無しさん: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()

こんな感じで無理だっけ?

114 :デフォルトの名無しさん: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
四角



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

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

114の直線はlabelで代用した直線

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

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

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

>>114>>115
labelで代用する場合は AutoSize を false に変えたらよかったのですね。
上手くリサイズが出来なくて苦労してましたが出来ました。
紹介していただいた@ITのサイトも見てみます。

117 :デフォルトの名無しさん:2009/11/23(月) 18:27:41
イベントプロシージャーの外に宣言した
Dim num As Integer
という変数をTextBoxなどのように変更のイベントを発生させるにはどのようにしたら良いでしょうか?

118 :デフォルトの名無しさん:2009/11/23(月) 18:29:26
無理。

119 :デフォルトの名無しさん:2009/11/23(月) 19:10:05
>>117
その変数を自分で変更したら自分で定義した好きなイベントを発生させる

120 :デフォルトの名無しさん:2009/11/23(月) 20:20:28
これを翻訳するとどうなりますか?

Vector3[] vertexs;
vertices = new Vector3[vertices.Length];

121 :デフォルトの名無しさん:2009/11/23(月) 20:24:14
知らんがな。

122 :デフォルトの名無しさん:2009/11/23(月) 20:26:23
DirectXかXNAかなんか?
そんなの自分で調べられないと絶対無理だよ
C#どころかC++も読めないと厳しい

123 :デフォルトの名無しさん:2009/11/23(月) 20:33:38
2chスレッドのレス抽出をするプログラムを作ろうとしています。
URLからスレッドのHTMLを取得することはできたのですが、そこからどうすればいいのかわかりません。

プログラムの引数に指定範囲の最小、最大を与えてその範囲内のレスの本文とIDを取得したいのですが。

124 :デフォルトの名無しさん:2009/11/23(月) 20:34:51
>120
VBでは無理

125 :デフォルトの名無しさん:2009/11/23(月) 20:38:32
>>123
正規表現あたり
.dat取得したほうが解析は楽だと思うけど

126 :デフォルトの名無しさん:2009/11/23(月) 20:42:52
>>123
Datファイルを調べれば幸せになれるかも

127 :デフォルトの名無しさん:2009/11/23(月) 20:53:08
レスありがとうございます。
Datファイルからの取得のほうが楽そうですね。
Datファイルからの解析となると、Datファイルのパスを取得、レス番に指定範囲行を代入、ID、本文を格納という流れになるのかな。

128 :デフォルトの名無しさん:2009/11/23(月) 21:43:33
むかしチャレンジしたが、POSTが分からずに断念した俺登場

129 :デフォルトの名無しさん:2009/11/24(火) 02:13:58
ログ読むだけなんでしょ。
投稿するわけじゃないんだから、POSTは関係ないでしょ。

130 :デフォルトの名無しさん:2009/11/24(火) 03:02:39
それは設計レベルの問題。
「ソフト作りたいのですが、設計ができません」
じゃ、教えるというよりも
代わりに考えて、といってるようなもの。
作りたいと思ったなら自分で考えろ。


131 :デフォルトの名無しさん:2009/11/24(火) 03:03:32
自分で考えるのが嫌なら、既製品を使え。

132 :デフォルトの名無しさん:2009/11/24(火) 10:09:43
○×ゲームのフィールドにあたるクラスを設計・コードを記述し、
以下のスレに投稿したのですが、コーディングや設計に関する部分で、
経験豊富なプログラマーの方々が思う指摘というものを受けてみたいと思い、
こちらで質問をしてみました。
http://pc12.2ch.net/test/read.cgi/tech/1258895847/52-59n

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

どうぞよろしくお願い致します。

133 :デフォルトの名無しさん:2009/11/24(火) 10:16:09
>>127
ローカルに保存したdatは、テキストファイルをどのような形式で表示
させるかという話だと思う。
テキストファイルの操作について分からなければ、ファイルのopenやら
closeはどうやったらいいのか、といったレベルから勉強しなおした方が
良いと思う。

134 :デフォルトの名無しさん:2009/11/24(火) 15:00:44
>>127
とりあえずテキストファイルの操作を学べばおk

135 :デフォルトの名無しさん:2009/11/24(火) 15:44:43
すみませんが質問です。

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

細かいところですが、ある程度はユーザの操作内容を確実に取得できる
ようなコードを書いておく習慣をつけておきたいと思い、質問してみました。

136 :デフォルトの名無しさん:2009/11/24(火) 15:54:17
コントロールのTextがnullになることは普通ないけど
(カスタムコントロールでTextをオーバーライドしてnullを返すような実装にわざとしない限り)、
一応String.IsNullOrEmptyで判断しておけば

137 :デフォルトの名無しさん:2009/11/24(火) 16:06:50
>>136
null判定は不要だったのですね。
String.IsNullOrEmpty で判断したコードを書くように
したいと思います。ありがとうございます。

138 :デフォルトの名無しさん:2009/11/24(火) 16:33:25
VB.NET2003について教えてください。
http://dobon.net/vb/dotnet/form/savefiledialog.html
を参考にファイル保存ダイアログを出しているのですが
sfd.OverwritePrompt = True
'存在しないパスが指定されたとき警告を表示する
'デフォルトでTrueなので指定する必要はない
で上書きの警告ダイアログを出したとき
通常は「はい」ボタンがデフォルトになっているのですが
これを「いいえ」ボタンをデフォルトにすることは可能でしょうか?


139 :デフォルトの名無しさん:2009/11/24(火) 17:06:40
>>138
無理だったと思う

140 :デフォルトの名無しさん:2009/11/24(火) 17:09:21
>>139
やはりそうですか。ありがとうございました。

141 :デフォルトの名無しさん:2009/11/24(火) 17:10:50
>>140
ちょっとまて
それをFalseにして自分で警告ダイアログを表示すればいいんじゃね

142 :デフォルトの名無しさん:2009/11/24(火) 17:30:09
>>140
そもそも 「存在しないパスが指定されたとき警告ダイアログを表示する」
なのに上書き警告ダイアログを表示するってのがよく分からん

143 :デフォルトの名無しさん:2009/11/24(火) 17:39:46
>>142
それはおそらくコピペする行を間違えているのだろうw


>>138
OverwritePromptは、TrueかFalseしか指定できないので、それを
設定する方法では出来ない。となるが、>>141にあるように、
自作で、上書きしようとしているかどうかをチェックし、
警告ダイアログをMessagebox.Show( で表示すると可能ではある。

144 :デフォルトの名無しさん:2009/11/24(火) 18:02:53
なるほど
自分でやればいいのか。ありがとうございました。

145 :デフォルトの名無しさん: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

146 :デフォルトの名無しさん:2009/11/24(火) 20:30:58
基本的な質問で申し訳ありませんが、お願いします。

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

VBAの際は、モジュールを追加して、global 〜〜って感じに
変数を宣言すればよかったのですが。

147 :デフォルトの名無しさん:2009/11/24(火) 20:36:50
Timerイベントで一秒に一回ファイルストリームに1行ずつ書き込んでいるのですが、
同じ時間が重複して書き込まれることがよくあるのですが、これは何が原因でしょうか?

148 :デフォルトの名無しさん:2009/11/24(火) 20:47:41
>>146
public 変数 as integer
こんな感じでいけた気がする

149 :デフォルトの名無しさん:2009/11/24(火) 20:50:46
>>147
>>147
>Timerイベントで一秒に一回ファイルストリームに1行ずつ書き込んでいるのですが、
ファイルストリームに書き込むとは?

>同じ時間が重複して書き込まれることがよくあるのですが、これは何が原因でしょうか?
現在の時間を書き込むってこと?kwskお願い

150 :149:2009/11/24(火) 20:52:44
ミスったorz

151 :デフォルトの名無しさん:2009/11/24(火) 20:56:41
>>146
オブジェクト指向言語だからってオブジェクト指向で書く必要はない
オブジェクト指向する気ないんだったら>>147で十分
本当に勉強する気があるならJavaでもやった方がいい

152 :デフォルトの名無しさん:2009/11/24(火) 21:08:27
>>149
一秒ごとに変化するデータを時間と一緒に書き込んでいます。
今日日中は無人でパソコンを使いながら実行していたのではないのですが
確認したら重複がたくさんありました。

153 :デフォルトの名無しさん:2009/11/24(火) 21:10:03
>>149
ファイルストリームに書き込むというのは
StreamWriterのWriteLine(Str)という方法です。

連投スマソ

154 :デフォルトの名無しさん:2009/11/24(火) 21:10:32
System.Windows.Forms.Timerは不正確だから呼び出し間隔を当てにしてはいけない

155 :149:2009/11/24(火) 21:12:54
>>153
ああ、そういうことね
Timerはそんなに正確じゃなかった気がするよ

156 :デフォルトの名無しさん:2009/11/24(火) 21:21:03
了解です。
時間がとんだ時に取り戻すように同じ時間を書き込んでいる感じなのですが、
これはパソコンの速度の限界なので回避しようがないでしょうか?

157 :149:2009/11/24(火) 21:24:26
>>156
パソコンの早さはあまり関係ないと思う
ライブラリ自体が不正確だったかな

158 :デフォルトの名無しさん:2009/11/24(火) 21:26:23
System.Threading.TimerかSystem.Timers.Timerを使えばかなり精確
どちらも別のスレッドで呼び出されるから扱いには注意

159 :デフォルトの名無しさん:2009/11/24(火) 21:58:27
試してみます。
どうもありがとうございました。

160 :デフォルトの名無しさん:2009/11/24(火) 22:06:51
ここにvbNullString vbNullChar ""の違いを説明できるヤシは居ない予感

161 :デフォルトの名無しさん:2009/11/24(火) 22:13:27
vbNullStringはただのNothing
vbNullCharは0
""は空のStringオブジェクト

162 :149:2009/11/24(火) 22:27:06
>>160
分からないならそう書けよ

163 :デフォルトの名無しさん:2009/11/24(火) 22:46:11
>>148>>151
レスありがとうございます。
オブジェクト指向する気が無いコードの書き方があるのも
分かりましたが、もし、オブジェクト指向する気がある場合だと、
どういう考え方になるのでしょうか?
値が格納されたクラス(もしくは構造体)を設定し、そのインスタンスを
Form2がopenする際に渡すという考え方になるのでしょうか?

164 :デフォルトの名無しさん:2009/11/24(火) 22:49:21
まあそうするのがいいと思う
あと特別な理由(主にパフォーマンス)がなければ構造体は使わずクラスを使う

165 :デフォルトの名無しさん:2009/11/24(火) 23:16:35
>>162逆に素直に教えてクン丸出しで質問してもググレカスと返される
あえて煽ったり釣ったりした方が、適度なマジレスが的確に返ってくる
度を越すと誰にも相手されずにおじゃんだけどな !

166 :デフォルトの名無しさん:2009/11/24(火) 23:25:45
>>164
ありがとうございます。

167 :デフォルトの名無しさん:2009/11/24(火) 23:27:13
>>165
わけのわからんかけひきはしなくていい。

168 :デフォルトの名無しさん:2009/11/24(火) 23:32:16
>>163
いやいやそんなタコ足配線みたいなコードはOOPしようがしまいが
普通のセンスをしてれば「やりたくない」と思うはず。

冷静に考えてみ?
どうして他のフォームの設定値を"Form1"が管理するの?
なんでその設定値を必要とするフォーム自身で管理しようと思わないの?
その方がずっとわかりやすいじゃない。

169 :デフォルトの名無しさん:2009/11/24(火) 23:53:05
考えるより体で覚えろ

170 :デフォルトの名無しさん:2009/11/25(水) 00:53:59
何も考えずに走れ!!!!

171 :デフォルトの名無しさん:2009/11/25(水) 00:56:38
.NETフレームワークって実は内部でWIN32APIをうごかしてる?

172 :デフォルトの名無しさん:2009/11/25(水) 01:00:29
まあそりゃWindowsとの対話は基本Win32API越しにするもんだからな

173 :デフォルトの名無しさん:2009/11/25(水) 14:30:32
昔はDOSやPOSIXやOS/2のAPIも聞いてくれたけどな

174 :デフォルトの名無しさん: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>

どうしたらよいのか教えてください...

175 :361:2009/11/25(水) 16:20:34
>>174
スレ違い
C# の質問スレの方がいい答えがかえってくるはず

176 :デフォルトの名無しさん:2009/11/25(水) 17:24:17
現在オセロ作っていまして
石を置くときにクルッと一回転させてから置くような感じの効果を付けたいのですが
どのように考えればいいんでしょうか?
よろしくお願いします

177 :デフォルトの名無しさん:2009/11/25(水) 17:27:24
3Dでモデリングとか考えてないなら、
何枚か回転途中の絵を用意しといてタイマで絵を切り替えながら描画する

178 :176:2009/11/25(水) 17:29:18
あ、石は単純に円で表現してます
本当は円柱で描きたかったのですがそちらの方もやり方がわかりませんでしたので・・・
では改めてよろしくお願いします

179 :デフォルトの名無しさん:2009/11/25(水) 17:29:42
>>176
石の横幅を小さくしてから大きくする

180 :デフォルトの名無しさん:2009/11/25(水) 17:31:23
>>178
黒と白の石をずらして重ねてみるとか

181 :176:2009/11/25(水) 17:32:24
補足書いてある間に回答がきててすれ違いになってしまいました
>>177>>179
両方のやり方で作ってみて見た目が良かった方でいこうと思います
どうもありがとうございました

182 :176:2009/11/25(水) 17:35:03
これまたすれ違いに・・
>>180
早速取り入れてみます
ありがとうございました

183 :デフォルトの名無しさん:2009/11/26(木) 00:32:02
WebRequestとWebResponseクラスを使ってサイトにアクセスしているのですが、
HTMLソースをString変数に読み込んで、内容を正規表現で調べているのですが、
mshtmlクラスのように、GetElementByTagNameなどのメソッドで
データの取得や設定が簡単に扱えるようにするにはどんな方法でやれば良いでしょうか?

184 :デフォルトの名無しさん:2009/11/26(木) 00:37:25
標準では用意されてない

185 :デフォルトの名無しさん:2009/11/26(木) 00:51:58
DOM やりたいなら、mshtml で読み込めよ。

186 :デフォルトの名無しさん:2009/11/26(木) 00:59:56
レスありがとうございます。
DOMというのですか。この方法はAxWebBrowserを使う時の方法しか知らないのですが、
WebRequestとWebResponseクラスを使った方法でも使うことが出来るでしょうか?
ヒントでも良いので方法を教えて頂けると助かります。

187 :デフォルトの名無しさん:2009/11/26(木) 01:06:38
http://msdn.microsoft.com/en-us/library/aa752047(VS.85).aspx

こーゆーやつ。

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

基本は、インストーラーを作成して・・・となるのでしょうが、
私が作っているプログラムの規模が小さいのもあり、この操作方法で
今のところうまく行っているのですが、これによってどういった不具合が
予測されるかが良く分からない状況です。
どういう問題や不具合が起きると考えられるのかを教えて下さい。お願いします。

189 :174:2009/11/26(木) 07:44:24
>>175
了解しました。
ありがとうございます。


190 :デフォルトの名無しさん:2009/11/26(木) 07:44:33
それで動くんなら問題ない。

マナーとして、debug ビルド版じゃなくて、release ビルド版の方を
配布した方がいいかもしれんが。

191 :デフォルトの名無しさん:2009/11/26(木) 09:37:07
どっかに、汎用の「遺伝的アルゴリズム」のソース落ちてないですか?

192 :デフォルトの名無しさん:2009/11/26(木) 09:51:45
>>188
Debug版は配布すべきでない。
単にDebug.WriteLineなどのログ情報が必要なだけなら、
ReleaseビルドでDEBUG定数の定義を追加すればよい。


193 :デフォルトの名無しさん:2009/11/26(木) 10:21:12
>>188
外部ツール使ってなければ
気にするのはFrameworkのバージョン位だな

3.xが入ってれば
明示的に2.0入れなくても動くんだっけ?


194 :デフォルトの名無しさん:2009/11/26(木) 14:47:31
>>188
Debugビルドの方が、Releaseビルドより容量が大きくなることがあるんじゃなかったっけ?
Debug用の情報が含まれるとかなんとかで。



195 :デフォルトの名無しさん:2009/11/26(木) 15:02:02
ほとんど変わらんかったと思う。
でかいのはあくまでpdb。


196 :デフォルトの名無しさん:2009/11/26(木) 15:38:26
pdbって何なの?
ちょこっとプログラム組んだだけで、
ものすごいサイズのpdbファイルができることがあるんだけど・・・

197 :デフォルトの名無しさん:2009/11/26(木) 17:45:10
どうやってデバッガがソースファイルや行位置やその他諸々を理解してると思う?


198 :デフォルトの名無しさん:2009/11/26(木) 18:10:26
>>197
???

199 :デフォルトの名無しさん:2009/11/26(木) 18:32:07
「pdbファイル」というキーワードを自ら出しておきながら
ググれないとか、もうね。

200 :デフォルトの名無しさん:2009/11/26(木) 21:03:01
>>199
すいません >>198は誤爆なので質問者じゃありません

201 :デフォルトの名無しさん:2009/11/26(木) 21:27:37
>>187
ありがとうございます。
ほとんど意味がわかりませんがまた調べてみたいと思います。

202 :デフォルトの名無しさん:2009/11/26(木) 22:22:57
VBはDebug.Break()ないのけ?

203 :デフォルトの名無しさん:2009/11/26(木) 22:43:32
System.Diagnostics.Debugger.Break()

204 :デフォルトの名無しさん:2009/11/26(木) 22:59:35
なんか俺みたいな初級者が「開発」なんて言葉こっぱずかしくて使えない

205 :デフォルトの名無しさん: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}

のように書きたいです。

206 :デフォルトの名無しさん:2009/11/27(金) 00:00:57
Return New String() { hoge, hoge2 }

207 :デフォルトの名無しさん:2009/11/27(金) 00:06:39
>>206さんありがとうござます。

208 :デフォルトの名無しさん:2009/11/27(金) 02:10:18
新規フォーム作成時の赤黄青のデフォルトアイコン↓
http://dobon.net/vb/dotnet/form/img/formborderstyle_single.png
これを実行ファイルのアイコンにも使用したいと思っているのですが
どこに存在するか分かる方いますか?

209 :デフォルトの名無しさん:2009/11/27(金) 03:31:48
Standard以上ならVisualStudioのImageLibraryにあるかもしれんが
そうでなければ勝手に使うのはライセンス違反になる気がする

210 :188:2009/11/27(金) 07:51:56
debugのexeの質問へのレスをしていただいた方々、ありがとうございました。
なにやら、別の方が割り込んできている様子でしたので念のために断って
おきますが、私は質問の投稿しかしていませんでしたので、それ以外の質問は
別の方だと思われます。

今のところ、特に凝ったものを使ったりはしていないのと、細かいレベルで
プログラムの修正がある関係から、とりあえずは release ビルド版の配布を
行うようにしておきたいと思います。
ありがとうございました。

211 :デフォルトの名無しさん:2009/11/27(金) 08:09:19
別にdebugビルドをリリースしてもええよ
細かすぎんだよプログラマは

212 :デフォルトの名無しさん:2009/11/28(土) 09:40:45
質問です。
私はやっと、VB.NET Express Edition をある程度使いこなせるように
なった者です。
このエディションだと印刷機能が低く、Line関数で座標を数値で
指定しながら程度しか帳票を作ることが出来ないようですが、
コストもある程度考えながら、保守性や生産効率性を考えた上で
帳票を作りたい場合は、どのような方法を取るケースが多いのでしょうか?
上位エディションや、Grapeなどのサードパーティー、Accessを使う方法など
いろいろあるようですが、それらをそろえるには資金的な壁がありましたので、
ちょっとここで聞いてみたいと思いました。

213 :デフォルトの名無しさん:2009/11/28(土) 13:05:15
ActiveReportsとかCrystalReportsとかが一般的だが要は金がないんだろ
WordやExcelをCOM使って帳票の代わりにするとか検討してみれば
小規模であれば差込印刷とかで、アプリ側はCSVだけ作成して
帳票の印字調整はあらかじめWordに設定しておくとかすれば工数も掛からんだろ
後は時間と知識があるなら帳票コントロールの自作とかかね

214 :デフォルトの名無しさん:2009/11/28(土) 13:17:12
iText.netがいいよ

215 :212:2009/11/28(土) 19:15:06
>>213>>214
情報提供ありがとうございます。
出していただいたキーワードをもとに調べてみます。

216 :デフォルトの名無しさん:2009/11/28(土) 19:26:23
自アプリのメッセージボックスをプログラムで消す(キャンセルを押す)にはAPIでハンドルを調べてAPIでメッセージを
送るという方法しかありませんか?

217 :デフォルトの名無しさん:2009/11/28(土) 19:31:40
MessageBoxTimeOutA/W

218 :デフォルトの名無しさん:2009/11/28(土) 19:33:28
プログラム側で勝手に「消す」ようなメッセジーボックスなら
最初から表示しなけりゃいいのに。

時限で自動的に閉じる、みたいなことがしたいのかもしれないが、
それならそういうメッセージボックスクラスを自分で作ればいい。
少なくとも俺はそうした。
別にたいした手間じゃない。

219 :デフォルトの名無しさん:2009/11/28(土) 22:17:07
レスありがとうございます。
MessageBoxTimeOut
で検索したらサンプルが出てきたので今回はそれを使ってみます。

220 :デフォルトの名無しさん: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はハンドルされませんでした」と出るのですがどうすればよいのでしょうか?

221 :デフォルトの名無しさん:2009/11/30(月) 11:44:48
Lengthは文字数を返す
ForはToで指定された値まで繰り返す
例えばLength=3だったとして、For 0 To 3 は何回繰り返す?

222 :デフォルトの名無しさん:2009/11/30(月) 11:51:51
なるほど、文字数より1つ大きい値まで指定してしまったんですね。
ありがとうございました。

223 :デフォルトの名無しさん:2009/11/30(月) 18:27:02
すみません、質問です。
クラス(DataBox)をコーディングにおいて、そのクラスの設定状況によって
別の値を取得できるかどうか、変更可能かどうか、などの動作を行うように
したいと思っています。
このような動きにする場合は、プロパティでは不可能で、メソッドにて
行うということでよろしいのでしょか?

イメージ的にはこんな感じです。
IF mSettei = 1 Then
 return mColor;
Else
 return False;
 ' もしくは例外を返すとか
End IF

224 :デフォルトの名無しさん:2009/11/30(月) 18:30:44
プロパティでは「不可能」ではなく、「不適切」でした。
質問したいのは、プロパティとメソッドの使い分けの考え方の部分です。

225 :デフォルトの名無しさん:2009/11/30(月) 18:56:22
よくわからんが…状況によって、どういう型を返すか解らんよ、ってこと?

226 :デフォルトの名無しさん:2009/11/30(月) 19:19:11
>>225
ある状況であると、値をちゃんとかえす。
べつな状況であると、値を返さない。
という動きにしようと思っているのです。
箱が閉じて鍵がかかってデータが取れない状態と、
空いていて、データが取れる状態の二つの動作を
持たせようと思っているのです。

もしかすると、このような設計をすること自体が
間違いなのかもしれません。
箱が空いていてデータが取れるかどうかの区別は
DataBoxを使用する側の方が制御するべきなのかな?

227 :デフォルトの名無しさん: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. (プロパティだろうとメソッドだろうと構わないが) 別々に戻す。

228 :デフォルトの名無しさん:2009/11/30(月) 21:09:56
>>226
それはダメ
Getで失敗させるのはMSのガイドラインに違反する

229 :デフォルトの名無しさん:2009/11/30(月) 22:25:37
処理に時間がかかる大きな変数を関数に渡して
その後すぐにその変数を書き換えた場合おかしな動作になりますか?

230 :デフォルトの名無しさん:2009/11/30(月) 22:27:24
ならんよ。

231 :デフォルトの名無しさん:2009/11/30(月) 22:52:59
了解です。

232 :デフォルトの名無しさん:2009/11/30(月) 23:34:07
>>226
値を返さない仕様では無く、nullpoを返すとか0や有り得ない数値(時間の分なら59以上とかマイナスの値)を返す様にするんじゃないかな。

233 :デフォルトの名無しさん:2009/12/01(火) 01:24:22
For Each Str As String In ?????
で、ListViewのSubItem(3)をStrに入れるにはどのように書けば良いでしょうか?

234 :デフォルトの名無しさん:2009/12/01(火) 01:52:11
> ListViewのSubItem(3)
とかいう謎の言葉は良くない
ListViewの各アイテムの4列目を列挙したいってこと?
ならListView.ItemsをFor EachつかってListViewItem列挙して
それのSubItems(3).Textを取得する

235 :226:2009/12/01(火) 11:21:31
みなさん、親切にご回答ありがとうございました。

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

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

>>232
「値が返せない」状況の場合は、例外よりも、0などを返す
方向で設計するとよさそうですね。
そのクラスを使うプログラムの方は、例外を取得するのではなく、
ちゃんとした値だったら・・・0だったら・・・という
プログラムになるのですね。

236 :デフォルトの名無しさん:2009/12/01(火) 15:06:10
>>235
エラーコード返すんだったら例外と変わらん
プロパティはあくまでフィールドのように振舞うべき
素直にGetHogeみたいなメソッドにしたほうがいい

237 :デフォルトの名無しさん:2009/12/01(火) 15:18:54
>>236
レスありがとうございます。
クラス設計を行う場合、カプセル化の実現の為、必ずSetter/Getterを設定し、
外部のプログラムは、フィールドを直接操作しないような方向で考えるべきと
されていますが、VB.NETでは、そのあたりの必要機能すべてをプロパティにて
網羅している、と解釈してしまっていたところで、間違った解釈につながって
しまったようです。

純粋にフィールドの値を代入したり取得したりする場合のみ、プロパティを
使用する。そして、(オブジェクトの状態により振る舞いが変わるなど)
条件付きでデータを取得したり設定したりする場合は、メソッドを作る。
という考えでいるべきなのだなと思いました。

238 :デフォルトの名無しさん:2009/12/01(火) 18:15:50
外からフィールドのように見えればいいんであって、
中身は自由に実装していいんだぞ。でないとプロパティの意味がない。
返す値が無いからNothingなのはかまわないが、そのNothingは取得操作が失敗したから
Nothingをエラーコードとして返しているのではなく、そのプロパティの値自体がNothingという意味でなければいけない。

239 :デフォルトの名無しさん:2009/12/01(火) 20:41:49
こういうセオリーだ、とか、これはバッドノウハウだ、とかってのは置いといて、
好きに作ってみればいいじゃん。で、ダメだったらやり直せばいいんだし。

240 :デフォルトの名無しさん:2009/12/01(火) 21:33:42
1の位や10の位で切り上げや切り捨ては行えますか?

241 :デフォルトの名無しさん:2009/12/01(火) 21:38:46
>>240
除余を引いてください。
っていうか、小学生でも思いつく知恵だと思うけど・・・

242 :デフォルトの名無しさん:2009/12/01(火) 21:38:55
足して割って掛ければいいよ

243 :デフォルトの名無しさん:2009/12/01(火) 21:42:10
int型なら10で割ると切捨てなので1の位が消滅する

105/10→10 これにまた10をかける

244 :デフォルトの名無しさん:2009/12/01(火) 23:34:39
>>243
Dim val1, val2 As Integer
val1 = 99999 / 100
val2 = val1 * 100
Console.WriteLine(val2)
( ゚Д゚)

Math.Floor()
( ゚Д゚ )

245 :デフォルトの名無しさん:2009/12/01(火) 23:43:53
\

246 :デフォルトの名無しさん:2009/12/01(火) 23:44:54
/じゃなくて\ね。
っていうか、だから除余を使おうよ。

247 :デフォルトの名無しさん:2009/12/02(水) 00:42:24
っていうか、馬鹿相手にレスするなよ。

248 :デフォルトの名無しさん: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」と表示される。
・ループが回っていることはステップインで確認。

何が問題なのかアドバイスお願いします。

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

そのループも画面更新も同じスレッドで行われるので、ループが回ってる間画面更新できない
定期的な処理ならタイマを使う
重い処理ならBackgroundWorker辺りを使う
Refreshで強制的に再描画させられるけど普通ではないしそんなループ程度じゃ視認できないだろ

250 :デフォルトの名無しさん:2009/12/02(水) 16:35:33
>>249
回答有り難うございます。

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

>そのループも画面更新も同じスレッドで行われるので、ループが回ってる間画面更新できない
>定期的な処理ならタイマを使う
実行結果を見ると確かにPrivate Sub Button1_Clickを抜けて初めてLabel表示が更新されるので
そうかなあと思ってましたが納得です。

251 :デフォルトの名無しさん:2009/12/02(水) 16:53:40
Labelに値をセットすることと、フォームを更新することが
異なるタイミングで行われるということなので、
Update()などで更新してやれば実現できる。

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

これでも処理中に画面が張り付いてしまうのは変わらないから、
本格的なアプリならTimerやBackgroundworkerをすすめる。

252 :デフォルトの名無しさん: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ではどのように宣言してやればいいのでしょうか?


253 :デフォルトの名無しさん:2009/12/02(水) 17:32:23
List(Of T)とか使う

254 :デフォルトの名無しさん:2009/12/02(水) 17:53:03
>> 253
ほんとありがとー。
Cだけしかやったことないっていうのはほんとダメだねぇ・・・
たすかりました。

255 :デフォルトの名無しさん:2009/12/02(水) 19:35:30
そういう教科書に載ってるようなのはたいがいあらかじめ用意されてるから
自分で書こうとしてはいけない

256 :デフォルトの名無しさん:2009/12/02(水) 19:38:22
整数の数があるとして、
11個の連続した整数を取り出したいのに
60-50=10なのに
でも50から60には11個の整数がある。
この矛盾はなに?

257 :デフォルトの名無しさん:2009/12/02(水) 19:43:13
つれますか?

258 :デフォルトの名無しさん:2009/12/02(水) 19:50:32
>>252
CArray 使うとか…いや、まあいい。

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

>>256
しょうがっこうの べんきょうは むずかしいですか?
すうじを 5 と 3 にしてみるとわかりますよ。

259 :デフォルトの名無しさん:2009/12/02(水) 19:51:57
>>256
1-1=0なのに
1から1までは1という1個の整数がある!ふしぎ!

260 :デフォルトの名無しさん:2009/12/02(水) 20:10:08
マジレスヨクナイ

261 :デフォルトの名無しさん:2009/12/03(木) 07:36:33
>>238>>239
レスありがとうございます。
とりあえず手を動かしていろいろやってみたいと思います。

262 :デフォルトの名無しさん:2009/12/03(木) 08:12:54
すいません、もう一つだけ質問です。
メンテナンス目的時のみに使用するメソッドを設定する場合の
命名規則やルールはあるのでしょうか?
コーディング規約ではそういうものは見たことがないので、
質問してみました。
_(アンダーバー)で始まる名前にするなど、適当な考えで
やっておくといいのかな?

細かい事を気にしすぎだという意見が出るかもしれませんが、
多くの人が必ず関係するような事だと思ったので確認しておきたいと
思いました。

263 :デフォルトの名無しさん:2009/12/03(木) 08:21:45
さすがにメンテ云々までMSのガイドラインは無いんじゃないかな?
もし、あったらごめんね

264 :デフォルトの名無しさん:2009/12/03(木) 09:28:19
VB.NETっていきなりWindowsアプリじゃなく
C言語が一番最初コマンドプロンプトでprintfだのから始まったように初歩の初歩から学べないの?

265 :デフォルトの名無しさん:2009/12/03(木) 09:35:51
>>264
プロジェクト作成時に、コンソールアプリケーションを選べばいいと思います。

場合によっては、VB.NETから離れて、BASICを学ぶという選択肢で考えた方が
いいかもしれません。

266 :デフォルトの名無しさん:2009/12/03(木) 09:45:00
そもそも Visual なのだから、基本はフォームにコマンドボタンと
テキストボックスを配置して、コマンドボタンクリック時のイベントに
コードを書いていくというのが、初歩という考え方でもあると思う。
(GUIを作るまでの過程がマウスによる操作で出来るので簡単っていう
意味合いで、Visualです。)

267 :デフォルトの名無しさん: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


268 :デフォルトの名無しさん:2009/12/03(木) 10:39:07
デバッグはドM作業っていうのがよくわかったよ
2時間悩んでもわからなかったのに寝て起きたらあっさり見つかったり

269 :デフォルトの名無しさん:2009/12/03(木) 11:57:53
俺はシャワーのとき解決策を思いつくよ

270 :デフォルトの名無しさん:2009/12/03(木) 12:05:12
俺はいつも丑三つ時に閃くな

271 :デフォルトの名無しさん:2009/12/03(木) 14:40:33
正規表現難しいな
数字の桁数が定まってないのは\dでは探せないしなぁ

272 :デフォルトの名無しさん:2009/12/03(木) 14:44:14
いつからここは愚痴をいうスレになり下がったんだ?w

273 :デフォルトの名無しさん:2009/12/03(木) 15:20:31
オレは、トイレ入ってる時だな。。 一番思いつくのは

274 :デフォルトの名無しさん:2009/12/03(木) 15:56:25
>>271
+とか*の量子指定じゃ駄目なの?
せっかくの質スレなんだから聞いてみろよw


275 :デフォルトの名無しさん: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を記述。

という感じにやるのだと思っていたのですが、この考え方が間違いなのでしょうか。

276 :デフォルトの名無しさん:2009/12/03(木) 17:40:01
>>275
プロジェクト内でも間違いではないが、同一アセンブリ内というのが正確だな。
アセンブリが異なれば例え同じ名前のクラスでも別のクラスという扱いになる。
.NETでは基本的にソースレベルでコピーや共有はしない。

277 :デフォルトの名無しさん:2009/12/03(木) 19:01:37
>>263
レスありがとうございます。
使う人が使い方を間違えないような感じの名前をつけておきたいと思います。

278 :デフォルトの名無しさん:2009/12/03(木) 19:18:40
現在VB.NET2005にて
データベースの接続及びSQL文発行を行う
DLLを作成しており、
接続には『SqlDataReader』を使用しています。

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

また、排他制御を実装する場合はどのようにすれば良いのでしょうか?
行いたい制御としては、
@データ取得中(SELECT)にデータ更新を抑止する
Aデータ更新中(INSERT/UPDATE/DELETE)にはデータの取得/更新を抑止する 
です。

279 :デフォルトの名無しさん:2009/12/03(木) 19:42:34
データベースによる

280 :278:2009/12/03(木) 19:47:40
>>279
すみません、書き忘れました。
使用するデータベースは
『SQLServer2005 Workgroup Edition』です。

281 :デフォルトの名無しさん:2009/12/03(木) 19:49:24
その質問の答えは回答者による。


282 :デフォルトの名無しさん:2009/12/03(木) 19:52:59
SqlDataReader では接続できないんだが
(SqlDataConnection だろ、ってのは置いといて)
MS SQL Server の Isolation Level の設定次第。

283 :デフォルトの名無しさん:2009/12/03(木) 20:04:11
select * from tab with(xlock)


284 :デフォルトの名無しさん:2009/12/03(木) 20:04:14
>>278
とりあえず元スレに移動したことを書いとけよ。
マルチとかいわれんぞ。

285 :デフォルトの名無しさん:2009/12/03(木) 21:19:35
皆プログラミングになんのエディタ使ってる?
俺はPCがカスだから動作が重いけど楽で便利だからVBの統合開発環境をそのまま使ってるんだけど

286 :デフォルトの名無しさん:2009/12/03(木) 21:21:43
VBでVB使わないとかただのアホかマゾ

287 :デフォルトの名無しさん:2009/12/03(木) 21:24:04
メモ帳でやりたいけどやり方わからんから仕方なくVisual Basic 2008 Express使ってる

288 :デフォルトの名無しさん:2009/12/03(木) 21:26:29
edlin

289 :デフォルトの名無しさん:2009/12/03(木) 21:35:22
.NETのクラスライブラリの糞長い型名やメンバ名なんかいちいちタイプしてられるか
もともとインテリセンス前提で作られてるんであってPythonみたいな書きやすさ重視の言語とはわけが違う

290 :デフォルトの名無しさん:2009/12/04(金) 07:50:49
>>276
レスありがとうございます。
分かりやすい説明でした。

291 :デフォルトの名無しさん: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回目の数字の取得まで、
一度出た数字が重複することが無い。

292 :デフォルトの名無しさん:2009/12/04(金) 09:45:05
http://dobon.net/vb/dotnet/programing/arrayshuffle.html
「シャッフル」というキーワードで調べてみるとよかったようですね。
自己解決しました。

293 :デフォルトの名無しさん:2009/12/04(金) 09:49:11
年末ジャンボシミュレータ作る気ですね?
解ります。(゚ー゚ )(。_。)(゚ー゚ )(。_。)ウンウン
私も考えたのですが、どっかにメモしておくしか考えつかないです。
数学板かアルゴリズムのスレで聞いてみようかと思ってました。

294 :デフォルトの名無しさん:2009/12/04(金) 14:17:31
質問です。
VB.NETの変数には、値型と参照型がありますが、変数にこういう二つの
概念を持たせて、プログラミングの際に使い分けをさせたりするメリット
とはどういうものがあるのでしょうか?
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard34.htm
実際にプログラミングをする際に感じるものがいまいち見えませんでしたので
質問をしてみました。こういうプログラミングをしてみるとわかるよという
ものの紹介でも結構です。よろしくお願い致します。

295 :デフォルトの名無しさん:2009/12/04(金) 14:22:59
未定のType変数を用意し、それを後から必要に応じてセットしてから
後でそれを使ってオブジェクトを設定したい場合、

たとえば

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

このようにすると(*)でエラーします。こういう使い方はNGのようで、
どういう仕方で行なうものか教えてください。


296 :295:2009/12/04(金) 14:25:05
(*)ではコーディング状態で「TypeAは定義されていない」となります。


297 :デフォルトの名無しさん:2009/12/04(金) 14:32:16
>>294
値型の理由は主にパフォーマンス ただし分かって使わないと却って悪化する
自分で定義する分には値型を作ることは(列挙体以外)まずないよ

>>295
Dim ObjectAのところでTypeAはプログラム上確定してないんだろ? 実行時に初めて確定する
ならTypeAにキャストしてどうするの? 何もできないじゃん?

298 :295:2009/12/04(金) 14:43:11
>>297
>Dim ObjectAのところでTypeAはプログラム上確定してないんだろ?

そうなんですが、たとえば、親のオブジェクトからプロパティで型を受け取って
それを使ってキャストしたいと思いました。それで元々定義されたメソッドを
子の方で叩くなどしたいと。こういうのは無理なものですか?

299 :デフォルトの名無しさん:2009/12/04(金) 14:55:25
だからさ、TypeAが何型かコーディング時に分からないのに、
どうキャストすんのよ?

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

何がしたいか具体的に書けばもっと真っ当な方法がある可能性が高い。

300 :295:2009/12/04(金) 15:23:55
>>299
コーディング時には実はわかっているのですが、クラス型は親の方で宣言して
おきたく、子の方はいろんな種類があって実行時に型を受け取りたいということ
でした。

ただ、どうも(*)という方法自体が不可能なような感じですかね?Type型のもので
オブジェクトを宣言したりキャストすること自体が間違いなのかなあ・・・


301 :デフォルトの名無しさん:2009/12/04(金) 16:12:35
親が分かってるからとかそういう問題じゃないんだ。
コーディング時にってのは子のコーディング部分で分かってるかって意味だ。


302 :デフォルトの名無しさん:2009/12/04(金) 16:19:09
マウスカーソルがフォーム上の指定した座標上に移動したときに
その座標にグラフィックが描画されるようにしたいのですが、
そのようなイベント(?)はあるのでしょうか?
どのようにすればいいのでしょうか?

現在はピクチャーボックスとマウスエンターイベントで実現しているのですが、
たくさんのピクチャーボックスを使うとものすごく重くなってしまうそうで
ダメと言われてしまいました。

303 :デフォルトの名無しさん:2009/12/04(金) 16:20:26
ひとつのピクチャーボックスでいいだろ
なんでたくさん使うの

304 :デフォルトの名無しさん:2009/12/04(金) 16:28:33
ポトペタ脳ってうざいよね

305 :デフォルトの名無しさん:2009/12/04(金) 16:30:37
>>303
レスありがとうございます
現在はフォームにフォームのクライアント領域と同じ大きさのピクチャーボックスをすでに貼り付けていて
その上に一個ずつ麻雀牌のピクチャーボックスを貼り付けている形になっています。
麻雀パイにマウスエンターすると牌が浮き上がって見えるようにしたいのですが、
これもひとつのピクチャーボックスで実現できますか?

306 :デフォルトの名無しさん: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

307 :デフォルトの名無しさん:2009/12/04(金) 16:37:10
データとビューはわけろよー

308 :デフォルトの名無しさん:2009/12/04(金) 16:44:26
>>300
CType や DirectCast は「型名」を指定するものであって、
Type型で指定するわけじゃない。
>キャストすること自体が
動的な型変換は面倒だぞ。
つ[TypeDescriptor.GetConverter]

309 :デフォルトの名無しさん:2009/12/04(金) 16:48:26
>>305
MouseEnter と MouseLeave のときだけ捕まえて描画したらええやん。

310 :デフォルトの名無しさん:2009/12/04(金) 16:49:29
>>308
たぶん型変換したいわけではなくてどっちかというとレイトバインディングの方だと思う

311 :295:2009/12/04(金) 16:55:31
>>308
>CType や DirectCast は「型名」を指定するものであって、
>Type型で指定するわけじゃない。

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

>動的な型変換
>TypeDescriptor.GetConverter

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



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

子のコーディング時にも親を見ているのでわかっているのですが、
子の方ではそのクラスを宣言できないので、クラスの宣言自体をオブジェクト
にして受け取りたいということなのでした。しかしそういうことは簡単では
なさそうな感じので、とりあえず別の方法も考えてみます。


313 :デフォルトの名無しさん:2009/12/04(金) 17:01:39
>>305がイメージしていることって、例えて言うと、ホームページで
Flashでデザインされたメニューのようなものか?
マウスを動かすとリアルタイムでボタンの色や形が若干変わるという。

314 :デフォルトの名無しさん:2009/12/04(金) 17:30:16
あるイベントに対して、すでになんらかのハンドラが AddHandler
されていることを知るにはどうすればよいでしょう?それらを全て
列挙することはできるでしょうか。

315 :デフォルトの名無しさん:2009/12/04(金) 17:35:57
できないと言っていい
そもそもそんなのが必要になるのってどんなときよ

316 :デフォルトの名無しさん:2009/12/04(金) 17:44:26
ListBox を Form に貼り付けてプログラミングする場合の質問です。
ListBox は、1行につき1件のデータしか表示出来ないのでしょうか?
Access の場合は、ListBox に対してテーブルそのものを貼り付けることが
出来、さらに1件目のデータを非表示にしておいて、クリックした時に
そのデータを取得するということもできたりしたのですが、
そういったことができなさそうなので確認のため、書き込みました。

317 :デフォルトの名無しさん:2009/12/04(金) 17:47:51
[質問]
Panel の中に複数の RadioButton を貼り付けた場合、
現在、どの RadioButton が選択されているかをチェックするには、
Panel のプロパティからでは確認は出来ない?
貼り付けているすべての RadioButtion において
If Me.RadioButton1.Checked = True Then
みたいなコードを書いてチェックするしかない?

318 :デフォルトの名無しさん:2009/12/04(金) 17:51:00
>>316
標準のListBoxはそう
まあListBoxだってDataTableをDataSourceにして
DisplayMemberとValueMemberを指定するぐらいならできる
それで不満ならネットでMultiColumnListBoxでも探せば

319 :デフォルトの名無しさん:2009/12/04(金) 17:53:40
>>317
うん
まあ関数化しとけば便利だね

>>316
ListViewとかDataGridViewとか使うのは?

320 :デフォルトの名無しさん:2009/12/04(金) 17:54:11
>>318
すばやい回答ありがとうございました。
とりあえずは DisplayMember と ValueMember を使う方法でやってみます。
それでうまくできない場合は、紹介していただいたコントロールや
Grid を使うなど別な方法を検討してみます。

321 :デフォルトの名無しさん:2009/12/04(金) 17:57:26
>>319
回答ありがとうございます。
紹介していただいた ListView とか DataGridView の機能について
詳しく調べてみます。
初心者にも親切にありがとうございました。

322 :デフォルトの名無しさん:2009/12/04(金) 17:58:58
arraylist(listbox.listindex)でいいじゃん

323 :デフォルトの名無しさん:2009/12/04(金) 18:07:24
>>322
arraylist を工夫して使えば、 listbox でクリックした名前に相当する
数値データを取得することが出来るっていう意味かな?
ちょっと私の頭がついていけてなくてどういうコードを書いていけば
いいのかのイメージはついていませんが、いろいろとやってみます。
ありがとうございました。

324 :317:2009/12/04(金) 18:09:15
>>319
レスありがとうございます。独りで考えていて不安だったけれど、
他の人の考えを聞く事が出来てすっきりとしました。

325 :デフォルトの名無しさん:2009/12/04(金) 19:24:38
DataSetとDataGridでできるだろ。
DataGridViewじゃなくてDataGridな。


326 :デフォルトの名無しさん:2009/12/05(土) 07:48:04
コマンドボタンの色
Botan1.BackColor = Color.FromArgb(255, 95, 158, 160)
の255のところは0でも255でも色に変化ないようなんだけどどんな意味が?

327 :デフォルトの名無しさん:2009/12/05(土) 07:50:25
透明度

328 :デフォルトの名無しさん:2009/12/05(土) 08:35:10
0でもボタンが透明にならなかったし

329 :デフォルトの名無しさん:2009/12/05(土) 08:46:18
>>328
ボタンは透明にはならんだろ

330 :デフォルトの名無しさん:2009/12/05(土) 10:19:01
どれがどんなかんじに透明に

331 :デフォルトの名無しさん:2009/12/05(土) 10:58:12
>>306
ありがとうございます!!
>If MousePosition.X > 250 And MousePosition.Y > 250 Then
↑のようにマウスの位置を検出できるとは知りませんでした
試してみたいと思います

>>313
はい、そういうイメージです

332 :デフォルトの名無しさん:2009/12/05(土) 11:28:04
かっこいいアニメーションを作りたい気持ちもわからんでもないが、
パイの部分にマウスを持っていったらっていう処理にしようとするから
重たくなったりして、どうしたらいいのやら・・・ってなるんじゃないの?
パイが描画されている座標部分をクリックしたら、浮いて表示される
じゃだめなの?

333 :デフォルトの名無しさん:2009/12/05(土) 13:09:28
>>332さんのアイデアで伺いを立てたら
「それだとなんかイメージと違う」って言われちゃいましたTT

334 :デフォルトの名無しさん:2009/12/05(土) 13:14:41
>>333
だったら、pictureboxをパイの数だけ貼り付けるしかないんじゃないかなぁ。
enterやleaveのイベントをひろって背景を入れ替えていくとか。
場合によっては、VB.NETを使うこと自体をあきらめるのを選択肢に入れた
ほうがいいかもね。
.NET になってから、java並みに重くなってしまってるから。

335 :デフォルトの名無しさん:2009/12/05(土) 13:17:44
処理内容をどこまで考えているかにもよるけれど、
インターフェースはhtmlのスタイルシートでやって、
処理部分をjavascriptでって方法はどうかな?w
この方法だとファイル保存は出来ないけどね。

336 :デフォルトの名無しさん:2009/12/05(土) 15:29:31
>>302
その程度のことなら.NETのWindows Formでも普通にできると俺は思うよ。
というか、まず確実にできる。

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

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

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

>>334
まだこういう恥ずかしい勘違いをしている人がいるのかw

337 :334:2009/12/05(土) 16:31:28
>>336
私は恥ずかしい人でしたが、Timerコントロールとマウスの座標位置を取得する
処理の組み合わせで、原型となるものを作り上げることが出来ました。
今までマウスのイベントのみで処理をしようと考えていたので、コントロールが
大量に必要だという結論に至ってしまっていました。
ありがとうございました。

338 :デフォルトの名無しさん:2009/12/05(土) 17:05:16
WPF

339 :デフォルトの名無しさん:2009/12/05(土) 17:22:59
use32.dllのSendInputでマウスを動かすってのをやってたんだけど
XP32bitの時は問題なく動いてて、今Windows7 64に変えたんで試してみたら
SendInputがまったく機能してないんだけどこれはどうすれば

340 :デフォルトの名無しさん:2009/12/05(土) 17:50:33
まずソース
次にUAC

341 :339:2009/12/05(土) 18:30:23
x86でコンパイルしたら動いた

342 :デフォルトの名無しさん:2009/12/05(土) 18:34:10
API の呼び出し方が悪いのか。

343 :デフォルトの名無しさん:2009/12/05(土) 20:50:57
まずソース
でひっかかったかな?


344 :デフォルトの名無しさん:2009/12/05(土) 21:43:29
ポインタが必要なところをIntPtrではなくIntegerで宣言したりしてない?

345 :デフォルトの名無しさん:2009/12/05(土) 22:54:59
>>330
ボタンのBackColorが透明ってことじゃないの?

346 :デフォルトの名無しさん:2009/12/06(日) 10:07:23
Clipboard.SetText(リッチテキストボックス.Text)
だと
リッチテキストボックス内のテキストの改行が全部なくなっちゃうんだけどどうすれば



347 :デフォルトの名無しさん:2009/12/06(日) 10:31:48
いまVS2005使っています。
#Regionで定義したものがコードウインドウのメソッド選択ボックスで
選択できたら便利だなと思ったんですが、VS2008以降ではそういった
拡張が行なわれていたりしてますか?

348 :デフォルトの名無しさん:2009/12/06(日) 11:04:40
メソッド選択ボックスってインテリセンスのことか?
#Regionってプリプロセッサだからコードの中身とは何の関係もないのでそんな機能あるわけがない

349 :デフォルトの名無しさん:2009/12/06(日) 11:17:00
>>348
コードウインドウの上部にある、「クラス」の選択ボックスの右側にある
「メソッド」選択ボックスです。

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

そうだったのですか。あればすばやく該当の場所を出せるので便利かな
と思ったのでした。

350 :デフォルトの名無しさん:2009/12/06(日) 11:29:10
個人的にはリージョン嫌い。
まあ使いすぎてなきゃいいんだけど。

リージョンを大量にしかも入れ子に何重も書いてたソースは泣きたくなった。

351 :デフォルトの名無しさん:2009/12/06(日) 11:31:54
あんまりでかいソースならPartialで分けるとかクラス分けるとかするべきだな

352 :デフォルトの名無しさん:2009/12/06(日) 12:59:45
>>351
さすがにそれはないし、もっと悪い。

>>350
まさかマウス操作で展開してる、なんてオチじゃないよね?

353 :デフォルトの名無しさん:2009/12/06(日) 13:27:10
カンジンのVB.NETの仕事が見つからない

354 :デフォルトの名無しさん:2009/12/06(日) 13:28:21
VB6のときみたいに、仮想でそのメソッドだけ表示されるような
モードもあったらわかりやすいということはないですか?

355 :デフォルトの名無しさん:2009/12/06(日) 13:53:29
ないから無くなったんだろうね
そういう機能があるとつい長いメソッドを書いてしまいがちになって良くないし

356 :デフォルトの名無しさん:2009/12/06(日) 14:48:20
アウトラインを全部展開する方法が分からない。
普通の全部展開・折りたたみだと、VBの場合うまく行かない。


357 :デフォルトの名無しさん:2009/12/06(日) 18:47:31
アウトラインを止めるみたいなのがあったはず

358 :デフォルトの名無しさん:2009/12/06(日) 19:29:55
If 1 <= iR <= 100 Then

End If

ここらへんでプログラムがうまくうごかないけどどうすれば


359 :デフォルトの名無しさん:2009/12/06(日) 19:35:35
if 1 <= ir and ir <= 100 then
end if

じゃなくて?

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

End If


361 :デフォルトの名無しさん:2009/12/06(日) 19:57:58
あ、ゴメン被った

362 :デフォルトの名無しさん:2009/12/06(日) 23:04:46
この場合はどうでもいいレベルだけど、
基本的にAndAlso使う癖つけといた方がいいぜ。


363 :デフォルトの名無しさん:2009/12/07(月) 03:41:52
>>362
それはどうしてですか?
「他の言語にも近いような書き方と」いう観点では、AndAlsoは使わないほうが
良いと思っていて、私は使っていないのですが。

これは、あおりとかじゃなくて、私はあまり経験が深いほうではないので、
そのメリットなどの確認がしたいという意味合いです。

364 :デフォルトの名無しさん:2009/12/07(月) 08:27:16
ショートサーキット評価でぐぐろう

365 :デフォルトの名無しさん:2009/12/07(月) 08:32:40
>>363
それに何の意味が?

366 :デフォルトの名無しさん:2009/12/07(月) 09:19:43
Form1から別のフォームのコントロールにアクセスするばあい
もしForm2の名前が
とってもながいなまえのフォーム
だったら
とってもながいなまえのフォーム.textbox1.text="abc"
とかになっちゃうけどどーすれば
ちなみに
Dim frm2 as とってもながいなまえのフォーム
frm2.textbox1.text="abc"
としてもabcは入力されない

367 :デフォルトの名無しさん:2009/12/07(月) 10:10:34
>>366
・上の質問
withを使う
短い名前のForm2型に入れなおす

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

frm2とfrm2.textbox1に実体はあるのか?
Nothingになってないかステップ実行して確認しる


368 :デフォルトの名無しさん:2009/12/07(月) 10:13:59
>366

理由は判らないけど、

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

で行けた。

詳しい解説は、誰か頼む。

369 :デフォルトの名無しさん: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

なーんとなく意味は判る様な文字化けなんですが
これってどうやって直したら良いんでしょうか?

370 :366:2009/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

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


>>365
「覚えてしまえば良い」とかいいきってしまったら
反論は出来ませんが、ある言語特有のコードの
書き方のスタイルだけが身についてしまうと、
他の言語を使わなければならない状況になった時、
苦労しそうだなという意見です。
なので、よっぽど処理速度が遅くて・・・という
状況でない限りは、コーディングスタイルの方を
優先した方がよいのでは、と思っているのです。
DB接続時の設定なども、ウィザードを使っての
方法しか知らない場合は他の言語での応用性が
全くありませんし。

372 :デフォルトの名無しさん:2009/12/07(月) 10:40:44
>>369
Debug.WriteLine(Now.ToString("HH:mm:ss @ ") & strName)
じゃないの?

どうしてNowの中に文字列を入れようとしているのかが
良く分かりません。やろうとしている目的や得たい結果
などもあわせて書いてください。

373 :デフォルトの名無しさん:2009/12/07(月) 10:41:33
>>369
例えばTraceLog("TextBox3_GotFocus")だと
Debug.WriteLing(Now.ToString("HH:mm:ss @ TextBox3_GotFocus"))
になるだろ
この末尾のsは先行ゼロ無しの秒数を指してるし
tはAM/PM 指定子の最初の文字を指してる

374 :369:2009/12/07(月) 10:52:38
>>372,373
ああああああっーー
理解しました...ありがdです。

なんで"t"が"牛"に化けるんだろって思ってたら"牛"じゃなくて"午"だったのね...


375 :デフォルトの名無しさん:2009/12/07(月) 11:21:41
>>371
なんかずれてるなあ。
パフォーマンスもあるけど、
例えばnullチェックの後でプロパティチェックするとか、
そういう時に必要になるんだよ。
そして他の言語って大抵ショートサーキットが普通じゃないか?
だから他の言語に合わせる意味でもAndAlsoなんだよ。


376 :デフォルトの名無しさん:2009/12/07(月) 11:29:19
でもなー
andalsoとかキモイんだよな
いやわかるよ。処理をあわせたほうがいいのは。
つかVBの変態仕様を引き継いだのが悪い

377 :デフォルトの名無しさん:2009/12/07(月) 12:01:16
最近プログラム組みだしたんだが、BASICも変わったんだなぁ。
AndAlsoとかOrElseとか論理演算子追加されてるのか。
やっぱ、頭からマニュアル読まないとダメっぽいな。

378 :デフォルトの名無しさん:2009/12/07(月) 12:28:28
C#だってただの&は両辺評価で
&&がショートサーキットなんだから同じだよ。


379 :デフォルトの名無しさん:2009/12/07(月) 13:06:59
あれ?
&ってビット演算で、&&が論理積じゃ無くなってるの?

380 :デフォルトの名無しさん:2009/12/07(月) 13:13:28
C#では論理型と整数型が完全に分離されたから、
(整数) & (整数) はビットごとのAND
(整数) && (整数) は文法エラー
(論理型) & (論理型) はショートサーキットなしのAND
(論理型) && (論理型) はショートサーキットありのAND

VBスレだから触れとくけど
VBの場合は暗黙の型変換があるからちょっと複雑


381 :デフォルトの名無しさん:2009/12/07(月) 16:17:44
さんくすこ。

382 :デフォルトの名無しさん:2009/12/07(月) 18:47:22
俺はショートサーキットすることを前提、またはしないことを前提にした
コーディングはするべきじゃないと思ってる
AndAlsoとか、IF文のネストを1段下げれられるだけだと思うがな

VB.NETってベータで1回ショートサーキットありにしてみて、
結局製品版でなしになったんじゃなかったかな

383 :デフォルトの名無しさん:2009/12/07(月) 19:02:12
思うのは勝手だけども、>>375 の
>例えばnullチェックの後でプロパティチェックするとか
のような局面で2行に分けて書け、と今更言われても
かったるくてしょうがない。

>結局製品版でなしになったんじゃなかったかな
は?

384 :デフォルトの名無しさん:2009/12/07(月) 19:28:04
>>382
ネスト減らせるだけって…
ショートサーキット無けりゃElseが必要なときに困るだろ。


385 :デフォルトの名無しさん:2009/12/07(月) 19:32:21
例えば>>375でElseが必要なとき面倒な事になる。
わざわざ言語で使い分けられるようになってんのに、
どちらも前提にしない意味が分からない。

素人が理解せずに間違いやすいのは分かるが、
じゃあどちらも前提にしないときに
素人が間違ったことをやらなくなるかというと
そうは思えない。


386 :デフォルトの名無しさん:2009/12/07(月) 19:39:50
VB.NETは開発中のときに、通常の演算でショートサーキットする仕様にするって話があった
結局従来通り通常の演算ではショートサーキットしない仕様に落ち着いた
その代わりに、ショートサーキットする特別な演算子が追加されたんだ

387 :デフォルトの名無しさん:2009/12/07(月) 19:47:53
古すぎて覚えてないな。ありそうな話ではあるがbeta以前じゃね?

388 :デフォルトの名無しさん:2009/12/07(月) 19:50:50
C#などのC系言語ではショートサーキットが普通だから
読む人もちゃんと分かって読むから全く問題ないけど
確かにVBオンリーの人には馴染みが薄いだろうから
使わないことにするならそれもアリだと思う

389 :デフォルトの名無しさん:2009/12/07(月) 19:55:09
クラスやメソッドを全部…でなくてもいいけどまとめてある本はありますか?

390 :デフォルトの名無しさん:2009/12/07(月) 19:56:46
msdn

391 :デフォルトの名無しさん:2009/12/07(月) 20:15:30
ですよねっ。w

392 :デフォルトの名無しさん:2009/12/07(月) 20:44:53
>>388
んなこと言って阿呆を甘やかすから
いつまでたってもゴミグラマが死滅しないんだ。

393 :デフォルトの名無しさん:2009/12/07(月) 21:58:13
じゃあVB定番のForm1.button1.Text = "クラスの外から変更!"とか禁止な

394 :デフォルトの名無しさん:2009/12/07(月) 22:04:25
ゴミグラマなんてどうでもいいわ。

395 :デフォルトの名無しさん:2009/12/07(月) 22:07:17
VBだからこそゴミグラマホイホイを目指せ

396 :デフォルトの名無しさん:2009/12/07(月) 22:09:29
>>393
げっ。
あかんのん?

397 :デフォルトの名無しさん:2009/12/07(月) 22:11:22
カプセル化の観点からは問題外です
プロパティやメソッドを定義して間接的に触らせるのが正解です
でもVBだからどうでもいい

398 :デフォルトの名無しさん:2009/12/07(月) 22:12:01
vbでできるんなら使えばいいじゃん
ダメなら他でいい

399 :デフォルトの名無しさん:2009/12/08(火) 10:15:12
>>398の考えも正しいが、突然、開発未経験の他の言語を使って開発を
しなければならなくなる状況も想定してであれば、カプセル化などの
観点を身に付けたやり方をしておいた方が良い。
Accessでは、GUIでテーブルやフィールドの指定が出来るクエリという
機能があるのでSQL文の読み書きが出来なくても良いかどうかと同じ話。

400 :デフォルトの名無しさん:2009/12/08(火) 11:58:52
開発って言葉なんか気恥ずかしくない?
なんだか俺が開発なんてそんな大そうな事とてもじゃないけど言えない

401 :デフォルトの名無しさん:2009/12/08(火) 12:10:06
アナル開発とか

402 :デフォルトの名無しさん:2009/12/08(火) 13:02:47
VBでできるできないじゃなくてカプセル化は作法の問題だぞ
そりゃC#でもJavaでも>>393のようなことはできる

403 :デフォルトの名無しさん:2009/12/08(火) 13:23:48
記述の議論の話になっているので聞いてみたいのだが、
こんな感じの表記を使ったりしていますか?
cnt = cnt + 1

404 :デフォルトの名無しさん:2009/12/08(火) 13:30:34
+= 1 が使えるのは知ってるけど、
VBの場合その表記にしてしまうな。


405 :デフォルトの名無しさん:2009/12/08(火) 13:35:55
はっはっはっ。
最初、cnt++と書いて通らないのに愕然としたのは秘密だ。

406 :403:2009/12/08(火) 13:44:21
レスありがとう。
私の場合は、概ねの言語で使う事が出来る>>403の表記を使うのが
一番だと思うんだけどね。
まちがえて =+ とコード書いてしまうこともあるし。

407 :デフォルトの名無しさん:2009/12/08(火) 13:49:29
ふつー、+= があるならそれを使うだろう。

408 :デフォルトの名無しさん:2009/12/08(火) 13:52:33
VB10 というものがリリースされるそうですが、今度はどんな変更なのですか?
VB9 の時は、LINQ の追加、言語仕様の方は従来と同じ、みたいな感じだったけれど。

409 :デフォルトの名無しさん: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"

410 :デフォルトの名無しさん:2009/12/08(火) 16:31:13
なんと。VBってC#みたいな自動プロパティなかったのか。
いちいちpublic int Number

411 :デフォルトの名無しさん:2009/12/08(火) 16:32:43
趣味程度ならVBはやっぱりいいな。楽だし
何千行もガリガリ書くような言語じゃないかな

412 :デフォルトの名無しさん:2009/12/08(火) 17:05:06
すいません。話についていけてないので質問なのですが、
自動プロパティってなんでしょうか?

413 :デフォルトの名無しさん:2009/12/08(火) 17:06:47
getとかsetとかを書かないで作成できる単純なプロパティ

414 :デフォルトの名無しさん:2009/12/08(火) 17:12:00
>>413
サンクス。
>>410のコードの例だと、クラス名.Number = 10 とか出来るという
ことなんだろうけれど、その10が代入されたメンバを使っての
メソッドの定義は不可能ということになるんですよね?
あくまで、Get/Setのみが目的の限定されたメンバの定義という。

415 :デフォルトの名無しさん:2009/12/08(火) 17:16:23
何言ってるのかわからない
普通のプロパティも分かってないでしょ君

416 :デフォルトの名無しさん:2009/12/08(火) 17:21:21
やたらとラムダ式に対応していっているメリットが良く分からない。
雰囲気的には、少ないメリットの為に、ややこしく、従来とは違う表記も
許可するような機能にしか見えない。
ttp://www.atmarkit.co.jp/fdotnet/csharp30/csharp30_01/csharp30_01_02.html

だからといって学ばなければいいというわけでもないからな。
もっと、いろいろなコードなど、多くの事例を見ていけばつかめる
ようになるのかな?

417 :デフォルトの名無しさん:2009/12/08(火) 17:24:54
>>415
じゃ、俺にプロパティというものを教えてくれ。
あおりとかじゃなくて、フィールドに対するGetter/Setterの役割を
持っているものだと思っていたのだが。

418 :デフォルトの名無しさん:2009/12/08(火) 17:33:51
Dim children As Person() = Array.FindAll(persons, Function(p) p.Age < 18)
とか
VBのスタンスとしてはC#に合わせてるだけだろうけど

419 :デフォルトの名無しさん:2009/12/08(火) 17:41:02
ラムダならF#をやるべきだな。C#のラムダじゃ物足りない!となること請け合い(笑

それは置いといて、VB9ではあまりラムダ式には熱心じゃなかったんだな。
ラムダ式はLinqのクエリ式を実現するための仕掛けと捉えていたので、
クエリ式をリッチにすれば、ラムダ式も拡張メソッドもいらないと考えられていた。


420 :デフォルトの名無しさん:2009/12/08(火) 17:46:49
ラムダ式って何?

421 :デフォルトの名無しさん: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)


422 :デフォルトの名無しさん:2009/12/08(火) 17:56:15
>>421
なんじゃこりゃー
わけわかめ
要らないや

423 :デフォルトの名無しさん:2009/12/08(火) 18:05:33
ラムダ式って、勉強しようとしても毎回わけわかめだ。
なんでも聞くところによると、ラムダ式はM$製ではないある言語によって、
その有用性を世の中に示したらしいが、それのレベルからやらないと
理解は難しいのかなぁ?

初めてDBに触れる人が、 ADO.NET & SQL Server のみでは SQL文 の習得は
難しい。なので、そこから一旦離れて、Accessのクエリを使うなどして、
SQL文や結果をチェックしながら学ぶと理解が出来、使えるようになる。
みたいな話のような気がしている。

424 :デフォルトの名無しさん:2009/12/08(火) 18:36:23
ラムダ式ってオブジェクト指向なみに有用なの?

425 :デフォルトの名無しさん:2009/12/08(火) 18:47:38
>>410
>自動プロパティなかったのか。
必要性がわからん。

>>415
俺の ESP 能力が
「get/set しかできなくて、例えば set されたときに OnNumberChanged() を
 呼び出すことも叶わない」
という意味だよと囁いている。

426 :デフォルトの名無しさん:2009/12/08(火) 19:08:55
>>425
リフレクションにおいてフィールドとプロパティは別モンだから
「取り敢えずフィールドにしておいてset実装が必要になったらプロパティにする」
のは良くない
「取り敢えず自動プロパティ」にしておけば一貫性が保たれる

427 :デフォルトの名無しさん:2009/12/08(火) 19:19:55
ラムダ式か匿名メソッドどっちかは要るよ。
使うときはほんとに使う、ないとやってられない。

まあみた記事が悪いと思うよ。
もっと当たり前の使い方見ればありがたみが分かる。


428 :デフォルトの名無しさん:2009/12/08(火) 19:29:15
赤間信幸著「LINQテクノロジ入門」(日経BPソフトプレス)によると、
自動プロパティは
LINQでデータ加工する際に通常は匿名データ型を使う所で、
明示的にクラスを作成したいときに使うらしい

ラムダ式の必要性もこの本に解説あるし、一度読んでみればいいかも


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

これがあれば鬱陶しいバッキングフィールドを隠蔽できる自動プロパティのよさと
普通のプロパティの柔軟性を両立できるのに。

430 :デフォルトの名無しさん:2009/12/08(火) 20:36:16
>>422
たったこの程度でわからないとか勉強不足だろう。
関数やメソッドもよく知らないんでないか?

431 :デフォルトの名無しさん:2009/12/08(火) 20:40:58
現在、静止画(JpgまたはBmp)の情報を
取得するクラスを作成しているのですが、
『System.Drawing.Image』クラスが使用出来ず、
困っています。
Windowsフォームのみで使用可能なのでしょうか?
クラスライブラリでは同様の情報は取得不可でしょうか?

取得したい情報としては、
・画像の解像度
・PixelFormatの値 
・Flagsの値(YCCかどうかの判断に使用)
などです。


432 :デフォルトの名無しさん:2009/12/08(火) 20:42:50
DLLを参照に追加してないんじゃね

433 :デフォルトの名無しさん:2009/12/08(火) 20:48:05
dllをちゃんと参照しなければ使えない

434 :431:2009/12/08(火) 21:11:15
>>432
>>433
ありがとうございました。
『System.Drawing.dll』を参照設定に
追加する事で対応出来ました。

435 :デフォルトの名無しさん:2009/12/09(水) 01:54:44
For i =0 To arr(cnt) = "A"
みたいにできないのが難点だなぁ

436 :デフォルトの名無しさん:2009/12/09(水) 08:57:20
>>435
それが何をやりたいのか俺には理解できない

437 :デフォルトの名無しさん:2009/12/09(水) 10:50:20
わからねー初心者はレスすんなや

438 :デフォルトの名無しさん: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以外のエンコードも文字を認識する方法はないでしょうか?


439 :デフォルトの名無しさん:2009/12/09(水) 11:03:09
出来る言語って有るのかな?

440 :デフォルトの名無しさん:2009/12/09(水) 11:05:51
>>438
取り敢えずStreamReaderを調べるといいよ

441 :438:2009/12/09(水) 11:21:43
>>440
見たつもりだったのに..
StR = File.OpenText(HanteiFilePath)
の部分を
StR = New StreamReader(HanteiFilePath, System.Text.Encoding.GetEncoding("Shift-JIS"))
としたら解決でした。

ありがとございましたー

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

443 :デフォルトの名無しさん:2009/12/09(水) 17:49:27
Counterが整数ならお好きに。

ただ10という数字に積極的な意味があるなら
9より上より、10以上のほうがいいかな。

444 :デフォルトの名無しさん:2009/12/09(水) 18:53:24
誤差が出る計算だったり、別のスレッドでカウントアップしてるとかじゃなければ
心配してるようなことは起こりえない
仮に飛び越す可能性がある状況だったとして、そのIf Counter > 9のところ
だけうまく通ったところで、そんな状況で他のところがまともに動くとは思えないな

445 :デフォルトの名無しさん:2009/12/09(水) 19:41:46
>>442
カウンターを間違えて2回増加させるとか
カウンターにうっかり2を足してしまうとか

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

ま、そんなレベルのプログラムでまともに動くわけないってのは>444に同意

446 :デフォルトの名無しさん:2009/12/09(水) 19:48:33
コントロールって、メンバに自分自身(Excel VBAで、RangeオブジェクトのCellsメンバのようなもの)
は持ってないのでしょうか?


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

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


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

447 :デフォルトの名無しさん:2009/12/09(水) 19:52:01
>>446
真面目に日本語でオッケー過ぎる質問だと思う。
エスパーの俺でも訳がわからん。

448 :デフォルトの名無しさん:2009/12/09(水) 20:11:42
Me

449 :デフォルトの名無しさん:2009/12/09(水) 23:50:56
VB.netで複数のマウスからの情報を制御して、1つのマウスからのみの情報をカーソルに送るプログラムを組もうとしています。

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

今後どのようなステップを踏めば良いのか御教授お願いします。

450 :デフォルトの名無しさん:2009/12/09(水) 23:51:08
>>443-445
レスありがとうございます。解決です。

451 :デフォルトの名無しさん:2009/12/10(木) 00:29:16
>>449
多分RawInputじゃ入力の破棄はできないはず
WH_MOUSE_LLなら破棄できるけど、このタイミングで入力元の識別できるかなー
WM_INPUTでdwExtraInfoを設定できる余地はあったっけ…と思ったらそもそもWH_MOUSE_LLの後か、WM_INPUT
WH_MOUSE_LLの最中にGetRawInputBufferは有効かどうか…?

452 :デフォルトの名無しさん:2009/12/10(木) 00:37:24
Dim f As Boolean
とするとfはTrueとFalseが選べますが、これを自分で定義する方法を教えてください。
例えばYes,Noとかできないでしょうか?

453 :デフォルトの名無しさん:2009/12/10(木) 00:47:11
比較的要望に近いのは列挙型か?
あーそうだ、モジュールで
Yes As Boolean = True
とかすればいいんだー(棒

454 :デフォルトの名無しさん:2009/12/10(木) 01:21:42
レスどうもです。
出来ればコードエディタで入力時に選択肢が出るようにしたいですがそういう方法はないでしょうか?

455 :デフォルトの名無しさん:2009/12/10(木) 01:28:53
すみません。列挙型を調べたら希望通りのものができました。ありがとうございます。

456 :デフォルトの名無しさん:2009/12/10(木) 02:18:07
このスレ、質問がない時読むと、
ほんと興味ないつまらない話ばっかな。


457 :デフォルトの名無しさん:2009/12/10(木) 03:19:42
>>451

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

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

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



458 :デフォルトの名無しさん:2009/12/10(木) 03:57:43
Dim i As Integer
の後に
また
Dim i As Integer
と書きたい場合は
Dim i As Integer

Dim i As Integer
の間に何を書けば

459 :デフォルトの名無しさん:2009/12/10(木) 04:39:16
なぜ書きたいのか

460 :デフォルトの名無しさん:2009/12/10(木) 07:56:43
Redimのことか?

461 :デフォルトの名無しさん:2009/12/10(木) 08:05:09
Dim i As Integer を先頭に書けばいい

462 :デフォルトの名無しさん:2009/12/10(木) 09:01:24
"Red"という文字列を
Color.Red
にするにはどうすれば

463 :デフォルトの名無しさん:2009/12/10(木) 09:06:21
Enum.Parse

464 :デフォルトの名無しさん:2009/12/10(木) 09:16:09
System.Drawing.ColorのRedはプロパティで列挙型じゃなかった。
>>463は間違い。
リフレクションを使うか。


465 :デフォルトの名無しさん:2009/12/10(木) 09:23:57
よくわかんない

466 :デフォルトの名無しさん: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]


467 :デフォルトの名無しさん:2009/12/10(木) 09:57:54
EnumとかKnownとか0:D} {0} -> {1}とかしらんけどコピペして使ってみる


468 :デフォルトの名無しさん:2009/12/10(木) 10:10:57
>>457
WH_MOUSE_LLはグローバルフックでもDLLは不要
フック用DLLが必要なら.NETだと作れなくなってしまうしな

469 :デフォルトの名無しさん:2009/12/10(木) 10:52:52
ColorConverterだったか使えば?


470 :デフォルトの名無しさん:2009/12/10(木) 10:58:50
いやColor.FromNameっていうそのまんまなのがあるんだが

471 :デフォルトの名無しさん:2009/12/10(木) 11:58:01
おお、忘れてた。
システムカラーとか要らないならそれで良かったな確か。


472 :デフォルトの名無しさん:2009/12/10(木) 12:55:24
できた


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

名前空間: System.Drawing
アセンブリ: System.Drawing (system.drawing.dll 内)

473 :デフォルトの名無しさん:2009/12/10(木) 15:17:22
デバッグ>ウィンドウ>イミディエイト
でフォームが表示されるはずなんだけどピクリとも反応しない。
普通にデバッグすればフォームは立ち上がる。
なにか設定がおかしいのかな?

474 :デフォルトの名無しさん:2009/12/10(木) 15:23:08
>>473
>デバッグ>ウィンドウ>イミディエイト
>で
「イミディエイト ウィンドウ」が開きましたか?ならば正常です。

475 :デフォルトの名無しさん:2009/12/10(木) 18:41:15
ttp://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet08/vb6tonet08_01.html
このサイトには、ファイルの入出力においては、いくつかやり方がありますよ。
ただ、.NET Framework のクラス・ライブラリで動かすやり方で記述した
方がいいですよ。という印象を受けるような記事がかかれていますが、
私が感じる.NET Framework のクラス・ライブラリで記述するメリットは
Monoなど、「移植性」という部分だけだと感じるのですが、それ以外にも
何かあるのでしょうか?
.NET Framework そのもののバージョンアップ時の互換性が保たれ易いかは、
大きな違いがなさそうに思いますし。

クラスライブラリ関係の事がよくわかってないので、質問をしてみました。
誘導でも良いので何かヒントをお願い致します。

476 :デフォルトの名無しさん:2009/12/10(木) 18:52:58
記事読んでないけど、
.NET Framework は、Windows 標準でもあるし
VBやC#などでもクラスライブラリを使いまわしやすいからじゃない?


477 :デフォルトの名無しさん:2009/12/10(木) 23:18:25
今のVBでまだ
Open "Hhhhh.dat" For Input As #1
みたいな書き方できるんだっけ?

478 :デフォルトの名無しさん:2009/12/10(木) 23:25:21
無理 FileOpen関数が代わり
有効なファイル番号とかマルチスレッドのかけらも考慮されてないよな
まあVB6までは存在しなかった概念だから仕方ないが

479 :デフォルトの名無しさん:2009/12/11(金) 01:02:42
Transparency
で透明にしたフォームは
画面を動画としてキャプチャするソフトに写らないけどどうすれば

480 :デフォルトの名無しさん:2009/12/11(金) 01:21:37
>>475
古いやり方に何のメリットがあるんだよ。
ただ不便なだけ。


481 :デフォルトの名無しさん:2009/12/11(金) 06:40:06
VB.NET2003で作ったプログラムにバグがあったと思ってデバックしようとしたけど、
IDEで実行しても再現しない。よく考えると、どうやらVisual Studioo .NET 2003
に付属のDotfuscator Community Editionで難読化したものを実行すると動作がお
かしくなるらしい。
何なんだこれは、出来損ないではないか。
これ使ってる人いるのかな。

482 :デフォルトの名無しさん:2009/12/11(金) 07:00:33
>>475
どっちでもいいよ。

483 :デフォルトの名無しさん:2009/12/11(金) 08:49:39
>>481
ボクたちには関係無い話だな。w

484 :デフォルトの名無しさん:2009/12/11(金) 09:07:28
1/297.9を

x/16bit
に書き直すとして
16bitの10ッしんすうと
xの10進数の値の部分はどうなるか計算できない


485 :デフォルトの名無しさん:2009/12/11(金) 10:04:46
何を言ッているかわからねーと思うが(ry

10/2979 じゃなくて?

486 :デフォルトの名無しさん:2009/12/11(金) 10:07:31
意味がわからない
16bitって何? 一般的に16bitっていうと具体的な値じゃなくて
値の記憶域の幅だぞ

487 :484:2009/12/11(金) 11:18:19
分母が6万ごせんなんちゃらかんちゃらのときの分子の値

488 :146=135:2009/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)
もしかしてこれだけのこと?
宿題としては意図が分からんな
整数なら理解できるがなぜ小数点・・・

489 :デフォルトの名無しさん:2009/12/11(金) 11:49:38
>>476
>>480
>>482
レスありがとうございます。


490 :デフォルトの名無しさん:2009/12/11(金) 13:10:56
>>487
ああ、1/297.9 ってBB確率か何かか。
そんな算数も判んなくて大丈夫か?

491 :デフォルトの名無しさん: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
にあるアセンブリのみが表示されます

って書いてるんだけど明らかにそれ以外のものも参照の追加にあるんだけどなんで?

492 :デフォルトの名無しさん:2009/12/11(金) 23:01:55
いや、ちゃんと説明されてるやんけ。。。(−_−;)

493 :デフォルトの名無しさん:2009/12/11(金) 23:16:06
・アセンブリを次の場所のいずれかに移動またはコピーします。

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

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

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

と書いてあるよ?

494 :デフォルトの名無しさん: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しか見あたらないんだけど
これとは違うみたい。

コントロールの順番を設定するにはどうすれば良いのでしょうか?

495 :デフォルトの名無しさん: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 = "表示")を配置し

496 :デフォルトの名無しさん:2009/12/11(金) 23:37:58
>>494
番号でコントロールを指定できて何か嬉しいことある?
本当にある?

よーく考えた方がいいよ。

497 :デフォルトの名無しさん:2009/12/11(金) 23:51:20
>>493
C:\Windows\Microsoft.net\DirectX for Managed Code

とか、あきらかにその三つに含まれないものも.NETタブにあるんだけどなんで?

498 :デフォルトの名無しさん:2009/12/12(土) 00:45:14
ここにあるアセンブリ*だけ*が、とは書かれてないだろ。

499 :デフォルトの名無しさん:2009/12/12(土) 08:55:04
Format(Single,"0.00")
だと少数3位で切り捨てになっちゃうので
3位を四捨五入するにはどうすれば

500 :デフォルトの名無しさん:2009/12/12(土) 08:58:16
+0.005してからformat?


501 :デフォルトの名無しさん:2009/12/12(土) 13:58:31
切り捨てて本当かよそれ

502 :デフォルトの名無しさん:2009/12/12(土) 14:56:01
VBのFormat関数の動きってどうだったかな…


503 :デフォルトの名無しさん:2009/12/12(土) 16:58:50
質問です。textbox で右クリックしたときに表示される
コンテキストメニューをrichtextboxでも同様に使いたいのですが、
デフォルトで無い状態です。 どうすればいいですか?

504 :デフォルトの名無しさん:2009/12/12(土) 17:12:58
無理

505 :デフォルトの名無しさん:2009/12/12(土) 19:06:27
了解

506 :デフォルトの名無しさん:2009/12/12(土) 19:28:53
VBってひとつの行にいっぱい書く方法ないの?
C言語だと
int x,y; x=10; y=x+10; printf("%d",x+y);

みたいにいっぱいかけたんだけどVBは?

507 :デフォルトの名無しさん:2009/12/12(土) 19:31:58


508 :デフォルトの名無しさん:2009/12/13(日) 00:12:32
もう、熟成しきって、そんなレベルでしかネタが無くなりましたか。

509 :デフォルトの名無しさん:2009/12/13(日) 01:15:12
なんかXNAのページでC#専用みたいに書いてるけどDLLさえあればVBでもいいんだな。

510 :デフォルトの名無しさん:2009/12/13(日) 18:50:22
Xboxでは動かせないよ
審査が通らない

511 :デフォルトの名無しさん:2009/12/13(日) 19:03:27
すんません、教えてください。VS2005でVBで開発していますが、
ブレークポイントを設定して止めたり、一時停止ボタンで実行を
止めたりしたときに、やたらと開発環境がハングして困っています。
これはソースコードに問題がある場合がありますか?それとも
VS2008以降ではこういうことはなくなっている問題なのでしょうか?
ご指導ください。

512 :デフォルトの名無しさん:2009/12/13(日) 19:05:46
スタートページを表示しない設定にしてみて

513 :デフォルトの名無しさん:2009/12/13(日) 19:07:48
低スペ乙

514 :デフォルトの名無しさん:2009/12/13(日) 19:15:03
>>512
一応スタートページは表示していないのですが、コードウインドウはたくさん
残したまま終了していて、再度立ち上げるときにはたくさんのコードウインドウが
開かれて立ち上がります、これがいけないのでしょうか・・・

>>513
マシンのスペックが足りていないということでしょうか?
メモリーは一応4GB積んであり、物理メモリーは850MGぐらいまでしか
使用されていない状態のようで、そちらの余裕はあるようなのですが。

515 :514:2009/12/13(日) 19:34:21
(訂正)>850MG→850MB

516 :514:2009/12/13(日) 19:42:09
あと、それとExplorer等でファイルやフォルダを削除すると、その最初の実行の際に
やたらと時間がかかる傾向にありました。2回目以降はそれほどかからない
のですが、1回目のときは30秒ぐらいかかっています。CPUは、一応
Core2Duoの2.6GHzなのですがこれでも遅いのか・・・


517 :デフォルトの名無しさん:2009/12/13(日) 19:48:46
ブレークポイントとか使ったことない
msgboxデバッグで十分

518 :デフォルトの名無しさん:2009/12/13(日) 20:19:31
>Explorer等でファイルやフォルダを削除すると、その最初の実行の際にやたらと時間がかかる傾向

VSとは関係なく、何かしらのファイルを削除しようとすると30秒かかるって事なら
OSのファイル管理の具合が悪いか、ドライブの物理的異常かもねー。そうなると板違い

519 :デフォルトの名無しさん:2009/12/13(日) 21:04:04
まずはスキャンディスクだ

520 :デフォルトの名無しさん:2009/12/13(日) 21:14:58
トドメになることあるから覚悟して実行しろよ…


521 :デフォルトの名無しさん:2009/12/13(日) 21:19:14
オブジェクトブラウザ日本語にしてくれよMS

522 :デフォルトの名無しさん:2009/12/13(日) 21:24:05
メッセージボックスの文字列をAPI(SetWindowText)で書き換えたいのですが、
メッセージボックスのメッセージ部分のウインドウハンドルを取得する方法で
Windows全体の子ウィンドウを列挙して調べる以外の方法があれば
流れのような感じでも良いので教えていただけないでしょうか?


523 :デフォルトの名無しさん:2009/12/13(日) 21:28:02
自プロセスなら CBTフックができるかも。
他プロセスなら列挙しかないだろ。

524 :デフォルトの名無しさん:2009/12/13(日) 21:48:44
ありがとうございます。
CBTフックの方法で調べてみたいとおもいます。

525 :デフォルトの名無しさん:2009/12/13(日) 23:28:41
>>520
なぜトドメになるのかkwsk

526 :デフォルトの名無しさん:2009/12/13(日) 23:40:28
>>525
何故かは知らんけ瀕死のHDDにそんなことしちゃダメなのは常識でしょ。
しかし、最近のHDDはSMART当てにならんね。
死ぬときは何の予兆もなくコロッと逝く。
その辺は10年ぐらい前のHDDの方がまともだった気がする。

527 :デフォルトの名無しさん:2009/12/14(月) 00:19:33
HDD瀕死なら、たまにOSが起動しないとか
他にも色々と問題が発生してそうだけどな

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

それでもデバックやらで固まるならVS入れ直すな
それでもダメならOSから入れ直し

528 :デフォルトの名無しさん:2009/12/14(月) 01:33:13
すみません、VB2005で開発をしているものです。
規模の小さなアプリ開発で
ファイルベースのデータを扱う際のDALC
(データアクセスロジックコントロール)の作り方がわかりません。
どういう点に注意して作れば良いのでしょうか。


529 :デフォルトの名無しさん: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タグの値を
上記のコードで取得する事が出来ないのでしょうか?





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

悪用しないで下さいと言われても
悪用以外に使い道がなさそうなツール。


531 :デフォルトの名無しさん:2009/12/14(月) 07:09:43
>>529
そのページinputタグが無いみたいだけど

532 :デフォルトの名無しさん:2009/12/14(月) 08:38:20
>>529
inputじゃないね
ページによってソース違うからソース見てみ

533 :デフォルトの名無しさん:2009/12/14(月) 08:56:29
ログインには Java Script が必要です。

だって

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

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


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

このページだけ自動ログインできない、、、


535 :デフォルトの名無しさん:2009/12/14(月) 21:43:22
がんばってください

536 :デフォルトの名無しさん:2009/12/14(月) 21:58:40
そういうことやっても問題ないと思っているようなら
googleに直接メールして聞いてみりゃいいじゃん

537 :デフォルトの名無しさん:2009/12/14(月) 22:00:04
Busy 判定じゃなくて、DocumentComplete のあとに、しばらく待ってみたら?

538 :デフォルトの名無しさん:2009/12/14(月) 22:09:50
>>537
一応5秒程度スリープして試してみてもダメでした。。。
Googleトラップをなんとしても突破したいです。。。

凄腕のPGさん突破できた人はいますか?
マジでここだけ無理。。。

539 :デフォルトの名無しさん:2009/12/14(月) 22:13:49
5秒とかじゃなくてさ・・・。

540 :デフォルトの名無しさん:2009/12/14(月) 22:21:58
loginとこiframeになってるのか

541 :デフォルトの名無しさん:2009/12/14(月) 22:27:33
凄腕のPGさん(笑)
いい加減しつこい
VIPでヤレ

542 :デフォルトの名無しさん:2009/12/14(月) 22:38:30
iframeのとこのURLでやったらログインできたよ

543 :デフォルトの名無しさん:2009/12/14(月) 22:45:02
adSense の URL -> iframe(awlogin) -> outerhtml -> input タグ(Email, Passwd)

でいいのかな。

544 :デフォルトの名無しさん:2009/12/14(月) 22:48:07
>>542
すみません。ソースを iframeで検索してもヒットしませんでした。
どうやってURLを見つけられたのでしょうか?
またURLを教えて頂けると非常に助かります。

545 :デフォルトの名無しさん:2009/12/14(月) 22:50:48
>>542 >>543
どうもありがとうございます。Googleの牙城を突破する事が出来ました^^;
やっぱ上には上がいますね。凄いです。

>>541
低脳は氏ね。

546 :デフォルトの名無しさん:2009/12/14(月) 22:50:56
これだけ説明聞いてもダメならあきらめろよ。

547 :デフォルトの名無しさん:2009/12/14(月) 22:50:57
../../login-box.js
このソースがログインボックス生成してるのわかるじゃん
でこれを読むと
document.write('\n\74iframe style\75\・・・・

ってことはログインボックスのあたりを右クリックでプロパティで
URLゲット

548 :デフォルトの名無しさん:2009/12/14(月) 22:51:47
つか、iframe とって、getAttribute("src") でいいだろ。

549 :デフォルトの名無しさん:2009/12/14(月) 23:00:39
>>547 >>548
本当に凄いです。スーパーハカーです。

>>546
お前はクズ。

550 :デフォルトの名無しさん:2009/12/15(火) 00:14:29
凄腕のPGさん以外書き込むんじゃねーぞカス共

551 :デフォルトの名無しさん:2009/12/15(火) 00:17:53
>>550
呼んだ?

552 :デフォルトの名無しさん:2009/12/15(火) 00:36:51
解決した途端、強気になる>>545
解決して良かったね、もう来るなよ。


553 :デフォルトの名無しさん:2009/12/15(火) 20:22:57
ファイル名が違っても内容が同じファイルを探したいのですが、
容量がぴったり同じものを最初に探し出して
次にファイルの適当な位置を何箇所か比較するという
方法を考えているのですが、いきなりファイルの途中を読み込む
方法がわからないのですが、良い方法があったら教えて頂きたいです。

554 :デフォルトの名無しさん:2009/12/15(火) 20:26:53
ハッシュするとかでいいんじゃね?

555 :デフォルトの名無しさん:2009/12/15(火) 20:48:42
FileStream使えばランダムアクセスできるよ
ファイル比較は比較対象を想定できるかどうかで望ましいアプローチが結構変わるね

556 :デフォルトの名無しさん:2009/12/15(火) 22:11:19
どうしても分からないので質問させてください。

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

このエラーはどういったときに発生するものなのでしょうか?
よろしくお願いいたします。

557 :デフォルトの名無しさん:2009/12/15(火) 22:22:37
>>556
フォームではなくコード上でまずインスタンス生成するコードを書いて、例外でストップするように設定し、デバッグ実行してみたら?

558 :デフォルトの名無しさん:2009/12/15(火) 22:23:01
デバッグすれば?

その手の問題の多くは、DesignMode への考慮不足だけど・・・。

559 :デフォルトの名無しさん:2009/12/15(火) 22:34:43
>>557,558
ありがとうございます。
仰るとおり DesignMode の考慮不足だったようですorz
次から tabcontrol を扱う際は注意したいと思います。

560 :553:2009/12/16(水) 00:54:58
レスありがとうございました。
FileStreamでできました。

561 :デフォルトの名無しさん:2009/12/16(水) 18:03:21
VB2005でシュオッチ(キーボード連打回数測定ソフト)を作っています。

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

もう少し負担の軽い、効果音専用のようなコードは無いでしょうか?

562 :デフォルトの名無しさん: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などの音楽ファイルを再生する

使ったことは無いから知らないぞ
大体連打なんだから音鳴らさなくても困らないんじゃないか

563 :562:2009/12/16(水) 18:38:37
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/440systemsounds/systemsounds.html
beep音

564 :デフォルトの名無しさん:2009/12/16(水) 18:46:43
DirectXを利用するのが一番簡単みたいだな
DirectXすごいな

565 :デフォルトの名無しさん:2009/12/16(水) 18:53:38
>>562
さっそく試してみようと思います。
ありがとうございました!

566 :デフォルトの名無しさん:2009/12/16(水) 19:32:28
DirectX SDK ダウンロードページ
http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&displaylang=en


567 :デフォルトの名無しさん:2009/12/16(水) 20:20:24
アプリケーションの設定の作成について質問です。
ListBoxの値をユーザーが追加、編集できるようなプログラムを
作りたいと考えているのですが、値をどう保存すればよいのか、
が分かりません。
アプリケーション構成ファイルに簡単に保存できるのでしょうか?
iniやcsvファイルなどを使って保存しておくしかないのでしょうか?


568 :デフォルトの名無しさん:2009/12/16(水) 20:24:36
多分そういう方法を取るのが一番

569 :デフォルトの名無しさん:2009/12/16(水) 20:44:39
ありがとうございます。
やってみます!


570 :デフォルトの名無しさん:2009/12/16(水) 21:51:17
その方法は二番だな


571 :デフォルトの名無しさん:2009/12/16(水) 21:56:28
xmlファイルに保存とかでもいいんじゃね?

572 :デフォルトの名無しさん:2009/12/16(水) 22:01:34
じゃ、一番は何?

573 :デフォルトの名無しさん:2009/12/16(水) 22:10:31
>>570先生に期待してますよ^^

574 :デフォルトの名無しさん:2009/12/16(水) 22:14:31
一番はJSON

575 :デフォルトの名無しさん:2009/12/16(水) 22:19:38
それはないわ・・・

576 :デフォルトの名無しさん:2009/12/16(水) 22:22:03
簡単なのはXMLだな
フォーマットを意識したコードが一切不要

577 :デフォルトの名無しさん:2009/12/16(水) 23:13:05
一番はアプリケーションセッティングのカスタマイズ。


578 :デフォルトの名無しさん:2009/12/16(水) 23:51:44
俺のスタンスでは、設定情報は原則XMLにしておくが、
リストボックスに表示するような系統のもの(データ件数が多いもの)であれば、
mdbファイルにまとめておくだろうな。
SQL文書いてアクセスするだけで目的のものがすぐに取得できるし、
そういうSQL文での抽出が便利であると感じるケースが多いから。

579 :デフォルトの名無しさん:2009/12/16(水) 23:53:38
オレは、csvだなぁ

580 :デフォルトの名無しさん:2009/12/16(水) 23:57:28
件数次第だな。

581 :デフォルトの名無しさん:2009/12/16(水) 23:58:58
親プログラムから子プログラムを呼ぶんだけど、
子プログラムから数値以外の値を返す方法はない?

親と子は両方VB.NETで作成します。
子をDLLにしろってのは無しで。別プロセス別アプリケーションでお願いします。
子がファイルにシリアライズ出力してそれを親が読み取る以外の方法があれば教えて。

582 :デフォルトの名無しさん:2009/12/17(木) 00:00:57
クリップボードとかじゃダメなん?

583 :デフォルトの名無しさん:2009/12/17(木) 00:02:38
標準出力か、普通のプロセス間通信。

584 :デフォルトの名無しさん:2009/12/17(木) 00:08:15
SendMessage で WM_COPYDATA とか

585 :デフォルトの名無しさん:2009/12/17(木) 00:16:11
やったことないけど、GlobalAddAtom() して、ATOM を親プロセスに返す、ってのはどうだろ?

586 :デフォルトの名無しさん:2009/12/17(木) 00:59:04
>582-585
ありがとう。それぞれ調べてみるよ。

587 :デフォルトの名無しさん:2009/12/17(木) 01:03:32
>普通のプロセス間通信
普通ってなんだよっ


588 :デフォルトの名無しさん:2009/12/17(木) 01:18:20
親子のプログラムってどういう状況の話をしているのかがわからん。
いや、あおりとかじゃなくて。
異なるフォームでのデータのやり取りではなさそうだし、親となるクラスが、
子どもとなるクラスを持っているというわけでもなさそうだし。

589 :デフォルトの名無しさん:2009/12/17(木) 01:40:17
いい方法かどうかは別としてよくあると言えばよくある話だと思うが。
特に理由がなければ基本的にはやらない方向で考えるけどな。


590 :デフォルトの名無しさん:2009/12/17(木) 04:55:38
すでにVB.NETの枠をはみ出て、Windows OSの機能とかAPIとか
ついでにDCOMとかの話だもんな。


591 :デフォルトの名無しさん:2009/12/17(木) 07:12:52
>>581
ソケット通信がいいよ

592 :デフォルトの名無しさん:2009/12/17(木) 12:15:17
そんなこと言い出したら.NET Frameworkのクラスの使い方すらスレ違いだ

593 :581,586:2009/12/17(木) 23:14:45
子がConsole.Writelineで文字列を出力して、
親がProcess.StandardOutput.ReadToEndで読めました。楽でいいね。ありがとう。

594 :デフォルトの名無しさん:2009/12/18(金) 01:53:47
それは無理だろうw

595 :デフォルトの名無しさん:2009/12/18(金) 02:04:13



596 :デフォルトの名無しさん:2009/12/18(金) 02:22:39
>>593
オメ!

597 :デフォルトの名無しさん:2009/12/18(金) 12:57:56
>子がファイルにシリアライズ出力してそれを親が読み取る以外の方法
>>593なら実質的に同じようなもんだと思うんだが

598 :デフォルトの名無しさん:2009/12/18(金) 17:43:07
「ファイルシステム上のファイル」でさえなければ、何でもよかったんだろう。

599 :デフォルトの名無しさん:2009/12/18(金) 20:39:03
RvResult = MessageBox.Show(MSG, "CAUTION", _
      MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, _
      MessageBoxDefaultButton.Button1, 0)

こんな感じで記述しているメッセージボックスなんですが、
なぜか素通りしてしまう場合がありました。これまで、
ここまでしっかり引数を書いたときには発生していなかったのですが、
ここのところ頻発してしまうので困っています。環境はVS2005ですが
何か注意するべき点があるでしょうか?よろしくです。

600 :デフォルトの名無しさん:2009/12/18(金) 21:05:55
クラスビューがあるらしいんだけど表示メニューにない。
VB2008Expressだからですか?
VS2008Exだとあるんでしょうか?

601 :600:2009/12/18(金) 21:19:42
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard40.htm
ないんか。なんでや・・・VSはあるんか糞
ナンデワザワザケズッテルンヤ?

602 :599:2009/12/18(金) 21:21:01
あんまり頻発するんでしかたなくブレークポイントを置いて止めながら
見てみるとそういう場合はほとんど例外なくMessageBoxは表示されます。
ゆっくり一つ一つステップを確認しながら実行する分には表示されるという
感じなのです。こういうことはしばしばあるものでしょうか?あるとすると
原因はどんなことが考えられるでしょう?

603 :600:2009/12/18(金) 21:41:26
その行の前にデバッグプリントでカウントしてみたらどう?
99%勘違いだと思うよ。

604 :デフォルトの名無しさん:2009/12/18(金) 21:44:38
トラックバーについて質問です。
トラックバー内のどの部分でマウスの左ボタンを押下しても、
つまみをつかんだ状態にしたいのですが可能でしょうか?
つまみのない場所で、マウスの左ボタンを押下すると、
つまみがその位置に移動し、その状態でマウスを動かすと
つまみも連動して動くといったような処理がしたいです。
よろしくお願いします。

605 :599:2009/12/18(金) 21:56:33
>>603
どうもです。Debug.Print()がもちろんやってみています。
確実にMessageBox.Show()のすぐ次のDebug.Print()が実行されて
います(100%)。

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

どうするべきだろうか、どうしてもYesNoCancelで表示したいのだが。

606 :600:2009/12/18(金) 22:00:51
いや、あなたが表示されるはずと思っている時にデバッグプリンとではカウントしているかどうかを見てほしい

607 :599:2009/12/18(金) 22:06:41
>>606
>デバッグプリンとではカウントしているかどうか

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

そういう意味じゃなくて、でしょうか??

608 :デフォルトの名無しさん:2009/12/18(金) 22:08:58
いや絶対勘違いだから(100%)
賭けてもいいよ

609 :599:2009/12/18(金) 22:09:37
>>607
それで、その上で、その直前のMessageBox.Show()は実行されていない
のは確かなのでした。

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

つまり、出てきていいはずのところが、通常実行では出てこないという
状況なのです。

610 :600:2009/12/18(金) 22:10:20
それでもいいんですけど、要するに制御がその行に入ってないんじゃないのかという事。
素通りなんて普通に考えてない。
メッセージ表示する行だけにして、何度も実行してみて表示されない時があるならそういうこともあるということだろうね。やってみては?

611 :599:2009/12/18(金) 22:15:19
>>610
どうもです。この現象、どうも書く場所(メソッド)によるようなのです。

あるメソッド内ではほとんどそういうことは起きませんが、ある場所では
高確率で発生します。そのときにその場所は確実に通っています。条件分岐
されていないフローの中でDebug.Print("ABC")して確認していました。

612 :デフォルトの名無しさん:2009/12/18(金) 22:16:58
そんなの聞いたこと無い

613 :デフォルトの名無しさん:2009/12/18(金) 22:17:01
もういいから再現可能なコードを晒せ

614 :600:2009/12/18(金) 22:20:31
ブレークでとめるって、メッセージ表示の行に入る直前で止めれば、そりゃ表示できるでしょう。メッセージ行へ制御がちゃんと移動してるんだから。
コード全体見えてないんで私はどんな制御してるのか知らないけど。
どうしてもマシンのせいにしたいならリソース不足でメッセージが表示できないとかじゃないかなw

615 :デフォルトの名無しさん:2009/12/18(金) 22:23:05
そういうときはとにかくログ入れまくって予想通りのログに
なってるか確認するのが大事だ
debug.printじゃだめ

616 :599:2009/12/18(金) 22:25:31
>>612-614
一つ奇妙な現象としてあることは、実行しているアプリのウインドウが
アクティブで動いているときに、その箇所にきて、本来メッセージが出る
べきタイミングで出ないときには、開発環境がアクティブになって、画面上
前に出てくるのでしたw。

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

正常にメッセージが出るときにはそうした奇妙な現象は起きず、アプリの
ウインドウがアクティブになりっぱなしで普通なのでした。どうも変な現象
なのです。

617 :デフォルトの名無しさん:2009/12/18(金) 22:27:54
周りの処理は?

618 :599:2009/12/18(金) 22:28:59
>>615
>debug.printじゃだめ

ではテキストファイルなどに書き込んでみるのもやってみます。
いろいろご助言ありがとうございました、また思いつく限り調べて
みてわかり次第報告します。

619 :デフォルトの名無しさん:2009/12/18(金) 22:29:51
環境がぶっ壊れてる可能性もあるな。


620 :599:2009/12/18(金) 22:33:53
>>617
WindowMsgなどをフックするコントロールを使っていて、
可能性としてはもしかするとそこが悪さしているのでしょうか・・・。
開発環境がアクティブになるというようなソースコードは存在して
いないので、なぜそういうことがあるのかはわからないのです。
またわかったら来ます。

621 :デフォルトの名無しさん:2009/12/18(金) 22:37:11
たぶんそうだろね。

622 :デフォルトの名無しさん:2009/12/18(金) 22:44:58
なんだ最初からどこが怪しいのか見当が付いてたのかよ。
ただ人に「悩み」聞いてもらいたかっただけってか。
なんか女のグチみたいだな。
やな感じ。

623 :600:2009/12/18(金) 22:46:25
IDEがアクティブになるのは単に元のフォームが非アクティブになったからでは?メッセージ表示するときは非アクティブになるからね。
で本来のメッセージはなぜか表示されないので、かわりに直前にアクティブだったウィンドウが・・・

624 :デフォルトの名無しさん:2009/12/18(金) 22:49:02
ソース晒せばいいんだけどね

625 :デフォルトの名無しさん:2009/12/18(金) 23:15:31
>>600 ウザイな。

626 :デフォルトの名無しさん:2009/12/18(金) 23:24:48
>WindowMsgなどをフックするコントロールを使っていて、
どう考えてもそれが怪しいだろ。


627 :デフォルトの名無しさん:2009/12/18(金) 23:25:41
クラスビューってC++の見通しが悪いから生まれた機能だからなあ
.NETでは無くてもほとんど問題ない

628 :600:2009/12/18(金) 23:41:31
>>625
しね

629 :デフォルトの名無しさん:2009/12/18(金) 23:43:48
質問者であることを示すために数字コテを使うのはわかるけどさ。
関係ないのにずーっと使い続けてるのって、バカみたいだよ。

630 :600:2009/12/18(金) 23:45:38
いちいちくだらねぇことでつっこんでんじゃねーよカス

631 :デフォルトの名無しさん:2009/12/18(金) 23:46:59
キチガイを刺激すんなよ。

632 :600:2009/12/18(金) 23:47:52
かまってほしそうだな

633 :600:2009/12/18(金) 23:49:00
うるせー死ねカス

634 :600:2009/12/18(金) 23:49:24
誰がキチガイだって? 死ねよハゲ

635 :600:2009/12/18(金) 23:49:35
おめーが死ねよキチガイ

636 :600:2009/12/18(金) 23:49:45
荒らすなよハゲ

637 :600:2009/12/18(金) 23:50:27
さすが馬鹿が多そうだなここはwほんとカッスい

638 :600:2009/12/18(金) 23:52:01
こんなところで質問してる俺って・・・

639 :600:2009/12/18(金) 23:52:34
回線切って首吊れよカス

640 :600:2009/12/18(金) 23:52:51
くっだらねぇ質問はここにするに限るからなw

641 :600:2009/12/18(金) 23:55:09
さっさとデバッグしろ、今日も帰れないぞw

642 :デフォルトの名無しさん:2009/12/19(土) 00:21:57
何が面白いわけ?
よそでやれ。


643 :デフォルトの名無しさん:2009/12/19(土) 00:24:09
ホンモノのキチガイかw

644 :600:2009/12/19(土) 06:01:58
他所でやるにも適したスレがない。
いや、俺この書き込みが初参戦だが。


645 :デフォルトの名無しさん:2009/12/19(土) 23:26:48
ド初心者な質問で申し訳ないですが
Formの背景イメージをcomboboxで選んで変更できるようにしたいんですが
難しいでしょうか?
ピクチャーボックス内の画像変更はできたのですがFormのほうがどうしてもできませんorz
どなたかお願いします ((○| ̄|_


646 :600:2009/12/19(土) 23:27:40
同じようにやればいいだろ。

647 :デフォルトの名無しさん:2009/12/19(土) 23:34:41
同じようにやってなるんだったら
ここで質問してません

648 :デフォルトの名無しさん:2009/12/19(土) 23:38:05
Me.BackgroundImage = Image.FromFile("画像ファイル名")



649 :デフォルトの名無しさん:2009/12/19(土) 23:43:23
>>648
ありがとうございました
Meの部分を直球でForm1としていたのが原因でした
単純ミスですがとても助かりました┏○ペコ

650 :600:2009/12/20(日) 00:04:51
単純ミスというより、何もわかってないだけだな。

651 :デフォルトの名無しさん:2009/12/20(日) 00:04:55
http://oshiete1.goo.ne.jp/qa5243671.html

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

引数つきのshellでなおかつ待機機能が欲しいのです。

652 :デフォルトの名無しさん:2009/12/20(日) 00:10:33
Processクラスに WaitForExit() がある。

653 :デフォルトの名無しさん:2009/12/20(日) 00:11:38
shellでって曖昧

Process.WaitForExitでいいじゃん

654 :デフォルトの名無しさん:2009/12/20(日) 00:15:25
>>652-653
ありがとうございました。

655 :デフォルトの名無しさん:2009/12/20(日) 00:17:01

Dim hProcess As System.Diagnostics.Process

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

hProcess.WaitForExit()

hProcess.Close()
hProcess.Dispose()


656 :600:2009/12/20(日) 00:36:23
Dim proc As System.Diagnostics.Process

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

proc.Close()
proc.Dispose()


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

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

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

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

なにか上手い方法をご存知の方がいましたら教えてください。


658 :デフォルトの名無しさん:2009/12/20(日) 01:27:29
Windowsのコントロールパネルのタスクで、
そのフォルダへの実行権を持つユーザー名で
タスクを登録すればいいんじゃない?
タスク登録時にユーザー名とパスワードを入力しておけば
タスク実行時には聞かれないし。

659 :デフォルトの名無しさん:2009/12/20(日) 01:30:08
別のユーザーでほかのアプリケーションを実行するには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/877processstartuser/processstartuser.html

660 :デフォルトの名無しさん:2009/12/20(日) 01:32:19
runasコマンドを使うとか

runas /env /user:%USERDOMAIN%\権限を持ったユーザー名 "実行するプログラム名"


661 :デフォルトの名無しさん:2009/12/20(日) 01:57:20
今夜は冷えるな

662 :661:2009/12/20(日) 01:58:03
ミス

663 :デフォルトの名無しさん:2009/12/20(日) 02:16:55
Process.Start メソッド (String, String, SecureString, String)
アプリケーションの名前、ユーザー名、パスワード、およびドメインを指定してプロセス リソースを起動し、リソースを新しい Process コンポーネントに関連付けます。
ttp://msdn.microsoft.com/ja-jp/library/sxf2saat.aspx

664 :デフォルトの名無しさん:2009/12/20(日) 04:03:13
このスレは色々勉強になるなぁ。先人の皆さんに感謝。

665 :デフォルトの名無しさん:2009/12/20(日) 04:18:08
>>657 です。

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


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

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

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



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

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

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

管理者しかアクセス出来ないフォルダへアクセスできた。

667 :デフォルトの名無しさん:2009/12/20(日) 21:04:01
コントロールにカーソル合わせると表示される説明のだしかたを教えてください。

668 :デフォルトの名無しさん:2009/12/20(日) 21:27:00
Tooltip かな。

669 :デフォルトの名無しさん:2009/12/20(日) 22:08:30
>>>668
できますた トンです

670 :デフォルトの名無しさん:2009/12/21(月) 16:11:41
KeyedCollection でkeyに割り当てるプロパティを
2つ以上持つことは出来ますか?

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

とあったとき、
とName(String)とID(integer)の両方をKeyとして
コレクションの要素を取れるようなことはできるでしょうか?


671 :デフォルトの名無しさん: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側の設定に何か問題があるのでしょうか?

ご存知の方がいればご教示下さい。

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

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

DEVPATHは開発用なのでお勧めしない。
これも構成ファイルにDEVPATHを使うための設定をする必要がある。

673 :デフォルトの名無しさん:2009/12/21(月) 17:31:12
.NETじゃDLLはそれぞれのexeごとにローカル配置が基本だぜ
app.configの<dependentAssembly>使えば厳密名付きdllならexeのサブフォルダ以外以外でも見に行けるな、一応

674 :デフォルトの名無しさん:2009/12/21(月) 17:53:52
>>670
collection(ID)とcollection(Name)どっちもで取りたい?
ならKeyedCollectionだけじゃ無理だね

675 :671:2009/12/21(月) 19:04:47
>>672
>>673
レスありがとうございます。

>COMとして登録しても.NET間の呼び出しには使用できない。
>またCOMとして登録する方法もregsvr32ではない。
ということは、VB.NET2005で作成したDLLは
GACを使用しない限りEXEファイルと同一フォルダ
或いはサブフォルダに配置する以外ない、ということでしょうか?

676 :デフォルトの名無しさん:2009/12/21(月) 19:24:02
方法が全く無いわけではないが、
わざわざやる価値がないしトラブルの元。

ハードリンクでも作っとけw

677 :デフォルトの名無しさん:2009/12/21(月) 19:25:28
あいや、ハードリンクでもファイル上書きしたら意味ないか…
まあ、あきらめて個別に置くのが無難だよ。


678 :デフォルトの名無しさん:2009/12/21(月) 19:27:25
ああ、厳密名つけてコードベース指定する方法もあるが、
これも手間が増えるだけで余りメリットはないと思うよ。


679 :デフォルトの名無しさん:2009/12/21(月) 19:28:50
あと、厳密名で改竄防止出来るとかってメリットもよく言われたりするけど、
現実にはあまり意味ないから。


680 :デフォルトの名無しさん: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 を実行する様で、「ストアド内で作成した一時テーブルは
ストアド終了と共に削除される」という仕様に従い削除されているようです。

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

よろしくお願いします。


681 :デフォルトの名無しさん:2009/12/21(月) 20:48:18
>>670
できる
自分でインデックス付きのItemプロパティを定義すればいいだけ
検索は線形検索でもいいしID専用のDictionaryを持ってもいいし

682 :デフォルトの名無しさん: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ビット版でも全然動かないのですが、
どうしてなのでしょうか?

教えて下さい。よろしくお願いします。

683 :671:2009/12/21(月) 21:21:41
>>676-679

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

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

684 :デフォルトの名無しさん:2009/12/21(月) 22:00:42
>>682
とりあえずハンドルやポインタにはIntegerではなくIntPtrを使う

685 :デフォルトの名無しさん:2009/12/21(月) 22:22:49
返値確認して、GetLastError くらいしろよ。

686 :デフォルトの名無しさん:2009/12/21(月) 23:07:43
>>684-685
ありがとうございます。

GetLastErrorの使い方を調べて、拡張エラー情報が1400というのは分かったのですが、
それが何なのか、調べても見つけられませんでした・・・
できましたらどのように調べたら良いのか教えて下さい。お願いします。

687 :デフォルトの名無しさん:2009/12/21(月) 23:11:44
Error Lookup ってのに入れると、エラーメッセージを教えてくれる。

1400 は、「ウィンドウ ハンドルが無効です。 」だってさ。

688 :デフォルトの名無しさん:2009/12/22(火) 00:06:08
>>687
welt見つけられました。ありがとうございました。

689 :デフォルトの名無しさん:2009/12/22(火) 00:43:57
メモリ256MBの糞マシンでも
VS2008pro動きますか?


690 :デフォルトの名無しさん:2009/12/22(火) 01:09:24
C#だとabstractだの書かないと駄目なのがMustInheritとかになってて面白いな
概念より機能を重視か

691 :デフォルトの名無しさん:2009/12/22(火) 01:43:37
>>690
???
真面目に言ってる意味がわからんぞ

692 :デフォルトの名無しさん:2009/12/22(火) 02:51:20
マシン語でOK

693 :デフォルトの名無しさん:2009/12/22(火) 08:46:29
DOS画面でipconfigを入力したのと同じ機能をVB.NETで実現するにはどうすれば

694 :デフォルトの名無しさん:2009/12/22(火) 09:40:04
ipconfigして出力をリダイレクト

695 :デフォルトの名無しさん:2009/12/22(火) 10:23:25
>>693

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

でググル

696 :デフォルトの名無しさん:2009/12/22(火) 10:36:23
ネットワークインターフェイスを列挙して色々する必要があると思うよ。
Vistaや7とかでうまく動くかも確認した方がいい。


697 :デフォルトの名無しさん:2009/12/22(火) 10:54:35
VB.NET 2003のツリービューコントロールについてご存知の方いましたら
教えてください。

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

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

698 :697:2009/12/22(火) 10:56:56
>>693
この辺じゃないでしょうか?
http://dobon.net/vb/dotnet/internet/ipglobalproperties.html

699 :デフォルトの名無しさん:2009/12/22(火) 13:22:17
>>694-698d

700 :デフォルトの名無しさん:2009/12/22(火) 14:19:49
VB2005で開発しています。

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

自分なりに検索してみたところ、ICopyHookとかいう高度な?処理が
必要なのではないか、というところまで確認しました。
ただ当方英語がチンプンカンプンなものでMSDNとか見てもさっぱりです。
日本語で解説されたサイトや書籍をご存知の方がいましたら、そちらについても
教えていただければ嬉しいです。

701 :デフォルトの名無しさん:2009/12/22(火) 14:24:46
どなたかご存知でしたら知恵をお貸しください。
やりたいことはVB.NET2008,PowerPoint2003で、スライドショーの遠隔(同期)操作です。
WebBrowserコントロール上で展開しているPowerPointのスライドショーがあるとき、
スライドショーで発生したイベント(例えばボタンのクリックなど)をフォーム側で取得、
また、イベントを発生させる、といったことはできるのでしょうか?

開始や終了であればPowerPoint.Applicationクラスのイベントで取得できるのですが……

702 :デフォルトの名無しさん:2009/12/22(火) 16:24:26
SendMessage

703 :デフォルトの名無しさん: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()

704 :デフォルトの名無しさん:2009/12/22(火) 16:44:17
>>701

VB.net SetWindowsHookEx

705 :701:2009/12/23(水) 23:31:29
レスありがとうございます。
とりあえずは、調べて試してみようと思います。

706 :デフォルトの名無しさん: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
を正常ルートの最後に配置してみてもだめでした。
よろしくお願いします。

707 :706:2009/12/24(木) 18:24:19
自己解決しました。
ここに提示した情報だけでは、結果は出せないような情報でした。
すみません。

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

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

対処としては、一時的なEnabled処理のオンオフ後にフォーカスを設定する。
で解決しました。。。


708 :デフォルトの名無しさん:2009/12/24(木) 19:09:47
現在の時間が午前6時〜午前8時までの間というのを判断するには
どんな形で計算すれば良いでしょうか?

709 :デフォルトの名無しさん:2009/12/24(木) 19:14:56
宿題は宿題スレにどうぞ

710 :デフォルトの名無しさん:2009/12/24(木) 19:58:17
できた

711 :デフォルトの名無しさん:2009/12/24(木) 22:06:47
俺は中卒だからよく分からんけどさ、
宿題ってそんなもんが出るのか。
独学の方が早くね?

712 :デフォルトの名無しさん:2009/12/24(木) 22:33:50
やる気がある奴ならな

713 :デフォルトの名無しさん:2009/12/24(木) 22:52:41
グループボックス内にたくさんあるラジオボタンのどれにチェックが付いているか調べるにはどうしたらいいですか?

714 :デフォルトの名無しさん:2009/12/24(木) 22:58:11
禅問答でもしたいんだろうか?
真面目な話、「どれにチェックが付いているか調べ」ればいいんじゃないの?

715 :デフォルトの名無しさん:2009/12/24(木) 23:29:42
1000個くらいあったら大変じゃん

716 :デフォルトの名無しさん:2009/12/24(木) 23:56:58
ループにすればいいだろ・・・

717 :デフォルトの名無しさん:2009/12/24(木) 23:57:40
そこまでアホみたいに大量なら、
チェックされた瞬間にどのボタンをチェックしたかを変数に入れときたくなるな。

もっとも1000個ぐらいじゃたとえ総当りしても対して時間はかからなさそうだけど

718 :デフォルトの名無しさん:2009/12/24(木) 23:58:05
設計見直せよ
1000個でまとまったラジオボタンをユーザがどう使うんだ?
C#のスレでも同じように数千個のラベルがどうとかってレスが以前あったな

719 :デフォルトの名無しさん:2009/12/25(金) 00:40:20
VisualStudioスレかここで見た気がする。

720 :デフォルトの名無しさん:2009/12/25(金) 15:38:37
VB.NET2005からSQLServerへ接続するプログラムを作成しています。
その中に、カーソルを定義し、カーソルにて取得した結果を
データセットに格納するという処理があるのですが、
カーソル定義の際に指定した列以外に『ROWSTAT』という列が
データセット内に存在しています。
内容を参照するとDBNullとなっているのですが
この列は何なのでしょうか?
また当該列をデータセットに含めない方法はあるのでしょうか?

721 :デフォルトの名無しさん: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

722 :デフォルトの名無しさん:2009/12/25(金) 18:38:59
>>721
どう「うまくいかない」のかが分からないので答えようがないです

723 :デフォルトの名無しさん: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

724 :デフォルトの名無しさん:2009/12/25(金) 19:27:33
>>723
その後半のgは関係無いよね
それとHasMorePageの意味分かってる?

725 :デフォルトの名無しさん:2009/12/25(金) 19:47:44
>>724
そうです。このコードだと、後半のgが関係ないで終わって
しまっているので、そのgを、印刷プレビューに関連付けたいのです。

HasMorePageの意味は、次のページに関する指定だと思いますが。

726 :デフォルトの名無しさん:2009/12/25(金) 20:25:35
ゴメンHasMorePageの件は勘違い
その後で描いても問題無かった
つか試してみたらちゃんと描画されたんだけど…

727 :デフォルトの名無しさん:2009/12/25(金) 21:04:24
Expressは2005?2008?

728 :デフォルトの名無しさん:2009/12/25(金) 21:49:55
関連付けっつーか、e.Graphics使えよって話

729 :デフォルトの名無しさん:2009/12/25(金) 22:26:52
htmlの表からデータを取得したいのですが、それようの方法があったら教えてください。
縦と横の項目名を指定するとそのデータが得られるという方法はないでしょうか?

730 :デフォルトの名無しさん:2009/12/25(金) 22:28:28
DOM舐めるしかない
それ以上はHTMLの知識の問題なのでスレ違い

731 :デフォルトの名無しさん:2009/12/25(金) 23:49:31
レスどうもです。
HTMLを解析する方法でやってみます。

732 :デフォルトの名無しさん:2009/12/26(土) 00:39:34
TextBox.Textに大きなString(100,000行ぐらい)を放り込んでるんですが重い・・・
多分全部分描写してるのが原因だと思うんですが、これを回避するような方法ってありますか?

733 :デフォルトの名無しさん:2009/12/26(土) 00:47:42
・数千個のラベルがうんたらかんたら
・数千個のラジオボタンがうんたらかんたら
・100000万行のStringをTextBoxにうんたらかんたら ← New!

734 :デフォルトの名無しさん:2009/12/26(土) 00:57:15
画面内に収まる分だけ描いとけ

735 :デフォルトの名無しさん: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)
のように書ける方法があれば教えて頂きたいです。

736 :デフォルトの名無しさん:2009/12/26(土) 01:10:11
なんというVB脳

737 :デフォルトの名無しさん:2009/12/26(土) 01:18:41
>>735
public classじゃなくてpublic moduleにすればそういう使い方ができるよ。

738 :デフォルトの名無しさん:2009/12/26(土) 01:32:03
resをretにすれば動く

739 :デフォルトの名無しさん:2009/12/26(土) 05:03:10
.net frameworkって3.x spが入ってれば1.0や2.0削除してもいいの?

740 :デフォルトの名無しさん:2009/12/26(土) 08:04:16
それぞれ対応したバージョンが必要

741 :デフォルトの名無しさん:2009/12/26(土) 08:04:59
だったと思う

742 :697:2009/12/26(土) 09:44:23
基本は上位のバージョンがあればいいでしょ

743 :デフォルトの名無しさん:2009/12/26(土) 09:46:58
ハードディスクの中のすべてのフォルダとファイルを列挙するプログラムは?

744 :デフォルトの名無しさん:2009/12/26(土) 11:22:47
>>742
そう思うならやってみろ。そして泣け。

745 :デフォルトの名無しさん:2009/12/26(土) 12:06:56
>>726
文字の描画は、PictureBox1ではなく、帳票の中に行いたいのです。

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

>>728
g.〜 を e.Graphics に変換すると帳票の中に印刷出来ました。
解決しました。ありがとうございます。

746 :デフォルトの名無しさん:2009/12/26(土) 13:27:02
Excel出力に関する質問です。
Excel出力に関して調べていると、以下のサイトに方法が載っていましたが、
これは、新規にファイルを作成し、そこに表示する方法です。
http://www.geocities.jp/i_love_balard/myhome/dnet/excel1.html
出来れば、あらかじめひな形を準備しておいて、それを開いて該当箇所に
データを表示させるという方法を行いたいのですが、そのような方法は
可能なのでしょうか?
サイトのコードを見る限りでは、Excelファイル名の指定を行う箇所が
ありませんので、不可能のようにも思えますが・・・

747 :デフォルトの名無しさん:2009/12/26(土) 13:29:24
可能。WorkBooks.Open でファイルを開けばいい。

748 :デフォルトの名無しさん: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

749 :746:2009/12/26(土) 14:39:42
>>747
ありがとうございます。Excelファイルの処理が出来ました。

750 :デフォルトの名無しさん:2009/12/26(土) 17:00:58
文法について質問です。

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

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

よろしくご教示お願いします。

751 :デフォルトの名無しさん:2009/12/26(土) 17:05:18
ならそのWebサイトを貼れよ

752 :デフォルトの名無しさん:2009/12/26(土) 17:12:29
ここです、よろしくお願いします

tp://wednesdaymoon.net/kzweb/articles/vbnet/article.aspx?articleid=92

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

754 :750:2009/12/26(土) 17:13:47
すいません
>>752>>751宛てです

よろしくお願いします。

755 :デフォルトの名無しさん:2009/12/26(土) 17:28:50
ヘルプで
Visual Basic 言語のキーワード
を見れ

756 :デフォルトの名無しさん:2009/12/26(土) 17:42:30
かんすー

757 :750:2009/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

758 :デフォルトの名無しさん:2009/12/26(土) 18:04:58
そう書いてる奴に聞けよ。

759 :デフォルトの名無しさん:2009/12/26(土) 18:10:43
Stringは予約語の他にSystem.Stringクラスがある
[]を使えばこのクラス名を指すことになる
予約語Stringは単純にSystem.Stringのエイリアスに過ぎないが
なんで予約語の方を嫌ったのかは書いた奴に聞けとしか言い様がないな

760 :750:2009/12/26(土) 18:28:47
>>759

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

>>758 >>759

> 書いてる奴に聞け

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

--
皆さん、ご親切に導いてくださりありがとうございました。
感謝いたします。

761 :デフォルトの名無しさん:2009/12/26(土) 21:05:42
>>737
それはどんなふうに書けばよいでしょうか?
試したところ
Unable to find an entry point named aaa in DLL module1.dll.
というエラーが出てしまいました。

762 :デフォルトの名無しさん:2009/12/27(日) 18:15:06
少々質問です。

エクセルのような項目を使いたいのですが何かありませんか?

763 :デフォルトの名無しさん:2009/12/27(日) 18:17:34
DataGrid

764 :デフォルトの名無しさん:2009/12/27(日) 18:54:11
>>748
おk

765 :デフォルトの名無しさん:2009/12/27(日) 19:13:16
>>763
ありがとうございます。

次にテキストボックスとボタンを作成し、テキストボックスにあるフォルダのアドレスからフォルダ内のファイルを読み込んできて、
ファイル名やファイルサイズ等の情報をDataGridに表示させたいのですが、このような事に関する分かりやすく紹介しているサイト等はありませんか?
もしくは説明していただけるようでしたらお願い致します。

766 :デフォルトの名無しさん:2009/12/27(日) 19:18:28
>>765
「表示するだけ」ならlistviewが一番簡単だと思うけどな

767 :デフォルトの名無しさん:2009/12/27(日) 19:21:22
向いてないからあきらめろ。

768 :デフォルトの名無しさん:2009/12/27(日) 19:22:22
もう少し自分の手足を動かしてから質問しろよ、と思う。


769 :デフォルトの名無しさん:2009/12/27(日) 19:23:15
>>765
もっと基礎的な所から勉強したほうが良いかと
http://www.google.co.jp/search?q=vb.net+%93%FC%96%E5

770 :デフォルトの名無しさん:2009/12/27(日) 19:37:48
>>765
テキストボックスに入力されたアドレスの解析(ファイル, フォルダ, ドライブ, etc.)とか
それらの存在チェックとか面倒だろうし、TreeViewでフォルダを対象にして
選択されたものをListViewに表示するだけでいいんじゃね
フォームの左側にTreeView、右側にListViewとかはまぁ結構ありきたりだけど

771 :デフォルトの名無しさん:2009/12/27(日) 19:40:04
正直に課題の内容を書けば、教えてくれる奴が居るかもしれないぞ。

772 :デフォルトの名無しさん:2009/12/27(日) 19:50:02
あぁいや、色々すいません。
課題じゃなくここ半年ちょっとの間、プログラミング一切せずにいたらなんか出来てた事がまったく分からなくなってしまっていて、
ちょっとヤバイと思って丁度フォルダ内のファイルを管理するソフトが欲しかったものでちょっと慣らしに作ろうと思ったもので。

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

失礼しました。

773 :697:2009/12/27(日) 20:03:04
半年のブランクでそこまで落ちぶれるものなのか

774 :デフォルトの名無しさん:2009/12/27(日) 20:07:00
3月まで仕事で制御ソフトやらPOSやら作ってたんですがね・・・。
さすがに自分でも恐いレベルに何も出来なくなってます。

775 :デフォルトの名無しさん:2009/12/27(日) 20:19:51
日常で全角英文字を使う人が作ったソースは使いたくない。
という、偏見を持ったプログラマーがココに居ます。

776 :デフォルトの名無しさん:2009/12/27(日) 20:24:20
他の言語でプログラミングしながら半年程度ならそんなに腕も落ちないだろうが
完全にプログラム以外の仕事を半年やってればまぁ分からなくもない

777 :デフォルトの名無しさん:2009/12/27(日) 20:25:48
コーダーならそんなもん。

778 :デフォルトの名無しさん:2009/12/27(日) 20:33:22
日本語読みのローマ字変数(kekkaとか)だけは勘弁

779 :デフォルトの名無しさん:2009/12/27(日) 20:41:09
全角英文字を使ってる時点でプログラマかどうかも怪しい

780 :デフォルトの名無しさん:2009/12/27(日) 21:12:42
字面を暗記しただけでプログラムが書けた気になってる人多いよね

781 :デフォルトの名無しさん:2009/12/27(日) 23:40:11
プログラムが書けるとか出来るとかはこのスレに限らず
議論の対象になることはたまにあるが
それらに厳密な定義も基準もないわけで
本人がそう思えばそれまでだろ
そんなの議論したって水掛け論になるだけ

782 :デフォルトの名無しさん:2009/12/27(日) 23:43:32
誰も議論なんてしてない。

783 :デフォルトの名無しさん:2009/12/27(日) 23:56:57
propertyitemsでexifの撮影日読んでるんだが、exif情報が無いか
壊れてるファイルでGDI+で一般的なエラーとか出るんだが、現在は
tryで無視してるけどそのエラー回避する方法あるかな?
watchで見るとerrorcodeとかあるんだが、それ指定するとそんなものはないと
言われるし

784 :デフォルトの名無しさん:2009/12/28(月) 00:58:22
>>783
どんなコード書けば「一般的なエラー」なんて例外が出るのか知らんけど、
普通にMSDNライブラリのPropertyIdListの解説にあるとおりじゃないの?

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

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

思うんだが、2chだってもう10年も歴史があるわけで、いい加減ガキ臭い訳のわからん
2ch風の言い回しを無理に使うの止めたらどうかなと思うんだけど、
少しもそういう空気が醸成される雰囲気がないのが日本のネット文化の痛いところだなあ。
つくづく。


785 :デフォルトの名無しさん:2009/12/28(月) 01:24:35
ネットスラングってアメリカのほうが色濃いと思うんだが
こうですか?わかりません><

786 :デフォルトの名無しさん:2009/12/28(月) 04:16:16
じつにくだらないことで・・・・これが、若さか・・・

787 :デフォルトの名無しさん:2009/12/28(月) 11:43:48
2ch 如きで「日本のネット文化」を語り始める痛さについては
触れてはならないんですかね?

788 :デフォルトの名無しさん:2009/12/28(月) 12:46:35
思うんだが、「……んだが」って語尾を口語で使うのはただでさえ爺臭いんだが
重ねて使うとさらに効果抜群だねw

789 :デフォルトの名無しさん:2009/12/28(月) 16:31:06
>>1をよく読もう。
ここは質問スレだぞ。

790 :デフォルトの名無しさん:2009/12/28(月) 17:24:59
帳票部分を Access で代用する方法を考えています。
ADO.NET にて、(テーブルとレポートオブジェクトなどを作って)
あらかじめ準備しておいた mdb ファイルに接続し、
テーブルの内容を変更し、VB.NETからの操作で、Access(もしくは
Accessランタイム)を起動し、あるレポートオブジェクトを開く
という事は可能なのでしょうか?
帳票1種類でmdbファイルを1つ準備しておいて、マクロでAutoexecを
使用して起動時に自動的にレポートオブジェクトを開く以外に方法が
無いかが気になって質問してみました。

791 :デフォルトの名無しさん:2009/12/28(月) 17:59:09
コンパイル時に、constAと書いた部分をa(0)に自動で置換するというような事はできないでしょうか?

今後、a(1)やa(0,0)に簡単に置き換え可能なようにして置きたいのですが・・・

792 :デフォルトの名無しさん:2009/12/28(月) 18:01:57
C#ならできます

793 :デフォルトの名無しさん:2009/12/28(月) 20:08:17
>>790
できるよ。Access がインストールされてれば、Access.Application で。
ランタイム版のみだとやったことないなぁ。

794 :デフォルトの名無しさん:2009/12/29(火) 08:02:55
>>793
VB.NET側で、Accessのmdbファイルのどのレポートオブジェクトを
開くかを指定はできますか?

795 :デフォルトの名無しさん:2009/12/29(火) 09:04:19
できるよ。これは VBAの例だけど、同じようにVB.NETからでも呼べる

http://www.happy2-island.com/access/gogo03/capter60005.shtml

796 :デフォルトの名無しさん:2009/12/29(火) 10:31:45
>>795
VB.NETから呼ぶ場合の具体的なコードをお願い致します。
そのようなサンプルサイトがヒットする検索キーワードの案内でも結構です。

797 :デフォルトの名無しさん:2009/12/29(火) 10:39:50
まず、自分で探してからにしような。

798 :デフォルトの名無しさん:2009/12/29(火) 11:03:28
>>797
探して見つけ切れなかったから質問してるのですよ。
ADO.NET関連など、テーブルの操作ばかりがヒットしてしまうのです。

799 :デフォルトの名無しさん:2009/12/29(火) 11:05:38
そうか。ググったら2秒で見つかるけどな。

800 :デフォルトの名無しさん:2009/12/29(火) 11:06:43
自己解決しました。

801 :デフォルトの名無しさん:2009/12/29(火) 11:08:30
じゃ、紹介しなくていいな。

802 :デフォルトの名無しさん:2009/12/29(火) 11:16:11
>>800は質問者じゃないぞ。勝手に書くな

803 :デフォルトの名無しさん:2009/12/29(火) 11:18:06
2秒もかかる検索って、相当重い処理じゃね?
通常は0.数秒の世界だと思うんだが。

804 :デフォルトの名無しさん:2009/12/29(火) 11:21:14
欲しいものは、これのAccessバージョンのものです。
(サイトは、Excelを起動するものです。)
http://hanatyan.sakura.ne.jp/dotnet/Excel01.htm

805 :デフォルトの名無しさん:2009/12/29(火) 11:22:28
確かにそうだな。もう一度やってみたら

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

だった。

806 :デフォルトの名無しさん:2009/12/29(火) 13:24:57
>>805
その検索を行った際のキーワードを教えて下さい。

807 :デフォルトの名無しさん: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 )

808 :デフォルトの名無しさん:2009/12/29(火) 13:40:42
acViewPreview を指定すればいいんじゃないの?

809 :デフォルトの名無しさん: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 )

810 :デフォルトの名無しさん:2009/12/29(火) 13:49:20
「VB.NET Access レポート」で検索してみても、こんなサイトしかヒット
しないのです。
http://oshiete.searchina.ne.jp/qa958987.html
http://okwave.jp/qa/q958987.html?order=&by=

811 :デフォルトの名無しさん:2009/12/29(火) 13:53:26
その access 変数をフォームの Private スコープにしてみるとどうなる?

812 :デフォルトの名無しさん:2009/12/29(火) 14:03:20
>>811
それをやってみても、同じでした。
私なりにいろいろ見てみたところ、タスクマネージャで確認してみると、
プロセスは残っていました。
そこで、表示モードかと思い、以下のコードを追加で書いてみると、
うまくいきました。

access.Visible = True

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

access.CloseCurrentDatabase()
access.Quit()
access = Nothing

813 :デフォルトの名無しさん:2009/12/29(火) 14:05:54
COM参照が残ってれば、Marshal.ReleaseComObject() する必要があるけど、
ユーザーが Access を閉じてくれたんならいらない。

814 :デフォルトの名無しさん:2009/12/29(火) 14:10:41
>>813
素早い回答ありがとうございます。
目的のものを作ることが出来ました。ありがとうございました。

815 :デフォルトの名無しさん:2009/12/30(水) 14:21:32
なんじゃこりゃあ!!何故急にスレが伸びる?


816 :デフォルトの名無しさん:2009/12/30(水) 17:16:04
そうか?前から平均して勢い20前後だったと思うけど

817 :デフォルトの名無しさん:2009/12/31(木) 19:07:39
エクスプローラーからファイルをドラック、ドロップして
リストボックスにファイル名を登録するようにしているのですが、
複数のファイルを同時にドロップした時に
複数選択にした順番で登録したいのですが、
順番が変わってしまいます。
登録はForEachで配列を順に登録しているだけなのですが、
選択した順番で処理する方法があったら教えて頂きたいです。

818 :デフォルトの名無しさん:2009/12/31(木) 19:13:19
エクスプローラを使ってる限り無理
そもそも選択順の情報自体が存在しない

819 :デフォルトの名無しさん:2009/12/31(木) 21:53:27
しかし、コード書いててそれぐらい分かんないのがむしろ不思議だw

ちなみに、プログラムにファイル名が通知されるときの順番は、
ドラッグ&ドロップを開始する時、マウスポインタがポイントしていたファイルを
先頭に円筒ループするような順番となるから、ユーザー側では(その気になれば)
順番を制御することはできたはずだと思った。

820 :デフォルトの名無しさん:2009/12/31(木) 22:47:12
自分が知らない方法があるんじゃないか?
って思って調べる/訊くてのなら、不思議じゃないべ。

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

「出来ない」って言われて、「そうですか」で終わるのなら進歩はないだろうけど。

821 : 【大凶】 【1523円】 :2010/01/01(金) 00:58:29
しかし縦書きでも左から右に書いてくれるとは思わなかったw

822 :デフォルトの名無しさん:2010/01/01(金) 04:53:11
>>821
大凶おめでとう

823 :デフォルトの名無しさん:2010/01/01(金) 19:21:55
LinearGradientBrushってcolor.blueみたいな名前で定義出来る
色でないとダメ?
普通にカラーダイアログで拾った色使うとワケワカな動作するんだが…

黒→白&左→右で例えると
1列目は白(ここですでにおかしい)2列目が黒でそこから右に向かって
白くグラデしていくという
つまり本来のグラデの右端に来るべきものがある一定の幅左側に来て
しまっているという
斜めだともっとおかしい…つかその白い部分の幅が1文字分〜対角線
までだったり安定しないし
エラーは何も出さないけどどうなってるものやら

824 :デフォルトの名無しさん:2010/01/01(金) 19:33:03
>普通にカラーダイアログで拾った色使うとワケワカな動作するんだが…
絶対にこれが思い込み。
そんなわけねえじゃん。
単にLinearGradientBrushの開始点と終了点の問題に決まってる。
こんなの質問する前に自分で確認しろよ。

825 :デフォルトの名無しさん:2010/01/05(火) 00:32:20
ZIPを操作するプログラムは良く見かけるけど
LZHやRARやGCAはどうすれば。
さらに、Q4やMAGなどの画像をVBで見るにはどうすれば。

826 :デフォルトの名無しさん:2010/01/05(火) 01:30:35
それぞれ添付されている資料(SDKとかAPI.txtとか)を参考に作ればいいだけでしょ
CやC++で書かれていようがVBとそんなに使い方が違うこともない

827 :デフォルトの名無しさん:2010/01/05(火) 09:17:27
まあC用のライブラリをDllImportして使うだけだな
C読めないとか論外

828 :デフォルトの名無しさん:2010/01/05(火) 09:42:26
あの手の奴って大体同じインターフェイスもってなかったっけ?


829 :デフォルトの名無しさん:2010/01/05(火) 10:38:54
>>825
SPI直接呼ぶのが面倒ならラッパー使えば?
ttp://elku.at.infoseek.co.jp/memo/spi_com.html

830 :デフォルトの名無しさん:2010/01/05(火) 10:41:14
COMもたいがい面倒だろ
レジストリ弄らないといけないし

831 :825:2010/01/05(火) 11:19:07
>>826-830
d

832 :デフォルトの名無しさん: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 とは違うようです。
適切な代替手段はあるのでしょうか、ありましたら方法をお願いします。

833 :デフォルトの名無しさん:2010/01/05(火) 19:36:41
マネージコードからは原則「取得してはいけない」決まりになってるらしい
どうしても必要ならWin32APIのGetCurrentThreadId呼べるけど
そんなことしたら本末転倒だから警告抑止して古いの使い続けた方がマシだと思う

834 :デフォルトの名無しさん:2010/01/05(火) 22:19:44
>>830
いまどきは、Reg-Free COM とか、分離 COM って呼ばれるモノがあってな・・・。

835 :デフォルトの名無しさん:2010/01/06(水) 00:06:12
みなさんこんばんは。
VB2005Proにある「ReportViewer」と「CrystalReportViewer」は
通常はどちらを使用すればよろしいのですか?
また用途や機能の違いなどもご教示いただければ幸いです。
よろしくお願いいたします。

836 :デフォルトの名無しさん:2010/01/06(水) 00:28:39
ReportViewerはおまけ。CrystalReportViewerも機能制限版。
あんまり使うもんじゃない。

837 :デフォルトの名無しさん:2010/01/06(水) 09:23:16
>833
レスありがとうございます。
調べていたらそれらしい記述にぶつかりました。
警告だけなので無視していきます。

838 :デフォルトの名無しさん: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を使ってるけど・・・

839 :デフォルトの名無しさん:2010/01/06(水) 16:41:05
どっちにしろ本当はやっちゃいけないことをやってるんだから一緒
将来バージョンのWindowsや.NETで仕様が変わったりして
本当にマネージコードからは使えなくなったときには
AppDomain.GetCurrentThreadIdは削除されるだろうから気付きやすいかもしれない

840 :デフォルトの名無しさん:2010/01/06(水) 19:05:50
>>836
ありがとうございます。
ではみなさんは帳票類は何で作っているのですか?
PrintDocument??

841 :デフォルトの名無しさん:2010/01/06(水) 22:11:06
サードパーティのコンポーネントを買う

842 :デフォルトの名無しさん:2010/01/06(水) 22:16:04
おれは iText.NETでPDFにしてる

843 :エロ坊主: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 などいろいろ指定してみたのですが。

ホントにエロい人教えてください。

844 :デフォルトの名無しさん:2010/01/07(木) 00:51:48
そんな変態なURLに触れたくねぇよ・・・

845 :デフォルトの名無しさん:2010/01/07(木) 00:59:07
違法ダウンロードは犯罪になるしな。

846 :デフォルトの名無しさん:2010/01/07(木) 01:08:44
パケットモニタとかでブラウザでのHTTPリクエストとの差異を調べな

847 :デフォルトの名無しさん:2010/01/07(木) 01:16:35
ユーザーエージェント、リファラー、クッキー、getメソッド、postメソッド



848 :デフォルトの名無しさん:2010/01/07(木) 01:20:20
referer を http://www.nakadashi.to/movie/1683.htm に設定だろ

849 :デフォルトの名無しさん:2010/01/07(木) 07:58:10
WebRequestを作成 webreq

webreq.referer = URL

ダウンロード

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


851 :デフォルトの名無しさん:2010/01/07(木) 16:13:06
>>850
>きちんとしたものを作るならAPI使って取得しておいたほうが無難ですかね。

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

「本当はやっちゃいけないこと」なんだろうけど、messageboxの表示位置を
指定したいので仕方なく使ってる

852 :デフォルトの名無しさん:2010/01/07(木) 16:45:39
メッセージボックス位でやっちゃいけない事やらないといけないなら
俺はめんどくさくても自作する。


853 :デフォルトの名無しさん:2010/01/07(木) 23:41:18
>>852
やっぱり自作が一番かな・・・
めんどうだから自作しなかった(ていうかCBTフック使って新クラス作ってた)
けど一から自作も検討してみるかな

854 :デフォルトの名無しさん:2010/01/08(金) 10:09:31
>>853
うちはメッセージボックスもどきとエラーの時はVSみたいな概要とエラー詳細が出るようなメッセージボックス2つ用意して使い分けてるよ
あとメッセージボックスは一定時間経過後自動で閉じるオプションとか付けてる

どうせダイアログでメッセージ開くだけなら大したことないだろうし、レイアウトやアイコンも自由だから試しに簡単なの作ってやってみればどうかな?


855 :デフォルトの名無しさん: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で実体をインスタンスの実体を作ったオブジェクトへの代入に警告が出る理由が今イチ分かりません・・・。
警告文は以下のような感じです。
「インスタンスを経由する共有メンバ、定数メンバ、列挙型メンバ、または入れ子にされた型へのアクセスです。正規の式は評価されません。」


856 :デフォルトの名無しさん:2010/01/08(金) 14:45:17
まさにそのままだと思うんだが・・・?

型.変数 =""

だと思うけど?


857 :855:2010/01/08(金) 14:48:56
すいません、書き間違えた点がありました。

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

でした。。

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

ttp://blogs.wankuma.com/torikobito/archive/2007/04/04/70121.aspx


859 :デフォルトの名無しさん:2010/01/08(金) 16:48:24
VB2005 + Access

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

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

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

この現象は、回避できないのでしょうか?

860 :855:2010/01/08(金) 17:39:26
>>858
レスありがとうございます。
一応そこは目を通してあるのですが、
では一体どういう形であるべきなのか・・・が解らないのです。
使えてしまう分だけ、無視していいものか、それとも回避可能な形があるのか解らず。。すいません。。

861 :デフォルトの名無しさん:2010/01/08(金) 18:09:01
>>860
意図的にSharedで定義しているんだから迷わずインスタンスからは使わないようにすればいいんじゃない?
インスタンスごとに何かするのならSharedで定義するはずもないし

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



862 :デフォルトの名無しさん:2010/01/08(金) 19:58:33
質問です。
複数のコンソールアプリでApp.Configを作成しました。
設定内容を共通Configで持ちたいのですが
共通Configはどこに作ればいいのでしょうか?

863 :デフォルトの名無しさん:2010/01/08(金) 20:01:21
C++にて作成されたDLLを
VB.NETから使用する処理を作成しているのですが、
DLL側の関数の戻り値の型が『HANDLE』型となっています。

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

なお、下記のようなエラーが発生していました。
『保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。』

864 :デフォルトの名無しさん:2010/01/08(金) 20:26:35
>>863
単純にP/Invokeの使い方を間違ってるだけだから
とりあえず、DLL側のC(?)の関数のプロトタイプと、
Declare部分の定義をさらそうよ。

865 :863:2010/01/08(金) 21:11:59
>>864
すみません、自己解決致しました。
引数を指定する箇所に誤りがあり、エラーとなっていたようです。
お手数をおかけ致しました。



866 :デフォルトの名無しさん: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」と指定するのが正しい。

867 :デフォルトの名無しさん:2010/01/08(金) 23:43:00
>>854
なるほど、自動で閉じるオプションはいいかも
ひまができたら簡単なの作ってみようと思う
アドバイスありがと

868 :デフォルトの名無しさん: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

869 :デフォルトの名無しさん:2010/01/09(土) 13:24:27
馬鹿だから

870 :デフォルトの名無しさん:2010/01/10(日) 01:11:21
n番目の内容をn番目に挿入して (この時点で同じ内容が並ぶ)
元n番目(今n+1番目)を削除したら、そりゃ元通りになると思うのね。

871 :デフォルトの名無しさん: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メソッドはどのように使ったら良いでしょうか?



872 :デフォルトの名無しさん:2010/01/10(日) 23:25:12
できない
2次元配列は他にも何かと冷遇されてるから使わない方がいいよ
配列の配列を使いましょう
でも>>871の場合はそういう話ではなくてクラスを使うべきだと思う

873 :デフォルトの名無しさん:2010/01/10(日) 23:29:57
そもそも二次元配列を並び替えるって・・・
一体どういう結果を期待してるんだ?

N次元配列がどういうものか根本的に誤解してるとしか思えん。

874 :デフォルトの名無しさん:2010/01/10(日) 23:35:16
行で並び変えたいんでしょ
そういう場合は,行を表すクラスを作ってそのオブジェクトの配列として扱う

875 :デフォルトの名無しさん:2010/01/11(月) 00:31:52
こういうケースはDataTable使うんじゃないの?

876 :デフォルトの名無しさん:2010/01/11(月) 00:35:32
>>872
俺は質問者ではないが、ちょっと確認させてくれ。
> 配列の配列を使いましょう
これは具体的にどういうことでしょうか?
私は「構造体の配列」だと思うのですが。

877 :デフォルトの名無しさん:2010/01/11(月) 00:41:46
Dim ar()() As String

878 :デフォルトの名無しさん:2010/01/11(月) 00:44:52
>>876
「配列の配列」は文字通り「配列の配列」だよ。
dim hoge as Integer()()
例えばこれはIntegerの配列の配列、つまりInterger()の配列。

それからソートするのなら値型より参照型の方がいい。

879 :871:2010/01/11(月) 01:10:25
レスありがとうございます。
2次元配列の並べ替えで検索してもあまりそれらしいものが出てこなくておかしいなと思ってたんです。
配列の配列という方法だと思うのですが、Dim ar()() As String の宣言を使う方法で調べてみたら
説明してくれてるページが見つかったのでそれでやってみたいと思います。
ありがとうございました。

880 :デフォルトの名無しさん:2010/01/11(月) 15:11:32
>>871が誤った方向に進んでしまったぞ
どう考えても構造体かクラスの配列にすべきなのに
次善の方法としてはDataTableもありかとは思うが

プログラミングの勉強は、コーディングテクニックだけじゃなくて
設計もいっしょに勉強した方がいいぞ


881 :デフォルトの名無しさん:2010/01/11(月) 15:22:15
だってVBだもん

882 :デフォルトの名無しさん:2010/01/11(月) 15:58:41
>>880
コーディングテクニックない人乙


883 :デフォルトの名無しさん:2010/01/11(月) 19:10:57
俺はオブジェクト指向の流れを考えると、データの処理を行う都度、
配列を準備してそれを操作なんていうプログラミングをしているのは
ナンセンスだと思うけどな。
既存のクラスを活用して、もしくは、クラスや構造体を作って行うのが
本来の方向では?

884 :デフォルトの名無しさん:2010/01/11(月) 20:00:35
みんなそれができればVBなんかいらねーよw

885 :デフォルトの名無しさん:2010/01/12(火) 01:24:12
いくらなんでもできない人のがよっぽど珍しいレベル


886 :デフォルトの名無しさん:2010/01/12(火) 09:51:02
方向性に答えも糞もねぇだろ

どうせそのうちこのやり方では難しい時が来たら自然と気がつくだろ

887 :デフォルトの名無しさん:2010/01/12(火) 15:05:56
糞はあるだろ


888 :デフォルトの名無しさん: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まで出るようしたいです。
どこが間違ってるか教えていただけないでしょうか。

889 :デフォルトの名無しさん:2010/01/12(火) 18:24:34
>>888
何がしたいのかが分からない。
配列のリストが欲しいのか、
単に "1-3" といった文字列のリストがあればいいのか。

890 :デフォルトの名無しさん: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

891 :デフォルトの名無しさん: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


892 :デフォルトの名無しさん:2010/01/12(火) 18:45:18
レスありがとうございます。
説明が悪くてすみません。
一覧を表示したいだけではなくて、0-(0-10)、、1-(0-10)という親番号ごとには
配列に格納したいです。
その配列を格納したArrayListから読み出したいです。

893 :デフォルトの名無しさん: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


894 :デフォルトの名無しさん:2010/01/12(火) 19:25:35
レスありがとうございます。
できました。値型、参照型でこのようなのに出くわしたのが始めてだったので勉強になりました。

895 :デフォルトの名無しさん:2010/01/12(火) 19:45:51
質問お願いします(VB.NET2008EE, VistaSP2)

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

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

どうすればこの状況を回避できますか?

896 :デフォルトの名無しさん:2010/01/12(火) 19:55:23
なんというお馬鹿質問・・・

897 :デフォルトの名無しさん:2010/01/12(火) 19:57:19
895です
自己解決しました
自分で書いたコードの所為でした
(他のイベントハンドラに書いたコードが原因でした)

スレ汚し大変失礼しました。

898 :デフォルトの名無しさん: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
参照型うんぬん以前の問題があるのは理解できてるか?
もとのコードだと、すべての変数が値型だったとしても正常に動いてないぞ

899 :894:2010/01/12(火) 20:34:07
ほんとだ
表示のところのi2 - i の並びを逆にしたりしているうちに
気付かないうちに正しくなっていましたが最初のはおかしかったですね

900 :デフォルトの名無しさん: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


901 :835:2010/01/12(火) 23:37:50
以前、ここでみなさんからいただいたアドバイスを上司に話して
みたところ、サードパーティの帳票ツールを購入する予算もないので
VB2005Proに入っている帳票ツールを使うように言われてしまいました。

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

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

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

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

ですので現在、参考書を片手に奮闘中です。
どうかご教示の程、よろしくお願い申し上げます。

902 :デフォルトの名無しさん:2010/01/12(火) 23:43:23
For i=1 to 10
i=i+1
RichTextBox.Text &= i & vbcrlf
Next

1づつ増えない助けて

903 :デフォルトの名無しさん:2010/01/12(火) 23:44:15
>>901
まあアクセスだと壊れるからねぇw

904 :デフォルトの名無しさん:2010/01/12(火) 23:45:03
>>902
for-nextの意味分かってる?

905 :デフォルトの名無しさん:2010/01/12(火) 23:46:39
VSに付いてるのは体験版みたいなもんだから無いものと思った方がいい
そりゃPrintDocument使えば何でもできるけどちゃんとやろうと思ったら
システム本体の作成よりもそっちの方に遥かに時間かかるよ

906 :デフォルトの名無しさん:2010/01/12(火) 23:49:56
単純なレポートなら、クリリポでもMSレポートでもどっちでもいい。
複雑なことをやりたいなら、PrintDocumentでごりごりやるか、もしくはExcelってのもあり。

907 :デフォルトの名無しさん:2010/01/12(火) 23:57:16
Excelがいいな

908 :デフォルトの名無しさん:2010/01/13(水) 03:27:28
>>902
wwwwwwwwwwwwwwwww

909 :デフォルトの名無しさん:2010/01/13(水) 07:49:54
>>902
forを書く時は、stepを書くように心がけよう

910 :デフォルトの名無しさん:2010/01/13(水) 07:53:27
帳票の話は、>>212-214あたりでも同じようなものが出てる。
そっちも参考にすると良いと思うよ。

911 :デフォルトの名無しさん:2010/01/13(水) 07:57:33
>>901
> 「長く使えるシステムを作るのならAccessよりVB」
何を根拠に言っているのか分からないが、インターネットから切り離した
ネットワークで、WindowsUpdate等を行わせなくて、別なソフトを勝手に
インスコしないという状況だと、長く安定したシステムが構築出来る。
AccessとかVBなどは関係が無い。

複数同時アクセスが多い状況であれば、Accessの方がファイルが壊れる
などのトラブルがおきやすいというのはあるが。
(VBでもネットワーク障害などのエラーでデータの再入力の手間は必ず
発生する。)

912 :デフォルトの名無しさん:2010/01/13(水) 08:20:15
「オブジェクト」ってなに?
「コンストラクター」って?

913 :デフォルトの名無しさん:2010/01/13(水) 09:25:56
オブジェクト
すべてのクラスの基本型

コンストラクター
クラスのインスタンス作成したときに勝手に呼び出されちゃうへんなサブルーチン

914 :デフォルトの名無しさん:2010/01/13(水) 10:10:00
だいたい,VBならなんでもできるからちゃんと作ればよいものも作れるというだけのことであって,
初心者が無理にVBで作ってAccessで作ったものより信頼性のあるものが作れるわけないだろ

915 :デフォルトの名無しさん:2010/01/13(水) 10:17:49
内製の時代が来てるな

916 :デフォルトの名無しさん:2010/01/13(水) 10:32:53
オブジェクト
 対象の男

コンストラクタ
 後の処女膜貫通儀式

917 :デフォルトの名無しさん:2010/01/13(水) 14:08:06
ボタンの文字を
Past&OK
にしたいのに
&をかくとへんになっちゃうからふつうに
Past&OK
というボタンテキストにしたいどうすれば

918 :デフォルトの名無しさん:2010/01/13(水) 14:15:15
&&

919 :デフォルトの名無しさん:2010/01/13(水) 14:15:46
Past&&OK

920 :デフォルトの名無しさん:2010/01/13(水) 14:25:07
ためしてみるなり

921 :デフォルトの名無しさん:2010/01/13(水) 14:43:47
ニーモニックなんかつかわねえよ、というのならUseMnemonicをfalseにしちゃうのもあり

922 :デフォルトの名無しさん:2010/01/13(水) 14:48:32
コントロールの背景色が黒だった時、の処理をしたいんだけど
If Button1.BackColor = Color.Black Then
だとエラーになってしまいます

どうすればいいんでしょうか?
よろしくお願いします

923 :デフォルトの名無しさん:2010/01/13(水) 14:52:46
まずは、エラーの内容を確認してここに書く。いつエラーになったかも忘れずに。

924 :922:2010/01/13(水) 14:58:39
>>923
System.Drawing.Colorでは演算子(=)は使えないと言うエラーだったと思います
エラーになったのは書いた時に出るエラーメッセージです

言い忘れてましたが環境は2003です

925 :デフォルトの名無しさん:2010/01/13(水) 15:01:30
じゃあ
If Button1.BackColor Is Color.Black Then


926 :デフォルトの名無しさん:2010/01/13(水) 15:03:33
つか、それでエラーにならんぞ

927 :デフォルトの名無しさん:2010/01/13(水) 15:04:42
わかった
If Button1.BackColor.ToArgb = Color.Red.ToArgb Then



928 :922:2010/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で行けました!
ありがとうございます

これでやって行きたいと思います
回答下さった皆様ありがとうございました

929 :デフォルトの名無しさん:2010/01/13(水) 15:09:59
>>927は2003で試した

930 :デフォルトの名無しさん:2010/01/13(水) 15:11:21
ニーモニックねなるほろ

931 :922:2010/01/13(水) 15:17:07
>>929
どうもありがとうございます!

932 :デフォルトの名無しさん:2010/01/13(水) 15:50:45
>>928
.NET1.1にはop_Exualityが無いのかと思ったがしっかりあった。
それでC#では==で大丈夫だった。昔のVBは難儀だったんだね。
普通はEqualsを使うのだがBoxingがないだけ.ToArgbのほうが速いかもしれない。

If Color.Equals(Button1.BackColor, Color.Black) Then 


933 :デフォルトの名無しさん:2010/01/13(水) 16:47:48
>>932
そっちのがいいな

934 :デフォルトの名無しさん:2010/01/13(水) 16:53:19
>>914
問題が摩り替わってないか?
VBがいいかAccessがいいかを>>901は聞いているんじゃないだろ。
VBを使わざる得ない状況にあって帳票はどれがいいかを聞いているんだろ。

俺はAccessが使えているのであれば、作り方は違うが
CrystalReportだと、Accessのレポート近い雰囲気の物を作れると思うぞ。
PrintDocumentは >>905>>906 が言うようにプログラムを
ごりごりと書かなければならないから、君にはちとつらいと思うぞ。

935 :デフォルトの名無しさん:2010/01/13(水) 17:42:34
といってみたかっただけ。

936 :デフォルトの名無しさん:2010/01/13(水) 18:37:37
↑人に文句を言うだけで自分では何も解決出来ないオタクがいますよ。

937 :デフォルトの名無しさん:2010/01/13(水) 20:34:55
フォームアプリでForNextの繰り返し処理中にフォームを閉じると
タスクマネージャー上でイメージ名の一覧から中々消えないのですが
すぐに完全に終了にするようにするにはどのように書けばよいですか?

938 :デフォルトの名無しさん:2010/01/13(水) 20:47:51
時間のかかる処理はスレッドにする。
または、ループ内で頻繁にDoEventsをcallする。


939 :デフォルトの名無しさん:2010/01/13(水) 22:03:58
Microsoft Visual Basic 2008 Express Edition
をインストールしました。
新規のフォームアプリケーションを開いて実行してもすぐに実行が終わってしまいます。
なぜでしょうか?
あまりにも初歩的な質問ですみませんが、本気でわからないです。
ウインドウズアップデートで最新状態にもしました。
他のPCでは、インストールするだけで、普通に使えるようです。
よろしくお願いします。

940 :デフォルトの名無しさん:2010/01/13(水) 22:32:52
>あまりにも初歩的な質問ですみませんが、本気でわからないです。
質問の仕方が初歩的な点、および本気でわからない点にも同意しておこう。

せめてステップ実行して、どこで終了してるかくらい調べたら?

941 :939:2010/01/13(水) 22:52:44
まったく何もコードを書いていない状態です。
普通なら、実行すると、なにもないフォームが表示されると思います。
ところが、実行すると何も表示せずに、終わってしまいます。
インストールがうまくいっていないようです。
VB2008のインストール以外にも必要なことがあるのでしょうか?

942 :デフォルトの名無しさん:2010/01/13(水) 22:54:40
一回アンインストールして入れなおしてみたら?

943 :デフォルトの名無しさん:2010/01/13(水) 23:02:57
Mybase.Load
Application.Exit()


944 :デフォルトの名無しさん:2010/01/13(水) 23:13:34
なんかおかしいね。ステップ実行してもダメなの?

945 :デフォルトの名無しさん:2010/01/13(水) 23:26:27
どうせ 下手にデザイナいじったんだろう

946 :デフォルトの名無しさん:2010/01/13(水) 23:31:56
http://www.microsoft.com/japan/msdn/vstudio/express/
の下のほうに注意書きがある。
>Visual Studio 2008 Express Edition with SP1 インストール時の注意
SPなしとSP1がチャンポンになってるとかないの?

947 :939:2010/01/14(木) 00:06:15
再インストールしてもだめでした。
よくわからないものを、いろいろアンインストールして、もう一度入れなおしてみます。
ありがとうございました。

948 :デフォルトの名無しさん:2010/01/14(木) 01:15:56
コンソールアプリなんじゃね?

949 :デフォルトの名無しさん:2010/01/14(木) 03:50:40
テキストボックスをインプットボックスみたいに
モーダルにしたいんだけど、いい方法ないですか?


950 :デフォルトの名無しさん:2010/01/14(木) 04:03:54
>インプットボックスみたいに
ない。自分で作って ShowDialog() しる。

951 :950:2010/01/14(木) 04:05:28
きゃほー!C#スレと間違ったぜー!
orz

952 :デフォルトの名無しさん:2010/01/14(木) 13:43:04
質問者が何を聞いているのかという点では、>>934のいうことももっともだと思うが、
AccessよりもVBという考えは間違いでもあるので、そのあたりの情報を収集し、
上司を説得する方法も考えた方がいいと思う。
VB.NETに関係する部分はこのスレで引き続き質問出来るわけだし。

953 :デフォルトの名無しさん:2010/01/14(木) 13:52:41
上司を説得するなんて仕事してたら無理ってわかるようなものなのに

954 :デフォルトの名無しさん:2010/01/14(木) 15:21:00
えっ!?
キミがリストラされた会社ってブラックリストに有るんだ。

955 :デフォルトの名無しさん: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]-以下それぞれの要素に処理
というような処理は可能でしょうか

956 :デフォルトの名無しさん:2010/01/14(木) 16:25:02
>>955
selectNodes(".//*")

957 :デフォルトの名無しさん:2010/01/14(木) 16:33:33
だが>>901の上司はいわゆる部下の提案など聞かないタイプ

958 :デフォルトの名無しさん:2010/01/14(木) 18:53:07
実際に彼がVBで作ったものを上司に見せれば上司も考えを改めるだろう
悲惨な出来になるのは間違いないから

959 :デフォルトの名無しさん:2010/01/14(木) 18:55:22
できるまでやらせるだけだろう
なぜならその上司はこの記事を読んでいるから
http://itpro.nikkeibp.co.jp/article/COLUMN/20081202/320537/

960 :デフォルトの名無しさん:2010/01/14(木) 20:09:46
>>956
XPathについての知識が全然足りないということが分かりましたので
ロケーションパスをしっかり把握できるぐらいまで学習します

ありがとうございました

961 :デフォルトの名無しさん:2010/01/14(木) 20:12:25
で、どのレポートツールがいいかって話はどうなった?

962 :955:2010/01/14(木) 22:02:46
>>956
ありがとうございました。
やりたいことが形にできました。

963 :デフォルトの名無しさん:2010/01/14(木) 23:10:22
>>938
レスどうもです。スレッドでやってみようと思います。

964 :デフォルトの名無しさん:2010/01/15(金) 02:08:50
VB2008EEを使っています。
Color構造体って
TextBox1.BackColor =
まで書いた時に列挙体のように候補が出てくるんですが、
これを自作構造体でやるにはどうすればいいですか?

965 :デフォルトの名無しさん:2010/01/15(金) 02:23:12
>>963
ただスレッドを使ってみたいだけだろw


966 :デフォルトの名無しさん:2010/01/15(金) 02:28:03
>>964
Sharedで自分自身の型のプロパティを書く
Color構造体のメンバ一覧をまず見れ

967 :デフォルトの名無しさん:2010/01/15(金) 05:59:05
ボタンを12,12等のサイズにしてbackcolorを黒にし、Textに何も入れない時に点線みたいなのが表示されます
点線を無くし、ただの黒いボタンにするにはどうするのでしょうか?

968 :デフォルトの名無しさん:2010/01/15(金) 07:38:33
>>967
それ、オブジェクトを選択したときの表記の点線じゃないの?

969 :デフォルトの名無しさん:2010/01/15(金) 07:41:42
>>968
・・・!
どうもそれみたいでした
消す事って出来ないのでしょうか?

970 :デフォルトの名無しさん:2010/01/15(金) 08:04:54
>>969
ボタンじゃなくピクチャーボックスとかラベルにすればいいんじゃない?

971 :デフォルトの名無しさん:2010/01/15(金) 08:09:11
>>970
ボタンでやりたかったのですが無理っぽいですかー
諦めてこのままやります!
ありがとうございました

972 :デフォルトの名無しさん:2010/01/15(金) 08:17:22
Buttonクラスを継承して独自のボタンを作ります。
この独自クラスでは、コンストラクタあたりでSetStyleメソッドを呼び出して、
スタイルからControlStyles.Selectableを外せば、選択できないボタンになり、
結果として点線の枠線はでなくなります。

だそうだ

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

Public Class Class1
  Inherits Button

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

End Class


974 :デフォルトの名無しさん:2010/01/15(金) 09:33:40
なんというか・・・・うん・・・

975 :デフォルトの名無しさん:2010/01/15(金) 10:36:29
なんだよー

976 :デフォルトの名無しさん:2010/01/15(金) 17:00:12
HttpWebRequest クラスでサイトにアクセスしたいのでヘッダー情報を設定したいのですが
メンバの一覧に出てこないヘッダー(サイトの固有?)はどうやって設定したら良いでしょうか?

977 :デフォルトの名無しさん:2010/01/15(金) 17:03:41
HeadersにAddする

978 :デフォルトの名無しさん:2010/01/15(金) 23:08:36
>>977
ありがとうございます。できました。
webreq.Headers.Add("Host: www.hogehoge.com")
webreq.Headers.Add("Proxy-Connection: Keep-Alive")
この二つの設定が通らないのですが、どうやって設定すれば良いでしょうか?

979 :デフォルトの名無しさん:2010/01/16(土) 00:16:30
HostはWebRequest.Createで指定したURLのホストに強制的に設定 変更できない
Proxy-ConnectionはProxy設定してKeepAlive=Trueで

980 :964:2010/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構造体のように候補はでませんでした。わかる方いましたらお願いします。

981 :デフォルトの名無しさん:2010/01/16(土) 00:57:23
こうなってくるとプログラマーというより、
Visual Studio ユーザーだな。
マニュアル嫁。

982 :デフォルトの名無しさん:2010/01/16(土) 01:33:42
>>980
んー、確かにColorのStatic Readonlyプロパティがインテリセンスに入力候補として
いきなり出てくるのは不思議。

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

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

>>981
980はそうおかしなことは言ってないぞ。
何がマニュアル嫁だ馬鹿かw

983 :デフォルトの名無しさん:2010/01/16(土) 02:07:07
>>979
ありがとうございます。解決です。

984 :デフォルトの名無しさん:2010/01/16(土) 02:29:07
超初心者です。

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

当方visual basic 2008 express editionをつかっています。

985 :デフォルトの名無しさん:2010/01/16(土) 02:44:07
超初心者が来るスレでは無いです。
初心者にジョブチェンジしてから来て下さい。

986 :デフォルトの名無しさん:2010/01/16(土) 02:46:21
HttpWebRequest クラスでサイトにアクセスしたいのですが、
最初にIDとパスワードを使ってログインしなければならないのですが、
IDとパスワードをPOSTするアドレスがhttpsのため、普通の方法では駄目なようなのですが、
対処方法を教えて頂きたいです。

987 :デフォルトの名無しさん:2010/01/16(土) 02:46:48
コンボボックス.SelectedIndex = 10;

988 :デフォルトの名無しさん:2010/01/16(土) 02:51:04
>>986
ん?httpsでも何も変わらんと思うが、普通の方法ってどんな方法?


989 :デフォルトの名無しさん:2010/01/16(土) 03:24:59
>>988
レスありがとうございます。
どぼんさんのところのサンプルで試しています。↓
ttp://dobon.net/vb/dotnet/internet/usecookie.html
違うサイトで試してみたのですがhttpsでもログインできました。
ずっとこれが原因だと思ってたのですが違ったのですね・・・
何か必要なキーの設定が抜けているのかな?

990 :980:2010/01/16(土) 03:37:25
>>982
>VB専用にIDEレベルでColorを特別扱いするように実装されてるのかも。
C#で出ないならその可能性が高そうですね。
構造体でのインテリセンスは諦めることにしました。
ありがとうございました。

991 :デフォルトの名無しさん:2010/01/17(日) 00:41:50
別のアプリケーションもしくは特定のアプリケーション実行中に
ワンキーでForm1のウインドウをアクティブにしたいんですけど
どうすればいいですか?

992 :デフォルトの名無しさん:2010/01/17(日) 00:51:52
ローレベルフック。コンビネーションでよければホットキー。

993 :デフォルトの名無しさん:2010/01/17(日) 00:57:44
もう少しわかりやすくお願いします

994 :デフォルトの名無しさん:2010/01/17(日) 06:50:43
とりあえず単語でggrks
Windowsツールを使ったことあるならホットキーくらいは知ってそうなもんだろう

995 :デフォルトの名無しさん:2010/01/17(日) 18:42:08
VB.netってC#とどういうつながりなんだろう
C#のほうはVS2008であったけどVBにはなかったい自動実装プロパティいれたり・・・

C#でテストしてからVB作ってるのかな

996 :デフォルトの名無しさん:2010/01/17(日) 18:53:49
MSの中の人が使ってるのは基本的にC#だからMSの意向がより早く反映されるんだよ

997 :デフォルトの名無しさん:2010/01/17(日) 22:37:58
ああ、それは元々C#はVSのインテリセンスとかの恩恵を最大限に受けられる事を前提に
マイクロソフトが開発した言語なわけで、VBとはちょっと思想が違うんでしょ
だから、新しい機能とかはVBよりも選考してC#側で取り入れているんじゃないの
LINQの記述方法がfromからだったりするのもインテリセンスが影響しているとか

998 :デフォルトの名無しさん:2010/01/18(月) 01:21:59
VPNや専用回線やaspxを使わず、Windowsフォームから離れた施設の
SQL Server 2005 Express にネット経由で接続することは可能でしょうか?

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

もし接続&データ取得が可能でしたら、どうかその方法をご教示下さい。

999 :デフォルトの名無しさん: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

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

256 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)