VB.NET質問スレ (Part13)

このエントリーをはてなブックマークに追加
1最凶VB厨房
VB.NETの質問全般です

過去スレ
VB.NET質問スレ (Part12)
http://pc8.2ch.net/test/read.cgi/tech/1121600038/
VB.NET質問スレ (Part11)
http://pc8.2ch.net/test/read.cgi/tech/1114217190/
VB.NET質問スレ (Part10)
http://pc5.2ch.net/test/read.cgi/tech/1109343613/
VB.NET質問スレ (Part9)
http://pc5.2ch.net/test/read.cgi/tech/1106577850/
VB.NET質問スレ (Part8)
http://pc5.2ch.net/test/read.cgi/tech/1102512868/
VB.NET質問スレ (Part7)
http://pc5.2ch.net/test/read.cgi/tech/1096683017/
VB.NET質問スレ (Part6)
http://pc5.2ch.net/test/read.cgi/tech/1088812165/
VB.NET質問スレ (Part5)
http://pc5.2ch.net/test/read.cgi/tech/1078134703/
VB.NET質問スレ (Part4)
http://pc2.2ch.net/test/read.cgi/tech/1065269043/
【老若】VB.net質問スレ【男女】 (Part3)
http://pc5.2ch.net/tech/kako/1056/10562/1056281084.html
【老若】VB.net質問スレ【男女】 (Part2)
http://pc2.2ch.net/tech/kako/1043/10436/1043629429.html
【老若】VB.net質問スレ【男女】
http://pc2.2ch.net/tech/kako/1025/10258/1025848458.html
2最凶VB厨房:2005/11/12(土) 09:30:58
3最凶VB厨房:2005/11/12(土) 09:33:49
どぼん!の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厨房:2005/11/12(土) 09:35:01
http://www.codeproject.com/vb/net/
the GotDotNet Home Page
http://www.gotdotnet.com/
KEN's .NET
http://www5b.biglobe.ne.jp/~yone-ken/VBNET/index.html
Cetus Links: 19,498 Links on Objects and Components / .NET
http://www.cetus-links.org/oo_dotnet.html
HIRO's.NET
http://vbdotnet.fc2web.com/index.html
@IT:特集 .NET開発者のためのオンライン・リソース・ガイド
http://www.atmarkit.co.jp/fdotnet/special/onlineres/onlineres_01.html
.NETでいきまっしょい!
http://santamartadotnet.hp.infoseek.co.jp/
これがほしかった!厳選サンプルツール集
http://anetm.com/dev/tools/vbdotnet.htm
ぬーやんのdotNET講座
http://www.geocities.jp/nuu_yan/dotNET/index.html
PINVOKE.NET
http://www.pinvoke.net/
WinAPI Database for VB Programmer
http://www.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厨房:2005/11/12(土) 09:35:59
6最凶VB厨房:2005/11/12(土) 09:37:14
テンプレ完

おすすめのリンクをおめーら貼れやぁぁぁぁ
7デフォルトの名無しさん:2005/11/12(土) 20:56:20
厨房乙

……といいたいところだが、別のスレでこいつに馬鹿呼ばわりされて煽られてから
(もちろん俺の方は何も煽るようなレスはしてなかった訳だが)こいつは
公共心(?)でスレ立ててるんじゃなくて単に煽るための釣堀が欲しくて
やってるんじゃないかと思うようになった。

なんにしろ妙な奴だな。リアルで精神病んでるんじゃないの。
8デフォルトの名無しさん:2005/11/12(土) 21:40:35
そんなに自分を責めるなよ。
9デフォルトの名無しさん:2005/11/13(日) 13:25:36
Public Declare Function SetDIBits Lib "gdi32.dll" (ByVal Pic_hDC As IntPtr, ByVal hBitmap As IntPtr, ByVal nStartScan As Integer, ByVal nNumScans As Integer, ByRef lpBits As Object, ByRef lpBi As Object, ByVal wUsage As Integer) As Integer

Dim _hBMInfo, _hBMData, _loc_BMInfo, _loc_BMData As IntPtr
Dim _bmp As Bitmap
Dim _BMIHdr As _hBMDataHEADER
Dim _BMI As _hBMData
Dim _ImgX, _ImgY, _ret As Integer
Dim _hbmp, _hDC1 As IntPtr

_ret = GetPicture("DSCF0001.jpg", 0, 0, _hBMInfo, _hBMData, 0, 0)
_loc_BMInfo = LocalLock(_hBMInfo)
_loc_BMData = LocalLock(_hBMData)
MoveMemory(_BMIHdr, _loc_BMInfo, Len(_BMIHdr))
_ImgX = _BMIHdr.biWidth
_ImgY = _BMIHdr.biHeight
_hDC1 = GetDC(_form1.Picture1.Handle)
_bmp = New Bitmap(_ImgX, _ImgY)
_hbmp = _bmp.GetHbitmap()
_ret = SetDIBits(_hDC1, _hbmp, 0, _ImgY, _loc_BMData, _loc_BMInfo, 0)
_form1.Picture1.Refresh()

とやった時にsetdibitsがエラーになるのは何故なんでしょう
10デフォルトの名無しさん:2005/11/13(日) 14:05:40
>ByRef lpBits As Object, ByRef lpBi As Object
少なくともここは問題。
少しは面倒がらずにMSDN読めば?理解できてなくてもとりあえず見た目動けばケンチャナヨってか。

っていうか、何で読む人間の立場にたって文書書けないのよ。
君自身は他人が書いた「エラーになる」みたいな粗雑な文章読んで事態が把握できる
エスパーなのかもしれんが、他の人間はそうじゃないんだよ。
11デフォルトの名無しさん:2005/11/14(月) 09:52:47
VS2005 Expressの無償化ってどう思うよ?
12前スレ904:2005/11/14(月) 10:00:21
お世話になります

何もしなくても常時イベントを発生させる方法はないでしょうか?
マウスポインタの位置を常時レポートするプログラムを作っているのですが
タイトル画面につけたスタート(Button)をクリックするとタイトル画面(PictureBox1)、
スタート(Button)のVisible=Falseにしてフィールド(PictureBox2)が出てくるようにします
そのフィールド(PictureBox2)上のポインタ座標を拾うソースを作っています

ご教授お願いします
13デフォルトの名無しさん:2005/11/14(月) 10:08:23
変数宣言のDimって何の英単語の略ですか?
14デフォルトの名無しさん:2005/11/14(月) 10:13:59
>>12
Timerコントロール。

>>13
俺はDimensionの略だと教わったような気がするけど。
15デフォルトの名無しさん:2005/11/14(月) 10:18:55
>>12
あ、ごめん。
マウスポインタの座標を拾うならmousemoveイベントがいいんでね?
16前スレ904:2005/11/14(月) 11:10:32
>>14
ありがとうございました
上手く動作させることができました
これからもよろしくお願いします

>>15
ありがとうございます
実はMouseMoveは前使ったのですがMouseが動いていないと座標を拾ってくれないので
断念した経緯があります
またお願いします
17デフォルトの名無しさん:2005/11/14(月) 11:43:16
private Sub ChangeNodeValue (Byref StrXml As String,ByVal xPath As String, ByVal NodeValue As String)
doc.LoadXml(StrXml)
doc.SelectNodes(xPath).Item(0).InnerText = NodeValue

・・・とここまでは出来たんですけど
この後この要素を変更したXMLを文字列としてまた StrXml に戻すにはどうしたらいいんでしょうか?
doc.save() ってメソッドだとファイルに保存できるんですけどStringにできません。
そもそも要素を変更するのにこの方法自体が不味いのかもしれないんですけど
賢い方法ありましたらご教授宜しくお願いします。
18デフォルトの名無しさん:2005/11/14(月) 13:08:37
そのXMLをstringで保持しなけりゃならない理由でもあるの?
そうでなきゃXmlDocumentで保持しておけばいいと思うんだけど。

SaveメソッドのオーバーロードにはTextWriterを引数に取るのもある。
TextWriterの派生クラスにはStringWriterもある。
後は分かるな?
19デフォルトの名無しさん:2005/11/14(月) 13:30:03
doc.OuterXmlであかんの?
20デフォルトの名無しさん:2005/11/14(月) 14:21:06
>>18
StringWriterクラスで作ったインスタンスでsaveして、
文字列自体はStringBuilderに入れてしまえば文字列のままですね。
ありがとうございます。

>>19
すいません、ご指摘どおりそれでいけました。
ありがとうございます。

ちなみにStringで保持したいのは最初から最後まで
ファイルに保存する事がないからでした。
どうもありがとうございました。
21前スレ904:2005/11/14(月) 17:09:18
お世話になります

PictureBoxを計算した結果によって出てきた数字分動かすという処理をしているのですが

Private Sub BulletGenerater()
Dim BulletPositionX As Decimal
Dim BulletPositionY As Decimal
Dim AutoDistance As Decimal
AutoDistance = Sqrt(((GetMyPointerPositionOnWindowX + Canon1PositionX) ^ 2) + ((GetMyPointerPositionOnWindowY - CanonPositionY) ^ 2))
BulletPositionX = (GetMyPointerPositionOnWindowX - Canon1PositionX) / AutoDistance * 5 REM 5は試験的に挿入
BulletPositionY = (GetMyPointerPositionOnWindowY - CanonPositionY) / AutoDistance * 5 REM 5は試験的に挿入
Bullet1.Location(BulletPositionX, BulletPositionY)

End Sub

このようにするとエラーになります
何か妙案はないでしょうか 御教授ください
22前スレ904:2005/11/14(月) 18:49:13
>>21
New()を使って自己解決できました
ありがとうございました
23んー:2005/11/14(月) 23:01:38
セッション情報をVB.NETで取得したいのですが、asp.netではなく、Windowsフォーム上で可能ですか?
調べたけどわかりません・・・
24デフォルトの名無しさん:2005/11/14(月) 23:19:03
>23
 サーバー側とクライアント側、どちらでセッション情報を取得しようと
しているのよ?
 それと、セッション情報はIISのSession変数を取得したいと言う意味か?
25& ◆M0Hx0CPZ5g :2005/11/14(月) 23:30:41
クライアント側です。
IISのセッション変数情報です。

説明足らずですいません・・・
26デフォルトの名無しさん:2005/11/14(月) 23:53:41
当方vb.net2003を使用しています。
勉強がてら2chブラウザを作成しようとしていますが、
gzip圧縮を解凍する方法がわかりません。
zlibを用いて解凍するというのはわかりましたが、具体的にzlibを
vb.netで使うにはどうしたらいいのかわかりません。

http://oshiete1.goo.ne.jp/kotaeru.php3?q=1455364
ここを見てもわかりませんでした。易しく教えてください。
よろしくお願いします。
27デフォルトの名無しさん:2005/11/15(火) 00:06:46
http://pc8.2ch.net/test/read.cgi/tech/1131282679/l50

237 :デフォルトの名無しさん :2005/11/14(月) 23:38:29
さあ話をそらしにかかりました
28デフォルトの名無しさん:2005/11/15(火) 00:10:19
>>26
ここをわかるまで熟読してみるんだ。
ttp://dobon.net/vb/dotnet/links/createzipfile.html
2926:2005/11/15(火) 01:14:35
うーん。よくわからんが、ICsharpなんたらっていうのを落として
#developでビルドしたDLLを使うと(namespaceにICShapがでてきた)できそうな
感じがしてきました。
京は寝ますが、この調子じゃ日が暮れますね。
3025:2005/11/15(火) 01:16:41
できないということなんでしょうか?
31 :2005/11/15(火) 01:21:39
セッションに格納しようとしているのですが
エラーが出て困っています・・・

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


'microsoft
' 変数を宣言します。
sc = CreateObject("ScriptControl")
sc.AllowUI = True
sc.Language = "VBScript"
' スクリプト コントロールにスクリプト コードを追加します。

sc.AddCode("Sub Main : " & _
"Session(""aaa"") = ""123""" & _
"End Sub")

' スクリプト コードを実行します。
sc.Run("Main")


End Sub
32& ◆Z2F/HXY.k2 :2005/11/15(火) 01:22:08
すいません・・・
VB.NETです
33デフォルトの名無しさん:2005/11/15(火) 03:13:52
エラーが出ます、エラーになります。

それで読む人に何が分かるんだっての。
34デフォルトの名無しさん:2005/11/15(火) 07:47:20
分からないヤツは黙って見てろっての
どうせ答える気も無いくせに
35デフォルトの名無しさん:2005/11/15(火) 08:28:13
>>33に一票。

>>34みたいな馬鹿も>>31みたいに読み手の側にたって文章推敲できないお方も
救いがたいな。
人間相手にすら理解させる文章をかけない奴が、いわんやまともなコーディングなんて
出来るはずがない。可哀想だが。
36デフォルトの名無しさん:2005/11/15(火) 09:15:18
>>33に一票。

自分の不出来を棚に上げっぱなしなやつに、とやかく言われたく
無い罠。エラーメッセージをぐぐるとか、まず自助努力しろって。
37デフォルトの名無しさん:2005/11/15(火) 09:43:15
>>35
お前がそうだからか?w
38デフォルトの名無しさん:2005/11/15(火) 09:43:43
>>37
必死すぎてイタス。
39デフォルトの名無しさん:2005/11/15(火) 15:32:04
勘で無根拠に答えると
新規に生成したスクリプトコントロールからは
Sessionが参照できないだけじゃないか
40デフォルトの名無しさん:2005/11/15(火) 18:33:13
>>前974
MarshalAsを手がかりに調べて、上手く行きました。ありがとうございます。
でも固定長の構造体配列だと、やっぱり駄目みたいです。
VisualSudio2005 なら出来るという話ですが・・・
41デフォルトの名無しさん:2005/11/15(火) 18:51:36
>>40
17日にExpressの日本語無償版がダウンロードできるらしいから、
それで試してみたら?
42デフォルトの名無しさん:2005/11/15(火) 19:02:03
C#2.0ならunsafeコンテキストの構造体でfixedキーワードだが、VB2005で可能なのか?
無理矢理やろうとするなら、Marshal.AllocCoTaskMemで構造体全体分を確保して独自に解釈と言うことになるかね。
43デフォルトの名無しさん:2005/11/15(火) 20:24:33
>25
 Session変数は、IISのメモリ上に格納されている。
 ついでに、Sessionを特定する情報は、クライアント側のCookieに
持っている。
 このCookieの有効期限はデフォルトで20分だし、ブラウザを閉じても
有効期限が終了する設定。

 クライアント側で取得するにはサーバー側で対になるものが必要。
 上述の仕様から出てくる制約が何かを考えれば取得できるSession変数と
取得できないSession変数の予想が付くと思う。

 まぁ、↓を参考にIISのプロセス外でSessionを管理する方法を探せば別だが。
 http://www.atmarkit.co.jp/fdotnet/dotnettips/183aspsesout/aspsesout.html
44702:2005/11/15(火) 23:21:34
VB6.0の掲示板ってありますか?
45デフォルトの名無しさん:2005/11/15(火) 23:24:26
すみません、VB2005について質問させてください。

XMLのデータを読み込んで、データグリッドに出したいのですが、
従来のVB2003におけるDataGirdの場合、
dim ds as new DataSet
ds.ReadXml("Test.XML")
dataGrid1.DataSource = ds
とすれば、表示ができました。

ただ、VB2005のDataGridViewを用いて
dim ds as new DataSet
ds.ReadXml("Test.XML")
dataGridView1.DataSource = ds

と書いても、何の反応もしません。(エラーもでません)

何か別の処理が必要なのでしょうか?
くだらないことで申し訳ないですが、よろしくお願いいたします。
46デフォルトの名無しさん:2005/11/16(水) 00:36:53
>>40
固定長だからできないとかとかないと思うけど。
MSDNよく読んで、(しかしMSDNは記述があいまいだから)いろいろ試したほうがいいと思うよ。
大概のアンマネージ呼び出しは可能なはずだから。

少なくともこの下のサブトピックには一通り目を通したほうがいい。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconinteropmarshaling.asp?frame=true
47デフォルトの名無しさん:2005/11/16(水) 02:19:05
いや、基本型以外の構造体の固定長配列は.NET 1.0/1.1のマーシャラはサポートしていない。
いくつかの手段で対応は可能だけど、属性つければ後はマーシャラに任せてOKってわけには行かない。
48デフォルトの名無しさん:2005/11/16(水) 10:50:03
Magic TabControlって使ったことある?
ttp://www.codeproject.com/cs/miscctrl/magictabcontrol.asp

ここらへんのコントロールは無料で使用できるのかな?
49デフォルトの名無しさん:2005/11/16(水) 12:40:55
>>47
ソースは?
固定長かどうかなんてことは呼ばれる側にしてみれば
どうでもいいことだと思うけど。
呼ばれる側が関心があるのは、渡された領域が正しく確保されているかどうか、
バートオーダーやデータの並びが正しいかどうか、それだけでしょ。
50デフォルトの名無しさん:2005/11/16(水) 12:48:11
うん。
だから、「マーシャラが」サポートしていないの。
「属性つければ後はマーシャラに任せてOK」じゃないから、
自前で領域を確保するなりあれこれしなきゃいけないの。
51デフォルトの名無しさん:2005/11/16(水) 21:00:17
VB.NET+ODP.NETでOracleDataReaderクラスのGetOracleValuesをどうやって使えばいいかが分かりません。
「このメソッドは、各列の値を個々に取得するのではなく、すべての列の値を取得する方法を提供します。」
という文言にひかれてるんですが、サンプルソースとかあるところをご存知ないでしょうか?
52デフォルトの名無しさん:2005/11/17(木) 07:05:32
53デフォルトの名無しさん:2005/11/17(木) 09:31:03
>>50
VB8を手に入れて試してみたのですが、

<StructLayout(LayoutKind.Sequential)> _
Structure A
 Public x As Byte
End Structure

<StructLayout(LayoutKind.Sequential)> _
Structure B
 <MarshalAs(UnmanagedType.ByValArray, SizeConst:=10)> _
  Public y As A()
End Structure

Dim z As B
ReDim z.y(10)

で、あとは z.y(i).x でアクセスするので正しいのでしょうか。
一見これで動いてはいるのですが……。
54デフォルトの名無しさん:2005/11/17(木) 09:40:21
それでいいけど、外部関数がセットするだけならyを初期化する必要もないよ。
Dim z As B
Hoge(z)
Console.WriteLine(z.y(0).x)
55デフォルトの名無しさん:2005/11/17(木) 10:37:33
>>52
そこの情報でGetOracleValuesの存在を知ったのですが、使い方が分かりませんでした。
Dim ob As Object()
While dr.Read
If ob Is Nothing Then
ob = New Object(dr.FieldCount - 1) {}
End If
dr.GetOracleValues(ob)
End While
こんな感じで使えることはなんとか分かったのですが、普通にDataReaderから読み込むよりも遅い。。。
56デフォルトの名無しさん:2005/11/17(木) 12:29:46
>>54
いやマズいんじゃないの。
だって関数から帰ったとき、マーシャラー(?)はサイズ10のアンマネージ配列を
マネージド配列にコピーを試みるわけだけれども、空のマネージド配列には
コピーしようがない。
57デフォルトの名無しさん:2005/11/17(木) 12:39:59
>>56
そのためのMarshalAs属性。
マーシャラはこいつを見て、アンマネージドに渡すときにSizeConstと型を見て自動的にメモリを確保する。
アンマネージドから返ってきたときには確保したメモリの内容を自動的にマネージド配列に組み立てる。
もともと確保してた場合、その配列インスタンスは到達不可能になってGCの対象になるだけ。
58デフォルトの名無しさん:2005/11/17(木) 12:44:25
あ、言い忘れてたけど
> マーシャラはこいつを見て、アンマネージドに渡すときにSizeConstと型を見て自動的にメモリを確保する。
のあと、配列インスタンスを作成済みだった場合は、確保したメモリに値がコピーされる手順が加わるな。
59デフォルトの名無しさん:2005/11/17(木) 13:32:10
質問です。

VB.net2003とsqlサーバーでデータベース処理を作っています。
データグリッドの1つのセルでaと押したときデータベースのコード(商品コード等)のaから始まるものを
コンボボックスで表示したいのですが、可能でしょうか?

先生にはデータグリッドのセルで押されたキーは判別できないとか言われました。

