VB.NET質問スレ (Part17)

このエントリーをはてなブックマークに追加
1最凶VB厨房
[前スレ]VB.NET質問スレ (Part16)
http://pc8.2ch.net/test/read.cgi/tech/1149432480/
2最凶VB厨房:2006/08/11(金) 19:47:09
3最凶VB厨房:2006/08/11(金) 19:48:03
どぼん!のVB道のトップページとTipsページ
http://dobon.net/vb/
http://dobon.net/vb/dotnet/index.html
Microsoftクイック スタート チュートリアル
http://ja.gotdotnet.com/quickstart/default.aspx
Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
宇宙仮面の C# プログラミング
http://ukamen.hp.infoseek.co.jp/
.NET のつぼ
http://park16.wakwak.com/~mimi/dotnet/top.html
.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
C#プログラミングTips
http://www.atmarkit.co.jp/fdotnet/csharptips/index/csharptips_index.html
CodeProject
http://www.codeproject.com/vb/net/
4最凶VB厨房:2006/08/11(金) 19:48:37
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.geocities.co.jp/SiliconValley-Cupertino/5872/
Windows Api programming in C# , VB.NET, and VB6. Examples of P/Invoke and DllImport with Source code
http://custom.programming-in.net/
5最凶VB厨房:2006/08/11(金) 19:49:29
6最凶VB厨房:2006/08/11(金) 19:53:21
テンプレ 完
7デフォルトの名無しさん:2006/08/11(金) 20:27:14
>6
8デフォルトの名無しさん:2006/08/11(金) 22:04:48
次スレから翔泳社のCodeZineもテンプレにいれてやろうよ
http://codezine.jp/

で、質問。

2003のWindows FormでLocalizable = Trueにして多言語アプリ作ってるとき、
Languageで間違った言語を選択しちゃうとその言語用のリソースがbinフォルダなんかに
生成されると思うんだけど、これが削除してもしつこく復活してきやがります。

なにかこの不要なリソースが生成されなくなるようにする方法ってないかな?
9デフォルトの名無しさん:2006/08/11(金) 23:00:03
vbproj ファイルのそのカルチャ文字列調べて要素を消してみたらどうだ
108:2006/08/11(金) 23:28:34
>>9
うーん、やっぱりそういう泥臭い方法になっちゃうんですかね。
しかるべき方法が用意されてて当然のような気もするんですが。
11デフォルトの名無しさん:2006/08/12(土) 23:29:44
質問です。
form間でのDataSetの値渡しがしたいです。
ただ、他画面起動時に渡すのではなく、テキストボックスに書き込まれた後で、
つまりChangeイベントで渡したいのですが、いい方法ないでしょうか?
12デフォルトの名無しさん:2006/08/12(土) 23:37:08
はぁ?
むしろ何がわかんねえのかわかんね。
だからChangedイベントで渡せよw
13デフォルトの名無しさん:2006/08/13(日) 01:07:18
11はFORM間でデータをやり取りする方法がわからないのか?
14デフォルトの名無しさん:2006/08/13(日) 01:44:21
悪いことは言わんからDatasetみたいなデカイもんは参照にしとけって。
15デフォルトの名無しさん:2006/08/13(日) 04:01:28
むしろどうやって参照以外にするというのか
リモーティング?
16デフォルトの名無しさん:2006/08/13(日) 09:57:13
vb.net 2005 です。
textbox の validated で、button の click イベントを実行したくて、
button. PerformClick() と書いたのですが、click が発生しません。

textbox の leave イベントで button. PerformClick() を呼んだ時は
button の click が発生しました。

validated で button. PerformClick() は実行できないのでしょうか?
なにか方法があればアドバイスよろしくお願いします。


17デフォルトの名無しさん:2006/08/13(日) 13:35:16
.net 2.0 SDKをインストールしてから時々Explorerなどを起動中にJUST-TIME-INデバッガのエラーが起動してExplorerが落とされる事があるのですが
このJUST-TIME-INデバッガをSDKインストール前のように起動しなくなるようにするにはどうすればいいのでしょうか?
SDKをアンインストールしてもエラーは出てしまいます・・。

ちなみに他のアプリも落とされる事があります^^;
18デフォルトの名無しさん:2006/08/13(日) 14:17:51
vbと関係ないし。
エラーがでる元から断たなきゃ
19デフォルトの名無しさん:2006/08/13(日) 14:27:22
>>18
エラーを出ないようにする ×
JITを削除する ○

JITがあるといろんなアプリでデバッガ起動しようとして落とされるのは良くあること
20デフォルトの名無しさん:2006/08/13(日) 22:34:14
form間の値渡しって、
(B画面にて)
public A as formA = new fromA
A.label.text = "111"
って、newする方法以外、何かありますか?
あまり、newしたくありません。
21デフォルトの名無しさん:2006/08/13(日) 22:53:33
いやだから、そういうレベルの人はこんなところで質問してる場合じゃないよ。
まずは大人しく本でも読めよ。
22デフォルトの名無しさん:2006/08/13(日) 22:57:21
>>21
教えてやれよ。

すまんな。俺、コボル専門だから、わかんねーや。
23デフォルトの名無しさん:2006/08/13(日) 23:03:44
>>20
newする方法以外って言われても、それ値渡ってないし。
あなたが渡したいのは『すでにある』FormAのインスタンスに、でしょ?
そのコードは新しく作った『別の』FormAのインスタンスに渡してるんでしょうが。

まあフォートラン専門のおれに言えるのはここまでだ
24デフォルトの名無しさん:2006/08/13(日) 23:04:15
FormをPublicにしちまえよ
25デフォルトの名無しさん:2006/08/13(日) 23:20:15
大域変数を使えばいいじゃない。
26デフォルトの名無しさん:2006/08/13(日) 23:21:57
そもそもForm間で渡す設計が悪い
それぞれのFormからメソッドを呼び出すようにそろ
27デフォルトの名無しさん:2006/08/13(日) 23:26:46
>>20
http://dobon.net/vb/dotnet/form/accessanotherformdata.html

まずはここ見て、自分の好みにあったやり方を探しておくれ。
28デフォルトの名無しさん:2006/08/13(日) 23:34:36
そうやって基礎もろくに覚えてないうちから対処療養的なことを教えるから
理屈もわからずサンプルコードをコピペしまくる「VB厨」が生まれるんだけどね。