前スレでも聞いたのですが、時間無くてレス見る前にdat落ちしたのでまたお願いします。
60デフォルトの名無しさん:2005/11/17(木) 13:58:48
61デフォルトの名無しさん:2005/11/17(木) 14:03:34
VB6.0から乗り換えたんですが、VB.NETでは実行中にソースを変更できないのでしょうか?
62デフォルトの名無しさん:2005/11/17(木) 14:09:55
>>61
2005から。
63デフォルトの名無しさん:2005/11/17(木) 14:33:55
>>62
ありがとうございました。
6459:2005/11/17(木) 14:36:17
(:´д`)英語わからない・・・
でもDataGridComboBoxColumnで検索したら日本語で説明しているのが見つかりました。
>>60さんありがとう。
後はがんばって解読して作ってみます。
65デフォルトの名無しさん:2005/11/17(木) 23:52:22
VB.netで作ったプログラムってもっとメモリ使用量抑えられないのかな
66デフォルトの名無しさん:2005/11/18(金) 00:59:28
>>65
ワーキングセットについてのいつものFAQ?それとも踏まえたうえでの話しか?
67デフォルトの名無しさん:2005/11/18(金) 01:52:22
SystemInformation.Networkについて教えてください。
これはネットワークに接続しているかどうかを返すようですが、
コントロールパネルのネットワークの設定で接続をすべて無効(または切断)にしても、
常にTrueを返します。

単純にこのコンピュータがネットワークにつながっているのかどうかを
調べたいのですが、これは使えないのでしょうか?
68前スレ904:2005/11/18(金) 13:03:22
お世話になります

DrawImageとタイマを組み合わせて画像を動かしているのですが
Intervalを80以下に下げるとアプリケーションを終了させた時に
なかなか終了しません(変な日本語で恐縮ですがアプリケーション
は停止するけどウィンドが閉じない、ほかのアプリケーションに
フォーカスを移すとやっとウィンドが閉じる、リソースメーターは
アプリケーション終了からずっと100%になりウィンドウが閉じる
と0%に下がる)
これでは画像を高速で動かすことができません
何か妙案は無いでしょうか?
MSDNにはTimerクラスが3つ書いてあるけど違いがわかりません・・・orz
69前スレ904:2005/11/18(金) 13:25:52
>>68
このアプリケーションではタイマを2つ使い1つはPictureBoxで画像を
直に操作、もうひとつはDrawImageで動かすものですがPictureBoxを
終了時にVisible=falseにすることで自己解決できました
ありがとうございました
70デフォルトの名無しさん:2005/11/18(金) 16:05:25
>>67
使えないっぽいねぇ。
予想だけど、ネットワークカードが物理的に刺さってるかどうかを見ているんじゃないかなぁ。

で、代案。Win32APIだより。
ttp://support.microsoft.com/default.aspx?scid=kb;ja;821770
71デフォルトの名無しさん:2005/11/18(金) 16:07:21
7267:2005/11/18(金) 17:31:12
>>70
実は私もそう思ったんですが、目的と違いますし面倒なので試しませんでした。
代案すばらしいです。ありがとうございます!きちんと動作しました。本当に助かりました。
ついさっきまでWMIでなんとかやろうとしていたところでした。
73ご質問:2005/11/19(土) 01:02:59
◆Q1
  Windowフォームの上っ面の部分(Form名等青色の部分)を
  ダブルクリックしても拡大されない様にするには
  どうすれば良いでしょうか?

◆Q2
  CDトレイを自動で開け閉めさせるコードは何なのでしょうか?


上記2点につきましてぜひともご伝授下さいませ。

   
74デフォルトの名無しさん:2005/11/19(土) 11:58:00
>>56-57
これ本当か?絶対間違ってると思うけどな。

だって現に俺も最初このような動作をすると期待して書いたコードが動作しないんで
構造体に、コンストラクタ代わりに配列を初期化した自分の返す共有メソッド書いて
対応したことがあったから。
7574:2005/11/19(土) 11:59:05
すまん>>57-58だった。
76デフォルトの名無しさん:2005/11/19(土) 12:26:05
>>75
VB7じゃ駄目っすよ? VB8ですよ?
これ全スレの最後のほうとか>>53とかの流れの話だから。
77デフォルトの名無しさん:2005/11/19(土) 12:31:50
>>74
なかなか慎重だね。
じゃあサンプルを出そう。
丁度良いAPIが見あたらなかったから、GetKeyboardStateの引数をByte配列を持った構造体に置き換えてみた。

Option Strict On
Imports System
Imports System.Drawing
Imports System.Runtime.InteropServices
Imports System.Text
Imports System.Windows.Forms
Public Class TestForm
  Inherits Form
  Public Shared Sub Main(ByVal args() As string)
    Application.Run(New TestForm())
  End Sub
  Private Declare Function GetKeyboardState Lib "user32.dll" (ByRef state As KeyboardState) As Boolean
  Private Structure KeyboardState
    <MarshalAs(UnmanagedType.ByValArray, SizeConst:=256)> Public Keys As Byte()
  End Structure
  WithEvents Private keyStates As New Label()
  Public Sub New()
    keyStates.Dock = DockStyle.Fill
    keyStates.Font = New Font("MS ゴシック", 9F)
    Controls.Add(keyStates)
    Me.Width = 400
  End Sub
78デフォルトの名無しさん:2005/11/19(土) 12:32:38
  Protected Sub CheckKey(ByVal sender As Object, ByVal e As MouseEventArgs) Handles keyStates.MouseDown
    If e.Button = MouseButtons.Left Then
      'パターンA:こちらからは確保しない。マーシャラ任せ。
      DisplayKeyboardState(GetKeyboardState())
      Me.Text = ""
    Else
      'パターンB:こちらで事前にByte配列を確保。
      Dim ref As WeakReference = Nothing
      DisplayKeyboardState(GetKeyboardState(ref))
      GC.Collect() 'WeakReference以外に参照が無くなっていれば片づけ
      Me.Text = ref.IsAlive.ToString() 'Falseなら事前に確保したByte()は無くなってると言うこと
    End If
  End Sub
  Private Sub DisplayKeyboardState(ByRef state As KeyboardState)
    Dim x As Integer, y As Integer, result As New StringBuilder()
    For y = 0 To 15
      For x = 0 To 15
        result.AppendFormat("{0:X2} ", state.Keys(y * 16 + x))
      Next
      result.Append(Environment.NewLine)
    Next
    keyStates.Text = result.ToString()
  End Sub
79デフォルトの名無しさん:2005/11/19(土) 12:33:24
  Private Function GetKeyboardState(ByRef allocated As WeakReference) As KeyboardState
    Dim state As New KeyboardState()
    state.Keys = New Byte(256){}
    allocated = New WeakReference(state.Keys)
    GetKeyboardState(state)
    Return state
  End Function
  Private Function GetKeyboardState() As KeyboardState
    Dim state As New KeyboardState()
    GetKeyboardState(state)
    Return state
  End Function
End Class
8073:2005/11/19(土) 21:04:33
誰かお願い致します。

教えて下さい。

ぐぐっても見つかりません。
81デフォルトの名無しさん:2005/11/19(土) 21:13:30
.netフレームワークの1.1と2が両方インストールしてあるマシンで1.1のアプリは
問題なく動きます?
82デフォルトの名無しさん:2005/11/19(土) 22:07:39
値が列挙型の中に含まれる値かどうかを調べる方法はありますか?
Private Enum exEnum
a = 1
b = 256
c = 512
End Enum
という列挙が定義してあった場合、ある変数 varA に入っている値が
exEnum に存在する値かを調べたいのですが、そんな便利なメソッドが
あれば教えてください。

83デフォルトの名無しさん:2005/11/19(土) 22:59:51
>>73
'トレイを開ける
Private Sub OpenTray()
Const BUFFER_CAPACITY As Integer = 256
Dim nCommand As String 'コマンド文字列
Dim hwndCallback As Integer = 0
Dim ReturnString As System.Text.StringBuilder = _
New System.Text.StringBuilder(BUFFER_CAPACITY)
Dim ReturnSize As Integer = BUFFER_CAPACITY
Dim Ret As Integer
'CDトレイをオープンするコマンド文字列
nCommand = "set cdaudio door open"
Ret = mciSendString(nCommand, ReturnString, ReturnSize, hwndCallback)
End Sub
'トレイを閉じる
Private Sub CloseTray()
Const BUFFER_CAPACITY As Integer = 256
Dim nCommand As String 'コマンド文字列
Dim hwndCallback As Integer = 0
Dim ReturnString As System.Text.StringBuilder = _
New System.Text.StringBuilder(BUFFER_CAPACITY)
Dim ReturnSize As Integer = BUFFER_CAPACITY
Dim Ret As Integer
'CDトレイをオープンするコマンド文字列
nCommand = "set cdaudio door Closed"
Ret = mciSendString(nCommand, ReturnString, ReturnSize, hwndCallback)
End Sub
これで開閉はできるが、複数台ドライブがある時には対処できない。
mciSendCommand()を使えば任意のドライブの開閉ができるはずだけど、各ドライブのデバイス識別子を列挙する方法は、俺にも分からない。
84デフォルトの名無しさん:2005/11/19(土) 23:00:50
>>81
自動的に最適な方を見つけて実行させる
とMSのサイトに書いてあった希ガス

>>82
Enum.Equals メソッド
85デフォルトの名無しさん:2005/11/19(土) 23:02:57
>>82
System.Enum.GetValues(GetType(xxxx))がArray返すからそれで探せる。
8683:2005/11/19(土) 23:05:19
APIの宣言文を忘れてたw

Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
(ByVal lpstrCommand As String, _
ByVal lpSectorsPerCluster As System.Text.StringBuilder, _
ByVal uReturnLength As Integer, _
ByVal hwndCallback As Integer) As Integer
87最凶VB厨房:2005/11/19(土) 23:12:28
Imports System.Runtime.InteropServices


<DllImport("winmm.dll", EntryPoint:="mciSendString", CharSet:=CharSet.Auto)> _
Public Shared Function mciSendString(ByVal Command As String, ByVal ReturnString As String, ByVal c As Integer, ByVal d As IntPtr) As Integer
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
mciSendString("set CDaudio door open", "", 0, IntPtr.Zero)
System.Threading.Thread.Sleep(10000)
mciSendString("set CDaudio door closed", "", 0, IntPtr.Zero)
End Sub
88最凶VB厨房:2005/11/20(日) 00:11:12
>>73
  Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    Const MAXPARAM As Integer = &HF032
    If m.WParam.ToInt32() = MAXPARAM Then
      Return
    End If
    MyBase.WndProc(m)
  End Sub
89デフォルトの名無しさん:2005/11/20(日) 02:04:07
>>82
Enum.IsDefined
ただしOrで値を組み合わせている場合は判断できないので注意。
90デフォルトの名無しさん:2005/11/20(日) 02:08:10
while文で、値がnullの場合繰り返し終了させたいんだけど、
終了条件をどう書けばいいのですか?
91デフォルトの名無しさん:2005/11/20(日) 02:30:06
空白文字列かNothingかどっち?
92デフォルトの名無しさん:2005/11/20(日) 02:37:57
>>どちらか分かりません。
データベースから、受注Noを取り出し表示を繰り返そうと思ってます
ですので、受注Noがなくなったらそこで終了させたいです。
たぶんNothingなのでしょうか。
93デフォルトの名無しさん:2005/11/20(日) 02:42:14
んー?
DataReader使うならReadメソッドの返値とか使うし、DataSetならDataTableのRowsでFor Eachとかしない?
9490:2005/11/20(日) 02:57:29
ほとんど知識のないまま、作っていますので突っ込まれると困ります。
DataGridに表示させようと思っています。

select 受注No, 品名 from 受注M
i=1
while() ←ここに、受注Noがなくなったら、終了の条件式を書きたい
一覧.Row = 0 + i
一覧.Col = 0
一覧.Text = i
一覧.Col = 1
一覧.Text = Rs.Fields("受注No").Value
一覧.Col = 2
一覧.Text = Rs.Fields("品名").Value
Rs.MoveNext
wend

よろしくお願いします
95デフォルトの名無しさん:2005/11/20(日) 03:11:39
RsとかMoveNextとか見る限りADO使ってるのかね。
ならEOFプロパティ使うとかすれば良いんじゃないの?
9690:2005/11/20(日) 03:26:30
>>95
詳しく教えてください。何のことか分かりません
97デフォルトの名無しさん:2005/11/20(日) 03:32:17
wend…….NETじゃないような気がしてきたぞ。VBAなりVB6.0なりならスレ違いだ。

Rs.EOFがあるだろ? リファレンスでMoveNextの解説は読んだか?
98デフォルトの名無しさん:2005/11/20(日) 05:56:35
while(Rs.EOF == True)
ウンコ
9973:2005/11/20(日) 07:52:25
>>83,87さん

ありがとうございます。
解決しました。
100デフォルトの名無しさん:2005/11/20(日) 10:04:04
おまいら優しいな
101デフォルトの名無しさん:2005/11/20(日) 11:00:16
vb.net の module に関してですが、
shared なクラスにするとか、同じくシングルトンで実装すればあえて
module を使用する必要はないかと思っているのですが module を使う
メリットは何が考えられますか?

C# には module はありませんし、vb.net で module を使うべき箇所が
想定できません。アドバイスいただけるとうれしいです。
よろしくお願いします。
102デフォルトの名無しさん:2005/11/20(日) 11:24:42
Module == Shared
元々過去との互換性のためのものだし。
103名無しの学生:2005/11/21(月) 10:01:40
教えてください!!VB.NETとASP.NETとADO.NETとアクセスを使用して
データベースに画像を登録する画面と、データベースに登録してある
画像を表示する画面を作成したいのですが、データベースへの画像に
関するアクセスの仕方が分かりません!どなたかご存知でしたら、ぜ
ひご教授願います。
104デフォルトの名無しさん:2005/11/21(月) 10:16:21
>>103
「ADO.NET データベース 画像」でぐぐるんだ。
105デフォルトの名無しさん:2005/11/21(月) 11:52:44
VB.NET+ASP.NETで開発しております。
フォームに予めヘッダーとなるテーブル(WEBフォーム)を作成しておき
DBからデータ抽出後、動的にテーブル行を追加するという処理をしています。

DB抽出→テーブル新規行作成部分は作成済みなのですが
テーブルのレイアウトがどうもうまくいきません・・・
GridLinesかBorderStyle辺りかと思っているのですが行き詰っています
現状は新規追加した行のボーダーラインが太く表示される状況です。
(既存行の下ラインと新規行の上ラインが重なったような感覚)

ヘッダー部分のテーブルはGridLines→Both、BorderStyle→Noneに設定しています。
わかりにくい文章だと思うのですがどなたかご存知の方いたら教えて下さい。
よろしくお願いします。

106デフォルトの名無しさん:2005/11/21(月) 14:13:08
VB.NETでSystem.UInt32のリテラルはどう記述すればいいの?
107デフォルトの名無しさん:2005/11/21(月) 14:19:56
2005ならUIサフィックスだな
それ以前はリテラルにできない
Convert.ToUInt32でも使うか
108デフォルトの名無しさん:2005/11/21(月) 14:23:29
private const UInt32 SC_CLOSE = 0x0000F060
こゆこと?
109デフォルトの名無しさん:2005/11/21(月) 14:24:58
>>108
ゴメン
VBじゃなかった
110デフォルトの名無しさん:2005/11/21(月) 14:29:04
こんにちわ
VB.netで、横幅が1ドット、縦幅が30ドットの縦線をフォーム外に表示させたいと思ってます
そこで、フォームを新しく生成して、そこに横幅が1ドット、縦幅が30ドットのピクチャーを置き、
フォームスタイルをNone、サイズをnew size(1,30)で表示させたのですが、
フォームのx座標が強制的に2になってしまいました

これはフォームサイズの仕様なので、別の方法をとるしかないのでしょうか?

また、その場合横幅が1ドット、縦幅が30ドットのピクチャーをフォームとして扱うみたいな事は出来るのでしょうか?
111デフォルトの名無しさん:2005/11/21(月) 14:31:43
>>107
ありがとう。出来た。

Dim j As System.UInt32

j = Convert.ToUInt32(1I)
System.Console.WriteLine(j)

本職はCなんだけど面倒くさいなぁ・・・・
112デフォルトの名無しさん:2005/11/21(月) 14:45:15
>>110
Regionプロパティ

>>111
U系を使わなければ問題なし
113デフォルトの名無しさん:2005/11/21(月) 19:02:57
そうそう符号無しの型なんて冗長とまでは言わないけど、
なきゃないで別に困らないよねえ。
114110:2005/11/21(月) 19:37:57
>>112
フォームの形を丸ごと変える方法もあったのですね
解決しました。ありがとうございます
115デフォルトの名無しさん:2005/11/21(月) 22:15:20
レコードセットをCSV出力するメソッドってありますか?
地道に一つずつレコードセット取ってきて
do until rs.eof
print フィールド1 & "," & フィールド2 & "," & フィールド3 & "," …
movenext
loop
ってやるしかない?
116デフォルトの名無しさん:2005/11/21(月) 23:43:58
>>115
ゴリゴリやるか市販のコントロール使うしかない
117デフォルトの名無しさん:2005/11/22(火) 01:00:51
CSV吐きって型やエスケープや改行を考慮すると微妙にめんどいよ。
118デフォルトの名無しさん:2005/11/22(火) 01:02:29
方言も多いしな
119デフォルトの名無しさん:2005/11/22(火) 06:57:29
↓CSV厨
120デフォルトの名無しさん:2005/11/22(火) 18:21:25
プロセス間通信をやろうと思って
サンプルにあった
Imports System
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.TCP
を記述したところ

Imports System.Runtime.Remoting.Channels.TCP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ってなってインポートできない
なんで??

環境はVS2003
.NET FWは1.1+SP



121デフォルトの名無しさん:2005/11/22(火) 18:33:52
なんてエラーが出てるのかぐらい書けよ
122デフォルトの名無しさん:2005/11/22(火) 18:42:15
その波線にマウスポインタを持っていったら、何か表示されるから
その内容を書き込んでみよう。

‥‥と、やさしく解説してみた。
123120:2005/11/22(火) 18:43:38
スマソ
名前空間がありません
みたいなやつ

Imports System.Runtime.Remoting.Channels.
で候補が出てくる中にも存在しない

とりあえずFW再インスコしてみる
124デフォルトの名無しさん:2005/11/22(火) 18:48:35
プログラマならメッセージをおろそかにするなよ
みたいな、じゃない


で、原因は参照不足だ。
現在参照しているDLLの中でSystem.Runtime.Remoting.Channels.Tcp名前空間を定義してるものがない時に出る。
ヘルプで使いたいクラスを開いて、その「〜〜について」を調べてみ。
どのDLLが必要が書かれているから。
125デフォルトの名無しさん:2005/11/22(火) 20:04:18
>>124
トンクスコ

うまくいきました
Importsと参照設定って同じだと思ってた…

あれ・・・
おかしいね
3年もやってるのに

126デフォルトの名無しさん:2005/11/22(火) 21:38:12
参照設定は絶対パス、Importsは相対パスみたいなもんだと
先輩に教えてもらったことがある。言い得て妙だなと思った。
127デフォルトの名無しさん:2005/11/22(火) 23:25:49
>>126
いやそれは言い得てなくて妙だ。
Imports は名前空間を修飾するだけのものだから。外部のアセンブリを指定する参照設定とは全然別。
128デフォルトの名無しさん:2005/11/22(火) 23:29:38
Importsは名前空間だけじゃなく型もOKだぜー。
129デフォルトの名無しさん:2005/11/23(水) 02:53:54
VB.netで、DLL(COM)を作ってエクセルから参照しています。開発機では問題なく
動作するのですが、インストーラーを作成して他のマシンにインストールすると、

実行時エラー'429'ACtiveXコンポーネントはオブジェクトを作成できません。

とエラーになってしまいます。(インストール先の)エクセルのVBAからは、参照
を確認すると設定されたインストールフォルダーのDLLが確認できます。レジストリ
も、DLLの名前で検索するとインストール前後で、数が大幅に増えているのでレジス
トリには登録されているようです。

Regsvr32で手動で登録しようとしてみた所、

「DllRegisterServer エントリ ポイントが見つかりませんでした。 登録されて
いない可能性が…」

とダイアログが出ました。うーん、どうしたらよいのでしょうか?Web等を探してみた
のですが解決しません。どなたか、お知恵をお願いします。
130デフォルトの名無しさん:2005/11/23(水) 09:33:01
VB.net 2003のWindowFormでプログラムを作っています。
画面上でデータの一覧を表示し選択させるためにComboBoxを使っているのですが、
ComboBoxだと選択だけでなく入力もできてしまいます。
これを選択だけに出来ないでしょうか?

WebだとDropDownListがあるのですが、Formでも同じようなコントロールはあるのでしょうか?
よろしくお願いします。
131デフォルトの名無しさん:2005/11/23(水) 09:55:07
>>129
.NETのアセンブリをCOMに登録するのはregsvr32じゃなくてregasmだよ。
OLE viewerで.NET Categoryの登録したクラスの所にはどんなのが書かれてる?

>>130
ComboBoxのDropDownStyleプロパティ
132130:2005/11/23(水) 10:46:07
>>131
ありがとう。できました!
133デフォルトの名無しさん:2005/11/23(水) 16:47:20
> 131
OLE viewerですか。実はこれまで使ったことは無かったので。。。
いろいろ情報があるのですが、どのあたりの情報を見ればよいのでしょうか
134デフォルトの名無しさん:2005/11/23(水) 16:53:18
取りあえず、Registryタブにでてる奴の内ProgIdとInprocServer32 [Assembly]、InprocServer32 [CodeBase]
エラーメッセージからしてCreateObjectするときの名前を間違えてるんじゃないかと思ってるんだが……。
135129:2005/11/23(水) 18:42:14
ご回答有難う御座います。

Registryタブ


InprocServer32 [Assembly]=TaskListLib,Version=1.0.21…,Culture=neutral,PublicKey Token=null
InprocServer32 [Class] =TaskListLib.TaskListLib
InprocServer32 [CodeBase] =file:///D:/Dev/VB/TaskList/TaskListLib/bi/TaskListLib.DLL



ProgID=TaskListLib.TaskListLib


という感じでした。

ちなみに(開発機で無い)インストール先のマシンのインストールフォルダー
は、C:\Program Files\の下になるのですが、インストーラーでインストール
すると

「実行時エラー'429'ACtiveXコンポーネント…」

とでるのは前述の通りですが、ここで、RegAsm C:\Program … \ … .dll と
やってみらた「依存関係がみつからない」(TaskListLib.DLLは複数のDLLを
参照しています)と出ました。



136129:2005/11/23(水) 18:44:17
 …/bi/… ではなく …/bin/… です。(念の為)
OLE Viewerって、コピペできないんですね。。。。
137デフォルトの名無しさん:2005/11/23(水) 19:04:08
ん〜、インストール先のマシンの方が欲しいんだが。
失敗するメッセージがでるのはインストール時なの?
それでもVBAかなんかから実行はできるの?
TaskListLib.dllの参照しているDLLはTaskListLib.dllが手に届く位置(同じディレクトリとか)にあるの?
138129:2005/11/23(水) 20:34:36
ご親切にご相談に乗っていただき感謝します。

まず、インストーラを実行すると、インストールが成功した旨の表示が出ます。
で、エクセルのマクロからTaskListLib.dllの関数を呼び出そうとすると、

「実行時エラー'429'ACtiveXコンポーネント…」

となります。そこで、インストール先のDLLを手動で、RegAsmして再びエクセル
のマクロからTaskListLib.dllの関数を呼び出そうとすると、

「依存関係がみつからない」

となります。TaskListLib.dllの参照しているDLLはTaskListLib.dllと同一フォル
ダーに有ります。

OLE viewer等を存在を教えていただいてあれこれ調べてみました所、どうやらインス
トーラーがきちんと動作していないようです。インストールを実行すると、DLLの情報
がレジストリには入るのですが(よって、エクセルのマクロはTaskListLib.dllの場所
を見つけられるようです)、インストール後にOLE Viewerでインストール先マシンの
NET Categoryを見てみるとTaskListLib.dllが登録されていませんでした。(手動でRegasm
した後は登録されていました。)

1:TaskListLibというプロジェクトをつくりそこにTaskListLibというCOMクラスを追加。
2:SetupTaskListLibというセットアップ・プロジェクトをつくり、”プロジェクト出力の追加”
TaskListLibのプライマリ出力を追加
3:ビルド

では、何かたりないのでしょうか?(これで(たまたまなのかもしれませんが)うまく
行っているものもあったので・・・・)
139デフォルトの名無しさん:2005/11/23(水) 20:57:12
VB.netでInternet Explorerのプラグインを開発しようとしています.
色々と調査した結果,Browser Helper Objectsを使用すると,
開発ができるということは分かったのですが,
これをVB.netで使用できるか否か分かりません.

どなたかご存知の方は,教えて頂けないでしょうか.
参考になるURLなどもあれば,教えて頂けないでしょうか.
140129:2005/11/23(水) 21:56:41
原因すこし絞り込めました。

インストール先をOLE Viewで調べたときに、InprocServer32 [CodeBase] がありませんでした。
regasm /codebase を実行すると問題なく実行できました。

そのときに「署名が無いものは云々」とメッセージが出ていたので、どうやらインストーラで
インストールした時は、署名が無い(まだ、よく理解していませんが・・・)等の理由で、
CodeBaseの値が設定されないでしょうか?

とりあえず、インストール先で使用はできる様になりました。
141デフォルトの名無しさん:2005/11/23(水) 22:40:17
>>140
あー、やっとわかった。
セットアッププロジェクトの、追加したプロジェクトのプロパティでRegisterをvsdrpCOMにすれば
インストーラが登録をやってくれるようになるようだ。自動的にCodeBaseも付けてくれるっぽい。
CodeBaseつけるには本来厳密名が必要なはずなんだが、とくに要求はされないな。

>>139
BandObjectでも使えば。
142デフォルトの名無しさん:2005/11/24(木) 01:28:13
オブジェクトをGCHandleを用いてpinで止めるのと同じように、関数ポインタ
(デリゲートから取得したもの)をガベージコレクタによる移動から防ぐ方法
はあるのでしょうか?
143デフォルトの名無しさん:2005/11/24(木) 09:02:22
関数ポインタの固定じゃなくてその元になったデリゲートの固定だろう?

> メモ
> アンマネージ コードによって保持されるマネージ デリゲートへの関数ポインタを参照する場合、
> 共通言語ランタイムによって該当のマネージ オブジェクトに対して
> ガベージ コレクションが実行されることは回避できません。

だそうだが。MarshalやUnmanagedFunctionPointerAttributeにも特にないな。
144129:2005/11/24(木) 15:00:19
> 141
追加したプロジェクトのプロパティのRegisterは、vsdrpCOMにしてあります。
(少し紛らわしい書き方をしてしまいましたが)インストーラでインストール
しただけでは、(CodeBaseの値のみがつかないのではなく)OLE Viewerで確認
するとNET Categoryにな何のデータも登録されていません。

145129:2005/11/24(木) 15:07:36
インストーラでインストール。OLE Viewerでは登録されていない。
(ここで実行すると、「実行時エラー'429'ACtiveX…」)
 ↓
Regasm ….dll
(ここで実行すると、「依存関係がみつからない云々」)
 ↓
Regasm ….dll(「「署名が無いものは云々」といわれるも登録は成功)
(ここで実行するとOK)

ということです。ちょっと署名関係をしらべて署名したもので
試してみようと思っています(が、なんだか署名関係は面倒臭そう
ですが。。。。)

146デフォルトの名無しさん:2005/11/24(木) 15:46:01
>>144
う〜ん。

私が成功したやり方。VS2002。
1)クラスライブラリプロジェクトを新しいソリューションで作成。
2)プロジェクトのプロパティ>構成プロパティ>ビルドのCOM相互運用機能の登録 をTrueに設定
3)同じソリューションにセットアッププロジェクトを新規作成。
4)1で作成したプロジェクトのプライマリ出力をセットアッププロジェクトに追加。
5)追加したプロジェクトのRegisterプロパティをvsdrpCOMに設定。
6)ビルド。
で開発機にもインストール先のWin98SEにも自動的にCOM登録される。
CodeBaseも設定されるので任意の位置からCOMオブジェクトを作成できる。

……んだけどなぁ。

厳密名は、
sn.exe -k [出力するキーのファイル名]
でキーファイルを作成して、AssemblyInfo.vbに
<assembly: AssemblyKeyFile("[sn.exeで作成したファイルのパス]")>
と書くだけで良いよ。大雑把には。
厳密名ほかについて詳しくは
ttp://www.atmarkit.co.jp/fdotnet/technology/idnfw11_index/index.html
147142:2005/11/24(木) 18:49:16
>>143
 なるほど。参考になりました。どうも有り難うございます。
やはり、無理なことをやろうとしているのかも…。
148デフォルトの名無しさん:2005/11/25(金) 11:26:55
ツリービューで、Slepnirのオプションみたいなのを作りたいのですが、うまく出来ません

内容は、
ルートが選択された時、選択されたルート以外のツリーは閉じる
選択されたルートの中の一番上の子要素が選択される

だと思うのですが、AfterSelectで特定のルートが選択された後の分岐までは問題ないのですが、
「選択されたルートの中の一番上の子要素が選択される」というところで詰まっています

なにか良い方法はないでしょうか?
149デフォルトの名無しさん:2005/11/25(金) 11:30:54
どう試してみてどう駄目だった?
150デフォルトの名無しさん:2005/11/25(金) 12:58:39
すみません、SelectedNodeの指定の仕方が悪かっただけでした
大変申し訳ないです
151デフォルトの名無しさん:2005/11/25(金) 15:29:42
キーを押しっぱなしでリピートかかってキーコードが発生しているのと、手で素早く連打してる
のとを区別するにはどうすればいいでしょう
152デフォルトの名無しさん:2005/11/25(金) 15:47:00
KeyUpが発生してるかどうか見ればいいだろ
153デフォルトの名無しさん:2005/11/25(金) 15:48:58
リピートはなんかそういうカウンタなかったっけか?
154デフォルトの名無しさん:2005/11/25(金) 16:13:28
SQL-Serverからデータ型「money」で値を引っ張ってくると「10.0000」となってしまいます
ListBoxにデータを入れているのですが、小数点以下を切り捨ててListBoxにデータを入
れる方法ってありますか?
それとも素直にint型でやった方がいいでしょぅか?
155デフォルトの名無しさん:2005/11/25(金) 16:29:50
Formatするとか、そもそもINT型が別に素直でも何でもないし。
取得がADO.netならば、適切な型(多分Decimal)にマップされますよね。
それを文字型にするんだから、暗黙の型変換というかToStringじゃなく、フォーマット指定で変換すればいいだけ。
156デフォルトの名無しさん:2005/11/25(金) 16:30:01
int型に入れればいい
157デフォルトの名無しさん:2005/11/25(金) 16:45:32
実際使っている部分を載せます
Me.ListBox2.DataSource = dr2
Me.ListBox2.DataTextField = "mas_com_mon_money"
Me.ListBox2.DataBind()

ストアドを使ってデータを入れているのですが、formatを使うと怒られます。
ストアドの指定をする部分で型をintにするとまたまた怒られます。
また、SQLのデータには小数点は入っていません
多分2行目で小数点以下が入ると思うのですが・・・
初心者で申し訳ないです
158デフォルトの名無しさん:2005/11/25(金) 19:26:03
dr2は何なのかをさらせ
159デフォルトの名無しさん:2005/11/25(金) 20:07:28
これです

Dim CMD2 As New SqlCommand(select mas_com_mon_money from com_ser", CN)
CN.Open()
Dim dr2 As SqlDataReader = CMD2.ExecuteReader()
160129:2005/11/25(金) 20:32:50
>146
返信遅れてすみません。VS2003ですが私も同様の方法です。
(これで、うまくいっているものもあります。)

厳密名に関しても(ちょっと別件で忙しくなってしまったため)後
日、調べてやってみます。

色々と御教授頂き有難う御座いました。取り急ぎ、御礼まで。。。。
161デフォルトの名無しさん:2005/11/25(金) 22:59:44
デスクトップ上の指定した座標を左クリックする
というのをVBのプログラム上で行うのは可能でしょうか?
162デフォルトの名無しさん:2005/11/25(金) 23:02:23
API呼び出しになるが可能。
163デフォルトの名無しさん:2005/11/26(土) 00:25:52
コントロールを1つ1つ懇切丁寧に、例つきで解説してくれてるところはありませんか?
MSのサイトとかヘルプ見ても、理解できません。

っていうか昨日、無償版のexpressβ2をダウンロードして使い始めたばかりでプログラム初心者なので。
164デフォルトの名無しさん:2005/11/26(土) 00:29:12
>>163
テンプレの>>3-5を熟読すると大吉。
165デフォルトの名無しさん:2005/11/26(土) 00:33:52
>>164
テンプレには既に目を通しましたが、私には難しかったです・・・・・

多分、全部のページを読んで情報を総合すれば、欲しい情報は載っているんでしょうが、

もっと分かりやすくまとめてあるところはないものか、と思いました。
166デフォルトの名無しさん:2005/11/26(土) 07:55:13
本買って勉強しる
167デフォルトの名無しさん:2005/11/26(土) 11:18:15
>>165
VBの解説書が多く置いてそうな本屋で、じっくり立ち読みしてから
買ってくるといいよ。やりたいこととコントロール(クラス)の関連だ
けを知りたいなら、ITフロンティアの逆引き大全あたりがいいかと。
168デフォルトの名無しさん:2005/11/26(土) 11:25:11
VB.Net で作っているプログラム(プロジェクト?)の中に C# のクラスを混在させることって可能なんですよね?
どこかで、できると読んだ記憶があるので。

で、試してみました。
クラスを作ることはできました。
コンパイルエラーは出ませんでした。
が、VB.Net のコード中から、C# のクラスを呼ぶ方法が分かりません。
普通に C# の class で定義したクラス名を記述すると「型が見つかりません」のようにコンパイルエラーとなります。

ググって調べるうちに C# には名前空間の(明示的な)定義が必要と分かったので、VB.Net のルート名前空間と同じ
namespace で囲ってはいます。
169デフォルトの名無しさん:2005/11/26(土) 11:34:12
別にC#では名前空間が必須って訳じゃないけど。
//VSのデフォルトではプロジェクトと同じ名前の名前空間が設定されるけど。

取りあえず前提として、
クロスランゲージはコードレベルの混在ではなくてアセンブリ、つまり.dllや.exe間での相互運用だ。

VB.NETのプロジェクトでC#のプロジェクト(の成果物)を使うのなら、当然参照設定しなきゃならない。
170デフォルトの名無しさん:2005/11/26(土) 11:42:19
>>169 サンク!
えっ、てことはコンパイルかけた後のものを使うってことかぁ〜
やっぱ、VB.Net C# を混在したままコンパイルってのは無理なのかぁ〜
なんか、できちゃいそうな勢いなのになぁ・・・ 残念orz
171デフォルトの名無しさん:2005/11/26(土) 11:45:08
C#<>VB.NETコード変換みたいなのもそこらに転がってるから、
言語独自機能を使ってないのならそう言うのを使えばいいかもね。
172デフォルトの名無しさん:2005/11/26(土) 14:01:01
なぜDLL呼び出しじゃ駄目なんだ?
173デフォルトの名無しさん:2005/11/26(土) 14:48:27
必要性があってやろうとしたわけじゃないんさ。
VB.Net で作成途中のプログラムがあって、C# の勉強がてら、
一つのクラスを C# で作ってみようかなぁ〜と軽く考えたんさ。
DLLに分離して作るほど大掛かりなものじゃないんよ。
174デフォルトの名無しさん:2005/11/26(土) 14:54:08
VisualStudio 2010辺りで実装されるよ
たぶん
175デフォルトの名無しさん:2005/11/26(土) 14:55:13
.netmoduleつくって al.exe でリンク。めちゃめんどい。
176デフォルトの名無しさん:2005/11/26(土) 14:57:47
>>175
モジュール使っても一つのPEファイルの中に収まるようになる訳じゃないぞ。
177デフォルトの名無しさん:2005/11/26(土) 14:59:53
>>176
vbc /addmodule だとそうだが。al.exeならまとめてくれない?
178デフォルトの名無しさん:2005/11/26(土) 15:12:58
くれない。
> モジュール (マニフェストを含まないメタデータ) が 1 つ以上ある場合は、
> Al.exe を使用して、マニフェストを別個のファイルに含むアセンブリを作成できます。
179デフォルトの名無しさん:2005/11/26(土) 15:36:18
>>174
extern "VB"
とか?
180OLE教徒:2005/11/26(土) 17:32:22

つ ILMerge.msi
181148:2005/11/27(日) 04:10:32
Sleipnirのオプションのようなものを作成していた者ですが、
左にツリービュー、右にツリービューで選択した各々の項目が出るプログラムの場合、
どーやるのが一番一般的で効率がいいのでしょうか?

右に出す項目分、全てフォームを作り、貼り付けると結構な量になり、スマートじゃない気がして悩んでます
因みに左にツリービューに出る項目は十数個くらいです
ヒントお願い致します
182デフォルトの名無しさん:2005/11/27(日) 04:18:43
なんでフォームなんだよ
Panelあたりでいいだろ
183デフォルトの名無しさん:2005/11/27(日) 11:05:26
だからさあ、パネルでもなんでもいいけど(コンテナに入れた)コントロールを
デザイン時に予めフォームに貼り付けておくのは量も大量になってロード時間もかかるだろうし、
(フォームのクライアント領域の外に配置しておく、あるいはVisible = Falseで配置しておくって
やり方は)スマートじゃないんんじゃないか、ってことでしょ。

181の書き方にも問題があるが、それぐらい読み取ってやれよ。

>>181
タブページのタブを隠す方法があればね。
実行時には、ユーザーはタブページのタブをクリックする代わりにツリービューの
アイテムを選択すると。

それならすくなくともデザインはスマートにできるんだけど確か普通のやり方では
タブは隠せなかった気がする。

まあパネルの中にタブページを配置すればできないこともないだろうけど。
184デフォルトの名無しさん:2005/11/27(日) 11:08:48
タブで区分けるのと複数パネルで区分けるのと、
量的に何が違うのかと
185デフォルトの名無しさん:2005/11/27(日) 11:15:03
>>184
馬鹿な奴はどこまでも馬鹿だね。
すくなくともデザインはスマートにできる、と書いてあるだろうに。
186デフォルトの名無しさん:2005/11/27(日) 11:16:35
スマート……か?
187デフォルトの名無しさん:2005/11/27(日) 11:24:28
そんな程度で馬鹿なヤツとか罵ってるとは・・・
188デフォルトの名無しさん:2005/11/27(日) 14:27:58
デザインとユーザーインターフェースが連携してないやつって
いるよな。特にVisual系を使ってると、そのへんがおろそかに
なる。設計段階で遷移のことをしっかり詰めておかないからね。
189148:2005/11/27(日) 16:19:15
説明不足で申し訳なかったですが、まさに>>183のおっしゃる通りです
フォームに大量にパネルを張って、ロード時にVisible = Falseにするというやり方を最初にやったのですが、
あまりにもパネルをぺたぺた張りすぎて、見た目的にもこういう作り方は普通なのかな?思ったんです

タブを使って連結させるという方法も、実際に試していたのですが、Regionを使ってタブを消せても、
やはり、ロードに多少の時間がかかり、これもどーなのかなぁと思い、別の方法を考えてみて、

次にやったのがフォームを個数分作って呼び出す方法です
これなら、少なくともフォームをロードする時間は短縮できるのですが、いかんせんフォームの個数が膨大になってしまって(´・ω・`)

結局、答えが見つからないまま迷ってる次第です
190デフォルトの名無しさん:2005/11/27(日) 16:26:13
インスタンスの生成を、暇ができたときにやれば良いんだけどな。
Application.Idleイベント辺りで。
AddHandler/RemoveHandlerする必要があるが。
191デフォルトの名無しさん:2005/11/27(日) 21:40:42
ボタンを押すたびにボタンの背景色を変えるにはどうしたらいいんでしょ?
192デフォルトの名無しさん:2005/11/27(日) 21:47:09
ClickイベントでBackColorプロパティをいじる。
193デフォルトの名無しさん:2005/11/27(日) 22:02:39
>>192
d、select case とカウンタで色かえられますた。
194デフォルトの名無しさん:2005/11/28(月) 11:14:36
初歩的な質問ですいません。
ストアドプロシージャで取得した1つのテーブルの値を各TEXTBOXに値を入れたいのですが、
値がDBNULLとなってエラーを起こします。
SqlConnectionをOPENし、ExecuteNonQueryを実行しただけでは値を取れないのでしょうか?
ストアドプロシージャのOUTPUTからデータの取得するのは単にValueでやっているのですが、
ここが間違いですか?
195デフォルトの名無しさん:2005/11/28(月) 11:26:38
イロイロ間違ってる気がするのでプログラム記述汁
196デフォルトの名無しさん:2005/11/28(月) 11:35:53
このプログラムです。

CMD.CommandType = CommandType.StoredProcedure
Dim com_name As SqlParameter = CMD.Parameters.Add("@com_name", SqlDbType.VarChar, 40)
com_name.Direction = ParameterDirection.Output
Dim record_id As SqlParameter = CMD.Parameters.Add("@record_id", SqlDbType.Int)
record_id.Value = Me.DataGrid1.SelectedItem.Cells(1).Text
CN.Open()
CMD.ExecuteNonQuery()
CN.Close()
Me.Tex_com_name.Text = com_name.Value

record_id.Valueには数値がきちんと入り、ストアドプロシージャの方ではデータは拾えているようです。
CN.Close()は最後にしても差はなく、com_name.ValueはDBNULLとなって帰ってきます。
DataGrid等は拾えるのですが、ひょっとしてCN.Open()の後に
Dim dr As SqlDataReader = CMD.ExecuteReader()を入れないとダメなのでしょうか?
入れてあげて、CN.Close()を最後に持っていった場合はNothingとなります・・・(涙
タスケテ
197デフォルトの名無しさん:2005/11/28(月) 12:02:23
ストアドファンクションならば、結果は普通のSELECTステートメントと同じ。
ストアドプロシージャならば、パラメータで受け取ればいいだけでしょ。
MSDNにまんまサンプルあるはずだけど。
198デフォルトの名無しさん:2005/11/28(月) 12:04:51
>>196
適当なストアド作って実行してみたけど
com_nameにパラメータの値戻るよ?

ストアド側で
SELECT @com_name = '戻したい値'
はやってる?

199194:2005/11/28(月) 14:55:23
>>198
ストアド側こんな感じでやってます↓
company.company_var_name AS [@com_name]
本当はそのようにしたいのですが、なんか怒られるので、ブロックデザインで作ったものを
そのままにしています。
なんかここのような気がしてきたしてきた・・
ちょっとこれから車検にいってくるのでまた後で失礼します。
200デフォルトの名無しさん:2005/11/28(月) 16:49:27
>>199
ストアド側の問題なら環境依存になるから確認しとくけど、SQL Server のT-SQLでいいのか?
それなら戻し方は2種類あるから使い分けが必要。
201194:2005/11/28(月) 20:14:01
遅くなりました。
SQL Server のT-SQLでいいと思います。
OUTPUTの値がNothingということはきちんとデータが取れていないのかな?という気がしてきました。
ということで、WHEREでIDを特定していたのですが、 ID=1みたいに条件を固定した状態でやってみましたが
Nothingでした。
ストアドの部分はクエリアナライザ使っても問題無し。
 なんで?
今は
CMD.ExecuteNonQuery() をCMD.ExecuteReader()に置き換えてます。
202デフォルトの名無しさん:2005/11/28(月) 20:46:47
こんにちは。
当方vb.net2003でwebクライアントを作ろうとしています。

テキストボックスに入力された文字列をPOSTでサーバに送信するんですが、
Shift_jisを想定しています。が、vb.netの内部エンコーディングがutf-8?
であるため、正常に連携できていません。

http://dobon.net/vb/dotnet/string/getencoding.html
を参照すると、バイト型配列を変換する方法が乗っています。
しかし、テキストボックスに入力されたテキストを(textbox1.text)
バイト配列に変換する方法がわかりません。

すいませんが、よろしくお願いします。
203デフォルトの名無しさん:2005/11/28(月) 21:03:41
>>201
CREATE PROCEDURE xxxx
 @record_id integer,
 @com_name varchar(40) OUTPUT
AS
 SET @com_name = '戻したい値'
または
CREATE PROCEDURE xxxx
 @record_id integer
AS
 SELECT @com_name = '戻したい値'
下の方法の場合は SqlCommand#ExecuteScalarかExecuteReader を使う必要がある。
204デフォルトの名無しさん:2005/11/28(月) 21:07:55
>>203
一箇所訂正
誤)SELECT @com_name = '戻したい値'
正)SELECT '戻したい値'
205198:2005/11/28(月) 21:27:54
気になった現象があったので報告

初回
SET @com_name = '戻したい値'
で取得しようとしたらNULLが戻り
SELECT @com_name = '戻したい値'
で値が戻る

再度
SET @com_name = '戻したい値'
でコンパイルし直して実行すると
値が戻る

206デフォルトの名無しさん:2005/11/28(月) 22:22:28
>>202
バイト配列に変える前にUrlエンコードし忘れてるのかも・・・

ttp://dobon.net/vb/dotnet/internet/webrequestpost.html
System.Web.HttpUtility.UrlEncode()の第一引数をtextbox1.Textにすればいけるはず。
207194:2005/11/28(月) 22:47:52
遅い時間に申し訳ないです。今自宅なので検証できないのですが
203を見てフト思ったのですが、
CREATE PROCEDURE xxxx
 @record_id integer,
 @com_name varchar(40) OUTPUT
AS
 SELECT @com_name = '戻したい値'
という形でやってます。
そして勘違いしていた部分というのは「戻したい値」の部分で、「SELECT」は変数に代入する
SELECTではなくてSQLのSELECTです。つまり
SELECT @com_name = mas_com_var_name FORM company where id = @record_id
実際の文ははるかに長いのですが、簡単にするとこんな感じです。
また、戻したい値というのはSELECTした結果のidの値で、IDの通称を@com_nameとしてOUTPUTで戻したいのです。
明日ストアドの部分をまとめてUPします。
遅い時間にありがとうございました。
208194:2005/11/29(火) 11:30:45
おはようございます。少々いじりましたが、以下の文です。
ALTER PROCEDURE xxxxx
@record_id int,--登録ID
@com_name varchar(40) output,--会社名
@com_aaa int output,--郵便番号
@com_bbb varchar(100) output,--番地
@com_ccc varchar(100) output,--アパート類
@com_ddd varchar(12) output,--TEL
@com_eee varchar(12) output,--FAX
@com_fff varchar(50) output,--連絡用メール
@com_ggg varchar(255) output,--url

@com_hhh_id varchar(20) output,--メンバーID
@com_iii varchar(20) output,--パスワード
@com_jjj varchar(60) output,--当社メールアドレス
@com_kkk smalldatetime output,--登録日
@com_lll smalldatetime output,--最終更新日
@com_mmm smalldatetime output--削除日
AS
SELECT [@com_name] = company.company_var_name, [@com_aaa] = company.aaa,
[@com_bbb] = company.company_var_bbb, [@com_ccc] = company.company_var_ccc,
[@com_ddd] = company.company_var_ddd, [@com_eee] = company.company_var_eee,
[@com_fff] = company.company_var_fff, [@com_ggg] = company.company_var_ggg, [@com_iii] = company_record.record_var_iii,
[@com_jjj] = company_record.record_var_jjj, [@com_kkk] = company_record.record_smal_kkk,
[@com_lll] = company_record.record_smal_lll, [@com_mmm] = company_record.record_smal_mmm
FROM company INNER JOIN
company_record ON company.id = company_record.id
WHERE (company.id = @record_id) AND (company_record.id = @record_id)
ひょっとして複数のOUTPUTがある場合はそれぞれのOUTPUTに値を入れないとダメなのでしょうか?
1つのOUTPUTに対して、値をSETしてみたらデータは拾えました。ということは、1つのSELECT文では無理なりでしょぅか?
ブロックデザインで作ってみると「別名」と出ているので、普通にできると思ってたのですが・・・
209デフォルトの名無しさん:2005/11/29(火) 11:43:11
TextとRichTextの識別の方法ってあります?
DataFormats.RtfもDataFormats.TextもどちらもTrueになってしまうのでorz
210209:2005/11/29(火) 11:44:58
あ、GetDatePresent関数を使用しての結果です。
211デフォルトの名無しさん:2005/11/29(火) 11:59:20
え?
例えばIEからD&Dした文字列はDataFormats.TextのときTrueが返って、DataFormats.RtfのときFalseが返ってくるよ?
212209:2005/11/29(火) 12:17:30
Wordの書式付文字列をコピーしたものを
Clipboard.GetDataObjectで取得したIDataObjectでは
どちらもTrueになりますた・・・
213デフォルトの名無しさん:2005/11/29(火) 12:23:03
>>212
そりゃWordならどっちの形式も含んでるだろうからどっちもTrueになるのは当然だろ
IDataObjectは異なる複数の形式のデータを同時に格納できるって点を理解できてる?
214209:2005/11/29(火) 13:09:53
あぁぁぁ・・・
そっか、そりゃそうだわなw
ありがとござんした。
215デフォルトの名無しさん:2005/11/29(火) 15:47:09
>>208
DB板向けの内容になってきたけど、このまま行っちゃいましょう。
>>207でいってるとおりSELECTが問い合わせのSELECTになってますなぁ。
SELECT 別名 = フィールド名 FROM xxxx と
SELECT フィールド名 AS 別名 FROM xxxxは同じ意味で、変数への代入の意味は無いです。
そのプロシージャで[@com_name] = company.company_var_nameやってる部分は
@com_name変数とは全然関係ない@com_nameという別名の付いたフィールドを持った
結果セットを返しているということになります。
問い合わせ結果を変数に代入したい場合、
その問い合わせがスカラー(単一行、単一フィールド)なら次のように書きます。
SELECT @com_name = (SELECT company.company_var_name FROM xxxx)
そのプロシージャの場合、複数フィールドを持っているのでこの方法は向いていません。
どうしてもOUTPUTで返すなら、カーソルを使うか、いったん一時表に突っ込んで
変数の個数分上の命令を繰り返すことになります。
結論から言えば単純に結果セットで返すのが一番です。
216デフォルトの名無しさん:2005/11/29(火) 17:06:04
>>215
MSSQL2000で試してみたら代入できた。
declare @aaa integer
declare @bbb varchar
select @aaa = a1, @bbb = a2 from test1 where a1 = 1
print @aaa
print @bbb
[@aaa] と括弧で囲むと別名扱いになるようだ。[ ] は余計なのでは。
217194:2005/11/29(火) 17:49:31
>>215
ありがとうございます。
結局は私が勘違いしていた事をお詫びします。
てっきり別名=変数名と思ってました。
結果セットという言葉が出てきましたが、初めて知りました。なんとなくイメージはつかめてると思いますが、
ストアドから帰ってきたSELECT * FROM xxxの結果。これが結果セットかと思いますが、
DataGridやListBoxなどにデータを入れることは出来ていますが、TextBoxとなるとデータの入れ方が
本には載っていないのです。
OUTPUTには全然こだわっていません。要はSELECTした結果の値をTextBoxに入れることが出来ればいいのです。
そこで、ストアド側のOUTPUTはとりあえず全部消して、別名(SELECT [@com_name] = company.company_var_name ・・・・)
を作りました。
あとはデータを取得する方法ですが、「Dim dr As SqlDataReader = CMD.ExecuteReader()」を使いますか?
Me.Tex_com_name.Text = dr("@name")やMe.Tex_com_name.Text = dr(0)では値が拾えないのです。
とおもって色々試していたら値が取れました!!
TextBoxのDataBindの事をチラッと本に書いてあった辺りを読んでいましたら「dr.Read()」の一文があり、加えてみました。
そうしたらサクッと取れました。
でも非常に勉強になりました。ストアドも含めてこのまま知らずに作っていってたらと思うと恐ろしいです。
とても助かりました。ありがとうございました。
218デフォルトの名無しさん:2005/11/29(火) 21:55:43
はじめまして。
odp.netを使い簡単なプログラムを組んでいます。
ログイン画面でOracleconnectionを使いユーザー名/パスワード@データソース名
を設定しログインしています。
次のフォームに移り、sql文を実行するためにOracleCommandを使うと
思うんですが、再び、connectionをopenしないとエラーがででしまいます。
フォームをまたぐ度に、connectionをopenしないといけないんでしょうか?
説明がわかりにくいかとおもいますが、よろしくおねがいします。
219デフォルトの名無しさん:2005/11/29(火) 21:58:08
>>218
まずはコードをさらせ。
話はそれから。
220デフォルトの名無しさん:2005/11/30(水) 01:29:54
VCとVB6経験者がVB.NETの派遣仕事をやりそうな勢いです。
ネットや書籍を軽く見た限りでは、
「Cっぽさが付加されて便利になった」程度の認識しかないんですけど、
派遣先は「.NETの経験」にずいぶん重きを置いているのを感じました。