親切なことしたつもりなのは「教えたがり」の本人だけで、実際には相手に
毒を盛ってるのと同じだと俺は思うがね。
29デフォルトの名無しさん:2006/08/13(日) 23:37:34
どこからどこまでが基礎なんだろうなぁ
30デフォルトの名無しさん:2006/08/13(日) 23:41:16
悪魔のささやきとしては、Formはすべて暗黙のインスタンスを使う(笑
31デフォルトの名無しさん:2006/08/14(月) 00:20:15
×暗黙のインスタンス
○暗黒のインスタンス
32最凶VB厨房:2006/08/14(月) 10:01:59
理屈もわからずサンプルコードをコピペしまくって
いまだに基礎がわかっていないVB厨の俺が来ましたよ。←帰れ
33デフォルトの名無しさん:2006/08/14(月) 11:01:12
SCSIといっしょで、理屈に合ってなくても動いていればそれで良し。
34デフォルトの名無しさん:2006/08/14(月) 15:06:06
あまりnewしたくないって
新鮮な発想だ。
35デフォルトの名無しさん:2006/08/14(月) 15:47:40
たしかにあまりnewしたくないなぁ
36デフォルトの名無しさん:2006/08/14(月) 17:30:04
うちなんてコンストラクタ使用禁止だ
37最凶VB厨房:2006/08/14(月) 17:34:51
コンストラクタ使用禁止って・・・
虐待やな。
38デフォルトの名無しさん:2006/08/16(水) 02:30:00
構造体の内容をそのままファイルに書き込むにはどうすればいいですか?
39最凶VB厨房:2006/08/16(水) 02:42:56
BinaryFormatter使ってみるのはどうだ?
40デフォルトの名無しさん:2006/08/16(水) 02:51:08
人間に読めるほうがいい→XMLにシリアライズ
人間に読めなくてもいい→BinaryFormatterでシリアライズ
41デフォルトの名無しさん:2006/08/16(水) 09:58:36
リストビューについてですが選択行が変わったイベント
SelectedIndexChangedはありますが
選択行が変わるよイベントが見つからないのですが
そのようなイベントは無いのでしょうか?
42デフォルトの名無しさん:2006/08/16(水) 10:38:28
あまりニューしたくないって理屈は何だ?
43デフォルトの名無しさん:2006/08/16(水) 11:09:04
それよりもファイルが1000個あるフォルダでCtrl+AするとSelectedIndexChangedイベントが
1000回起きるのがイヤだ
そりゃSelectedIndexChangingだろ…
44デフォルトの名無しさん:2006/08/16(水) 18:08:16
VB.NETです

Formを開いた後に実行されるイベントはあるでしょうか?
ゲームを作っているのですがLoadが終わったあとにビジーループさせたいのです
(Loadイベントでビジーループさせるとフォームが開かない)
45デフォルトの名無しさん:2006/08/16(水) 18:09:05
Shown
4644:2006/08/16(水) 21:30:26
>>45
すいません、見当たらないです……
47デフォルトの名無しさん:2006/08/16(水) 21:33:22
shownは.NET Framework 2.0からだからね。
48デフォルトの名無しさん:2006/08/16(水) 21:43:52
>>Loadが終わったあとにビジーループ

っつーのを、もうちょっと詳しく。
49デフォルトの名無しさん:2006/08/16(水) 21:57:11
質問です。助けてください。
自分で作成したDatasetとスプレッドシートをバインドさせたいのですが
出来ません。
データグリッドみたいにバインド出来ると、思ってたのですが、無理でした。
スプレッドシートは初めて使うので、全くわかりません。
教えていただけるのが、一番嬉しいのですが、
駄目なら、この本を読めとか、このサイトを見ろとか、ヒントを下さい。
50デフォルトの名無しさん:2006/08/16(水) 21:59:31
スプレッドシートって何だよ?
サードパーティー製ならそこに聞け
51デフォルトの名無しさん:2006/08/16(水) 22:01:43
>>50さんへ
VB.NETのコンポーネントタブに入ってる、コントロールです。
エクセルみたいな感じのヤツです。
52デフォルトの名無しさん:2006/08/16(水) 22:17:24
だから標準でそんなコントロール付いてないってば
53デフォルトの名無しさん:2006/08/16(水) 22:18:18
ていうか何故正式名称を出さないんだ?
54デフォルトの名無しさん:2006/08/16(水) 22:26:27
>>51
マウスポインタをコンポーネントタブの該当コントロールに当てて、
ちょっと待ったら出てくるツールチップに書いてある名称を一言一句
間違いなく書き出すんだ。
55デフォルトの名無しさん:2006/08/17(木) 00:03:39
本当だ。
付いてない。
家で試したら無かったです。
でも、職場でダウンロードもインストもした記憶がないのですが・・・
サードパーティー製スレに行ってきます。
56デフォルトの名無しさん:2006/08/17(木) 00:12:59
そんなスレあるの?
メーカーに聞けという意味で言ったんだけどw
57デフォルトの名無しさん:2006/08/17(木) 12:11:14
datagridに書き込んだデータをExcelのシートに流し込んでExcelの機能を使って印刷
するソフトを作ったのですが、Datagridの中に特定の文字列が書き込まれているとき、
Excelに流し込む文字列を変更することは出来ないでしょうか?
ちょっと分かりにくいのですが、
Datagridにkm3と書き込まれたとき、3をExcelの文字飾り上付きにしたいのです。
(要するにkm3では無く立方キロメートルの単位にしたい)
どうやったらいいのかが全く分かりません。
実現可能であれば方法を御教授願います。
58デフォルトの名無しさん:2006/08/17(木) 13:26:00
>57
ExcelのVBAでやれば済むのでは?
59デフォルトの名無しさん:2006/08/17(木) 15:05:31
>>58
MySQLと連動させているのでVBAでやるのは難しいと思うのです。
作ったアプリでMySQLにデータを入力しつつExcelで作ってある
フォーマットに出力という形です。
60デフォルトの名無しさん:2006/08/17(木) 15:20:17
>>59
なんで?
VBAからODBC経由でもつながるし。頑張れば.net側からExcelVBAの関数呼べるだろうし。
61デフォルトの名無しさん:2006/08/17(木) 16:00:18
Excelオブジェクト作れば大体の制御は出来るよね
62デフォルトの名無しさん:2006/08/17(木) 16:10:13
>>60
もう作ったソフトがあるのでそれを改良する方向にしたいのです。
>>61
Excelオブジェクトを作って書き込んでいると思います。

Dim oXL As Excel.Application
Dim oWB As Excel.Workbook
Dim oSheet As Excel.Worksheet
Dim oRng As Excel.Range

って奴ですよね?
63デフォルトの名無しさん:2006/08/17(木) 16:11:51
書き込むだけじゃなく、VBAの呼び出しも出来ると思うが。
それに、Excel操作の基本は、マクロで記録して、それをぱくるですよ。
64デフォルトの名無しさん:2006/08/17(木) 16:40:15
VB.NET 2005 ExpressEditionをセットアップ実行中に、
.NET 2.0 日本語Language Pack のインスコ途中で、
文字化けのメッセージで error 1324とかでるのですが、
こいつの原因および対処方法はどうしたらよいでしょうか?

あと.NET FrameWork 1.1関係も再セットアップやアンインスコしようとすると
同じエラーが出ます。ボスケテ。
65デフォルトの名無しさん:2006/08/17(木) 17:39:33
HDDをハンマーで叩き割る。
66デフォルトの名無しさん:2006/08/17(木) 18:43:12
>>63
つまりExcelでVBAを吐かせてそれをプログラムに組み込むって事ですか?
(なかなか上手く行かない〜)
67デフォルトの名無しさん:2006/08/17(木) 18:45:05
.NETフレームワーク1.0で動作しているアプリケーションは2.0でも正常に動作するのでしょうか?
68デフォルトの名無しさん:2006/08/17(木) 18:50:09
するかもしれないし、しないかもしれない。
でも、だいたいはする。
6964:2006/08/17(木) 19:18:55
スマン自己解決できた、
AppLocaleの一時ファイル(apploc.tmp)のせいで文字化けしていた。

・問題点
AppLocaleを使って中国語等のソフトを使用・インストール・アンインストールした後、
日本語のソフトをインストールしようとするとインストール画面が文字化けすることがあります。
Windows Installerを使用するソフトやOfficeセットアップで発生します。

・原因
AppLocaleの一時ファイル(apploc.tmp)が、Windows Installerに影響を与えているようです。

・解決方法 (ファイルを書き換え、読み取り専用にする)
1:メモ帳で「c:\windows\apppatch」にあるapploc.tmpを指定して開きます。
  ファイルの種類を「すべてのファイル」にしないと見えませんから注意してください。

2:メモ帳で開くと「・・ 」のようなものが見えますから、これを全部消して、上書き保存してからメモ帳を終了します。

3:「c:\windows\apppatch」にあるapploc.tmpを右クリックして、プロパティを出し、「読み取り専用」にチェックを入れます。これでOKです。
70デフォルトの名無しさん:2006/08/17(木) 20:54:53
大きなチラシが必要だな
71デフォルトの名無しさん:2006/08/17(木) 23:06:37
>>66
よくわかんないけど、今あるExcelファイルにデータはき出すのでないの?
なら、普通にthisworkbook.load(だっけか?)でいいのでは??

新規作成なら、また別のお話で。(でもどのみちVBAかと)
7266:2006/08/18(金) 10:16:11
>>71
今はVB.net2003で作ったアプリでMySQLとExcelを使ってます。
伝票を作るアプリで、DataGridが配置されています。
そのDataGridに書き込んだデータを定型フォーマットとして作られた
Excelのシートに流し込んで印刷というものです。

要はデータ管理はMySQL、印刷のみExcelでそれを操作するために
VBでアプリを作ったのですが、DataGridに書き込んだ文字列はその
ままExcelに送られて印刷するだけなので体積や回転速度の単位を
表すことが出来ないのです(DataGrid上ではm3やmin-1としか表記
出来ないが、印刷のときこのまま印刷ではなく、この場合の3と-1は
右上に小さく出したい)。
使う単位はm3とmin-1しかないので、Excelにデータを送る直前に
文字列検索を掛けてm3やmin-1とあったときのみこの3と-1を文字飾り
上付きにしてExcelに送りたいのです。
73デフォルトの名無しさん:2006/08/18(金) 10:55:39
>>72
VB2005+Excel2003でとりあえず動くコンソールアプリのサンプル(多分VB2003でも動くはず)
COMの解放とかやってないけどその辺は気にしないように

Imports Microsoft.Office.Interop
Module Module1
  Sub Main()
    Dim app As Excel.Application = New Excel.Application()
    Dim wbk As Excel.Workbook = app.Workbooks.Add()
    Dim wst As Excel.Worksheet = DirectCast(wbk.Worksheets(1), Excel.Worksheet)
    Dim r1 As Excel.Range = wst.Range("A1")
    r1.Value = "100m3"
    r1.Characters(CStr(r1.Value).Length).Font.Superscript = True
    Dim r2 As Excel.Range = wst.Range("B1")
    r2.Value = "10min-1"
    r2.Characters(CStr(r2.Value).Length - 1).Font.Superscript = True
    app.Visible = True
  End Sub
End Module
7472:2006/08/18(金) 11:39:51
>>73
これって

r2.Characters(CStr(r2.Value).Length - 1).Font.Superscript = True

の部分で-1を文字飾り上付きにしてると理解したつもりだけど、
DataGridに

5-10kw 20min-1
ってあった場合、5-10kwの部分にある-1も小さくなりますか?
75デフォルトの名無しさん:2006/08/18(金) 11:43:01
ウボァ('A`)
76デフォルトの名無しさん:2006/08/18(金) 11:46:00
>>74
サンプルをアレンジすることなくそのまま使う気か?
自分でデバッグする気もないのか?
7773:2006/08/18(金) 11:55:39
>>74
セルの文字列の右から2文字を上付きにするというコードです。
DataGridからExcelにどうやって編集してるか分からないので
あなたの質問には答えられません。
7874:2006/08/18(金) 12:12:25
>>76
いや どうやってmin-1とほかの-1を区別しようか考え中です。
今のところは
1、min-1をReplaceで絶対使わないであろう文字列(仮にX)にする
2、-1をReplaceで絶対使わないであろう文字列(仮にY)にする
3、XをReplaceでmin-1に戻す
4、-1をSuperscriptで小さくする
5、YをReplaceで-1に戻す

でいいのかなと考えてるところです。

>>77
右から2文字を上付きにするコードとありますがその2文字を指定している
部分が見当たらない(上手く探せないだけだと思いますが)ので考えたのです。
単位が出るのは確実に右端なのでこのままで良いと思いますが、折角なので
色々試してみようかなと思います。
79デフォルトの名無しさん:2006/08/18(金) 12:16:18
>>78
> でいいのかなと考えてるところです。
なら>>74みたいなことまで聞くなよ('A`)
8078:2006/08/18(金) 12:23:40
>>79
脊椎反射で書き込んだ。
今は反省している。
てかその顔いいな。
私は好きです。>('A`)
81デフォルトの名無しさん:2006/08/18(金) 12:26:50
>右から2文字を上付きにするコードとありますがその2文字を指定している
>部分が見当たらない

ウボァ('A`)
82デフォルトの名無しさん:2006/08/18(金) 12:27:00
システム屋には向かん性質だな。
転職考えなよ。
83デフォルトの名無しさん:2006/08/18(金) 14:03:20
r2.Characters(CStr(r2.Value).Length - 1).Font.Superscript = True
の.Length - 1← この-1はmin-1の-1と勘違いしていた。

絶対にmin-1は右端だと思っていたら
10min-1 200V
(40min-1) とかいろんなパターンを見つけちゃったのでこれから
min-1の位置を正確に割り出す方法を考えます。

みんなサンクス。
84デフォルトの名無しさん:2006/08/18(金) 18:51:28
Label1とLabel2に
タイマーを使った乱数のスロットの値aとbを表示するプログラムを作ったのですが
Label1とLabel2に表示された値が同じ(a=b)だった時に、また自動的に選び直すようにしたいのに
Do until(a<>b)文にInt関数を挟んでも、
それらをIf(a=b)文で挟んでも、選び直してくれません。
タイマーのスタートとストップをInt関数のかわりに二段並べて記述しても、当然の事ながらうまくいきませんでした。
どうすれば良いのかどうかお知恵をお貸し下さい。
85デフォルトの名無しさん:2006/08/18(金) 19:11:40
>>84
そういうエスパー向きの質問はムーにでも投稿しろよ。
誰がそんな文章読んで理解できるんだよアホか
86デフォルトの名無しさん:2006/08/18(金) 19:56:08
>>84
コードを全部貼れ。
話はそれからだ。
87デフォルトの名無しさん:2006/08/18(金) 21:44:05
想像されるコード
If(a=b)Then
Do Until (a<>b)
Int()
Timer1.Start
Timer1.Stop
Loop
EndIf
8884:2006/08/19(土) 05:34:58
>85>86
ドコで聞けば良いでしょうか?
>87
そうなんです!
Label1=Int(ランダム)
Label2=Int(ランダム)
もしくは
Timer1=true
Timer2=true
Timer1=false
Timer2=false
のどちらかをDo until文の中に記述したんです。

どなたか、助けて下さい!!
89デフォルトの名無しさん:2006/08/19(土) 07:35:14
>>88
ヒント : Do 〜 Loop Until(While)
9088:2006/08/19(土) 09:31:23
>89
ありがとうございます!
来週始めに学校に行った時に試してみます。
91デフォルトの名無しさん:2006/08/19(土) 12:31:53
VB.net Express Edition で発行した際のインストール先について教えてください。
インストール環境 XP .NetFramework2.0

1)発行で作成したsetup.exeでXPのマシンにインストールする場合
 インストール先はユーザーから選択することはできないのでしょうか?
 (インストールしたユーザーのMyDocuments以下のLocal Settings\Apps\2.0\に作成されます)
 インストール時にユーザーがフォルダを選択できるのがベストです。

2)XPでAdministrator権限のユーザーがインストールした場合でも
 そのユーザーしか使用できません。他に何か設定する必要がありますか?

VB.netでの開発が初で面食らっております。なにとぞよろしくです。
92デフォルトの名無しさん:2006/08/19(土) 13:02:39
>>91
ClickOnceとはそういうもの。
普通のセットアップが作りたければStandard以上が必要。
93デフォルトの名無しさん:2006/08/19(土) 13:15:06
>>92

なるほど、そうでしたか。
早速の回答どうもありがとうございました。
94デフォルトの名無しさん:2006/08/21(月) 13:06:44
VB.NET2005で質問です

DayOfWeekで曜日の番号を取得した後
それを日本語名の曜日名に変換するにはどうすればいいでしょうか?

だyOfWeekの結果=0
の場合
”日” または ”日曜日”
を取得したいのです。

日付から曜日は検索しても出てくるのですが
しつもんのは内容の見受けられませんでした。

ご存知の方よろしくお願いいたします。
95デフォルトの名無しさん:2006/08/21(月) 13:10:23
自作汁
96デフォルトの名無しさん:2006/08/21(月) 13:22:32
>>94

enum DayOfWeekJP
{
 日曜日,
 月曜日,
 火曜日,
 水曜日,
 木曜日,
 金曜日,
 土曜日
}
97デフォルトの名無しさん:2006/08/21(月) 13:36:39
>>94
For d As DayOfWeek = DayOfWeek.Sunday To DayOfWeek.Saturday
  Console.WriteLine(System.Globalization.DateTimeFormatInfo.CurrentInfo.GetDayName(d))
Next
9897:2006/08/21(月) 13:48:11
短い方が欲しければGetAbbreviatedDayName(d)
9984:2006/08/21(月) 14:09:52
以前に>84で質問を致しまして、このスレで教えていただいた方法を試してはみたのですが、なかなかうまくいかないので、どなたか助けていただけないでしょうか…?
以下に、参照用としてコードを記入しておきます。

Timer1_Tick
Label2.Text = Int((52 * Rnd()) + 1)
Label3.Text = Int((52 * Rnd()) + 1)

Button1.Click
Timer1.Enabled = True

Button2_Click
Timer1.Enabled = False
a = Val(Label2.Text)
b = Val(Label3.Text)
Do
Label2.Text = Int((52 * Rnd()) + 1)
Label3.Text = Int((52 * Rnd()) + 1)
Loop Until a <> b
100デフォルトの名無しさん:2006/08/21(月) 14:18:40
>>99
すまんが、何がやりたいのかもっとまとめてくれないか?

1、Button1でタイマースタート。乱数表示開始。
2、Button2でタイマーストップ。表示されている乱数をa,bに代入。
3、‥‥

みたいな感じで、箇条書き&時系列に沿って書き出してみてくれ。
101デフォルトの名無しさん:2006/08/21(月) 14:31:37
>>99
Button2_Click
Timer1.Enabled = False
Do Until Label2.Text <> Label3.Text
  Label2.Text = Int((52 * Rnd()) + 1)  'こっちはいらない気もする
  Label3.Text = Int((52 * Rnd()) + 1)
Loop

でいいんじゃねえの?
102デフォルトの名無しさん:2006/08/21(月) 14:43:29
>>96
トンクス!
まさにこれが欲しかった
開始番号の都合で1ほど数値をずらさないといけないけど問題ないようです。

DateTimeとは違ってこっちにあるのか・・・・・

ありがとうございました!
10397:2006/08/21(月) 14:48:20
>>102
え、そっちかよw
104デフォルトの名無しさん:2006/08/21(月) 15:06:16
ワロタw
105デフォルトの名無しさん:2006/08/21(月) 15:44:56
>>103
質問が悪かったと思うとです。

System.Globalization.DateTimeFormatInfo.CurrentInfo.GetDayName()
↑これなら基本的にある日付からDayOfWeekで取れる番号(または、範囲内の番号)で処理できるじゃないですか?
 本来 日付型.String("ddd")とかでも取れるんですが、条件的に日付だけではなく曜日番号からも取得したかったんです。
 で曜日の取得名もフォーマットを変更すれば可能だし、これがいいかな?っと思ったわけです(;´Д`)
 +フレームワークの機能だけで出来るだけ行いたかったということもあります。
か・・・肩透かしでごめんなさいorz
10697:2006/08/21(月) 16:02:21
いや、enum(>>96)使うのかよ、というツッコミだったんだがw
107デフォルトの名無しさん:2006/08/21(月) 16:10:55
うぉ!!
そういうことか〜!!!!orz

書き間違えてたとは・・・・
おれ自身も苦笑ozr
10899:2006/08/21(月) 16:43:18
>100
お騒がせしました。
>101
どちらか片方で良いとは思って片方だけを記述したりしても何もならなかったのですが、その記述の仕方はなるほどです…今度試してみます。ありがとうございました!
109デフォルトの名無しさん:2006/08/21(月) 17:45:05
>>108
結局何がやりたかったのか誰もわからないままでいいのか
110デフォルトの名無しさん:2006/08/21(月) 18:17:48
>>99

>>Loop Until a <> b

参照型じゃないんだから、これじゃまずいのでは?
aとbの値は変わってないし。↓


>>Do
>> Label2.Text = Int((52 * Rnd()) + 1)
>> Label3.Text = Int((52 * Rnd()) + 1)
>>Loop Until a <> b

111デフォルトの名無しさん:2006/08/21(月) 18:27:09
てか、このスレでやることか?
11289:2006/08/21(月) 20:07:04
>>99
すまん、そういうことか
てっきりTimer1_Tickの中で選びなおすのかと思ってた
113デフォルトの名無しさん:2006/08/22(火) 15:34:12
VB2005です
同じ種類の繰り返し文ネストから脱出するときはどうすればいいんでしょうか?

do
 do
  if a=b
   exit do
 loop
loop

これで一番外まで出られますか?
114デフォルトの名無しさん:2006/08/22(火) 15:49:21
なあ、この板にはVB初心者スレとかVB質問スレとか無いのか?
115デフォルトの名無しさん:2006/08/22(火) 15:50:01
>>114
質問スレはここだと思うぞw
116108:2006/08/22(火) 15:56:59
>109-112
1、Button1でタイマースタート。 Label2,Label3に乱数表示開始。
2、Button2でタイマーストップ。Label2,Label3に表示されている乱数をa,bに数値として代入する。
3、a,bが同じ数であった場合のみ、再度、自動的に選び直させてLabel2,Label3に表示させる。


明らかに滅茶苦茶かもしれませんが、以下を試しても無理でした。

Do
Timer1.Enabled = True
If Timer1.Enabled = True Then
Timer1.Enabled = False
End If
Loop Until a <> b


a,bの値が変わってないと仰るのも、どうしてであるのかよくわからないので、是非ともご教授下さい。

そして、スレ違いのようですので、然るべきスレへのご誘導も宜しくお願いします…
117デフォルトの名無しさん:2006/08/22(火) 16:17:25
>>116
Rnd()のシードが変わらないからずっと同じ値が帰って来てるんじゃないの?
118デフォルトの名無しさん:2006/08/22(火) 16:22:34
>>116
ここでいい。
ここがお前様を立派な(?)プログラマにしてくれる(はず)。
・・・ところで試さずに聞くけど乱数ってちゃんと違うものになるか?
シード値とか無いと同じタイミングで作られた乱数って同じになるような無いような・・・。
まぁお前様よりドヘタレな俺の与太だから忘れてくれ。
119デフォルトの名無しさん:2006/08/22(火) 16:29:09
> Timer1.Enabled = True
> If Timer1.Enabled = True Then
んと
120デフォルトの名無しさん:2006/08/22(火) 16:52:46
>>116
初めにそれを書けばすぐ解決してたぞ

Private Sub Button1_Click()
Timer1.Enabled = True
End Sub

Private Sub Button2_Click()
If Label1.Text <> Label2.Text Then
Timer1.Enabled = False
End If
End Sub

Private Sub Timer1_Tick()
Label1.Text = CInt(Rnd() * 52)
Label2.Text = CInt(Rnd() * 52)
End Sub
121デフォルトの名無しさん:2006/08/22(火) 17:00:41
> 3、a,bが同じ数であった場合のみ、再度、自動的に選び直させてLabel2,Label3に表示させる。
は、そういう意味なの?
122113:2006/08/22(火) 17:14:49
質問が意味不明ですか?
それともアホすぎる質問なのかな・・・
123デフォルトの名無しさん:2006/08/22(火) 17:16:51
>>113は乱数君と同一人物?
124デフォルトの名無しさん:2006/08/22(火) 17:19:25
>>122 素直に こうしとけば?
do
 do

 loop until a=b
loop until a=b
125113:2006/08/22(火) 17:50:58
なんだか自分でもわけわからなくなってきたので出直します。

>>123
いや今日から始めたので違います。
126デフォルトの名無しさん:2006/08/22(火) 18:08:58
>>121
確かにそこを正確に説明しないと伝わらない
127116:2006/08/22(火) 18:35:21
>117
是非に、詳しい具体策をお教え下さい!

>120
コードを書き直して、Int→CIntにもしましたが、同じ数が表示されて思うようにはなりませんでした…

3、a,bが同じ数であった場合のみ、再度、自動的に選び直させてLabel2,Label3に表示させる。
というのは、単に、結果としてLabel2とLabel3に表示されている数が異なれば良いんです。助けてください…
128デフォルトの名無しさん:2006/08/22(火) 19:39:21
>>127
>>101では駄目なの?
129116:2006/08/22(火) 19:45:42
>118
忘れてました…
ちゃんと違う値になる事の方が多いですが、デバックモードはコンピュータがあらゆる場合を試そうと判断しているのか、数回繰り返しているだけで2数が一致したりします(一致するのは1/52の確率です)。
130デフォルトの名無しさん:2006/08/22(火) 19:52:29
「はぁ〜 プップクプ〜ッ ♪」
   ∧_∧   ∧_∧  ∧_∧
  (・ ε ・)  (・ ε ・)  (・ ε ・) 
  ⊂    つ ⊂    つ ⊂    つ
   (_)`J   (_)`J   (_)`J
    「やれ プップクプ〜 ♪」
    ∧_∧  .∧_∧   ∧_∧
  ∩ ・ε・ ∩ ∩ ・ε・ ∩ ∩ ・ε・∩
   〉    ノ 〉    ノ 〉    ノ
   し´ (_)  し´ (_)  し´ (_)
「 アキヒロ〜音頭で プップクプーの プ♪」
   ∧_∧   ∧_∧  ∧_∧
  (・ ε ・)  (・ ε ・)  (・ ε ・) 
  ⊂    つ ⊂    つ ⊂    つ
   (_)`J   (_)`J   (_)`J
131デフォルトの名無しさん:2006/08/22(火) 20:33:37
>>116
>>a,bの値が変わってないと仰るのも、どうしてであるのか

aとbは値型でしょ?
参照型ではないから

>>Do
>> Label2.Text = Int((52 * Rnd()) + 1)
>> Label3.Text = Int((52 * Rnd()) + 1)
>>Loop Until a <> b

これでは、Label2.TextとLabel3.Textの値は変わるけどaとbの値に変動はないんだから、永遠ループに入ると思うんだが。
132116,127:2006/08/22(火) 21:11:22
>128
>101でもダメでした…

>131
Do
Label2.Text = Int((52 * Rnd()) + 1)
Label3.Text = Int((52 * Rnd()) + 1)
a=Val(Label2.Text)
b=Val(Label3.Text)
Loop Until a <> b

もしくは
Do
Label2.Text = Int((52 * Rnd()) + 1)
Label3.Text = Int((52 * Rnd()) + 1)
a=Str(Label2.Text)
b=Str(Label3.Text)
Loop Until a <> b
としてみます。
ありがとうございます!
133デフォルトの名無しさん:2006/08/22(火) 21:27:46
それよりも、何でラベルのテキストを変更してからそれを変数に取ろうとするの?
普通変数に受けてそれをコントロールに落とそうとしない?
オレはコントロールはあくまで人間とのインターフェースだと思ってるけどな
134デフォルトの名無しさん:2006/08/22(火) 21:36:29
それよりも彼の場合まずロジックを考えられるようになる方が先決。
135デフォルトの名無しさん:2006/08/22(火) 21:48:05
ちょっとした疑問なんだが、

>>Do
>>Label2.Text = Int((52 * Rnd()) + 1)
>>Label3.Text = Int((52 * Rnd()) + 1)
>>a=Str(Label2.Text)
>>b=Str(Label3.Text)
>>Loop Until a <> b

タイマーで乱数まわす意味あるのか?
シード設定もしてないようだし。
136デフォルトの名無しさん:2006/08/22(火) 22:07:42
そもそも>>120でやっても
>>127
> コードを書き直して、Int→CIntにもしましたが、同じ数が表示されて思うようにはなりませんでした…
と、「同じ数が表示された」ってことなんだから、何か根本的に間違ってる/理解していないと思う。
13789:2006/08/22(火) 22:26:52
>>120
button2押しても止まらないときがあるような・・・

>>135
スロットっぽくしたいんじゃないの?

ちなみに俺が言いたかったのは、Timer1_Tickで
Do
a = CInt((52 * Rnd()) + 1)
b = CInt((52 * Rnd()) + 1)
Loop Until a <> b
Label1.Text = a
Label2.Text = b
まぁ、選びなおしは停止するタイミングでやった方がいいかもね
138デフォルトの名無しさん:2006/08/22(火) 22:54:52
>>137
「同じだったら止まらない」仕様通りでは?
139デフォルトの名無しさん:2006/08/23(水) 00:04:39
なあ、俺の思い違いだったらいいんだが。

スロットって回転してる間は、別に表示してる値の評価なんてしなく
てもいいんでないか? ストップボタンを押した時に、初めて表示さ
れてる値を比べて、当たり外れを付けるもんだろ?
140デフォルトの名無しさん:2006/08/23(水) 00:06:05
誰が比較して当たり外れを付けろと
141デフォルトの名無しさん:2006/08/23(水) 00:17:12
例え確立やタイミング的に大丈夫でもTimer内でLoopは嫌だな。俺は。
それはさておき、
> まぁ、選びなおしは停止するタイミングでやった方がいいかもね
を考えてと、質問者のやり方に近い作りにすると、たったこんだけ。効率とか他の仕様とかコーディングポリシーとかは無視して。
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
hoge()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Timer1.Enabled = True
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.Timer1.Enabled = False
Do Until Me.Label1.Text <> Me.Label2.Text
hoge()
Loop
End Sub
Private Sub hoge()
Me.Label1.Text = CInt((52 * Rnd()) - 1)
Me.Label2.Text = CInt((52 * Rnd()) - 1)
End Sub

要は質問の仕方の悪さで長引いただけだと。
142デフォルトの名無しさん:2006/08/23(水) 00:52:40
ここは
 値型と参照型
 値の代入と参照の代入
の区別がつかないヒドイ言語ですね

どうしてこのような言語仕様になっているか
エロイ人教えてください。
143デフォルトの名無しさん:2006/08/23(水) 01:06:29
何処の受け売り?
144デフォルトの名無しさん:2006/08/23(水) 01:22:48
>>142
またC++の悪口か
145デフォルトの名無しさん:2006/08/23(水) 01:36:58
ところでスロットを作りたいのでなければ何を作りたかったのだろうか
146デフォルトの名無しさん:2006/08/23(水) 08:30:41
> スロットを作りたいのでなければ
同じ数値を排除したいって言ってるので最初っからスロットなんて考えられないのに。
147デフォルトの名無しさん:2006/08/23(水) 09:41:41
>>84でスロットという言葉が出ているんで仕方ないんでないか?
148デフォルトの名無しさん:2006/08/23(水) 10:23:10
絶対に当たらないスロットを作って稼ごうとしたのでは
149デフォルトの名無しさん:2006/08/23(水) 10:59:17
Datagridviewをコード内で作成したDataTableにバインドして利用しようとしています。
データを表示するまでは可能なのですが、DataTableにデータを追加してもDatagridviewが更新されないで
表示が固まってしまいます。再描画?か何かが必要なのだと想像するのですが、分かりませんでした。
InvokeとかBackgroundworksなどを使うと良いとはあったのですが、理解できませんでした。
どのように処理すれば良いのでしょうか?よろしくお願いします。

(こんな感じのコード)
Dim ds as Dataset
Dim dt as Datatable
Dim bind1 As BindingSource

Sub form1_load() Handles MyBase.Load
ds.Tables.Add(dt)
dt.Columns.Add("column1", GetType(String))
(以下略)

bind1.DataSource = dt
Datagridview1.DataSource = bind1

End Sub

Sub test()

Dim Row as DataRow
Row = dt.NewRow
Row(0) = "a"
Row(1) = "b"
dt.Rows.Add(Row)

End Sub
150デフォルトの名無しさん:2006/08/23(水) 11:50:22
テキストファイル読み込みは
textfieldparserとstreamreaderどっちを使ったらいいの?
151デフォルトの名無しさん:2006/08/23(水) 12:35:59
読んで字の如く
152デフォルトの名無しさん:2006/08/23(水) 12:55:37
>>150
中身による。
153デフォルトの名無しさん:2006/08/23(水) 16:40:42
>>151-152
textfieldparser
テキストの分野の解析?
streamreader
流れながら読む?

csvとかにはtextfieldparserで
通常はstreamreaderってことですかね
154デフォルトの名無しさん:2006/08/23(水) 17:00:05
>>153

>>2
MSDN
http://msdn2.microsoft.com/ja-jp/library/ms229284.aspx

textfieldparser
>構造化テキスト ファイルの解析に使用するメソッドとプロパティを提供します。

streamreader
>特定のエンコーディングのバイト ストリームを読み込む TextReader を実装します。


とりあえず、読んだ方がよいかと。
155デフォルトの名無しさん:2006/08/23(水) 21:38:07
Do-Loopキモイ。
156デフォルトの名無しさん:2006/08/23(水) 21:42:09
乗り遅れ突っ込みもキモイ
157デフォルトの名無しさん:2006/08/23(水) 23:33:27
うそつきはDoLoopのはじまり
158デフォルトの名無しさん:2006/08/24(木) 08:10:35
>>154
おお、ありがとう。
159デフォルトの名無しさん:2006/08/24(木) 09:19:11
最近はMSDNすら見ないのか・・・・・
160デフォルトの名無しさん:2006/08/24(木) 11:32:50
ここの議論はいつも Do Do めぐり。
161デフォルトの名無しさん:2006/08/24(木) 17:51:13
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/index_sta.htm

ここ見ながら勉強してるんだけど、
graphicsで描写したものを消すにはどうしたらいいの?

一度最小化するとかってのは無しで・・・。
162デフォルトの名無しさん:2006/08/24(木) 17:56:05
無限ループしたらパソコン壊れますか?
163デフォルトの名無しさん:2006/08/24(木) 18:41:08
デルノートなら爆発もありうるな
164デフォルトの名無しさん:2006/08/24(木) 19:05:46
>>161
Invalidate
165デフォルトの名無しさん:2006/08/24(木) 21:06:59
VB2005の解説サイトで良いところありませんか?

Cなんかは簡単に見つかりましたが、
VBではテンプレみてもどれがいいのか、
何を書いているのかほとんどわかりません。
>>161みたいなものがいいのですが、
あまり体系立った説明がされていない
(後回し後回しで要点がつかみ難い)
のでわかりにくいです。

具体例を用いてあると尚良いのですがどこかありませんか。
166デフォルトの名無しさん:2006/08/24(木) 21:23:36
167デフォルトの名無しさん:2006/08/24(木) 21:49:23
テンプレみてもどれがいいのか
何が書いてあるのかほとんどわかりません…
ある程度基本が身に付いた人であれば
知りたい情報はどこにあるか見当もつけられると思うのですが
現時点では>>3-5のサイト一通り巡回してもわけがわかりませんでした。
あと、関係ないのも多数混じっていませんか?
168デフォルトの名無しさん:2006/08/24(木) 21:55:17
>>164
さんくす。でも具体的な使い方はどうやればいいの?
MSDNで検索したけどワカラン

たとえば
ボタン1をクリックしたらピクチャーボックス1に黒い円が浮かび上がって
ボタン2をクリックしたらその円が消えるようなプログラムは
どうする?
169デフォルトの名無しさん:2006/08/24(木) 22:11:53
>>168
背景色で塗りつぶしたらよかんべえ


170デフォルトの名無しさん:2006/08/24(木) 22:13:46
>>167
「あまり体系立った説明がされていない」なんてえらそうなこと言う
前に、まずどこでもいいからひとつでも全部通して読むべきだよ。い
まの「どこがわからないのかわからない」状態から脱したいならね。
171デフォルトの名無しさん:2006/08/24(木) 22:16:16
だるまの目を塗りつぶしたいんだけど、
背景色で塗りつぶすとだるまも消えちゃう・・・。
だるまも再表示するようにしても、うまくいかないのよー
172161・168・171:2006/08/24(木) 22:19:12
↑は>>169宛です
173デフォルトの名無しさん:2006/08/24(木) 22:20:00
>>167
体系立った説明が欲しいなら、仕様書。これ。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/vbls7/html/vbSpecStart.asp

>>171
逆に考えるんだ
描画したものを消すと考えるんじゃない
描画したものの上から黒眼/白眼を書けばいいと考えるんだ
174デフォルトの名無しさん:2006/08/24(木) 22:36:10
>>173
ありがと。考え方は理解できた。
でもだるまの目の部分よりも、塗りつぶす黒目が大きい場合はどうしたらいいの?
175デフォルトの名無しさん:2006/08/25(金) 01:17:25
buttonの名前をいじってて
cancelbuttonにしたらエラーが多発してデザイン画面が出てこなくなった・・・。
いったん他の名前に変えて難を逃れたんだけど、
もともとのデザイン画面がでてこない・・・。
表示タブのデザインっていうの選んだらデザインタブでてくるよね?
再起動してもでてくるよね?

・・・出てこない。
・・・オワタ?
176デフォルトの名無しさん:2006/08/25(金) 02:01:48
自分でデザイン部分のソース修正。
177デフォルトの名無しさん:2006/08/25(金) 02:11:22
>>175
CancelButtonとかAcceptButtonは地雷。つかプロパティ名とかぶるのでそういうことになるよ。
フォーム名.Designer.vbをごりごり修正。
178デフォルトの名無しさん:2006/08/25(金) 08:38:42
FlexGridで処理後に次の行特定の列を選択した状態にしたいのですが、
選択するとそこがboolreanで勝手にチェックがはいってしまいます。

FlexGrid.cols(4).type=boolrean
FlexGrid.select(3,4)

初歩的だと思いますが何か設定があるのでしょうか?
179デフォルトの名無しさん:2006/08/25(金) 09:18:23
boolrean
180デフォルトの名無しさん:2006/08/25(金) 12:10:23
DataGridViewの中にコンボボックスをいれたいんだけどどうすんの?
181デフォルトの名無しさん:2006/08/25(金) 12:33:00
いれればいいじゃん
182デフォルトの名無しさん:2006/08/25(金) 14:45:26
それがわからんのです(´;ω;`)ブワッ
183デフォルトの名無しさん:2006/08/25(金) 14:54:09
DataGridViewの、コンボボックスにしたい列をコンボボックスにしてあげればいいと思うよ。
184デフォルトの名無しさん:2006/08/25(金) 15:03:14
そのままやんけ!って思ったけどそのままやったんですね。
できました。どうもありがとうございます。<(_ _)>
185178:2006/08/25(金) 18:36:20
自分で解決できました。
ただ単にarrolweding=falseにするだけでした。
186デフォルトの名無しさん:2006/08/25(金) 20:29:54
arrolweding
187チョ初心者:2006/08/25(金) 21:02:24
クラスにテキストボックスそのものを渡して
キーコードに応じて処理をしてテキストボックスの中身を変えて戻す
そうゆうのって問題なしですか?
188デフォルトの名無しさん:2006/08/25(金) 21:35:09
それにキモさを覚えなければ問題ないが、
それにキモさを覚えないのには問題があるな
189デフォルトの名無しさん:2006/08/25(金) 21:42:37
>>187
そうしたい理由や手順をフローにして書いてみそ。
もっと洗練されたやり方があるかもしれない。
190デフォルトの名無しさん:2006/08/25(金) 22:46:28
助けてください。いろいろ調べたのですが、うまく出来ません。

参照の循環する依存関係で苦しんでます。
同じソリューションの別プロジェクトの画面遷移をしたいです。
スタートアップのA画面からB画面へ、そしてB画面からA画面へ
戻る遷移になります。つまり、相互遷移です。
B画面が開いたら、A画面は閉じるのが条件です。
で、双方のプロジェクトに参照設定を試みました。
下記の図です。
ソーリューション
 |
|-プロジェクトA
参照設定(FormB.dll)
   FormA
|-プロジェクトB
   参照設定(FormA.dll)
FormB
当然ながら、循環参照でエラーとなります。

基礎的な事でしょうが、
まだ、開発経験が浅く、どう調べていいかがわかりません。
ヒントなりもといただきたいと考えております。
よろしくお願いします。
191デフォルトの名無しさん:2006/08/25(金) 22:53:26
流れを管理するプロジェクト C を作って、C が AB を参照。
AB は他は気にせず自分の事だけやればよい。
192190です。:2006/08/25(金) 22:54:28
書き残しました。
共通部分をクラスライブラリとして括り出して、それを参照する
とういう方法論までは、わかったのですが、
そこから先がわかりません。
下の図のように、新プロジェクトを作成し、
そこで、イスタンス化を計ったのですが、
やはり、循環参照でエラーになります。
ソーリューション
 |
|-新プロジェクト
参照設定(FormA.dll,FormB.dll)
classA
|
 |-プロジェクトA
   参照設定(classA.dll)
   FormA
 |-プロジェクトB
   参照設定(classA.dll)
   FormB
193デフォルトの名無しさん:2006/08/26(土) 01:00:09
っていうか、プロジェクトとか、クラスライブラリを参照するってことの意味を
何か勘違いしているような。。

いやそれ以前にクラスって概念からしてわかってないんじゃねえの?
フォームなんてハリボテに過ぎないもの、推移とかいったって所詮
表示したり消したりするだけのことなのに、いちいち画面ごとにプロジェクト分ける気か?
194187:2006/08/26(土) 03:12:35
>>189
遅くなりましたが…
理由は入力チェックをクラスで纏めたい為です。
・エスケープなら指定オブジェクトへフォーカスを移す。
・リターンなら種類によってコードチェック
次のオブジェクトにフォーカスを移す。
・入力ミスならエラー表示をする。
と、そんな感じにしたいのですが
フォーカス指定と入力テキストボックスで3つもオブジェクトを渡すのってマズいのかな…と

先生方、もっとカコイイやり方があれば是非ご教授下さい
始めたばかりで、クラスとかもよく分かってないですが…(つД`)
195デフォルトの名無しさん:2006/08/26(土) 03:27:21
>>194
単にチェック&エラー表示したいだけならErrorProviderがお手軽だけど。
196デフォルトの名無しさん:2006/08/26(土) 03:57:15
過去に既出であったり、王道があれば教えてください。

WMPのように、多重起動せず受け取ったコマンドラインを
すでに起動している同じソフトに送信するのに
・APIのSendMessage GetMessege
・APIのSetProp GetProp
・127.0.0.1でSOCKET
・変数のポインタをどっかのファイルに書き込むorレジストリでそこを読んで 改変
・特定のファイルorレジストリでそこを監視
・.net新規のものでもっといいのあるよ〜

受け渡しは前述の通り、文字列だけです。
使用バージョンは VB.net 2005です。
これらの中で”一般的にはこれ”等あればご教授お願いします。
197デフォルトの名無しさん:2006/08/26(土) 05:27:20
>>196
プロジェクト−プロパティ−アプリケーション「単一インスタンスのアプリケーションを作成する」。VB専用。

名前つきMutex(System.Threading.Mutex)を使う。C#でも可能、データの受け渡しは不可。
198デフォルトの名無しさん:2006/08/26(土) 05:30:58
>>196
あとは、.NETリモート処理を使う方法もあるが、実例はあまり見たことがない。
.NET 2.0で追加されたIpcChannelが9x系ではエラーになるなど問題が多い。
199デフォルトの名無しさん:2006/08/26(土) 07:42:50
Formにスナップ機能?winampのように他のウィンドウや画面の端にくっついたりするにはどうすればいいですか?
教えてください。お願いします。
200190です。:2006/08/26(土) 11:55:03
>>193
すいません、正直、あまり、わかっていません。

動きは全て、仕様です。
Formの開閉時に、DBに接続して、Select,Update,Insertを
行う仕様になってます。
201デフォルトの名無しさん:2006/08/26(土) 12:02:46
>>197-198
どうもありがとうございます。

単一インスタンスにすると2重起動時、
Loadなりなんなりで
後から起動したほうを終了して、
普通に宣言してある変数の内容を書き換えるだけで
すでに起動していた側からその変数を見たら変更されてて
この目的なら万事おk ってことですよね?

とりあえず試してくるw
202デフォルトの名無しさん:2006/08/26(土) 12:11:29
そんなことしなくても後から起動されたほうは勝手に終了する。
先に起動してた方のMy.Application.StartupNextInstance イベントのパラメータに
後から起動したコマンドラインが渡されるので後はお好きなように。
つーかMSDN嫁。
203デフォルトの名無しさん:2006/08/26(土) 12:17:23
>>202
そんな楽にできるのかw
MSDNじっくり読んできます〜
マジありがとう。
204デフォルトの名無しさん:2006/08/26(土) 12:20:32
>>200
>>191さんが書いてるのは仕様に外れるからダメってことか?
205149:2006/08/26(土) 12:33:16
その後色々と調べたところ、同じ症状の対策がでてました。

DataGridViewのスクロールバーがおかしくなる
ttp://dobon.net/vb/bbs/log3-26/15520.html


delegate void DataTableAddRowCallback(DataTable dt, DataRow dr);
private void DataTableAddRow(DataTable dt, DataRow dr)
{
if (dataGridView.InvokeRequired)
{
DataTableAddRowCallback d = new DataTableAddRowCallback(DataTableAddRow);
Invoke(d, new object[] { dt, dr});
}
else
{
dt.Rows.Add(dr);
}
}

//別スレッドから
DataTableAddRow(dataSet.Tables["TableName"], dataRow);


で、解決するらしいのですがC#はさっぱりで、VBに書き換えも撃沈しました。
どなたか、教えていただけないでしょうか。よろしくお願いします。
206デフォルトの名無しさん:2006/08/26(土) 12:40:25
>>195 遅くなりましたが、有り難う御座いました
こんな見易い便利なの物があるんですねーー
初めてみました(´Д`)
複数コード入力した後の最終チェックなんかに使ってみたいです


とはいえ、やはりコード入力がものすんごいあるので
フォームでのコード入力のところをごっそり省きたい……
やはり、オブジェクト渡してやっちまいまつ(゚∀。)
207デフォルトの名無しさん:2006/08/26(土) 12:47:17
>>205
>>149のコードを見る限りDataRowへのデータの追加を
別スレッドでやってるようには見えないんだが、そこんとこはどうなの?
同一スレッドでやってるんならリンク先の対策は役に立たないと思うが。
208149:2006/08/26(土) 13:06:25
>>207
すいません、そうでした。現在のソースはこのような感じです。仮想モードは使っていません。

  Dim ds as Dataset
  Dim dt as Datatable
  Dim bind1 As BindingSource
  Friend WithEvents Bg_main As System.ComponentModel.BackgroundWorker

Sub form1_load() Handles MyBase.Load
  ds.Tables.Add(dt)
  dt.Columns.Add("column1", GetType(String))
(以下略)
  bind1.DataSource = dt
  Datagridview1.DataSource = bind1
  Bg_main.RunWorkerAsync() '別スレッドへ
End Sub

Sub Bg_main_DoWork() Handles Bg_main.DoWork
  Row = dt.NewRow
  Row(0) = "a"
  Row(1) = "b"
  dt.Rows.Add(Row)
End Sub

Bg_main.RunWorkerCompleted で追加を検出してMe.Refreshでも固まってしまいます。DataGridViewで何かイベントがいるのかな。
209デフォルトの名無しさん:2006/08/26(土) 13:13:30
>>208
順序がおかしいな。
別スレッドで DataSet/DataTable にデータを突っ込む>元スレッドで DataSource に設定
だ。

> DoWork イベント ハンドラでユーザー インターフェイス オブジェクトを操作しないように注意する必要があります
と MSDN にあるが、 DataSource に設定済みの DataSet/DataTable への操作も UI の操作に当たる。
210149:2006/08/26(土) 13:35:50
>>209
レスありがとうございます。
頻繁に書き換えがあるので、左記にDataSourceを割り当てているのです。
実際には、スレッドは沢山あって、それぞれにDataDableを更新しています。

その更新結果を、DataGridViewにリアルタイムで表示しているのですが、スクロールバーが出ると固まってしまいます。
MSDNにはUIを操作するなと書いてあるのは知ってますが、リアルタイムでデータが流れてくるので、別スレッドに流し込まない
と処理が間に合わないのが現状でして。

表示自体は、RunWorkerCompletedにMe.Refresh()を入れれば改善はされるのですが、やはり触ると固まってしまいます。
そこで、色々調べたら>>205の症状と似ていたので。

205のソースは、いろいろと変更して入れて見る努力はしたのですが、そもそも知識不足で理解できませんでした。
211デフォルトの名無しさん:2006/08/26(土) 13:50:50
だったらこんなところに質問している間に理解しようとすればいいのに。
この人に限らないけど、ダメな奴っていうのは基本的に努力の方向が間違ってるよ。
212149:2006/08/26(土) 13:55:24
>>211
C#のヘルプとか見ながら色々と試行錯誤しているんですけど、なかなか上手くいかなくて。。。。
213デフォルトの名無しさん:2006/08/26(土) 14:06:52
いや、だからたぶんデリゲートとかスレッドがよく分からんのでしょ?
だったらまずそれを理解しろよ。でなきゃ埒があかん。小学生でもわかる理屈。
@ITとかCodeZineに解説あるし、別にたいして難しいもんじゃない。
214デフォルトの名無しさん:2006/08/26(土) 14:15:37
> スレッドは沢山あって、それぞれにDataDableを更新しています。
ってアンタ……


なんか色々絶望的だな
215149:2006/08/26(土) 16:32:56
Invokeを使ってもやっぱりかたまる。DataGridViewのイベント関係なのかも。


Delegate Sub DataTableAddRowCallback(ByVal dt As DataTable, ByVal dt_row As DataRow)

Public Class Form1

>>208と一緒

  Public Sub DataTableAddRow(ByVal dt As DataTable, ByVal dt_row As DataRow)
   If DataGridView1.InvokeRequired Then
     Dim d As DataTableAddRowCallback
     d = New DataTableAddRowCallback(AddressOf DataTableAddRow)
     Me.Invoke(d, New Object() {dt, dt_row})
   Else
     dt.Rows.Add(dt_row)
   End If
  End Sub

Sub Bg_main_DoWork() Handles Bg_main.DoWork
  Row = dt_temp.NewRow
  Row(0) = "a"
  Row(1) = "b"
  DataTableAddRow(dt, Row)
End Sub

End Class
216デフォルトの名無しさん:2006/08/26(土) 19:00:19
ダメグラマが「固まる」って言葉が好きなのは法則か何かかねw

ダメグラマはなんでダメなくせになんでいきなり全部を完成させようとするんだろう。
そのくせ問題が起こると、「問題の切り分け」すらしようともせず、
全然見当違いのことを問題の原因だと思い込む。

もちろん彼はシンプルなコードを書いて、本当に彼が思っていることが
問題の原因なのか、確認しようともしない。
217デフォルトの名無しさん:2006/08/27(日) 00:42:02
510 :ワールド名無しサテライト:2006/08/26(土) 09:43:50.46 ID:8fm3vXed
「やっぱりVBが悪いんじゃないか。VBなんて」
「いいえ。全ては使い方しだい。私たちがVBの本当の使い方を見せてあげますわ。」
218デフォルトの名無しさん:2006/08/27(日) 13:02:03
スマートクライアント(リッチクライアント)についてサンプルが載ってる
本でいいのって無いですかね?
219デフォルトの名無しさん:2006/08/27(日) 15:42:58
ネットで見つからなければ本も期待できないと思ったほうがいい
220デフォルトの名無しさん:2006/08/27(日) 18:49:09
そっか、したら、もう少しネット浮浪者でがんばってみる。
221デフォルトの名無しさん:2006/08/28(月) 01:05:59
>>215
同じインスタンスなら、Invokeなんてまったく意味ない。

単にロジックがおかしいんだと思うけど、
ソースコピって一からデバッグしてくれる親切な人なんていないんだからさ、
もうちょっと、的を絞って質問できないか?

あとデータ量が多いならMSDN読んで作り直したほうがいいかもしれない。
222デフォルトの名無しさん:2006/08/28(月) 02:02:42
>同じインスタンスなら、Invokeなんてまったく意味ない。

( ゚д゚)



( ゚д゚ )
223デフォルトの名無しさん:2006/08/28(月) 02:15:54
こっちみんな
224デフォルトの名無しさん:2006/08/28(月) 05:08:38
みんな〜こっちこっち〜
225デフォルトの名無しさん:2006/08/28(月) 16:07:38
VB.NET2003でTabControlついてですが
デフォルトでは標準コントロールらしく味がありません。
これはデザインを変更することは可能ですか?
226デフォルトの名無しさん:2006/08/28(月) 16:47:53
継承して頑張ってみれば?
227デフォルトの名無しさん:2006/08/28(月) 19:18:30
>>225

つ VB2005
話はそれからだ。

228デフォルトの名無しさん:2006/08/28(月) 20:39:13
>>227
2005のはどんな感じですか?
229デフォルトの名無しさん:2006/08/28(月) 22:24:41
私VB.NETの初心者です。
CopyMemory
の使い方が分からなくて、たまたま見つけた
ttp://www.winapi-database.com/System/Memory/CopyMemory.html
の例

Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" _
(Destination As Integer, Source As Integer, ByVal Length As Integer)

を試したらエラーしたので、二行目を適当に変更して

(ByVal Destination As IntPtr, ByVal Source As String, ByVal Length As Integer)

としたら無事動きました。
動いたのはいいのですが、これでいいのかどうかよく分かりません。
適当に勘で置き換えただけです。
それで質問なのですが、私が行った操作は、VBでは何という分野ですか?
こういうことに関してより詳しくなるためには、私は何を勉強すればいいでしょうか?
よろしく。
230デフォルトの名無しさん:2006/08/28(月) 23:00:01
>>229
自学して理解できない人が触ったらだめだよ。そういうAPIは。
つりじゃなくまじめに。
子供には早いって奴。
231デフォルトの名無しさん:2006/08/28(月) 23:34:36
>>229
P/Invokeだけど、
本当にCopyMemoryする必要があるの?
ライブラリ内で完結できるなら初学の頃はフレームワークの外にでるべきじゃない
232132:乱数君:2006/08/28(月) 23:57:56
やっと時間を持てるようになり、皆さんのご意見を参考にさせていただいて、まずは、タイマーを外しまして(出来れば、タイマーを使ってスロットのようにしたかったのですが、背に腹は代えられません)、思うような成果が得られました。
ただ、以下のコードをButton1_Clickに記入しているにもかかわらず、

Do
Label3.Text = Int((52 * Rnd()) + 1)
h = Val(Label2.Text)
i = Val(Label3.Text)
Loop Until h <> i

何のコードも記入していないはずのButton2をクリックした時に、上記のイベントが起きます。(Button1をクリックした時には何も起きません。)
これは何故なのでしょうか…?
233デフォルトの名無しさん:2006/08/29(火) 00:14:13
それは霊のしわざです
234デフォルトの名無しさん:2006/08/29(火) 00:30:26
>>232
半年くらいコーディングやめてバカンスにでも行ってきたら?
つーか何で>>141とかでダメなのかと。
235デフォルトの名無しさん:2006/08/29(火) 11:08:42
夏休みの宿題なんじゃねーの?
236232:2006/08/29(火) 12:02:00
>234
Private Sub 『hoge』
というツール?がよくわからなかったので、参照が出来ませんでした…
>235
リミットはありませんが、何とか時間のある夏のうちに完成させておきたいんです。
237デフォルトの名無しさん:2006/08/29(火) 12:15:31
>>236
> Private Sub 『hoge』
> というツール?がよくわからなかったので、参照が出来ませんでした…
これが仮に「釣り」ではなく真面目な回答なら、煽りでも何でもなく真面目な助言なんだが、
初心者向けの書籍を最低一冊は自分で購入して学習ないといけない。
238デフォルトの名無しさん:2006/08/29(火) 12:17:45
>>236
どうやら Handles の意味も調べなおしといたほうがよさそうだな・・・
239デフォルトの名無しさん:2006/08/29(火) 12:21:26
> Private Sub 『hoge』
> というツール?がよくわからなかったので、参照が出来ませんでした…

この時点でスルー決定でおk?
240デフォルトの名無しさん:2006/08/29(火) 13:09:49
ワロタ
241236:2006/08/29(火) 13:57:31
私は.NETしか使用した事がありませんから、>141に使われている言語全体が、私が使用しているものと違い、何の本を参考にしていいのかもわかりません。
少なくとも、『学生のためのVisual Basic .NET』(東京電機大学出版局)には、件のワードは載っていないと思われます。
どうかお知恵をお貸し下さい…
242デフォルトの名無しさん:2006/08/29(火) 13:58:36
これは・・・
243デフォルトの名無しさん:2006/08/29(火) 14:08:28
クマー
244デフォルトの名無しさん:2006/08/29(火) 14:09:25
>>241
ttp://bookweb.kinokuniya.co.jp/guest/cgi-bin/wshosea.cgi?W-NIPS=9977896941
これか?
第6章に書いてないか?
"hoge"は命名の例え。"baka"でも何でも自分で付けるもの。
(各自コーディング規約に則っての修飾等は置いておいて)
普通はその自分で作った関数の機能がわかるように命名する。
関数に名前を付け、中身も(この例だとRnd()のある2行)記述し、使いたい各所でその名前にて呼び出す。
Private, PublicやSub, Functionについても第6章に書いてあると思われ。

君はその本を読んだのかもしれないが、理解も習得もしていないし断片を記憶に留めることもしていない。
245デフォルトの名無しさん:2006/08/29(火) 14:11:56
>>241
目次で見る分には十分そうな気もするんだが。
ttp://www.tdupress.jp/cgi-bin/detail.cgi?i=ISBN4-501-53670-5

このあたりからやってみたらどうだろう?
ttp://www.seshop.com/detail.asp?pid=3813

あと、>>141のコードを丸ごと動かしてみてトレースしてみたら?
246デフォルトの名無しさん:2006/08/29(火) 14:16:56
> >141に使われている言語全体が、私が使用しているものと違い

この時点でスルー決定でおk?
247デフォルトの名無しさん:2006/08/29(火) 14:20:43
foo() や bar() 関数(api?)をよく見るのですが、
どのリファレンスにも載っていません。
どうもいろいろな言語に共通しているようですが、
いったいどういう動作をするのでしょうか。教えてください。
248デフォルトの名無しさん:2006/08/29(火) 18:42:43
また人に教えを垂れたい「答えたがりクン」と、友達がいないからこんなところでも
馴れ合いたい「馴れ合いクン」が湧いてくるんだろw

馬鹿なことだよな。
こういう奴らはどっちかというと本来質問する側にまわるヘッポコ野郎のくせに、
自分で自分の利用可能なリソースを破壊してることにも気づかないんだから。

こんな下らん馴れ合いが続けば、ある程度スキルがあるまともな奴から去っていくだろ。
249デフォルトの名無しさん:2006/08/29(火) 19:17:46
本人乙
250241:2006/08/29(火) 20:07:47
>244>245
>141のコードを記述してみると、確かに、うまく動作していました。プロシージャの項目と言わず、もっと精進していくつもりです。大変にお騒がせしました。ありがとうございます。

>248
きっと、ある程度スキルがある人の事は、ある程度スキルがある人にしかわかりません。揣摩臆測でしょう。
251デフォルトの名無しさん:2006/08/29(火) 20:51:28
>>232

貴方のいうButton1_Click は、別にどんな名前でもいい。これは解るかな?
そして、好きなイベントをHandleできるということも解るかな?

コレが解ればなぜButton2をクリックしてButton1_Click が動くのかは理解できるだろう。

252232:2006/08/29(火) 21:05:36
>251
ありがとうございます。今はわかりませんが、精進してわかり得るように努めます。
253デフォルトの名無しさん:2006/08/29(火) 21:14:10
精進する気がある奴ならそんな程度の質問などしないはずだがね。
まあ人事だからどうでもいいけど。
ただ鬱陶しいから二度と来ないでは欲しい。
254デフォルトの名無しさん:2006/08/29(火) 21:18:23
多重起動時のウィンドウ制御について教えてください。

アプリを多重起動させようとしたときに、
既に同じアプリが動いてれば、何もさせずに、
起動済みのインスタンスをアクティブにして、
2つ目に起動したインスタンスは何もせずに終了させるという
ロジックを組もうとしています。

インスタンスが起動済みかどうかは Process.GetProcessesByName
などを使って判別することができ、
1つ目のインスタンスにPostMessageでWM_USERを送り、
自分自身でアクティブ化させるという方法をとったのですが、
問題なのは、このアプリが最小化されたときは、タスクバーから消して、
トレイに格納するようにしていることです。
タスクバーから、ウィンドウを消してしまうと、
たとえアプリが起動していても、2つ目のインスタンスから、
1つ目のインスタンスのMainWindowHandleを取得しようとしても
0しか返って来なくなるようで、PostMessageが使えない状態です。
2つ目のインスタンスに何かメッセージを送る方法はないでしょうか?
255デフォルトの名無しさん:2006/08/29(火) 21:36:33
>>254
単一インスタンスのアプリケーションを作成 ではだめなん?
だめだよね…
256デフォルトの名無しさん:2006/08/29(火) 21:49:12
>>254
>>196以降のレスは読んでる?
つーか同一人物か?
257デフォルトの名無しさん:2006/08/29(火) 22:06:28
Do-Loopキモイ。
258デフォルトの名無しさん:2006/08/29(火) 22:22:26
.NETのdatagridviewに、VB6のmsflexgridでいう
margeColやmargeRowみたいな機能はありますか?
探すのですが、みつからない…Orz
259デフォルトの名無しさん:2006/08/29(火) 22:27:16
ない
260デフォルトの名無しさん:2006/08/29(火) 22:43:15
>>259
お答え有り難う御座いました
無いのですか…orz
編集とか出来るようなので、ないような予感はしてましたが…
(つД`)あぁ
261254:2006/08/29(火) 23:13:32
>>255
単一でもアクティブにならないとダメなんで・・・

>>256
すみません、見逃していました
IpcChannelってのが使えそうなのでとりあえず試してみます。
262デフォルトの名無しさん:2006/08/30(水) 00:38:03
DataGridViewに50列1万件程度のレコードを仮想モードで表示させています。
この状態で、画面をスクロールさせたり、複数セルを選択するたびに、
かなり画面がちらついてしまいます。
この現象を回避する良い方法はないでしょうか?
263デフォルトの名無しさん:2006/08/30(水) 00:49:36
>>262

50万セルは大杉
DataGridViewに限らずもうすこし現実的な仕様を考えたほうがいい

普通にそれだけあったら絞るか分割するだろう。
50列も一度に見渡すよりも必要な列だけ見れたほうが扱いやすい事もある。
行の場合も必要な範囲をさくさく見れるほうが便利な事もある。
少なくとも1万行全部を見渡す必要なんて無いと思うが・・・

生データをただ丸ごと全部並んでればいいってもんじゃないだろお。
どうすれば最も扱いやすくなるかを考えなさい。
264デフォルトの名無しさん:2006/08/31(木) 10:59:36
UIの仕様に話が変わってるなw
265デフォルトの名無しさん:2006/08/31(木) 11:04:53
OS:Windows2000
言語:VB.NET(2003)

現在、CSVファイルとPDFファイルをそれぞれ暗号化し
メールで送信後、送信先で復号化して保存する
アプリケーションを作成しています。
そこで、
ttp://dobon.net/vb/dotnet/string/encryptfile.html
を元に、暗号化と復号化機能を作成しました。

CSVファイルの暗号化、復号化は問題なく出来たのですが
PDFファイルを同じように暗号化し、復号化すると
復号化した後のPDFファイルを開くと
「この文章を開くときエラーが発生しました。
ファイルが壊れています。修復できませんでした。」
とメッセージが表示されうまく復号化出来ませんでした。
私なりに調べてみたのですが、どう解決すればよいかわかりませんでした。
どなたか、実装例や参考アドレスなどでも結構などで教えていただけないでしょうか?
266デフォルトの名無しさん:2006/08/31(木) 11:07:55
マルチ乙
267デフォルトの名無しさん:2006/08/31(木) 11:09:32
よくわからんが、それ対象がテキスト以外でも大丈夫なんか?
268デフォルトの名無しさん:2006/08/31(木) 11:45:26
DecryptFileを下のやつに置き換えてないとか
269デフォルトの名無しさん:2006/08/31(木) 12:27:28
OS:WindowsXP
言語:VB.NET(2003)

外部端子からの映像入力をリアルタイムでフォーム上に表示することって出来ますか?
出来ればやり方教えてください。
270デフォルトの名無しさん:2006/08/31(木) 12:29:00
外部端子てなによ。キャプチャカード?
271デフォルトの名無しさん:2006/08/31(木) 18:36:57
開発言語:VB.NET(Windowsアプリケーション)
    :SPREAD Windows FORM Edition

現在 VB.NETでフォーム上にSPREADを配置した
アプリケーションを開発しています。
そのスプレッド上の特定のセルに
フォーカスが当たった時、喪失した時に、
IMEの「全角あ」「半角ア」の制御を行いたいのですが、
なかなか実現できずに困っています。
どなたか同様の案件を実現された方がいらっしゃれば、
教えていただけないでしょうか?
よろしくお願いします。
272デフォルトの名無しさん:2006/08/31(木) 21:08:27
パブリックな標準モジュールとクラスの差異ってばなんですか?????
273デフォルトの名無しさん:2006/08/31(木) 21:13:13
今からVBを始めようと思っている超初心者です。
今日、PC屋に行ってVisual Basicを買おうと思ってみていたら、
Win2000とXPに対応していないものしか売っていませんでした。
Meに入るVBはどこで入手したらいいのでしょうか・・・・・・
274デフォルトの名無しさん:2006/08/31(木) 22:41:19
>>272
たくさんあって書き切れない

>>273
VS買う金があるならOS買ってVB Express Edition使っとけ
いやまじで。
275273:2006/09/01(金) 00:26:27
>>274
回答サンクスです
マジですか。。。
確かにVBに限らずいろんなソフトがxp/2000専用になってますもんね・・・(VB体験版もMe入らないみたいだし・・)
ありがとうございます。
xp検討してみます。
276デフォルトの名無しさん:2006/09/01(金) 20:27:13
項目内容が同じdatatable1とdatatable2の両方を
datatable3に入れたいのですが可能ですか?
277デフォルトの名無しさん:2006/09/01(金) 20:34:24
追記
1列ずつnewとaddで追加する方法以外で
無理ですか…?
278デフォルトの名無しさん:2006/09/01(金) 21:54:01
insert into datatable3 select * from datatable1
insert into datatable3 select * from datatable2
279278:2006/09/01(金) 21:55:23
あ、RDBじゃないのか。すまん。
280デフォルトの名無しさん:2006/09/02(土) 00:26:12
>>276
最初にDataTable1の複製を作って、そこにDataSet.Mergeメソッド
で2の内容をくっつけるのはどうだろう?

ttp://msdn2.microsoft.com/ja-jp/library/803bh6bc.aspx
281ぼよん:2006/09/02(土) 02:58:31
アニーメーションGIFを出力する方法ってご存知ありませんか?
標準のライブラリでできるのでしょうか?
282デフォルトの名無しさん:2006/09/02(土) 03:21:05
どこに出力すんだ
283デフォルトの名無しさん:2006/09/02(土) 06:16:04
VB.NET 2005 で
マルチスレッドWindowsサービスの
プログラムを作成しようとしているのですが
手持ちの本がサービスとスレッド関係の情報が
少ししか載っておりません。

先輩方で良い本をご存知の片がいらっしゃいましたら
教えて頂けませんでしょうか?
284276:2006/09/02(土) 12:25:57
>>278 280 有り難う御座いました
思った感じに出来ましたーー
285デフォルトの名無しさん:2006/09/02(土) 12:33:37
つーかそれ、VB.NETじゃなくてSQLの質問…
286デフォルトの名無しさん:2006/09/02(土) 13:00:22
いえいえ、たぶんVB.NETで間違いないです
変数名 AS datatable

の関連です

親FILEと子FILEがあり
datatableへそれぞれdatatable1とdatatable2に入れてまとめた後、
ビューでソートしたものをdatagridviewに渡すべきか
rowをaddでゴリゴリ追加すべきか、悩むところです
(´Д`)
287デフォルトの名無しさん:2006/09/02(土) 13:17:56
アフォの子は退場
288デフォルトの名無しさん:2006/09/02(土) 13:59:54
もすかすて、SQLになるんですか…
まだVB.NET2005を触り初めて数日で
正直よくわかってません…orz

289デフォルトの名無しさん:2006/09/02(土) 14:03:14
Mergeでいいやん
290デフォルトの名無しさん:2006/09/03(日) 13:23:31
すいません、質問なんですが。
デバッグモードでプログラムを実行中に無限ループに陥ってしまった場合、
現在どのステートメントを実行しているか知る方法ってありますか?
VBというよりデバッガの質問になってしまっていますが、もしよろしければ
教えていただけないでしょうか。
291デフォルトの名無しさん:2006/09/03(日) 13:39:28
妖しそうなコードの手前にブレークポイント置いてステップ実行。
292デフォルトの名無しさん:2006/09/03(日) 15:46:44
大文字小文字を区別しないIndexOfって無いんでしょうか・・・
調べ方が悪いのかなorz
293デフォルトの名無しさん:2006/09/03(日) 16:26:55
.NET 2.0/VB2005 なら String.IndexOf にオーバーロードがあるが、
それ以前なら Regex.Match でも使ってれば。
294デフォルトの名無しさん:2006/09/03(日) 17:44:35
>>292
string.IndexOf(String, StringComparison)
string.ToLower.IndexOf(string)
string.ToUpper.IndexOf(string)
295デフォルトの名無しさん:2006/09/03(日) 17:47:41
下の2つ、
比較先もToLower()/ToUpper()しなきゃだめじゃね?

296デフォルトの名無しさん:2006/09/03(日) 19:18:24
日曜プログラマなんだけどVB.NETはgoto文使えないの?
VBはお気楽に使えるのがいいのにな
297デフォルトの名無しさん:2006/09/03(日) 20:31:05
なんでお気楽に書くためにgotoが要るのか分からない。
てか使えるだろ別に。
298デフォルトの名無しさん:2006/09/03(日) 21:03:43
On Error Gotoの替わりはtry catchだよ。
299デフォルトの名無しさん:2006/09/03(日) 21:05:29
そういや普通のgotoって残ってたっけ?
300デフォルトの名無しさん:2006/09/03(日) 21:13:17
プロジェクトウインドウのツールボックスのように、画面の隅にひっこめたり
表示したりするコントロールはなんて名前ですか
301デフォルトの名無しさん:2006/09/03(日) 21:52:42
>>299
残ってる。ループ構文のネストから脱出する場合のGO TOは禁じてではない。
302デフォルトの名無しさん:2006/09/03(日) 21:59:01
>>301
まあそもそも深いところからの脱出が必要なネスト構造自体禁じたいもんではあるな
303デフォルトの名無しさん:2006/09/03(日) 22:06:07
VBの場合whileの2階層離脱は出来たりする。
Do While ...
  While ...
    Exit Do
  End Wend
Loop
304デフォルトの名無しさん:2006/09/03(日) 23:19:35
.NETでCABファイルを作成しWEBサーバに配置。
ASPを実行して、objectタグでクライアントにダウンロード
し実行しようとしています。
ここで、CABはダウンロードされ、DOWNLOADED PROGRAM FILESに
表示はされますが、状態が「不明」となり、レジストリ登録されず
、実行することができません。
.NETモジュールとASPに記述したクラスIDは同期がとれています。

VB6.0で作成したCABは問題なく使用できたのですが・・・
同様の経験のかたいらしたら、ご教授ください。

305デフォルトの名無しさん:2006/09/03(日) 23:25:49
Do-Loopキモイ
306デフォルトの名無しさん:2006/09/04(月) 09:18:53
>>302
お前さんは簡単なプログラムしか作ったことが無いのか?
多重ループ構造なんて良くあることだし、
途中で結果が出たら無駄にループせずに脱出したほうがいいに決まってる。

>>303
go to はともかく
Doイベントは、もはや使うべきではない。

>>304
同様の経験もなにも、意味不明。
まずは、どこに問題があるのかを自分で特定しなさい。
特定できたらそこに絞って質問してくれ。
答えようが無い。
307デフォルトの名無しさん:2006/09/04(月) 09:34:40
問題も何も、普通1行目の前半の問題である可能性を一番に疑うし。
308デフォルトの名無しさん:2006/09/04(月) 09:42:00
> Doイベント
ってw
309デフォルトの名無しさん:2006/09/04(月) 09:45:34
> 途中で結果が出たら無駄にループせずに脱出したほうがいいに決まってる。

多重ループはよくあるが、gotoで脱出しなくても綺麗な流れで抜けられるようなロジックにするよな普通。
310デフォルトの名無しさん:2006/09/04(月) 09:51:47
まぁ、何だ。>>306みたいな素人程、複雑怪奇なコードを書いて
「難しいプログラムだぜ」と自己満足に浸るもんだしな。
311デフォルトの名無しさん:2006/09/04(月) 10:05:39
exit for とかで抜けれるならいいけど多重構造によってはgotoもありじゃね?C言語全盛期じゃあるまいし

「綺麗な流れ」とか、芸術性で物作ってるわけじゃないけどgoto使ったほうが綺麗になる場合もある。
何もかもgotoだと気持ち悪いけどね。
312デフォルトの名無しさん:2006/09/04(月) 10:17:02
gotoで見通しが格段に良くなる場合だけだな。使うのは。
313デフォルトの名無しさん:2006/09/04(月) 10:24:23
>>306
go to は良くて Do Loop が良くない理由を教えてください
314デフォルトの名無しさん:2006/09/04(月) 10:50:49
お世話になります。

現在VS2003 .NET Framework1.1にて開発を行っています。
DataGridの行追加が許可されている状態で
一番下の行(全項目が空白の行)をctrl+cでコピーをしようとすると
IndexOutOfRangeExceptionが発生してしまいます。
これは、DataGridの一番下の行に値が入力されるまでは
関連付けられているDataTableに新規行が追加されていない為だと思うんですが、
どうしたらこのエラーを回避する事が出来るのでしょうか?
315デフォルトの名無しさん:2006/09/04(月) 14:05:02
DataGridでデータ追加をするってこと自体がヤバいと思う。
単票フォームを別に作って、そこから一件づつ追加するような遷移に
すれば? 入力データのエラーチェックもその場で可能だし。

Gridは一覧表示とまとめて削除くらいに特化して、追加編集は別フォ
ームにて確認しながら行うのがいいかと。
316デフォルトの名無しさん:2006/09/04(月) 19:22:51
>>307−310
ヴ ォ ケ
317デフォルトの名無しさん:2006/09/04(月) 20:29:17
見事な敗北宣言だな 実に美しい
318デフォルトの名無しさん:2006/09/04(月) 20:31:25
何か叫んで走って逃げてったな。>>316
319デフォルトの名無しさん:2006/09/05(火) 02:30:21
ガキばっかりだな。
勝敗競うスレでもなければ、技術自慢するスレでもない。
おとなしくスルーしろよ。
320デフォルトの名無しさん:2006/09/05(火) 06:42:31
モマエモナー
321デフォルトの名無しさん:2006/09/05(火) 10:21:50
オマエモナー(=゚ω゚)つ)゚∀゚)グァ
322デフォルトの名無しさん:2006/09/05(火) 14:20:56
HashtableのValueにデータ型(System.Int16やSystem.Object)を入れたいんだけど、入れる方法ってあります?
323デフォルトの名無しさん:2006/09/05(火) 14:27:54
(゚д゚)ハァ?
324322:2006/09/05(火) 15:34:11
判りにくかったようなので、再度書きます
Dim hash As Hashtable
hash.Add(1, System.Int64)
↑のような事をやりたいのですが、コンパイルエラーになります。
System.Int64を入れるやり方ってありますか?
325デフォルトの名無しさん:2006/09/05(火) 15:55:57
GetType(System.Int64)
326デフォルトの名無しさん:2006/09/05(火) 22:15:43
それが分からんやつにTypeを入れる方法を教えても
Typeの使い方が分からんから、どうにもならないよ。
327178:2006/09/06(水) 08:25:15
Datasetで同じスキーマ情報のdatatableにデータをコピーする
場合ってどうするんですか?
dim A as dataset.mmtable
dim B as dataset.mmtable

Adapter.Fill(A)


B=A ←こんなことがしたい。
328デフォルトの名無しさん:2006/09/06(水) 08:54:26
329322:2006/09/06(水) 09:21:47
>>325
出来ました、ありがとう御座います
330デフォルトの名無しさん:2006/09/06(水) 09:38:03
VS2003 .NET Framework1.1で開発しています。

PictureBoxにTIFファイルを表示させるプログラムを開発しています。
TIFファイルには1つのファイルに複数の画像を格納できるので、
そのページ数と表示倍率、画像の回転率を指定し、画像を表示させています。
テストを行っている時に気づいたのですが、
2ページ目以降で倍率100%、回転率180度の時に
なぜか1ページ目の画像が表示されてしまいます。
表示倍率や回転率を変えると
ちゃんと指定したページの画像が表示されます。
これは一体なぜなのでしょうか?
331322:2006/09/06(水) 09:53:00
Dim hash As new Hashtable
dim object1 as object
dim object2 as object
hash.Add(1, GetType( System.Int64 ) ' ←ここはこれで行けました。
object2 = CType( object1 , hash(1) ) ' ←ここがいけません。
object2 = CType( object1 , GetType( hash(1) ) ) ' ←これもだめです。

Ctypeの第2引数にHashtableに入っているTypeを入れたいのですが、どうすればいいですか?
332330:2006/09/06(水) 10:05:40
以下がそのプログラムの抜粋です。
長いので分割します。

Private Sub pctPreview_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles pctPreview.Paint
Dim g As Graphics
Dim img As Image
Dim fd As FrameDimension

Try

sngZoomNum = intZoomNum / 100 'ここで倍率指定

g = e.Graphics

g.InterpolationMode = _
System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic

img = Image.FromFile(strFilePath)

'FrameDimensionを取得
fd = New FrameDimension(img.FrameDimensionsList(0))

'フレームを選択
img.SelectActiveFrame(fd, intPageNum) 'ここでページ数指定
333330:2006/09/06(水) 10:09:34
'画像を表示(回転率ごとに変更)
Select Case sngRotate
Case 0
sender.Size = New System.Drawing.Size(sngZoomNum * img.Width, sngZoomNum * img.Height)
Case 90
sender.Size = New System.Drawing.Size(sngZoomNum * img.Height, sngZoomNum * img.Width)
g.TranslateTransform(sngZoomNum * img.Height, 0)
Case 180
sender.Size = New System.Drawing.Size(sngZoomNum * img.Width, sngZoomNum * img.Height)
g.TranslateTransform(sngZoomNum * img.Width, sngZoomNum * img.Height)
Case 270
sender.Size = New System.Drawing.Size(sngZoomNum * img.Height, sngZoomNum * img.Width)
g.TranslateTransform(0, sngZoomNum * img.Width)
End Select

'画像の傾き指定
g.RotateTransform(sngRotate)
g.DrawImage(img, 0, 0, sngZoomNum * img.Width, sngZoomNum * img.Height)

img.Dispose()

Catch ex As Exception
throw ex
End Try
End Sub

以上です。
どうぞよろしくお願いします。
334デフォルトの名無しさん:2006/09/06(水) 10:39:39
>>331
無理
335デフォルトの名無しさん:2006/09/06(水) 12:09:24
>>330
VB2005だけどやってみたら確かにそうなった。
原因はわからない(GDI+のバグ?)けどDrawImageするときに

Dim img2 As Bitmap = New Bitmap(img)
g.DrawImage(img2, 0, 0, sngZoomNum * img.Width, sngZoomNum * img.Height)
img2.Dispose()

としたらちゃんと描画されたので試してみて。
336330:2006/09/06(水) 13:13:41
>>335
どうもありがとうございます。

教えていただいたコードを実装してみたところ、
正常に動作する事を確認しました。
自分もGDI+のバグかと思ったんですが、
それらしい記述が見当たらずに困っていました。

本当にどうもありがとうございました。
337デフォルトの名無しさん:2006/09/06(水) 13:19:09
ListViewでヘッダをクリックでソートする事は許可しつつ、ヘッダをドラッグでサイズ変更はされたくないのですが、
これって出来ますか?
338デフォルトの名無しさん:2006/09/06(水) 14:15:32
>>337
C#だけどこんなのがある。VBでやりたければ翻訳して。
http://hongliang.seesaa.net/article/14788140.html
339337:2006/09/06(水) 16:30:56
>>338
ありがとう、出来ました^^
340デフォルトの名無しさん:2006/09/06(水) 22:26:18
>>328
ご丁寧にありがとうございました。
助かりました。
341デフォルトの名無しさん:2006/09/07(木) 11:57:28
リストボックスの垂直スクロールバーを非表示にして、
なおかつ矢印キーでのスクロールは可能な状態に
したいのですが、出来ますでしょうか?
342デフォルトの名無しさん:2006/09/07(木) 20:59:06
singletonパターンを使用しているクラス(newがprivate)をxmlでデシリアライズすると、
publicなコンストラクタが無いからだめと怒られてしまいます。
SoapFormatterを使用すれば出来る事は知っているのですが、SoapFormatterで作ったファイルは見にくいので、
XmlSerializerでやりたいと思っています。
対応策やアドバイスお願いします。
343342:2006/09/07(木) 21:26:02
↑は取り消します。すみません。
SoapFormatterで作ったファイルが汚いのはシリアライズ時のファイルモードがCreateで無かったからです、すみません。
344デフォルトの名無しさん:2006/09/08(金) 00:11:48
変換ウィザードでVB.NET(2002)のプロジェクトを2005に変換したんですが
コードの表示やビルドは成功するのに、デザインで開けないフォームがあります。

「クラスが登録されていません」
場所 System.Windows.Forms ・・・

のような表示が出るのですが
System.Windows.Formsを参照させても解消しません。

ご存知の方がいらっしゃいましたらアドバイスをお願いいたします。
345デフォルトの名無しさん:2006/09/08(金) 00:45:19
346デフォルトの名無しさん:2006/09/08(金) 00:53:17
変換ウィザードはぜんぜん使い物にならないってこと。
フォームは新規作成、コードはコピペでちょっとずつ確認しながら
やったほうがいいよ。
347デフォルトの名無しさん:2006/09/08(金) 17:22:55
環境はVisual Studio 2003、.Net FrameWork1.1です。

GetLogicalDrivesを使ってコンボボックスに
ドライブ名の一覧を表示させたいのですが、
試した限りではネットワークドライブに関しては
一度Windows上でそのドライブにアクセスしないと
ドライブ名が取得できないようなのです。
ネットワークドライブにアクセスしないで
ドライブ名の取得をする事は出来ないのでしょうか?
348デフォルトの名無しさん:2006/09/08(金) 19:27:47
VB.Netをやってる 鬱だ 鬱だ 鬱だー
349デフォルトの名無しさん:2006/09/09(土) 19:16:34
VB.NETについて質問があります。
VB.NET STANDARDをインストールしています。
必須コンポーネントインストールで
Visual Studio .NET Prerequisites ディスクを入れると
以下のようなメッセージが出てしまいます。

コマンドラインパラメータ:
/V パラメータを MsiExec.exe へ送る
/S 初期化ダイアログを非表示。サイレント モード用: /S /v/qn.
/P パスワード モード
/A 管理インストール
/J アドバタイズモード
/X アンインストール モード
/UA<InstMsiA.exe の URL>
/UW<InstMsiW.exe の URL>
/B キャッシュのローカル インストール

これから先へは進むことが出来ません。
どのようなことが考えられるでしょうか。
350デフォルトの名無しさん:2006/09/10(日) 10:35:07
VB.NETは日曜プログラマーも多いが、それ以上に日曜なしプログラマーが多い。
おまいら見積もり尼杉。
351デフォルトの名無しさん:2006/09/10(日) 10:42:39
VB.NET2003からHTTPでレガシーASPのサイトにファイルを
アップロードしたいのですが、HTMLで以下のような形で
ファイルを送信するのと同じ処理をVB.NETのWindowsアプリから
やりたいのですが、よいサンプルが見つからず悩んでおります。
どなたかご存知の方がおられましたら教えてください。
よろしくお願いします。

<form action="hoge.asp" enctype="multipart/form-data">
<input name="File" type="file">
</form>
352351:2006/09/10(日) 13:03:11
すみません。事故解決しました。
353デフォルトの名無しさん:2006/09/10(日) 14:01:33
「'''」と入力してエンター押すと、勝手にメソッドのコメントの枠組みを
作ってくれるソフトの名前を知ってる方いらっしゃいませんか?
354デフォルトの名無しさん:2006/09/10(日) 14:04:39
VB2005
355デフォルトの名無しさん:2006/09/10(日) 15:36:37
>>354
2005では標準で付いてたんですね・・・すみません。ありがとうございました。
356デフォルトの名無しさん:2006/09/11(月) 06:57:59
>>353
VBCommenter
357347:2006/09/11(月) 09:45:36
どなたかわかりませんでしょうか?
358デフォルトの名無しさん:2006/09/11(月) 10:11:18
>>357
A:\からZ:\までDirectory.Existで存在確かめたらいいんじゃね?
359デフォルトの名無しさん:2006/09/11(月) 11:11:33
.NETの2003 WEBアプリケーションにおいて
「テキストボックスがフォーカス状態になったらリストボックスの可視をTrueにする」

といったような内容のIF文を記述したいのですが
どういった記述になるのでしょうか?
どなたかご教授ください、お願いいたします。
360デフォルトの名無しさん:2006/09/11(月) 11:16:33
>>359
visble = falseじゃフォーカス取れなくね?
361デフォルトの名無しさん:2006/09/11(月) 11:19:41
>>360
そうなんですよ・・・
一体どうすればいいのやら・・・何かよい方法ご存じないですか?

362デフォルトの名無しさん:2006/09/11(月) 11:26:08
>>361
textBoxの上にパネルでも乗っけて隠して、
textBox.Enterでパネル.visible = false
textBox.Leaveでパネル.visible = true

みたいな感じでどうか
363デフォルトの名無しさん:2006/09/11(月) 11:34:22
>>362
その「.enter」についてですが普通に記述するだけではなく
何か定義(準備?)のようなものが必要なのでしょうか?
以前 別のサイトで似たような記述を発見したので試したのですが
その部分がうまくいかなかったものでして・・・
364デフォルトの名無しさん:2006/09/11(月) 11:55:58
イベントを学べ
365デフォルトの名無しさん:2006/09/11(月) 13:33:35
すいません質問です。
文字列のソート・・例えば「あえいうお」を「あいうえお」
にする簡単な方法ありますでしょうか?
よろしくお願いします。
366デフォルトの名無しさん:2006/09/11(月) 13:35:49
>>365
ORDER BY
367デフォルトの名無しさん:2006/09/11(月) 13:51:48
>>365
Dim s As String = "あえいうお"
Dim c() As Char = s.ToCharArray()
Array.Sort(c)
s = New String(c)
368365:2006/09/11(月) 14:03:08
!!
ありごとうございました!!
369デフォルトの名無しさん:2006/09/11(月) 14:21:46
そのお礼が366宛てだったら笑えるなw
370デフォルトの名無しさん:2006/09/11(月) 14:28:15
>>369
すまん今日一番ワロタ
371365:2006/09/11(月) 15:33:13
何度もすいません。
例えば「abcABC」を「ABCabc」ではなく「aAbBcC」と並び替えるには、
どうすればいいでしょうか?
宜しくおねがいします。
372デフォルトの名無しさん:2006/09/11(月) 15:35:58
>>371
ORDER BY
373デフォルトの名無しさん:2006/09/11(月) 18:43:03
>>371
Public Class MyCompare : Implements IComparer(Of Char)
  Public Function Compare(ByVal x As Char, ByVal y As Char) As Integer Implements IComparer(Of Char).Compare
    Dim xLow As Char = Char.ToLower(x)
    Dim yLow As Char = Char.ToLower(y)
    If xLow = yLow Then
      Return -x.CompareTo(y)
    End If
    Return xLow.CompareTo(yLow)
  End Function
End Class

Array.Sort(c) の代わりに Array.Sort(c, New MyCompare())
374デフォルトの名無しさん:2006/09/12(火) 00:08:39
なんでそんな面倒なことしてんだ?
375デフォルトの名無しさん:2006/09/12(火) 00:18:57
簡単にやる方法をよろしく
376デフォルトの名無しさん:2006/09/12(火) 00:36:43
どぼんとかのサンプルのクラスをコピペして"Windows フォーム デザイナで生成されたコード"を
直接直した(例えばnew DataGridをnew DataGridExにするとかした)時に、そのままデザインビューが
表示出来る場合もあれば、タスクにエラーが山程出てデザインビューでDataGrigが全く表示されず
コードがボコボコ消えて当然デバッグしてもマトモに動かない場合がありますが、やはり直接修正は
しちゃいかんのでしょうか?
(フォームのLoadに書けばいいのかな)
377デフォルトの名無しさん:2006/09/12(火) 01:05:55
DataGridExとやらのクラスがきちんと定義されてれば可。
存在しないクラス名にしたらエラーが出るのは当たり前

ようするに分かってないうちはデザイン部は触るなってこった。
まあ触って学ぶってのもありだけど。
378デフォルトの名無しさん:2006/09/12(火) 02:06:44
StringComparer.CurrentCultureIgnoreCase とか、元から使えるやつあるやん。
379デフォルトの名無しさん:2006/09/12(火) 02:09:23
おっと、もし2.0じゃないならCaseInsensitiveComparer.Defaultとか。
380デフォルトの名無しさん:2006/09/12(火) 02:17:32
>>379
それで書いてみろよ
381デフォルトの名無しさん:2006/09/12(火) 02:23:16
??
Array.Sort(c, New MyCompare())

Array.Sort(c, CaseInsensitiveComparer.Default)
ってことじゃなくて??
なんか勘違いしとる俺?
382デフォルトの名無しさん:2006/09/12(火) 02:52:02
おおっ勘違いしとったわwwすまんすまん。
383デフォルトの名無しさん:2006/09/12(火) 13:01:37
>>377
いやもちろんクラスはあるんだわ
でないと絶対動かんし
要はただ起動しただけで動いたり動かなかったりするのは何でなんだろ?と
(動かない時ってのはコードがごっそり無くなって結果まともに動作しなくなる)


もう一つ、DataGridなんだけど、行ヘッダクリックすれば複数行選択出来るけど、
セルからme.select(row)みたいにすると、CtrlやShift押しててもその都度選択が解除されて
新規選択になっちゃいますよね
あれを回避する方法は無いでしょか?
(要はアクセスのリストボックスの複数選択モードみたいにしたいんです)
384383:2006/09/12(火) 15:26:23
自己解決
カレントセルの列を-1にしてselectすれば出来た
shiftの時は前回の選択行からfor-nextで回してやればOK
385デフォルトの名無しさん:2006/09/12(火) 20:49:08
VB2003にて質問です。
現在MDIアプリを作成中なのですが
子Formを2つ作成しActiveな子Formを切り替えた際に
切り替えたFormのActiveControlのValidatingが起きなくなりました。

子Form内の別のControlにFocusを移すと動作はもとに戻るのですが
なぜこのような動作するかが不明です。

どなたか教えていただけないでしょか?
またFocusを移動させる事なくValidatingをハンドルできるようにする方法も合わせてよろしく
お願いします。


386デフォルトの名無しさん:2006/09/12(火) 22:00:47
不明も糞もそれがWindowsのGUIの仕様というかお作法でしょう。
387デフォルトの名無しさん:2006/09/12(火) 22:50:48
イベントでやらずに、自分で任意のタイミングでやればいいじゃん。
イベントの発生タイミングは>>386のとおりなんだから。
388デフォルトの名無しさん:2006/09/13(水) 11:43:45
VB.NET2005の正規表現について質問です。
時間に対して正当性のチェックをしたいと思っています。
許す文字列の例
0:00 0:0 12:00 12:59 23:0 23:59
許さない文字列の例
0:000 12:61 122:00 24:00

これをやろうと思い以下のようにやりましたが、だめでした。
dim pt as string = "([0-1]{,1}[0-9]|2[0-4]):([0-5][0-9]|[0-9])$"
dim time as string = ""'これはいろいろな時間の文字列
If Not Regex.IsMatch(value, pField.mPatternString) Then
   Throw New Exception("パターンに一致しません。")
End If

正規表現に問題が有るようなので、ご指導お願いします。
389388:2006/09/13(水) 11:56:03
自己解決
^([0-1]?[0-9]|[2][0-3]):[0-5]?[0-9]$
ハットを入れないとだめでした
390デフォルトの名無しさん:2006/09/13(水) 14:06:27
VB.net2003で質問です。
フォームのActiveControlプロパティが変更された時に起きるイベントは無いでしょうか?
フォーカスが移る度に起きるイベントをフォーム側に組み込もうと考えています。
391デフォルトの名無しさん:2006/09/13(水) 18:29:10
VB.NET2003です。

最大化されたForm1からForm2を下記のようにダイアログとして
呼び出しました。

Dim DialogForm As New Form2
DialogForm.ShowDialog()

この時、Form2は最小化できてもForm1が最小化できない状態に
なるのですが、最小化できるようにする手段はありますか?
392デフォルトの名無しさん:2006/09/13(水) 18:31:47
ShowDialogはモーダルですよ
Showを使えばいいけどモーダルじゃなくなりますよ
393デフォルトの名無しさん:2006/09/13(水) 18:38:43
うーん、打つ手なさそうですか。
とはいえForm2はモードレスにすると色々と不都合が出るし…。

ともかく、ありがとうございました。
394デフォルトの名無しさん:2006/09/13(水) 20:51:55
>>393
なんつーか思い込みが激しすぎるというか、頭が硬すぎないか?
Form2をモーダルで表示することには目的があるはずだが、
その目的を達成する手段はForm2をモーダルにする以外にいくらでもあるんじゃないの?

例えばForm1のコントロールを全部Enabled = Falseにするとか。(フォームは自分の
コントロールのコレクションを持ってるから簡単にできる)

あるいはForm2が表示されているときにForm1がアクティブになったらForm2.BringToFront
するようにしといて、Form2側にForm1を最小化するためのボタンを付けるとか。
395デフォルトの名無しさん:2006/09/13(水) 20:52:54
まぁ、仕様(目的)をはっきりさせろっちゅうことだな
396akl:2006/09/13(水) 23:49:17
今 VB.NETで開発してるんだけど、 それを J# とか java の.NET 語の変換(コンバート)
したいのだけど、 VB.NET から C# とかは 結構あるんだけど、 javaは無料で コンバートできる 
とこ(サイトか ソフト) ないかなぁ?
397デフォルトの名無しさん:2006/09/13(水) 23:57:24
日本語でおk
398デフォルトの名無しさん:2006/09/14(木) 06:36:08
>>393
なるほどな。
いわゆる操作性の悪いソフトって、こうやって作られていくんだろう。

アプリ特有の動作とか操作体系は気持ち悪いと思うのは俺だけか?
一般的なアプリと一貫性のある動作でシンプルに動くほうが直感的にわかりやすいだろうに。


399デフォルトの名無しさん:2006/09/14(木) 06:46:43
>>396
VBの開発なら、J#に変換する必要なし。そのままお続けください。
J#の開発でVBのソースを移植あるいは流用したいなら、J#のとこ行って聞きなさい。
400デフォルトの名無しさん:2006/09/14(木) 08:24:19
>>398
一般論としては同意するけど>>391の言うことも理解できるところがあるよ。

モーダルダイアログだすと元のウィンドウは移動も最小化もできず、これが
非常に鬱陶しい仕様だと思うことはある。
Windowsの操作にあまり慣れてないユーザーは特にそう感じるらしい。
(デスクトップ上のマイドキュメントをクリックしたいのにできない!みたいな感じw)
401デフォルトの名無しさん:2006/09/14(木) 08:42:04
>>400
なら、別の方法を手動で操作をすればいいのでは?
AddOwnedForm辺りを使って。
402デフォルトの名無しさん:2006/09/14(木) 10:04:47
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim DialogForm As New Form2
DialogForm.ParentForm = Me
DialogForm.ShowDialog()

End Sub

[Form2]

Private Sub Form2_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Resize

Me.ParentForm.Visible = Not (Me.WindowState = FormWindowState.Minimized)

End Sub

と、最小化の際にForm1を非表示にすることで対処しました。
403デフォルトの名無しさん:2006/09/14(木) 10:52:53
あ、名前入れ忘れ。>>402=>>391です。
404デフォルトの名無しさん:2006/09/14(木) 17:24:50
PDAとActiveSyncをゲスト接続してファイルをコピーする場合
PDA本体内フォルダのパスをどう指定していいかわかりません
誰かわかる人がいたら教えてください。
405デフォルトの名無しさん:2006/09/14(木) 21:34:51
モーダルなのに他の窓を弄れるとかさぁ、独自仕様は不気味じゃない?
しかも非表示状態とか・・・正直ありえん。

そんな変な仕様が必要な理由は何?

406デフォルトの名無しさん:2006/09/14(木) 22:39:33
arrayListに数値ばかりをデータベースからセットして同じのはListから省きたいのだけど
いい関数ないかな・・。
407デフォルトの名無しさん:2006/09/14(木) 22:51:07
DBから読み込む時にDISTINCTを使えばいいじゃん。
408デフォルトの名無しさん:2006/09/14(木) 22:59:20
>>405
最近この手の馬鹿増えたよな。
ちょっと前の話題をすぐに忘れて、何度でも同じ疑問を提示して
話を延々飽きずにループさせる奴

お前さんは鶏頭かw
409デフォルトの名無しさん:2006/09/14(木) 23:02:42
DISTINCTって集約する値のみselect文に追加できるんですよね・・。
(当たり前か・・)

違うフィールドも参照したいのです。
そういうときって入れ子みたいにするんですかね・・・

select 登録月 from 利用テーブル Where ID=A in
    (select * from 利用テーブル Where 住所 = "東京")
こんな感じかな・・・。
410デフォルトの名無しさん:2006/09/14(木) 23:06:23
間違えた
Select DISTINCT 登録月 from 利用テーブル Where ID = A
IN (select * from 利用テーブル Where 住所 = "東京")
411デフォルトの名無しさん:2006/09/14(木) 23:09:21
間違えた逆か・・・
select * from 利用テーブル Where 登録月 IN
(Select DISTINCT 登録月 from 利用テーブル Where ID = A)

こんな感じですかね・・・。
412デフォルトの名無しさん:2006/09/14(木) 23:53:20
どうでもいいけどVB.NETと何の関係が。
413デフォルトの名無しさん:2006/09/15(金) 00:07:20
>>411
わざわざ副問い合わせしなくても、住所="東京" AND ID="A"を抽出
条件にしたらあかんの?
414デフォルトの名無しさん:2006/09/15(金) 07:02:06
>>413
それじゃあ抽出内容が変わってしまうと思います。

>>412
初めはDataset(またはdatagrid)とかでやれないかと思ったのですが、
SQLでできるなら関係なかったです。すみません・・・。
415デフォルトの名無しさん:2006/09/15(金) 08:17:08
何がやりたいのかしらないけど、同じテーブルを2度も読む必要なんてないよ
416デフォルトの名無しさん:2006/09/15(金) 09:18:04
>>414
>>それじゃあ抽出内容が変わってしまうと思います。

どう変わるのか具体的に説明してくれないか?
417デフォルトの名無しさん:2006/09/15(金) 10:32:34
414は、まともな質問もできないくせに自論を展開して自己解決。
人の話なんて最初から聞くつもりないんだよ。

「登録月」って時点で、今年のことしか考えてないダメ設計なDBかもしれないし。
418デフォルトの名無しさん:2006/09/15(金) 12:02:54
間違いなくSQL素人だし
419デフォルトの名無しさん:2006/09/15(金) 23:06:20
いやね、プログラムの中でも特にSQLは、あんたがやりたいことをきちんと日本語で説明しろと。
プログラムだと、Windowsの用語とか、プログラムの技量があるから若干難しいけど。

データをどのように集計したり抽出したいか、日本語で相手に伝わらないようなことを、SQLなんかにできっこないじゃん。w
420デフォルトの名無しさん:2006/09/16(土) 10:26:48
ここっていつみても答えるほうがバカだなw
421デフォルトの名無しさん:2006/09/16(土) 12:06:27
聞くほうもバカだからな。
422デフォルトの名無しさん:2006/09/16(土) 12:22:54
>>420
>414乙
423デフォルトの名無しさん:2006/09/16(土) 19:40:56
#Region ディレクティブはファイルを開いたときに折りたたまれていますが
マウスを使わずに一気に開くとか規定値を開いた状態にするとか出来ますか?

#Region をやたらと使っているプログラムがあってソースファイルを開くと
折りたたまれたRegionが5〜10個くらい表示されているだけで
いちいちマウスでクリックして開かないといけないので鬱陶しくてかなわん。orz
424デフォルトの名無しさん:2006/09/16(土) 19:53:07
どっちもできたはず。
425デフォルトの名無しさん:2006/09/16(土) 20:32:51
キーボードショートカット使えよ
そんなのいちいちマウスでやってたら腱鞘炎になっちゃうよw
426デフォルトの名無しさん:2006/09/16(土) 21:52:06
>>423
開いてるソースのほうがうっとうしいと思うが。
綺麗に関数化されていて、それが綺麗にRegionでまとまってれば、そんなに開くことが無い。

コントロールから作ったイベント関数とかが逆にうざい。
人がせっかくきれいにRegionわけしてるのに、かってに最後に追加しやがる。
427デフォルトの名無しさん:2006/09/17(日) 00:35:17
>>425
キーボードからRegionの折りたたみを開けましたっけ?

>>426
本人は綺麗にRegion化しているつもりだろうけど他人から見たらオレオレRegionです。
折りたたみなんてウザイだけ。
RegionなんてFormのところだけで十分。
428デフォルトの名無しさん:2006/09/17(日) 01:26:11
///のコメントだけ展開してくれる機能とかあったらいいのに。
429デフォルトの名無しさん:2006/09/17(日) 01:39:49
>>425
あー、おれも知りたい。
あとコメント付けたり外したりするショートカットもあればいいなぁ。
430デフォルトの名無しさん:2006/09/17(日) 01:58:37
知りたいも何も、自分で設定しろよ
431デフォルトの名無しさん:2006/09/17(日) 04:13:37
c-ml(c-lmだったかも)
c-kc
c-ku
てか調べろよ。
432デフォルトの名無しさん:2006/09/17(日) 12:06:07
>>429
http://msdn2.microsoft.com/ja-jp/library/cftd38f0.aspx

キーボードのスキームをVB6にしてると微妙に違うかもね。
433デフォルトの名無しさん:2006/09/17(日) 13:57:31
>>432
おお、さんくす。
使いそうなのを印刷して貼っておくよ。
434デフォルトの名無しさん:2006/09/17(日) 22:37:54
パスワードの条件がアルファベットと数字の混合である基本的な
フォームを作りたいんですが、IsLetterOrDegitを使わずに作る
にはどうしたらいいでしょうか。Select Caseで作れないでしょうか。
435デフォルトの名無しさん:2006/09/17(日) 22:59:42
>>434
プログラミング以前にまず正しい日本語をマスターすべきじゃないかと思うよ。
436デフォルトの名無しさん:2006/09/17(日) 23:00:24
>>434
もっと詳しく「何がやりたいのか」を書いてくれ。
おまいさんの言う「フォーム」の意味もわからん。
437デフォルトの名無しさん:2006/09/17(日) 23:25:50
>>436
テキストボックスにパスワードを入力させる際に、
数字のみ、もしくは英語のみではエラーになる仕組みの
簡単なアプリケーションが作りたいんです。
そのエラー判定をどうしたらいいか悩んでるんです。
438デフォルトの名無しさん:2006/09/17(日) 23:27:32
そんなロジックのことで悩んで人に聞く程度ならやめちまえ、と思う。
439デフォルトの名無しさん:2006/09/17(日) 23:44:20
MaskedTextBox
440デフォルトの名無しさん:2006/09/17(日) 23:50:31
>>439
ありがとうございます。
でも、書式・形式じゃなくて
判定方法が知りたいんです。
441デフォルトの名無しさん:2006/09/17(日) 23:59:40
1文字づつ見て数字と英字の数を数えりゃいいだろ
442デフォルトの名無しさん:2006/09/18(月) 00:02:52
こういう人ってプログラムすることって何だと思ってるんだろう・・・。
せめて入門書は1冊、最近だとネットで入門サイトあるんだから@ITとか見ればいいじゃん。
443デフォルトの名無しさん:2006/09/18(月) 00:04:43
>>440
この機会に正規表現を使ってみるのがいいと思うよ。
テンプレの「いきましょ」と「@IT」に分かりやすい解説がある
444デフォルトの名無しさん:2006/09/18(月) 00:06:18
>>440
select passwd
case "A"
case "AA"
case "AAA"
中略
case "AAB"
case "AAC"


1〜10文字くらいでエラーになる文字列を全てCASE文で
並べれば出来るだろう。
正しい文字列をCASE文で並べて、それ以外をエラーにしても良いと思う。
445デフォルトの名無しさん:2006/09/18(月) 00:08:33
>>444
それだ!
446デフォルトの名無しさん:2006/09/18(月) 00:10:07
>>444
おまいノーベル賞並みの天才だな
447デフォルトの名無しさん:2006/09/18(月) 00:19:12
皆さんありがとうございます。
>>444
実は
Case "a" To "z", "A" To "Z"
hasAlpha = True
Case "0" To "9"
hasNum = True

If hasAlpha = True And hasNum = True
Okメッセージ

これでやってるんですが、うまくいかないんです。
448デフォルトの名無しさん:2006/09/18(月) 00:21:19
まず、どうやったら良いかを考える前に、
それの何がいけないのか、どうしてこんな馬鹿なことを考えたのか、
それらが解るようになるまで勉強し直しておいで。
449デフォルトの名無しさん:2006/09/18(月) 00:25:16
>>447
まあこのスレは精神的幼児が多いから無視していいよそういうのはw

VBのSelect Case はC系のとそれと違ってマッチする条件があるとそのままBreakするから
それでは正しく動かない。
450デフォルトの名無しさん:2006/09/18(月) 00:31:02
>>449
やっとひとつ理解できました。
ということは、Select Caseを使ってアルファベットと
数字を別々に判定することは無理なんですかね。

451デフォルトの名無しさん:2006/09/18(月) 00:33:59
そうだから正規表現覚えるのが結局一番早いよ。
今後の応用範囲も広がるし
452デフォルトの名無しさん:2006/09/18(月) 00:35:13
正規表現っていうのはこの場合何でしょう?
453デフォルトの名無しさん:2006/09/18(月) 00:36:06
この場合もクソもないでしょ
454デフォルトの名無しさん:2006/09/18(月) 00:39:23
>>447
そのSelectは何に対してやってるんだ?
パスワード全体に対してやっても意味無いぞ。
ループの中でパスワードの1文字ずつに対してやればうまく行くんじゃないの?
455デフォルトの名無しさん:2006/09/18(月) 00:42:00
甘やかしな教えた君が増えると、努力もしない教えて君が調子ぶっこいて何でも聞いてくるようになるから嫌だよな。
456デフォルトの名無しさん:2006/09/18(月) 00:50:36
ここ質問スレなんだけどw
457デフォルトの名無しさん:2006/09/18(月) 00:52:48
つってもvb以前の質問はねー
458デフォルトの名無しさん:2006/09/18(月) 00:53:15
まあ質問者が自分で考えもしない超低レベルなら、回答者も馬鹿揃いだから、丁度いいんじゃね?
459デフォルトの名無しさん:2006/09/18(月) 02:06:09
C#スレみたいに本スレと初心者スレ分ければいいんじゃね?
C#のほうはあんまり機能してないけど
460デフォルトの名無しさん:2006/09/18(月) 07:36:09
質問とか初心者以前だろ?

どうしたらいいか? 正規表現。

これで終わってる話。
それを調べて判らない点が出たら再質問。それが常識。

会社の新人で、ここにいる質問の人みたいのいたらケリだよ。
461デフォルトの名無しさん:2006/09/18(月) 09:44:33
434じゃないけど便乗質問。
自分の頭では"(全部数字)|(全部英字)|(全部英数字)"にマッチして、
グループ1と2が空でグループ3が空じゃなかったらOKというのしか思いつかなかった。
マッチしたかどうかで一発で判定できる正規表現って書ける?
462デフォルトの名無しさん:2006/09/18(月) 11:30:18
検索文字列がパターン化できないのであれば正規表現は使いにくいよ。
「英字が入ってる AND 数字が入ってる」でチェックして、外れたの
はやり直しって感じでいいんでない?

ttp://homepage1.nifty.com/rucio/main/technique/InputChk2.htm
463デフォルトの名無しさん:2006/09/18(月) 12:56:04
最低・最悪のユーザー・エクスペリエンスと評判の .NETアプリ
こんな素晴らしいクソ言語の学習に皆さんがんばって下さい
464デフォルトの名無しさん:2006/09/18(月) 13:08:45
学習、なんて言っているうちは何を言っても説得力無し。
465デフォルトの名無しさん:2006/09/18(月) 13:51:11
すいません、上記の方々と別件なのですが、正規表現で質問です。

「?:@123xxxxx」という文字列を含むinstrを「@123」へ変換したいと思っています。
※「?」「:」「@」は普通の文字として扱う。

以下のような正規表現で変換しようとしたら、resultがNothingになってしまいます。
result = System.Text.RegularExpressions.Regex.Replace(instr, "\?\:\@(\d\d\d)(\w+)","\@$1")

ちなみに以下のようにしたら、例外が発生。
result = System.Text.RegularExpressions.Regex.Replace(instr, "?:@(ddd)(w+)","@$1")

VB.netの正規表現ではどのように表現すればよろしいでしょうか。
よろしくお願いいたします。
466デフォルトの名無しさん:2006/09/18(月) 13:54:33
エスケープする必要がある文字とない文字を MSDN で調べれ
467デフォルトの名無しさん:2006/09/18(月) 14:37:58
検索パターンに余計な\を入れても無視されるだけで戻り値がNothingになることは無いと思うんだが。
468465:2006/09/18(月) 15:05:20
>>466
以下のように変更したら、キチンと値が帰ってくるようになりました。
どうもありがとうございまいした。
work = System.Text.RegularExpressions.Regex.Replace(instr, "\?:@(\d\d\d)(\w+)","@$1")

>>467
私も今までPerlやJavaでは465のように書いていて問題なかったため、
VB.NETでも同様だと思ったのですが、Nothingになってしまいました。
VB.NETでは厳密にエスケープ文字を判定しているようですね。。。
469デフォルトの名無しさん:2006/09/18(月) 19:11:55
>>411
select * from 利用テーブル Where 登録月
でdatasetに書き込み
その後datavviewでID=Aとかいくらでも抽出しればいくね。
470デフォルトの名無しさん:2006/09/18(月) 19:15:04
正規表現文字クラスの[]指定内で前方参照する方法ってある?
(['"])[^\1]+\1
みたいな(ここの2つ目の[]のやつね)。
上のは、'か"で囲まれた文字列の検索。
471デフォルトの名無しさん:2006/09/18(月) 19:15:46
ここって思うし、質問する人間と回答する人間、経験何年と年収いくらか一緒に記載すると、
返答も相手のレベルに合わせられるし、質問した方も、回答の理解の仕方が上がるんじゃない?

普通会社では相手が見えるから、お互いのレベルを分かった上で話すじゃん。
そう思うのは私だけかい?
472デフォルトの名無しさん:2006/09/18(月) 19:56:36
>>471
そんなの質問に必要ない。

適切な日本語で質問を表現できること、会話になること。
本人が言われたことに対して試してフィードバックできること。
それだけ。
473デフォルトの名無しさん:2006/09/18(月) 20:01:22
>>471
日本語でお願いします
474デフォルトの名無しさん:2006/09/18(月) 20:23:21
>>472
ほぼ同意。
それに加えて「雑音を聞き流す大人の対応」もできれば大吉。
煽るだけで有益な情報のない脊髄レスは脳内フィルタリングするべし。
475デフォルトの名無しさん:2006/09/18(月) 20:23:23
>>471
たった数行のレスで相手のスキルを推測し真性なのか釣りなのか即座に
判断できないようでは一流のSEとは言えん。
476デフォルトの名無しさん:2006/09/18(月) 20:34:31
エスパー乙。
今後も行間を読みまくって適切な解答を書いてください。
477デフォルトの名無しさん:2006/09/18(月) 20:41:20
このレスの住人はユーモアを理解せぬようだの。
478デフォルトの名無しさん:2006/09/18(月) 20:54:08
レスには住めんのう…
479デフォルトの名無しさん:2006/09/18(月) 20:58:10
>>478
面白くない。
Debug.Print()百回やって出直してこい。
480デフォルトの名無しさん:2006/09/18(月) 21:10:04
ループでまわしていいですか?
481デフォルトの名無しさん:2006/09/18(月) 21:17:58
>>480
gotoにしとくと飯が旨く感じるらしいぞ
482デフォルトの名無しさん:2006/09/18(月) 21:35:53
残念、オレはconsole.writeline()だ
483デフォルトの名無しさん:2006/09/18(月) 21:51:54
>>479
ドトネトらしく System.Diagnostics.Debug.WriteLine() を使えよ!!
484デフォルトの名無しさん:2006/09/18(月) 21:54:38
うーん、ここって高度な技術者なのかな・・全然日本語がわからない。
485デフォルトの名無しさん:2006/09/18(月) 22:22:32
>>470
ベタに書けばこんなんだが
(?<quote>'|")(?<match>(?!\k<quote>).+)\k<quote>
最長一致じゃ拙いように思うがね
// グループに名前付けてるのはわかりやすさを優先したから
486デフォルトの名無しさん:2006/09/19(火) 03:57:27
VB.netで、画像加工のアプリを作ってるんですが、
ブラシを使って塗りつぶして、保存した後、フォトショップで開くとエラーが出て開けません。
あと、mixiのプロフィールの画像に指定しようとアップロードすると、
「画像が壊れています」とエラーが出て失敗してしまいます。
他のアップローダでアップするとちゃんといけて、表示もされました。
原因が分かる方教えてください。
487デフォルトの名無しさん:2006/09/19(火) 14:21:10
どうやって、どんな形式で保存しているのか。

それが問題だ。
488デフォルトの名無しさん:2006/09/19(火) 15:34:53

  クソ言語  VB.NET
489デフォルトの名無しさん:2006/09/20(水) 22:01:40
VB6からのイメージだけで思ってないか?
まあ漏れも使ったことないけど
490デフォルトの名無しさん:2006/09/20(水) 22:17:57
VB6ユーザーを何とか移行させたくてどんどんクソ言語になって来てるのは事実
491デフォルトの名無しさん:2006/09/20(水) 23:30:46
2003までで乗り換えがうまくいかなかったからか、2005では驚くほど
6.0ユーザーに擦り寄ってるの見え見え。
492デフォルトの名無しさん:2006/09/20(水) 23:46:59
諦めてVB6を再販すれば無問題。
493デフォルトの名無しさん:2006/09/21(木) 00:07:33
マクロの DTE.Find.Execute() で検索を実行すると末尾まで検索すると
先頭に戻って検索を繰り返すのですがどうやったら止めれるのでしょう?
494デフォルトの名無しさん:2006/09/21(木) 15:21:36
リストビューのcontextmenuを使ってポップアップメニューを作る際、
右クリックされたのが、
カラムヘッダーのときと、
リストのアイテムのときと、
アイテムの無いリスト部分のときとで、
ポップアップメニュー表示非表示を切り分けるってことできます?
どうしても、どんな場合でも右クリックしたらメニューが表示されてしまいます。
同一コントロール内で、どこでクリックされたかの判断したいです。
495デフォルトの名無しさん:2006/09/21(木) 16:51:39
>>494
できるよ。

>どうしても、どんな場合でも・・・(ry
それは嘘だろー どうやったのか書いてくれ。
何もしてないんだろ?
496494:2006/09/21(木) 17:41:33
>>495
申し訳ない。
私がウソコでした。
ContextMenuプロパティから操作しようというのが間違えていました。
素直にMouseUpイベントからGetItemAtメソッドでできました。

ありがとうございました。
497デフォルトの名無しさん:2006/09/22(金) 08:51:17
MDIについての質問です。
UserControlから呼び出すフォームを親フォームのMDIに表示しようとして躓いています。
Parentプロパティを送るときに例外「トップレベルのコントロールをコントロールに追加できません」が発生します。
Me.ParentFormのIsMdiContainerはTrueになっています。

UserControlのイベント内で、
Dim f as New Form
f.Parent = Me.ParentForm←ここでエラー
f.Show()
498デフォルトの名無しさん:2006/09/22(金) 09:40:28
ParentじゃなくてMdiParentじゃないの?
499497:2006/09/22(金) 10:01:51
>>498
あああああっ
俺、何やってんだぁぁぁ(T.T

ども、ありがとです
500デフォルトの名無しさん:2006/09/22(金) 11:19:37
ComboBoxで質問ですが
Itemsで追加した文字列のほかに任意の数値(文字でも可)を指定する方法ってありますか?
例えば、
aaaa,0
bbbb,3
cccc,4
ドロップダウンに表示するのはaaaa、bbbb、ccccで
SelectedIndexが2のときにはccccと4が抽出できるような・・・
501デフォルトの名無しさん:2006/09/22(金) 11:38:11
DataSource
DisplayMember
ValueMember
502デフォルトの名無しさん:2006/09/22(金) 12:26:51
>>501
それはデータベーを使わなくても使えますか?
つか、以前のVBで言うところのItemDataって奴があればいいとおもって調べたら
SetItemDataってのがNETにはあるっぽいのでやってみたらエラーに・・・
これどうやって使えばいいのかな・・
503デフォルトの名無しさん:2006/09/22(金) 12:49:05
>>502
それくらいMSDN嫁
504デフォルトの名無しさん:2006/09/22(金) 13:24:45
>>503
('д`)えー
あのエスパーにしか解読できないヘルプをですか・・・
こっちがヘルプしてほしいくらいのヘルプだよねMSのって(´・ω・`)
505デフォルトの名無しさん:2006/09/22(金) 13:28:38
>>504
ならぐぐるとか。
506デフォルトの名無しさん:2006/09/22(金) 13:55:04
>>595
ぐぐってみました。
どうやらVB6からアップデートしたらSetItemDataが使えるらしいですが
新規でNETならそれはできないらしいですね。
ちょっと>>501のアレをみてみるかな
507デフォルトの名無しさん:2006/09/22(金) 23:24:17
>>504

自分の読解力を棚に上げてる可能性が5割。
英語の原文読めばいいのに読んでない可能性が5割。
508デフォルトの名無しさん:2006/09/22(金) 23:30:02
createobjectでIEのオブジェクトを作成しているのですが
最前面で表示されない場合があります。
最前面で表示される方法はないでしょうか?
よろしくお願いします。

dim ie as object
ie = createobject("InternetExplorer.Application")
ie.visible = true
ie.navigate2 "http://www.google.co.jp"

'最前面へ
509デフォルトの名無しさん:2006/09/22(金) 23:31:37
>>507
MSDNの日本語訳は原文にある重要な説明が省略されていたり酷いもんだな〜
で、結局、原文の方を読まないと使い物にならない。

あんな訳なら自動翻訳のがマシ。
510デフォルトの名無しさん:2006/09/22(金) 23:38:01
>>508
SetForegroundWindow
511デフォルトの名無しさん:2006/09/23(土) 00:45:33
>>492
MSDNライブラリで再販というか公開再開されてたな。MSJava部分を削除して。
よっぽど需要が多かったんだろう。
>>509
さすがに「宇宙天啓データベース」よりは…
まあ人間が「意図的に」重要な部分を脱落させる方がたちが悪いかもだけど
512デフォルトの名無しさん:2006/09/23(土) 08:16:55
Int32からIntPtrへキャストする方法教えてください。
513512:2006/09/23(土) 08:26:39
事故解決しました。
514デフォルトの名無しさん:2006/09/23(土) 08:28:02
コンストラクタ
515デフォルトの名無しさん:2006/09/23(土) 10:40:45
これだけ乗換えが進まないってことは、
オブジェクト指向が糞ってことだよな。
516デフォルトの名無しさん:2006/09/23(土) 10:50:49
VB脳には高度すぎたんだよ
517デフォルトの名無しさん:2006/09/23(土) 12:26:57
>>509
実際にオリジナルの英語版と日本語の翻訳を読み比べたことがないのがバレバレ
MSDNの翻訳は極めて適切だっつーにw
わかりにくいのは翻訳のせいじゃないし
518デフォルトの名無しさん:2006/09/23(土) 12:49:28
>>517
Platform SDK 辺りのは強ち間違いでもない。
絶対数としてはそう多くはないが、やはり間違いは印象に残るからな。

MSDN2 では極めてと言っても良いぐらいに質が高くなったね。
519デフォルトの名無しさん:2006/09/23(土) 15:41:17
OleDbでFirebirdを使うプログラミングをしてるのですが、
ExecuteNonQueryメソッドやExecuteReaderメソッドで、
「指定されたキャストは有効ではありません。」という例外が発生します。

Dim oConn As OleDb.OleDbConnection
Dim com As OleDb.OleDbCommand
Dim oCmd As OleDb.OleDbCommand
Dim oReader As OleDb.OleDbDataReader

oConn = New OleDb.OleDbConnection
oConn.ConnectionString = "File Name=C:\test.udl;"
oConn.Open()

oCmd = oConn.CreateCommand()
oCmd.CommandText = "select * from country where country = 'USA'"

oReader = oCmd.ExecuteReader()
While oReader.Read()
Debug.WriteLine(CStr(oReader("COUNTRY")) & "," & CStr(oReader("CURRENCY")))
End While

oReader.Close()
oConn.Close()



何か間違えているところはありますか?
520デフォルトの名無しさん:2006/09/23(土) 15:49:39
GetHogehoge メソッド使って .NET の型で取得すれ。
521デフォルトの名無しさん:2006/09/23(土) 20:32:10
>>517
昔のMSDNはwsprintf()の1,024バイト制限の記述が日本語の方では漏れていたり
結構酷いもんだったよ。こんなの致命的でしょ。
で、最近は英語の方しか見ないのでいちいち対比なんてしてません。w
522デフォルトの名無しさん:2006/09/23(土) 20:49:56
化石 乙
523デフォルトの名無しさん:2006/09/23(土) 21:22:46
3年で化石か。
524デフォルトの名無しさん:2006/09/23(土) 22:06:17
この場合msdn2に移行というイベントがはっきりしてるわけで
525デフォルトの名無しさん:2006/09/23(土) 22:40:01
英語版MSDN2をローカルに入れられるインストーラはありますか?
526デフォルトの名無しさん:2006/09/23(土) 23:05:45
でも、MSのサイトでみる自動翻訳はやっぱりむごいよ。
てにおはが間違ってるんだもん。読んでて疲れる。
527デフォルトの名無しさん:2006/09/23(土) 23:16:56
自動翻訳に文句言っても仕方ないだろw
528デフォルトの名無しさん:2006/09/24(日) 03:48:46
どうでもいいがMSDNでまともに探せないとか見つけても理解できない奴は
VBに限らず何やっても相当苦労すると思う。

むしろ対話式で質疑応答しないと出来ない奴がプログラミングしてるってのは凄いと思う。
どれほど難しく見えてるのか想像つかん。まじで
529デフォルトの名無しさん:2006/09/24(日) 06:46:48
ああ、違いない。どうでもいいことだな。
530デフォルトの名無しさん:2006/09/24(日) 09:21:11
VB.NET 2005 の TreeViewコントロールに関して教えていただきたいのですが、
Shiftキーを押しながらマウスがホイールされたら一度に表示可能な項目数分を
スクロールさせたいのですが、どうやったら良いでしょうか。。。

イメージとしては下記のコードのような感じです・・・・(コンパイルできませんが;;)

Private Sub TreeView_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TreeView1.MouseWheel

If CBool(Control.ModifierKeys And Keys.Shift) Then
Select Case e.Delta
Case Is < 0 '下に TreeView1.VisibleCount 分スクロール
e.Delta = TreeView1.VisibleCount * -1 '←ReadOnlyなので値を入れられない
Case Is > 0 '上に TreeView1.VisibleCount 分スクロール
e.Delta = TreeView1.VisibleCount '←ReadOnlyなので値を入れられない
End Select
End If
End Sub
531デフォルトの名無しさん:2006/09/24(日) 12:25:58
お前らの言いたいことはわかったから、おれのマシンの

「問題が発生したため、Microsoft(R) Visual Basic Compilerを終了します。
ご不便をかけて申し訳ありません。」

をどうにかしてくれ。
謝る前に直せよ、ビル・ゲイツ。
532デフォルトの名無しさん:2006/09/24(日) 15:29:46
まあ、2chで文句言ってる暇あったらインストールしなおすよな。OSから。
533デフォルトの名無しさん:2006/09/24(日) 23:01:07
俺のマシンは夏休みと冬休みにバックアップ&初期化&フルインスコ
してるよ。95OSR2時代からの癖みたいなもんだ。
534デフォルトの名無しさん:2006/09/25(月) 15:08:31
MAPIでOutlook2002sp3以降にアクセスした際の警告ダイアログ、
プログラムが、Outlook 内に保存されている電子メールアドレスに
アクセスしようとしています。よろしいですか?」ってやつ。
あれってExchangeServerの設定いじる以外にどうしようもないですかね。
クライアントのレジストリいじくれば何とかなりそうなんだが。
535デフォルトの名無しさん:2006/09/25(月) 15:41:12
ComboBoxのSelectedIndexChangedイベントでは変更後のSelectedIndexですが
このSelectedIndexの変更前の値を知る方法を教えてください
536デフォルトの名無しさん:2006/09/25(月) 16:01:27
Enterで値確保しとけば?
537デフォルトの名無しさん:2006/09/25(月) 16:38:35
初期値をフィールドに入れといて
SelectedIndexChangedの度にそのフィールド更新したらいいじゃん
538デフォルトの名無しさん:2006/09/25(月) 17:24:58
PostMessageを使って別のEXEにメッセージを送りたいんだけど
Spy++で見てもなぜかメッセージがPostされてません
同じように宣言と設置をしてるFlashWindowはちゃんと動作してるので
ハンドルの取得ミスとかではないと思うのですが、、、
PostMessageには何か特殊なやり方があるのでしょうか?

宣言↓
Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long


539デフォルトの名無しさん:2006/09/25(月) 17:27:28
それVB6用だろ
540538:2006/09/25(月) 17:38:33
>>539
もしかしてLongのところ全部Integerですか??

と思って全部換えたら動きました
ありがとうございました!

日ごろVC++ばっかり使ってたのでVBの仕様の違いをしりませんで、、
すいませんでしたorz
541デフォルトの名無しさん:2006/09/25(月) 20:39:13
542デフォルトの名無しさん:2006/09/25(月) 21:09:44
デバッガでStringとかの値が16進値で表示されないんですが仕様ですか?
543デフォルトの名無しさん:2006/09/25(月) 21:36:54
仕様です
て言うかその16進値ってのは何を指してるんだ
544デフォルトの名無しさん:2006/09/25(月) 22:29:02
>>543
CR/LFとかのコードが入ってるか見たいわけよ。
545デフォルトの名無しさん:2006/09/25(月) 22:30:19
お世話になります。
Asp.netでボタンを押下した時にクライアントサイドに
メッセージボックス表示、そして
処理の途中にもう一度メッセージ表示するには
どうしたらいいでしょうか?
546デフォルトの名無しさん:2006/09/25(月) 22:58:50
ngen.exe の使いかたがよくわからないんだけどどうやるの?
547デフォルトの名無しさん:2006/09/25(月) 23:10:50
ngen /?
548デフォルトの名無しさん:2006/09/25(月) 23:46:34
「フォームの作成」と「プロシージャの記述」とは主にどのような作業のことを指すのですか?
できれば、簡潔にまとめてほしいです。
549デフォルトの名無しさん:2006/09/25(月) 23:48:56
まあ簡潔にいうと君はプログラマには向いてないってことでしょう。
550デフォルトの名無しさん:2006/09/25(月) 23:55:12
だな。
最近多いよね。基本的な入門書も読まずにプログラム組む新人。
551デフォルトの名無しさん:2006/09/26(火) 00:04:32
>>550
組むわけではないんですが、都合上どうやるのかを知っておかなくては行けないんです。
552デフォルトの名無しさん:2006/09/26(火) 00:21:46
フォームの作成
フォームのインスタンスをコンストラクトすること

プロシージャの記述
プロシージャをディスクライブすること
553デフォルトの名無しさん:2006/09/26(火) 00:27:37
>>552
上は分かりますが、下はそのままじゃないですか。
もうすこし、詳しく教えていただけませんか?
554デフォルトの名無しさん:2006/09/26(火) 00:32:26
プロシージャの記述
プロシージャをコンポーズするステートメントをディスクライブすることによって
プロシージャとしてのファンクションをコンポーズすること
555デフォルトの名無しさん:2006/09/26(火) 01:42:14
もうやめれw
556デフォルトの名無しさん:2006/09/26(火) 09:38:07
・フォームの作成
フォームを精魂込めて我が子を育てるがごとく作成すること。

・プロシージャの記述
関数の記述は一関数入魂が基本です。血の出るほどの魂を込めて記述しましょう。
557デフォルトの名無しさん:2006/09/26(火) 11:01:55
>>548
「フォームの作成」
ボタンやテキスト・フィールド、コンボ・ボックス等のGUI部品を並べて画面を作る事です。

「プロシージャの記述」
フォームの作成で作ったボタン等が押された時に何かの計算をするとかデータベースから
値を読み込むとかのプログラム処理を記述します。


# >>548がのクライアントだったらどうするよ? しかもおエラいさん。
# いい加減なことを吹き込んで苦労するのはおまいらだ。w
558デフォルトの名無しさん:2006/09/26(火) 11:03:02
日本語が変だ。orz
559デフォルトの名無しさん:2006/09/26(火) 11:05:52
思ったより簡単に沢山釣れましたので満足です。
どう見ても釣堀りです。ありがとうございました。
560デフォルトの名無しさん:2006/09/26(火) 15:08:14
VB.NET2003でコントロールのサブクラス化がしたいのですが
サンプルをいただけないでしょうか?
561デフォルトの名無しさん:2006/09/26(火) 15:17:55
562560:2006/09/26(火) 15:32:27
すみません。事故解決しました。
563560:2006/09/26(火) 16:01:29
Protected Overrides Sub WndProc(ByRef m as System.Windows.Forms.Message)

If m.Msg = &h201 Then 'WM_LBUTTON_DOWN
 If Msgbox("キャンセルしますか?") = vbYes Then
  Return
 End If
End If

MyBase.WndProc(m)

End Sub

としてキャンセルのときは左クリックを無かったことにしたいのですが
上記のようにただのReturnですと左クリックのメッセージが
うまくキャンセルできていません。
次の左クリックが無効になってしまいます。
綺麗なキャンセルのやり方があれば教えてください。
よろしくお願いします。
564デフォルトの名無しさん:2006/09/26(火) 21:13:15
>>563
釣り?
そりゃクリックとキー入力じゃメッセージ違うでしょ。

っていうか、ドトネトじゃそういうやり方はどっちかというと邪道。
OnClickをオーバーライドした方が簡単だしわかりやすい。
565デフォルトの名無しさん:2006/09/26(火) 21:16:15
つーか、そんな糞UI誰が喜んで使うんだと小一時間
566563:2006/09/26(火) 21:19:58
すみません。事故解決しました。
567デフォルトの名無しさん:2006/09/26(火) 21:22:40
完全に頭おかしい奴だなw
568デフォルトの名無しさん:2006/09/27(水) 11:34:38
PictureBox1.ImageLocationに、
リファラーを設定してWeb上の画像を表示する方法を教えてください。
569デフォルトの名無しさん:2006/09/27(水) 11:48:38
リファラーを設定を設定します
570デフォルトの名無しさん:2006/09/27(水) 12:36:18
PictureBox1.ImageLocationに、
リファラーを設定してWeb上の画像を表示する方法を教えてください。
571デフォルトの名無しさん:2006/09/27(水) 12:42:09
572 :570 :2006/09/27(水) hh:mm:ss
すみません。事故解決しました。

って来る予感w
572デフォルトの名無しさん:2006/09/27(水) 12:42:39
PictureBox1.ImageLocationに、
リファラーを設定してWeb上の画像を表示する方法を教えてください。
573570:2006/09/27(水) 13:08:42
みません。事故解決しました。
574568:2006/09/27(水) 13:14:20
PictureBox1.ImageLocationに、
リファラーを設定してWeb上の画像を表示する方法を教えてください。

誰も解らないのですか?
575563:2006/09/27(水) 13:24:06
HTTPで画像を取ってきてPicutureBox1にロードすればいいのでは?
576デフォルトの名無しさん:2006/09/27(水) 13:33:04
画像の置き場の管理者に
「リファラみんじゃねーぞ(゚ロ゚)モルァ!! 」
ってメール打て
577568:2006/09/27(水) 14:20:36
PictureBox1.ImageLocationに、
リファラーを設定してWeb上の画像を表示する方法を教えてください。

ここはラベルの低いスレですね
578デフォルトの名無しさん:2006/09/27(水) 15:31:46
ヒント
インターネットRFC辞典を読め
579568:2006/09/27(水) 16:19:56
PictureBox1.ImageLocationに、
リファラーを設定してWeb上の画像を表示する方法を教えてください。

ほんと皆さんにはがっかりです
580デフォルトの名無しさん:2006/09/27(水) 16:30:18
池沼?
581デフォルトの名無しさん:2006/09/27(水) 16:44:45
エロ画像Browserでも作ってるんだろうな
582デフォルトの名無しさん:2006/09/27(水) 17:09:32
PictureBox1.ImageLocationに、
リファラーを設定してWeb上の画像を表示する方法を教えてください。

全然役に立たないですね
583568:2006/09/27(水) 17:58:37
PictureBox1.ImageLocationに、
リファラーを設定してWeb上の画像を表示する方法を教えてください。

オナニーは抜いた後にしてください。
584真の568:2006/09/27(水) 18:10:19
みんな興味深々じゃんwww
教えたれよ
585デフォルトの名無しさん:2006/09/27(水) 18:10:27
解答もらえてる質問ともらえてない質問には大きな差がある。

質問するなら他の質問の仕方を見てみろ。
586デフォルトの名無しさん:2006/09/27(水) 18:18:55
解答もらえてる質問
→簡単な質問

もらえてない質問
→難しい質問
587デフォルトの名無しさん:2006/09/27(水) 18:49:31
>>568
なぜリファラーが必要だと思うのか説明してくれよ。
本当はリファラーかどうかもわからないんだろ?

>>586
典型的な答えてもらえないタイプだな。

588デフォルトの名無しさん:2006/09/27(水) 19:18:28
PictureBox1.ImageLocationに、
リファラーを設定してWeb上の画像を表示する方法を教えてください。

無駄なレスは不要です
589デフォルトの名無しさん:2006/09/27(水) 19:21:13
しばらく構わずに放っておいたらどこまで続くだろうな。
590デフォルトの名無しさん:2006/09/27(水) 19:21:54
PictureBox1.ImageLocationに、
リファラーを設定してWeb上の画像を表示する方法を教えてください。

質問する時間帯が悪かったみたいですね
591デフォルトの名無しさん:2006/09/27(水) 19:47:23
PictureBox1.ImageLocationに、
リファラーを設定してWeb上の画像を表示する方法を教えてください。

荒らしてた厨房は今頃宿題ですかね
592真の568:2006/09/27(水) 20:06:50
>>587
例えば、ITMadiaはリファラーを設定しないと画像直リンできません。
http://image.itmedia.co.jp/bizid/articles/0609/27/top_news091.jpg
とかをフォーム上で表示したい場合、
リファラーに http://www.itmedia.co.jp/ を指定するとDLできます。
なので、リファラーは必要です。

ターゲットURLとリファラーURLを引数として、
ターゲットURLにリファラーURLをセットしてPOSTし、
対象をDLするSubプロシージャーを作りたいのです。

どなたかテンプレを。。。
593デフォルトの名無しさん:2006/09/27(水) 20:30:57
HttpWebRequest 調べれ
自前で取ってくる必要がある
594デフォルトの名無しさん:2006/09/28(木) 11:02:57
クソ言語  VB.NET
595デフォルトの名無しさん:2006/09/28(木) 18:30:30
>>594
馬鹿とハサミは使いよう。
言語も同じく。
596デフォルトの名無しさん:2006/09/28(木) 19:15:50
言語つーより、このツール自体ゴミですね。
なにこの操作性?まともな開発ツールじゃないよ?
どこかの素人学生がつくったようなツールだ
597デフォルトの名無しさん:2006/09/28(木) 19:20:48
スレ違い
598デフォルトの名無しさん:2006/09/28(木) 19:21:56
いやVB.NETの事なのでスレ違いじゃないですよ
599596:2006/09/28(木) 19:31:47
あ、開発ツールの話は、
Visual Studio 2005スレ Part16
http://pc8.2ch.net/test/read.cgi/tech/1159099219/
ですね^^

すいません。私の頭にウジが沸いているんです。許してください。
600デフォルトの名無しさん:2006/09/29(金) 03:11:25
vb.netで、DataGridのカラムヘッダーのソート方向を表す▲の色ってどのオブジェクトで変更できます?
DataGridのBackgroundColorとHeaderBackColorを同じ色にしたら三角が見えなくなったので、
別の色に変更したいです。
601デフォルトの名無しさん:2006/09/29(金) 14:39:57
DataSetの中に、Tableがあるかないかを取得するには、どうしたらいいですか?
602601:2006/09/29(金) 14:59:01
Dim tb1 As DataTable
Dim str1 As String
For Each tb1 In ds.Tables
str1 = tb1.TableName
If str1 = "Table1" Then
MsgBox("Table1は、ないです。")
Exit Sub
Else
MsgBox("Table1は、あるです。")
End If
Next tb1

↑みたくしてみました。
もっと、うまい方法があるのかな?
603デフォルトの名無しさん:2006/09/29(金) 15:02:54
あ!↑あるとない逆でした///。
604デフォルトの名無しさん:2006/09/29(金) 15:16:11
>>601
つds.Tables.Contains(テーブル名)

あと602のコードだけど実行したら
ないです→ないです-(以下見つかるまでループ)→あるです
ってブラクラみたくなると思うんだが
605デフォルトの名無しさん:2006/09/29(金) 15:22:08
そんなあるか無いか調べないと駄目っていう状態で作りたくないな。
質問者の設計が糞だと思う。
606600:2006/09/29(金) 15:39:14
help me, please...
607デフォルトの名無しさん:2006/09/29(金) 16:21:30
>>606
自前で描画
608デフォルトの名無しさん:2006/09/29(金) 16:39:23
VB.NET始めて2ヶ月の初心者です
学習用のサンプルで
CInt(x)

CType(x, integer)
というのが出ていたのですが、これって同じ結果になるものですか?
それとも状況によって使い分けたりするものなのでしょうか
609デフォルトの名無しさん:2006/09/29(金) 17:01:48
>>606
描画がいやなら、別の色組み合わせを検討してみよう。
610デフォルトの名無しさん:2006/09/29(金) 17:14:01
>>608
VB.NETのキャストは何種類かある
CType(val, T)は汎用。ちなみに失敗するとInvalidCastExceptionが出る。
CIntとかCLngとかは6.0以前の遺産じゃないかな?まあ型指定の手間省けるけど。
これらも変換できないときはInvalidCastExceptionを投げる。

ちなみにTryCast(obj, T)だと失敗したときはNothingが返される。ただし参照型限定。
611デフォルトの名無しさん:2006/09/29(金) 17:38:09
>>604
Containsで、できました!嬉しいです。ありがとうございました。

ソースをコピペしたとき、なにげなしに、<> のとこを = に変更しちゃったので、
ブラクラになってしまいました。ホントは、Exit Subは下の段です。。
すみませんでした。。
612600:2006/09/29(金) 17:40:25
>>607>>609
サンクスです。
基本的に逃げ道は無いということですね…。
613デフォルトの名無しさん:2006/09/29(金) 20:18:33
>>610
System.Convertと言うのもあるな。
614デフォルトの名無しさん:2006/09/29(金) 22:45:52
行き先の型が確定してるなら、DirectCastが良い。
615デフォルトの名無しさん:2006/09/29(金) 23:34:24
質問スレと関係ねえけど、先進性を売りにしてるドトネト諸言語でも
キャストと変換が峻別されてないのはどうにかならんかねと思う。
616デフォルトの名無しさん:2006/09/30(土) 03:32:23
>行き先の型が確定してるなら、DirectCastが良い。
おかしなことをゆうな。
617デフォルトの名無しさん:2006/09/30(土) 06:08:03
元先って表現が正しかったかね。
あいまいさのない変換ならって意味。
618608:2006/09/30(土) 09:07:27
>>610,613,614
回答ありがとうございます
色々試して使い分けられるように頑張ります
619デフォルトの名無しさん:2006/09/30(土) 14:37:58
検索をしようと、ctrl+Fを押下したのですが、検索ボックスが表示されません。
昨日までは、表示されていたのですが・・・
どうしたら表示されるようになるでしょうか?
620619:2006/09/30(土) 15:08:17
タスクバーをけしてみたら、画面の下の方に出ていました。
くそ質問ですみませんでした。
621デフォルトの名無しさん:2006/09/30(土) 17:29:14
>>620
IDEのツールボックスやウィンドウレイアウトは、オプションから初期
設定に戻すことができるよ。今回のが該当するのか不明だけど、同僚
がいっつもツールボックスを紛失するんで、俺も覚えてしまった。
622デフォルトの名無しさん:2006/09/30(土) 18:29:41
VB.NETで非同期イベントってどうやればいいんですか?
C#だとこんな感じでできるのですが
 //delegate設定
 public delegate void testDelegate( object sender, EventArgs e );
 //イベント設定
 public event testDelegate Tested;

 //非同期イベント発行
 Tested.BeginInvoke(this, EventArgs.Empty, new AsyncCallback(TestedCallback), Tested);
 //コールバック関数
 private void TestedCallback(IAsyncResult ar)
 {
  testDelegate callback = ar.AsyncState;
  callback.EndInvoke(ar);
 }

VBだとTested.BeginInvoke()でエラーがでます。


623デフォルトの名無しさん:2006/09/30(土) 19:12:09
>>622
同じようにやればいいんじゃないの?
VBでどう書いてどういうエラーが出たんだ?
624デフォルトの名無しさん:2006/09/30(土) 19:21:32
>>623
 //delegate設定
 Public Delegate Sub testDelegate(ByVal sender As Object, ByVal e As EventArgs)
 //イベント設定
Public Event Tested As testDelegate

Tested.BeginInvoke()で「Testedはイベントであるため、
直接呼び出すことはできません。」のエラーがでる。
625デフォルトの名無しさん:2006/09/30(土) 19:47:06
Testedをイベントじゃなくて単なるデリゲートにしたら?
イベントハンドラがいらないならイベントである必要はないんだけど。
626デフォルトの名無しさん:2006/09/30(土) 19:49:14
>>622
おま、そのC#のほうも、内容わかってないだろ。
内容をまず理解したほうがいい。そうすれば簡単にわかる話だ。

まずはそれからだ!
627デフォルトの名無しさん:2006/09/30(土) 20:06:24
てきとーに、イベントに関数を与えるのはAddressofでやるのでは?
628デフォルトの名無しさん:2006/09/30(土) 21:15:08
>>622
ああ、C#だとそういう風にイベントをデリゲートとして扱えるのか。。
VBだとたぶんそのコードを「直訳」することはできないね。

ばかばかしいことだけど、RaiseEventでイベントを生成するメソッド(OnTested)
を、別のデリゲートで非同期呼び出しする必要がありそう。

この変はイベントを簡単に扱えるようにしているVB.NETの暗黒面かもしれん。

ちなみに、どうでもいいんだけどそういうの非同期イベントっていうのは
正式な用語法なのかな?
629デフォルトの名無しさん:2006/09/30(土) 21:25:09
>>628
> ちなみに、どうでもいいんだけどそういうの非同期イベントっていうのは
> 正式な用語法なのかな?
いんや。

つか 622 のコードはイベントをデリゲートとして扱えてしまう C# の暗黒面。
BeginInvoke はあくまで非同期デリゲートなんだから。
630デフォルトの名無しさん:2006/09/30(土) 21:31:14
>>629
それ君の倒錯だと思うけどね俺は。

実際問題、たとえば何らかのデバイスなりストリームなりを監視する
ワーカースレッドから、UIスレッドに同期したイベントを生成したいって場合は
少なからずあるんだよ。

そういう場合はVBだと>>628に書いたような非常にばかばかしいコードを書かなきゃならん。
631デフォルトの名無しさん:2006/09/30(土) 21:36:02
ちょっとC#勉強してくるノシ
632デフォルトの名無しさん:2006/10/01(日) 04:17:33
てかよ、デリゲートの非同期呼び出しはマルチキャストできないんじゃなかったっけ?
つまりそもそもイベント発火すんのにそんなもん使っちゃだめってことだろよ。
UIに同期したいなら面倒でもメソッドいっこかませりゃ済む話でそ?
633デフォルトの名無しさん:2006/10/01(日) 12:26:44
>>632
どこにそんなこと書いてあるんだよw
634デフォルトの名無しさん:2006/10/01(日) 15:04:35
マイクロソフト公式解説書「プログラミング Visual C# 2005 言語編」
にはっきりと書いてある。
635デフォルトの名無しさん:2006/10/01(日) 15:18:13
書いてあるわけねーw
だってそんなの事実に反するからね

だいいちデリゲートにとっちゃ自分のケツを誰が叩いているかなんて
全然関係のない話だろw
636デフォルトの名無しさん:2006/10/01(日) 15:25:07
おまえ言ってること勘違いしてないか?

デリゲートの非同期呼び出しはマルチキャストでは使えない(これは上記の本に書いてある)。
イベントはマルチキャストすることが普通にある。
よってイベントをデリゲートの非同期呼び出しで呼び出すのはまずい。

って言ってるんだが。
イベントの発火をデリゲートの非同期呼び出しでやったらまずいってのは
上記からの俺の見解だからlこれは書いてないけどな。
637デフォルトの名無しさん:2006/10/01(日) 15:58:56
>>636
勘違いしてるのはたぶん君だと思うよ。

推測でしかないけど、たぶんEndInvoke使って返り値を取れるのは
デリゲートが一番最後に呼び出したメソッドだけ、って話とどっかで
混同してるんじゃないの?
638デフォルトの名無しさん:2006/10/01(日) 16:07:08
人によって Control.BeginInvoke を言ってるのか Delegate.BeginInvoke を言ってるのか
バラバラでグダグダになってるな。
非同期デリゲートなんだから Delegate.BeginInvoke の話のはずだが。


EventHandler handler = delegate { Console.WriteLine("a."); };
handler += delegate { Console.WriteLine("b."); };
IAsyncResult ia = handler.BeginInvoke(null, null, delegate(IAsyncResult ar) {
   handler.EndInvoke(ar);
}, null);
ia.AsyncWaitHandle.WaitOne();

> ハンドルされていない例外: System.ArgumentException:
> デリゲートに指定するターゲットは 1 つでなければなりません。

匿名メソッドは楽じゃのう。
639デフォルトの名無しさん:2006/10/01(日) 16:23:19
どうみても>>636が正しいです。

本当にありがとうございました。
640デフォルトの名無しさん:2006/10/01(日) 16:34:27
>>637
だから書籍に書いてあるってんのに何をどう勘違いするってんだ。
「BeginInvokeメソッドは、シングルキャストデリゲートに対してのみ使用できます」
って書いてあるっての。
641デフォルトの名無しさん:2006/10/01(日) 16:37:08
ああ…つまりそういうことだw
642637 :2006/10/01(日) 17:35:49
なんか勘違いしてるのは俺の方だったみたいね。。
なんか恥ずかしいなw

ってことは、結局非同期的にマルチキャストなイベントを起動しようと思ったら
OnXXXを非同期的に呼び出さないとダメってことなのか?

C#でもイベントに対してBeginInvokeなんて迂闊に使ったらまずいわけか。
643デフォルトの名無しさん:2006/10/01(日) 19:05:36
んーたいていの場合、イベントソースの方が非同期で処理してるんだろうから、
そのままイベント投げればいいと思うんだけどな。
非同期でイベントを発火しなきゃならん状況があんまりうかばないんだが。
644デフォルトの名無しさん:2006/10/01(日) 19:11:58
>>643
制御系とかでユーザ操作に関係なく発生するイベントとかは?
645デフォルトの名無しさん:2006/10/01(日) 19:21:40
んーじゃなくてさ
非同期で発生するイベントはいろいろ考えられても、
イベントソースの方が非同期でイベントを発火することはあまりないんじゃ?てこと。
※ソース側のスレッドからさらに非同期でイベントを発火するって話ね。

そりゃ制御系とか、その他、ソース側のワーカスレッドをブロックしては困る場合とかは
あるだろうけど、そういうのは少ないんじゃ?ってこと(ないとは言ってない)
646デフォルトの名無しさん:2006/10/01(日) 20:08:57
>>645
たとえばHWバッファが貧弱なために一定の時間間隔以下で必ずreadしてやらないと
バッファがオーバーフローしてしまうようなデバイスをスレッドでバッファリングしているとして、
特定の値を受信した場合にそのスレッドからイベントを生成したいような場合。

ってちょっと強引な設定か。
647デフォルトの名無しさん:2006/10/01(日) 20:37:37
うん、そういう場合は必要だけど、そういう場面はあんまりないんじゃ?ってだけね。
648デフォルトの名無しさん:2006/10/03(火) 03:11:24
System.IO.File.Copy("C:\Hoge.txt", "C:\Foo\Bar.txt", True)

上記の場合に、C:\Hoge.txtが存在しなかったら強制終了してしまうんですが
ファイルが存在しない旨のメッセージを表示させたいときはどうすれば良いんでしょうか?
VBです。
649648:2006/10/03(火) 03:12:09
すみません。↑は誤爆です。
気にしないでください!!
650デフォルトの名無しさん:2006/10/03(火) 14:34:39
プログラム初心者で、簡単な質問かもしれないですがお願いします。

VB.NETの質問で申し訳ありませんが、イメージを貼り付ける時に
ImageBox1.Image = Image.FromFile("gazou.gif")
ImageBox2.Image = Image.FromFile("gazou.gif")
ImageBox3.Image = Image.FromFile("gazou.gif")
ImageBox4.Image = Image.FromFile("gazou.gif")
ImageBox5.Image = Image.FromFile("gazou.gif")
というプログラムを、IfやForを使ってもっと簡潔にまとめられないでしょうか?
いろいろと試してみましたが、エラーばかりでうまくいかなくて…よろしくお願いします。
651デフォルトの名無しさん:2006/10/03(火) 14:50:08
>>650
for each
652デフォルトの名無しさん:2006/10/03(火) 14:55:30
>>650

http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard20.htm

上から下まで全部読んだら、方法がいくつかわかると思う。
653デフォルトの名無しさん:2006/10/03(火) 15:01:43
>>651-652
とりあえず紹介されたサイトのほうに目を通したいと思います
早い返答ありがとうございました
654デフォルトの名無しさん:2006/10/03(火) 17:25:00
>>652
650じゃないですが、ちょうど同じ内容を探してました
感謝です
655デフォルトの名無しさん:2006/10/04(水) 06:46:51
ローカルネットワークのActive Directory上動くアプリを作っています。
そのアプリの認証にWindows認証を取り入れたいのですが、
どのように認証すればよいのでしょうか?
656デフォルトの名無しさん:2006/10/04(水) 09:51:12
VB.Net2003 + .NetFrameWork1.1
で、ListVIewのListVIewItem(i).Textプロパティに改行文字を含んだ文字列を
指定したらTextのAlignがCenterになってしまいます。
しかも妙に左右に空白ができてしまいます。
Viewプロパティは smallicon にし、48x48pxlのアイコンを使用しています。

┏━┓   abc
┃ ┃ あいうえお
┗━┛  123456


これを

┏━┓abc
┃ ┃あいうえお
┗━┛123456

このように表示したいのです。
イメージとしては、windows(XP以降)のFileExplore右側リストビューにて
「並べて表示」した時の感じです。

ListViewにはTextAlignプロパティは無いし、Alignmentプロパティは
アイコンの並び方を変えるだけでした。
どのような方法で実現できるでしょうか?

また、Textプロパティの1行目のフォント色は黒で、2行目以降はグレーで表示したいのですが
どのようにすれば実現可能でしょうか?

そもそも、WindowsのFileExploreのListViewは.NetFrameWorkのListViewとは
異なるものなのでしょうか?
657デフォルトの名無しさん:2006/10/04(水) 14:12:27
同じ型の構造体をコピーする方法を教えてください
658デフォルトの名無しさん:2006/10/04(水) 14:15:16
コピーしたい構造体を反転選択、
Ctrl-c
659デフォルトの名無しさん:2006/10/04(水) 14:16:24
A4白黒あたりで良ければ、
コンビニで10円
660デフォルトの名無しさん:2006/10/04(水) 14:21:10
うっ、この時間って馬鹿しかいなかったか・・・
661デフォルトの名無しさん:2006/10/04(水) 14:24:04
質問の仕方も知らない馬鹿をからかっているだけだと思われ。
662デフォルトの名無しさん:2006/10/04(水) 14:30:51
答えれないと煽るか誤魔化す馬鹿しかいない時間帯だってわかってるよ
663デフォルトの名無しさん:2006/10/04(水) 14:34:49
>>660
その通り。
この時間、回答者も質問者も馬鹿しかいない。
664デフォルトの名無しさん:2006/10/04(水) 14:37:21
>>663
違うだろ。 馬鹿な質問者にはそれなりの馬鹿しかレスしねえだけだ。
665656:2006/10/04(水) 15:10:25
事故解決です。
どーやら.NetFrameWork2.0のListViewコントロールには
View.Tilingというビューモードが追加になってるみたいですね。
やりたかったことはそれなので、2.0導入するまでちょっと我慢します。
666デフォルトの名無しさん:2006/10/04(水) 15:17:25
>>664
だからお前がレスしてるのね
667デフォルトの名無しさん:2006/10/04(水) 15:20:29
>>666
ようこそ。
668デフォルトの名無しさん:2006/10/04(水) 15:37:15
>>657
Struct1 struct1 = struct2;
669デフォルトの名無しさん:2006/10/04(水) 15:39:31
まあおまいら、またーりするんだ。

ttp://up2.viploader.net/pic/src/viploader320467.jpg
670デフォルトの名無しさん:2006/10/04(水) 18:50:41
次はオシッコして感電死するショット?w

>>665
俺自身は自分でやったことないのにえらそうに言うけど、
たぶんListViewのOnPaintをオーバライドすれば1.1でもできるんじゃない?

GetItemRectなんてメソッドを使えば、テキストの部分だけのRectangleが取得できるから
先にベースクラスのOnPaint呼んどいてテキストの部分だけ自分で上書きしてしまえばいい。
671デフォルトの名無しさん:2006/10/04(水) 18:52:35
プロセスIDからそのプロセスのファイル名をフルパスで得る方法ってありませんか。
VB2005です。
672656:2006/10/04(水) 19:51:25
>670
さんくす。
オーバーライドやGetItemRectなんて具体的なやりかたが全然想像つかないので
ちょっと調べてきます ノシ
673デフォルトの名無しさん:2006/10/04(水) 20:09:07
>>656
2003でもいいけどさ、
.NetFrameWorkは2.0にできないの?
まったく別物で上位互換でもないしさぁ

674デフォルトの名無しさん:2006/10/04(水) 20:19:39
>>670
そりゃ無理だろ。やるならAPI使ってオーナードロー。
675656:2006/10/04(水) 20:22:33
>>673
1.1で開発してるシステムが完成してから2.0にしようかと。
開発途中で2.0にしてしまうと作成途中のソースに
あちこち手を入れることになんね?
676デフォルトの名無しさん:2006/10/04(水) 20:27:06
>>674
あんたVB6な人だろ
.NETは違うんだよw
677デフォルトの名無しさん:2006/10/04(水) 20:35:13
>>676
OnPaintでどのアイテムを描画するかどうやって判断するの?
678デフォルトの名無しさん:2006/10/04(水) 20:40:41
>>675
手入れが必要なら、さっさと乗り換えたほうが良くない?

たとえばオーバーライドやGetItemRectをつかってまで1.1でつくりあげて、
それから2.0にする意味は?
一刻も早く2.0にして、もっとスマートな仕様で作っていくべきと思うけど。
他の様々な部分でも改善の余地があるなら早いほうがいいと思うし。
679670:2006/10/04(水) 20:41:52
>>672
継承知らないとなると前途多難かもしれんねw

既存のコントロールを継承して独自の機能を実装する方法はここにやさしい解説があるよ
http://pclabo.org/vb_net/14/main.htm

あと、オーナードロー(OnPaintを乗っ取って自分で描画しちゃう)については、
たしか「どぼん」にコンボボックスをイメージコンボに改造するサンプルがあったと思う
680670:2006/10/04(水) 20:43:18
>>678
俺もそうだけど、たとえば中小企業でチマチマコード書いてる身分だとそうもいかんでしょ。
681656:2006/10/04(水) 21:07:52
>>678
いま2.0を入れずに頑張って1.1で手間ヒマかけてやるつもりはないです。
大変そうならとっととあきらめて余裕のできたときに2.0に移行していきます。

>>680
ウチの会社は作ったシステムを運用する人はイパーイいるけど、
開発する人間はオレともう一人だけなんだよね。
でも、今作ってるシステムは全くオレ一人でやってる。
だから完成間近のシステムを今の段階で2.0とかに対応していくことは
とても厳しい。
ユーザにはもうすぐリリースできそうってアナウンスしてあるしw

>>679
ありがとう。
継承とかは気になっていたんだけど、まだ必要になってなかったので
勉強できてません。
教えてもらったサイトを参考に勉強してみます。
682デフォルトの名無しさん:2006/10/04(水) 22:25:05
>>671
Process クラスと ProcessModule クラス使えば用は足りるだろう。
683デフォルトの名無しさん:2006/10/05(木) 00:59:42
Function関数を使って、
グローバル変数のようにモジュール内のどの関数内からでも呼び出せて、

同様に(変数をValueとすると)


Value = 3

Value += 4

Dim rr As Integer
rr = Value + 5


といった感じで使いたいのですが……
色々と試してみたのですが、さっぱり上手くいきません。

初歩的な質問なら申し訳ございませんが、よろしくお願いします。
質問が下手ならすみません。
684デフォルトの名無しさん:2006/10/05(木) 01:07:23
もうちょっと具体的に書いてくれる?
685デフォルトの名無しさん:2006/10/05(木) 01:17:25
>>684
Function Total(ByVal tt As Decimal) As Decimal
Static rr As Decimal = 50
rr -= tt
Return rr
End Function

上のようなプログラムを使おうとすると、
  Total(x)
と表記するだけで返り値を増やす事は出来るんですが
その値の初期化が出来なくて困っています。
どうにかして別の関数内からも望む時に値を初期化ないし変数rrに直接代入できないでしょうか?
686デフォルトの名無しさん:2006/10/05(木) 01:18:58
>>685
すみません、上記のプログラムでは返り値を増やす事ではなく減らす事は出来る……です。
説明が下手ですみません。
687デフォルトの名無しさん:2006/10/05(木) 01:28:32
値を設定するメソッドも用意しとけば良いだけじゃん

つかまあ見事な非 OOP だな
688デフォルトの名無しさん:2006/10/05(木) 01:34:06
Staticについてちょっと勉強不足かも……ちょっと調べて試してみます
こんな夜にわざわざありがとうございました
689デフォルトの名無しさん:2006/10/05(木) 01:44:09
>>687
普通に解決しました……すみません、プログラムの考えってすごく苦手で……
すごく助かりました、本当にありがとうございます。
690デフォルトの名無しさん:2006/10/05(木) 23:17:58
VBほぼ初心者で、VB6.0でほぼ完成のソースもらったんですけど、
2005しかなくて、勝手に変換されて泣きそうです。

で、質問です。
1.2005のままどうにかならないのか?
 このまま1個1個エラー潰していくしかないのか?

2.フリーのVB6.0が動く開発環境ってありますかね?
 2003とか。


明らかにウザイ質問と自分でもわかっているので、罵倒する感じでお願いします。
691デフォルトの名無しさん:2006/10/05(木) 23:30:41
>>690
1、自力でごりごりコンバートしたほうが、後々役に立つと思われる。

2、6.0のフリー環境はさすがに無いかと。
  5.0のControl Creation Editionで解釈できるコードなら、そっちで
  動かせるかもしれない。2003と互換性のあるSharpDevelopにいく
  という手もあるけれど、それなら2005にしたほうが大吉。
692デフォルトの名無しさん:2006/10/05(木) 23:38:58
>>691
即レスサンクスです。
結局自分でガンガルのが最短路ってことですね。
どーもです。
頑張ります。
693デフォルトの名無しさん:2006/10/05(木) 23:43:41
>>690何度も何度も何度も既出

694デフォルトの名無しさん:2006/10/06(金) 00:16:02
既出厨乙
695デフォルトの名無しさん:2006/10/06(金) 01:27:43
最近始めたばかりの初心者で、環境は2003を使っています。
>>650のような感じで、例えば

Dim x As Integer

Private Sub ABC1()
x = 1
End Sub

Private Sub ABC2()
x = 2
End Sub

Private Sub ABC3()
x = 3
End Sub

上のようなプログラムの
Private Sub ABC1()〜ABC3()
をもっと簡潔に表記する事はできませんか?
696デフォルトの名無しさん:2006/10/06(金) 01:37:40
private void ABC( int arg )
{
 x = arg;
}
697デフォルトの名無しさん:2006/10/06(金) 01:52:47
>>696
ありがとうございます、参考書にvoidが無かったので検索していますが・・・見つからず苦戦しています・・・

ちなみにその方法で

Private Sub ABCBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ABCBox1.Click

のようなボタンを押した時などのPrivate Sub 〜〜
もまとめる事はできますか?
質問ばかりですみません。
698デフォルトの名無しさん:2006/10/06(金) 02:08:18
>>697

>>696は違う言語。

そのイベントを起こすコントロールが何か分からんが
大体senderがそのコントロールそのものだな。

Handles ABCBox1.Click, Button1.Click, Button2.Click みたいにして
senderとそのボタンなりなんなりと比較して分岐。
699デフォルトの名無しさん:2006/10/06(金) 02:10:54
Handles の記述上限っていくつだろ
700デフォルトの名無しさん:2006/10/06(金) 02:12:14
>>696
コピペするとエラーが出るのですが・・・
C#ではないですよね・・・せっかく教えていただいたのにすみません

どこか分かり易いサイトなどありましたら教えていただけると助かります
701デフォルトの名無しさん:2006/10/06(金) 02:15:35
>>698
HandlesとSenderですか、調べて何とか理解できるよう頑張ります
それでも分からなければ、すみませんがまた手を煩わせる事になるかもしれないですが
そうならないように頑張ります

丁寧にありがとうございます
702デフォルトの名無しさん:2006/10/06(金) 02:18:38
Buttonと書こうと思っていたのにBoxと書いてしまってますね・・・
コントロールが分からなくてすみませんでした
改めてありがとうございました
703デフォルトの名無しさん:2006/10/07(土) 02:35:26
MenuItemやNotifyIconにInvokeRequiredって無いんでしょうか・・・
別スレッドからNotifyIconのTextを変えたりしたいのに出来ない・・・orz
704デフォルトの名無しさん:2006/10/07(土) 02:50:07
Controlじゃないからね。
本スレッドのウインドウにメッセージでも送ってやってもらうが吉
705デフォルトの名無しさん:2006/10/07(土) 02:59:07
どういう風にすれば良いでしょうか・・・
Textを変更しようとしているスレッドはループを回しているのでRunWorkerCompletedじゃだめだし・・・分からないorz
706デフォルトの名無しさん:2006/10/07(土) 03:03:43
VB2005です。
MenuStripに項目をいっぱい追加して、そのウィンドウの幅を小さくすると、
はみ出たぶんのメニュー項目が表示されない、クリックできない状況になっちゃうんですが、
これを改善するにはどうしたらいいですか。
VB6の用に折り返させたり、メニューの一番左に▼←こんなのが表示されて、クリックすると
続きが表示されるようにしたりしたいんです。
707デフォルトの名無しさん:2006/10/07(土) 05:06:03
>>706
menuStrip.GripStyle

初期値はHidden
708デフォルトの名無しさん:2006/10/07(土) 05:27:37
>>707
HiddenからVisibleに変えてみましたが、メニューの一番右に点が3つ表示されるだけで、
はみ出たぶんのメニュー項目は依然選択できないままです。
709デフォルトの名無しさん:2006/10/07(土) 09:34:58
>>705
BackgroundWorker 使ってんだったら ProgressChanged で良いじゃん
710デフォルトの名無しさん:2006/10/07(土) 10:48:21
>>709
こんなイベントあったんですか・・・知りませんでした。ありがとうございます。
.netは奥が深いな・・・
711デフォルトの名無しさん:2006/10/07(土) 11:36:07
>>708
CanOverflow
つーかドキュメントくらい読めよ禿
712デフォルトの名無しさん:2006/10/07(土) 15:12:27
>>711
CanOverflowをTrueにしても、はみ出たぶんのメニュー項目は依然選択できないままです。
713デフォルトの名無しさん:2006/10/07(土) 15:46:19
>>712
LayoutStyle をFlowに
714デフォルトの名無しさん:2006/10/07(土) 17:15:34
>>713
おお、ついにできました。
ありがとう。
LayoutStyleだけで折り返し表示できました。これではみ出た部分のメニューも選択できます。
>>707>>711は質問の意図を勘違いされちゃったのかな。
715デフォルトの名無しさん:2006/10/07(土) 18:54:55
何様?
716デフォルトの名無しさん:2006/10/07(土) 19:00:14
俺俺
717デフォルトの名無しさん:2006/10/07(土) 22:42:50
フォームのキーアップイベントでファンクションキーの処理をしているのだが、
テキストボックスでIME変換中のファンクションキーもイベントで拾ってしまう。
テキストの編集中のファンクションキー処理か見分ける方法ってあります?
718デフォルトの名無しさん:2006/10/07(土) 23:39:37
正攻法じゃなく姑息な方法だけど、

(1) KeyUpイベントで特殊キー以外だったらIME変換中のフラグを立てる
(2) TextChangedイベントでIME変換中のフラグを下げる

あくまでKeyUpイベント中でIMEが変換中かどうか知りたいということなら
これでいけるんじゃないかな。
特殊キー以外が押された(放された)のであれば、IME変換中でなければ
Textはかならずかわっているはずだから。

もちろんフラグを立てる処理はKeyUpの一番最後にもっていく必要がある。

っていうか、ずいぶん変則的なことがしたいんだね。
719デフォルトの名無しさん:2006/10/07(土) 23:39:48
該当コントロールに、IME 入力開始時に WM_IME_STARTCOMPOSITION、終了時に WM_IME_ENDCOMPOSITION が来る。
適当なクラスに IFilterMessage を実装させてこの二つのメッセージを拾えば良いんじゃない?
720デフォルトの名無しさん:2006/10/07(土) 23:48:27
アップデートしようとすると「Visual Studio .NET 2003 セットアップで
必要なファイルをダウンロード中にエラーが発生しました。
Webブラウザ構成の設定および接続ハードウェアを確認してから、やり直してください。」
出てきて、アップデートできないのですが、どうすれば解決できますか?
721デフォルトの名無しさん:2006/10/08(日) 00:08:36
今インスト中なのですが最後の4段階目のService Releaseで
上手く進めません。
必要なファイルをダウンロード中にエラーが発生しました。
Webブラウザ構成の設定および接続ハードウェアを確認してから、やり直してください
このポップアップメッセージが出てきて進めないです。

誰か親切でエロイ方教えてくださいーーー。
722デフォルトの名無しさん:2006/10/08(日) 00:09:51
ファイアーウォール
723デフォルトの名無しさん:2006/10/08(日) 00:15:20
>>722
ファイアーウオールを実装しても解除しても両方できません。
724デフォルトの名無しさん:2006/10/08(日) 00:21:01
>>721
ServiceReleaseをキャンセルしても、とりあえずインストールは完了
するから安心しろ。
725デフォルトの名無しさん:2006/10/08(日) 00:22:50
>>724
いいえ。そこを完了しないとPCに.NETのソフトが入ってないです。
どこを探してもインストールされていません。
726デフォルトの名無しさん:2006/10/08(日) 00:25:20
>>724
ありましたぁ!!
ServiceReleaseをキャンセルしても、問題はないですか?大丈夫でしょうか?
727デフォルトの名無しさん:2006/10/08(日) 00:53:33
728デフォルトの名無しさん:2006/10/08(日) 00:55:16
>>726
ちゃんとキャンセルされてるから安心しろ。

729デフォルトの名無しさん:2006/10/08(日) 03:48:27
datagridview のあるセルに、コードベースでハイパーリンクを設定するのってどうやるんでしょうか?
730デフォルトの名無しさん:2006/10/08(日) 04:05:07
取りあえずデザイナで配置してみて、それで作られたコードを参考にしろ
731デフォルトの名無しさん:2006/10/08(日) 10:40:56
>>726
職場のオフラインパソコンで何度もやってる俺が言うんだから間違いない。
732デフォルトの名無しさん:2006/10/08(日) 11:31:36
ComboBoxでエディットボックス部分のメッセージってどうやって拾ってます?
733デフォルトの名無しさん:2006/10/08(日) 11:41:06
ComboBox.Text プロパティを参照ではあかんの?
734デフォルトの名無しさん:2006/10/08(日) 12:17:26
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    For Each c As Control In ComboBox1.Controls
      If TypeOf c Is TextBox Then
        MsgBox("ComboBox内にTextBoxを発見しました。")
        Exit Sub
      End If
    Next

    MsgBox("オメエに喰わせるTextBoxはネエ !")
  End Sub
735デフォルトの名無しさん:2006/10/08(日) 12:23:36

なにこれ?
736デフォルトの名無しさん:2006/10/08(日) 15:36:33
>>733-734
テキストボックスコントロールじゃなくて、
エディットエリアに流れているウィンドウズメッセージです。
737デフォルトの名無しさん:2006/10/08(日) 15:51:30
だから内部的にエディットボックスなんて使ってないんだってば
738デフォルトの名無しさん:2006/10/08(日) 17:17:48
>>737
エディットボックスじゃないよ。
エディットエリアの部分だって。
spyで確認すると、ハンドルもメッセージもコンボボックスとは別のものが流れてるけど、
そのエディットエリアに流れているメッセージを取得したいのです。
739デフォルトの名無しさん:2006/10/08(日) 17:40:28
まあ実際 Edit コントロール使ってんだけどな。
CB_GETCOMBOBOXINFO を送るか、Win32API の GetComboBoxInfo を使うかすればエディットのハンドルが手に入る。
あとは NativeWindow の派生クラス作ってサブクラス化すればいい。
740デフォルトの名無しさん:2006/10/08(日) 18:02:25
741デフォルトの名無しさん:2006/10/08(日) 19:20:53
>>739-740
さんくすです
742デフォルトの名無しさん:2006/10/11(水) 12:37:37
直接VBの話では無いのですが開発環境がVB.NET2005なので、質問させてください。

今度、新しく作成するアプリのDBをSQL Server2000と2005のどっちにするかを悩んでいます。
VB.NET2005(Pro)から見てSQL Serverの2000と2005が変わりがないのであれば、
会社で所有している2000をそのまま使おうと思っているのですが、
SQL Server2005で魅力的な何かがあれば購入協議に出して買ってもらおうかと思っています。

見積もりで容量が10GBを超えるのでExpressは考えていません。
SQL Server2005とVB.NET2005の組み合わせで何か幸せになれる事ってあるのでしょうか?
743デフォルトの名無しさん:2006/10/11(水) 12:48:12
>>742
自分で考えれば?それだけの条件じゃなんにもわからんし。
744デフォルトの名無しさん:2006/10/11(水) 14:58:28
VB.NET 2005 の Express Editionを使っているのですが
配布パッケージを作成はどうすれば良いのでしょうか?

6時代のディストリビューションウィザードみたいなのが見当らないのですが
745デフォルトの名無しさん:2006/10/11(水) 16:15:55
>>744
ClickOnceが嫌ならStandard以上が必要
746デフォルトの名無しさん:2006/10/11(水) 16:35:22
744じゃないけど、Standard以上だとどんなディストリビューションウィザード的なものがある?
747デフォルトの名無しさん:2006/10/11(水) 16:51:55
どんなと言われても困るがセットアッププロジェクトというものがある。
詳しく知りたければここでも見てくれ。
http://msdn2.microsoft.com/ja-jp/library/2kt85ked.aspx
748742:2006/10/11(水) 19:27:14
>>743
確かに曖昧だったな。
とりあえず開いているサーバにSQL Server2005developerをつっこんで弄ってみるは。
749デフォルトの名無しさん:2006/10/11(水) 21:16:17
ずっとVBをやってたんだけど。出向先がいきなりVBC#になるとのこと。
明日からいきなりいくんだけど、随分違うものなの??
750デフォルトの名無しさん:2006/10/11(水) 21:44:09
VBC#なんてのが出来たのか
751デフォルトの名無しさん:2006/10/11(水) 21:45:40
>>749
たいして変わらん
752デフォルトの名無しさん:2006/10/11(水) 23:20:48
>>750
VBC#は結構前からあるよ。J#なんてのもあるからねー
753デフォルトの名無しさん:2006/10/11(水) 23:33:50
VisualBasicC#?
754デフォルトの名無しさん:2006/10/12(木) 00:16:22
VisualBasicCompiler#と予想
755デフォルトの名無しさん:2006/10/12(木) 00:45:13
VisualBasiC#
756デフォルトの名無しさん:2006/10/12(木) 01:24:40
ぶびちゅ
757デフォルトの名無しさん:2006/10/12(木) 09:32:50
ぶいびー丼?
758デフォルトの名無しさん:2006/10/12(木) 16:34:49
VB.net2003のツリービューでノードを一意に
認識したくtagにguidをいれているのですが
このtagを指定して一発でそのノードを取得したいのですが
可能でしょうか?

こんな感じであればよいかなと思います。

Dim hoge As TreeNode
hoge = TreeView1.selectSingleNode("123304-32-434-3-3-35")

もし可能であればやり方を教えてください。
よろしくお願いいたします。
759デフォルトの名無しさん:2006/10/12(木) 18:37:07
>>758
そんなことするぐらいなら最初からHashtableに突っ込んで管理すりゃいいじゃん。

っていうか、うまくいえないが何か根本的に「考え違い」をしていると思うぞw

何ていえばいいかな、guidで識別したいってことはguidをインデックスにノードを
取得したいってことだが、そのguidは何をインデックスに取得するつもりかね?w
760デフォルトの名無しさん:2006/10/12(木) 19:48:52
>>759
なるほどー
ツリーを構築するときにハッシュテーブルにguidとノードをインサートしておけばいいわけですね。
こりゃすごい
761デフォルトの名無しさん:2006/10/13(金) 08:26:13
2つ質問したいことがあります。

1つめは、
vb.net と vb2005の違い なんですが、
イメージとしては、vb2005は、.net を vb6に近づけた感じというのがあるのですが
どうなのでしょうか?

2つめは、
VB.net をこれから、学び始めようと思うのですが、
今ある知識は、VB6 を少しかじったくらいなので
初心者から 学べる おすすめの本があればお教えてください。
762デフォルトの名無しさん:2006/10/13(金) 09:20:13
vb.net .netフレームワーク上で動くVB
vb2005 .net2,0を開発できるVisualStudio2005のvb部分

初心者は@ITでも読破しとけば?
763デフォルトの名無しさん:2006/10/13(金) 10:50:44
>>イメージとしては、vb2005は、.net を vb6に近づけた感じというのがあるのですが

あながち間違いじゃない。
2003で思うように移行が進まなかったためか、2005はVB6.0に擦り寄
った内容になっている。
764デフォルトの名無しさん:2006/10/13(金) 11:19:40
>>761
[暗黙のインスタンス] でググるよろし。
765デフォルトの名無しさん:2006/10/13(金) 11:22:12
>>762
まず始めに @ITの方を読破して
それから、必要に応じて、本を探そうと思います。

>>763
.net 〜2005 までの変更があまりわかってなかったのですが、
明確になりました。


質問に答えていただき、ありがとうございますした。
766761:2006/10/13(金) 11:30:05
>>765
ちょっとタイプミスw

>>764
分かりやすい説明でたすかります。


質問に答えていただき、ありがとうございました。
767デフォルトの名無しさん:2006/10/13(金) 11:43:45
暗黙のインスタンスが使えるから何?って思うんだけどね。
VBは2の頃からやってるけど、普通にすんなり.netやってるし。
逆にあんな糞仕様が何故復活するのか理解ができん。
768デフォルトの名無しさん:2006/10/13(金) 11:59:49
いまだに6.0ベースの開発案件が続いてることに、MSが危惧を抱いてる
んでないの? 「サポート切れたよ! 動作保証しないよ!」って言い
続けてるわりには、一向に転換が進まないしさ。

うちなんか「6.0でSP3まで」っていう環境の縛りがあるくらいだし。
769デフォルトの名無しさん:2006/10/13(金) 13:32:51
.NETでWindowsMessage一覧が定数化してあるクラスが欲しいのですが、
今現在落とせる場所ってありますか?
昔は【渋木宏明(ひどり) blog 】や【Sugi@ぱぱんぶぃびぃ Blog】で落とせたみたいなんですが、
今は落とせないみたいので、現在ある場所知っている方教えてください。
770デフォルトの名無しさん:2006/10/13(金) 16:05:11
そういえば、VB6時代の末期は、
超優秀な人から超無能な人までVB6を使っていたが、
その全てが.netを理解できるはずが無かった。
そうなると、VB6を使い続けるしかないんだよな。
会社としても、皆が.netを理解できないのにVB6を切るわけにも行かないし。

また、理解できたとしても、顧客には.netを本筋にするから、
VB6アプリはサポートしないなんて言えないし。
771デフォルトの名無しさん:2006/10/13(金) 18:12:27
>>769
SDKからWinUser.h抜いて
エディタで正規表現つかって書き出せば簡単
772デフォルトの名無しさん:2006/10/14(土) 11:02:50
公開よろ
773デフォルトの名無しさん:2006/10/14(土) 11:34:47
ウンコに行きたいんだが、我慢した方が良いか?
774773:2006/10/14(土) 11:35:50
誤爆ゴメン
775デフォルトの名無しさん:2006/10/14(土) 12:04:09
>>769
ありがちな発想だけど、そんなクラス使いにくくてしょうがないでしょ。
必要なメッセージだけその都度定数なりEnumなりで定義してればこそ
インテリセンスの有難味も効いて来るのに。
776デフォルトの名無しさん:2006/10/14(土) 18:39:40
超初心者なんですが
VisualBasic2005 Express editionでWindowsアプリを作ったのですが
EXEにするにはどうしたらよいのでしょうか?

昔少し開いたVBにはコンパイルとかあったような気がしたんですが¥けど・・
777デフォルトの名無しさん:2006/10/14(土) 18:47:30
ビルド
778デフォルトの名無しさん:2006/10/14(土) 18:48:00
ビルドすれば作られてるだろ
779776:2006/10/14(土) 18:50:36
あ、ありました。
>>777-778
ありがとうございました。
780デフォルトの名無しさん:2006/10/15(日) 01:02:15
ショッピングWEBなどのhtml中のセッションIDの取得が出来ずに悩んでいます。

<!-- jsessionid=925366B2850A358E66BCF2C091402219.tom18 -->
というセッションIDがあり、アクセスの毎に変わります。

このセッションIDを取り出す方法でつまづいています。
オーバーライド関数GetSessionを実装して、適当な変数(Sidなど)に代入出来るようにしたいのですが、
どうすればよろしいのでしょうか。

いろいろぐぐっても解かりませんでした・・・

よろしくお願いします。
781デフォルトの名無しさん:2006/10/15(日) 01:06:18
どっかの掲示板で見たなこの質問
782デフォルトの名無しさん:2006/10/15(日) 12:40:38
VB.NETの変数名のつけ方のガイドラインってあるんでしょうかね?
たとえば、クラス内の変数名の先頭にはよくm_を付けている事が多いですが。
783デフォルトの名無しさん:2006/10/15(日) 13:22:15
>>782
MSDNにもあるし、本も出てるし。
784デフォルトの名無しさん:2006/10/15(日) 13:49:06
N88Basicしか知りません。まったくのVB初心者です。
VB.NETでそこそこのソフトを作れるようになるにはどのくらい勉強すればいいのでしょうか?
785デフォルトの名無しさん:2006/10/15(日) 13:58:45
俚諺に曰く、石の上にも三年
786783:2006/10/15(日) 14:07:50
>>783
MSDNには”Visual Basic の名前付け規則”っていうのがありましたね。
書籍の方も見てみたいのですが、本のタイトル教えてもらえませんか?
787デフォルトの名無しさん:2006/10/15(日) 14:11:19
そこそこのソフト
わかるかぼけぇ
788デフォルトの名無しさん:2006/10/15(日) 14:17:18
>>786
手元に無いので正確なのはわからんが、
「VB.NETルールブック」だったかな?
789782:2006/10/15(日) 15:03:49
>>788
ありがとうございます。
そのタイトルの本がありました。
790デフォルトの名無しさん:2006/10/15(日) 15:13:35
でも正直、あの本に限らずあの手の本に書いてあることって大概単なる
「村の掟」以上の物ではないんだよな。

ルールの背後に納得できる合理性が感じられない単なる俺様ルールを
金払ってまで受け入れる気がしない。
791デフォルトの名無しさん:2006/10/15(日) 17:06:57
>>790
ま、参考にってとこでしょ。
792デフォルトの名無しさん:2006/10/15(日) 18:24:29
独自につくる方がよっぽど俺様ルールなわけで
793デフォルトの名無しさん:2006/10/15(日) 20:54:35
質問させてください。
VB6.0のpictureに計算結果を表示させたり、
C言語でコンソールに結果表示をさせるのは
自動的に順番に隣へ表示するので
結果の表示が重なる事はないですが、VB.NETのpictureに結果を出そうと思えば
座標を指定しなくてはならないので、座標を一つしか指定しなければ
当然同じところへ重なりますよね?

現在、再帰のアルゴリズムのところで順列表示結果をさせたいと考えているのですが
picutreに表示させる方法が思いつきません。繰り返し処理させようとしても
その i がどうしても1に戻ってしまうのです。
だから順列の結果がすべて同じ位置に重なってしまいます。
何かうまい方法はないでしょうか?
794デフォルトの名無しさん:2006/10/15(日) 20:59:04
お願いですから日本語を喋ってください
795デフォルトの名無しさん:2006/10/15(日) 21:04:51
すいません、訂正です。
分かりにくいと思いますので。
>>793の続き
現在、再帰のアルゴリズムを使って順列表示結果をさせたいと考えているのですが
picutreに表示させる方法が思いつきません。

何かうまい方法はないでしょうか?

1 2 3 4
の順列の結果は24個あるわけですがこれが重なってしまうのです。
1234
1243
・・・・って表示してほしいのですけど。
796デフォルトの名無しさん:2006/10/15(日) 21:24:10
picutreって何?
797デフォルトの名無しさん:2006/10/15(日) 21:25:39
pictureboxのことです。
798デフォルトの名無しさん:2006/10/15(日) 21:34:41
今どうやってんのか分からんとアドバイスのしようもない。コードを書け。
799デフォルトの名無しさん:2006/10/15(日) 21:41:54
MDB内のフォーム名を取得するには、どうすれば良いのでしょうか?
親切な方、ヒントだけでも教えてください。
800デフォルトの名無しさん:2006/10/15(日) 21:47:37
>>799
AccessのApplicationオブジェクトからFormオブジェクト抜き出せば良いやん。
801デフォルトの名無しさん:2006/10/15(日) 22:03:27
>>800
ありがとうございます。
802デフォルトの名無しさん:2006/10/15(日) 22:30:31
>>798
以下のようなコードです。全部は書ききれませんので、次レスで。
Const N As Short = 4
Dim p(N) As Integer
Private Sub perm(ByRef i As Integer, ByVal e As PictureBox)
Dim g As Graphics = e.CreateGraphics()
Dim t As Integer
Dim j As Integer
If i < N Then
For j = i To N
t = p(i)
p(i) = p(j)
p(j) = t
perm(i + 1, Picture1)
t = p(i)
p(i) = p(j)
p(j) = t
Next j
Else
For j = 1 To N
Dim centuryFont As Font = New Font("century", 8, FontStyle.Regular)
Dim blackBrush As SolidBrush = New SolidBrush(Color.Black)
g.DrawString(p(j), centuryFont, blackBrush, p(j) * 20, j * Font.Height)
Next j
End If
End Sub
803デフォルトの名無しさん:2006/10/15(日) 22:31:14
Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click
Display(Picture1)
End Sub
Sub Display(ByVal e As PictureBox)
Dim g As Graphics = e.CreateGraphics()
Dim i As Integer
g.Clear(Color.White)
For i = 1 To N
p(i) = i
Next i
perm(1, Picture1)
End Sub
End Class
804デフォルトの名無しさん:2006/10/15(日) 22:32:58
g.DrawString(p(j), centuryFont, blackBrush, p(j) * 20, j * Font.Height)
ここの座標設定は適当です。
とにかくここをどうやってするかが難しいのです。
805デフォルトの名無しさん:2006/10/15(日) 22:58:51
まあ、色々突っ込み所満載なわけだが、とりあえずy座標に関して言えば
クラスメンバにy座標を持って、最初の再帰呼び出しの前でクリアして
1行描画したら1行分足せばいいんじゃないか。
あとx座標も変だぞ。それじゃ全部1234になっちまう。
806デフォルトの名無しさん:2006/10/15(日) 23:02:57
>>805
そうです。だから座標は適当にしているだけなんです。
今までのVBのように
p(i)を一つ一つ並べればきちんといくはずなんですが・・。

クリアというとつまりはどういうことなんでしょうか?
807デフォルトの名無しさん:2006/10/15(日) 23:19:05
Dim p(N) As Integer の下に Dim y As Integer を追加
描画を g.DrawString(p(j), centuryFont, blackBrush, j * 8, y) に修正
その下の Next j の下に y += 12 を追加
Displayメソッドの perm(1, Picture1) の前に y = 0 を追加
808デフォルトの名無しさん:2006/10/15(日) 23:22:44
>>805
y座標はうまくいきました。
ありがとうございます。
809デフォルトの名無しさん:2006/10/15(日) 23:27:02
>>807
丁寧にありがとうございます。
perm(i + 1, Picture1)の前に
k=k+1といれて
g.DrawString(p(j), centuryFont, blackBrush, j * 20, (k - 1) * 10)
とすればできました。x座標もできました。

たぶんあなたが教えてくれたものが正確だと思うので
そのように書き直させてもらいます。
810デフォルトの名無しさん:2006/10/15(日) 23:27:22
っていうか、明らかに適性ないよ悪いけど。
もうコードのここがダメとかあそこを直せばいいという問題じゃなく、全てがダメ。

こんなの初学の学生が宿題で書いたコードとしても酷すぎる。
811デフォルトの名無しさん:2006/10/15(日) 23:31:33
>>810
そうですか。
まあ、また気が向いたら教えてください。
812デフォルトの名無しさん:2006/10/15(日) 23:46:46
クラスの動作確認の方法ってどうやってやるのですか?

ソリューションエクスプローラにクラス追加で下記のクラスを追加してF5を押しても確認が取れません。

よろしくお願いします。

Imports System
Imports System.Net
Imports System.Text

Public Class WebClientGet3
Shared Sub Main()

Dim wc As WebClient = New WebClient()

Dim data As byte() = wc.DownloadData("http://www.google.co.jp/")

Dim enc As Encoding = Encoding.GetEncoding("Shift_JIS")
Dim html As String = enc.GetString(data)

Console.WriteLine(html)
End Sub
End Class
813デフォルトの名無しさん:2006/10/15(日) 23:56:13
クラスの動作確認ってかなり意味不明だな。
取りあえず MSDN かヘルプドキュメントで /main コンパイラオプション の項目を調べれ
814デフォルトの名無しさん:2006/10/16(月) 02:43:01
>>812
お前の作るクラスにはmainというメソッドがあるのか。
いやだな・・・
しかもクラス単位にmainというメソッドしかない作りなんだろ?
そんな作りはやめたほうがいい。
815デフォルトの名無しさん:2006/10/16(月) 10:32:01
プログラムの仕組みでClassを使うやつは、
PGのセンスを疑うな。
クラスとオブジェクトの意味を理解してもらいたい。
816デフォルトの名無しさん:2006/10/16(月) 11:31:15
VB2005でnkf32.DLLを使いたいのですがどのように記述すれば良いのでしょうか?

例えばGetNkfVersion関数を使うとして
Public Declare Function GetNkfVersion Lib "nkf32.dll" (ByVal verStr As String)
等と書いてみたのですが名前空間のステートメントが無効ですとエラーが表示されてしまいます。

817デフォルトの名無しさん:2006/10/16(月) 12:05:41
クラスまたはモジュールのメンバになる位置に書く
818デフォルトの名無しさん:2006/10/16(月) 13:54:36
今日、あるソースのコメント部分に、SpecialThanx 〜〜〜〜〜〜 と書いてるのを見つけた。
ここのスレタイがかいてあったので見に来てみた。

なるほどね。
819デフォルトの名無しさん:2006/10/16(月) 14:37:11
>>817
ありがとうございました。
820デフォルトの名無しさん:2006/10/16(月) 15:59:45
>>802
なんで引数のPictureBoxがeなん?
CreateGraphicsで作ったGraphicsで描いたら、画面重なったら消えるやん?
なんで描画コードを再帰で作るん? 計算だけ再帰にして描画は一発にすべきじゃないの?
そもそも再帰の必要あるの?
再帰とループの中でなんで何度もSolidBrush作るん?
GraphicsやSolidBushをDisposeしないの?
821デフォルトの名無しさん:2006/10/16(月) 18:18:07
>>820
>>793にPG適性が無いから
822デフォルトの名無しさん:2006/10/16(月) 20:23:21
ここで適性無しとか言われてキレたりするやついるけど、正直ほんとに
適性としか言えない何かがあるんだよ。適性無いのに業界入りするのは
自殺行為に等しいから、向いてないと感じたら職種替えたほうがいい。

うちに今年入った素人高卒が、いまバリバリにコーディングしてるその
そばで、情報系大卒3年選手が単なるテスターになってるのを目の当た
りしてほんとそう思うよ。
823デフォルトの名無しさん:2006/10/16(月) 21:39:42
>>812
コンパイルしてエラーで出なければオkでしょw
824デフォルトの名無しさん:2006/10/16(月) 21:51:34
>>823
品質無視ならそれでもいいんじゃね?

その発想は、大概UIも一貫性がなかったり、仕様も捻くれてて直感的に使えないんだよな。
825デフォルトの名無しさん:2006/10/16(月) 22:10:18
質問のしかたはともかく、質問者のレベルとか、適正や職種なんてこのスレとは無関係。
質問者にも理解できるような適切な解答をするべきだろ?
それができないで何を偉そうに威張ってるんだい?その辺のガキと変わらないぞ。
826デフォルトの名無しさん:2006/10/16(月) 22:11:52
するべきって何だよそれ。。。
827デフォルトの名無しさん:2006/10/16(月) 22:21:17
解答のしかたはともかく、解答者のレベルとか、適正や職種なんてこのス
レとは無関係。解答者にも理解できるような適切な質問をするべきだろ?
828デフォルトの名無しさん:2006/10/16(月) 22:32:01
>>827
それだと、解答者も質問者とたいして変わらないのだから・・・と言ってるように聞こえる。
829デフォルトの名無しさん:2006/10/16(月) 22:35:21
>>828
ま、知ってるか知らないかだけで、質問するやつも解答するやつも同レベルってことだ。

830デフォルトの名無しさん:2006/10/16(月) 23:35:33
適切な回答も理解できないあほもいるんです><
831デフォルトの名無しさん:2006/10/17(火) 04:43:58
適切な質問も理解できないあほもいるんです><
832デフォルトの名無しさん:2006/10/17(火) 05:19:31
適切なスレも理解できないあほもいるんです><
833デフォルトの名無しさん:2006/10/17(火) 12:15:10
VB.NET2005 側で構造体を確保して、その確保したエリアを
VC.NETで作成したDLL側で操作したいんですが、一般的な手法
ってどんな感じになるんでしょうか?

例えば、VB.NET2005側で、構造体の配列を確保して、それを
DLL側でソートしたり、VB.NET2005側で確保したエリアに
DLL側でファイルからデータを読み込んで値をセットしたりと
いった事がやりたいんですが。

UNIX環境のCでしかプログラムを作ったことが無いので、
VB.NET2005と、VC.NETで作成したDLLの間のデータの受渡し方法や、
VB.NET2005側がどのような形でエリア(メモリ)を確保しているのかや、
VB.NET2005側の変数の型と、確保されたエリアの関係(サイズや、アドレス)や、
VB.NET2005側の変数の型と、確保されたエリアの内部コード(文字列型の場合)、
VB.NET2005側の構造体と、確保されたエリアの関係(サイズや、アドレス)等が
良く判りません。

かなり、抽象的な質問で申し訳ないのですが、これらに関する情報や、書籍など
ありましたら、紹介して頂けないでしょうか。
834デフォルトの名無しさん:2006/10/17(火) 12:29:28
>>833
P/Invokeという単語をMSDNで調べるかググる。
835833:2006/10/17(火) 14:05:50
>>834
THX。
マーシャリングとか、アンマネージとか、なにやら面妖なキーワードが
沢山出て来て、戸惑っています。
Windows(.NET環境)ってなんか凄いですね。
ともあれ、ようやく欲しい情報にたどり着くことができました。
ありがとうございます。
836デフォルトの名無しさん:2006/10/17(火) 22:09:33
というかまず VC.NET という謎の存在を解決する必要があるな
837デフォルトの名無しさん:2006/10/17(火) 23:02:43
.NET なんてただの飾りです
エロイ人には
838デフォルトの名無しさん:2006/10/18(水) 00:33:57
おい、みんな〜

例外キャッチは、Exception型で全部済ませてるよな?
839デフォルトの名無しさん:2006/10/18(水) 00:49:16
キャッチなんてごく一部しか書かない。
840デフォルトの名無しさん:2006/10/18(水) 00:59:14
まじで?
とりあえず全部のコードTryCatchで括って、Exceptionで受ける
ってみんな書いてないのか・・・
841デフォルトの名無しさん:2006/10/18(水) 01:06:54
ごく一部ってのは全プログラムコードで見たらごく一部のコードという意味だよ。
全部のコードってどういう意味?
一番外側的な(あるいはそれに近い)意味ならそういう感じになるのは分かるが。
あとは個別に処理してしまう場合だけな。
842デフォルトの名無しさん:2006/10/18(水) 01:48:14
俺は基本的に関数は全てtry〜catch〜finally〜。
JavaやPHP5では基本だろ。
843デフォルトの名無しさん:2006/10/18(水) 02:03:20
あほだね
844デフォルトの名無しさん:2006/10/18(水) 02:05:24
全ての関数で基本的にcatchも書くって、
そのcatch内でいったい何をしてるんよ?
finallyでいったい何してるんよ?
# まあ finallyの方はまだいいにしても
845デフォルトの名無しさん:2006/10/18(水) 02:14:46
想定できない例外はこれでキャッチすればいいんでないの?
http://www.atmarkit.co.jp/fdotnet/dotnettips/320appexception/appexception.html
846デフォルトの名無しさん:2006/10/18(水) 02:21:40
うんそうだね
847デフォルトの名無しさん:2006/10/18(水) 02:56:40
>>845
なんだよ、これ。
こんなの思いつかねーよ
848デフォルトの名無しさん:2006/10/18(水) 03:42:47
思いつくんじゃない、見つけるんだ。
849デフォルトの名無しさん:2006/10/18(水) 04:52:55
びっくりさせるなよー
ThreadExceptionイベントをハンドルして処理してるのは俺だけかと思ったよ、まじで。
お前らの常識はほんとあてにならないな。
850デフォルトの名無しさん:2006/10/18(水) 07:57:17
どんな常識かね?
851デフォルトの名無しさん:2006/10/18(水) 13:36:39
>>844
catchで例外の詳細をログに落としてる。
finallyでオブジェクトの開放。

普通じゃん。
852デフォルトの名無しさん:2006/10/18(水) 13:52:48
全メソッドで個別にログ出力かよ
853デフォルトの名無しさん:2006/10/18(水) 13:55:22
でエラー状況はどうやって返してるんだ?
まさか再スローじゃないだろ?
854デフォルトの名無しさん:2006/10/18(水) 14:25:18
>>852
全メソッドで個別ログを取らないと、詳細なログにならない。
いらなくなったら、ログるレベルを変えるだけ。

>>853
最上位がしっかり処理してるなら、
別に再スローでも良いんじゃない?
855デフォルトの名無しさん:2006/10/18(水) 15:08:48
全メソッドでログ出力&再スローってありえんだろ。
856デフォルトの名無しさん:2006/10/18(水) 15:11:28
catchされたもののログだろ?
全然ありえるじゃん。
857デフォルトの名無しさん:2006/10/18(水) 15:13:17
メソッド呼び出しの深さ分同じ例外のログ出力するんかい!
あと詳細ログ出せないっていうけど、
各メソッドで出すことでどれだけ詳細度があげられるんだ?
全メソッドでそれはありえんだろ。
858デフォルトの名無しさん:2006/10/18(水) 16:39:00
>>857
どのイベントから呼び出したどのメソッドの中にあるメソッドの…
と、経路と部位の特定が簡単になるのが、ダメなのか?
ユーザーが言うバグにも早く対応ができるし。

つーか、何に対してそこまでの否定を?
859デフォルトの名無しさん:2006/10/18(水) 16:39:16
すいません、VB.NET(2003)で質問です。
フォーム上にTextBoxが20個配置されていて、
例えばそれらにTB_1, TB_2, …TB_20 というようなコントロール名がついているとします。
これらのTextBoxをForループなどで一律に処理する方法はあるでしょうか。

具体的なイメージとしては
For i = 1 To 20
 ["TB_" & CStr(i) をコントロール名に持つTextBox].Text = data(i)
Next
みたいなことができるといいのですが。
要はコントロール名からオブジェクトを取得できればいいわけなんですけれど。
860デフォルトの名無しさん:2006/10/18(水) 17:19:22
>>859
Controlsプロパティでググれ
861デフォルトの名無しさん:2006/10/18(水) 17:25:02
>>858
StackTraceとか。
そもそもその例外を外に出すのか、内部で処理するのか、どちらが正しいってのはその関数の責務の問題になるし。
862デフォルトの名無しさん:2006/10/18(水) 17:57:38
>>861
StackTraceって>>858みたいな使い方できたっけだぜ?

あと、例外の処理は関数の責務というより、
プロジェクト全体、退いては会社などのポリシーによって統一されなければいけないもんだぜ。
派遣がたまに来て、ルールぶち壊す奴がいるが、
そういうのが一番アスホールになるんだべ?
863デフォルトの名無しさん:2006/10/18(水) 18:12:51
スタックトレースでほぼ見えるだろ。
全メソッドでそういうことするのはおかしいて言ってる。
.NETでの例外処理において、やってはいけないこと、に挙げられてるよ。
864デフォルトの名無しさん:2006/10/18(水) 18:14:35
>>863
誰が言ってるの?
何をやってはいけないの?
865デフォルトの名無しさん:2006/10/18(水) 18:17:33
全メソッドでException型でキャッチして再スローするようなこと。
866デフォルトの名無しさん:2006/10/18(水) 18:20:44
>>865
まあ、まずはソースだ。
MSが言ってるレベルだと信頼は無いからな。

大体、本当にやってはいけないことなら、コーディングレベルでエラーが出るだろ。
867デフォルトの名無しさん:2006/10/18(水) 18:23:09
ソース出せ
ああ、ベンダのいうことは信用できないから駄目だよ
868デフォルトの名無しさん:2006/10/18(水) 18:24:05
だったら.NETなんかつかわなけりゃいい
869デフォルトの名無しさん:2006/10/18(水) 18:26:53
例外のスローや再スローが非常に高コストなのは
常識だと思ってた。
ていうか、全メソッドでやるなら例外なんて仕組みいらんだろ。
870デフォルトの名無しさん:2006/10/18(水) 18:27:56
EUCコードのデータを取り込んで表示させるにはどうすればよろしいのでしょうか?
そのままだと文字化けしてしまうのでSJISやUTFに変換しないと駄目でしょうか?
871デフォルトの名無しさん:2006/10/18(水) 18:30:48
ゲームでも作ってるんじゃないからコストなんか考えない。
バグが出ない、修正やカスタマイズがし易い、何か起こったとき直ぐに場所と原因が突きとめられる。
VB.NETで重要なのはこの3点だけ。

メモリが足りないのなら、メモリを積め。
遅いのなら、速いマシンを買え。

コストをシビアに考えるなら、VBなんか使わねーよ
872デフォルトの名無しさん:2006/10/18(水) 18:30:58
独立したスレッド等、処理を断続させる場合だけ、TryCatch
それ以外は、イベントハンドルとして処理。
これでいいだろ。

全メソッドでTryCatchなんてありえん。
初心者と技術のない職場のポリシーだけだ。

873デフォルトの名無しさん:2006/10/18(水) 18:32:33
>>871
それは単なるお前の自論だろ。
874デフォルトの名無しさん:2006/10/18(水) 18:34:56
>>873
IBMで教わった持論なんだがな。
875デフォルトの名無しさん:2006/10/18(水) 18:36:02
>>872
VB6のときは、イベント内のみにしかイベントハンドルを書かなかった口か?
876デフォルトの名無しさん:2006/10/18(水) 18:38:51
>>871
try〜catch〜finally〜内にバグがないとも限らない。
一元管理されるほうが、どう考えても効率いいし、バグが入りにくい。
877デフォルトの名無しさん:2006/10/18(水) 18:40:02
>>875
どう解釈しても意味不明だわな


878デフォルトの名無しさん:2006/10/18(水) 18:44:20
グダグダだな
879デフォルトの名無しさん:2006/10/18(水) 18:46:36
>>876
それはリスクポリシーの取り方だろ。
可読性の良いコードなら、catchやfinallyにバグが入り込む可能性は低い。
try内の問題が直ぐ判別できるから尚良い。

つーか、1メソッド、try〜catch〜finally〜含めても、
コードなんて20行も無いだろ?
catch内でも2〜3行なもんだろ?
880デフォルトの名無しさん:2006/10/18(水) 18:47:08
>>870
ここ読んでみたら?
ttp://dobon.net/vb/bbs/log3-4/1733.html
881デフォルトの名無しさん:2006/10/18(水) 18:59:37
お前有り得ない例外処理が反乱してるのを見たことないのか?
882デフォルトの名無しさん:2006/10/18(水) 19:02:07
>>881
無いね。
危ない例外は完全に殺してしまうし、
例外処理用にかなりこなれた関数も用意してるし。
883デフォルトの名無しさん:2006/10/18(水) 19:10:21
>>879
>コードなんて20行も無いだろ?
そうとは限らないだろ・・・どんだけ規模の小さいプログラムよ
884デフォルトの名無しさん:2006/10/18(水) 19:11:34
>>882
例外処理用に関数用意するなら、

最初から、ThreadExceptionイベントをハンドルして処理するだけでいいだろが
885デフォルトの名無しさん:2006/10/18(水) 19:11:57
>>883
1メソッド20行にも納められないのかよ。
どんだけ、汚いプログラムだよw
886デフォルトの名無しさん:2006/10/18(水) 19:13:34
>>884
趣旨が間違えているぞ。
運用に入ってからでも、ユーザーに気付かれず、
簡単に且つ素早く、エラーを起こしている箇所を特定しなければならないんだよ。
887デフォルトの名無しさん:2006/10/18(水) 19:21:09
>>879
>可読性の良いコードなら、catchやfinallyにバグが入り込む可能性は低い。
可読性は関係ないだろー
そこにバグがあると動作中のバグがどこにあるのかわからないことだってある。
888デフォルトの名無しさん:2006/10/18(水) 19:25:03
>>886
ThreadExceptionイベントで、
簡単に且つ素早く、エラーを起こしている箇所を特定できない状況をおしえてくれよ。

そもそもユーザーに気づかれない機能って何だよ。
889デフォルトの名無しさん:2006/10/18(水) 19:26:55
つか、スタックトレースを知らないってオチはないよな…
890デフォルトの名無しさん:2006/10/18(水) 19:29:05
.NET the final frontier.
891デフォルトの名無しさん:2006/10/18(水) 19:31:54
ThreadExceptionイベントで取れるわけだが・・・
892デフォルトの名無しさん:2006/10/18(水) 19:38:11
スタックトレースは厳密な経路ではない
893デフォルトの名無しさん:2006/10/18(水) 19:42:18
結局スタックとレース以外でcatchやfinallyは必要ないってオチですか?


894デフォルトの名無しさん:2006/10/18(水) 19:45:00
厳密な経路ってどんなん?
スタックトレースでは困るほど異なるもんなのか?
895デフォルトの名無しさん:2006/10/18(水) 19:46:30
そんなに場所特定したいならpbd付けとけ
896デフォルトの名無しさん:2006/10/18(水) 19:47:08
pdbだorz
897デフォルトの名無しさん:2006/10/18(水) 19:47:53
全メソッドでExceptionをキャッチ
経路の詳細情報をログ出力
そして再スローって
具体的にどんなコードになるんだ?
898デフォルトの名無しさん:2006/10/18(水) 19:48:36
スタックトレースってReleaseとDebugで挙動が異なるんじゃなかった?
899デフォルトの名無しさん:2006/10/18(水) 19:50:41
ソースのパスと行番号が出るだけ
900デフォルトの名無しさん:2006/10/18(水) 19:50:49
>>897
あまりいじりたくないコードになりそうだなw
901デフォルトの名無しさん:2006/10/18(水) 19:51:24
どこで例外が起きてるかそこまでして知らなくてはならないということは、
どうしようもないパゲッティで、どっちらけなコードではないか?
902デフォルトの名無しさん:2006/10/18(水) 19:56:15
>>901
お前らのコードよりも見やすい自信はある。
但し、サブルーチンが多いので、奥まで入れてグチュグチュする必要はある。
903デフォルトの名無しさん:2006/10/18(水) 19:59:15
スパゲッティじゃんw
904デフォルトの名無しさん:2006/10/18(水) 20:13:17
>>903
なんだ?
お前はサブルーチンのないコードが正当だというのか?
普通、コメントや改行、宣言を除いて、メソッドで処理に書ける行は5〜10行だぞ。
それ以上長くなると、可読性のないコードになる。
それだと、一つ一つサブルーチンにしてしまった方が良い。
905デフォルトの名無しさん:2006/10/18(水) 20:16:00
厳密もなにも、メソッド内で得れる経路情報なんて、
ThreadExceptionイベントでも取得できますよ。

それにさ、メソッドごとに特化した例外処理なんて入れてたら、
それこそ、そこにまでバグが潜む可能性があるんだからさ、
決まり文句かくならThreadExceptionイベントで十分だろ。
906デフォルトの名無しさん:2006/10/18(水) 20:18:54
>>904
つまり、10000ステップのソースなら、
1000〜2000メソッドあるってことですね。
907デフォルトの名無しさん:2006/10/18(水) 20:20:29
>>906
つ共通化
908デフォルトの名無しさん:2006/10/18(水) 20:20:59
>>905
メソッド内の例外処理は全て同じ。
909デフォルトの名無しさん:2006/10/18(水) 20:22:52
行数が少ないほど可読性が高いと思ってるのか?
DBの正規化でも、同じことが言えるだろ?

簡単な電卓プログラムじゃないんだから。
910デフォルトの名無しさん:2006/10/18(水) 20:25:12
>>907
お前のステップ換算は共通化する前のソースなのか?

>>908
全て同じなのに、ThreadExceptionイベントでダメな理由は何?

911デフォルトの名無しさん:2006/10/18(水) 20:26:39
ま、どうでもいいけど、
たった1000ステップに100も200もメソッド作らんね。
912デフォルトの名無しさん:2006/10/18(水) 20:28:34
>>909
1024*768で、
一画面に収まるコードはマナーだろ。

>>910
関数化も共通化も終えての行数だ。
ステップ数じゃない。
913デフォルトの名無しさん:2006/10/18(水) 20:32:15
ここにいる連中はステップ数と行数の違いもわからないのか?

マジあきれた。
914デフォルトの名無しさん:2006/10/18(水) 20:34:12
一度その全て同じなコードを書いてみてくれ。
915デフォルトの名無しさん:2006/10/18(水) 20:36:10
その全て同じなコードが処理行数5〜10行の全てのメソッドに書いてあるのか?
916デフォルトの名無しさん:2006/10/18(水) 20:39:04
で、関数の数はいくつなん?
917デフォルトの名無しさん:2006/10/18(水) 20:39:36
>>915
全て同じなコード自体が1行のコードだがな
918デフォルトの名無しさん:2006/10/18(水) 20:40:38
>>916
言うほど多くない。
クラス設計できてたら大したことにならない。
919デフォルトの名無しさん:2006/10/18(水) 20:42:32
練習で作った電卓プログラムですってオチですか?
920デフォルトの名無しさん:2006/10/18(水) 20:43:02
なんかわけのわからんことで揉めてるな
正直、例外のトラップを一元化した方が好ましいって言う奴初めて見たよw
それ実践を踏まえて言ってるんだろうか。

それって、それこそN-BASICの時代のON ERROR GOTOじゃんw

いやそれならまだしも、その飛び先で例外オブジェクトをパースしないといけないんでしょ?
それじゃSDKのウィンドウプロシージャと一緒じゃんw
921デフォルトの名無しさん:2006/10/18(水) 20:44:24
俺の場合は最終的な例外処理はThreadExceptionとかの共通ハンドラ。
まあここではユーザ用メッセージの表示とログ出力位だが。
メインなロジック部分は、ロジックの最上位辺りで自動補捉してログ出力、必要に応じてラップその他の処理。
あとは個別に特に例外処理が必要な箇所だけキャッチして処理。

他の部分はキャッチなし。finallyのみ。
922デフォルトの名無しさん:2006/10/18(水) 20:45:10
ちゃんと.NETが提供してる機能があるんだから、
何も知らない初心者はすっこんでろ。
923デフォルトの名無しさん:2006/10/18(水) 20:48:28
一行でどうやって再スローまでやるんだ?
しかもExceptionをキャッチしてだろ?
全然特化してない例外処理しか出来ないのに、
これじゃ各メソッドでやる意味があるように見えないんだが…
924デフォルトの名無しさん:2006/10/18(水) 20:56:43
>>923
つ関数
925デフォルトの名無しさん:2006/10/18(水) 20:59:12
単にThreadExceptionのハンドラを使ったことがないから、よく知らないってオチでいいよ。
926デフォルトの名無しさん:2006/10/18(水) 21:01:20
Application.ThreadExceptionイベントスゲーウヒョー
927デフォルトの名無しさん:2006/10/18(水) 21:01:52
928デフォルトの名無しさん:2006/10/18(水) 21:27:44
           ∩_ 
          〈〈〈 ヽ
          〈⊃   }
  ∩___∩  |   |
  | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ < 次いこうぜ〜
 彡、   |∪|  /
/ __  ヽノ /
(___)   /
929デフォルトの名無しさん:2006/10/18(水) 21:41:33
そんな事したらスタックトレース消えるだろうがよ。
それに変なメソッドが例外のソースになるだろうがよ。

お、ひょっとしてそれでスタックトレースみれてないのか?
もし仮にそうだとしたらあほとしかいいようがない。
930デフォルトの名無しさん:2006/10/18(水) 21:45:39
>>920個別に処理してしまう例外はその場でキャッチするに決まってるだろ。
それ以外の例外だよ、まとめて処理するのは。
全メソッドでExceptionをキャッチするなら、
同じようにパースが必要になるんじゃないのか?
931デフォルトの名無しさん:2006/10/18(水) 21:56:07
もういいよ、既に決着はついてる。
932デフォルトの名無しさん:2006/10/18(水) 22:01:34
>>920はあふぉうだから相手にするな
933デフォルトの名無しさん:2006/10/18(水) 22:03:46
>>930
それ以外って何だよw

いや、@ITの記事にも書いてあった気がするが
想定外の例外が起きた場合の「保険」的な意義は大いにあるよ。

それにそういう想定外の例外の場合、いきなりあの無愛想なデフォの例外のダイアログが
出るより、別の何らかの表示をするようにした方がユーザーの心証もいいしね。

逆に言えばそれ以外の価値は一切認められないよ。
934デフォルトの名無しさん:2006/10/18(水) 22:08:21
だからさー
ThreadExceptionイベントをハンドルすればいいだけだろ。

どうしてもメソッド内で処理しないと困る例外だけ try〜catch〜を使えばOKだろ。
935デフォルトの名無しさん:2006/10/18(水) 22:09:52
そういうのを逆立ちした発想っていうんだよ
936デフォルトの名無しさん:2006/10/18(水) 22:12:02
じゃあさ、最初から出てる全メソッドでExceptionキャッチってなんなのよ?
全部想定されるException型なのかよ。
全メソッドで想定されるExceptionがあるのかよ。
多くのメソッドでは想定される例外なんてそうないだろに。
937デフォルトの名無しさん:2006/10/18(水) 22:13:37
誰も全ての例外を最上位でやるなんていってないのに。
938デフォルトの名無しさん:2006/10/18(水) 22:18:18
まずさ、
メソッド内で取得できるExceptionは、
Application.ThreadExceptionのイベントハンドラでも取得できるというのは解ってるよな?

それで、わざわざ全メソッドに同じ例外処理の内容を書く理由はあるのか?

939デフォルトの名無しさん:2006/10/18(水) 22:20:30
ネタかと思ったけど本当にパーなのね。
だから>>930の「それ以外」って何のこと?w
具体的に挙げてみ。

つーか、だいたい何のために構造化例外処理なんてものを導入した経緯が
あると思ってるんだ
940デフォルトの名無しさん:2006/10/18(水) 22:25:15
「それ以外」
同じ例外処理のことだろ?
941デフォルトの名無しさん:2006/10/18(水) 22:31:17
IDないからぐずぐずになってるスレ
942デフォルトの名無しさん:2006/10/18(水) 22:35:48
コテハンつけるかもしくはアンカー打ってくれ。
何がなんだかさっぱりわからんw
943デフォルトの名無しさん:2006/10/18(水) 22:35:52
だめだわけわかんね。
構造化例外は、全メソッドでException型をキャッチすることで何か意味があるとでも?
個別に処理してしまえる例外以外を具体的にって
いったいどういえと。
944デフォルトの名無しさん:2006/10/18(水) 22:37:02
全メソッドで全例外をキャッチするなら
構造化例外なんていらん
945デフォルトの名無しさん:2006/10/18(水) 22:40:05
>>939お前が個別に処理しなきゃならない例外を具体的に挙げろよ。
それで処理してしまえない残ったもの全部だよ。

パーとかいってんだからお前があげろ
ついでに全メソッドで例外をキャッチして再スローするメリットもな
946デフォルトの名無しさん:2006/10/18(水) 22:42:21
あと、個別にキャッチしてする例外処理は全部同じ処理だぜ
947デフォルトの名無しさん:2006/10/18(水) 22:45:13
意地張って、表現の仕方にケチつけるくらいしか出来ないんだよ。
実際まともな解答がひとつも無い。
948デフォルトの名無しさん:2006/10/18(水) 22:47:14
949デフォルトの名無しさん:2006/10/18(水) 22:49:06
まあ愚か者は経験からしか学ばないわけでw
いや経験から本当に学んでいるかどうかも怪しいわけだが。

構造化例外処理の意義がどこにあるか?
それはThreadExceptionで一元的にトラップするように書いた自分のコードを
一年後にメンテしてみればたぶんよくわかるよ。

まあそれでわからなきゃ本当にパーだわ。
950デフォルトの名無しさん:2006/10/18(水) 22:50:43
>>949
根拠も具体例もないただの自論だな
951デフォルトの名無しさん:2006/10/18(水) 22:53:54
誰も全て一元化するなんていってない

いいから全メソッドでExceptionをキャッチして以下省略のメリット書けや。
構造化例外はそのためにあるんだろ?
おかけでメンテも楽になるんだろ?
お前の経験でこんなメリットてのを書けよ
952デフォルトの名無しさん:2006/10/18(水) 22:53:58
>>950
トンデモさんにとってはアインシュタインの相対性理論も「根拠のないただの持論」らしいからなw
まともなプログラマやソフトウエア工学の学者で構造化例外処理を否定してる奴が
一人でもいたら教えてくれよ。
953デフォルトの名無しさん:2006/10/18(水) 22:54:56
ついに構造化例外処理を否定してることになったぜ。
954デフォルトの名無しさん:2006/10/18(水) 22:56:23
>>951
何か勘違いしているようだが、メソッド全体をTry〜ブロックに入れろ、
なんてトンデモをいっている奴は一人もいないと思うぞw

ただThreadExceptionイベントなんぞには保険的な意味合いしかないと
言っている奴がいるだけだ。
955デフォルトの名無しさん:2006/10/18(水) 22:58:03
>>952
お前は馬鹿か?

「全メソッドに同じ例外処理の内容を書く理由はあるのか? 」
この質問に、根拠のないただの持論で誰が納得するんだ?

メリデリをしっかり挙げてくれないとお話にならないだろ。
956デフォルトの名無しさん:2006/10/18(水) 22:58:39
>>953
自分の言っていることがわからないんだから病膏肓だねw
ThreadExceptionイベントなるものに保険以上の意味を認めるってことは
構造化例外処理を否定しているってことだ。

だから>>930の「それ以外」とは何かと聞いているだろう
957デフォルトの名無しさん:2006/10/18(水) 23:01:56
例外トラップとかはAOPしたいんだけど、catchの方はEventに投げるとしてもFinallyの方がやり様がないよね
958デフォルトの名無しさん:2006/10/18(水) 23:02:02
構造化例外処理といいながら、全メソッドに関数呼ぶ同じ1行ですか?ワラカシテクレルゼ
959デフォルトの名無しさん:2006/10/18(水) 23:05:04
>ThreadExceptionイベントなるものに保険以上の意味を認めるってことは
>構造化例外処理を否定しているってことだ。

面白いこと言うんだな。

Try-Catch構文だと、例外を正しくトラップできないケースは多々あるのに対して、
ThreadExceptionイベントは確実にトラップできる。 これは事実だ。
960デフォルトの名無しさん:2006/10/18(水) 23:06:08
>>955
プログラミングの基本からわかってないようだから言っても無駄だと思うけど、
仮に例外処理に「共通の処理」があるとしたら普通はそれ自体をメソッドにして
「明示的に」それを呼び出すコードを書くんだよ。

馬鹿は自分の記憶力があてにならない、という事実すら忘れるんだろうけど
コードを書いたときには「ここで例外が発生した場合を俺は想定しているぞ。その場合は
ThreadExceptionのハンドラに飛んで・・・・・・」と思っていてもそんなことは
人は忘れてしまう。

まして最初からそんなこと知らない他人はどうなるんだよ。
961デフォルトの名無しさん:2006/10/18(水) 23:07:07
だからさ、ユーザ用のつうちをThreadExceptionでやるだけだろが。
それだけで構造化例外処理の意味がなくなるのかよ。そんなに言うならお前の言葉で構造化例外のメリットを説明しろ。
ついでにThreadExceptionを上記の様に使うだけで
構造化例外を否定してることになるという具体的にな説明もな
962デフォルトの名無しさん:2006/10/18(水) 23:07:22
なんでもかんでもCatchする方がよっぽど構造化例外処理を否定してると思うけどな
963デフォルトの名無しさん:2006/10/18(水) 23:09:33
>>960
> コードを書いたときには「ここで例外が発生した場合を俺は想定しているぞ。その場合は
> ThreadExceptionのハンドラに飛んで・・・・・・」と思っていてもそんなことは
> 人は忘れてしまう。
アホ。例外を想定してないからThreadExceptionで受けるんだよ。
想定してたらそれに応じた型の例外をその場でCatchして処理するわ。
おまえ全然分かってないな。
964デフォルトの名無しさん:2006/10/18(水) 23:11:09
全メソッドで共通なら全部書かなくても同じだろ
ついでだが、業務で開発とかだとまとめて一ヶ所で処理はやむをえないことも多い
965デフォルトの名無しさん:2006/10/18(水) 23:11:47
>>963
何を的外れな仮の話をしているんだい?
それが全メソッドに同じ例外処理を書く理由ですか?
966デフォルトの名無しさん:2006/10/18(水) 23:12:24
↑アンカーまちがい、>>960
967デフォルトの名無しさん:2006/10/18(水) 23:12:49
>>963
それなら俺が>>933で書いたことを否定する理由はないはずだが。
ま、馬鹿は自分の言っていることも人の言っていることもよくわからないんだねw
968デフォルトの名無しさん:2006/10/18(水) 23:13:22
見事に質問が埋もれてるな。

>>870
System.Text 名前空間の Encoding クラスを使って、
Encoding.GetString 使ったり StreamReader の引数に渡したりする。
969デフォルトの名無しさん:2006/10/18(水) 23:13:50
全メソッドにtrycatch書くってひとは、悪いけどトリップつけてくんない?
どれが馬鹿か分からなくって困るから
970デフォルトの名無しさん:2006/10/18(水) 23:15:17
>>969
だからそんな奴は最初からいません。
971デフォルトの名無しさん:2006/10/18(水) 23:17:18
972デフォルトの名無しさん:2006/10/18(水) 23:18:52
>>960
> コードを書いたときには「ここで例外が発生した場合を俺は想定しているぞ。その場合は
> ThreadExceptionのハンドラに飛んで・・・・・・」と思っていてもそんなことは
> 人は忘れてしまう。
意識する必要がないだろ。良く考えろよ。
全く同じ決まった処理なら、ThreadExceptionのイベントハンドラとして一箇所に書いてあるのだから意識不要。
そのメソッド内でどうしても必要なものだけ書けばいいんだから、よっぽど効率いいだろ?
973デフォルトの名無しさん:2006/10/18(水) 23:21:10
>>972
話の通じない馬鹿だなw
もういいよ一生やってな別に止めないし
974デフォルトの名無しさん:2006/10/18(水) 23:23:17
全メソッドにtrycatch書くってひとは、
具体的なメリデリが書けません。自論です。 ってオチですな。
975デフォルトの名無しさん:2006/10/18(水) 23:25:53
要は全メソッドでCatchしないと正体不明の例外が処理できなかった時代の
手法をそのまま引きずってるだけじゃないの?
FrameWorkがそんなことしなくてもいいように設計されてるのに。
976デフォルトの名無しさん:2006/10/18(水) 23:26:02
>>973
安心しろ、誰にも通じてない。
977デフォルトの名無しさん:2006/10/18(水) 23:26:03
いや、書いてはある。
ただ君に理解できないだけだ。
そういえばトンデモさんの常套句もそうだ。

アインタインは間違っているに違いない!
この俺様に理解できないのだから!
978デフォルトの名無しさん:2006/10/18(水) 23:27:14
せめて1人くらいには通じる話をしてくださいです〜
979デフォルトの名無しさん:2006/10/18(水) 23:29:03
>>977お前もう痛すぎるから
980デフォルトの名無しさん:2006/10/18(水) 23:34:57
関係ないけど、相対性理論の間違いは日本人によって正されつつある。
http://www.ni.bekkoame.ne.jp/tsuneizumi/
これくらいは解ってていってるんだろ?
981デフォルトの名無しさん:2006/10/18(水) 23:35:26
あなたにアインタイン
982デフォルトの名無しさん:2006/10/18(水) 23:36:20
AOPが一般化してるときになに一転だ。
全メソッドに同じ処理を書くべしって
983969:2006/10/18(水) 23:39:52
だからtry〜catchを前メソッドに書くのが良いんだよ。
ThreadException知らないやつでも、明示的に処理してるのが分かる。
チームプログラミングは、上のレベルであわせるのではなく、
VB.NET初めて3日のヤツでも理解できるように書いてやるんだよ。
いつまでも一定レベル以上の人間じゃないとメンテできないソースなんて、
人的コストが掛かりすぎてたまらんわ。
お前らみたいな優秀なやつらをメンテなんかで使いたくないんだぜ?
984デフォルトの名無しさん:2006/10/18(水) 23:42:16
つまり低レベルの人間に合わせた低レベルの手法ということですね。納得。
985デフォルトの名無しさん:2006/10/18(水) 23:45:21
明確にだめだと言われてるやりかただけどな。
て言うか、未だにその共通処理でなにやるのか分からん
986985:2006/10/18(水) 23:46:37
>>984
お前らみたいに視野の狭い連中は物作りさせるしか使い道が無いのよ。
987デフォルトの名無しさん:2006/10/18(水) 23:50:23
まあいかにもVB6でOn Error ResumeNextとか多用してたような奴が
考えそうなことなんだけどね
988983:2006/10/18(水) 23:52:42

\               U         /
  \             U        /
             / ̄ ̄ ヽ,
            /        ',      /     _/\/\/\/|_
    \    ノ//, {0}  /¨`ヽ {0} ,ミヽ    /     \           /
     \ / く l   ヽ._.ノ   ', ゝ \       <   バーカ   >
     / /⌒ リ   `ー'′   ' ⌒\ \    /          \
     (   ̄ ̄⌒          ⌒ ̄ _)    ̄|/\/\/\/ ̄
      ` ̄ ̄`ヽ           /´ ̄
           |            |  
  −−− ‐   ノ           |
          /            ノ        −−−−
         /           ∠_
  −−   |    f\      ノ     ̄`丶.
        |    |  ヽ__ノー─-- 、_   )    − _
.        |  |            /  /
         | |          ,'  /
    /  /  ノ           |   ,'    \
      /   /             |  /      \
   /_ノ /              ,ノ 〈           \
    (  〈              ヽ.__ \        \
     ヽ._>              \__)


989989:2006/10/18(水) 23:53:30
          /            ノ        −−−−
         /           ∠_
  −−   |    f\      ノ     ̄`丶.
        |    |  ヽ__ノー─-- 、_   )    − _
.        |  |            /  /
990デフォルトの名無しさん:2006/10/18(水) 23:54:26
>>983
だから、お前が言ってるのは、自論と、職場の規約や都合だけだろ・・・
991デフォルトの名無しさん:2006/10/18(水) 23:56:52
お前ら、俺の言うことはアインシユタインの言うことだぞ
理解できないやつはトンデモなんだぞ
992デフォルトの名無しさん:2006/10/18(水) 23:58:14
>>990
俺の職場のルールが正しければ、お前らが何て言おうと関係ない。
俺の会社はお前らみたいな零細とは違うんだからなqq
993デフォルトの名無しさん:2006/10/18(水) 23:58:20
とりあえずきっかけを作った>>838が悪いってことで終わりにしようぜ。スレも終わるし。
誰か次スレプリーズ。
994デフォルトの名無しさん:2006/10/18(水) 23:59:56
もう震度毛よ
995デフォルトの名無しさん:2006/10/19(木) 00:01:33
素朴に疑問だ。ホントに全メソッドで全例外キャッチ?
996838:2006/10/19(木) 00:06:33
盛り上がったなwww
997デフォルトの名無しさん:2006/10/19(木) 00:15:45
100ならVB.NETはメソッド内でTry〜Catch〜Finally〜が正しい。
998デフォルトの名無しさん:2006/10/19(木) 00:25:29
コレでまたひとつ新しいトリビアが誕生した
999デフォルトの名無しさん:2006/10/19(木) 00:29:38
今更だけどメリデリって何ですか?
1000デフォルトの名無しさん:2006/10/19(木) 00:29:42
1000なら伊東怜と生でセックスできる
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。