確かに言語のVerUPとしては相当な変更だとは思うんですけど、
やっぱり開発者の順応も大変ってことなんでしょうか?
221デフォルトの名無しさん:2005/11/30(水) 01:40:42
もうちょっとまともな日本語をしゃべってくれ
222デフォルトの名無しさん:2005/11/30(水) 06:46:22
「.Japanese の経験」が浅いんだろ
223デフォルトの名無しさん:2005/11/30(水) 08:16:32
>>218
スコープの問題じゃないの?
同じOracleConnectionを次のフォームでも
使えばいいじゃない
224デフォルトの名無しさん:2005/11/30(水) 14:59:51
>>220
Cっぽくなったって言うより、C#っぽくなった感じだね。
頑張って慣れてくれとしか言いようが無い・・・
225デフォルトの名無しさん:2005/11/30(水) 15:11:54
バイナリ形式で保存されているファイルをテキスト形式に変換したいのですが、どなたか、サンプルや解説のある場所をご存じないでしょうか?
よろしくご教授願います。
226デフォルトの名無しさん:2005/11/30(水) 15:18:38
そんなのサンプルも解説もしようがない。
何のバイナリなのかってところから話を始めないと。
227デフォルトの名無しさん:2005/11/30(水) 18:27:07
要はバイナリダンプしたいんじゃねぇの
228デフォルトの名無しさん:2005/11/30(水) 18:32:05
まずは225にバイナリファイルとテキストファイルの
違いを説明してもらおう。
229デフォルトの名無しさん:2005/11/30(水) 18:35:46
鯖のアドレス、ディレクトリは既にわかっているとして
FTPでのアップロード方法キボン
230デフォルトの名無しさん:2005/11/30(水) 18:37:13
FTPで通信
231デフォルトの名無しさん:2005/11/30(水) 19:54:19
>>230
d
windows標準のFTPをshellコマンドで通信させた
232デフォルトの名無しさん:2005/12/01(木) 01:00:48
233デフォルトの名無しさん:2005/12/01(木) 01:02:10
234デフォルトの名無しさん:2005/12/01(木) 01:04:55
235デフォルトの名無しさん:2005/12/01(木) 01:06:48
236デフォルトの名無しさん:2005/12/01(木) 12:27:48
ASP.NETでブラウザに表示されてる文字をExcelに出力する方法ないですか?
237デフォルトの名無しさん:2005/12/01(木) 12:58:07
今からVB.NETを勉強しようかと思ってるんですが、まずはどの本で勉強するのが効率が良いでしょうか?
プログラム経験は趣味程度でVBAとperlをいじってる位です
238デフォルトの名無しさん:2005/12/01(木) 21:57:01
>>225
つ System.Convert.ToBase64String
239デフォルトの名無しさん:2005/12/01(木) 22:12:11
お世話になります。

タスクトレイに常駐し、あるフォルダを監視するアプリケーションを開発しています。
そのフォルダに対し、ファイルが作成された、削除されたということは検知可能なんですが、
ファイルが上書きされた時にどのように検知すればいいのかわかりません。
一体どのようにすればよいのでしょうか?
240デフォルトの名無しさん:2005/12/01(木) 22:20:01
何で検知してるのかくらい書けと。FileSystemWatcherだろうけど。
LastWriteがChangeしたときでいいだろ。厳密にはもうちょっと絞込みが必要かもしれんが。
241239:2005/12/01(木) 22:24:50
>>240
どうもありがとうございます。

今は実行環境がないので確認できませんが、

Dim watcher As New FileSystemWatcher()
watcher.NotifyFilter = NotifyFilters.LastWrite

このような感じになるのでしょうか?
242デフォルトの名無しさん:2005/12/02(金) 11:34:04
イベントの扱いについて教えてください。
Form1 と Form2 があり、Form1 にて

Private Sub Button1_Click(Byval sender as...) Handles Button1.Click
dim f as new Form2
AddHandler f.Closed, AddressOf TestMethod
f.Show()
End Sub

のような事がやりたいのですが AddHandlerの行で f. のうしろで
イベントが出てきません。
で、WithEvents をつけないとだめなのかな、と思い

Dim WithEvents f as new Form2 としてみたのですが 'WithEvents' は、
ローカル変数宣言では有効ではありません。

となってしまいます。ここで f をForm1のインスタンス変数として
Private WithEvents f as New Form2 だとうまくいきます。

ここで f を Form1のインスタンス変数 ではなく、実現する方法は
ありますか?

243デフォルトの名無しさん:2005/12/02(金) 11:37:59
ん? インテリセンスに出てこなかろうが文法的には問題ないし実際動くだろ?
244242:2005/12/02(金) 12:00:29
>>243
いや、Dim WithEvents f As New Form2

だと、'WithEvents' は、ローカル変数宣言では有効ではありません。

とコンパイルエラーになってしまいます。
245デフォルトの名無しさん:2005/12/02(金) 12:09:24
だれもWithEvents使えなぞと言うとりゃせん
AddHandler f.Closed, AddressOf TestMethod
で良いだろと
246242:2005/12/02(金) 12:14:49
>>245
うほ。勘違いすみません。
できました。インテリセンスを過信しすぎてました。
thx.
247デフォルトの名無しさん:2005/12/02(金) 12:36:25
画面内に存在するコントロールのうち、
ラベルの色を全て変更したいと思います。
そのとき、いちいちラベルを一つずつ変更するのは面倒なので
For i As Integer = 0 To Me.Controls.Count - 1
Next
というループの中でラベルコントロールがラベルの型だけの
ものを取り出して色の変更をしたいのですが
どうすればラベルの型と判定できるのかがわかりません。
Me.Controls.Item(i).gettype.name
とすれば引数で"Label"と返ってくるので文字列が"Label"かどうかの判定で
当初の目的は達成できそうなのですが、型の判定をするのに
コントロールの名前の文字列比較じゃない方法はあるのでしょうか?
また方法がある場合、どうすればよいのでしょうか?
248デフォルトの名無しさん:2005/12/02(金) 12:41:00
TypeOf ... Is
249デフォルトの名無しさん:2005/12/02(金) 14:18:36
>>248
TypeOf って存在をすっかり忘れていました。
どうもありがとうございました。
250デフォルトの名無しさん:2005/12/02(金) 15:05:49
VB.NET+ASP.NETで開発しています。
Sessionの解放に関して教えて下さい。

メンテナンス時間の概念を作りたいとの要望が挙がり
X時以降はログインをさせないという処理を追加しました。
またクライアントが処理を実行(例えば画面遷移、ボタンクリック)しようとした際に
X時以降の時間であれば強制的にメンテナンス中画面に遷移させて終了という処理も追加しました。

ここでIISを再起動せずにサーバと複数クライアント間で有効になっている
Sessionを全てクリアしたいと考えています(破棄でも構いません)
Session.Clearはサーバと単一クライアント間でのクリア処理のような気がするのですが
全てのSession情報をクリアしたい場合にはどのような処理にすればいいのでしょうか?

強制的にメンテナンス画面に遷移するタイミングでSession.Clearを流せばいい気もするのですが
一撃で全てのSessionをクリア、解放するようなことは可能でしょうか?宜しくお願いします。
251デフォルトの名無しさん:2005/12/02(金) 16:10:55
>>246
つうか、使う側のフォームをコンパイルせずにインテリセンス使おうとしてたんじゃないの?
あれってコンパイルがきちんと通った後で利用可能になるような。
252デフォルトの名無しさん:2005/12/02(金) 19:47:51
>>247
趣味の問題なんだけど、
For i As Integer = 0 To Me.Controls.Count - 1
Next

とやるよりは、for eachを使った方がいいかと。

For Each i As Object In Me.Controls
  If TypeOf i Is Label Then
 End If
Next
253デフォルトの名無しさん:2005/12/02(金) 19:51:14
それならAs Controlのほうが自然で便利だぜ。
254デフォルトの名無しさん:2005/12/02(金) 20:22:47
ツリービューのノードに値でアクセスするにはどうすればいいんでしょう
というか、ノードをaddして、そのノードにアクセスしたい時なんですが
やっぱループ回して.textと比較しか無い?
255デフォルトの名無しさん:2005/12/02(金) 20:36:03
そりゃあ同じ名前の違うノードが存在しうるわけだしなぁ
256デフォルトの名無しさん:2005/12/02(金) 23:12:12
ピクチャーボックスに画像がない(・∀・)!のを判断するのはどうしたらいいでしょうか?
257デフォルトの名無しさん:2005/12/02(金) 23:24:01
どうやってピクチャボックスに画像を表示させてんだ?
258256:2005/12/02(金) 23:51:21
PictureBox1.Image = Image.FromFile(strPath)
strPathはファイルパスです。

ちなみにOpenFileDialogでひっぱったイメージファイルは削除できないのですか?
ttp://support.microsoft.com/default.aspx?scid=kb;JA;309482
259デフォルトの名無しさん:2005/12/02(金) 23:56:39
クローン使えばいいんじゃね?

if PictureBox1.Image is nothing then
260256:2005/12/03(土) 00:05:48
>>259
解決しました。
ありがとうございます。
261デフォルトの名無しさん:2005/12/03(土) 00:09:29
DoCmd.TransferText acImportDelim, ,"インポートデータ", _
"C:\Documents and Settings\デスクトップ\ファイル名.csv"


ACCESSSでボタンを作ってこういうのをあてはめたら、
一応押すごとにインポートされるものは出来たんだけど、
ファイル名のところなんだけど、同じフォルダ内にある全ての
CSVをインポート処理してくれるようにならないかな?

欲をいえば、
いくつファイルをインポートしたかメッセージ出てくると、なおいいね。

4つのファイルをインポートしました。

とか
262デフォルトの名無しさん:2005/12/03(土) 00:30:31
>>258
そこに解決方法も載ってるじゃん。(FileStream)

>>261
Dir関数で.csv拡張子を持ったファイルのパスを取得できるから、
ループで見つからなくなるまで回してみるとか。回った回数=
インポートした回数になるし。

.NET風じゃないけれどね。
263デフォルトの名無しさん:2005/12/03(土) 00:37:50
>>262
回答ありがとう。
でも、どうすればいいか思いつかないのさ。。。
264デフォルトの名無しさん:2005/12/03(土) 00:40:30
>>262
> そこに解決方法も載ってるじゃん。(FileStream)
それで解決しなかったりするからねぇ……
265デフォルトの名無しさん:2005/12/03(土) 00:56:31
Dim sFile As String

sFile = Dir("C:\Documents and Settings\Makoto\デスクトップ\適性テスト\*.csv", vbReadOnly)

Do Until (Len(sFile) = 0)
DoCmd.TransferText acImportDelim, , "今月分インポートデータ", _
"C:\Documents and Settings\Makoto\デスクトップ\適性テスト\*.csv"
Loop
MsgBox "インポートしました!"

これでどうかな?
266デフォルトの名無しさん:2005/12/03(土) 01:13:20
>>263
削除するときにPictureBoxにNothingとオブジェクトDisposeを
やってないとか? まあでも、このへんの扱いって妙な感じがし
てたような気がする。(´・ω・`)

実際に削除してるコードとエラー内容がわかるといいんだけど。

>>265
DoCmdに引数にsFileを渡して、Loopの直前にsFile = Dir()を入れ
ておけばいいかと。
267デフォルトの名無しさん:2005/12/03(土) 01:23:38
Dim sFile As String

sFile = Dir("C:\Documents and Settings\Makoto\デスクトップ\適性テスト\*.csv", vbReadOnly)

Do Until (Len(sFile) = 0)
DoCmd.TransferText acImportDelim, , "今月分インポートデータ", _
"C:\Documents and Settings\Makoto\デスクトップ\適性テスト\*.csv"
sFile = Dir()
Loop
MsgBox "インポートしました!"

でしたけど、やっぱエラー出る。。。。。なんでだよー
268デフォルトの名無しさん:2005/12/03(土) 01:27:33
DoCmd.TransferText acImportDelim, , "今月分インポートデータ", _
"C:\Documents and Settings\Makoto\デスクトップ\適性テスト\sFile.csv"

の部分が黄色くなってエラーでるよー
269デフォルトの名無しさん:2005/12/03(土) 01:28:42
何でこのスレで質問してるの?
270デフォルトの名無しさん:2005/12/03(土) 04:12:53
デバッグすりゃ一発じゃん(´・ω・`)
もう少し頭使えよ
271デフォルトの名無しさん:2005/12/03(土) 08:15:52
&
272デフォルトの名無しさん:2005/12/03(土) 10:50:11
一通りの文法とコントール、DB接続が判った
次のステップはなに
273デフォルトの名無しさん:2005/12/03(土) 15:55:45
知るかカバ
274デフォルトの名無しさん:2005/12/03(土) 18:00:37
>>272 彼女作っとけ
275デフォルトの名無しさん:2005/12/03(土) 19:01:37
>>274
ネタじゃなくてマジに同意。
彼女ができたら嫌が応でも精神力が鍛えられる。
プログラマにはアルゴリズムを作る知性も必要だが、それ以上に退屈なデバッグ作業に耐える精神力がなけりゃダメだからな。
276デフォルトの名無しさん:2005/12/03(土) 20:03:52
彼女にINSERT INTOしようとしたら「権限がありません」とエラー
が返ってきました。どうしたらいいのでしょうか?
277デフォルトの名無しさん:2005/12/03(土) 20:32:15
278デフォルトの名無しさん:2005/12/03(土) 23:06:29
TreeView のノードにテキストを設定してツリー表示を行なう時に
そのノードに対して隠しデータ?みたいなのを設定する事は
できますか?

表示はテキストで行ないたいんですが、ノードがクリックされた際には
そのテキストが持つコードを取得したい、みたいな事が
やりたいんですが。。。
279デフォルトの名無しさん:2005/12/03(土) 23:10:34
Tag
280デフォルトの名無しさん:2005/12/03(土) 23:53:07
SQL Server上にデータベースを構築し、VB2005で作るアプリからADO.NETでアクセスしようとしています。

テーブルにはDateTime型のフィールドがあり、そこを検索してデータを取得したいのですが、
Me.TableAdapter.FillBy(DataSet.Table1, Today.ToShortString)
の行までいくとSqlExceptionで止まってしまいます。
datetime型からstring型に変換できないぞコラ、といわれているのはわかるのですが、どうしたら回避できるのでしょうか。
281デフォルトの名無しさん:2005/12/04(日) 02:30:23
VB.netでLLのインスタンス生成が5秒以上かかり遅い場合があるのですが、
どうしてでしょうか?
普段は、一瞬ですむのに、原因が分からないので困ってます。
ngen.exeで事前にコンパイルをしてみましたが効果なしでした。
また、ページアドレスをそれぞれ別のアドレスにしても効果なしでした。
282デフォルトの名無しさん:2005/12/04(日) 02:34:08
LLのインスタンス生成って何?
283281:2005/12/04(日) 13:06:13
>>282

DLLの間違いです。
284デフォルトの名無しさん:2005/12/04(日) 14:21:07
DLLのインスタンスってな(ry

どこかで何か変なことしてるんだろうとしか言いようが無いな
285デフォルトの名無しさん:2005/12/04(日) 16:20:23
ビルドのことだと推測してみるテスト
286デフォルトの名無しさん:2005/12/04(日) 19:55:07
画像の事で質問です。
ASP.NETですが、以下のHPを参考にしてHP上でSQL-SERVERに画像データを登録したり呼び出したりできるようになりました。
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/321uploadform/uploadform.html
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/257aspdbbinary2/aspdbbinary2.html
そこで、フト思ったのですが、メインページ上に表示したい画像があるが、実は画像を変更したい。
できれば過去に登録した画像データに変更したい場合どんな流れになるのでしょうか?
考えた流れが、別ページを開けてそのページ上に画像を列挙し、選択した画像がメインページに表示される
ですが、間違ってますか?
できればFile Fieldのようなものを使いたいのですが、SQL-SERVERに入っている画像データを表示する事が可能なら
そうしたいのですが、どうなんでしょうか?
287デフォルトの名無しさん:2005/12/05(月) 11:03:41
>>281
アンチウイルスが悪さしてると推測
288デフォルトの名無しさん:2005/12/05(月) 12:43:09
またそうやってすぐ他人のせいにする。ダメな奴ほど(略
まあ>>281のレスがタンチンなので想像で書くしかないが、
一番ありうる可能性は例外がトラップされてるって筋書きだと思う。
289デフォルトの名無しさん:2005/12/05(月) 20:00:06
XMLをReadXmlを使ってデータセットに格納していろいろと加工した後
GetXml、もしくはWriteXmlで文字列に戻そうとすると
頭の
<?xml version="1.0" encoding="utf-16"?>
の部分が消えてしまうんですが、これを残すにはどうすればよいのでしょうか?
290デフォルトの名無しさん:2005/12/05(月) 20:09:38
XmlWriterを使う
291デフォルトの名無しさん:2005/12/05(月) 20:47:45
<?xml version="1.0" encoding="utf-16"?>
<HogeSchema>
<HogeSchema xmlns="http://temp.org/HogeSchema.xsd">
<Hoge>
<Status>S</Status>
<HogeStatus>HH</HogeStatus>
<HogeID>0123</HogeID>
</Hoge>
<piyo>
<Status>S</Status>
<piyoStatus>HH</piyoStatus>
<piyoID>0123</piyoID>
</piyo>
</HogeSchema>
</HogeSchema>

な感じのXMLで、たとえばHogeの"Status"の値を変更したいとしたら
xPathは"HogeSchema/Hoge/Status"であってますか?
SelectNodesで値を変更しようとしたのが出来たなかったので
datasetに入れて加工したんですが・・・。
とりあえずdatasetでは無理ということでしょうか?
292デフォルトの名無しさん:2005/12/05(月) 21:47:00
は? 何で?
WriteXmlの引数にXmlWriterを渡せってことなんだが
293デフォルトの名無しさん:2005/12/06(火) 01:29:46
Starter.exe が Main.exe を引数を使って呼び出してるのですが、
Starter.exeもMain.exeも弄らずに、Main.exeに渡された引数を取得する外部プログラムを作ることはできないでしょうか?
294デフォルトの名無しさん:2005/12/06(火) 01:30:40
>Starter.exe が Main.exe を引数を使って呼び出してるのですが、
Starter.exe が Main.exe を引数付きで呼び出してるのですが、
の間違えです。
295デフォルトの名無しさん:2005/12/06(火) 01:34:27
ダミーのMain.exe作れば?
296??:2005/12/06(火) 09:18:16
VB.NETのデータグリッドの操作なのですが、

コンボボックスをデータグリッドに配置したいと思っています

フィールド単位のコンボボックスは配置できましたが
同一フィールドでレコード別のコンボボックスの内容を設定したいのですが
どうしてもできません。
どのようにすればよいのでしょうか?
また、そのようなことは可能でしょうか?

例)
フィールド名:◎◎コード
      コンボ内容
1レコード目 111
      222
      333

2レコード目 555
      666

3レコード目 777
      888
297デフォルトの名無しさん:2005/12/06(火) 09:25:59
どうやってコンボボックスを表示させてるかも分からないからどこで詰まってるのかも分からん
298& ◆LE4UdVRLbE :2005/12/06(火) 09:36:48
http://dobon.net/vb/dotnet/datagrid/datagridcombobox.html
を参考にコンボをつくりますた
掲載されている内容も各レコードとも同一データなので困っています。
うまく説明できずすいません
299デフォルトの名無しさん:2005/12/06(火) 09:43:08
別々のDataSource与えればいいだけじゃん
300298:2005/12/06(火) 10:03:11
>>299
具体的にはどのように・・・すれば・・・
301デフォルトの名無しさん:2005/12/06(火) 11:17:35
>292

Dim sw As New StringWriter

Dim xmlWriter As XmlTextWriter = New XmlTextWriter(sw)

ds.WriteXml(xmlWriter)

Xstr = sw.GetStringBuilder.ToString

として文字列に戻しましたけど
最初のエンコード指定している部分はもどっていませんでした。
ちなみに元のxmlはファイルではなくDBから取得しています。
302デフォルトの名無しさん:2005/12/06(火) 11:27:23
>>301
おや.NET 1.1だと付加されないのか。.NET 2.0で試してたもんだから。
なら作ったXmlTextWriterのWriteStartDocumentを呼んどけ。
303デフォルトの名無しさん:2005/12/06(火) 12:10:43
>302
WriteStartDocument()付ければ上手くいきました。
どうもありがとうございました。
304デフォルトの名無しさん:2005/12/06(火) 15:37:12
VBで画像合成のプログラムを組んでいて、画像の差分を取った数値だけを
どこかに保存したいのですが、どのようにすればいいのでしょうか?

流れ的には



現在RGBの値をRBで数値取得して

PICTUREBOXのサイズを固定して

縦横あわせて

FORでまわして

2つの画像を比較して差分出して…

といった感じです。
305デフォルトの名無しさん:2005/12/06(火) 15:40:36
エクセルVBAのことで質問なのですがある文字列の中に漢字が入っている場合、
何らかの値を返すにはどのようにすればよいのでしょうか?
例えば、
今日の午後 → True
きょうのごご → False
今日のごご → True
キョウのごご → False
キョウの午後 → True
キョウのごご → False
キョウの午後 → True
の様な感じで返すにはどのようにすればよいでしょうか?
306デフォルトの名無しさん:2005/12/06(火) 15:51:23
>>304
で、何が分からないの?

>>305
VBAはスレが違う。
一文字ずつ取り出して文字コード見るのが早そうだが。
307デフォルトの名無しさん:2005/12/06(火) 15:53:05
>>306
移動差分ってどう出せば良いのでしょうか?
画像3枚あるとして 画像1と2 2と3 で比較して かぶった部分をあわせて合成等やれば良いのでしょうか・・・?
308デフォルトの名無しさん:2005/12/06(火) 15:56:34
>>306
ちょっと分かりにくいので、実際の画像を元に説明します。

背景画像とバットをスイングしてる画像があって、
背景画像とバットを持ってる人との差分を取り、差分は配列に保存し、
それを一式繰り返した後に、差分の範囲を出して、変化の中心=軸より
合成する範囲をひと部分決める で、合成した画像を出力。

といったような感じです。
どのようにソースを書けば良いのかが分かりません。
309デフォルトの名無しさん:2005/12/06(火) 15:58:56
>>308
ソースの書き方じゃなくて、そもそもどのように画像を捉えるかが考えられないだけじゃないか?
そんなの言語とか関係なく、ロジックどう組むかの話でしょ。
310デフォルトの名無しさん:2005/12/06(火) 15:59:50
>>309
具体的にVBでやる場合にはどのようにすれば良いのでしょうか?
311デフォルトの名無しさん:2005/12/06(火) 16:05:14
>>310
背景画像とバットを持ってる人の差分って、言語の問題じゃないと言ってるんだよ。
312デフォルトの名無しさん:2005/12/06(火) 16:18:21
ロジックができたんだったらとりあえず組んでみろ。
その中で例えば画像の色を取り出すにはどうすればいいのかとか具体的な問題が出たら質問しろ。
ということ。
313デフォルトの名無しさん:2005/12/06(火) 16:23:57
つうか、こういう回答がほしいのかな?

>>308
> 背景画像とバットをスイングしてる画像があって、
> 背景画像とバットを持ってる人との差分を取り、

画像の差分を取り・・・
これはVB,netの標準ライブラリでは出来ません。

>差分は配列に保存し、
差分を配列に保存・・・
配列は言語仕様であります。上記画像データの差分ってのが配列で扱えれば問題なし。

> 差分の範囲を出して、
差分の範囲が示す意味が不明です。

>変化の中心=軸より
変化の中心を決定してくれるライブラリは標準ではありません。

>合成した画像を出力。
画像の重ね合わせはいろいろとやり方があると思うし、書籍・情報があります。
314デフォルトの名無しさん:2005/12/06(火) 17:11:12
>>313
なるほど…。回答ありがとうございました。
とりあえず、差分が取れないので、PICTUREに一度転送してピクセル座標と色情報をまとめて取っています。
ひとつ質問なのですが、ピクセルごとに色比較するにはどうすれば良いのでしょうか?
315デフォルトの名無しさん:2005/12/06(火) 17:17:28
BitmapクラスのGetPixelとか。
316デフォルトの名無しさん:2005/12/06(火) 17:55:42
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
Set objExec = WshShell.Exec("c:\hogehoge\hoge.exe")
WScript.sleep 3000
Wshshell.SendKeys "{ENTER}"
WScript.sleep 60000
objExec.terminate
WScript.sleep 300000
Loop

hogeを起動しエンターキーを押した次あたりに既に起動しているhage.exeを終了させたいのですが、どうやればいいのでしょうか。
どなたかご教授お願いします。
317デフォルトの名無しさん:2005/12/06(火) 18:02:25
VBScriptもWSHもスレ違いだって。
318デフォルトの名無しさん:2005/12/06(火) 18:46:12
ここ最近スレ違いが多いな
上のACCESS辺りから味を占めた奴が出てきたか
319デフォルトの名無しさん:2005/12/06(火) 19:54:15
スレ違いですか、すいません、どこで聞いたらいいのかわからなくて・・・
板汚し失礼しました
320デフォルトの名無しさん:2005/12/06(火) 20:15:09
VB.NETの正規表現ってPerl並みの力はありますか?
321デフォルトの名無しさん:2005/12/06(火) 20:17:44
Perlの力とやらが分からないのでなんとも
322デフォルトの名無しさん:2005/12/06(火) 21:28:00
はじめまして。
odp.netを使い簡単なプログラムを組んでいます。
最初にOracleconnectionを使いユーザー名/パスワード@データソース名
を設定しログインしています。
次のフォームに移り、sql文を実行するためにOracleCommandを使うと
思うんですが、再びconnectionをopenしないとエラーがででしまいます。
フォームをまたぐ度に、connectionをopenしないといけないんでしょうか?
説明がわかりにくいかとおもいますが、よろしくおねがいします。

プロジェクトのスタートページをモジュールの
Mainプロシージャに設定しています。
モジュールには以下のコードを記述しています。
_________________________________________________________
Imports oraData = Oracle.DataAccess.Client
Module Module1
Public OraConn As oraData.OracleConnection
Public frmSen As New FormSentaku
Public frmDes As New frmDesigner

Public Sub Main()
strConn = "user id = test ; password = test; Data source = test ; "
OraConn = New oraData.OracleConnection(strConn)
Try
OraConn.Open()
Catch ex As Exception
MessageBox.Show("接続に失敗しました")
End
End Try
Application.Run(frmDes)
End Sub

End Module
323デフォルトの名無しさん:2005/12/06(火) 21:30:16
コネクションは使いまわすもんじゃないよ
コストは気にすんな、二回目からはキャッシュが利く
324デフォルトの名無しさん:2005/12/06(火) 22:30:30
>323
どういうことでしょうか?
次のフォームでSQL文を使うため、OracleCommandオブジェクトが
必要なんですが、その際
Dim OraReader As Oradata.OracleDataReader
Dim OraCmd As New Oradata.OracleCommand
(略)
OraCmd.Connection = OraConn
といった様にConnectionの情報が必要なんですが・・・。
325281:2005/12/06(火) 23:01:20
>>281
質問が変でした・・。
改めて質問します。

「ABC.DLL」のFrm_AAAを動的にロードするのですが、
初回のみ遅いのです。

Dim asm As Reflection.Assembly
Dim obj As Object

asm = Reflection.Assembly.Load("ABC")

obj = asm.CreateInstance("ABC.Frm_AAA")    ←初回のみ遅く、5秒以上かかる。


一度実行してしまえば、.NETのキャッシュがきいている?ためか
1秒以内で実行されるのですが、解決方法はないでしょうか?
326デフォルトの名無しさん:2005/12/06(火) 23:28:54
>>324
接続情報も毎回取ればいいじゃん。
VB6時代のADOとADO.netは考え方を変えないとダメだよ。
ADO.netはコネクションプーリングが効く前提で使う場面で開いて、終わったら戻す。

>>325
こっそり1回使えばいいじゃん。
そういう姑息なことをするのがスプラッシュウィンドですよ。
327デフォルトの名無しさん:2005/12/07(水) 10:11:27
VB.NET初心者です

SQLServerに接続するため、データ接続を設定したのですが、
これはODBCの様に、ソリューションとは別に接続設定を保存しているのでしょうか?

違うパソコンにプログラム(exe)を持っていった場合、
SQLServer名が違うこともあるのですが、
その場合は、どのようにして設定を変更すればよいのでしょう?
328前スレ904:2005/12/07(水) 13:59:17
お世話になります

VBでデータを入力し、EXCELを起動し、所定のフォーマットを読み込み、
入力データを流し込み、印刷後保存せずに終了というアプリを作っています。
Excelを開き、ソース上で書き込んだ文字列を表示することはできるのですが、
TextBoxから入力してExcelにデータを流し込もうとすると、

'System.Runtime.InteropServices.COMException' のハンドルされていない例外が
microsoft.visualbasic.dll で発生しました。
追加情報 : メンバが見つかりません。

と出ます。ここをクリアすれば何とかクリアだと思います。
何が悪いのか御教授願います。

329前スレ904:2005/12/07(水) 14:00:45

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

' エクセル起動
oXL = CreateObject("Excel.Application")
oXL.Visible = True

' エクセルのファイルを読み込み、シート1を指定
oWB = oXL.Workbooks.Open("c:\mitsumori.xls")
oSheet = oWB.ActiveSheet
Dim tb1 As Object = TextBox1
Dim tb2 As Object = TextBox2
Dim tb3 As Object = TextBox3
Dim cb1 As Object = ComboBox1
Dim tb4 As Object = TextBox4

' セル挿入(タイトル)>挿入位置を変更する
REM 1行目
oSheet.Cells(34, Kou).Value = tb1 'ここでコケる
oSheet.Cells(34, Itemname).Value = tb2
oSheet.Cells(34, Qua).Value = tb3
oSheet.Cells(34, Unit).Value = cb1
oSheet.Cells(34, Cost).Value = tb4
330デフォルトの名無しさん:2005/12/07(水) 15:21:36
とりあえずコントロールをそのまま放り込むのは違うだろう
331デフォルトの名無しさん:2005/12/07(水) 15:51:07
フォームにFunctionを作成しているのですが、
そのFunctionの中から、フォームのボタンやラベルを参照できません
( ´Д⊂ なんで・・?

やりたいことは、
別フォームから、そのフォームのコントトールの値を取得したいので、
Functionを作って受け渡し、と思ってるのです
332デフォルトの名無しさん:2005/12/07(水) 15:55:26
参照が無いからじゃないかな
333デフォルトの名無しさん:2005/12/07(水) 15:58:32
参照って、どうしたらいいですか・・?
ぐぐったけど、理解できなかったです( ´Д⊂ 
334デフォルトの名無しさん:2005/12/07(水) 15:59:31
できないわきゃない
できないなら何か間違ってる
335デフォルトの名無しさん:2005/12/07(水) 16:05:16
VB.NETの解説サイト読んで理解できないのを
掲示板の限られたレスでどうやって理解させられると言うのか

適当に本でも買え
336前スレ904:2005/12/07(水) 18:44:55
>>330
ありがとうございます
とりあえずキャストするのかと思いましたがMSDN見たりぐぐったりしたのですが、
正解までたどり着けません・・・
またよろしくお願いします
337デフォルトの名無しさん:2005/12/07(水) 18:56:46
そもそも何故テキストボックスをオブジェクトに取るの?
338322:2005/12/07(水) 21:50:44
>>326
なんとか出来ました。
ありがとうございました
339デフォルトの名無しさん:2005/12/08(木) 07:32:01
>>329
tb1.Text
340前スレ904:2005/12/08(木) 09:56:00
>>337
ご指摘ありがとうございます
As ObjecrはソースでValue=の部分を見たときObjectと書いてあったので
Objectだと思ったのですが間違っていたのでしょうか・・・
(まだヘタレですみません)
またよろしくお願いします

>>339
ご指摘ありがとうございます
期待通りの動作になりました
ありがとうございました
またお願いします
341デフォルトの名無しさん:2005/12/08(木) 13:32:17
解決したから蛇足だけど、普通はHOGE as stringにtextbox1.textを取るんじゃねーかな?と
342デフォルトの名無しさん:2005/12/08(木) 14:13:44
VB2005では、多重継承ができる(ようになる?)・・・と聞いたような気がする(かなりあやふや)のですが
できるとしたらどのようにするのでしょうか?
343デフォルトの名無しさん:2005/12/08(木) 14:19:04
どこで聞いた
344デフォルトの名無しさん:2005/12/08(木) 14:30:16
むむむ・・・やはり夢か・・・
ちょっとぐぐって出所確かめてきます。
345デフォルトの名無しさん:2005/12/08(木) 17:53:38
なるべく平素にしようという潮流で、何故に多重継承が必要?
346デフォルトの名無しさん:2005/12/08(木) 20:51:26
男クラスと女クラスを多重継承して、両性有具クラスを作りたい
347デフォルトの名無しさん:2005/12/08(木) 21:10:18
作れば?
348デフォルトの名無しさん:2005/12/08(木) 23:37:56
VB.NET(開発ツール .NET 2003)で作成したクラスライブラリ(DLL)をVB6で使用
する方法を探しています。
349デフォルトの名無しさん:2005/12/09(金) 01:37:08
ではそのまま明日も探してください
350デフォルトの名無しさん:2005/12/09(金) 08:22:24
永遠にな
351デフォルトの名無しさん:2005/12/09(金) 09:17:55
>>345
平素にするために多重継承が必要。
多重継承を許したら複雑になったというのは、
多重継承が悪いのではなく、多重継承をきちんと理解していないスキルの低いプログラマのせい
352デフォルトの名無しさん:2005/12/09(金) 09:20:15
ならなおのことVBには導入できないな
353前スレ904:2005/12/09(金) 10:09:16
お世話になります

>>328>>329から
TextBoxから数値を取るのをやめてDatasetとDataGridに変えてデータ入力することに
なりました。
必要なDatasetの行数は分かっているのですが初めからセルを出しておく
(必要なセル数を指定する)方法が大変そうなので、入力すると次の行が
出てくる(普通にセルを配置)状態でコードを書いています。
出来上がったコードをビルドしてデータを入力したのですが、
'System.IndexOutOfRangeException' のハンドルされていない例外が system.windows.forms.dll で発生しました。
追加情報 : インデックス 3 に値がありません。
とエラーが出てしまいます。
自動的に生成した行には値が無いと考えてNothingを検知したら処理を打ち切る
ようにしたつもりなのですがやはりだめでした
解決の妙案がありましたら御教授下さい。
354デフォルトの名無しさん:2005/12/09(金) 10:33:12
行の値が無いんじゃなくて行そのものが無いんだが
355前スレ904:2005/12/09(金) 13:28:18
>>354
ありがとうございます

行が無いことを検知することはできないのでしょうか?

またお願いします
356デフォルトの名無しさん:2005/12/09(金) 17:31:13
行の数と取りたい行番号を比較すりゃいいだろ
357デフォルトの名無しさん:2005/12/10(土) 12:49:01
Definstanceってなんですか?
VB6からVB.NETのコードに変換したらこんなのついてきました
358デフォルトの名無しさん:2005/12/10(土) 12:53:46
ぐぐれ
359デフォルトの名無しさん:2005/12/10(土) 13:23:49
360デフォルトの名無しさん:2005/12/10(土) 13:39:54
>358-359
サンクスです。ちょっと違和感ですが理解できました。
ですが次の問題がでてしまいました、それは変換後のフォームにListView
コントロールを貼り付けてコーディングしようとするとインテリセンスが
1つしかでないことです。

これはどういういことになりますか?
361デフォルトの名無しさん:2005/12/10(土) 15:05:16
いまさらですがVisualStudio2003のプログラミングスタイルについて教えてください

VB.NETはオブジェクト指向でプログラムしてるって感じがしないのですが
どの辺がオブジェクト指向になっていますか_?

現在VB.NET開発している印象としてはVB6のスタイルであるイベントにごりごり
書いていくという点では変化がないと思います。
たとえばフォームの表示では、
form1.show()が → a = new form1; a.show();
という具合にJavaを意識した仕様になっているようです。
362デフォルトの名無しさん:2005/12/10(土) 17:01:22
>a = new form1; a.show();
VBじゃねぇぇぇぇぇ

とりあえず、>>361が考えるオブジェクト指向ってどんなコーディングか見てみたいものだな
363前スレ904:2005/12/10(土) 18:40:21
>>356
ありがとうございます

ずばりそのとおりで行の総数を拾ってきたまではよかったけど、
どうやって現在の行の数と比べるんだろうって悩んでました。
Dim GetGridCounter = 0
Dim CellLineP1 = 34
For GetGridCounter = 0 To LastLineP1 Step 1

If DataTable1.Rows.Count > DataGrid1.Item(GetGridCounter) 'ここを何とか
oSheet.Cells(CellLineP1, Head).Value = DataGrid1.Item(GetGridCounter, GridCell.GridHead)
oSheet.Cells(CellLineP1, Itemname).Value = DataGrid1.Item(GetGridCounter, GridCell.GridItemName)
oSheet.Cells(CellLineP1, Qua).Value = DataGrid1.Item(GetGridCounter, GridCell.GridQua)
oSheet.Cells(CellLineP1, Unit).Value = DataGrid1.Item(GetGridCounter, GridCell.GridUnit)
oSheet.Cells(CellLineP1, Cost).Value = DataGrid1.Item(GetGridCounter, GridCell.GridCost)
CellLineP1 += CellJump
参照できないと苦戦して1日経過して・・・

Dim GetGridCounter = 0 ・・・どうみてもただの変数です
1日ずっと下らんところで悩みながらも何とかなりました

ありがとうございました
またお願いします
364デフォルトの名無しさん:2005/12/11(日) 16:29:20
>form1.show()が → a = new form1; a.show();
>という具合にJavaを意識した仕様になっているようです。

それがVB.NETクオリティ
365デフォルトの名無しさん:2005/12/11(日) 17:41:37
どの辺が「Javaを意識した」なんだろうか
a = new form1
a.show()
なんて、オブジェクト指向なら当然のことだろうに・・・
366デフォルトの名無しさん:2005/12/11(日) 17:48:48
つーかそれVB6でもできるよ
Dim a As Form1
Set a = New Form1
a.Show
367デフォルトの名無しさん:2005/12/12(月) 13:48:56
別に風の拳は殺意の波動倒してないだろ
368デフォルトの名無しさん:2005/12/12(月) 13:49:16
どうみても誤爆です
本当にありがとうございました
369デフォルトの名無しさん:2005/12/12(月) 16:02:25
これまで Access2000 で業務システムの開発を行ってきましたが、VBへの移行を検討しているうちに
VB6 → VB.NETとなってしまいました。
.NETについてはほとんど未知のものなのですが、とりあえず質問させて下さい。

Access のようなレポートの作成は Visual Studio .NET 付属の Crystal Report で十分可能なのでしょうか?
出来るけど機能不足とか、設定が市販のものに比べて大変とかの場合、市販の帳票コントロールも検討しています。
作成予定の帳票は社内システムの納品書や一覧帳票、POSシステムのレシート等です。

お勧めの構成があったら、よろしくお願いします。
370デフォルトの名無しさん:2005/12/12(月) 16:18:37
ただのマクロじゃなく、プログラム処理したいってだけならAccessVBAにしといた方が楽かと
371デフォルトの名無しさん:2005/12/12(月) 16:32:19
369じゃないけどウチもvbにしたいことはしたい
アクセスだと壊れてしょうがないから
あとクライアント側にもアクセス要るのがいいかげん鬱陶しくなってきたし
エクセル並に簡単に印刷出力得られるなら市販でもオケ
372デフォルトの名無しさん:2005/12/12(月) 16:41:49
付属のクリスタルレポートは
修正パッチ当ててやらないとまともに描画してくれない
373デフォルトの名無しさん:2005/12/12(月) 19:00:48
授業の課題で計算機を作っています。
JavaScriptのeval関数みたいに、文字列で作られた計算式を一気に
演算できるような関数はVB.NETに用意されているでしょうか?
下記のサイトを参考にしながら、四苦八苦しています。
ttp://www.red.oit-net.jp/tatsuya/java/calc.htm

Dim Formula as String
Formula = "123" & "+" & "123"
TextBox.Text = eval(Formula)

みたいな感じで答えが出せたら楽だなぁと思って。
やっぱりSelect Caseで演算子毎に分岐計算させるべきですかね。
374デフォルトの名無しさん:2005/12/12(月) 19:11:14
JScript.NETのevalメソッドでも呼ぶか。
375デフォルトの名無しさん:2005/12/12(月) 22:08:31
>>374
いま実行環境が無いんで検索して作ってみましたが、msscript.ocxを
インストールしてMicrosoft�ScriptControlを使うってことですか?

Dim Formula as String = "123" & "+" & "123"

Dim SC As Object = CreateObject("ScriptControl")
CallByName(SC, "Language", CallType.Let, "JScript")
CallByName(SC, "AddCode", CallType.Method, Formula)

Dim Ret As Object = CallByName(SC, "Eval", CallType.Method, "Calc()")

TextBox.Text = Ret.ToString

もうちょっと簡単な表記があるのかもしれませんが、ここまで手間
がかかるなら、素直にVBだけで作ったほうがいいかもしれませんね。
レスありがとうございました。もっと精進します。(`・ω・´)
376デフォルトの名無しさん:2005/12/12(月) 22:22:36
いやそれならOption StrictがOff(デフォルト)なら
Dim formula as String = "123" & "+" & "123"
Dim sc = CreateObject("ScriptControl")
sc.Language = "JScript"
Dim ret As Object = sc.Eval(formula)
TextBox1.Text = ret.ToString()
これでいいし。

つかJScript.NETと言ったんであってJScriptとは言ってないんだが……。
JScript.NETで引数をevalする静的メソッド持つクラス作ってDLLにしてそれ参照、とか。
377373:2005/12/12(月) 22:55:50
>>376
いやー、斜め読みが精一杯なんでそこまで行くには力不足かも。
まず教えてもらったコードを関数にして試してみようと思います。
エラー処理なんかもまとまってないんで、もうちょっと形になって
から進めてみますね。たびたび、ありがとうございます。
378デフォルトの名無しさん:2005/12/13(火) 20:35:06
質問です。
.NETになってからなんでもかんでもクラスなわけですが、
複数のフォーム等でクラスを共有するやり方というのは
モジュールにクラス変数をパブリックで定義する方法で
いいのでしょうか。
379デフォルトの名無しさん:2005/12/13(火) 20:59:33
参照渡しでもいいんじゃねーか。
380デフォルトの名無しさん:2005/12/13(火) 21:25:01
クラスを共有ってよく意味がわからんな。
共有したいのはデータと違うんかい?

テキストボックスのテキストは「データ」でしょ。
フォームは、自分の上に乗ってるテキストボックスという「他人」の、
テキストというデータにアクセスできる。

なぜそれが出来る?
それはテキストボックスがプロパティ(Text)という形でデータを外部に公開する方法をもっていて、
フォームは「その」テキストボックスへの参照を持っているから。

つまりこれとまったく同じようにすればいい。
参照とかプロパティの意味がわからんのなら勉強するしかない。
381378:2005/12/13(火) 21:37:45
わかりづらくてすいませんです。
Public ○○ As New クラス名
としてプロジェクト内のどのモジュールからもアクセスできるように
という意味です。共有するクラスの中には複数のオブジェクトがあ
ります。よろしくお願いします。
382デフォルトの名無しさん:2005/12/13(火) 22:02:58
いや、「君の」文章がわかりずらいとかじゃなくて、
「君が」基本的にわかってないんだよ。

いきなり基本の学習をスキップして成果を挙げようってそりゃ無理。
掲示板でそんな基本から教えてもらおうってそりゃ無理。
観念して勉強するかPG廃業するかしなない。
383デフォルトの名無しさん:2005/12/13(火) 22:46:39
>>381
Module A内:Public Hoge as new class1

Module B内:Hoge.text = "B"
Module C内:Hoge.text = "C"
つー感じに、ModuleAで宣言したPublic クラスをBやCで操作できるかどうか、ってのを聞きたいのか?
384378:2005/12/13(火) 23:23:43
>>382
スイマセン。今までVBばかりだったので本格的なオブジェクト指向について勉強します・・

>>383
そうなります。今までVBではそうしてきて、.NETでもそれで動くのですが、.NETの正規なやり方
ではないような気がしまして一般的というか多く使われてる手法を聞きたかったのです。
385逆噴射J ◆lW31l/VtQc :2005/12/13(火) 23:31:49
>>377
つい先日作ったばっかりの、ちょうどいいのがある。
JScript.NETのソース、アセンブリ(DLL)、コンパイル用バッチファイルの3点セットだよ。もってけドロボー。
http://kenmon.hp.infoseek.co.jp/contents/tools/Evalution.lzh
386デフォルトの名無しさん:2005/12/13(火) 23:39:40
>>384
俺もVBからだけど、.Netに変えてモジュールは使わなくなった。
代わりに参照渡しでやるようになった。
それが正しいやり方かどうか知らんけど。
387373:2005/12/14(水) 00:00:33
>>385
うおー、なんてタイムリーな。
さっそく落としていま読んでます。
百円均一の電卓くらいにはまっとうなのができるようがんばります。
388デフォルトの名無しさん:2005/12/14(水) 00:09:48
モジュールってのはVB5の時点で既にレガシーだったんだけどね。
まあサブクラス化とか特殊な理由で使わざるをえない場合はあったけどさ。

っていうかね、「グローバルにアクセス可能なオブジェクトが欲しい」なんて思うのは
(そういうケースが皆無とまではいえないが)まあまず間違いなく設計が悪いんだよ。
プログラミングに対する考え方が根本的におかしい。

普通はさあ、データってのはそれを見る必要がある奴(オブジェクト)にだけ
見えるようにするんだよ。
でなきゃ複雑性が縮減されないでしょ。
PCでいったら、CRTにキーボードのデータを渡す必要はないでしょ。
389デフォルトの名無しさん:2005/12/14(水) 01:05:14
列見出しがあって、行見出しがあって、セルにコンボボックスを利用できる
コントロールないですか? ちなみにDataGridでごりごりつくってみました
が、列の色や幅を変えるにも四苦八苦しています。。。。。。。
DataSet,DataTable,DataTableStyle......ややこしすぎる
ListViewやDataViewなんかもあるみたいだがどれがポピュラーなのかもわからない
390デフォルトの名無しさん:2005/12/14(水) 02:30:47
.NET Framework標準クラスライブラリには無い
CodeProject辺り覗けば結構ある
391デフォルトの名無しさん:2005/12/14(水) 08:04:37
>>390
そか標準にはないのか。オーバーロードしてまで使うのはちょと抵抗が。。。
CodeProjectって英語じゃん。コツつかまないと探せないな
392デフォルトの名無しさん:2005/12/14(水) 08:12:16
>>391
オーバーライドな
393デフォルトの名無しさん:2005/12/14(水) 09:26:17
>>386
だな、責務の考え方をきちんとすればおのずと共有じゃないことに気づく。
元フォームが次のフォームに情報を渡す場合は参照。
各フォームが独立して同じデータを見るのであれば、将来を考えてそれぞれ見るように作る。
394前スレ904:2005/12/14(水) 14:49:52
お世話になります

ページ選択とデータグリッドでデータを書き込むアプリケーションを作っています
(たとえば1ページがデータグリッド100行として210行目に書き込む必要があるとき
は2ページ目の10行目に記入)。
ただ現状はデータグリッドが表示されていない(入力待ちの1行しか出ていない)
のですが、これで空白のデータグリッド100行を初めから表示する方法はないで
しょうか?
395デフォルトの名無しさん:2005/12/14(水) 15:37:09
>>394
行番号を指定してデータを書き込むという流れが、ちょっと理解しに
くいんだが。とりあえず適当なTextBoxか何かで入力フォーム作って、
SQLでインサートするってのはダメなんかな?

行番号で管理するより重複しないIDを作ったほうが楽かと思うけど。
396前スレ904:2005/12/14(水) 16:10:16
>>395
ありがとうございます

>>とりあえず適当なTextBoxか何かで入力フォーム作って、
>>SQLでインサートするってのはダメなんかな?
データグリッドでないと具合が悪いです。
1ページ目は1枚20行、2ページ以降は1枚40行記入する請求書を作る
プログラムです。
入力する項目の数が未定なので次ページボタンを押すとさらに次の
ページが出てくる。前のページボタンを押すと今まで入力した分が
表示される、というものを作っています。
入力された時点で配列にデータを突っ込んで最後に印刷ボタンを押
すと先ほどの条件で作られているExcelフォーマットにデータを流し
込んで印刷/終了という流れです。

またお願いします。
397デフォルトの名無しさん:2005/12/14(水) 18:51:17
始めまして、宜しくお願いします。
PictureBox1にpicMainのImageを半透明コピーをしたいのですが
-------------------------------------------------------
'PictureBox1のGraphicsオブジェクトを取得
Dim g As Graphics = PictureBox1.CreateGraphics()

'画像を読み込む
Dim img As Image = picMain.Image

'ColorMatrixオブジェクトの作成
Dim cm As New System.Drawing.Imaging.ColorMatrix()
'ColorMatrixの行列の値を変更して、アルファ値が0.5に変更されるようにする
cm.Matrix00 = 1
cm.Matrix11 = 1
cm.Matrix22 = 1
cm.Matrix33 = 0.5F
cm.Matrix44 = 1
'ImageAttributesオブジェクトの作成
Dim ia As New System.Drawing.Imaging.ImageAttributes()
'ColorMatrixを設定する
ia.SetColorMatrix(cm)
'ImageAttributesを使用して画像を描画
g.DrawImage(img, New Rectangle(0, 0, img.Width, img.Height), _
0, 0, img.Width, img.Height, GraphicsUnit.Pixel, ia)
'リソースを開放する
img.Dispose()
g.Dispose()
--------------------------------------------------------------
上記のプログラムを実行した後に Dim g As Graphics = Graphics.FromImage(picMain.Image) が実行されるとエラーで終了してしまうのですがどうすればいいのでしょうか?
ちなみにPicMainのgに対して色々描画するプログラムを組んでいます。
398デフォルトの名無しさん:2005/12/14(水) 19:03:44
img.Dispose
これが原因じゃね?
399前スレ904:2005/12/14(水) 19:07:34
>>396
自己解決できました
For rowcounter = 0 To LastLineP1 Step 1

DataTable1.Rows.Add(DataTable1.NewRow())

Next


またお願いします
400デフォルトの名無しさん:2005/12/14(水) 19:08:32
>>397
>img.Dispose()

しかしなんかコピペ厨丸出しのコードだなあ。。
理解してもないサンプルコードをコピペして動かない動かないってアホかと思うけど。

質問する前になんでコードの中身を理解しようと思わないんだろう。
401デフォルトの名無しさん:2005/12/14(水) 19:22:22
経験豊富な皆さんにお聞きしたいことがあります。
最近VB.NET2003を初めて色々な本等で勉強しているのですが、そろそろステップアップに何か作ろうと思っています。
しかし持っている本等には基本的な創作例しかなく、もう少しレベルの高い物に挑戦してみたいのです。
何か創作例等が記載してあるようなサイトや書籍等知っている方がおられましたらどうか教えて下さい。
宜しくお願いします。
402デフォルトの名無しさん:2005/12/14(水) 19:45:56
MSの1冊1万ぐらいする書籍とか
403デフォルトの名無しさん:2005/12/14(水) 20:23:19
創作って・・・
404デフォルトの名無しさん:2005/12/14(水) 20:32:46
そうだな。
OS付属のメモ帳とまったく同じ動作をするエディタを作ってみたら
どうだろう。MSDNのサンプルソースで十分できると思うし。
405369:2005/12/14(水) 21:47:28
>>370 >>371 >>372

レス、どもです。

やっぱり付属のものって使いづらいんでしょうかね?
それを考えると、Accessって結構すごい。

今検討しているのが
Visual Basic 2005 Express Edition + 市販レポート
です。
一応、SQLサーバーとも連携出来るようなので、この組み合わせが一番安いかも。

ただ、Pocket PCを使った業務用アプリケーションもいずれ作らないといけないんですが、
それを考えると普通にVisual Studio 2005を買ったほうが無難かな?
そうすると、20万くらいは行ってしまいそう・・・
406デフォルトの名無しさん:2005/12/15(木) 00:05:22
>>398,400
宣言したら解放しないといけないものだと思っていました。
その部分を削ったら正常に動きました。
本当にありがとうございました。
407デフォルトの名無しさん:2005/12/15(木) 06:31:24
確実に、理解できてないコピペ厨だったな
408デフォルトの名無しさん:2005/12/15(木) 11:52:36
vb.netにて、axWebbrowerを使用せずにhttps通信をする方法を知っていらっしゃる方、是非ご教授ください。
また、サンプルコードなどがありましたら是非URLを教えてください。
何卒宜しくお願い致します。
409デフォルトの名無しさん:2005/12/15(木) 11:58:00
HttpWebRequest
410デフォルトの名無しさん:2005/12/15(木) 12:20:07
DataGridで、指定した行・列にカーソルを移動させるには、
どうしたらいいですか?
411デフォルトの名無しさん:2005/12/15(木) 12:26:43
CurrentCell
412デフォルトの名無しさん:2005/12/15(木) 13:13:49
>>409
サンプルプログラムがあれば、宜しくお願い致します。
413410:2005/12/15(木) 13:39:13
解決しました、ありがとうございます
414デフォルトの名無しさん:2005/12/15(木) 14:00:10
>>412
ぐぐれ
いくらでもある
415デフォルトの名無しさん:2005/12/15(木) 14:32:01
>>414
httpでのサンプルは仰る通り幾らでも出てきたのですが、httpsでのサンプルは
一つも見つかりませんでした。
ちなみにhttpでのサンプルのアドレスを単純にhttpsに変更しただけでは駄目でした。
是非サンプルURLを教えてください。
416デフォルトの名無しさん:2005/12/15(木) 15:32:29
TextboxのCursorプロパティにIBeamを設定し、
Focusメソッドを実行したのですがキャレットが表示されない・・・?
という現状に悩んでいます。

フォームのLOADイベント内で
If Me.Textbox.Cursor Is Cursors.IBeam Then
というif文で確認しても設定済みになっているのですが。
矢印キーで確認すると、どうもキャレットはTextboxに存在するけれど
見えない?ようです。
こんな事象の発生原因や回避方法等ごぞんじでしたらご教授ください。
417デフォルトの名無しさん:2005/12/15(木) 15:40:52
>>415
相手の鯖はちゃんと認証された鯖か?
418デフォルトの名無しさん:2005/12/15(木) 16:27:57
>>416
状況がさっぱり把握できないが、とりあえずキャレットとマウスカーソルのIBeamとは何の関係も無い。
419デフォルトの名無しさん:2005/12/15(木) 16:50:04
>>417
認証されています。
420デフォルトの名無しさん:2005/12/15(木) 16:57:58
>>419
接続エラーの内容ぐらい晒してくれ

ちなみに公的認証されてない証明書(自分で発行した証明書)
だとICertificatePolicyを実装してごまかすことは出来る
421前スレ904:2005/12/15(木) 18:30:06
お世話になります

DataGridに直接データ書き込んでいきます。
DataGridにはあらかじめページ数に対応したセルを生成してあります。
DataGridの最後の行に書き込んだとき、次の行が自動で出るのを止め
させたいのですが、いいアイデアが浮かびません。
これができないと初めにページ数分のセルを用意した意味が無くなって
しまいます。
妙案があったら御教授ください。

よろしくお願いします。
422410:2005/12/15(木) 18:41:48
Formに「閉じる」というボタンを作り、
FormのKeyDownイベントで取得しているのですが、
KeyPreviewを設定してもDataGridにフォーカスがある時は、
押したキーを取得できません。

どうすればいいでしょうか?
423デフォルトの名無しさん:2005/12/16(金) 09:54:57
>>422
KeyPreview プロパティ
424デフォルトの名無しさん:2005/12/16(金) 10:21:21
>>421
直接書き込むの意味がよく分からんが、
DataSourceを対象のDataTableのDefaultViewにしてそれのAllowNewをFalseにすればいいんじゃね
425デフォルトの名無しさん:2005/12/16(金) 12:39:40
お世話になります。
VBに殆ど触れた事がないレベルの初心者です。

ファイルの読み込みに関する質問なのですが、
VB6で作成したバイナリファイルが.netではうまく読み込めません。
(中身は
0.1
0.12
0.11
のように数字が縦に並んでいるデータです)
VB6の場合は
Open CDA & "\" & CDB For Binary Access Read As #1
等を使って読み込めていたのですが、.netの場合↑のコードをアップグレードした
FileOpen(1, CDA & "\" & CDB , OpenMode.Binary, OpenAccess.Read)
等を使っても中身の数値を認識せず、文字化け状態のまま読み込んでしまいます。

何か知恵がございましたら、どうかよろしくおねがいします。
426デフォルトの名無しさん:2005/12/16(金) 12:41:54
SaveFileDialog を使ってファイルの保存をしたいんですけど
If sfd.ShowDialog() = DialogResult.OK Then
System.IO.File.Copy(serverPath, sfd.FileName, True)
End If
の部分で、同名ファイルがなければ何事もなく保存されるんですけど
同名ファイルが存在した場合は「上書きします。「はい」「いいえ」」
が出て、そこで「はい」を押しても保存されません。
何故か sfd.ShowDialog() = DialogResult.OK の評価で
falseになっているらしくて else を入れれば拾えるんですけど
そうするとそもそも最初のダイアログの「保存」「キャンセル」のボタンで
キャンセル押した時に入ってしまいますし、
どうすれば保存できるのかわかりません。
というか何故こんな事になってるのかがわからないんですが・・・
ダイアログの作成では特に変な事は何もしてません。

対応方法お分かりになる人がいましたらよろしくお願いします。
427デフォルトの名無しさん:2005/12/16(金) 12:56:30
>>425
> のように数字が縦に並んでいるデータです)
縦にって、それはどう見てもテキストデータの概念なんだが。
バイナリエディタで見たときにどうなってるんだ?

>>426
親フォームが無いとそうなるバグっぽい。.NET 2.0では直ってる。
一応、FileNameが空文字列かどうかで判断できる。
428前スレ904:2005/12/16(金) 13:00:22
>>421
ありがとうございます。
ご指摘の通りで期待通りの動作をするようになりました。
ありがとうございます。
またお願いします。
429425:2005/12/16(金) 13:12:50
>>427
すみません、解説ミスりました。
件のバイナリファイルはテキストファイルを加工してできた物なのですが、
その元ネタのテキストファイルが、さっき言った縦に数値の並んでるファイルでした。
読みたいバイナリファイルをバイナリエディタという物で見てみた所、
00とかFCとかズラズラ並んでました。
430デフォルトの名無しさん:2005/12/16(金) 13:32:00
どう加工したんだっての。
大体バイナリに文字化けも何も無いだろ。
431425:2005/12/16(金) 13:40:28
どう加工したのかは、やった事だけなら
「テキストファイルを二つに分けて、それぞれバイナリにして保存」
ですけど、その加工するのに使ったVB6ツールのソースを消失してまして…

エラーメッセージに (文字化けとしか見えない文字列)はsingleとして読み込めない、
云々と書いてあったので、文字化けって読み込んでるのかと思ってしまいました。

やっぱり、肝心要の加工の詳細がわからないと無理でしょうか。
432デフォルトの名無しさん:2005/12/16(金) 14:33:38
>>427
なんと、バグでしたか・・・
基本的に上書きはありえないんで
あきらめるしかないかな。
どうもありがとうございました。
433デフォルトの名無しさん:2005/12/16(金) 15:58:06
VB.NET+ASP.NETで開発しています。

DataGridを使ってPage_Load時にデータを表示させる処理を作りました

略)
DataGrid.DataSource = dsetSQL.Tables("Table").DefaultView
DataGrid.DataBind()

これでデータは表示できるのですが、動的にセル単位にコントロール(ボタンやハイパーリンク)を
設定したいのですが「実行時に自動的に列を作成する」にチェックを入れると無理なんでしょうか?
434前スレ904:2005/12/16(金) 18:24:35
お世話になります

データグリッドに新しい行を追加するときに使用した、
DataTable1.Rows.Add(DataTable1.NewRow())
という部分なのですが、生成した行を初期化する方法は無いでしょうか?
生成した行を操作しようとすると、
'System.InvalidCastException' のハンドルされていない例外が microsoft.visualbasic.dll で発生しました。
追加情報 : 型 'DBNull' から型 'String' へのキャストが有効ではありません。

というエラーが出てしまいます。
ならは行を生成した時点でNothingを中に入れることができれば良いのかと
考えたのですが、それを実現する方法が分かりません。
妙案があったら御教授ください。
よろしくお願いします。
435前スレ904:2005/12/16(金) 20:05:53
>>434
自己解決できました
ありがとうございました
436デフォルトの名無しさん:2005/12/16(金) 20:38:42
>>427
後半のレス本当か?
SaveFileDialogは散々つかってるが、そんな怪現象はまったく経験してないけど。
>>426のコードの例外処理あたりにバグがあるだけだと思うが。

何かソースってある?
本当にそんなあからさまなバグがあればMSにソースあるはずだけど。

.NETのVersion1.0の話かなあ。
俺は1.1(2003)しか使ったことないから。
437デフォルトの名無しさん:2005/12/16(金) 21:40:20
>>436
親フォームが無い状態ってのは普通にWinFormアプリを作る限りまずありえないからね。
サンプルコードなら
Module Test
  Sub Main()
    System.Console.WriteLine(New System.Windows.Forms.SaveFileDialog().ShowDialog().ToString())
  End Sub
End Module
この実質一行。
438デフォルトの名無しさん:2005/12/16(金) 21:43:57
だからまあバグと言うよりは仕様に近いんだろうけど、
.NET 2.0でOKが返るようになったからバグと言う表現を使った。
439デフォルトの名無しさん:2005/12/17(土) 22:48:51
TextBoxにfocusメソッドを使用した場合、もともとTextBoxに文字列がある場合、
全選択されてしまうのでうが、これを回避し、文字列の先頭にキャレットを
持ってくる方法はありませんでしょうか?

http://www.atmarkit.co.jp/fdotnet/dotnettips/268tbcaretend/tbcaretend.html

を参考にしてselectメソッド使用すれば回避できそう、と思い
TextBox.Select(0, 0)を仕込んで回避できましたが。。。
もしfocusメソッドだけではなく、tabキーでのカーソル移動時にも
文字列の全選択をしたくない場合、

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vbtskcontrollinginsertionpointineditcontrol.asp

のように、enterイベントが発生したら下記コードを走らせて…
TextBox.SelectionStart = 0
TextBox.SelectionLength = 0

っていうコードを、 すべてのTextBoxに対して記述するしかないんでしょうか。
もっと簡単にやる方法ってないでしょうか。


VB6.0のSetFocusもこのような仕様でしたっけ?
440デフォルトの名無しさん:2005/12/17(土) 22:59:22
.net ver.2.0 でOK
441デフォルトの名無しさん:2005/12/17(土) 23:18:27
TextBoxクラスを継承して好きな挙動のTextBox作ればいいんじゃないの。
442デフォルトの名無しさん:2005/12/18(日) 00:18:56
VB6.0には詳しくないのだがSetFocusとFocusではそもそも違うだろ。。。
名前がなw
443439:2005/12/18(日) 02:25:55
アドバイスありがとうございます。

>>441
TextBoxクラスを継承し、独自のクラスを作り、それを利用する
ということですね。ありがとうございます。この方法なら
すべてのtextboxのイベント発生に対してコーディングする、
という作業をしなくてすみますね。早速tryしてみます。
>>440
ver2.0ならこういった事象はおきない、ということでしょうか。

当方、VB.NET(フレームワークのバージョンは1.1)で
何とかVB6.0のTextboxの動作とまったく同じ動作
(正確には「見かけ上まったく同じ動作に見えればよい」)
を実現しようとしておりまして。。。
「Textboxにfocusあてただけで全選択されるのは見た目が変わっちゃうな…」
と思って改善しようとしております。

ただ、現状はfocusやtabでのカーソル移動時の全選択くらいかなーと
思っているんですが、もしもtextboxで、
これ以外に6.0と.NET間で見た目上の違う動作があるのなら。。。ガクガク(((( ;゚Д゚))))ブルブル
頑張らねば。。。



444デフォルトの名無しさん:2005/12/18(日) 03:24:22
439さんの質問に関連しますが6.0同様の動作をするTextboxを.NETで作るには
自らTextboxクラス作るしかないんでしょうか。6.0用の動作を簡単に実現する
クラスとかはM$さんからは提供されたりしてはいないんでしょうか。やはり地道に
作成するしかないということですかねぇ。
445デフォルトの名無しさん:2005/12/18(日) 10:14:36
.netでJavaのJDBCのようにデータベースのクライアント入れなくても
ドライバ置いておくだけで、データベースにアクセス出来る仕様って
ありますか?
446デフォルトの名無しさん:2005/12/18(日) 10:58:39
OleDbとかODBCとか
447デフォルトの名無しさん:2005/12/18(日) 18:28:45
6.0のFlexGridがとても使いやすかったのに、VS2003に付いてる
DataGridはなんであんなに使い辛いんだろう? 体裁整えるだけ
なのに、いろいろ面倒な手順がいるし。

みんなはグレープシティの高いやつ使ってるのかな?
448デフォルトの名無しさん:2005/12/18(日) 19:38:17
VBと比べるのは愚行だよ。
449デフォルトの名無しさん:2005/12/18(日) 20:47:15
>>446
クライアントアプリ入れないとドライバ入らなくないですか?
各クライアントにドライバ入れるのが数が多くなると非常にメンドいので。
450デフォルトの名無しさん:2005/12/18(日) 21:23:03
ADOじゃあかんのかいな。
451デフォルトの名無しさん:2005/12/18(日) 22:55:55
>>450
ADOでも良いんですが、自分の理解が間違っていたら申し訳ありませんが、
例えばOracleに接続する際にADOを利用する場合にはOracleのDB Provider
を用意する必用があり、クライアントにインストール作業は必用だと理解
しているのですが。。。

JavaだとType4ドライバを共有ライブラリのディレクトリにコピーすれば
動作するんですが。
452デフォルトの名無しさん:2005/12/18(日) 23:01:03
Oracleで開発したとき
新規に用意したテストマシンには
Oracleクライアントインストールした覚えがないんだが
453デフォルトの名無しさん:2005/12/19(月) 07:35:45
>>452
データベースのドライバはどのように組み込んでいるのでしょうか?
454デフォルトの名無しさん:2005/12/19(月) 07:52:36
>>452
オラクルはクライアント入れないと
アクセスできないだろ
455デフォルトの名無しさん:2005/12/19(月) 10:58:52
ハッシュテーブルって2次元配列できるんですか?
ヘルプ見てもそういう例文が載ってないし・・・
456デフォルトの名無しさん:2005/12/19(月) 11:27:17
別にやっても構わない
Hashtableだろうがobjectには変わりないからな
457 ◆1at2S5ONYs :2005/12/19(月) 12:02:42
今、VB.NETでダイアログボックスを使ってピクチャーボックスの保存、
読み込みをできるようにしたいと思っているんですが、どなたか教えて
いただけませんか?
458デフォルトの名無しさん:2005/12/19(月) 12:08:48
こういうコテ半って釣りだよね。
今日は寒いのに太公望とは。
459デフォルトの名無しさん:2005/12/19(月) 12:19:01
age
460デフォルトの名無しさん:2005/12/19(月) 16:45:32
テキストボックスの入力制限についてで、やりたい事は「数字だけ(小数点も含む)入力」です。
まず、色々な所に書いてある

If IsNumeric(e.KeyChar) Or e.KeyChar = ChrW(8) Then
Else
e.Handled = True
End If

というコードを追加してみました。
これでは、"."が大量に書けてしまうので、

If IsNumeric(e.KeyChar) Or Not (TextBox1.Text.EndsWith(".") And e.KeyChar = ".") Or e.KeyChar = ChrW(8) Then
Else
e.Handled = True
End If

と変えてみたのですが、これだと最初に"."が書けてしまって困っています
最初だけ"."を書かせない場合には、どうすればいいのでしょうか?

461デフォルトの名無しさん:2005/12/19(月) 17:14:30
コピペには対応できないんじゃね?
TextChangedで正規表現で一括チェックした方が楽そう。
@ITの会議室に数値の正規表現が論じられたスレがあったけど。
462デフォルトの名無しさん:2005/12/19(月) 17:35:31
Decima.Perse
とか使った方がええんでない?
463デフォルトの名無しさん:2005/12/19(月) 18:57:53
>>460
初回の"."は"0."と置き換えるようにするとか。
464デフォルトの名無しさん:2005/12/19(月) 20:02:24
>>460
何が難しいのかさっぱり理解できないけど。
まず落ちついてどういう処理をすべきか言葉にしてみたら。
こういうことじゃないの?

Select Case テキストボックスの文字列
  Case ""
    数字だけ受けつける

  Case 整数
    数字と小数点を受け付ける

  Case 実数
    数字だけ受け付ける

End Select

でも個人的には先頭の文字がデシマルポイントでも全然かまわないと思う。
465デフォルトの名無しさん:2005/12/19(月) 23:06:54
>>451
色々ミドルウェアを見てみたけど、
クライアントインストール無しでってのは見当たらなかったな。
本家のODP.NETも結局クライアントに入れる必要あるし。

OracleクライアントもODBCの設定も不要な
DLL形式のドライバって需要ありそうだけどね。

MS SQLはADO.NETにSqlClientが統合されてるけど、
こういうとこでMS謹製に分があるのは仕方ないと思う。
466デフォルトの名無しさん:2005/12/20(火) 02:34:32
VB.NET 2003のプログラムをVB 2005 Express Editionに移植してみたら
Threadの操作で、Thread.SuspendとThread.Resumeに「古い形式です」とかの警告が出やがった。
変わりにThread.Sleep(0)とか使おうとしてみたが、今度は「共有メンバにインスタンス経由で云々」
もうね、面倒くさいんで古い形式のままSuspend & Resume使うことにしたよ。
467デフォルトの名無しさん:2005/12/20(火) 07:42:03
>>465
やはりそうですか。
クライアント配布はコスト増の大きな要因ですから、パカパカ
データアクセス手法を変えるのであればJDBCと同程度には
してもらいたいですね。

何でもかんでもレジストリに登録ってのがよくも悪くもの部分だとは
思うけど。
468デフォルトの名無しさん:2005/12/20(火) 19:54:14
DataGridコントロールのヘッダが、
コントロールのリサイズ時に、
最後の列だけでも良いので
幅がぴったり合うようになるサンプルのようなものはありますか?

リサイズすると、
ヘッダが切れてしまった、見た目が悪いのをどうにかしたいです。
469デフォルトの名無しさん:2005/12/20(火) 23:05:06
ヘッダってのはカラムのことかな?

カラム幅に -2 を設定する(-1だったかもしんない)と
カラムの所属する親コントロールのサイズに対して均等割り付けできたと思う。

最後の列だけでいいなら、resizeイベントで
columns[columns.count - 1].width = - 2 とかすればいいんじゃない。
470デフォルトの名無しさん:2005/12/20(火) 23:48:36
>>469
返信ありがとうございます。

GridColumnStyles へ add する
DataGridTextBoxColumn の width に値を渡してやりましたが、
-2だと、非表示、-1だとヘッダの文字列にサイズが合うようです。

-2はたぶん要素の文字列にサイズが合うのだと思うのですが、
いかがでしょうか?
471デフォルトの名無しさん:2005/12/21(水) 00:07:20
…あれ?そうだったっけ…。
ListViewでそんなことした記憶があったんだけど、違ったか。
ごめんごめん。

じゃあ、
1. columns を for か foreach で回しながら
最後の column を除く column.width の和を算出。

2. DataGrid.width - 上の和で、
最後のColumnの左辺からDataGridの右辺までの幅を出す。

3. columns[columns.count - 1].width = 2で出した幅
とか。
472デフォルトの名無しさん:2005/12/21(水) 00:12:33
>>471
説明が下手ですみません。

ヘッダの幅を、セルに入ってる文字にあわせるのではなくて、
DataGridコントロール、そのものの幅に合わせたいと思っています。

ヘッダの幅は設定した値で固定なので、
DataGridコントロールそのものの幅を変更すると、
ヘッダが途中で切れてしまって見栄えが悪いので、
そこをなんとかしたいと思ってます
473デフォルトの名無しさん:2005/12/21(水) 00:15:33
出来れば、
最後のヘッダカラムか先頭のヘッダカラムのWidthを
DataGridコントロールのWidthが変化時(resize)に、
自動で変化させて、ヘッダの後ろに出来る隙間を埋めてあげたいのですけれど、
良い方法ってご存知ないでしょうか…
474デフォルトの名無しさん:2005/12/21(水) 11:34:48
5万円出して市販コントロールを買うことを勧める
475デフォルトの名無しさん:2005/12/21(水) 19:27:47
VB6質問スレでスレ違いと指摘されましたので、マルチになってしまいすいませんが
こちらで改めて質問します。

開発環境:VB6sp3
実行環境:VB6ランタイム インストール済

この環境から、
「開発環境を.NETに移行するが、実行環境は変えずに済む方法」はありますか?
つまり、.NETでVB6と完全に同じモジュールを作れるのでしょうかといったことなのですが。
476デフォルトの名無しさん:2005/12/21(水) 19:29:00
無理
477デフォルトの名無しさん:2005/12/21(水) 19:38:38
>>475
スレ違い

移行絡みの話はVB6スレでどうぞ
478デフォルトの名無しさん:2005/12/21(水) 20:03:17
困りました。
教えてください。
私はVB.net2003を使用しています。
Windowsupdateで、.NET Framework 2.0をインストールしました。
すると、VB.net2003が起動できなくなりました。
今まで作っていたプログラムも起動しません。
何か解決策はありますか?
VB.net2003の開発環境で、
.NET Framework 2.0はインストールしてはいけなかったのでしょうか?
479デフォルトの名無しさん:2005/12/21(水) 20:07:11
完全に別物だから問題ないはずなんだが。
私はVS2002とVS2005Express入れてるし。
とりあえず修復インストールでもしてみたらどうだ。
ところで起動しないと言っても色々あるが、どんな症状なんだ?
480478:2005/12/21(水) 20:34:45
>>479
>とりあえず修復インストールでもしてみたらどうだ。
当然しました。
そしたら、途中でバグって?修復できなかったです。
で、仕方ないからVB.net2003を削除して再インストールと考え実行。
しかし、削除しきれないし、インストールも出来ないです。
もちろん、その際、.NET Framework 2.0はアンストール済みです。

>ところで起動しないと言っても色々あるが、どんな症状なんだ?
.NET Framework 2.0をインストールした時点では、
VB.net2003を起動すると、デバッガの選択肢が二つ出ます。
二つとも選択して各々試してみましたが、VB.net2003の起動
というか、プログラム作成、それと、過去のプログラムファイル
を開くことは出来ませんでした。
481デフォルトの名無しさん:2005/12/21(水) 21:43:43
>>472
大体471の方法で出来るよ。
DataGridView用でC#でプロパティ名はうろ覚えでしかも走り書きだが
適当に読み換えて使え。


int Total = 0;

// とりあえずRowHeaderの幅を足しとく
Total += DGView.RowHeadersWidth;

  // 末尾を除くColumnにアクセスする
  for( int i = 0; i < DGView.Columns.Count - 1; i++ ){

  // Columnの幅を足していく。
  Total += DGView.Columns[ i ].Width;

  // Widthに含まれないボーダだかマージンだかの分。ないと微妙にズレる。
  // 場合によってはここで足す値をちゃんと取得する必要があるかもしれない。
  Total++;

  }

// DataGridの幅から末尾のColumnを除くHeader部分(Total)を引いた値を、
// 末尾のColumnの幅に設定する。
DGView.Columns[ DGView.Columns.Count - 1 ].Width
  = ( DGView.Width - Total );


これを実行する場面は、
DataGridのResizeと、ColumnWidthのResizeと、
RowHeaderのResizeと、後は必要なら起動時等の初期化の時。
482デフォルトの名無しさん:2005/12/21(水) 22:55:11
>>471
>>481

ご丁寧にありがとうございました。
チャレンジしてみます。

しかし、DataGridって、Column数をすぐに返してくれるプロパティってないでしょうか^^;
スクロールバーが表示されてるかされてないかとか…
いろいろ大変です。
483デフォルトの名無しさん:2005/12/22(木) 01:59:39
DataGridの最後の行を編集するのを禁止するには
どうやったらいいすっか?
484デフォルトの名無しさん:2005/12/22(木) 02:05:28
DataSourceをDataViewにしてAllowNewをFalseにする
485483:2005/12/22(木) 02:08:17
>>484
ありがとう!
486デフォルトの名無しさん:2005/12/22(木) 03:35:21
質問させてください。
使用しているのはVB.NET2003なのですが、フォームを表示するときに
ただ表示するのではなく、例えばMSNメッセンジャーでメールが来たときのように
下からフォームがススッと移動してきて表示されるようにしたいのですが、そういう場合はどこをいじればよいのでしょうか。
色々検索してみたのですが、まったくヒットしないので、どなたか教えていただければ幸いです。
487デフォルトの名無しさん:2005/12/22(木) 07:31:53
>>486
Top
488デフォルトの名無しさん:2005/12/22(木) 09:41:32
お世話になります。

VB2003でのことなんですが、
親クラスに
Public Overridable Sub testSub()
Public Overridable Sub testSub(Byval str as String)
というメソッドがあるとします。
このクラスを継承した子クラスで上記のメソッドを
Public Overrides Sub testSub()
Public Overrides Sub testSub(Byval str as String)
というようにオーバーライドしようとすると、
「Overloadsに宣言されていなければいけません」
というエラーになります。
確かにそれは理解できるのですが、
Public Overloads Sub testSub()
Public Overloads Sub testSub(Byval str as String)
というように宣言するとエラーが出なくなりました。
Overridesの宣言は必要ないのでしょうか?
また、親クラスのメソッドにはOverloadsの宣言は必要ないのでしょうか?
489前スレ904:2005/12/22(木) 13:31:47
亀レスだけどお世話になります
>>483
DataTableでやるならこういうのも良いかも
 DOBON.NETより

'CurrencyManagerを取得する
'ここではDataGrid1.DataSourceに
'DataTableオブジェクトが設定されているものとする
Dim cm As CurrencyManager
cm = CType(Me.BindingContext(DataGrid1.DataSource), _
CurrencyManager)
'DataViewを取得する
Dim dv As DataView = CType(cm.List, DataView)
'新しい行の追加を禁止する
dv.AllowNew = False
490デフォルトの名無しさん:2005/12/22(木) 13:55:13
VS2003.NET + .Net Framework1.1環境です。

XmlDocumentをNetworkstreamでネット経由転送する場合、
BinaryReader/Writerではエラーは出ませんがCPU負荷率が100%と
なってしまい、ハングアップしてしまいます。XmlDocumentを転送する
場合は、どのリーダ/ライターを利用するのが適切なんでしょうか。
491デフォルトの名無しさん:2005/12/22(木) 14:15:31
エディター画面で、関数単位、リージョン単位と同じように、
関数内の任意ブロックをエディタ上でたたむ(?)ことって出来ますか?

例えば

Private Function func1() As Integer
 ・・・
 For i to 100
  ・・・
  ・・・
 Next
 ・・・
End Function



Private Function func1() As Integer
 ・・・
 +For i to 100...
 ・・・
End Function

こんな感じに
492デフォルトの名無しさん:2005/12/22(木) 14:19:12
>>491
やってみたらエラーになりますた(><)
493491:2005/12/22(木) 14:24:35
>>492
メソッド内ではRegion使えないって言われますよね…;
494デフォルトの名無しさん:2005/12/22(木) 15:11:39
>>490
BinaryWriter使ってどう読み書きしてるんだ?
BinaryWriter.WriteにはXmlDocumentを引数にとるものはないし
XmlDocument.SaveやXmlDocument.WriteToにBinaryWriterにBinaryWriterを使うものも無いが。
495前スレ904:2005/12/22(木) 15:57:53
お世話になります。

ファイルの有無を確認し、ファイルが無いときはファイルを作成、
ファイルが有る時はファイルを開いて処理をするプログラムを作成
しています。

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If IO.File.Exists("smpl.txt") = False Then
IO.File.Create("smpl.txt")
End If
Dim Reader As New IO.StreamReader("smpl.txt", System.Text.Encoding.GetEncoding("Shift-JIS")) 
Do While Reader.Peek >= 0
ListBox1.Items.Add(Reader.ReadLine())
Loop
Reader.Close()
End Sub

これでファイルが存在しないとき、ファイルを作成てIfから抜けた後で
例外が発生します。
'System.IO.IOException' のハンドルされていない例外が mscorlib.dll で発生しました。

追加情報 : プロセスはファイル "C:\Documents and Settings\cloud\My Documents\Visual Studio Projects\fileop\bin\smpl.txt" にアクセスできません。このファイルは別のプロセスが使用中です。

プロセスが使ってるってことはDisporse等で開放すれば良いと思うのですが、
そういう命令がありません。

どのようにすれば対策できるでしょうか。
御教授ください。
496デフォルトの名無しさん:2005/12/22(木) 16:06:53
File.Createが返すだろ?
497デフォルトの名無しさん:2005/12/22(木) 16:09:36
そもそもCreateしたときは中身空なのは分かりきってるんだから
If Not(File.Exists("****")) Then
    '作成
Else
    '読み込み
End If
とか、Peekを見るよりReadLine()の返り値がNothingがどうかチェックした方が自然じゃね、とか。
498デフォルトの名無しさん:2005/12/22(木) 16:09:54
>>IO.File.Create
これが原因
以下の書き方ではいかんのか?

If IO.File.Exists("smpl.txt") Then
 Dim Reader As New IO.StreamReader("smpl.txt", System.Text.Encoding.GetEncoding("Shift-JIS"))
 Do While Reader.Peek >= 0
  ListBox1.Items.Add(Reader.ReadLine())
 Loop
 Reader.Close()
else
 IO.File.Create("smpl.txt")
End If
499デフォルトの名無しさん:2005/12/22(木) 16:10:39
めちゃくちゃ早いなwwwww
500498:2005/12/22(木) 16:13:42
なんかかぶったな。
別のやり方としては、

IO.File.Create("smpl.txt")
の部分を以下に書き換えるとか。
Dim C as System.IO.FileStream
Try
  C = System.IO.File.Create("smpl.txt")
Finally
 if Not C is Nothing then
  C.Close()
 end if
end try
501デフォルトの名無しさん:2005/12/22(木) 16:30:37
それならシンプルに
Dim fs As IO.FileStream = IO.File.Create("smpl.txt")
fs.Close()
でいいんじゃない?
502前スレ904:2005/12/22(木) 16:33:49
お世話になります。
>>496 >>497 >>498 >>500
ありがとうございます。
要はファイルを開いた時点で再度ファイルを確認することはないってことですね。
(変な例えだと新聞読もうと捜して右手に取った後、もう手に取ってるのに新聞を
探すようなことをするコードだった・・・?)
実例見てスッキリしました。
ありがとうございました。
またよろしくお願いします。
503最凶VB厨房:2005/12/22(木) 17:43:28
>488
>Overridesの宣言は必要ないのでしょうか?
基本クラス型の変数に派生クラス型のインスタンスを入れて
基本クラスのメソッドを呼んだとき、
Overridesの有る無しで呼ばれるメソッドが違います。

>また、親クラスのメソッドにはOverloadsの宣言は必要ないのでしょうか?
省略可です。
504デフォルトの名無しさん:2005/12/23(金) 04:33:52
チェックボックスのフォーカス制御について質問(ご相談)です。
チェックボックスにtabキーなどでフォーカス移動した際に、

「チェックボックスのフォーカスは文字の方に表現されるので、
文字のないチェックボックスはフォーカス状態が
見かけでは判別できなくなる。」
  参照:ttp://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard17.htm

とのことなのですが、もしフォーカスがあたっていることを明示的に
知りたい場合、みなさんならどうされていますか?
自分としては
・フォーカス設定時にバックカラーを変更する
くらいしか思いつかないのですが、どんなやり方が一般的でしょうか。
チェックボックス入力欄の四角自体を点線で囲えればいいんでしょうが。。。
505デフォルトの名無しさん:2005/12/23(金) 11:53:29
* 俺様ルールで勝手な表示をされてもユーザーは困惑する。
* 文字のないチェックボックスを置く、など愚の骨頂。
506デフォルトの名無しさん:2005/12/23(金) 16:03:03
> どんなやり方が一般的でしょうか。
そんな小細工はしないのが一般的
507デフォルトの名無しさん:2005/12/23(金) 17:25:58
文字の無いチェックボックスってのが、どういう設計で出てきたのか
聞いてみたいな。Imageプロパティに適当なピクトグラムを貼って使
ってもいいと思うんだけど。
508デフォルトの名無しさん:2005/12/24(土) 00:27:36
form1とform2があったとして
form2の中でform1のメンバーになぜアクセスできるのかわからん
例えば、form1.mHerNameみたいにform2でform1のインスタンスを
つくっていないので参照できてしまうのはどういうわけなんだろう
509デフォルトの名無しさん:2005/12/24(土) 00:34:25
デフォルトインスタンス、とか?
510デフォルトの名無しさん:2005/12/24(土) 00:35:10
>>508
規定インスタンスがあるからじゃね?
511508:2005/12/24(土) 00:43:16
>>509-510
規定とかデフォルトって、例えばform1とform2はそのインスタンスに属して
いるということなのか? そしてそのインスタンスはIDEに隠蔽されていて
編集とかできないってことなのかな
512デフォルトの名無しさん:2005/12/24(土) 00:45:44
まてまてまて
まてまて
言ってることがおかしいぞ?
513デフォルトの名無しさん:2005/12/24(土) 00:50:12
何かを徹底的に勘違いしてる悪寒。
514508:2005/12/24(土) 01:06:56
うーん勘違いか。目的は共通のクラスがほしかっただけなんだが
たくさんのフォームのどこからでも使えるクラスの作り方って
public なクラスとして宣言したらよいのか?
515デフォルトの名無しさん:2005/12/24(土) 01:10:51
むむむ?
何か話が通じてないな…

クラスの作り方がどうとかという話ではなくて、
デフォルトインスタンスって書いたのは、
要するにフォームのと同一の名前を記述することで、
自動的にインスタンス化されたフォームにアクセスできるってものだ。

はっきり言って止めてほしい…
516508:2005/12/24(土) 01:16:22
>>515
なるほど。そういう仕組みでフォームにアクセスできるのか。
そのデフォルトインスタンスってのはVB.NETに限って特有のことって
考えてよい?
517デフォルトの名無しさん:2005/12/24(土) 10:41:44
DrawStringについてお伺いしたいのですが、
文字を選択した状態を表示するためにFillRectangleとDrawStringを同じ位置に描画すると、
文字がずれてしまうのでStringFormatにGenericTypographicを指定してします。
これで思ったとおりの位置に表示されるのですが、連続した文字などを描画すると、
最後の数文字の文字間隔が狭く表示されてしまいます。こんな感じ→ a a a a a a aaaa
これをGDIのTextOutで描画したときと同じように等間隔で表示する方法は無いのでしょうか?
ご教授お願いします。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Dim g As Graphics = Me.CreateGraphics
  Dim f As New Font("MS Pゴシック", 12.0!)
  Dim fmt As StringFormat = StringFormat.GenericTypographic
  g.FillRectangle(Brushes.Blue, 10, 10, 80, 20)
  g.DrawString("aaaaaaaaaa", f, Brushes.White, 10, 10, fmt)
  g.Dispose()
End Sub
518デフォルトの名無しさん:2005/12/24(土) 14:36:39
>>517
再現できないけど。
DrawStringでRectangleFを指定しても同じく再現できない。
519517:2005/12/24(土) 14:50:16
>>518
ぱっと見ても分からないくらいの差です。
スクリーンショットを取って確認したところ、前方の文字間は2Pixels
空いてるのに後方の文字は1Pixelsしか空いていませんでした。
520デフォルトの名無しさん:2005/12/24(土) 15:30:26
>>519
なるほど本当だ。
しかし、(どうしてStringFormatにGenericTypographicが返す値を指定すると
そうなるのかはよくわからないけど)それならStringFormatなんて指定しなきゃいいんじゃないの?

何がやりたいのかいまいちわからないけど、要は塗りつぶした領域内に収まるように
文字を描画したいんだよね?

それならオーソドックスに文字を描画する座標を計算すればいいだけなのでは。
たとえば領域のy方向の中点から文字の高さ(g.MeasureStringで取得)の半分を引いた値を
DrawStringのy座標の値にするとかね。
521デフォルトの名無しさん:2005/12/25(日) 00:16:30
505-507
なるほど、わかりました。
参考にさせていただき検討します。

ちなみに、なぜそのような仕様になったかというと。。。

使用者「このチェックボックス、横の説明文みたいな箇所いらんよ。いちいち書かなくてもユーザはわかってる項目だしさ、スペース無駄だし。」

(文字なくしたチェックボックスを提示)

使用者「画面のレイアウトはこれでいいよ。ユーザ的にもOKだ。でも、欲を言うとtabキー移動時にフォーカスあたってるかどうかがわからないね。わかる方法ないかね? 点線かなんかで囲うとかさぁ?」

(え、どうしよう、普通はどうするんだ・・・?)
522デフォルトの名無しさん:2005/12/25(日) 03:43:04
テキストのフォントに輪郭をつけるにはどうすればいいでしょうか
523デフォルトの名無しさん:2005/12/25(日) 13:21:49
>>521
なら、そのチェックボックスが持ってる機能の頭文字とか絵文字を
ひとつだけ表示しておいたらどうだろう? 1文字も許されないよ
うなスペースも無いとかならダメだけどさ。

機能説明の無いチェックボックスなんて、本来存在してはいけない
んだけどな。
524デフォルトの名無しさん:2005/12/25(日) 16:26:39
>>522
輪郭のついたフォントを用意する。
525デフォルトの名無しさん:2005/12/25(日) 16:32:48
MSXでやった方法は
フォントをズラして2度書き
526デフォルトの名無しさん:2005/12/25(日) 19:30:35
>>525
それだと影は付くだろうけど、アウトラインにはならないかも。
上下左右に4回ずらしてやったらいけるかな。(w
527デフォルトの名無しさん:2005/12/25(日) 19:34:41
528デフォルトの名無しさん:2005/12/26(月) 16:12:44
Win2K上で開発していて、WinXPでテストをすると
LunaのおかげでFormが小さくなってしまって、
見た目が崩れてしまいます。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=19853&forum=7&7
↑これと同じ悩みなのですが解決できないものなのでしょうか??
529デフォルトの名無しさん:2005/12/26(月) 20:24:32
>>528
それってあるあるw
あとAutoAcale = TrueにしとくとWinの言語バージョンによって
勝手にウィンドウやボタンのサイズが変わったり。
本当にしょうもないよね。

確かフォームが表示される前にClientSizeをコードで指定してやれば
対処可能だったと思ったけど、そういう小細工を弄するより
余裕をもったデザインをする方が結局楽だと思う。

まあそうもいかない場合もあるけど。
530デフォルトの名無しさん:2005/12/26(月) 20:32:26
AutoAcaleってなんですk
531デフォルトの名無しさん:2005/12/26(月) 20:42:16
>>530
民明書房刊『.NET開発におけるWindowsフォームの秘儀』参照の事
532デフォルトの名無しさん:2005/12/26(月) 20:43:33
X 秘儀
O 秘技
533デフォルトの名無しさん:2005/12/26(月) 21:01:03
素直に間違い認めろよw
534デフォルトの名無しさん:2005/12/26(月) 23:17:48
プロパティウィンドウとかドッキング不可能にする設定ないですか?
画面の上や右にもっていくと勝手にくっつきます
VB6のころはドッキングするウィンドウを選択できましたが今回は
なくなったのでしょうか
535デフォルトの名無しさん:2005/12/27(火) 00:32:55
>>534
おいおい目が見えないのかい。
ウィンドウドラッグしてるときIDEのステータスバーを見てみ
VS2003のIDEはVB6のより自由度高いよ。
536デフォルトの名無しさん:2005/12/27(火) 01:00:17
>>535
あ、タスクバーになんか書いてますね
なるほどコントロールキーを押さないといけないのか。わかったよ産キュー

あとフォームデザインウィンドウでVS2003では下のほうに変なアイコンが
ならんでいるが消せないものだろうか

ちなみにVS2002では表示されていないのですが。。。
537デフォルトの名無しさん:2005/12/27(火) 12:04:23
>>528
>>529
スクロールバーも太くなってコントロールの内側も狭くなることも判明。。。
538デフォルトの名無しさん:2005/12/27(火) 14:22:12
----------------------
\ た| た | た
よ\て| て | て
こ \| 1 | 2
----------------------
 よ |   |
 こ |   |
 1 |   |
----------------------

DataGridで左上のようなラインでわけて文字列を表示するようなものを
1セル内で作成することは可能ですか?
図・・・わかりにくいですね・・・orz
539デフォルトの名無しさん:2005/12/27(火) 14:33:51
出来ない。
540デフォルトの名無しさん:2005/12/27(火) 19:17:41
よろしくお願いします。
環境はVB.net2003です。
IMEがオンであるかオフであるかを調べるにはどうしたら良いですか?
これだけでもわかれば助かります。
色々と検索しましたが見当たりません。
541デフォルトの名無しさん:2005/12/27(火) 19:32:05
542540:2005/12/27(火) 19:38:47
>>541
本当に検索しました。
yahooです。
IME オン オフ 設定 プログラム とか、色々。
今度からはググルようにします。
素早いご回答、感謝します。
543デフォルトの名無しさん:2005/12/27(火) 19:45:38
はぁ?
yahooでも、「IME」「関数」で3番目に出てくるんだがね、541のサイト
自分の至らなさを検索エンジンのせいにするなよ
544540:2005/12/27(火) 20:03:43
>>543
確かに「関数」の言葉は入力していませんでした。
申し訳ありません。
545521:2005/12/28(水) 04:41:07
>>523
なるほど、一文字のみ表示する案もありますね。

みなさんのおっしゃる通り、
「チェックボックスTextを空欄にする」こと自体がそもそもよろしくない、
というのが一般的なようですので、使用する方に
一度再提案してみます。。。。
546デフォルトの名無しさん:2005/12/28(水) 06:41:45
空欄テキストのチェックボックスなんてゴマンとあるがな
547デフォルトの名無しさん:2005/12/28(水) 10:33:44
例えば?
548デフォルトの名無しさん:2005/12/29(木) 11:52:29
HTML。
なぜlabel要素はHTML4.01まで遅れたのやら。
549デフォルトの名無しさん:2005/12/29(木) 12:19:10
リアル池沼の意見としか思えんなw
550前スレ904:2005/12/29(木) 17:02:45
お世話になります
ODBCを使ってMySQLに接続してデータを参照するソフトを作っています。
MyODBCの設定の時点では問題ない(と思う。接続のテストでは接続できる)
のですが、ソフトを実行すると例外が発生します。

'System.Data.Odbc.OdbcException' のハンドルされていない例外が system.data.dll で発生しました。

追加情報 : システム エラーです。

原因がどうしてもつかめません。 どなたか御教授下さい。

Dim ds As DataSet = New DataSet
Dim dr As OdbcDataReader
Private Sub ConnectANDDisconnnectButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ConnectANDDisconnnectButton.Click
Dim codco As OdbcConnection = Me.OdbcConnection1
Dim cmd As New OdbcCommand("SELECT * FROM dummybook", codco)
codco.Open()
dr = cmd.ExecuteReader()
While dr.Read
System.Diagnostics.Debug.WriteLine(dr("days") & " " & dr("itemname") & " " & dr("odernumber"))
End While
codco.Close()

Dim da As New OdbcDataAdapter("SELECT days, itemname, odernumber from dummybook", codco)
da.Fill(ds)
writegrid()
codco.Close()
End Sub
Private Sub writegrid()
Me.DataGrid1.DataSource = ds.Tables(0).DefaultView
End Sub
551前スレ904:2005/12/29(木) 18:04:23
自己レスです。
問題解決できました。

参照される側にはIDが発行されていましたが、権限が与えられていませんでした。
権限の設定をしたら接続できました。
ありがとうございました。
552デフォルトの名無しさん:2005/12/30(金) 08:29:37
プログラム中に < と > や、 [ と ] で括られたものの
文法上の名称教えてください。xmlじゃないです。
553デフォルトの名無しさん:2005/12/30(金) 09:13:08
<>は属性ブロックとして、[]はエスケープ識別子か?
ほかに用途はあったっけ...
554デフォルトの名無しさん:2005/12/30(金) 12:07:04
時間の掛かる処理をマルチスレッドで行おうとデリゲートを作って
BeginInvokeで実行しています。

そこで質問なのですが、BeginInvokeで実行しているスレッドを
途中で終了させるにはどうすればいいのでしょうか?
555デフォルトの名無しさん:2005/12/30(金) 12:13:06
外部から強制終了は無理。
スレッド側が何らかのオブジェクトの状態を見て自分で終了するかどうか判断する。
556デフォルトの名無しさん:2005/12/30(金) 12:28:13
>>555
Thread.Stopのようには行かないと言うことですね。
スレッドの中からオブジェクトの状態を見る方法を調べてみます。
557デフォルトの名無しさん:2005/12/30(金) 16:39:48
Thread.Stopなんてもん.NETのThreadクラスにゃ有りませんが・・・
558前スレ904:2005/12/30(金) 17:01:50
お世話になります。

Comboboxから入力した文字をファイルに書き出すというプロシージャを作っています。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Dim Writer2 As New IO.StreamWriter("smpl.txt", True, System.Text.Encoding.GetEncoding("Shift-JIS"))
Writer2.WriteLine(ComboBox1.Text)
Writer2.Close()
ComboBox1.Items.Clear()
Dim Reader2 As New IO.StreamReader("smpl.txt", System.Text.Encoding.GetEncoding("Shift-JIS"))
Do While Reader2.Peek >= 0
ComboBox1.Items.Add(Reader2.ReadLine())
Loop
Reader2.Close()
End Sub
このソースだと文字を入力すると1行空白が入ってしまいます。
空白が入っては駄目とのことです。
TextBoxとListBoxの組み合わせのほうが簡単だと思いますが、ComboBoxでないと
駄目なので苦労しています。
どなたか妙案があれば御教授ください。
お願いします。
559前スレ904:2005/12/30(金) 17:41:12
お世話になります。

自己解決できました。
別の処理部に原因がありました。
そこをやっつけたら問題なく期待通りの動きになりました。
ありがとうございました。
またお願いします。
560デフォルトの名無しさん:2005/12/30(金) 17:49:01
2005のwebbrowserをFormに張った後、Flashのあるサイトに行って、
そのFlash上の何かのボタンを押すと、その一回目のクリックは受け付けるんですけど、
二回目以降は、Flashのエリアではない別の場所を一度クリックしないと以降受付ないのです。
以前のバージョン2003まででは、クリックした後に、FOcusをHtmlDocumentにセットしなおせば、
まともに動作したのですが、今回は駄目。回避方法ありますか?
561デフォルトの名無しさん:2005/12/30(金) 17:53:47
誰も「前スレ904」とやらにチラシの裏って言わないこの物分りのよさは何w
562デフォルトの名無しさん:2005/12/30(金) 19:53:13
>>557
話の流れ読んでればThread.Abortの事だと分るんじゃ…?

563デフォルトの名無しさん:2005/12/30(金) 19:54:13
うまく動かない部分を質問しようとしてひとに解説しているうちに、
あっさり原因が分かって解決するってのは誰もが経験していること
だからなぁ。
564デフォルトの名無しさん:2005/12/30(金) 20:09:28
>>563
あるあるw
565デフォルトの名無しさん:2005/12/30(金) 20:36:09
教えてください。
任意のボタンクリック、例えば「a」キーを押すと
IMEが強制的に、かな入力設定になるプログラムって
どうしたらいいの?作成プログラムの実行ファイル内ではなくて、
Windows自体の動作を設定したいのですが・・・
566デフォルトの名無しさん:2005/12/30(金) 21:53:33
>>563-564
人にわかるように説明するには状況を整理することになるからな
567デフォルトの名無しさん:2005/12/30(金) 21:59:08
>>565
ttp://forums.belution.com/ja/vc/000/170/27s.shtml
こういう事だと思うけど、MS-IME 98以降ダメらしいね。
568デフォルトの名無しさん:2005/12/30(金) 21:59:12
>>565
・グローバルホットキー、またはグローバルフック
・ImmSetOpenStatus
・.NET Framework/VBでやるもんじゃないな
569565:2005/12/31(土) 09:08:27
みなさんありがとうございます。
感謝です。
570デフォルトの名無しさん:2006/01/01(日) 04:45:09
VB(WSH)を利用してワイヤレスネットワークの情報(SSIDやネットワークキーなど)を取得したいと考えていますがどのような仕組みを利用したら
これらの情報が取得できるのかが見えていません。

レジストリ、WMI、WIN32API等を調べてみましたが
見つけられませんでした。

どなたか、ワイヤレスネットワークの情報を取得するために
必要な技術を教えてください。

最終的にやりたいことは、端末のワイヤレスネットワークの
情報もろもろを取得しHTMLの表にしたいと考えています。
571デフォルトの名無しさん:2006/01/01(日) 04:51:02
WSHはスレ違い
572デフォルトの名無しさん:2006/01/01(日) 19:18:27
>>570
素直にStumbler系を使ったら?
どうしても開発しなければならない理由があるならともかく。
573デフォルトの名無しさん:2006/01/03(火) 04:27:10
ちょいと質問します。
IEのCookieを取得する方法はありませんか?
Perlなら簡単に出来るのにVBで全然見つからない・・・
574デフォルトの名無しさん:2006/01/03(火) 04:41:01
Win32API
575デフォルトの名無しさん:2006/01/03(火) 07:41:36
ASP.NETならRequest.Cookies
WebBrowserコントロールならDocument.Cookie
576デフォルトの名無しさん:2006/01/03(火) 10:49:38
すいません。
JAVAScriptのWindow.Closeをキャッチする方法ってありませんか。
タブWindow作ってるんだけど、Window.Closeで閉じるようにしたいんだけれども。
VB2005のWebbrowserです。
577デフォルトの名無しさん:2006/01/03(火) 13:33:47
UnloadイベントでDocumentが存在してるかチェックするとか。
578デフォルトの名無しさん:2006/01/03(火) 15:23:19
>>577
キターーーーーーーーー
ありがとう
579デフォルトの名無しさん:2006/01/03(火) 18:10:56
> IEのCookieを取得する方法はありませんか?
> Perlなら簡単に出来るのにVBで全然見つからない・・・

意味が理解できないのは気のせいですか…?
580デフォルトの名無しさん:2006/01/04(水) 12:38:28
VB2005なんですが、ApplicationSettingのPropertyBindingで
フォームのCliantSizeをバインドすると、以降、そのアプリケーションを
最小化して元に戻すとサイズが「0,0」になってしまいます。これは
どのようにして回避すればいいんでしょうか。
581デフォルトの名無しさん:2006/01/04(水) 13:27:45
>>580
考えるよりとりあえずはバインドしないで自作に限るのでは?
便利だけどそういう仕様と思われる限りは使えないってことで。
582デフォルトの名無しさん:2006/01/04(水) 17:51:04
>>580
最小化したままアプリケーションを終了させて、次に実行したときの事だと推測して・・・

プロジェクトのプロパティ画面の設定タブにある「コードの表示」でSetteings.vbを開き
MySettings_SettingChangingイベントハンドラに

  If e.SettingName = "Form1ClientSize" Then
    If Form1.WindowState <> FormWindowState.Normal Then
      e.Cancel = True
    End If
  End If

を記述。("Form1ClientSize"はClientSizeにバインドした項目名)
583582:2006/01/04(水) 17:52:19
×Setteings.vb
○Settings.vb
584デフォルトの名無しさん:2006/01/04(水) 18:00:41
メソッドの途中で1秒停止するにはどうすればいいですか?
585デフォルトの名無しさん:2006/01/04(水) 18:02:33
System.Threading.Thread.Sleep(1000)
メインスレッドでやるとUIからの入力・反応も止まるから注意
586デフォルトの名無しさん:2006/01/04(水) 18:17:01
うわ、そのメソッドをスレッド化しないといけないのか・・・
ありがとー
587デフォルトの名無しさん:2006/01/04(水) 18:22:31
実行されるプログラムは全てスレッドですが何か?
588デフォルトの名無しさん:2006/01/04(水) 18:23:19
それがいやならタイマでも使えってことだな
589584:2006/01/04(水) 18:31:01
>>587 別スレッド化だね
>>588 あーそうそう、タイマーあったね。タイマーの方がいいかも。
590デフォルトの名無しさん:2006/01/04(水) 19:17:54
止めるだけなら別に別スレッドにせんでも・・・
591デフォルトの名無しさん:2006/01/04(水) 19:21:05 BE:162153735-
ファイルをプログラムを呼び出して開き、テキストボックス内に表示する方法を教えてください
592デフォルトの名無しさん:2006/01/04(水) 19:22:03
わけわからん、はい次の人
593デフォルトの名無しさん:2006/01/05(木) 00:22:27
メディアファイルを扱うソフトを自作しています。
mp3ファイルなどのビットレートを取得する方法がどうしてもわかりません。
どなたか教えてください。

WinXP HE SP2
Visual Studio .NET 2003 Professional
594デフォルトの名無しさん:2006/01/05(木) 00:35:06
どうやって扱ってるんだ?
直接バイナリ読んでるのか?
595593:2006/01/05(木) 00:52:28
指定されたディレクトリ(多数存在)に存在するMP3ファイルを取得してきて
DataGridに表示させています。
現在はファイル名とアーティスト名(アニソンならアニメのタイトルも)を表示させています。
ここでさらにビットレートを表示させたいのですが取得方法がわかりません。

バイナリデータを読むという方法ははじめて聞きました。
バイナリデータにファイルの情報がつまっているならそこから取得できそうですね。
試してみます。
596デフォルトの名無しさん:2006/01/05(木) 01:15:02
だから今のところどうやってアーティスト名だのを取ってきてるんだと聞いているんだが?
597593:2006/01/05(木) 01:32:14
保存してあるmp3のファイル名が

アニメタイトル.....曲名/アーティスト名.mp3

という書式になっています。

ファイル名を取得して文字列操作関数でタイトル名、曲名、アーティスト名などを取得しています。
598デフォルトの名無しさん:2006/01/05(木) 01:47:19
>>581
>>582
レスありがとうございますー。

「最小化して元に戻す」というのは、最小化したまま終了したのではなく、
最小化ボタンを押してタスクバーに格納した後、タスクバーのボタンを押した
ということです。通常のアプリであれば、この行為でもとの大きさのフォームが
表示されるハズなんですが。。。ひょっとしてVB2005のバグなんでしょうか。
どなたかよろしかったら試してみてもらえませんか。CliantSizeをバインドすると
そうなっちゃうんですが・・・。
599デフォルトの名無しさん:2006/01/05(木) 01:52:44
>>597
こういうライブラリがあるけれど、VB.NETで使えるかどうかは不明。
ttp://www.angel.ne.jp/~mike/vbmp3/about.html
600582:2006/01/05(木) 02:40:55
>>598
新規プロジェクトでClientSizeをバインドしただけなら普通に元に戻ったよ。
だから>>582のレスをしたんだけど。
Resizeイベントあたりで余計なことしてない?
601デフォルトの名無しさん:2006/01/05(木) 02:54:00
>>600
レスありがとうございます! 私も新規プロジェクトから試してみましたが、
やはり普通に戻りません・・・と思ったら、同じPropertyBindingにLocationも
バインドしてたんですけど、これをハズしたら正常動作するようになりました。
つまり、CliantSizeとLocationを一緒にバインドすると、>>580のような動作を
再現してしまうようです。これってやはりバグ・・・でしょうか。
602582:2006/01/05(木) 03:54:27
>>601
バグというか仕様じゃないの。最小化と元に戻すときはLocationとSizeが複雑に変わるからねえ。
どうせ最小化or最大化したまま終了したときの考慮が必要だから
>>582にLocationも含めたコードで対応すればいいんじゃない?
603デフォルトの名無しさん:2006/01/05(木) 07:39:19
>>601
そろそろClientのスペルまちがいに気付こうよ
604デフォルトの名無しさん:2006/01/05(木) 11:52:05
>>602
どうもありがとうございました! >>582で教えていただいたコードで
対応してみます。ホント助かりました〜ありがとうございました m(_ _)m
605前スレ904:2006/01/05(木) 14:20:43
あけましておめでとうございます。
今年もよろしくお願いします。

ファイルの内容をComboBoxに書き込み、ユーザが追加・削除をできるようなインターフェイスを実装しています。
そこで削除をするプロシージャを作ったのですが、編集内容が文字化けしてしまいます。
何か妙案がありましたら御教授願います。

Private Sub DeleteTarget(ByVal ChangeCombo As ComboBox, ByVal ChangeFile As String)
Dim fr As StreamReader
Dim ReadString As String
Dim WriteString As String
Dim ConfirmDelete As MsgBoxResult
fr = New StreamReader(ChangeFile, System.Text.Encoding.GetEncoding("Shift-JIS"))
ReadString = fr.ReadLine
Do Until (fr.Peek <= 0)
ReadString = ReadString & vbCrLf & fr.ReadLine
Loop
WriteString = Replace(ReadString, ChangeCombo.SelectedItem + vbCrLf, "")
fr.Close()
606前スレ904:2006/01/05(木) 14:21:18
'続きです

ConfirmDelete = MsgBox("選択したエントリを削除します。いいですか?", MsgBoxStyle.OKCancel)
If ConfirmDelete = MsgBoxResult.OK Then
File.Delete(ChangeFile)
Dim fw As StreamWriter = File.CreateText(ChangeFile)
fw.WriteLine(WriteString)
fw.Close()
ChangeCombo.Items.Clear()
ChangeCombo.Text = ""
If IO.File.Exists(ChangeFile) Then
Dim fr2 As StreamReader
Dim FileString As String
FileString = Nothing
fr2 = New StreamReader(ChangeFile, System.Text.Encoding.GetEncoding("Shift-JIS"))
Do While fr2.Peek >= 0
FileString = fr2.ReadLine
ChangeCombo.Items.Add(FileString)
Loop
fr2.Close()
Else
IO.File.Create(ChangeFile)
End If
End If
End Sub
607デフォルトの名無しさん:2006/01/05(木) 14:26:56
SJISコードで取得した文字列をそのままUTF8で書き出しゃそりゃ文字化けするわな
阿呆
608デフォルトの名無しさん:2006/01/05(木) 14:34:32
正直コードの意図がさっぱり分からない
609デフォルトの名無しさん:2006/01/05(木) 14:35:37
文字化けって現象は理解してるのに、文字化けが何かを理解してないんだね。w
610前スレ904:2006/01/05(木) 15:13:02
>>607
>>608
>>609
ありがとうございます。
早速ShiftJISを外して見ましたがやっぱり駄目でした。
たぶんFileCreateのエンコード(?)をShiftJISにすればいいということだとおもうのですが、
Encodingはメンバじゃないと言われるので別の方法を考えたほうがよさそうですね。

またよろしくお願いします。
611前スレ904:2006/01/05(木) 16:50:46
お世話になります。
自己解決できました。

〜前略〜
ConfirmDelete = MsgBox("選択したエントリを削除します。いいですか?", MsgBoxStyle.OKCancel)

REM ここのCreatefileをShiftJisで呼び出し・書き込みできれば勝利
If ConfirmDelete = MsgBoxResult.OK Then
File.Delete(ChangeFile)
Dim fw As Stream = File.Create(ChangeFile)
fw.Close()  rem ここで一旦クローズ(UTF-8を終わらせて次の行でShiftJISで開きなおす)
Dim fw2 As New StreamWriter(ChangeFile, True, System.Text.Encoding.GetEncoding("Shift-JIS"))
fw2.WriteLine(WriteString)
fw2.Close()
〜以下略〜

ありがとうございました。またお願いします。
612デフォルトの名無しさん:2006/01/05(木) 16:59:01
StreamWriterコンストラクタの第二引数の意義がまるでスルーされているのがいとをかし。
613582:2006/01/05(木) 16:59:45
工エエェェ(´д`)ェェエエ工工
StreamWriterのコンストラクタがどんな動作をするか全然分かってないんだな・・・
まあ、本人がいいんならいいけどw
614デフォルトの名無しさん:2006/01/05(木) 17:01:22
名前欄消すの忘れてた(´・ω・`)
615デフォルトの名無しさん:2006/01/05(木) 17:23:57
やっぱり>>609の指摘からは脱していないわけで。w
616デフォルトの名無しさん:2006/01/05(木) 18:11:58
エンコードに限らず基本的な概念・知識が無いまま、ただ動いたからいいやって感じだね。
617デフォルトの名無しさん:2006/01/05(木) 18:34:48
まぁ、趣味グラマには良くある傾向だな
618デフォルトの名無しさん:2006/01/05(木) 18:36:13
末端コーダも似たようなもんじゃね?
619593:2006/01/06(金) 01:16:31
遅くなりました。
参考にさせてもらいますが、
なんかプログラム始めたばかりの私には難しそうです。

ありがとうございました。
620593:2006/01/06(金) 01:17:21
アンカー忘れた。

>>619>>599
621前スレ904:2006/01/06(金) 14:51:09
ご指摘ありがとうございます。

>>612
>>613
>>616
オーバーライドが解決できません〜の時点でコンストラクタ以前の問題だと思います。
これを客に渡すのは正直怖いです・・・
もっと勉強します。
ありがとうございました。

>>615
たぶんAが61(?)かそれ以外かみたいな位の理解度です。
ありがとうございました。

>>616
>>617
物覚えの悪い末端コーダーです。
プログラム始めてもう2ヶ月なのに・・・(´・ω・)
ありがとうございました。
622デフォルトの名無しさん:2006/01/06(金) 14:53:50
>>621
客に渡すのが怖ければ渡すんじゃないよ。w
あんたは姉歯か?

で、この間に文字コードってものを少しでも勉強したんかい。
623デフォルトの名無しさん:2006/01/06(金) 21:04:25
はじめまして。
データグリッドに数字を入れてソートしたかったのですが
3桁ごとに,を入れて表示してソートすると
上手くソートされません。
,入れたせいかと思ったんですけど、,を抜いてもダメでした。
12
1234
123456
987
9876
こんな感じにソートされてしまうんですけど
どうすればEXCELで出来るみたいに上手くソートできるんでしょか?
624デフォルトの名無しさん:2006/01/06(金) 21:14:34
文字列で扱われてるから。
どうすれば良いかはデータソースによる。
625デフォルトの名無しさん:2006/01/06(金) 22:36:58
.netもいい加減バージョン明記必須だな。2002,3,5のどれか。
で、DataGridってViewとVakueって分かれてないんだっけ?
626デフォルトの名無しさん:2006/01/06(金) 23:21:55
.NET Frameworkは、1.0/1.1/2.0。
言語としては、7/7.1/8。
開発環境は、2002/2003/2005。

使い分ける人は少なそうだが。
627デフォルトの名無しさん:2006/01/07(土) 00:29:48
マルチスレッドの引数や結果の受渡しめんどくせー
628デフォルトの名無しさん:2006/01/07(土) 00:37:04
慣れればそうでもなくなるさ。
なにでマルチスレッド実現してるのか知らないけど。
629デフォルトの名無しさん:2006/01/07(土) 06:30:06
1.1 7.1 2003 が圧倒的に多い
630デフォルトの名無しさん:2006/01/07(土) 08:09:40
>>627
つBackgroundWorker
631初心もの:2006/01/07(土) 11:17:10
VB.net超初心者です。皆さんとても高度な質問されている中恥ずかしい質問ですみません。
私は点A点Bの二点を通る直線の式を求めるというプログラムを作っています。点A(a, b)点B(c, d)各x, y座標は乱数で-10〜10を振り分けています。
y=mx+nを求めるにあたり、
m=(b-d)/(a-c)を解いた上
n=b-maの式を解かせようと思ったのです。
しかし悲しいほどの力不足の結果
Dim a, b, c, d As Integer
Dim m As Integer =( b - d ) / ( a - c)
Dim n As Integer = b - (m * a)
と打とうとした所エラーとなってしまいました。数々の資料を見ても尚わかりません(…多分基本的すぎる内容だから?)
どのようにしたらよいのでしょうか教えていただけませんか?
あと、傾きmや切片nは分数として表記したいのですがその方法もぜひお願いします。長文かつ稚拙な質問ですがなにとぞお願い申し上げます。
632デフォルトの名無しさん:2006/01/07(土) 11:22:37
・エラーとやらの内容ぐらい書け
・Integerは整数型だから小数点以下切捨てだがそれでいいのか
・分数はフレームワークに存在しないので自分でどうにかすることになる
633デフォルトの名無しさん:2006/01/07(土) 13:25:56
>>631
プログラミングに王道なしとしかいいようがない。
おとなしく一から学習するか、プログラミングなんてあきらめるかしかないだろ。

正直、こういうプログラミング舐めてる奴を助けたいと思う人は少ないと思う。
君ってわからないことを調べならがら前に進める段階じゃないだろ。
634デフォルトの名無しさん:2006/01/08(日) 01:47:51
>>631
取り敢えず宣言と計算は分けろ。
話はそれからだ。
635デフォルトの名無しさん:2006/01/08(日) 04:27:02
.netって無料で配布してるのか・・・
今までソフト買ってきたのがバカらしいな
636デフォルトの名無しさん:2006/01/08(日) 08:13:28
>>635
つうかそういう当たり前の情報を調べない貴方が馬鹿。
637デフォルトの名無しさん:2006/01/08(日) 08:15:03
>>636
なにが当たり前かは人によって違うだろ
おまえは普段どんな服気てるんだ?
ファッション雑誌のタイトル言ってもわからないんじゃないのか?

PGヲタは根暗が多いってほんとだね
638デフォルトの名無しさん:2006/01/08(日) 08:38:57
負け惜しみはみっともないよ
639デフォルトの名無しさん:2006/01/08(日) 08:59:54
フォームがいくつかあるアプリでも
メインフォームにすべての関数を記述して
他のフォームのコントロールはメインから直接操作できるようにパブリックにしてるんですが
こういう私でも.NETできますか?
640デフォルトの名無しさん:2006/01/08(日) 09:02:49
できますよ
641デフォルトの名無しさん:2006/01/08(日) 09:07:01
高級言語は低脳のために作られた言語
642デフォルトの名無しさん:2006/01/08(日) 11:03:37
>>637
おたとか云々以前。あんたがプログラマじゃないだけでしょ?
普通に情報集めてれば、仕事であっても日曜プログラマであっても常識。
643デフォルトの名無しさん:2006/01/08(日) 11:28:14
>>642
おまえの常識はヲタの常識
狭い常識に捕らわれてると相手にされないよ
644デフォルトの名無しさん:2006/01/08(日) 11:31:01
まあ、煽りだろうからもうあれだけど、あんたプログラマ名乗ってるなら
みっともないからしんだほうがいいよ。
日曜プログラマでも知っている常識もないんだから。w
645デフォルトの名無しさん:2006/01/08(日) 11:49:42
↑言語障害者?
646623:2006/01/09(月) 13:23:38
>624
データソースにはデータテーブルを使いました。
データテーブルの数字の入ってるカラムのDataTypeを
IntegerとかDecimalにすれば数値として扱ってソートできますけど
,で区切るとソート順がおかしくなります。
グリッドが勝手にしてくれるソートのイベント拾って
自分で何とかしないといけないんでしょうか?

ちなみに環境は
.NET Framework1.1
言語としては、7.1
開発環境は、2003
です。
647デフォルトの名無しさん:2006/01/09(月) 13:37:54
どうやって,区切りを実現してるんだ?
648デフォルトの名無しさん:2006/01/09(月) 14:19:36
>647
文字列にしてです。
649デフォルトの名無しさん:2006/01/09(月) 14:31:57
まあなんだ、表示されてるもの=データではないと言うことを分かれ
650デフォルトの名無しさん:2006/01/09(月) 15:09:36
なんていうか、DataGridの使い方解って無いな
651デフォルトの名無しさん:2006/01/09(月) 15:13:52
vb6にあったSortKeyみたいなのないんだなぁ
リストビューでコラムクリックしたらその列でソートみたいなことがしたいのに
IDEよくなっただけで、関数減ってたら意味ないじゃん・・・
重くなっただけで使い勝手悪いよ
652デフォルトの名無しさん:2006/01/09(月) 15:54:02
関数て.....
そんなレベルの人間に否定されたらMSもたまらんなw
Iなんたらインターフェイスを実装するだけじゃないの確か。
653デフォルトの名無しさん:2006/01/09(月) 16:31:47
>>652
Iなんたらってw
そんなレベルの人間に否定されたらたまらんなw
654デフォルトの名無しさん:2006/01/09(月) 16:43:30
データソースは数値型にしてDataGridTextBoxColumn.Formatで表示だけカンマ編集すればいいんじゃないの?
2003持ってないからGUIでどう操作するかは分からんけど。
655デフォルトの名無しさん:2006/01/09(月) 17:38:46
Iなんたらインターフェイス

この表現であってると思うのは俺だけか
656デフォルトの名無しさん:2006/01/09(月) 19:56:50
なんたらじゃないな、なんちゃら。
657デフォルトの名無しさん:2006/01/09(月) 20:20:01
まあ馬鹿が淘汰されていくのは良いことだ。
658デフォルトの名無しさん:2006/01/09(月) 20:33:44
>>657
まず、おまえがな
659デフォルトの名無しさん:2006/01/09(月) 20:45:31
VBで淘汰されてしまったら、どこに行き着くんだろう?
660デフォルトの名無しさん:2006/01/09(月) 22:23:30
質問です。

「2d6-2+7asdaf 2d6+2D6+2d6-2d6+7 3+2d6*2d6-2 2d6-2d6/2D6*2d6-2d6」
上の文字列を以下のように抜き出したいんですが、どうすればよいでしょうか?
2d6-2+7
2d6+2D6+2d6-2d6+7
3+2d6*2d6-2
2d6-2d6/2D6*2d6-2d6

現状としては、Regex.Matchesを使用していろいろ試すんですが、どうも上手くいきません。

正規表現「([\d*/+-]+(d|D)+[\d*/+-]+)+」では
2d6-2+7
2d6+2
6+2d6-2
3+2d6*2
2d6-2
6/2D6*2
6-2d6

正規表現「([\d*/+-]+(d|D)+[\d*/+-])+」では
2d6
2d6+2D6+2d6-2d6
3+2d6*2d6
2d6-2d6+2D6+2d6-2d6

という感じで、上手くいかないのです。

誰か、助けて、、、
661デフォルトの名無しさん:2006/01/09(月) 22:33:18
スペースで区切れてるならスペースで切れば?
そうじゃなければ、そもそもの何のルールで区切りたいのか不明です。
662デフォルトの名無しさん:2006/01/09(月) 22:38:00
(?:[\d*/+-]+[dD]?[\d*/+-]?)+
663デフォルトの名無しさん:2006/01/09(月) 22:49:59
スペースで切れば済む話な気もするけど
こんな感じか?

\d+([dD]\d+)?([\-+*/]\d+([dD]\d+)?)*
664デフォルトの名無しさん:2006/01/09(月) 23:01:04
>>661-663
スペースで区切れていない場合もあります。

(?:[\d*/+-]+[dD]?[\d*/+-]?)+
\d+([dD]\d+)?([\-+*/]\d+([dD]\d+)?)*

両方いけました。ありがとうございます。
665デフォルトの名無しさん:2006/01/10(火) 07:00:43
ここはエスパーの多いスレですね
666デフォルトの名無しさん:2006/01/10(火) 07:08:54
VBやってるやつはみんなエスパー
ソースみるとごちゃまぜスパゲティー
本人すら理解できないことをひたすらやって
みんなの足手まとい
667デフォルトの名無しさん:2006/01/10(火) 19:16:12
スパゲッティーを持ってきて「うまく動きません」というやつには、
全部の行にコメントを付けてこいと助言しています。
668デフォルトの名無しさん:2006/01/10(火) 19:49:21
VB5からの習慣だけど、ソースは他人が読むことを前提に、
ほぼ全ての行にコメント(説明、意図、愚痴など)をつけていました。
669デフォルトの名無しさん:2006/01/10(火) 19:55:17
こんなんだろw

' iを宣言する
Dim i
' iを0で初期化
i = 0
670デフォルトの名無しさん:2006/01/10(火) 20:04:35
>>669
おまえ、頭いいなw
671デフォルトの名無しさん:2006/01/10(火) 20:22:54
>>668
可読性が上がるのもあるけれど、コメントを書いてるうちに本人が
ミスに気がつくことも多いからね。
672デフォルトの名無しさん:2006/01/10(火) 21:27:30
まあなんだ、とにかく意図や目的を書くことだな
673デフォルトの名無しさん:2006/01/10(火) 22:37:17
コメントが無いばっかりに、自分が書いたソースなのにわざわざ読み解かなきゃならん羽目になった…って経験はみんな一度くらいはある?
674デフォルトの名無しさん:2006/01/10(火) 22:40:02
>>673
あるあるw
675デフォルトの名無しさん:2006/01/10(火) 22:56:51
なんでこんなややこしいことやってんだ?て思って
読みといていくうちに、
以前の自分の深い考察に気付いておどろいたorz

676デフォルトの名無しさん:2006/01/10(火) 23:02:44
>>675
以前の自分の深い考察に気付く事ができれば、それはむしろ良い事だよ。
俺なんか、「あれ? ここバグってるじゃん。」って軽率に書き換えて動作が怪しくなった経験がある。
677デフォルトの名無しさん:2006/01/10(火) 23:04:24
以前の自分の深い考察に驚いたって、今は深くないのかw
678デフォルトの名無しさん:2006/01/10(火) 23:05:17
だからorzなんだよっ
679デフォルトの名無しさん:2006/01/10(火) 23:10:05
さすがVB厨はバカばっかだなw
680デフォルトの名無しさん:2006/01/10(火) 23:15:28
タイプ数をカウントするアプリ動かしながら
コーディングしたことがあるんだが
コメントのタイプ数の方がコードよりも遙かに多かった
681デフォルトの名無しさん:2006/01/10(火) 23:36:23
プログラムの条件が変わって修正しなきゃいけなくなって、「面倒くせーなー」と
思いながらソースみたら、まるで「こんなことがあろうかと」思ったような処理してたりして
「スゴイぞ!昔のオレ」と思ったことがあるw
682デフォルトの名無しさん:2006/01/11(水) 00:12:23
願わくば、明日の私が今日の私よりも優れた人間でありますように。
683デフォルトの名無しさん:2006/01/11(水) 01:16:31
pictureboxにある画像をbackgroundimageとして貼り付けてあるんですが、
backgroundimageは消さずに、pictureboxに描写したものを消すにはどうすればいいのでしょうか?
684デフォルトの名無しさん:2006/01/11(水) 01:26:02
・PictureBoxに描写してないだろ
・BackgroundImageを消すって具体的にどういう意味だ

つかなんでPictureBoxなのにImageプロパティ使わない?
685デフォルトの名無しさん:2006/01/11(水) 01:29:54
Dim g as Graphics as graphics = PictureBox1.CreateGraphics()

gにdrawrecrangleなりで描写をしてるわけですが、
そいつを消そうと
g.Clear(Color.white)
を入れると、
背景画像も一緒に消えるって意味です。
686デフォルトの名無しさん:2006/01/11(水) 01:36:24
あー、そういうことね。
Refreshすれば済む話。
もちろんPaintイベントで変なことやってたりしたら駄目だが。
687デフォルトの名無しさん:2006/01/11(水) 01:47:21
綺麗に消えてくれました(ノ∀`)
こんな時間に答えていただいてありがとうございました。
688デフォルトの名無しさん:2006/01/11(水) 10:55:04
VB2005のオススメ本教えてください。
689デフォルトの名無しさん:2006/01/11(水) 11:06:56
だが断る
690デフォルトの名無しさん:2006/01/11(水) 11:07:22
書籍はまだ出てないでしょ?
ベータ向けの本ももう古いし。
@ITが一番確かかな?入門レベルには。
あとはWindowsDeveloperぐらいかな?
691デフォルトの名無しさん:2006/01/11(水) 11:55:58
話は戻るけどみんなはコメントってどうやってつけてる?
ホントに

' iを宣言する
Dim i
' iを0で初期化
i = 0

みたいにつけてる?
俺は・・・重要と思ったところ以外コメントをつけずにあとからソースを読んでる・・・orz
コメントなしで理解できるソースを書けって何かの本(プログラミングセンスだったかな)に書いてあったからだ。
じゃぁそういうソースを書けているか?と問われれば・・・聞かないでくださいorz
692デフォルトの名無しさん:2006/01/11(水) 12:32:41
なんの本に書いてあったか知らんが、コメント無しで理解できるソースを書くにも限度がある
それに、究極的に言えば全てのソースはコメント無くてもいつかは理解できる
それを、時間かけずに理解させるためにコメントがある
コメントを否定してしまってはどうにもならない

ちょっと見てすぐ理解するのは難しい部分にコメントを書けばいい
693デフォルトの名無しさん:2006/01/11(水) 12:47:08
>>691
俺はコメントをつける場合は

Dim i = 0 '## Aの情報を保管する変数 初期値は0

つー感じかなぁ。昔は細かく書いてたけど、今はプロシ外からの情報を参照する場合にコメントをつけるくらいかな。

情報量が多くなる場合は、エクセルに仕様とフローチャートと情報をまとめる形をとってる。
694デフォルトの名無しさん:2006/01/11(水) 13:00:41
なにして、これして、どうして、なにする。程度のコメントかな?
あと、恥ずかしい処理の言い訳。
695デフォルトの名無しさん:2006/01/11(水) 13:21:45
>>691
>>693
いちいちそんな細かく書いてられるかよ
てか、オブジェクト指向プログラミングできないおまえらは
コメントいちいち打たないと仕方がないんだろうなw
わかりにくい時点で設計がおかしい
696デフォルトの名無しさん:2006/01/11(水) 13:25:47
だな、バカなやつは1つのクラスにメソッドやプロパティを
大量に溜め込んで処理させてるからな
1つのクラスにメソッドは3,4個ぐらいにして継承させてやれば迷うことはない
まあ、VBプログラマには無理だろうけどね
697デフォルトの名無しさん:2006/01/11(水) 15:12:15
すっげぇなおまえw
698デフォルトの名無しさん:2006/01/11(水) 16:13:20
1つのメソッド、関数は10行以内にまとめる
まとまり切らないということは設計が悪い
メソッド内の処理の一部で新しいメソッドを作る
1つのクラスの中にメソッドが10以上になったらクラス化する
こうすることでプログラム全体の流れが非常に扱い易くなる
おまえらみたいに、だらだら長文で書いてたらわかりにくいのは当たり前
699デフォルトの名無しさん:2006/01/11(水) 16:17:10
だな、VB6ユーザーって、MainFormに全部のコード書いてそうw
まあ、オブジェクト指向なんて知らなくてもゴリ押しで書けるからなんだろうがな
クラス化しても、全部パブリックで定義してそうだなw
mainformからすべてのクラスのすべてのメソッドを操作できるようにしてたりしてw
細分化してクラスやメソッドが増えてきたら見えないようにするとわかりやすいのにな
700デフォルトの名無しさん:2006/01/11(水) 16:19:16
うっはwww何この自称すごい人たちwww
701デフォルトの名無しさん:2006/01/11(水) 16:22:32
Javaやってる奴がModule.vbは便利だと言ってた
702デフォルトの名無しさん:2006/01/11(水) 16:23:06
こんな俺ルール全開なバカども久しぶりに見た
703デフォルトの名無しさん:2006/01/11(水) 16:24:39
”だな” で始まる人って、その上の書き込みの自演でしょ?
一人うざい長文&その賛同。w
704デフォルトの名無しさん:2006/01/11(水) 18:51:25
単に量で分割してる奴ってアホだろ
705デフォルトの名無しさん:2006/01/11(水) 19:09:11
ここの受け売りみたいな気がするなぁ。
ttp://www.okisoft.co.jp/esc/go/style0.html
706デフォルトの名無しさん:2006/01/11(水) 20:08:57
コメントなしで理解できるコードを書けってこの本だね。
ttp://www.amazon.co.jp/exec/obidos/tg/detail/customer-reviews/-/books/4774121738/250-5097188-0377856
707デフォルトの名無しさん:2006/01/11(水) 22:02:29
いや、別にそんなもの誰か言いだしっぺというか提唱者がいる訳でなく、
誰でもそういう自明のコンセンサスだから。

まともなプログラマならねw
708デフォルトの名無しさん:2006/01/11(水) 22:13:27
誰でもそういう自明のコンセンサスwww
まともなプログラマwwww
709デフォルトの名無しさん:2006/01/11(水) 22:16:35
はいはい自明自明www
はいはいまともまともwwwwっうぇ
710デフォルトの名無しさん:2006/01/12(木) 12:36:55
すみません。初心者でEXCELのプログラムの配列計算が多くなり、
高速化を目的としてVB.NETに移植してます。

VB.NET上でEXCELを開いて,参照でVBAも実行できるようですが、
その部分はコンパイルされるのでしょうか?(EXCELの文法のみコンパイル
より速くなるのでしょうか?)

711デフォルトの名無しさん:2006/01/12(木) 12:42:42
さ れ ま せ ん
712710:2006/01/12(木) 14:17:47
>>711 
ありがとうございます。
互いに独立したものと考えた方がいいのですね。
713デフォルトの名無しさん:2006/01/12(木) 16:46:29
VB.NET,ADO.NETを使用してOracleのストアドを実行したいのですが、出力パラメータで配列を使用する事は可能でしょうか?
714デフォルトの名無しさん:2006/01/12(木) 17:03:58
>>713
バージョンとか使うプロバイダとか書いたほうが。
ODPでOKならORACLEにサンプルあるし、MS謹製のOracleProviderでのやり方はMSDNにあったような。
OLEDBでもパラメータの指定方法は書いてあるはず。
715デフォルトの名無しさん:2006/01/12(木) 17:13:08
>>680
業務アプリならそれは普通
コメント率80%とか、90%位が適当(空行除く)
716デフォルトの名無しさん:2006/01/12(木) 18:37:43
そりゃコードの10倍コメントあるのが
適切だっていってるのか?
717デフォルトの名無しさん:2006/01/12(木) 18:48:13
普通に多くて3割だよね。
ただ、関数ヘッダとか装飾いれたら5割かも。
718デフォルトの名無しさん:2006/01/12(木) 19:33:04
ヘッダコメント入れたら半分てのはありそうだが
9割は行かんな…
まあ状況によるね
719デフォルトの名無しさん:2006/01/12(木) 19:47:10
コメントイラネとか言うヤツは、後で直す時の苦労を知らない学生レベルの意見だろ。
たとえバグなんぞ出てなくとも、クライアントのワガママで修正しなきゃならんのだよ。本職ならば。

720デフォルトの名無しさん:2006/01/12(木) 19:53:01
>>719
宿題レベルのプログラムしかしたこと無い奴らを相手にするなって。
721デフォルトの名無しさん:2006/01/12(木) 20:06:56
>>719
なんだかなあ。。
メンテの時苦労するのはコメントがないからじゃなくて、
コメントがなきゃ理解できないような下劣なコードからだよ。

こんなことプログラム書き始めて1年で普通は気がつく。
本気でコメントが大事とか思ってるとしたらそりゃ絶望的に筋が悪いんだよ、悪いけどw

それと(まあ大概のまともな)プログラマが「コメントは要らない」って言うとき、
当たり前だがそれは文字通りコメントが全く不要って意味じゃない。
よく言われることだがビジネスルールとか特殊な要求仕様はコメントがなきゃ
そりゃわかんないし。

―― コメントがないからコードが可読性がないのではなく、
可読性がないコードしか書けないからコメントを書きたくなるのだ。

この程度のことに気づかない低能に対するアンチテーゼとして言ってるのよw
722デフォルトの名無しさん:2006/01/12(木) 20:22:46
業務を経験していない日曜プログラマの言いそうなことですね。
十万行のソースを相手にしても、コメント無しにトレースできると?
723デフォルトの名無しさん:2006/01/12(木) 20:28:02
コメントにしてもコーディング規約にしても、自分に適用するルールと部下に適用するルールでは
全然違っちゃう。
プログラマだけで100人以上いたりするプロジェクトだと、かなりがちがちに書かせたりする。
724デフォルトの名無しさん:2006/01/12(木) 20:56:07
>>722
いかにもダメな奴がいいそうなことだね。
というか、馬鹿じゃないの。それコメント是非の問題だろうかw

まあいい。
昔からよく「マジカルナンバー7」なんていわれるように
人間が同時に複数の対象やそれらの関連を認識する能力は意外と低い。

だから関数(構造化)やクラスでスコープってものを作るわけ。
問題を分割統治するためにね。小問題に分割して、一度に認識する必要がある対象を
減らして複雑性を小さくするために。

10万行だろうが1000万行だろうが、分割統治がきちんとなされたコードなら
何の問題もないよ。

722は構造化すらマスターしてないんだろうねw
でなきゃそんな恥ずかしいことは絶対にかけないと思う。
725デフォルトの名無しさん:2006/01/12(木) 21:14:13
分割統治ってwww
同一プロジェクトの案件でも、関わる設計者・プログラマ・顧客側担当者も
増えたり減ったり交代したりするのにw
引継ぎが不完全であることが暗黙的な前提で動く現場を知らない香具師に、
何を言っても無駄な気がw
726デフォルトの名無しさん:2006/01/12(木) 21:25:51
コード内のコメントよりも、きっちりまとまったドキュメントが欲しい。
と、オプソでしか他人のコードを見たことのない日曜プログラマが参上しましたよ。

ちなみに「マジカルナンバー7」は短期記憶のチャンク数ですよ。

さらに言うならば、ここはVB.NET質問スレですよ。
727デフォルトの名無しさん:2006/01/12(木) 21:45:31
>>725
言ってるそばから「マジカルナンバー7」ですかw
7どころかたった一つのことを話題にしているというのに。
馬鹿だね本当。

あのねえ、今何の話をしてるの?
プログラムのコメントの是非の話をしてるのね。
コメントなしでコードの可読性を確保できるかどうかの話をしてるのね。

引き継ぎの時困るだあ?
そりゃ馬鹿の書いたコード引き継ぐのは困るに決まってるよw
コメントの有無にかかわらずね。

まあ確かに可読性のあるコードかけない奴はせめてコメント書いてくれないと困る。
もし君の意図がそういう話なら大いに同意するよw
728デフォルトの名無しさん:2006/01/12(木) 21:53:08
System.Windows.Forms.Button の BackgroundImage に画像をはりつけて、
見栄えのいいボタンにしようかと思ったのですが、
(コーナが少し丸くなっているような)
System.Windows.Forms.Buttonの四角い枠がどうやっても消せません。
この四角い枠を描画しないようにはできないでしょうか?
729デフォルトの名無しさん:2006/01/12(木) 22:11:08
ふと、シェンムー(だっけ)という、ドリームキャストのゲームを思い出した。
730デフォルトの名無しさん:2006/01/13(金) 00:18:05
>>728
リージョン
731デフォルトの名無しさん:2006/01/13(金) 16:07:14
SQL文を発行しようとしてるんだけれどもどうしても例外がでてしまいます。
System.Data.Odbc.OdbcException システムエラー
デバッガを見てみたら

Dim GoSQL As New OdbcCommand("SELECT count(*) FROM MOHADB.MOHETABLE where KETA1 like " & DIMKETA1 + "%" & " and KETA2 like " & DIMKETA2 + "%" & " and KETA3 like " & DIMKETA3 + "%", conection)

"%"となって欲しいのに%のみになってる。
ソースのこの部分をどうやって弄っても"%"になってくれない。
どうしたらうまくいきますか?
732:2006/01/13(金) 16:08:58
DIMKETA1、DIMKETA2、DIMKETA3は変数です。
733デフォルトの名無しさん:2006/01/13(金) 16:43:08
& +
734731:2006/01/13(金) 17:38:40
すまんこ

俺頭悪いからどこを&+にすればいいか分からないから"%"を"'%'"にしてみたらできた。
735デフォルトの名無しさん:2006/01/13(金) 18:16:05
マジレスすると
"""%"""
736デフォルトの名無しさん:2006/01/13(金) 18:42:05
マジわからんし!
737デフォルトの名無しさん:2006/01/14(土) 00:27:07
EXEファイルやDLLファイル内のアイコンを列挙する方法が分かりません。
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/280getappicon/getappicon.html
↑これ↑を参考にやってみたのですが、どうしてもインデックスが1のアイコンしか表示されませんでした。
どなたかご教授願います。
738デフォルトの名無しさん:2006/01/14(土) 00:36:22
>737
 単にアイコンが1個しかないdllファイルを見ているとかじゃなくて?
739737:2006/01/14(土) 00:39:37
>>738
[shell32.dll]なのでそれはないハズです。
それに、窓の手で複数のアイコンを含んでいることをしっかりと確認しました。
740デフォルトの名無しさん:2006/01/14(土) 00:42:42
>>737
ExtractIconEx関数を使う。
741737:2006/01/14(土) 00:46:57
>>740
的確な回答ありがとうございます。
試してみます。
742デフォルトの名無しさん:2006/01/14(土) 00:52:00
言い忘れてたけど、それで取得したアイコンハンドルはDestroyIcon関数使わないとGDIオブジェクトがリークする。
743デフォルトの名無しさん:2006/01/14(土) 10:45:39
VB.NETのドロップダウンリスト(DDL)で

・DDLの選択部を2段にしたい
・選択後、コード部分をDDLのTextに、名称部分をラベルに表示したい

こんな感じ
 ↓DDL     ↓ラベル
┌---┬--┐ ┌-------------┐
│001│▼│ |北海道      |
├---┼--┴-┴----┴-------┘
│001│北海道 |
│002│青森県 |
│003|秋田県 |
|004|岩手県 |
| ・ | ・ |
| ・ | ・ |

グレープシティ社のInputmanで実現しているので
なんとかコーディング可能だと思いました・・・
これを実現する方法をご教授願えないでしょうか?
744デフォルトの名無しさん:2006/01/14(土) 11:37:13
DropDownListってことは、ASP.NET?
745デフォルトの名無しさん:2006/01/14(土) 12:58:19
>>743
AA作る手間を惜しまないなら、その努力をもっと文章を練る方に向けた方がいいような。。
746デフォルトの名無しさん:2006/01/14(土) 14:40:54
ASP.NETの質問もこちらでいいのでしょうか?
VB.NET-ASP.Webアプリケーションとデータベースを使ったサンプルデータなど公開しているページありませんか?
出来れば上記の条件で出来たオークションサイトのサンプルなど公開してるところがあるとありがたい。
747743:2006/01/14(土) 15:11:40
>>744
いいえ。
Windowsアプリケーションです。
ComboBoxでしたね。。。
748デフォルトの名無しさん:2006/01/14(土) 16:05:29
>>747
ComboBoxでそんなことはできない
749デフォルトの名無しさん:2006/01/14(土) 16:09:41
>>743
7万円もする商用ソフトの一部機能を、自力で実装したいんですが
という意気込みはすごいと思う。実現できたらぜひフリーで公開し
てほしいな。

標準ComboBoxにアイテムを追加するとき、ラベル部分もあらかじ
め文字列結合してから入れたら、似たような効果が出るんでない?
750デフォルトの名無しさん:2006/01/14(土) 16:10:43
>>743
> グレープシティ社のInputmanで実現しているので
金が取れるほどのものだってことだな。

まあ君には多分無理だ。
751710:2006/01/14(土) 16:11:58
エクセルの配列計算をVB.NETに高速化のため移植していると書いたものです。
日曜プログラマがやっと完成と思ったら、エクセルより遅いです。orz

概要
VB2005でcreate object によりエクセルを開き、シート内にあるクエリからデーターを配列に収納する。
VB2005に書いたForm1.VB 上の関数プログラムで配列をもとにループさせ計算。
その関数をループでエクセルに貼り付ける。

というものなんですが、エクセル上でVBAで書いたものより、ビルドしたものが遅くてめげました。

早くするには以下のどの項目が有効でしょうか。
1.関数内に標準偏差などはエクセル関数を参照使用してるので、これもVB上で書く
2.ADO.NETでデータを受け取る。
3.エクセルを一切使わず、ADO.netで受け、DetaGridで出力。
4.関数の計算自体はVB.NETは実は速くないので、速くならない。

長々とすいません。
752デフォルトの名無しさん:2006/01/14(土) 16:16:06
>>751
おまいさんの書いたコードが一切不明なんで、遅い原因がどこにある
のか特定できないよ。具体的な処理内容もわからないしさ。

中途半端にあっちこっち処理を移すより、どちらかで完結させた方が
いいとは思うけどね。ちなみにADO.NETはエクセルファイルのデータ
を直読みできる。
753デフォルトの名無しさん:2006/01/14(土) 16:21:40
やってることがずれとる。
COMの呼び出しは重い。
そんなもの毎回呼び出してたら重くなるに決まってる。
754デフォルトの名無しさん:2006/01/14(土) 16:27:12
ついでに、VBA側でもExcelオブジェクトへのアクセスは非常に重い。
セルの参照なんかは、回数をなるべく抑える。
755710:2006/01/14(土) 16:35:08
>>752-754
ありがとうございます。

>>753
COMの呼び出しとは、エクセル関数を使用してる点ですか?

やっぱり本などでは、そういう感覚がつかめないので助かります。
極力エクセルを経由しない方向でやってみます。
756デフォルトの名無しさん:2006/01/14(土) 16:38:56
つかまずどこでコストかかってるのかを計測しろよ
757デフォルトの名無しさん:2006/01/14(土) 16:42:33
>>755
処理したい関数や内容がコードで記述できるんなら、ADO.NET経由で
メモリ上に全データを転送してから処理すればいいと思う。これまで
エクセルの関数に頼りっきりだと、けっこう手間かもしれないけどね。
758710:2006/01/14(土) 17:11:32
>>756
タイマーで区間に分けて計測は、厳しいです(技能的に)
目視ならw クエリの作動は充分に早く、Functionの計算とセルの転記に時間が
掛かってるようです。

>>757
はい ウィザードを使ってアクセス(元データ)からデータグリッドまで落とす
フォームを造ったことがあるので、そこからやってみます。

エクセル関数は、標準偏差、相関係数なのでなんとか

みなさんどうも、やはり経験がないと分からないことが多いので、助かりました。
759743:2006/01/14(土) 17:36:28
>>749
> 標準ComboBoxにアイテムを追加するとき、ラベル部分もあらかじ
> め文字列結合してから入れたら、似たような効果が出るんでない?

現在はそういう風にやってごまかしてます。

しかし、どれかを選択するとコードとラベル部分すべてが
ComboBoxのTextに入ってしまいます。
なのでLostFocus時にComboBoxのTextとラベル部分を
振り分けています。

>>750
悔しい・・・
760デフォルトの名無しさん:2006/01/14(土) 17:52:22
>>759
どんな内容を表示しているのか知らないけれど、ComboBoxのアイテ
ムに説明文ってそんなに必要かなー? コントロールを自作してどう
こうするよりも、画面設計とかユーザーインターフェースの改善でど
うにかするって手段もあると思うけれど。

煮詰まってくると、目的と手段が入れ替わってしまうことがよくある
しさ。
761VB2ヶ月目:2006/01/14(土) 23:27:05
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

毎度毎度出てくる引数の sender とか e って何ですか?
文法的には何という項目を勉強すればいいのでしょうか?
762デフォルトの名無しさん:2006/01/14(土) 23:38:51
>>761
> 文法的には何という項目を勉強すればいいのでしょうか?
イベント
763VB2ヶ月目:2006/01/14(土) 23:54:14
>>762 どもです。
764743:2006/01/15(日) 00:28:46
>>760
確かにたまに目的と手段が入れ替わることがある・・・

この目的は
コードを知ってる(覚えている)人は
ComboBoxのTextに直接入力してもらい、
(ラベルに出力するのは入力チェックも兼ねて・・・)
コードを知らない人は
ComboBoxから候補を選んでもらう
ってことでした。

たまたま隣のプロジェクトで
Inputmanでこれを実現しているのを見たから
自作できんかなぁと思ったのよ・・・
765デフォルトの名無しさん:2006/01/15(日) 00:39:21
>>763
一行レス君はたいてい低能だからあんまり真に受けない方がいいよw

.NETは、というか最近の言語はどれもそうだけど、
初心者がこれを勉強すればこれがわかる、っていう風に単純になってない。
困ったことにある程度全体が腑に落ちてないと部分の意味がわからない構造になっているのよ。

たとえばイベントハンドラの引数の意味を理解しようと思ったら、
継承、デリゲート、.NETのイベントしくみ・・・などなどいろいろと理解している必要がある。

だから昔みたいに「習うより慣れろ」式で実践を重視(?)してると
永遠に上達しないと思われる。

>>743
ここの誰かさんがいってるみたいにそんな難しいことじゃないと思うが。
要はオーナードローするだけでしょ?それも単純にテキスト書くだけじゃん。

オーナードローがよくわからんとしても、コンボボックスのドロップダウンリストを
オーナードローするサンプルコードなんていくらでもあるんだからそれ見て改造するだけだと思うよ。
766デフォルトの名無しさん:2006/01/15(日) 01:15:25
>>764
んで、現在はコードと解説をくっつけて暫定対処してるってことだよ
ね。同様のコントロールを多用するor見た目にこだわりたいってこと
なら、勉強して自作してもいいと思うんだけど。一部にこだわって全
体が滞ることの無いように注意してくれたまい。

誰かさんがオーナードローで簡単にできるって言い切ってるから、そ
のうちサンプルコードでも出してくれるんじゃないかな。
767VB2ヶ月目:2006/01/15(日) 03:00:10
Imports System.ComponentModel

Public Class Form1

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

Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim kekka As Integer = 1 ' 計算結果
Dim progress As Integer = 0 ' 進行状況
For i As Integer = 0 To 9
System.Threading.Thread.Sleep(1 * 1000) ' 1秒停止
kekka = kekka * 2
progress = (i + 1) * 10
BackgroundWorker1.ReportProgress(progress)
Next
e.Result = kekka
End Sub

Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As System.Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
TextBox1.Text = e.ProgressPercentage.ToString ' 進行状況の表示
End Sub

Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
TextBox2.Text = e.Result.ToString ' 計算結果の表示
End Sub
End Class
768VB2ヶ月目:2006/01/15(日) 03:00:51
上は、BackgroundWorkerコンポーネントを使用して別スレッドを走らせてます。

(1)BackgroundWorker1_DoWorkメソッドでDoWorkEventArgsクラスのe.Resultでセットしたプロパティが、
BackgroundWorker1_RunWorkerCompletedメソッドのRunWorkerCompletedEventArgsクラスのe.Resultで
取れるんですが、ソースを見る限り繋がりが見えません。どうして取れるんでしょうか?

(2)BackgroundWorker1_ProgressChangedには進行状況として、integer引数を渡せるんですが、
変数kekkaも渡すにはどうすればいいですか?

要はよくある、処理状況のプログレスバーと、処理中のファイル名を同時に表示するような物を想定。
BackgroundWorker1_ProgressChangedで、プログレスバーなどを使って進行状況は表示できるんですが、
処理中の変数kekkaが渡せないんで、困っています。
769デフォルトの名無しさん:2006/01/15(日) 04:06:13
>>768
> (1)BackgroundWorker1_DoWorkメソッドでDoWorkEventArgsクラスのe.Resultでセットしたプロパティが、
> BackgroundWorker1_RunWorkerCompletedメソッドのRunWorkerCompletedEventArgsクラスのe.Resultで
> 取れるんですが、ソースを見る限り繋がりが見えません。どうして取れるんでしょうか?

フレームワークが、DoWorkEventArgs.Resultの値をRunWorkerCompletedEventArgs.Resultに代入するから。

> (2)BackgroundWorker1_ProgressChangedには進行状況として、integer引数を渡せるんですが、
> 変数kekkaも渡すにはどうすればいいですか?

ReportProgressには引数二つ渡すバージョンも有る。
ProgressChangedEventArgsにもそれを受け取る用のプロパティが有る。
770デフォルトの名無しさん:2006/01/15(日) 13:15:58
>>767
なんだかだなあ。。
だから.NETでは個別撃破式の学習はできんって言ってるのに。
個別の技術の意味がわかるためには面倒でも一度全体の概要を押えておく必要がある。
まあファーストインプレッションでこれがわからないってことはそもそも筋が悪いんだろうけどw
771VB2ヶ月目:2006/01/15(日) 14:29:16
>>769
(2)解決しました。
BackgroundWorker1.ReportProgress(progress, kekka)でイベント発生させて、
e.UserStateで受け取るだけでした。。。どもです。

(1)フレームワークがそう定義しているのは、どこ見れば判るんですか。
DoWorkEventArgs.Result見ても、全然触れてないし。
ttp://dream.my-sv.net/upload/src/up0102.jpg

>>770
はいよ
772デフォルトの名無しさん:2006/01/15(日) 14:57:31
質問です。変数strVarに次のような文字列

strVar = "[文字列1] < [文字列2] >"

が入っている時に、< >で括られている[文字列2]の部分を取り出したいのですが、どういった関数を使えばよいのか分かりません
Trim関数を使ってあれこれやってみたのですがうまくいきませんでした
どのようにすればよいのでしょうか?
773デフォルトの名無しさん:2006/01/15(日) 15:02:31
System.Text.RegularExpressions.Regexクラス使う。要するに正規表現。
この機会に学べ。
774デフォルトの名無しさん:2006/01/15(日) 15:03:19
>>772
String.IndexOfメソッドで<>の位置を特定してから、String.Substring
メソッドで中の文字列を引っこ抜くとか。
775デフォルトの名無しさん:2006/01/15(日) 15:41:25
>>773-774
ありがとうございます!
ちょっと調べてみます
776デフォルトの名無しさん:2006/01/15(日) 16:31:33
>>771
フレームワークが定義というより、BackgroundWorkerの実装でしょ。
イベントを発生するクラスを自分で書いてみれば仕組みは嫌でもわかるよ。
それもRaiseevent使うんじゃなくて、デリゲート使って、EventArgs継承して・・・
ってやり方でね。

個別撃破はできないってのはそういうこと。
777デフォルトの名無しさん:2006/01/15(日) 18:44:12
フォームアプリケーションを隠す方法ってありますか?
【制約】
1. 2000/XP限定はダメ。
2. タスクマネージャのアプリケーションタブのリストに載らない。
3. [Alt+Tab]でそのアプリケーションにフォーカスの移動ができてはいけない。
778デフォルトの名無しさん:2006/01/15(日) 19:00:50
透明人間現るって感じかなw
フォームがないアルよ

デスクトップのデバイスコンテキストに自分でウィンドウを書くとかしないと
無理な気がするけどどうなのかな。
779RUI:2006/01/15(日) 19:06:12
実は卒業制作にV.B.NETでタイピングソフトを作っているのですが、キーを押したときにイベントを発生させるやり方がわかりません。誰か教えてください
それか、プログラムのおいてあるところか、プログラムを読めるところを知りませんか?
780777:2006/01/15(日) 19:07:59
>>779
絶対ググれば出てくる。
781デフォルトの名無しさん:2006/01/15(日) 20:03:03
>>777
1.はともかく2.が必要なソフトってどうよ?
ロガーでも作るつもりかな。
782デフォルトの名無しさん:2006/01/15(日) 20:04:53
>>781
それプロセスタブの話じゃない?
783デフォルトの名無しさん:2006/01/15(日) 20:09:50
おお勘違いしてたよ、すまんす。(´・ω・`)
表示中のフォームが無ければ、アプリケーションタブにも載らないん
だっけか? そういう仕様で作ろうと思ったこと無いから、検討もつ
かないっす。識者さんよろしく。
784デフォルトの名無しさん:2006/01/15(日) 22:26:20
質問です。
.netC#でWEBフォームの作成を行っています。

@画面上で検索ボタンを押下
   ↓
ADATAGRIDにて検索結果を表示する(データ量が10行以上ならスクロールバーを表示)
   ↓
B各データ行のボタンを押して選択(背景も変わる)
   ↓
C決定ボタンで親ページに渡す

上記Bにて選択ボタンを表示、その選択ボタンを押すと、データの取得は出来る
用になったのですが、スクロールバーの下の方のデータ行の選択ボタンを押すと、
ページが再読み込み?され、スクロールバーのTOPが表示されてしまいます。
下位の選択ボタンを押した場合でも、その選択した行の箇所をそのまま画面上に表示させておくことは
どの様にすればよいでしょうか?

よろしくお願いします。


785デフォルトの名無しさん:2006/01/16(月) 16:47:51
既出だったら申し訳ないんだけど、
ツールボックスみたいに、
タブを押したら、にょーんってメニューを表示しているコントロールを
フリーで配ってるとこ知らない?
786デフォルトの名無しさん:2006/01/16(月) 17:07:36
抽象的過ぎてさっぱりわかんね
プログラマならにょーんとか言わんとハッキリ表現しろ
787デフォルトの名無しさん:2006/01/16(月) 17:14:47
>>785すまそ。
タブを押したら、押された以外のタブは、上がったり下がったりして、
押されたタブのTabPageを表示してくれるやつ。
もちろん、標準のコントロールにはなかったし、
探してもサードパティのやつしか見つけきれなくってね。
788785と787:2006/01/16(月) 18:23:49
ttp://www.vbaccelerator.com/home/VB/Code/Controls/ListBar/Visual_Studio_Style_ListBar/article.asp
↑こんな感じのを探しています。

VB6やActiveXのコンポーネントとしては、いくつかフリーで配布されているようですが、
VB.NETのコンポとしては、まだ探しきれていません。
どなたかご存知でしたら教えて頂けますよう、よろしくお願い致します。
789デフォルトの名無しさん:2006/01/16(月) 18:34:37
ActiveXコントロールがあるならそれ使えばいーじゃん
790737:2006/01/16(月) 18:45:47
EXE,DLLファイル内のアイコンの列挙についてした下記のリンクを参考にしてやってみて
一応出来たのですが、抽出したアイコンが減色(16色?)されて描画されてしまいます。
どなたか解決策をご教授願います。
ソースは以下のリンクとほとんど同じです。

ttp://66.102.7.104/search?q=cache:E_O9GYDBExQJ:www.sugi-family.net/papanvb/vbnet_tips.php%3Fcate%3D9%26tips%3D9004+ExtractIconEx%E9%96%A2%E6%95%B0&hl=ja
791デフォルトの名無しさん:2006/01/16(月) 19:27:33
>>790
ImageList.ColorDepth
792デフォルトの名無しさん:2006/01/16(月) 19:33:03
>>791
回答ありがとうございます。
お陰で瞬殺解決しました。
793デフォルトの名無しさん:2006/01/16(月) 20:46:59
数年前からVB.NET(2002)を利用しているのですが
年に数回やるOSの再インストールの後に何度もCDを入れ替えてVBを
インストールし直すのがかなりおっくうです。
5枚組のスタンダード版なのですがうまく1枚のDVDに収める方法はないでしょうか?
794デフォルトの名無しさん:2006/01/16(月) 22:30:11
五枚ってのはMSDNも入ってるのか。
全部を一枚は無理だと思うけどVSとMSDNはそれぞれ一枚にする方法があったはず。
まあやり方は忘れたんでスマンw

でも一枚のメディアにまとめるより、それぞれのCDをイメージ化しといてHDDに置いて
仮想ドライブソフト使った方がインストール短時間で終わるよ。
795デフォルトの名無しさん:2006/01/16(月) 22:41:19
> 年に数回やるOSの再インストール

   \  __  /
     _ (m) _ピコーン
       |ミ|
    /  .`´  \
      ('A`)    しなければいいじゃない
     ノ( )ヽ
       くく
796743:2006/01/16(月) 22:50:04
>>765,766
レス遅れましたが、
ComboBox、オーナードローでググってみたら
手がかりになりそうなものが検索されました。
もうちょっと頑張ってみます。
ありがとうございます。
797デフォルトの名無しさん:2006/01/16(月) 23:05:28
OSとVSをインストールした直後のHDDイメージをバックアップしておけばいいじゃない
798デフォルトの名無しさん:2006/01/16(月) 23:06:12
>>793
ひととおりインスコしたあと、丸ごとイメージバックアップを取って
おけば、復旧が楽でいいよ。うちはknoppixのPartImageでやってる。
799デフォルトの名無しさん:2006/01/16(月) 23:06:50
>>797
( ・∀・) 人(・∀・ )
800デフォルトの名無しさん:2006/01/16(月) 23:07:02
>>793>>794
VBとMSDNそれぞれを
一つのフォルダに納めることが出来る
一部のファイルの上書き警告が出るけど
無視してOK

801デフォルトの名無しさん:2006/01/17(火) 02:03:50
>>794-795 >>797-800
レスどうもです。
自宅PCで趣味としてやっているのでちょくちょく環境の変化があり、
インストール後のイメージを保存、というのはちょっと無理っぽいです。
大したことをしているわけでもないので古いPCが1台あれば専用にできて便利なんですけどね。

ということで次回はイメージ化して仮想ドライブ、というのをやってみようと思います。
色々ありがとうございました。
802デフォルトの名無しさん:2006/01/17(火) 02:06:29
ん?>>800さんによるとまとめてもOKってことですか。
Disk1〜4と環境アップデート用のCDが入っていてどれがMSDNか分りませんが
とりあえず上書きしてインストールしてみます。
803デフォルトの名無しさん:2006/01/17(火) 02:07:32
うげ、よく読むと全部を1枚ってのは無理っぽいですね。何度もすいません。
804デフォルトの名無しさん:2006/01/17(火) 08:07:04
いったい、自宅PCで趣味として何をやっていれば年に数回再インストするほど環境が変わるというのだろう・・・
805785:2006/01/17(火) 08:10:50
>>789
僕もそう思ったんですよ。
で、ActiveXで作ったら、上司にVB.NETじゃないとだめって言われました。
今の開発は、標準以外のコントロール(標準をカスタムしたやつも含む)は、
1つのDLLの中に収めているので、それに統一したかったんだと思います。

とりあえず、ソース配ってるとこもあるので、
それを参考に自分でコントロールを作ることにします。orzメンドイ
806デフォルトの名無しさん:2006/01/17(火) 11:06:30
VB.NET+ASP.NETでDataGridを使って開発しています。
DataGrid内のデータはDBからSELECT文で抜いてきたデータを使用しています。

If IsPostBack = False Then
 SQL文作成
 DataGridカラム作成(Linkボタン等含む)
 DataBind処理
End If

上記のようなコードをPage_Load内に記述しているのですが動的に作成したボタン等を
クリックするとDataGridに表示しているデータが消えてしまいます(ページング処理も同様)
またボタンクリック時にItemCommandメソッドも通らなくなります。

ページのリロード処理等が入る場合はIsPostBack内でのDataBind処理は不適切なんでしょうか?
IsPostBackをはずすとItemCommandメソッドも通る動きになり、データ表示も上手くいくのですが
IsPostBackをはずしていいものかどうかの切り分けがわからず悩んでいます。

詳しい方いらしたら教えて下さい。よろしくお願いします。
807デフォルトの名無しさん:2006/01/17(火) 11:21:40
ASP.NET(aspx)ではなく、既存のASP(asp)の『Server.createObject』を
使用して呼出すことの出来るDLL(COM)を、.NET2003で作成したいのですが、
どうしても上手くいきません...orz

〜試したこと〜
@C# ⇒ クラスライブラリで作成 ⇒ 「COM の相互運用機能に登録」オプションをtrue ⇒ DLL完成
A試しに、VBSから@で作ったDLLを呼出して見る(createObject) ⇒ 成功
BASPから@で作ったDLLを呼出して見る(Server.createObject) ⇒ 失敗..orz
ファイルまたはアセンブリ名 ClassLibrary5、またはその依存関係の 1 つが見つかりませんでした。

VBSから呼出せるってことは、レジストリに
登録されてるってことだと思う。(実際に登録されている)

なんで、ASPからだと使えないの?
808デフォルトの名無しさん:2006/01/17(火) 12:14:31
>>806
ポストバックはasp.netの肝だから勉強するべき。
809デフォルトの名無しさん:2006/01/17(火) 12:58:50
>>806
ASP.NETで呼び出されるオブジェクトはsingletoneじゃなくて singlecallなんだよな。
インスタンス変数はオブジェクトと同じで毎回使い捨て。
singletoneで無用心にインスタンス変数を使われるよりましだとは思うが、
どういう基準でsingletoneと singlecallを使い分けてるんだろう。
810デフォルトの名無しさん:2006/01/17(火) 13:42:18
意味がようわからん。
ASP.NETがページとコントロールという考え方で出来てる以上、
singletonなんて最初から除外されると思うんだが
811デフォルトの名無しさん:2006/01/17(火) 14:45:37
>>810
ページとコントロールという概念を持ち込んでいてもベースはcgiと同じi/fなんだから基本はステートレス。
ステートレスである以上singletonは普通に使える。
ちなみにJSPはsingletoneでasp.netはsinglecallタイプ。この違いがなんだろうと思ってるわけ。
812807:2006/01/17(火) 15:04:32
DLLをC:\winnt\system32の下へ持っていったら...orz...動いた...

なんで?レジストリには、DLLのファイルパスまで
あったし、VBSも動いてた!!

全然、わからない!!
813デフォルトの名無しさん:2006/01/17(火) 15:23:22
>>311
うーんだからそれが、処理だけに注目したserveletと、
ページオブジェクトという考え方で構築されたASP.NETの違いでしょ?

singlecallとsingletonの違いは、その考え方により決まる必然的なもの。
814デフォルトの名無しさん:2006/01/17(火) 15:56:29
>>812
GACがらみかと思ったりする
815デフォルトの名無しさん:2006/01/17(火) 16:39:40
>>813
それを実現するためにViewStateやcookie, session などを使ってるのは知ってるよ。
言いたいのはSystem.Web.UI.Pageはsinglecallでリクエストごとに破棄されてるということ。
EnableViewState=trueの場合UI.Pageが新たに作られたオブジェクトで自動的に元の状態を復元している。
>>806 のケースではViewStateで保存できない情報をPostBackされたページ間で引き継ごうとしているので
思ったような動作になってないわけだ。
ASP.NET がSigleCallなのは次のコードを実行すればわかる。
Partial Class _Default
Inherits System.Web.UI.Page
Protected instaceVal As Integer = 0
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = instaceVal + 1
End Sub
End Class
816デフォルトの名無しさん:2006/01/17(火) 17:33:06
>>806
Sessionに格納して
再バインドする

If IsPostBack = False Then
 SQL文作成
 DataGridカラム作成(Linkボタン等含む)
  Session.Add("HOGE", ds)
  バインド処理()
End If


Private Sub バインド処理()
    DataGrid1.DataSource = CType(Session.Item("HOGE"), Data.DataSet)
DataGrid1.DataBind()
End Sub

後はリンクボタンクリック時にもバインド処理をし直す
(これはページ送りの例)
Private Sub DataGrid1_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged
DataGrid1.CurrentPageIndex = e.NewPageIndex
バインド処理()
End Sub
817デフォルトの名無しさん:2006/01/17(火) 17:33:52
>>815
訂正。
instaceVal = instaceVal + 1
TextBox1.Text = instaceVal

instaceValは毎回ゼロに初期化されているので常に表示は1になる。
これをクラス変数にして同じ処理をしてみるとリクエストごとにカウントアップされるのがわかる。
818デフォルトの名無しさん:2006/01/17(火) 17:37:27
>>817
志村!
ToString!!
ToString!!
819デフォルトの名無しさん:2006/01/17(火) 17:46:21
>>818
Option Strict は付けない主義なんだと言い訳をw
あったほうがいいね。
820デフォルトの名無しさん:2006/01/17(火) 18:02:26
C言語の基礎しか理解してない者ですが、

VBで関数を使いたいんですけど、どうやって作るんですか??
821デフォルトの名無しさん:2006/01/17(火) 18:05:17
解説サイトなぞそこらじゅうに転がってるだろ
822デフォルトの名無しさん:2006/01/17(火) 18:09:44
使い方はあるけど作り方が見当たらん
823デフォルトの名無しさん:2006/01/17(火) 18:29:54
うそつけw
824デフォルトの名無しさん:2006/01/17(火) 18:31:56
つ [Main関数]

Public Function Main() As Integer
Return 0
End Function
825デフォルトの名無しさん:2006/01/17(火) 20:57:31
おいおい、よくある誤解だけど>>817でToString付けないのは別にチョンボじゃないよ。
まあおれ自身はなんか気持ち悪いのでついつい付けるけどね。
あと、ろくに知らない奴にコード読まれた時に突っ込まれたくないってのもあるが。
826デフォルトの名無しさん:2006/01/17(火) 21:01:39
(´,_ゝ`)
827デフォルトの名無しさん:2006/01/17(火) 21:05:30
やっぱりそう来る奴がいると思ったw
826みたいな馬鹿ってどこの職場にもいるんだよなあ。。
828デフォルトの名無しさん:2006/01/17(火) 21:08:19
これはひどい
829デフォルトの名無しさん:2006/01/17(火) 21:14:13
VB6,VB2003.net,VB2005の中で最処理が速いのは?
830デフォルトの名無しさん:2006/01/17(火) 21:21:42
処理による
831デフォルトの名無しさん:2006/01/17(火) 21:32:12
まるでVB2005が.NETじゃ無いと言わんばかりの書き方だな
832デフォルトの名無しさん:2006/01/17(火) 21:36:39
2005で製品名からも言語名からも.NETが消えたのだから仕方あるまい
833829:2006/01/17(火) 21:42:20

画像の描画でVB6,VB2003.net,VB2005の中で最処理が速いのは?
VB6ではbitbltを、VB2003.net,VB2005ではフレームワークから提供される一般的な方法。
834デフォルトの名無しさん:2006/01/17(火) 22:19:03
それは不公平だ
835デフォルトの名無しさん:2006/01/18(水) 03:43:26
どれもbitblt使えば同じだろが
836デフォルトの名無しさん:2006/01/18(水) 07:19:30
アホだなこいつ
837デフォルトの名無しさん:2006/01/18(水) 18:58:24
データグリッドからArrayListにデータを積み込む
Public Array As ArrayList = New ArrayList
For StartCountRows = Start To End Step 1
Dim Hash As Hashtable = New Hashtable
Hash.Item("Heads") = (DataGrid1.Item(GridCounter, GridCell.GridHead))
Hash.Item("Itemnames") = (DataGrid1.Item(GridCounter, GridCell.GridItemName))
Hash.Item("Quas") = (DataGrid1.Item(GridCounter, GridCell.GridQua))
Hash.Item("Units") = (DataGrid1.Item(GridCounter, GridCell.GridUnit))
Hash.Item("Costs") = (DataGrid1.Item(GridCounter, GridCell.GridCost))
Hash.Item("Overalls") = (DataGrid1.Item(GridCounter, GridCell.GridAll))
Array.Item(StartCountRows) = Hash
Next
この積み込んだデータをDataGridに吐くことはできるのですが、このデータ+別のデータを組み合わせて、
SQL文を作るために、データを取り出したい。
Dim Arrays = Array(NowArray)
For NowArray = 0 To ArrayMax - 1
Kou = Arrays("Head")
goods = Arrays("Itemnames")
Number = Arrays("Quas")
Unit = Arrays("Units")
Price = Arrays("Costs")
Hason = Arrays("Overalls") <> "" Then
rem ここでSQL文発行
Next
とすると、例外が発生します。
System.MissingMemberException' のハンドルされていない例外が microsoft.visualbasic.dll で発生しました。
追加情報 : 型 'Integer' の既定メンバが見つかりません。
でも同じような処理で印刷はできるから規定メンバが無いわけではないと思う。
データ構造は変更不能なので何とか配列からデータを持って来たいのですがどうしたらいいですか?
838デフォルトの名無しさん:2006/01/18(水) 19:24:00
>規定メンバが無いわけではないと思う。
おいおい、無いっていってるんだから無いに決まってるジャンw
違うっていうならIntegerのデフォルトプロパティを言ってみ?

っていうか、例外が発生している部分のコード提示しなくて、
いったいどういう回答を期待してるのかあ。
世の中みんなエスパーだとでも思ってるんだろうか。

どうでもいいけど酷いコードだなあ。。
せめて命名をもうちょっと工夫してもいいんじゃないの?
839デフォルトの名無しさん:2006/01/18(水) 20:37:40
質問。2005のWebBrowserコントロールに、NewWindow2イベントが無いみたいなんだけど、自分で新しく開くウインドウの
開く先を指定する方法は無いの?
840デフォルトの名無しさん:2006/01/18(水) 22:47:00
新しく開くウィンドウってフォーム?
それともブラウザのこと?
841829:2006/01/18(水) 23:12:39
>>834>>835
馬鹿にしてすまなかった。少しレベルを見たかった。

>>836
それだけだとちょっと(829と836の)どっちがアホなのか・・・w
842デフォルトの名無しさん:2006/01/19(木) 04:07:24
>>840
ブラウザじゃネーノ?
843デフォルトの名無しさん:2006/01/19(木) 10:34:11
>>838
すまんこ
上記ソースのこの部分で例外が出る

この積み込んだデータをDataGridに吐くことはできるのですが、このデータ+別のデータを組み合わせて、
SQL文を作るために、データを取り出したい。
Dim Arrays = Array(NowArray)     ← この部分
For NowArray = 0 To ArrayMax - 1
Kou = Arrays("Head")
goods = Arrays("Itemnames")
Number = Arrays("Quas")
Unit = Arrays("Units")
Price = Arrays("Costs")
Hason = Arrays("Overalls") <> "" Then
rem ここでSQL文発行
Next

本格的(?)にコード書き始めて半月だからなぁ・・・ もっと綺麗なコードが書けるように努力するよ。
自分で書いてても可読性の悪いコードだと思う・・・orz
844デフォルトの名無しさん:2006/01/19(木) 10:41:13
すまん、嘘書いた。


この積み込んだデータをDataGridに吐くことはできるのですが、このデータ+別のデータを組み合わせて、
SQL文を作るために、データを取り出したい。
Dim Arrays = Array(NowArray)     ← この部分じゃなくて
For NowArray = 0 To ArrayMax - 1
Kou = Arrays("Head")           ←この部分で例外発生
goods = Arrays("Itemnames")

デフォルトプロパティとか難しい言葉が出てきたけど勉強するよ。

同じような処理で〜って言ったのは印刷のときはExcelにデータを落としてるんだけれど、上記コードで
変数で受けてる部分をExcelのセルに突っ込むコードになってるんだけどそれはエラーも出ないでちゃん
と機能するんだ。
ExcelがObject型で受けてるからOKで上記コードは変数で受けるからエラーなのかなと思って、
Dim Kou as Object
にしてみたら・・・期待通りエラーでした。 オブジェクト指向って難しい(違うと思う)
845デフォルトの名無しさん:2006/01/19(木) 12:52:47
可読性が悪いのはコードだけじゃないね。
まあ、コードも文書も理論的に整理できない人が書くと大変だ。
846デフォルトの名無しさん:2006/01/19(木) 17:02:24
>>839
ppDispって引数ないんだよね。
俺SHDocVw.DWebBrowserEvents2_Eventにキャストして、NewWindow2イベントフックしてる。
今までどうりのやり方。
847デフォルトの名無しさん:2006/01/19(木) 17:14:58
便乗で聞くけど、Flash上でのクリックがいまだ効かないんだけど、
どうしたら。。。vb2005webbrowser。
848デフォルトの名無しさん:2006/01/19(木) 17:25:18
さらに便乗で聞くけど、
ブラウザでたまにJavaスクリプトが正しく記述されてないページで
スクリプトエラーのメッセージが出てくるんだけど、抑制する方法ってありますか?

vb2003でwebbrowserです
849デフォルトの名無しさん:2006/01/19(木) 17:29:35
2005ならあるよ。ScriptErrorsSuppressedってPropertyがあるから。
2003はしらんな。俺も使ってたころは悩まされてたが、Flashはちゃんとクリックできたんだよなぁ。
もどすきはないなぁ。その問題があるから。
850デフォルトの名無しさん:2006/01/19(木) 17:31:52
>>848
よければ教えてほしいんだけど、Flashの問題はどうやって回避しました?2003で。
2005にも応用できるかも。
851デフォルトの名無しさん:2006/01/19(木) 17:34:04
>>838
藻前様の言うことをよく整理してみた。
要は処理が出来る所と出来ない所は何かが違う。
処理できる所と出来ない所をDebug.Writeline(Array.GetType)と(前略)(Arrays.GetType)してみた。

正しいところ System.Collections.ArrayList
         System.Collections.Hashtable
いくないところ System.Collections.ArrayList
          System.Int32

・・・型が違うじゃん・・・
同じ構文=型も同じに決まってるっていう思い込みからずっと悩んでいたようだ。
原因が分かって対策もできた。

藻前様のとこのスレッドに住むすべての神のおかげで生涯初のプログラムが完成しそうだ。
本当にありがとうございました。
852デフォルトの名無しさん:2006/01/19(木) 17:48:03
>>851
Option Strict Onって知ってる?
853デフォルトの名無しさん:2006/01/19(木) 19:00:24
SHDocVw.DWebBrowserEvents2_Eventにキャストして、NewWindow2イベントフックしてる。
これやると
今開いているページにも新しく開くページの内容が表示されてしまう場合があって、対応できない。やり方間違ってるかもしれない。
なぜか、OnNavigatingでe.Cancel=trueにすると、GoBackが効かなくなるし。
854デフォルトの名無しさん:2006/01/19(木) 19:10:52
もうやめる。もうやめ。糞。
855デフォルトの名無しさん:2006/01/20(金) 00:51:45
VB2005のデータグリッドビューで
エンターキーを押した時の縦セル移動を横セル移動にしたいのですが
VB2003の時のセルのキーダウンを拾う方法と記述の仕方が変わったみたいで
VB2005では同じ要領でできません。

どなたかご存知ないですか?
856851:2006/01/20(金) 01:08:21
>>852
知らんかった。
早速使ってみるよ。

/チラシの裏開始
確かに筋も腕も悪いが俺はあきらめない。
いつか世界で1000位以内にランキングされるプログラマになりたいと思う。
そのためには何を学ぶべきなんだろう。
とりあえず今はVB.NETとMySQLをやっているが、いつかはVC++(滅ぶかも知れないらしいが)
に乗り換えたいと思う。
そのためにはどんな本を読めばいいんだろう。
とりあえず、日経BPのプログラミングVB.NETVol1,2とVisualBasic.NET実践講座Vol1,2を読んでる。
/チラシの裏終了
857デフォルトの名無しさん:2006/01/20(金) 01:50:39
まずVBを捨てることだろう。C系に行くのなら。
858デフォルトの名無しさん:2006/01/20(金) 01:54:13
.NET以降のVBはそれほどは悪くはない。
ただし、Java、VB、C#系から初めてC系C++系にいくのはつらいと思うぞ。
859デフォルトの名無しさん:2006/01/20(金) 03:15:09
>>856
なんかカワイイw
860デフォルトの名無しさん:2006/01/20(金) 08:19:38
>>858
普通は逆でしょ。
そんな理屈が通用するなら、最初からCっていう大半のプログラマはどうなるのw

抽象度が低い言語を知らずにVBみたいな言語を始めるのは本当はキツい。
キツい、というか落とし穴にはまりやすい。
昔はよくアセンブラを知らずにcやると〜、なんていわれてたね。

VB6のPGの大半がクラスつかってなかったみたいに、乗り越えられないハードルにも
あたりやすい。
861デフォルトの名無しさん:2006/01/20(金) 08:55:51
>>860
すまん、意味がわからん。
おれはつまり抽象度の高い言語から始めて、
抽象度の低い、あるいは複雑度の大きい言語に行くのは
つらいと言ってるんだが、それとどう逆なのかよくわからん…
862785:2006/01/20(金) 09:26:11
学生時代にVBをちょっとやって、社会人になってJavaやってて、
最近、.NETをやってみたら、凄く書きやすくなったなぁと思うんだけど、
VB6とかから.NETに直接行った人って、やっぱ抵抗あった?
863デフォルトの名無しさん:2006/01/20(金) 09:35:23
VB.NET 2003で付属のクリスタルレポートを使ってみたいのですが
.rptファイルを新規作成する手順がわからないのですが
ご存知のかた、おられましたら教えていただけないでしょうか?
よろしくお願いします。
864348:2006/01/20(金) 10:28:20
すいません、探し続けているのですが未だに見つかっていません。
よろしければできるかできないかだけでも教えてもらえないでしょうか。
865デフォルトの名無しさん:2006/01/20(金) 11:13:45
>349
866デフォルトの名無しさん:2006/01/20(金) 11:19:32
>>861
抽象度の高低と複雑性の大小はまったく相関関係は無い
867デフォルトの名無しさん:2006/01/20(金) 11:25:33
>>864
できないです。
868デフォルトの名無しさん:2006/01/20(金) 11:37:00
>>866
だからあるいはて書いてんだが。
しかしどちらもつらい理由であるってこと
869デフォルトの名無しさん:2006/01/20(金) 11:39:06
>>864
つ COM

>>867
さらっと嘘言うな

870デフォルトの名無しさん:2006/01/20(金) 11:45:45
>>869
REGSVR32できないのにCreateObjectできるんですか?
871デフォルトの名無しさん:2006/01/20(金) 11:49:48
>>870
.NET SDKにある専用のコマンドで登録するんじゃなかったけ
872デフォルトの名無しさん:2006/01/20(金) 11:56:20
873デフォルトの名無しさん:2006/01/20(金) 14:12:24
DataGridで'ABCDEFGHIJKLMN'という文字列の先頭4byteのみ('ABCD')表示させたいんだが、
どのようなデータフォーマット式を書けばいいの?
874デフォルトの名無しさん:2006/01/20(金) 14:25:22
4文字じゃなくて4バイト?
まあ何にせよ
ttp://dobon.net/vb/dotnet/datagrid/wrapwordtextcolumn.html
こういうことしなきゃなんないけど。
875デフォルトの名無しさん:2006/01/20(金) 14:41:46
ありがとうございます。
少し違いますが数字でいう所の{0:D4}みたいなのがあると思ったもんで聞いてみました。
876デフォルトの名無しさん:2006/01/20(金) 16:15:54
つうか、半角1、全角2っていうバイト換算も過去の遺物だけどね。
877デフォルトの名無しさん:2006/01/20(金) 17:56:07
>>869
>>871
>>872
大変ありがとうございました。m(_ _)m
878867:2006/01/20(金) 18:25:51
>>877
おい。そもそも俺ができないといったおかげで
レスがついたんだぞ。俺にも感謝しろよ。
これは2ちゃんねらーの心理をついた作戦だったんだぞ。
879348,877:2006/01/20(金) 19:19:16
>>878
そうかも知れないですね。ありがとうございました。
Accessからも使いたかったので助かりました。
880デフォルトの名無しさん:2006/01/21(土) 01:12:50
VBつかってても、クライアントアプリばっかり作ってると
クラス使わないことが多いから苦労するかもなー。

DLL作ったり、Webの3階層とかやってりゃ慣れも早いんだが
881デフォルトの名無しさん:2006/01/21(土) 01:19:43
VB6でDLLつくったりWeb3階層とかって実装作業が悲惨だった希ガス
Oracle専用の入出力画面しか作ってねー
VB.NETでやっとまともにあつかえるようになったのはよかーたが
882デフォルトの名無しさん:2006/01/21(土) 01:27:21
悲惨だから身についたんだ・・・orz
ASP.NETってスバラシイよ
883デフォルトの名無しさん:2006/01/21(土) 16:53:33
ブラウザでたまにJavaスクリプトが正しく記述されてないページで
スクリプトエラーのメッセージが出てくるんですど、抑制する方法ってありますか?

vb2003でwebbrowserです
884デフォルトの名無しさん:2006/01/21(土) 16:59:31
WebBrowser.Silent
885883:2006/01/21(土) 17:01:50
>>884
レスありがとうございます。
早速調べてみます。
886デフォルトの名無しさん:2006/01/21(土) 18:43:22
おまえらすげーぞ。
Webbrowserで、vb2003のAxwebbrowserで、MouseMoveキャッチできたよ。
AddHandlerではだめなくせに、WithEventsにMshtml.HtmlDocumentをいれたらできた。
>>884
Thanks!!!!!
887デフォルトの名無しさん:2006/01/21(土) 18:46:13
とおもったらまたできなくなった。なぜ。。
888デフォルトの名無しさん:2006/01/22(日) 23:52:31
質問です(初心者房です)。

vbのデザイナを使い、チェックボックスやラジオボタンのある画面を作成し
tabキーでフォーカスのあたり方をテストしたところ、
チェックボックスのtextやラジオボタンのtextには点線が表示されますが
肝心のレ印の部分や◎の部分には点線がつきません。

ぜひレ印の部分や◎の部分にも点線をつけたい、と思うのですが
無理でしょうか? それとも何か方法がありますでしょうか?
889デフォルトの名無しさん:2006/01/23(月) 00:01:16
フォーカスを示す点線がテキスト部分を囲うってのはWindowsのデフォルト動作だし。
頑張って一から描画するしかないんじゃない?
890デフォルトの名無しさん:2006/01/23(月) 00:14:48
BackColorでも変えとけ。
891デフォルトの名無しさん:2006/01/23(月) 00:16:32
>889

早速のレスありがとうございます。デフォルトですか・・・
プロパティなどを簡単にいじって実現できる、というような話では
ないんですね…ちょっと初心者には敷居が高くなりそうなので
まずは(ひとまず小休止し)頑張って勉強して、対応考えます。

■さらに重複しつもんすみません
チェックボックスのtextやラジオボタンのtextの位置も
変えたいと思っているのですが…(下記例のように)
ラジオボタンのtext部分を空欄にし、表示したい文字列をラベルで表示するのが
普通かもしれませんが…みなさんだったらどうするか
一般的なやり方、というか手法をご教授いただきたく。

例:textに「表示」と表示するチェックボックス

◎表示

表示◎


 示
  ◎

892デフォルトの名無しさん:2006/01/23(月) 00:34:59
・斜めと言うのはそもそも普通しない。ユーザビリティってもんを考えろ。
・ボックスの位置はCheckAlignプロパティ。
893デフォルトの名無しさん:2006/01/23(月) 00:41:56
>>890
ありがとうございます。フォーカスを受け取ったらバックカラーを
変更すれば、視覚的にわかりますね。これなら自分にもできそうですし
わかりやすいですね。

>>892
確かに斜めは見づらいし使いにくいですね、すみません。
プロパティご教授ありがとうございます。

早速チャレンジしてやってみます。
894デフォルトの名無しさん:2006/01/23(月) 10:44:54
.NETでSOAPするやり方教えてください。
895デフォルトの名無しさん:2006/01/23(月) 11:25:28
意識せずにやるなら、WebMethodとか、.netリモーティングとか。
意識してやる方法は知らん。

896デフォルトの名無しさん:2006/01/23(月) 12:28:39
北方謙三に相談する
897デフォルトの名無しさん:2006/01/23(月) 13:20:38
VB.netでCPUなどの温度を監視することはできますか?
898デフォルトの名無しさん:2006/01/23(月) 14:01:44
取れるやつはWMIのclassから取れるんでないの?Win32_TemperatureProbe辺りとか。取ったことはないが。
899デフォルトの名無しさん:2006/01/23(月) 16:49:26
質問失礼致します。

一部、単語を縦書きフォント(@付き)を使用して印刷したいと考えているのですが、
どうしても縦書きで印刷されません。
何かご存知の方いらっしゃいましたら、教えてください。

印刷する文字列
   「MS Pゴシック」
欲しい結果
   「MS P」に対して、「ゴシック」は90℃回転した字で印刷される
その他
   Excelでセルでフォントを「@MS Pゴシック」に指定して印刷すると上記の
   欲しい結果の通り正常に印刷されるため、PC内にフォントが無いことはない

使用したVBの構文
e.Graphics.DrawString("@MS Pゴシック", New Font("@MS Pゴシック", 14), Brushes.Black, 50, 50)
現状の印刷結果
 「@MS Pゴシック」と同一の向きで全てが印刷される
900デフォルトの名無しさん:2006/01/23(月) 17:09:11
>>899
フォントと描画方向と文字の傾きは直接は関係ない。
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9367&forum=7&start=0
901デフォルトの名無しさん:2006/01/23(月) 19:24:15
>>899
1.pictureboxなんかに描画&印刷。
2.htmlに(縦書きで)出力&印刷。
そんな感じかな。
でも2はかなり高度なhtml知識が必要だから1がオススメ。
902デフォルトの名無しさん:2006/01/24(火) 01:12:03
.net2002だと.net Frameworksは1.0しかうごかいないのでしょうか?
1.1 or higherを使うためには2003とか2005にしないとだめなの?
903デフォルトの名無しさん:2006/01/24(火) 01:13:44
VB.NET2002だと.NET Framework 1.0のアセンブリしか作れない、な。
使うと言うのが何を指すのか分からんが。
904デフォルトの名無しさん:2006/01/24(火) 01:19:50
>>903
ありがとうございます.

1.1のSDKをいれても無意味なのですね...
905デフォルトの名無しさん:2006/01/24(火) 08:55:41
>>900 >>901

URLを参考に、
Dim drawFormat As New StringFormat()
drawFormat.FormatFlags = StringFormatFlags.DirectionVertical
e.Graphics.DrawString("@MS Pゴシック", New Font("@MS Pゴシック", 14), Brushes.Black, 10, 10, drawFormat)
と記述。

「@MS Pゴシック」と印刷されていたものが、紙を横からみた状態で、
「@MS P゛∩,,ヽ=ヽ⊂」(見辛いですが...) 全角文字部分を縦書きにすることができました。


お陰さまで求める結果を出すことが出来ました。ありがとうございました。
906デフォルトの名無しさん:2006/01/24(火) 09:27:25
文字化せずに文字コードの配列をエンコードすれば?
907デフォルトの名無しさん:2006/01/24(火) 11:47:03
performanceCounterを使って色々な情報を表示するプログラムを作っています。
CPU、メモリ、HDDなどはできたのですが、
ネットワーク速度を測ろうとしたのですが、
CategoryNameに、NetworkInterfaceがありませんでした。
他の方法があればご教授ください。


908デフォルトの名無しさん:2006/01/24(火) 15:21:19
自作のWSCコンポーネントをVB2005で利用できないのでしょうか?

Set oComponent = GetObject("script:c:\COM\MyComponent.wsc")

などとやっていますが、エラーにはならないもののプロパティとか取得できません。
909デフォルトの名無しさん:2006/01/24(火) 15:26:35
質問です。

VB.NETを購入しますた。
合わせて、書籍の実践講座基礎編を購入して順調に進んでたのですが、
付属のCD-ROMに入ってるプロジェクトファイルを開こうとしたら、
「データが旧式なので、現在のバージョンに変換します。後戻りできませんがイイですか?」みたいなダイアログメッセージがでたので、
「はい」をおしました。

しかし、ファイルが開けません(変換後のファイルに対して反応しない)
変換した後に作成されたoldでやり直しても、「データが旧式〜ry」と出て同じです。
これじゃ変換する意味がありません。

なぜーですかー!
910デフォルトの名無しさん:2006/01/24(火) 15:45:01
>>908
できたよ。
関係ないけど、VB7以降SetキーワードはObsoleteだから。
911デフォルトの名無しさん:2006/01/24(火) 16:14:36
>>909
CDからプロジェクトを開いてるか、コピーして書き込み禁止を解除していないに一票。
912デフォルトの名無しさん:2006/01/24(火) 16:34:10
>>911
だな。
ファイルを全部選択して、プロパティから読み取り専用属性を外すんだ。
913909:2006/01/24(火) 17:49:20
>>911
>>912
超助かりました。
本当に有難うございました!
914デフォルトの名無しさん:2006/01/24(火) 19:16:34
timerの使い方がいまいち分からないのでどこか解説されているサイトはありませんか?

今もぐら叩きを作ったのですがこれに時間制限を作りたいのです。
それで時間は1分としまして、Buttonがクリックされたらカウントダウンをして
59→ … 30 … → 0 → 終了!
てな感じでやりたいのです・・・

ちなみに
Timer.Enabled = True
Timer.Start()
の違いなども分かりません(>_<)
915デフォルトの名無しさん:2006/01/24(火) 19:21:42
intervalを設定して。
大体1000が近似値だったはず。
916915:2006/01/24(火) 19:36:42
1.timerをフォームに貼り付ける

2.timerコントロールをダブルクリックして、一定間隔ごとに実行したい処理を記述。
 間隔はintervalで設定[1000≒1秒(アバウト)]

3.Timer.Enabled = Trueにして実行。停止したいときはTimer.Enabled = False。
 Timer.Enabledはtimer自体の働きを有効にするかを表す。Trueで有効、Falseで無効。


でも厳密に1秒ずつカウントしていきたいなら、System.Environment.TickCountを使用するのがオススメ。

System.Environment.TickCountはWindowsが起動してからの時間を取得することができる。

これで最初にWindowsが起動してからの時間を取得しておく・・・@
そして、timer(interval=50程度)で毎回Windowsが起動してからの時間を取得する・・・A
そしてA-@することでかなり正確に1秒を求めることが出来る。
ただしSystem.Environment.TickCountで取得した場合ミリ秒で取得するので1000=1秒となることに注意。

え〜っと、間違いあったら誰か指摘して。
917デフォルトの名無しさん:2006/01/24(火) 19:47:35
わざわざそんなことせずにSystem.Timers.Timerあたり使えってことかな。
別スレッドで動くことになるからControl.Invokeが必要になるけど。
918デフォルトの名無しさん:2006/01/24(火) 19:49:09
>>917
マルチもどきはまだ914の実力には合わないんじゃないかな。
919デフォルトの名無しさん:2006/01/24(火) 19:51:26
コントロールの作り方が良く分かりません。
いくら調べてみてもそれらしいものは出てこないし・・・
誰か大まかな流れでいいので教えて貰えないでしょうか。
920デフォルトの名無しさん:2006/01/24(火) 19:58:25
一言で作るって言ってもかなりの幅があるが。
921デフォルトの名無しさん:2006/01/24(火) 20:11:58
>>919
何を作りたいか決める→インターフェースを決める→実装する→テストする
こんな流れで良いんじゃないか?
922デフォルトの名無しさん:2006/01/24(火) 21:04:37
>>914
フォームにButton,Label,Timerを貼り付けて

Formのメンバに
  Private _Count As Integer   '残り秒数のカウンタ

ButtonのClickイベントに
  Count = 60            '残り秒数
  Label1.Text = _Count.ToString()
  Timer1.Interval = 1000      'Tickイベントを発生させる間隔(ミリ秒)
  Timer1.Start()           'タイマ開始 (Timer1.Enabled = True でも同じ)
  Button1.Enabled = False

TimerのTickイベントに
  Count -= 1            '1秒に1回カウントダウンされる
  Label1.Text = _Count.ToString()
  If _Count = 0 Then
    Timer1.Stop()         'タイマ終了 (Timer1.Enabled = False でも同じ)
    MessageBox.Show("おわり")
    Button1.Enabled = True
  End If

てな感じでどう?
923922:2006/01/24(火) 21:11:23
変数名がメチャクチャになっちゃった(´・ω・`) スレ汚しスマソ

Formのメンバに
  Private _count As Integer   '残り秒数のカウンタ

ButtonのClickイベントに
  _count = 60            '残り秒数
  Label1.Text = _count.ToString()
  Timer1.Interval = 1000      'Tickイベントを発生させる間隔(ミリ秒)
  Timer1.Start()           'タイマ開始 (Timer1.Enabled = True でも同じ)
  Button1.Enabled = False

TimerのTickイベントに
  _count -= 1            '1秒に1回カウントダウンされる
  Label1.Text = _count.ToString()
  If _count = 0 Then
    Timer1.Stop()         'タイマ終了 (Timer1.Enabled = False でも同じ)
    MessageBox.Show("おわり")
    Button1.Enabled = True
  End If
924デフォルトの名無しさん:2006/01/24(火) 21:24:06
>>917
多分フォームに張り付けて使うだろうから
Windowsタイマと何も変わらんと思う。
925デフォルトの名無しさん:2006/01/24(火) 21:33:24
何が何も変わらないんだ?
どこに張り付けようがSystem.Timers.Timerは独自スレッドで動くが。
926デフォルトの名無しさん:2006/01/24(火) 21:44:00
だから使ってるやつからみての話

927デフォルトの名無しさん:2006/01/24(火) 22:12:52
念のため、そういう風に意識せずに同じように
使ってしまうことが、いいことだとは思ってない
928914:2006/01/24(火) 22:49:50
>923-答えてくれた人
ありがとうございます。
ほぼ923の書いてくれた通りにやったらできました。
929デフォルトの名無しさん:2006/01/25(水) 08:41:44
>>919
ms-help://MS.VSExpressCC.v80/MS.NETFramework.v20.ja/dv_vbcnexpress/html/ca72914b-a90e-40b5-a99d-c1585aeccdea.htm

はどうよ?
930デフォルトの名無しさん:2006/01/25(水) 11:49:39
VS2005で作成したWebアプリをWebサイトの発行でインストールしましたが
以下のエラーで動作しません。どうしてでしょう、教えてください。

'/xxx'アプリケーションでサーバーエラーが発生しました。
解析エラーメッセージ: 認識されない属性 'xmlns'です
web.config内の
<configuration xmlns="http:....../v2.0"> ← ここでエラー

バージョン情報
Microsoft NET Framework 1.1.4322.2300 ASP.NET Version 1.1.4322.2300

インストールしたPCはServer2003で、VS2005もインストール済みです。

.
931デフォルトの名無しさん:2006/01/25(水) 11:54:46
ASP.NETのバージョンを2にしなきゃ
932デフォルトの名無しさん:2006/01/25(水) 11:56:27
>931
ども!
開発機もインストール機も VS2005 が入ってるから 何もする必要ないって思ってました。
さっそく。。。
933デフォルトの名無しさん:2006/01/25(水) 17:41:20
>>929
レスさんきゅです。
参考にさせて頂きます
934デフォルトの名無しさん:2006/01/25(水) 22:52:14
ユーザーコントロールを作ってるのですが、
TextBoxみたいにデザイナ上で

■───■───■
│           │
□           □
│           │
■───■───■

こんな風に幅しか変更できないようにする方法はありますか?
MSDNを一通り眺めてみたんですが、
TextBoxBase,TextBox,Controlの各メンバにも
該当するプロパティ等は無いようなのですが…。
935934:2006/01/25(水) 22:54:08
すみません。追記しておきます。
VB.NET 2003で、作成中のユーザーコントロールはTextBoxを継承していません。
936デフォルトの名無しさん:2006/01/25(水) 22:59:42
推測だが、Designer属性でControlDesigner(またはその派生クラス)を派生させたクラスを指定。
その派生させたクラスでOnMouseDragBegin/OnMouseDragMoveメソッドあたりをオーバーライドして処理するんではなかろうか。
937デフォルトの名無しさん:2006/01/26(木) 11:17:53
>>935
継承した先で縦サイズのプロパティで定数を返すようにすればよい
938デフォルトの名無しさん:2006/01/26(木) 11:37:38
>>936
試してみます。

>>937
すみません。言葉が足りませんでした。
heightを変更しないのではなく、デザイナ上に配置した時に、
アンカ(上記■の部分)をグレイアウトさせて、
マウスで操作できないようにしたかったのです。
939デフォルトの名無しさん:2006/01/26(木) 12:13:16
>>938
ControlDesignerの派生クラスでSelectionRulesプロパティをオーバーライドして
Moveable Or LeftSizeable Or RightSizeable Or Visibleを返す。
そのクラスをコントロールのDesigner属性に指定。
940デフォルトの名無しさん:2006/01/26(木) 17:35:24
教えてください。

今までずっとUnixでWebプログラミングをやってきて、
この度初めてVB.netでWindowsアプリを開発することになりました。

はじめに入力フォームからデータベース(SQL Server)にデータを投入する
という機能を作ろうとしているのですが、

WEBで使うようなテーブル(メールフォーム等のような罫線入りの)
入力フォーム(列の結合なども有りで)を理想としているのですが、
VB.netでの罫線入りの入力フォームの実現方法が思いつきません。

いろいろ考えた中では結局下地のテーブル部分を1枚の画像で制作し、
その画像の上にテキストボックスなどのコントロールを配置する方法
を思いついたのですが、項目が増減するとそのたびに画像を書き直し
しなければならないため行が可変だったりすると全く融通が利きません。

上記を実現するためにどのような手法がありますでしょうか?
よろしくお願いいたします。
941デフォルトの名無しさん:2006/01/26(木) 19:05:52
>>940
ブラウザを貼り付け、HTAで作る
942デフォルトの名無しさん:2006/01/27(金) 00:15:51
>>941
ありがとうございます
早速調べてみます
943デフォルトの名無しさん:2006/01/27(金) 09:22:54
つうか入門書。
944デフォルトの名無しさん:2006/01/27(金) 10:29:26
MailMessage のFrom とかTo に文字列入れてて問題なかったのに、最近、コンパイラに怒られるんだ。
なんでかな?
945デフォルトの名無しさん:2006/01/27(金) 12:55:50
何怒られたかも書いてない書き込みはチラシの裏。
946デフォルトの名無しさん:2006/01/27(金) 13:21:05
DataGrid使ってるんですがクリックしたDataGridセルの横座標が取れません。

DataGrid.Items(x).Cells(y).Text

こんな具合で取れると思うのですが、X座標はともかくY座標がさっぱり取れません
現状Y座標だけベタ書きでコードを組んでいます。

クリックしたセルのY座標(横座標)を取る方法があったら教えて下さい
947デフォルトの名無しさん:2006/01/27(金) 13:40:20
CurrentCellとか使えばいいんじゃないかね
948デフォルトの名無しさん:2006/01/27(金) 13:46:20
>>947
すいません、書き漏れです。
VB.NET+ASP.NETです。CurrentCellが見当たらないんです・・
949デフォルトの名無しさん:2006/01/27(金) 15:12:13
2003か2005かも書くべきだと思う今日この頃。
950デフォルトの名無しさん:2006/01/27(金) 15:33:05
>>949
重ね重ねすいません。2003です。
調べ方が甘いのか見当違いの場所を探しているのか・・
951デフォルトの名無しさん:2006/01/27(金) 15:44:48
やりたい処理はDataGrid上に配置したボタンをクリックした時に
どちらをクリックしたかItemCommand内で判断した以下処理分岐ということです。

現状はY座標のとり方がわからないため

i = e.Item.ItemIndex
strAAA = e.Item.Cells.Item(i).Text

と組み、ボタンのキャプションで処理を分岐させています。
この処理でとりわけ問題はないのですが、何故Y座標が取得できないのかがわからず・・・
詳しい方いらっしゃったら教えて下さい。
952デフォルトの名無しさん:2006/01/27(金) 15:46:04
問題があった・・・
すいません、もっと調べて出直してきます・・
953デフォルトの名無しさん:2006/01/27(金) 16:41:18
日記帳?
954デフォルトの名無しさん:2006/01/28(土) 02:12:11
ちらし、かな。
955デフォルトの名無しさん:2006/01/28(土) 15:00:47
スタンバイから復帰することって出来ますか?
956デフォルトの名無しさん:2006/01/28(土) 15:05:01
それはもう.NETとは関係ない話になるな
957955:2006/01/28(土) 15:14:54
>>956
APIということでしょうか?
958デフォルトの名無しさん:2006/01/28(土) 15:58:31
>>957
スタンバイ状態の仕組みから考えて不可。
休止状態もな。
959デフォルトの名無しさん:2006/01/28(土) 16:28:24
おいおい何年前のPCの話してんのよw
スタンバイから(RTC等で)復帰なんてAPMの当時から実現してるってw
でなきゃタスクスケジューラは魔法か何かかw
960デフォルトの名無しさん:2006/01/28(土) 16:30:03
>>959
じゃあ、VB.NETでどうやるのか教えてくれる?
961デフォルトの名無しさん:2006/01/28(土) 16:37:22
タスクスケジューラにタスクを追加する。
ググればやり方はでてくる筈だよ
962デフォルトの名無しさん:2006/01/28(土) 19:59:34
>>960
スタンバイしようとするのを検出して、無効にしちまえw
963デフォルトの名無しさん:2006/01/28(土) 23:40:12
マウスカーソルが動いたらすぐ解除されるんで少し動かしてやればいいんじゃね?
964デフォルトの名無しさん:2006/01/29(日) 00:09:38
いやだから、VB.NETでどうやって復帰するのかって話じゃないの?
965デフォルトの名無しさん:2006/01/29(日) 00:12:17
>>960
指定時間に自動復帰するということならAPIの
CreateWaitableTimer
SetWaitableTimer
SetThreadExecutionState
CloseHandle
を使えばできる。
966デフォルトの名無しさん:2006/01/29(日) 19:22:21
整数型かどうか調べるのってどうやるんですか?
967デフォルトの名無しさん:2006/01/29(日) 21:07:46
NumericUpDownのValueChangedは、アップダウンをマウスでクリックしたら動きますが
直接キーボードから値変更したときに動いてくれませーん(T_T)/
どうしたらいいか、誰か教えてくれませんか〜^^
プログラミングって難しいですねーorz orz
968デフォルトの名無しさん:2006/01/29(日) 21:09:50
TextChangedでやってみたら?
969デフォルトの名無しさん:2006/01/29(日) 21:40:47
>>967
キー入力で値変更したときもValueChanged発生するよ。
大丈夫?
ここでいう「値」っていうのは表示されている値ではなくて
NumericUpDownが保持している値のことね。

当たり前だけどこの「値」はエンターキーを押さないと反映されないよ。
970デフォルトの名無しさん:2006/01/29(日) 21:47:17
■質問です■

テキストエディタを作ったとします。
ここで、テキストファイルをテキストエディタのアイコンにドロップして起動する方法を教えてください。
971デフォルトの名無しさん:2006/01/29(日) 22:49:29
>>970
デスクトップアイコン?
それなら引数でわたってくるんじゃないの?
972970:2006/01/29(日) 22:52:28
>>970
それが分からないんです・・・
973デフォルトの名無しさん:2006/01/29(日) 22:53:08
>>970>>971
974デフォルトの名無しさん:2006/01/29(日) 23:02:15
System.Environment.GetCommandLineArgs
975デフォルトの名無しさん:2006/01/29(日) 23:03:17
>>966
IsReference
976デフォルトの名無しさん:2006/01/29(日) 23:05:50
>>975
DoubleやDecimalやDateTimeだったらどうする。
977デフォルトの名無しさん:2006/01/29(日) 23:18:50
屁理屈うざ。ドロップするのが数値だろうが難だろうが文字で受けてるだろ?
やってから書き込めよ。
978デフォルトの名無しさん:2006/01/29(日) 23:20:32
>>976
そこまで言うなら、TypeNameあたりでやればいいんじゃないか?
というか、指摘するなら自分で代わりの答えを提示しろよ。
979デフォルトの名無しさん:2006/01/29(日) 23:27:09
>>966
Dim obj As Object = 1
If TypeOf obj Is Integer Then
 ・・・
End If
980デフォルトの名無しさん:2006/01/29(日) 23:42:43
>>975
なんか普通に話が進んでるが、
なんでIsReferenceで整数型かどうか分かるんだ?
っと思ったらそれが>>976の突っ込み?
じゃ、>>977ってこの流れの話?
そうならなおさら意味が分からん。
981デフォルトの名無しさん:2006/01/29(日) 23:47:30
>>977
そもそもVB.NETでWinアプリじゃMainメソッドが明示されないから、
どうやって受けるのかってところから分からんのだろ
982デフォルトの名無しさん:2006/01/29(日) 23:52:32
>>981
だれもMainで取得するって話をしてない件について
983デフォルトの名無しさん:2006/01/29(日) 23:57:27
だから、じゃあどうやって取得する? って話で、で>>974だろ?
あれ話の流れが変?
>>977>>972に繋がってると思ったんだが
いやそうすると確かに屁理屈の意味が分からんな
984デフォルトの名無しさん:2006/01/30(月) 13:03:32
そろそろ次スレか?
985デフォルトの名無しさん:2006/01/30(月) 14:27:23
産め
986デフォルトの名無しさん:2006/01/30(月) 14:54:01
>>985
いや次スレ立ってからだろw
987デフォルトの名無しさん:2006/01/30(月) 20:01:05
立ててテンプラ貼っといた
http://pc8.2ch.net/test/read.cgi/tech/1138618698/
988デフォルトの名無しさん:2006/01/30(月) 20:04:53
全角なのはわざとですか?
989デフォルトの名無しさん:2006/01/30(月) 20:12:25
>>988
かもね
990デフォルトの名無しさん:2006/01/30(月) 21:04:49
なぁに unicodeなら検索できる
991デフォルトの名無しさん:2006/01/30(月) 21:48:10
全角っつーかV以外ギリシャ文字だな
探せるとは思えん
992デフォルトの名無しさん:2006/01/31(火) 08:53:28
ASP.NET Webサービスプロジェクトで作成したWebサービスは
Javaからでも利用できるのでしょうか?
993デフォルトの名無しさん:2006/01/31(火) 08:55:59
994デフォルトの名無しさん:2006/01/31(火) 09:19:39
>>992
やったことないが大丈夫なんじゃない?
基本的に、WSDLファイルさえ取り込めればクライアントの言語は何でもいいはず>Webサービス
995デフォルトの名無しさん:2006/01/31(火) 09:23:23
やれば出来る。
DataSetはXMLだから、それを読めればOK。
DataSetを使わないならばそうぷを理解する。
996992:2006/01/31(火) 09:45:20
>>994,995
ありがとうございます。
勇気が出てまいりました。
997デフォルトの名無しさん:2006/01/31(火) 10:09:39
ちなみに逆はちゃんと動いたよ(何の参考にもならんがw)
Webサービス:Tomcat+axis
クライアント:VB .net or C# .net
998デフォルトの名無しさん:2006/01/31(火) 10:23:12
立て直してテンプラ貼っといた
http://pc8.2ch.net/test/read.cgi/tech/1138670182/
999デフォルトの名無しさん:2006/01/31(火) 12:42:30
いくー!1000いっちゃう〜
1000デフォルトの名無しさん:2006/01/31(火) 12:42:56
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。