1 :
デフォルトの名無しさん :
2008/02/22(金) 12:14:02
VB.NETにおいて、Tips系とは違う方向で、主要なコントロールの紹介と 使い方をまとめたサイトはないでしょうか。
VB使いはキモイイと効いたのですが本当ですが
VBは初心者向け言語と効いたのですが本当ですgか??_
本当だからどっかいけ、もうくんな
ここは初心者に優しくないと聞いたのですが本当ですgか??_
確かにVBは初心者向けかもしれないが、第二言語としてこれほど適しているのはないと思うが
前スレの
>>989 ー990
VBでデリゲートを呼び出すのはInvokeメソッドを使うということか。
俺がただ知らなかっただけでした。すんません。
C#と違って、たかだかデリゲートを扱うのにAddHandlerとかAddressOfとかInvokeとか、
VB用の新しいキーワードが必要になるんだなあ。
ちなみにVBだと
(デリゲート名).Invoke(引数)
C#だと
(デリゲート名)(引数)
で呼べる。
やっぱり俺はC#のシンプルなコーディングの方が好きだわ。
まあとにかくVBの勉強にはなったわ、ありがとう。
お礼といってはなんだが、新スレ建てておいた。 VBスレの住人は新スレ誰も建てないのにビックリw C#erの俺が建てちまったよ。
>>13 断る。
何をもって"主要なコントロール"と言っているのかがまず不明。
とりあえずツールボックスに出ているすべてのコントロールを片っ端から勉強するべき。
MSDNが読めるレベルになるまでは、@ITとかTipsとかで調べるのが定石だと思うが。
ローマは一日にしてならず。努力する姿勢がないやつにはプログラミングなんて無理。
>>14 テンプレに「○番超えたら話し合って次スレを立てて下さい」
と入れてくれればよかったのに。
17 :
12 :2008/02/22(金) 14:24:55
あーごめん、頭こんがらがってる。
てかInvokeとかC#にもあるし。
C#でいうところの
(デリゲート名)(引数)
と同値なのはVBの
RaiseEventだったし。
なんかやっぱり俺デリゲートがよく分かってないわ。
前スレで指摘された通りでした。
俺の発言は全部スルーしてくだされ。
もうちょっとデリゲートを勉強してみます。
スレ汚し失礼しました。
>>16 そうだね、気付かんかったスマソ
18 :
前862 :2008/02/22(金) 15:09:38
お礼が遅くなりました。レスくれた方方ありがとう。 抱きしめてキスしたい気分です。
人前だぞぉ
VB#ってなんでないですか
VB.Netで設定を保存する場合どの形式を使うべきですか? いままでVB6だったんでINIを使おうかなと思ったのですが、 NetになってXMLが準備されているのでMSが望むようにXML形式で作ったほうがいいんでしょうか? それとも自由なんでしょうか?
ありがとうございます、XMLを試してみます、 m(_ _)m
25 :
しんじん :2008/02/22(金) 19:34:40
すみません、急ぎでの質問です(VB2005) string型のデータ "200802010030" を なんとかして "2008/02/01 00:30"という文字列に変換できないものでしょうか? FormatやCDate等をつかってもやはりうまくいきませんでした。 よろしくお願いします
駄目だったコードぐらい書け
Excelのセルに値を入れるのはわかってるんですけど、 Excelのセルに例えば<A>と書き込んで、プログラムから その<A>があるセルに値を入れたい場合、いい方法ってありますか?
28 :
デフォルトの名無しさん :2008/02/22(金) 21:52:12
VBって関数型言語みたいにアルゴリズムの評価もできるのですか?
>>25 アホか
文字列でいいなら
Dim a As String = "200803011030"
a = a.Insert(4, "/").Insert(7, "/").Insert(10, " ").Insert(13, ":")
だけど本当に文字列でいいのか?
まわりくどいのがいいならw a= datevalue(a).tostring("yyyy/MM/dd HH:mm")
31 :
デフォルトの名無しさん :2008/02/22(金) 22:22:50
VisualStyleをXpスタイルで使用しているときの TabControl のTab の出ている位置についてですが、これを「上」以外の位置にしたとき、 Tab の表示されている向きが上向きになっていて違和感がありました。 これがVisualStyleをクラシックスタイルにしてあると、表示される向き が、位置に対して逆向きになってくれて正常でした。VisualStyleがXp スタイルの場合でも正常な向きにしたいのですが、方法はありましたら 教えてください。よろしくお願いします。
32 :
デフォルトの名無しさん :2008/02/22(金) 22:28:37
>>31 (すみません訂正します)>方法はありましたら→方法がありましたら
33 :
31 :2008/02/22(金) 23:07:18
VisualStyleに関係する現象としてもうひとつあるのですが、 ListViewでのIconの表示についてです。 アイコンがStrechされるのかアイコンの画像がぼやけてしまうこと があり、どうもVisualStyleをXpスタイルにしてタイトルバーの幅を細く するとなることがわかりました。もしこの現象を経験された方で解決 の方法知っておられる方いらっしゃったらどうか教えてください。 IconのImageがStrechされないようにする方法があればお聞きしたい です。PictureBoxのようなそうしたプロパティはばいようで、しかも これがVisualStyleがクラシックスタイルだと起きず、Xpスタイルのとき にだけ起こるようでした。
34 :
しんじん :2008/02/22(金) 23:27:04
>>29-30 おお〜ありがとうございます!
時間なくて結局普通に&で連結しちゃいましたが
そういうやり方やっぱりあったんですね〜
ど素人なものですみません
35 :
31 :2008/02/23(土) 07:58:27
>>31 ですが、
Tabの位置が左と右の場合、VisualStyleがクラシックスタイルだと
Textが表示されるのに、XpスタイルだとTextが表示されない状態
になります。
TabControlのTabをXpスタイルで正常に表示するテクニックはある
でしょうか・・・。
ListViewから値の取得方法を教えてください。 たとえば 01 02 03 04 05 11 12 13 14 15 21 22 23 24 25 31 32 33 34 35 のようなListViewから4列3行目の(24)を取得したい。 また、4列3行目の(24)の値を変更したい。 VB2005です よろしくお願いします。
ListView.Items ListViewItem.SubItems
38 :
31 :2008/02/23(土) 17:15:59
VisualStyleについては、一応 <System.STAThread()> _ Public Shared Sub Main() Application.EnableVisualStyles() Application.DoEvents() System.Windows.Forms.Application.Run(New frmTaskTypeManager) End Sub 'Main も入れてみましたが、このTabControlのTab表示が対応しない状況は 直りませんでした(OSはXpPro(32Bit)なので、Helpによれば効かない のかもしれません)。 仮にOwnerDrawするとしたら、Tabの表示Rectangle自体を描画する 必要があるかと思いますが、そういうことは可能なのでしょうか? どうもGetTabRect()はあるのですが、このRect自体を描くことは 可能なのでしょうか、ご指導くださればありがたいです。
なにそのDoEvents
40 :
デフォルトの名無しさん :2008/02/23(土) 19:34:39
Win32APIのmouse_eventでマウスのホイール操作をしようと思い次のコードを書いたのですが、うまく動作しません。 '宣言 Private Declare Sub mouse_event Lib "user32.dll" (ByVal dwFlags As Integer, ByVal dx As Integer, ByVal dy As Integer, ByVal dwData As Integer, ByVal dwExtraInfo As Integer) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load System.Threading.Thread.Sleep(2000) Call mouse_event(&H80, 0, 0, 120, 0) End Sub このコードを動作させると、例えばブラウザをアクティブにしておいても、スクロールされません。(マウスのホイールではスクロールされる) 他のクリックなんかは問題なく動作するんですけど…。 mouse_eventではホイールはサポートされてないんでしょうか? それとも、値が間違っているのでしょうか?
定数間違えてる
>>42 どこが間違っているのでしょうか…。
MOUSEEVENTF_WHEELで検索しても、スクロールする定数は&H80でdwDataの値は120となっているものが多いのですが…。
色々な値で試してみても、ミドルクリックがされるくらいで、スクロールされるものはありません。
>>44 Call mouse_event(&H800, 0, 0, 120, 0)
にしたら無事動作致しました。
ただ、最初のテストコードではスクロールできなかったので、次のようなコードでテストしました。
Dim i As Integer = 0
Do
System.Threading.Thread.Sleep(500)
mouse_event(MOUSEEVENTF_WHEEL, 0, 0, 120, 0)
i += 1
Loop Until i = 10
&H80はXButtonを押す動作でしたね…。
今、Windows SDKをダウンロードし終わったので、以後Windows SDKで調べるようにします。
Windows SDKでWin32APIの詳細がわかることは知りませんでした、勉強になりました。
大変ありがとうございました。
46 :
31 :2008/02/24(日) 08:52:39
>>40 >>38 (自己レス)
やってみると、TabControlのAlignmentによってTop以外の位置に来たときは
OwnerDrawで普通にRectangleをe.Boundsから取得してそこを適当な
BrushでFillすれば、その形は正常な向きのTabになってくれるようでした。
この件は解決とします。
後は
>>33 ですが、これもまさかOwnerDrawで解決とかでしょうか・・・
(一応、タイトルバーの幅には一定の許容限界があるようで、18より
小さくするとNGのようです)
47 :
デフォルトの名無しさん :2008/02/24(日) 23:08:31
初心者です。よろしくお願いします。 i = 0 J = 0 if aryData(i,j) = aryData(i+1,j) then (0,0) = (1,0) (0,0) = (1,1) (0,0) = (1,2) (0,0) = (1,3) (0,0) = (1,4) という感じで表で言うと斜めに比較を繰り返して行きたいのですが (同じ数があるかを1つ1つ調べたい) j = j+1 をすると左のaryData(i,j)のjも+1されてしまいます。 どうすればよいのでしょうか。
もう一つkでも用意すりゃいいんじゃねって言うか正直意味分からん
つFor〜Next
50 :
デフォルトの名無しさん :2008/02/24(日) 23:38:22
書き方悪くてすいません。 i , j i,j if aryData(0,0) = aryData(1,0) then if aryData(0,0) = aryData(1,1) then if aryData(0,0) = aryData(1,2) then というように、 ↑ 同じaryDataって配列のここの数値だけを動かしたいんです。
51 :
49 :2008/02/24(日) 23:38:45
Dim r As Integer = 0 Dim c As Integer = 0 If aryData(r,c) = aryData(r + 1,c) Then For j As Integer = 0 to 9 (0,0) = aryData(r,c + j) Next j End If こういうことだと思うが1行目がなんか気持ち悪い
ずれた orz
>>51 そうやればいいんですか!ありがとうございました!
>>51 すいません。もう1つ質問いいでしょうか。
(0,0) = aryData(r,c + j)
で、次に(0,0)を(0,1)にして
(0,1) = aryData(r,c + j)
としていくにはどうすればいいのでしょうか。。
>>54 応用もできないならプログラム辞めた方がいいよ。
56 :
SIN :2008/02/25(月) 11:30:50
すみませんVB2005でWebページを作成しているのですが とある条件のときに、例えば ・TextBox1の入力内容が「A」ならそのまま処理実行 ・TextBox1の入力内容が「B」ならばメッセージボックス(OK/キャンセル)を表示してOKのときだけ処理を実行する といったことはどう記述すれば良いのでしょうか? ☆Botton1.Attributes("onclick") = "return confirm('実行します 宜しいですか?')" といった記述を Protected Sub Botton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Botton1.Click ☆ End Sub や Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ☆ End Sub に入れてみましたが、ボタンクリック2回目以降はメッセージボックスが表示されるのですが 1回目に表示されません。(Botton1_Click内は押されたあとなので当然ですが・・^^;) なにか良い方法がありませんでしょうか?
57 :
デフォルトの名無しさん :2008/02/25(月) 12:21:30
VS2005Proでイミディエイト・ウインドウが出せずに困りました。 [デバッグ]−[ウインドウ]でもその中にイミディエイト・ウインドウが ありません。オプション設定が必要なのでしょうか?
58 :
57 :2008/02/25(月) 12:36:53
>>56 こっちの環境では1度目のボタンクリックでメッセージボックスは表示されたぞ。
これとは違う話で、テキストボックスでenterキーが押されたときの処理
などが関係してるのでは、と思ったけど、どうかな?
VB2005+VWD2005
60 :
SIN :2008/02/25(月) 15:12:23
>>59 あ、すみません、説明がわうかったです^^;
ベタでPageLoadに
☆Botton1.Attributes("onclick") = "return confirm('宜しいですか?')"
を書いちゃうといつボタンを押しても必ずMsgBoxでちゃうんですけど
そうじゃなくて特定のIF条件のときだけMsgBoxをだしたかったんです。
ちなみに今 難しくて頭おかしくなりそうですがJavaScriptを使って
Protected Sub Page_Load(・・・) Handles Me.Load
Dim sc As String
sc = "<SCRIPT LANGUAGE='JavaScript'>"
sc &= "function aaa(){"
sc &= " var str='';"
sc &= " with(document.form1){"
sc &= " if(条件式){"
sc &= " str = 'OK?\n';"
sc &= " return confirm(str);"
sc &= " };"
sc &= " }"
sc &= "}"
sc &= "</SCRIPT>"
Page.ClientScript.RegisterStartupScript(Me.GetType, "InputChk", sc)
Me.Button1.Attributes.Add("onclick", "return aaa();")
End Sub
みたいな感じでやろうとしてます
もっと簡単な方法があればよかったんですけど・・・
>>60 Webアプリである以上、ある条件を満たした時のメッセージボックスは
JavaScript等を使わないと無理だね。
JavaScriptなしで実現しようとするのならば、メッセージボックスにあたる
ページを別でページを作り、とかしか方法は無いね。
ASP.NETは、検証コントロールを使えば良いという考え方があるから、
そういう機能がついてないのかもしれない。
>>60 Me.Button1.Attributes("onclick") = "if(document.getElementById('" & Me.TextBox1.ID & "').value == 'A'){return confirm('宜しいですか?');}"
といった感じでいいんでない?
ああ、そうだな。javascriptって改行関係ないぞ。 試しにメモ帳使って書いてみたら分かる。
64 :
SIN :2008/02/25(月) 16:01:17
>>61-62 ありがとうございます
参考にさせていただきます〜もっと簡単にできる機能つけてくれないかな〜VS2009とかで^^;
65 :
SIN :2008/02/25(月) 16:02:41
あるフォームAから別のフォームBを呼び出して、Bが閉じられたら Aで特定の処理をしたくて、 ↓みたいにやってんだけど、この場合もRemoveHandler しとかないとないとまずいのかな? フォームA Private Sub ButtonA_Click with new フォームB .Show AddHandler .OnCloseB, AddressOf A End With End Sub Private Sub A ← ここでRemoveHandler は必要? End Sub フォームB Public Event OnCloseB(ByVal sender As Object, ByVal e As EventArgs) Private Sub B_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing RaiseEvent OnCloseB(Me, New System.EventArgs) End Sub
ShowDialogじゃだめなのか?
フォームAでは、リアルタイムで変わる状況をモニタリングしてるから
ShowDialogじゃまずいんですよね
現状、特に動作には問題ないんだけど
>>66 は少し気になってて、
プログラミングに詳しい人からすると、まずいやり方なのかな?と思って聞いてみた
起動中に何万回とShowCloseするなら問題あるね。
Timerって同時にどれくらい使えるんだろ。 制限とか注意事項とかあんのかな?
スペックが許す限りb
Timerは一定時間ごとにコードを実行するだけだから、同じ間隔で複数実行するようにしても、一つ終わって次ってなるだけ。 わかってると思うがBackGroundWorkerみたいに別スレッドで処理するわけじゃないから、Timerのコードを処理してる間は同じスレッドの処理は止まる。 スペックっていうより、処理の重さでGUIの反応が無くなるのに耐えれる限りだと思うな。
別にInterval自体は長くできるわけで、 そういう意味ではスペックだとおもうけどなー
Timerって安全なDoWorkって意識だったけど違うの?
処理が瞬時に終わるならね。
Timerってどのタイマの話だよw どのタイマの話としても72の話はナンセンスに思うけど。
当然、ポトペタで落とせるタイマでそ。 System.Windows.Forms.Timer
だとしたら「同じスレッドの処理は」ってくだりは何?
っていうか、System.Timers.Timerもポトペタできるよw
今、LABEL継承して、内部にTimerかませて時刻表示するユーザコントロールつくって テストしてみた。配置したら自動で時計になるやつね で、フォームに180個貼り付けて実行してみたら、CPU頑張ってたけど無事に使えてた 画面は圧巻だったよ
System.Net.Sockets.UdpClientを使って指定したIPにデータを送信する事を試しているのですが、byte型以外のデータを送る事って可能でしょうか? と、言いますのも、"-1"の値を送りたくて色々と試しているんですが、どうしても"45,49"という形になってしまうのです。
-1という文字列を送りたいわけ?ASCIIで?
83 :
81 :2008/02/26(火) 02:47:29
>82様 出来れば数字として送りたいです。 byte型だと0〜255しか使えなかったので、それ以外の型ならなんとかなるかな?という安易な発想で調べてます。 色々と調べて試していますが、正直解らずじまいで困ってます…。 もうちょっと調べてみます。 って、こんな時間ですね orz
コンピュータ上では、どんなデータも1か0のビットの並びでしかない。 そして.NETのByteはビットを8つ並べただけの型。 故に、UdpClientはByteの配列しか扱えないが、 (8ビット単位という制約付で)どんなデータでも送れる。 あるバイト(もしくはビット)の並びがどういう意味を持つかは、 情報の送り手と受け手の解釈次第。 -1を表すのに45, 49というデータを送ったとして、受け取った側が-1と解釈すれば、 それは立派に-1という情報を送ったことになる。 さて、MemoryStreamとBinaryWriter使えば83の考えていることに近いのかな。
85 :
83 :2008/02/26(火) 04:37:36
>84様 MemmoryStreamとBinaryWriterで調べなおしたら「構造体へのポインタからByteの一次元配列へのキャスト方法」という所にたどり着き、そこを参考にしてテストPGを起こしています。 とりあえず理解しながらやらないといけないと思うので、ここを参考にして、どこで何をやっているかをじっくり学びながらやっていきます。 ありがとうございました!
いや、ポインタとかこの件では関係ないんじゃないか
87 :
デフォルトの名無しさん :2008/02/26(火) 14:03:33
Vistaのエクスプローラにあるアドレスバーって、中にコンボボックス とか配置してるようだけどあれって.NET標準では無いよね? ユーザーコントロールとかで作ってるんでしょうか??すげーえぐい 動作するんだけど・・・
89 :
デフォルトの名無しさん :2008/02/26(火) 17:36:18
すみません初心者ですがVB.NETでの質問です あぁあああああああああぁあ〜〜ああああぁ〜〜あ〜ああ〜〜あああ!!! どうすればいいでしょうか?
VBAで遊ぶ
>>88 おぉ!情報サンクスです。やっぱし手練の人は自作してたんですね。
94 :
デフォルトの名無しさん :2008/02/26(火) 23:14:43
Private Const NIM_ADD = &H0 Private Const NIM_MODIFY = &H1 Private Const NIM_DELETE = &H2 たとえばこのように定数を定義するときに&H0と指定するのはどういう意味があるんでしょうか? Hが16進数を示していることだとは思いますが、C言語だと&を使うとアドレスを使うのでそれに近いことでしょうか
ヘルプで &H 引け あと型を明示しろ
96 :
デフォルトの名無しさん :2008/02/27(水) 03:48:45
BindingSource.Insert(index,value) ↑のvalueはヘルプを見るとObject型らしいのですが 実際にvalueには何を指定すればよいのでしょうか? null(VisualBasicではNothing)も設定できるようですが わかる方教えてください。お願いします。
好きなもの入れれば。
>>96 それだけの内容では答えようが無い。
もっと具体的な事を言わないと。
ソースコードなり、自分のやりたいことなり。
>>96 好きなもの入れて使う。
StringでもIntegerでもString()でもなんでもいい。
使うときにObject型から元の型にキャストするべし。
100 :
96 :2008/02/27(水) 23:13:24
言葉足らずですみません。 やりたいことは現在DataGridViewのDataSourceにDataTableを設定して DataTableの行を操作(クリックした位置に新しい行を挿入等)を行っているのですが その操作をBindingSourceを使って出来ないか考えていました。 メソッドを見ていたらInsertというのを見つけたので使ってみたんですが、 valueの部分だけ何を指定しても"外部のデータは挿入できません"みたいな エラーが出て困ってました。 BindingSource.Insert(BindingSource.IndexOf(BindingSource.Currect),value) これって使い方間違えてるでしょうか?
101 :
デフォルトの名無しさん :2008/02/27(水) 23:43:13
System.Windows.Forms.TabControlで作ったタブって、 違うタブが選択された直前にイベントを起こすことってできませんか? SelectedIndexChangedだと、タブが選択されて他のタブが表示されてからイベントが起きますが、 タブがクリックされる→クリックされたタブの内容が表示される の内容が表示される前にイベントを実行して、その後タブ移動をしたいのです。 その間を補うイベントって作ったりする方法があれば教えてください。
102 :
101 :2008/02/27(水) 23:49:43
いまmsdn見たら、deselectingイベントとかは全部2.0で追加みたいですね・・・ 1.1じゃどうしようもないのかなぁ・・・
>>102 初期バージョンは変なバグもあるから、なるべくなら新しいのをお勧めする。
コントロール関係のバグは2.0の方が多い印象があるけどね個人的にはw
どっちでもいいじゃない
親のWndProcでWM_NOTIFY/TCN_SELCHANGING
107 :
デフォルトの名無しさん :2008/02/28(木) 16:06:54
MSDN を見ると ActiveDirectory の (LDAP の場合の) Path の書式でいくつかあるようですが、 たとえばこの二つは同じだと思っていいでしょうか? 書式A: "LDAP://onecity/CN=Users,DC=onecity,DC=corp,DC=fabrikam,DC=com" 書式B: "LDAP://CN=Users,DC=onecity,DC=corp,DC=fabrikam,DC=com" (書式Aは、MSDN=DirectoryEntry.SchemaClassName プロパティ の項にある例、 書式Bは、MSDN=DirectoryEntry.Path プロパティ の項の説明での書式から書ける はずの例です)
108 :
107 :2008/02/28(木) 16:38:54
110 :
12 :2008/02/28(木) 18:20:21
>>109 リンク先全部読んだのか?
コード移しただけじゃだめだ。
リンク先の”図3 列の追加”という準備が必要。
要するに列が一個もないから行を追加しても表示されないってこと。
>>110 レスありがとうございます。
列の追加作業はやっています。
Formのnew()にコードをかいたら、データが表示されるところまでは確認しています。
そして、そのコードをそのままButton1_Click()に移すと、列見出しのみが表示されるだけで、
実データが表示されないのです。
112 :
110 :2008/02/28(木) 19:51:09
>>111 それは失礼した。
コンストラクタ内とButton1クリックイベント内で動作が違うというのはおかしいね。
FormのLoadイベントか何かでDataGridView1のプロパティを書き換えてたりしない?
コンストラクタ以降でButton1_Clickイベント以前のイベントで何かやらかしてる悪寒。
113 :
109 :2008/02/29(金) 10:21:40
>>112 レスありがとうございます。
アドバイスをいただいたので、とりあえず昨日動かしてみて
動かなかったプロジェクトを開いて実行してみると、きちんと動作しました。
あれから設定は何も触っていませんし、別なプログラムも組んでいません。
コードもいじっていないので、これは、IDEの不具合の可能性が高いと
思われます。どうしてデータの表示だけが出来なかったんでしょうね。
ご迷惑おかけしました。
質問させてください。 VB2003で他のアプリケーションにファイルを送ることは可能でしょうか? やりたいことはフォームでユーザーが指定したフォルダにある画像ファイルを、ひとつのビューアーでまとめて閲覧するという動作です。 よろしくお願いします
115 :
デフォルトの名無しさん :2008/02/29(金) 12:04:41
他のアプリケーションってのは自作? それとも他人の作品?
自作ではないフリーのビューアーです
Process使ったらどうだったの? 例えば、 Process.Start(@"C:\Program Files\free_viewer.exe", @"C:\guro001.jpg"); とか。
そのビューアはファイルのD&Dにしか対応していないのか、
もしくはコマンドライン引数でパス渡せば開いてくれるのか、その辺は調べた?
後者なら
>>117
119 :
114 :2008/02/29(金) 14:28:01
>>117 ビューアーによってはそのやり方で開きますが、今回使用するビューアーはダメみたいです。
ちなみに開く画像ファイルは医療用のDicom画像ファイルなので、使えるビュアーは限られています
>>119 VBで表示するところまでを作りこむ検討をするか、
もしくは、別に、その医療用のなんとかという画像を自動で
jpgに変更するバッチ処理させるのを検討するかになるだろうね。
ビューアーが対応してないんだから。
121 :
デフォルトの名無しさん :2008/02/29(金) 17:06:34
122 :
114 :2008/02/29(金) 17:41:20
VBでDICOMを表示するのはできなくはないですが、 viewerの細かい機能まで実装するとなると、作業量が膨大になるので一介の病院勤務PGもどきにはちっと厳しいです。 いろいろ調べていたらsendMessageで何とかなりそうな気もするのでもう少し調べてみます。 ありがとうございました
業者に頼まないのか・・・
124 :
114 :2008/02/29(金) 18:07:29
医療用ソフトウェアは非常に高価かつ病院独自のいろいろなカスタマイズが必要なため、
自分で作れる範囲ではすべて自作しています。
今は病院の経営も楽ではないようです。
>>121 の openDICOM.NET のこれに非常に興味を持ちましたが当然日本語の解説なんてないよなー
とりあえず紹介ありがとうございました
すみません、型変換について教えてください。 Integer型のNumericUpDownカスタムコントロールを作成していて気になったのですが、 内部でどういった型変換をしているのでしょうか? 作成した自作コントロールは以下の構文を追加したのみ。VB.2005で作成。 ValueにSetしたときにTextにもSetしています。 Private _Value As Integer Public Shadows Property Value() As Integer Get Return _Value End Get Set(ByVal value As Integer) If _Value = value Then Return _Value = value MyBase.Text = value.ToString ・・・(ア) 'MyBase.Value = value ・・・(イ) End Set End Property この自作コントロールと標準コントールの速度比較をしてみました。 方法はValueに代入する値を変化させながら100件ループ。 結果、標準コントロールでは約100ミリ秒、自作コントロールの(ア)では約250ミリ秒、 (イ)では約100ミリ秒となりました。 自分でTextにSetする(ア)よりもMyBase.Valueを介した(イ)が2.5倍ほど速いとなると ToStringの変換が遅いというよりMyBase.Valueの中でどのようにTextにSetしているかが 気になるところです。 型変換の方法?もしくはTextにSetされるタイミングの問題?なのか分かりませんが 何かご存知の方いらっしゃいましたら教えてください。よろしくお願いします。
baseのText使えば文字列を数値にパースするんだもの より遅いに決まってるだろjk つまりbase.Textに設定する意味はない
NumericUpDown.Textはインフラストラクチャだぞ
128 :
125 :2008/02/29(金) 22:15:50
>>126 >>127 レスありがとうございます。
それでは画面に表示させるにはどのように設定したらよいのでしょうか?
129 :
125 :2008/02/29(金) 22:54:07
MyBase.Text = value.ToString を Me.Controls(1).Text = value.ToString に変更したら約100ミリ秒まで短縮することができました。 この方法でよいのでしょうか?
130 :
125 :2008/03/01(土) 00:17:14
なんか基本からダメみたいです。 ボタンクリックから入力したときにValueプロパティにSetしてくれないみたいです。 MyBase.ValueプロパティがSetしているプライベートフィールドの変数名は何ていうんでしょうね。 側だけIntegerにしてGet Return MyBase.Value、Set MyBase.Value = Valueってするのが手っ取り早そうな気がしてきました。
>Integer型のNumericUpDownカスタムコントロール というものの存在意義がまずないからね
132 :
125 :2008/03/01(土) 00:38:06
>>131 受取り側の変数がDecimal型以外の場合に使用する予定です。
専用コントロールを用意しておけば変換を意識しなくていいので。
VBとは関係ないんですが「自動修復情報の保存」の頻度って変えられないでしょうか? デザイン画面弄ってると頻繁に作業中断させられて困ります
>>133 メニューバーから「ツール」-「オプション」を選択して「環境」-「自動バックアップ」
>>134 ありがとうございました。5分から15分にしてみました。
MonthCalendarの色がVistaで変更されないのはなんで? MonthCalendar.TitleBackColor = System.Drawing.SystemColors.Control MonthCalendar.TitleBackColor = System.Drawing.SystemColors.ControlText MonthCalendar.BackColor = System.Drawing.SystemColors.Control MonthCalendar.ForeColor = System.Drawing.SystemColors.ControlText こんな感じでセットしてもXpでは変更されるがVistaでは変更されない。
137 :
デフォルトの名無しさん :2008/03/02(日) 13:59:25
VS2005の[ツール]-[オプション]の「デバッグ」の設定で、 「出力ウインドウへの出力をすべてイミディエイトウインドウにリダイレクト」 にすると、 Debug.Print("・・・") Console.WriteLine("・・・") TraceSourceオブジェクトのTraceEventなどの出力 も全部イミディエイトウインドウにリダイレクトされていましたが、これを イミディエイトウインドウに出したいものだけを出すようにしたい場合の 設定がありましたら教えてください。
>>136 事故解決しました。
「Xp Visualスタイルを有効にする」を無効にしたらVistaでも変更されました。
なんだよ、コモンコントロールなのにVista未対応かよw
半月ほど前からプログラミングを勉強し始めてVB2008を使ってるんですが、 iniファイルからの数値の読み取りはできたんですが、 文字列の読み取りが上手くいきません。 ググって出てきた、iniからの読み取り方法を紹介してる いくつかのページとにらめっこしならがら試しているのですが、 コピペしつつ何度試してみても、 読み取れなかった場合のデフォルトの文字列が返されてしまいます。 VB2008だと何か仕様が違うとかなのでしょうか? 参考になりそうなページがあれば教えてもらえると助かります・・・。 ちなみにOSはXPです。
>>140-141 VBプログラミングに関してはVisualBasic中学校で勉強してました。
VB.NET以降でのAPIの扱い方のページがまだ書かれてなかったため、
今回紹介してもらったページも含め各所で調べてたのですが上手くいかなかったので、
今回質問させていただきました。
前置きはこのくらいにして、
>>141 で紹介してもらったライブラリを使用したところ、
数値も文字列も問題なく読み込むことに成功しました。
どうもありがとうございました。
ライブラリの使用方法がわからず調べまわってる内に、気付けばこんな時間・・・。
.net 1.1です。 数字のみ入力可能のテキストボックスが20個ある画面で、 その入力値に重複がある場合 重複しているテキストボックスをすべて黄色にする。 というものをつくりたいのですが、 何かスマートなアルゴリズムはありますか? 現在のところ、入力値をキーにハッシュテーブルに格納していき、 重複ができたらそのキーのテキストボックスを黄色にするという案を思いつきましたが、 もっとスマートなのがあれば教えてください。
入力しているかいないかを判別するための変数を20個作り、 入力されていれば他の入力されているデータと比較してみる手はどうですか? 20個のTextAlignChangedイベントに書いておいたら逐次判断するよ 今すぐに考えたらこんなものしか思い浮かばない・・・
それかバックグラウンドでずっとデータを見張らせるとか そっちの方がお手軽かな
そういえばラッピングってどうやるのですか? Cなどで書いたコードをVB.NETの処理系を用いて実行形式に変換するらしいのですが、 どういう処理をしているのか分かりません。 詳しく知っている方教えてください。
>>143 List(of TextBox)を継承して同じテキストを持つテキストボックスのグループを
あらわすクラスをとりあえず作ったら?
っていうか「グループ」が複数あっても全部黄色でいいの?w
>>146 ラッピングって言葉自体はサランラップと同じ意味しかない
>>146 言ってることがむちゃくちゃだけどP/Invokeのこと?
ヘッダ見ながらひたすらDllImport宣言を書きまくるだけ
そうなんですか Thxです
デザイナの読み込み時に 1 つ以上のエラーが発生しました。エラーは以下に一覧表示されます。 コードの変更が必要なエラーもありますが、プロジェクトを再度ビルドすると解決できるエラーもあります。 VB2005で開発していたら突然このようなエラーが発生しました。 リビルド、再起動と試しましたがダメでした。 検索しても困ってる人は多いということが分かったのですが、 それらしい答えが見付かりませんでした。 デザイナは開けるが実行は出来るという人もありましたが実行も出来ません。 解決方法教えてください。
>>151 情報が足りないからなんともいえんな。
フォーム内のコントロールの種類とか、Designer.vbをいじってないかとか、
継承コントロールを使ったりしてないかとか。
それすらも書けないようなやつはプログラミングやめとけ。
向いてないから。
>>151 それってVB.NETの頃からの致命的なエラーだよ。
2008になっても修正されていないと聞く。
VB.NET 2003なのだが 画面をロードしたときにフォーカスの設定をしたいのだがやり方が解らない。 Me.ActiveControl = Me.フォーカスを移したいコントロール名.Focus をやろうとしても、「Me.」の後に「ActiveControl」が出ない 無視して入れたとしてもエラーになる だれか解る方いらっしゃいます?
Me.フォーカスを移したいコントロール名.Focus だけじゃだめかい?
>>151 経験ある。その時はデザイナ系触ってなくてロジック層のクラスを触ってただけなのにフォームに表示を戻しただけでそうなったんだよな。
どうにもならなかったら新しいプロジェクトを作成して、そこに元のファイルを順に追加するしかないのかな?
>>154 Call Me.フォーカスを移したいコントロール名.Focus()
でいけると思う。
>>156 「フォーカスを移したいコントロール名」の後にfocusが出てこない。
無理やり入れたとしてもエラーになる
使えないのかな
>>157 ボタンです
バージョンが古いからできないのかなって思った
version.7.1.6030です
そのバージョンのボタンが見つからない、 VB.Net 2008だけど、バージョンは全部2.0になってる
フレームワークは framework 1.1 バージョン1.1.4322 SP1 です バージョンの問題か・・・。
163 :
デフォルトの名無しさん :2008/03/05(水) 19:17:16
LINQに挑戦してるんだけど、SqlClientやレコードセット使ってやってたことを実現するのに一苦労です。 まだ時期尚早でしょうか。というかこれから流行るのでしょうか。
LINQの目玉はデータベースじゃなくてコレクション操作
>>151 こんなの日常茶飯事だよ
フォームを継承していると多いような気がする
たいていの場合はビルドして再表示で直るけどね
直らない場合はdesignerを修正しちゃう
修正しちゃうから日常茶飯事なのかもしれないがw
日常茶飯事ってこともないけどね。 前にも書いたと思うけど、GUI部品は別のプロジェクトにしとけばまず起こらないわけで。
>>163 一般論として、ver1はバグがたくさんあるとか、次ので仕様変更が、とか
あるので、今すぐやる必要がなければ、やらなくていいと思う。
>>164 >>167 なるほど、今無理してやる必要もないですね。
変態SQLいじってるみたいで面白いんだけど、細かい部分が良くわからない。
VB.NETもC#スレのように初心者スレほすいなぁ
いまXMLファイルの書き出しをしているんですが、 10個の設定を書き出すのにシリアル化するべきか、 ドキュメントからXMLへの変換で書き出すか迷っています。 速度的にドキュメント変換の方が断然処理が早いですし、 コードも書きやすいです、 どっちにするべきですか?
>>170 どっちでも好きな方で
設定を格納するための型が既にあるとか値の型が色々あって面倒とかならシリアライズ
シリアル化を挫折してしまったので (見えない格納は意味不明w) ドキュメント変換にしました で、また問題にぶち当たったんですが XMLファイルの要素を指定して、その要素のテキストを読み込むにはどのようにしたらいいのでしょうか? <?xml version="1.0"?> <Microg_Windows_Vista_UAC_RELEASED> <UAC項目> <UAC_Number_0> <Message>OFF</Message> <AD>TEST</AD> </UAC_Number_0> </UAC項目> </Microg_Windows_Vista_UAC_RELEASED> このようなXMLファイルの場合、<UAC_Number_0>の<Message>のテキスト「OFF」のみを読み込みたいんですが、 xmlRoot.ChildNodes(0).InnerText のようにしてしまうと、OFFTESTになってしまって<Message>のテキストと混ざってしまいまいます。
ノード辿ってけば良いじゃん SelectSingleNode で XPath でもいいけど
辿りかたがちょっとわからなくて・・・ xmlDoc.Load(XMLファイルパス) Dim xmlRoot As XmlElement = xmlDoc.DocumentElement msgbox(xmlRoot.SelectSingleNode("//UAC_Number_0/Message").Value) としたんですがうまくいきませんでした。 (エラーではなく空白NULLが返ってくる) XPathが間違っているのか、構文が間違っているのか全くわからない状態です。 何度もすいません。
SelectSingleNode が XmlNode を返すのは分かるよな? Value プロパティをヘルプで調べてみ
エクセルのすぷれっと見たいにテキストが出てくる物だと思ってました。 (xmlRoot.SelectSingleNode("//UAC_Number_0/Message/text()").Value) これで何とか「OFF」のみ排出されているので成功したと思います。 ありがとうございました!
悪いこと言わんからシリアライズにしとけ…
プリコンパイルしとけばXmlSerializerはヘタに自分でやるより速いよ
VB.NETでデバイスドライバは書けますでしょうか
183 :
デフォルトの名無しさん :2008/03/07(金) 21:38:55
185 :
デフォルトの名無しさん :2008/03/08(土) 13:37:09
コピペ君って馬鹿だな、まで読んだ。
WebBrowserで選択状態にする方法、または選択状態を取得する方法がわかりません。 私のほうで引き続き調べていますが、ご存知な方がいらっしゃいましたら、教えていただけると助かります。 よろしくお願いいたします。
188 :
187 :2008/03/08(土) 17:18:44
追記ですが、 選択状態とは、Webページ内の文字列の選択状態ということです。
WebBrowserで選択状態 だけでも結構Googleに引っかかるようだが
ようするにDOMじゃん
∧ル∧ ニ= ,, _/-@∀@)__ 〈ヘ_|i Θ) ノ ,, ∧NY∧  ̄=圧|__|ニ(二二(,ニニニ(二(),, _/-@∀@)__ ニニ= ゝ9コア/ {ジ、 ~ .〈ヘ_|i Θ) ノ ,, ∧朝∧ < オオニシ! フィリップ! =‐ ̄-=;/____|_|_〉 圧|__|ニ(二二(,ニニニ(二()_/-@∀@)__ ジェット・ストリーム・アタックをかけるぞ! ( ⌒ヾ,,〉几〈 〉0卩 ゝ9コア/ {ジ、 〈ヘ_|i Θ) ノ ,, (⌒ヾ,,γ/[]ヘ,)r'__/ヾヽ、 -=;;/____|_|_〉 圧|__|ニ(二二(,ニニニ(二()  ̄ ̄  ̄ ̄  ̄ ̄ ̄(⌒ヾ,,〉几〈 〉0卩 ゝ9コア/ {ジ、 ~ (⌒ヾ,,γ/[]ヘ,)r'__/ヾヽ、 -=;;/____|_|_〉  ̄ ̄  ̄ ̄  ̄ ̄ ̄(⌒ヾ,,〉几〈 〉0卩 (⌒ヾ,,γ/[]ヘ,)r'__/ヾヽ、
messagebox.show()と、msgbox()は、同じ動きをしますが、どのように違うのでしょうか?
アプリケーションの「軽い」「重い」は処理以外に「ソフト自体の容量」も関わりますか? たとえば、フォームロードでは何も行わない「1000KBの*.exe」と「100KBの*exe」にはメモリ使用率などの違いがでるんでしょうか
フォームに3つくらいタブ付けてそれぞれに40個くらいツリーボックス付けてみ ソフト自体の容量はあまり無いが起動に1〜2分くらい掛かる 容量で重くなるって事はあることはあるな
なんとなくわかったような気がしますw ありがとうございました。m(_ _)m
多分木を視覚的に表現するにはどうしたらいいの?
Console.WriteLineの書式文字列の詳細な仕様はどこに載ってるのか。 標準入力はConsole.ReadLine(とRead)か。 数値を入力する手段は、まず文字列として代入してから、数値に変換する しかないのかな。
>>199 キーボードから文字でなく、数値を入力してみろよ
204 :
12 :2008/03/11(火) 10:59:07
>>203 >>202 は只の突っ込みだろ?
条件反射レス恥ずかしいぞw
プログラミングの前に読解力を鍛えろ。
起動されたアプリケーションを判断したいのですが、 プロセスのネイティブハンドルで判断するのは妥当でしょうか? Dim hProcess As System.Diagnostics.Process System.Diagnostics.Process.Start("メモ帳") のとき hProcess.Handle.ToStringで取ってきた整数で比較する方法で正確に判断できますか?
プロセスハンドルはプロセスが生きてる限り一貫して同じ値 ただしそのプロセスが死んだ後そのハンドルは他のプロセスに再利用されうる
>>207 書き込みありがとうございます。
メモ帳と同じハンドルで存在するアプリケーションは存在しないということでしょうか?
アプリケーションの終了を判断したいので、「〜後そのハンドルは他のプロセスに」
は問題ないです。
>>208 ToStringでわざわざ文字列にする必要はないと思われる。
逆にToInt32()でInteger型にして比較するほうが妥当だと思われるが。
まあ、IntPtr型とInteger型(UInt32型)は直接比較することもできる。
Dim pi As New System.Diagnostics.ProcessStartInfo
pi.FileName = "c:\windows\notepad.exe"
Dim hProcess As IntPtr = System.Diagnostics.Process.Start(pi).Handle
Dim pHnd As UInt32 '取得したプロセスハンドル
If hProcess = pHnd Then '判断
MsgBox("メモ帳です")
Else
MsgBox("メモ帳じゃない")
End If
プロセスハンドルは、OSがそのプロセスを特定するための値なので同じ値は存在しない。
わざわざ、訂正までありがとうございますw 無事解決しました。 ありがとうございました!m(_ _)m
dsofile.dllで拡張情報のコメント読み書きしてみたのだけど、XPで書いたコメントは2000で読めず 2000で書いたものはXPで読めないというワケワカ状態です (これはエクスプローラで見てもそうなので、書き込まれていないとかじゃ無いです) 2000とXPでは違う場所に書き込んでるんですかねえ…
同じだと思うけど? XPと2000の切り替えはデュアルブートとか?
>>212 2000サーバのファイルを2台のXPマシンと2台の2Kマシンで見てみた
エクスプローラで同時に同じファイルのコメント表示してる筈なのに違ってるってもう…
一度iPropertyStorageで試してみるかな
えーっと、ローカルじゃないドライブでもNTFSの機能って使えるんだっけ?
215 :
210 :2008/03/11(火) 21:38:42
またプロセス関係で躓きました。
「起動中のプロセスのハンドルを全て列挙して、
それらから記録していたハンドル整数を検索して見つからなかった場合、それが終了した」
といった風でさせているのですが、もっと簡単な方法があるのでしょうか?
>>216
216 :
210 :2008/03/11(火) 21:41:33
書き込めない
217 :
210 :2008/03/11(火) 21:45:45
'XMLファイルから読み込んだファイルを監視起動 Public Sub LoadedXML_EXE_MonitorShell() AddHandler hProcess.Exited, AddressOf EXEShell_Exited End Sub '監視対象アプリが終了 Private Sub EXEShell_Exited(ByVal sender As Object, ByVal e As System.EventArgs) '何が終了したか判断するために、今あるアプリケーションのハンドル一覧から、記録しているハンドルと比較する @@@@@@@ここで比較しています@@@@@@@ End Sub できれば、 hProcess.Exitedで終了したハンドルが取得できればスッキリするのですが、 どうすればいいのでしょうか?
ハンドル整数(WIN32のProcessIDのことかな?) からプロセスハンドルを開いて、終了を待てばいいじゃん。
219 :
210 :2008/03/12(水) 07:50:10
Process.Handleです、 非同期でやりたいので、できれば217のプログラム構造を壊さないで 終了したプロセスのハンドルを取りたいのですが、 イマイチ方法がわかりませんでした、 もう少しやってみます。
>>209 IntPtr型のまま比較すべきでは?
64ビットではプロセスハンドルも64ビットなんだから、
pHndだってIntPtrであるべき。
>>219 終了した後にハンドルを得るのは無理に近いから、起動したときに得たハンドルを取っておけ。
Process.HasExitedはだめなの?
222 :
210 :2008/03/12(水) 09:27:21
監視するアプリケーションは20を超える数になることがあるので、 的確に、何が終了したかをしりたいので |監視対象だった数個の内の、どれかが終了したときに |一体何が終了したのか? を調べたかったんです。 起動したときに、ハンドルは取得できているので 現在のプロセスのハンドルを全て列挙して、記憶している数個のハンドル整数から比較、 消えているもので判断しようと思います。 Process.HasExitedでは一つを対象にした場合なので、 使えませんでした。
20 程度、Process をコレクションでもっときゃいいじゃん ハンドルも次の新規プロセスで再利用されうるんだから死んだ後使うのは危険
>>220 WindowsAPI使ってプロセスハンドル取得してる場合も少なからず考えられるからさ、
一応、Integer型でも比較できるというのを言いたかったんだ。
はぁ?
226 :
210 :2008/03/12(水) 11:41:07
一応コレクションは管理していますが、アプリケーションを監視している際にも、 そのアプリに関する情報も管理しないといけないので 膨大になっています。 これ以上増やすことはゴメンなんでw、 「現在のプロセスハンドル比較」の方法で行います。 ありがとうございました。m(_ _)m またお世話になることがあると思うので、そのときも、またよろしくお願いします。
断る
228 :
210 :2008/03/12(水) 11:48:24
工エエェェ(´゜д゜`)ェェエエ工
>>222 Process.Exitedイベントとか、
監視用のスレッドを作ってWaitHandle.WaitAnyとかはどう。
230 :
210 :2008/03/12(水) 18:39:37
出来るだけループ処理は避けたいです、 長期間監視する場合や、スペックが低い場合 単純なタイマー監視などでも予期しないことが起こったりしてしまいそうなのでw '何が終了したか判断するために、今あるアプリケーションのハンドル一覧から、記録しているハンドルと比較する Dim ps As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses() '配列から1つずつ取り出す Dim p As System.Diagnostics.Process '全てのプロセスハンドルを取得する Dim All_Process As String = "" For Each p In ps Try 'プロセス名を出力する All_Process = All_Process & (p.Handle.ToString) & vbCrLf Catch End Try Next p '比較開始(正規表現****\r\n)記憶させたキー全てを検索する Dim MoniPro_Count As Integer = nvc.Keys.Count - 1 'カウント数と実際のインデックス数は違うから「-1」 For i = 0 To MoniPro_Count If Not Regex.IsMatch(All_Process, "\b" & nvc.GetKey(i).ToString & "\r\n") Then '正規表現で検索 Dim End_EXE_Pro As String = nvc.Keys(i).ToString '0番目から検索して消えていたハンドル nvc.Remove(End_EXE_Pro) '登録から抹消 MoniPro_Count = nvc.Keys.Count - 1 'カウント調整 MsgBox(nvc.Count) Exit For End If Next 成功しているので張っておきます
>>224 そりゃDeclareが悪い。そっちをIntPtrに直せ。
ところで230はループを避けたいと言いつつ、
そこにあるコードはループして使うしかなさそうに見える件。
232 :
210 :2008/03/12(水) 19:12:46
監視しているアプリケーションがどれか終了したときだけ10回程度ループします、
秒間隔でループするのではないので、負荷は掛からないと思います。
>>217
>>231 多分なんかのイベント発生のタイミングで検証させたいとかじゃね?
常に回っている必要は確かにないかもね
各プロセスハンドル毎に ThreadPool.RegisterWaitForSingleObject 使えばおしまいだとおもったけど・・・
235 :
デフォルトの名無しさん :2008/03/13(木) 11:29:13
ちょっとおしえてください VB.NETでもC#でもなんですが・・・ private sub aaa() dim a as new class1 dim aa as new class1 call XXX(a,aa) end sub private sub XXX(byval B as class1 , byref BB as class1) B = nothing BB = nothing end sub private class1 public ABC as string end class このときに XXXを通過した後何故 変数aはNothingにならずに変数aaはNothingになるのかがわかりません。 オブジェクトなので両方参照っぽい動きになるのはわかるのですが・・・・ 片側はポインタのポインタみたいな動きになっているのが関連しているのでしょうか… 出来れば詳しくしえていただけると助かります。 よろしくお願いします。
ByRef だからとしか。 参照渡しで調べるといいよ。
>>236 レスありがとうございます。
普通の値型のIntegerとかの動作でなら
ByValの時に変更できないByRefの時は直接変更される
というのも納得できるのですが
Objectのインスタンスを渡したときの動作がなんとなく違うと思うんです。
Objectを値型で渡し、渡した先でプロパティを変更すると渡したもとのプロパティも変更されているようになりますよね?
参照渡しでも同様だと思います。
ではなぜXXXで操作した結果が異なるのか・・・この場合
単純に参照渡しだから直接元の参照位置をNULLにする=渡した元のオブジェクト変数のメモリ参照がNULLになる としたら
値渡しの場合・・・・どうなるんでしょう?
238 :
12 :2008/03/13(木) 12:01:38
>>235 逆に聞くが、お前が何故疑問に思うのか分からない。
関数を経由させずに考えるんだ。
dim a1, a2 as class1
a1 = new class1()
a2 = a1 '現在のa1の参照を代入
a2 = nothing 'null参照を代入、つまりa2の参照するオブジェクトが変更されただけ
このときa1の参照がNothingになったらおかしいだろ?
参照渡しのときは
a1 = new class1
a1 = nothing
こういう結果になっているだけだ。
おそらく次のケースと混同しているんだと思うが、
dim a1, a2 as integer()
a1 = new integer() { 0, 1, 2, 3 }
a2 = a1
a1(2) = 5
このときというのは、a1及びa2が参照しているものが一緒。
んで、その参照しているオブジェクト自体を変更している。
ゆえに当然どちらの参照もinteger() { 0, 1, 5, 3 } となる。
239 :
238 :2008/03/13(木) 12:06:20
>>237 やっぱりそういうことか。
根本的なオブジェクトと参照という概念のとらえ方が違う。
オブジェクトの参照先を変更するのと、オブジェクトを変更するのとでは全く違うぞ。
240 :
デフォルトの名無しさん :2008/03/13(木) 12:09:24
>>237 単純に、値渡しの場合
新たにインスタンスがその処理内で作成される、
と考えればよいのでは。
コンパイラーがそう作られている。と
>>238 あ〜!!!!!
すっごい納得がいきました。
素人みたいな質問で申し訳なかったですが・・・
スッキリしたんで助かりました
ありがとうございました。
PS.おっしゃる通り後者と混同してました
>>239 >>240 遅くなりましたがレスありがとうございます。
完璧に勘違いしてました
すっごいお恥ずかしい話ですが…・
243 :
デフォルトの名無しさん :2008/03/13(木) 12:39:19
> Objectを値型で渡し、
> 渡した先でプロパティを変更すると
> 渡したもとのプロパティも変更されているようになりますよね?
出来たことに驚き・・;
知らなかった。
素人が変なこと書いてすみません<(_ _)>
>>240 は無視して下さい。
244 :
デフォルトの名無しさん :2008/03/13(木) 15:24:01
245 :
243 :2008/03/13(木) 16:35:34
横からすみません。
>>244 参考にさせていただきました。
そして、
http://www.microsoft.com/japan/msdn/net/vbnetref/vbnetref3-6.aspx#3-6-4 図 3-18 値型と参照型の引数 (配列の例ですが)
参照渡しの場合
呼び出し側で生成したインスタンス=ポインタ変数。
で、ポインタ変数そのもののアドレスが渡される。
値渡しの場合
ポインタ変数の中身(呼び出し元のインスタンスのアドレス)が渡される。
渡されたアドレスの入れ物はSub内に作られる。
そこで
参照渡しでも値渡しでも
呼び出し側で生成したインスタンスのアドレスを扱うことになるので
どちらの場合でもインスタンスのメンバーを操作できる。
しかし
値渡しの場合、
Sub側では、呼び出し元のポインタ変数の内容、をクリアすることは出来ない。
という事で・・・
余計な一言を追加します。すみません。<(_ _)>
.NETでは参照渡し(参照型の値渡しじゃなくてByRefの方)は滅多に使わない C#と違って呼び出し側から見分けがつきにくいし
247 :
246 :2008/03/13(木) 19:02:25
参照型の値渡しじゃなくて,参照型のオブジェクトへの参照の値渡し (ByVal a As Objectみたいなの)というべきか ややこしいなあ
c#にはoutってのがあってだなあ・・・
まあ調べれば分かると思うけど
>>246 の言うとおりだよ
>>248 246の言う.NETはVB.NETの省略だろう。
251 :
246 :2008/03/13(木) 20:16:06
いや.NET全般のことを指して言ったんだ。C#でもあまり使われないよ。 コピーが嫌なら構造体じゃなくてクラスを使えばいい。 それに加えて,VBでは呼び出し側から参照渡しなのか値渡しなのか見分けられない欠点がある。 (C#ではメソッドを呼び出すときに参照渡しの引数にはrefやoutをつける必要がある) Dictionary.TryGetValueみたいなのはあるけどあくまで例外。
>>251 どういう根拠でそんなこと言っちゃってんのよ。
初級程度のコーディングなら参照渡しはあまり使われないのかもしれんが、
"構造化プログラミング"というものを突き詰めていくと、参照型の参照渡しが必要になることは結構ある。
単純なプログラムしか書いたことない人間には想像つかんのだろうね。
OOPを理解できている奴の自作ライブラリとかで、しばしば参照型の参照渡しを見ることがある。
それはちょっと信用できなさすぎる例ではないか
中では必要に応じて使うけどライブラリで外に見せるのは格好悪い
>>253 むしろ「可読的コーディング」を突き詰めればそんなことは「したくない」と思うのが普通だろうし、
そもそも必要になることもまず無いと思うけどねw
まあ確かに俺自身、「例外を起こす代わりに例外オブジェクトを返り値として返す」
といった場面でしばしば使ってるけど、メソッドの直感性を考えたらこんなことはしたくないのが本音。
まぁ、世の中にはガベージコレクションがない言語もあるわけで。
EVENTを自分で作る利点をWEBで調べたけどいまいち理解が難しい 管理が簡単になるってことかいな、関数を自分でつくってもやれそうなのに
そりゃ何か状態の変化を通知したいからだろう 利点とかの問題ではない
>>259 どうやって確認しますでしょか?
コードでのデバッグでしかわからないですかね
・・・? 確認ってなにを? 色々説明が足りてない気がするので詳しく
>>261 すません、
確認って言うのは状態の変化を確認するって言うことです
参考書とか見ても何かのイベント(たとえばClick)を実行して、それにつづけてRaiseEventを実行してるってのが多かったので
>>258 多分、というか確実に、それは「イベントを自作する利点」が分かってないのではなく、
イベントそのものの意義が分かってないだけだね。
イベントの実態は確かに相手のメソッドを呼び出しているに過ぎないわけだけど、
イベントの利点は、イベントを起こすオブジェクトのコードを書いている時点で
「相手」のことを知らなくていい点。
イベントをモーニングコールに例えるとして、
ホテルに就職した時点でモーニングコールの相手がプログラムされてるホテルマンは使えないでしょw
モーニングコールを欲しい人自身が、ホテルマンの予定帳に自分の番号を「登録」できないと困る。
もっと具体的な例を挙げるとすると、モードレスダイアログなんかがいいか。 ShowDialogじゃなくてShowで表示するサブフォーム。IEの検索ダイアログみたいな。 モーダル(ShowDialog)なら入力文字列プロパティを用意しておけばShowDialog呼出し後に呼び出し元が勝手に取っていくけど、 モードレスの方は「検索」ボタンが押されたことを通知する必要がある。 このときにイベントを発生させる。SearchClickとかそんな感じの。 呼び出し元はこのSearchClickイベントで検索を開始する。
>確認って言うのは状態の変化を確認するって言うことです オブジェクト自身が自分の状態の変化を見て、イベントデリゲートを実行するんだよ。 オブジェクト外から変化を確認するってのはナンセンス。それイベントじゃないよ
266 :
デフォルトの名無しさん :2008/03/14(金) 10:43:00
WindowsServer2003には.NETFramework2.0はプレインストールされて ましたっけ?(WindowsServer2008には確かにされているけど) でもFrameworkのインストール自体はMicrosoftUpdateとかで簡単に インストールされるからインストールの手間とか気にする必要はないのかね?
>>258 デリゲートの概念が全く分かっていないからだ。
つか、利点が分からないようならイベントを自作する必要に迫られていないということだから、
別に作らなくていいじゃん。
カスタムユーザーコントロールを自作するようになったときに、イベントデリゲートが必要になるときがくる。
OOPが分かってくるようになったらそのときには分かると思うから、今は気にしないことだな。
268 :
12 :2008/03/14(金) 10:48:49
>>266 気にする必要なし。
うちの会社では俺がシステム管理者なんだが、HFSLIPでNFX20SP1と30SP1と35を
全部統合インストールするようにカスタマイズしているし。
そうじゃなくたってNFX20SP1のサイレントインストールパッケージを作っておいて
それを実行させるだけならワンタッチでいけるっしょ。
269 :
デフォルトの名無しさん :2008/03/14(金) 10:57:02
>>268 おお、サンキュウ!そういうものなのか。
イベントってデリゲートが隠されてるから余計分かりにくいんだよね 実体はデリゲート専用の特別なプロパティみたいなもの
>>270 そりゃおかしい。
そもそもイベントとデリゲートでは概念の抽象度が違う。
List(of T)って配列が隠されてるから余計分かりくいとか、
配列ってメモリ確保とポインタ操作が隠されてるから余計わかりにくいとか
普通は思わないでしょ。
>>264 それイベントの利点の説明になってないことないか?w
イベントの利点は263にあるとおり、依存関係を逆転させされることだよ。
デリゲートとイベントの違いってフィールドとプロパティの違いみたいなもんだよ どのみちデリゲートの存在を意識しないといけないでしょ
deligateって、ただの引数の順列を定義しただけの「型」宣言だと腿ふんだが。
>>273 だから抽象度が違うってw
イベントはデリゲートを「利用」してるだけで概念的には全く別物。
メソッドは内部で変数を使ってるから変数みたいなものだ、というぐらいトンチンカンな
物言いだぞそれ。
っていうかイベント使うときにデリゲート意識するかよ。
少なくとも意識「しないといけない」か?
C#だとデリゲート型は意識しないといけないな 匿名メソッドや型推論で緩和されたが VBだとHandlesがあるから意識度は一段低い
>>275 AddHandlerとかAddressOfとか使うんだからデリゲート意識するだろ普通。
あ、そうですか。イベントハンドラ作成のときは全てIDEに任せる初心者でしたか、失礼しました。
>>277 だからそれは「使ってる」だけでしょ。
Integerを引数にとるメソッド呼び出しを書くときに君は「Integerの存在を意識する」の?w
まあ言葉遣いの問題かもしれんが、
普通「意識」っていう言葉はそういう場面で使わないだろう。
イベントを自分で作るときの話だろ 使う分には理解してなくてもいいけど作るなら仕組みをきちんと理解しないと Public Event MyEvent As EventHandler これだけ見たら「イベントはデリゲート型のPublicフィールドなんだ」と誤解しそう
>>279 作るときは尚更意識しないと思うけどね。
カスタムイベントのことをいってるのなら同意するけども。
Public Event MyEvent(sender As Object, e As EventArgs) なら?
今まであまりイベント作成時にデリゲート意識してなかった者なんですが、 イベントでデリゲート使ってるってことは、共通のリソースに対してイベントを 発生させた場合には競合状態も発生しうるっていう認識でよろしい? 危なそうならSynLockあたりかけておくのが基本なんですかね?
>>278 >イベントはデリゲートを「利用」してるだけで概念的には全く別物。
VB脳の恐ろしさが分かる発言だな。
お前が何と言おうとイベントの実体はデリゲート。
「デリゲートを利用してるだけ」なんて発言からレベルの低さが見て取れる。
お前がデリゲートを意識しないでもイベントを扱えてるからといって、嘘を言ってはいかんよ。
イベントハンドラ(デリゲートの呼び出し対象)は通常はそれを呼び出したスレッドで実行されるよ カスタムイベントアクセサ使ったイベントを一度自分で作ってみたら イベントとデリゲートの関係は完璧に理解できるからやってみるといいよ
>>283 自分の無知と無分別を自覚できない君は幸せでいいね
VB脳ってお前のことじゃんw
というか、別の概念だから別の名前が与えられているんだけどね。
まあ君は抽象化ということの意味が分からないのだろう。
イベントはデリゲートを登録解除する機能 だけどまあ根本的な概念の方が重要だわな
デリゲート型のpublicフィールドを使ってもイベントは実現できそうだけど それだとクラス外から好き勝手に書き換えたりできちゃうから イベントハンドラを追加するメソッドや削除するメソッド(アクセサ)を使って仲介して 直接デリゲートに触らせないようにするんだよ それらのアクセサをひとまとめにしたのがイベント コンパイラがデリゲート型の変数やアクセサを自動生成してる
まあ正直いうとイベントとデリゲートの区別がつかない人の気持ちは一応わかる 俺も最初そうだったから。 そういう人は抽象化という発想が理解できてないこと以上に、 イベント以外のデリゲートの用途が想像できないんだろうな多分。 そういう人は匿名メソッドでも理解すれば自分の勘違いに気がつくんじゃないのかな。
抽象化は抽象化でもカプセル化と言ったほうが適切
graphicsつかって線引いたりしたのがウィンドウサイズとか変えると消えるのって そのたび書き直さなきゃいけないの?
うん それが嫌ならBitmapに描いてPictureBoxにでも入れとけ
>>289 カプセル化くらいで何を偉そうに。
カプセル化なんぞOOPの基本だろうが。
自分が中級プログラマだと勘違いしているやつの典型的口調だな。
最近匿名メソッドを覚えたことでちょっと優越感を覚えている感じかw
ふーん偉そうに他人を「偉そうだ」と言うのは偉そうじゃないんだ。 本当馬鹿ってのはどうしていつでも自分自身の言葉を自分に適用できないんざんしょ不思議。 まあ基本であることに全然異議はないんだけど、その基本すら理解できない御仁がいらっしゃるから 「偉そうに」貴殿はまちがっておられるぞよ、と進言差し上げたしだいなんでございますがね。
Public Custom Event MyEvent As EventHandler AddHandler(handler As EventHandler) End AddHandler RemoveHandler(handler As EventHandler) End RemoveHandler RaiseEvent(sender As Object, e As EventArgs) Console.WriteLine("イベント発生") End RaiseEvent End Event やろうと思えばこういうこともできるが // 意味があるかどうかは別
>>295 まあ馬鹿がそう思いたいなら思うのは止めんよ別に。
好きにすれば?
まともなプログラマで君の意見に同調する人間がいるとは絶対に思えないけどw
本当に馬鹿だな。
カプセル化が基本とか言ってる割に物事を抽象化・概念化するってことの意味が全然わかってないじゃんw
>>295 まあそういうことだな。
ただカプセル化されただけのデリゲートとそうでないデリゲートを
”根本的に違う概念”と言っちゃったのが間違いだったな。
public readonly Str as string
public str as string
この二つを全く違うと言っているようなもんだ。
どっちもStringには変わりない。
これと同様に、event修飾子があるかないかだけで実体はデリゲートには変わりないよな。
引っ込みが付かなくなって発狂している
>>298 がいると聞いて飛んできました。
>>299 君もアホだなあ。。
イベントが「デリゲート」を使って実現されいるということと、
イベントという概念が何を意味しているかは全然別の問題。
だから前にも書いたが、配列の「実体」はメモリ確保とポインタ操作だが、
「配列」という概念はポインタという概念とイコールなのかよって
馬鹿な奴ってのはこういう抽象的思考ができないから馬鹿なんだよね。
もっと低レベルなたとえが必要かもしれんね。 車の機能はエンジンを使って実現されているが、「自動車」という概念と 「エンジン」という概念はイコールなの?
>>303 巛ミヾヾ \
/ ミ ヽ
f, ミ }
┏v'┳_━━━ r、 |
yバノ゙’' ̄ ''' } }゙ }
‘ーj`' : // /
L_ヽ i V /
(" ` ! _/
\ _,. -‐ '  ̄ !_
/|~ /  ̄ \
ヒッシ・ダナー [Hissy Danner]
(1901〜1997 イギリス)
そういうのは人に「必死だな」と言われれば傷ついちゃう弱っちい自分を語ってるだけだと思うよw 必死だったら何?
>>303 何"イベントという概念"ってwwww
PGならイベントといったらEventHandler<T>のことを指すもんだと思っていたが・・・
VB脳恐るべし。
>>304 論理のスリ替えにワロタw
そろそろ可哀想を通り越してあきれてきたぞw
VBスレってガキオヤジが多くてこまるな
用語の問題だったらたったこれだけのこと デリゲート : 型の種類。クラスや構造体や列挙体と同列。 イベント : 型のメンバの種類。プロパティと同列。
>>310 そういうのはただの分類学だね。
そういう分類上の問題じゃなくて概念の問題なんだけどね。
構造体は「構造体」という概念(概念が難しければアイデアと言い換えてもいいけどね)に意味があるのであって
「構造体とは型の種類である」などと言っても意味がないのと一緒で。
>>292 そうか、産休
線を書き直すようにする
どうせ何度でも書き直すのはPCだし
粘着キチガイが沸いてるな
いろいろわかんないことありすぎるが、仕事は上流に近いことをするので最低限のことを覚えるつもり 仕様書とかネゴはきつい
,r;;;;ミミミミミミヽ,,_ ,i':r" ノ(`ミ;;, 彡 ⌒ ミ;;;i 彡 ,,,,,、 ,,,,、、 ミ;;;!、 ,ゞi" ̄ フ‐! ̄~~|-ゞ, ヾi `ー‐'、 ,ゝ--、' 〉;r' `,| / "ii" ヽ |ノ ∧、 't ー―→ )/イ ∧_ /⌒ヽ\ ヽ、 _,/ λ、 . . //~⌒ヽ |( ● )| i\ _,,ノ|、  ̄/// / \ /i |( ● )| \_ノ ^i | _,,..r''''" ノ | \`', / / / ̄`''ー | i^ ゝ_ノ |_|,-''iつl/´ ヽノ| /\ / 、│ l⊂i''-,|_| [__|_|/〉ヽ、 / |/ );;;;/\/ 'く /〈\|_|__] [ニニ〉 ', ヽ. | /⌒| / ゚/ / 〈二二] └―' '─┘ ナン・トーユー・キティ GUY[Num tooyou kitty GUY] (1847〜 大韓民国)
,,ィ≦テ三三テ≧ュ- 、 ィ州ii} |!{ヾ(((ヾ(((ハ三ミミ 、 〃/ノノリ |ヽ.._ノヽ }}ミミミミh、 〃//〃 | ヽ=ノ ;'⌒ヽ}}ミl、 ,}}| 川|{ ノ ((⌒ ノ }}}li /川||}!}i|  ̄ }州 レ {!州!| ,x‐  ̄ ヽ ,.z==〃/ l!( リノ川 <( ハ〉 ノ { ,ィTヽ / トvソノ}}ハ)、  ̄ ノ l ` ̄ { ))ト〃 }|::ヽ i ′ /ノ》州}}}ィ::、 イ l ′ ((∧ 州}ソ,ノ / ` = _ノ ′ } \ ヾィ ノー- __ - ,' ′ \ ` 、 -‐- イ ′ \ ` __ ,/ l ′ \ ヽ | モーネ・アホカト[Maulnen Ahoccato] (1666〜1738 フランス)
幼稚臭
303と307が違うことを説明してるけど 俺はどっちも正しいこと言ってると思うよ。 303が言いたいのはプログラムにおけるイベントとデリゲートの違いで 307が言いたいのはVB.NETにおけるイベントとデリゲートの違いでしょ。
>>319 正しい正しくない以前に、
>>303 は馬鹿とかアホとか連発してるところが幼稚すぎる。
どんだけ必死なんだと。
あと、.NETでイベントと言えば俺はbutton.Clickとかそういうイベントデリゲートを想像するけどな。
少なくとも本当に分かっている人間だったら捉え方の違いだってことはすぐに気づくだろうし。
「イベントとデリゲートを一緒の仲間と考えるなんてバカじゃね?」とか必死に連発するってのは
やっぱり意味不明だな。
それはすなわちイベントデリゲートという言葉の存在意義を100%否定していることになる。
デリゲートの事を分かってない俺からすると、 お互い違う論点で争っているだけにしか見えない。 車は車であってエンジンが有るか無いか知らなくても運転できる、と言う主張と、 エンジンの事わかってなくて車の性能は引き出せないだろ、という主張 デリゲート童貞の俺を惑わせないでくれw
dllのファイルバージョンを取得する方法がわかりません。 さっきからGoogleで調べてるのですが・・・。 ご存知な方がいらっしゃいましたら教えていただけると助かります。
323 :
322 :2008/03/15(土) 09:53:27
見つけました 失礼しますた^^ FileVersionInfo info = FileVersionInfo.GetVersionInfo("");
324 :
デフォルトの名無しさん :2008/03/15(土) 10:55:45
やっぱり、deligateって、ただの引数の順列を定義しただけの「型」宣言だと腿ふんだが。 これって違うの?
重要なのはそれを呼び出せること
デリゲートは型 型だからインスタンスを作れる そのインスタンス自体もしばしばデリゲートと呼ばれる
327 :
デフォルトの名無しさん :2008/03/15(土) 11:50:41
>>325 もちろん宣言だから、そこに修飾子つきでスコープがあれば
それなりに使えてそれでその型になるようにインスタンスなりイベント
なりを宣言できるってだけかと
>>326 それで、たまたまあるイベントが「定義された」ときにそれがその型に
ある引数をもてるようになるってだけですよね、
でここまでの混乱した話って、要するに、その、
「そのインスタンス自体もしばしばデリゲートと呼ばれる」
ってことにあるだけのように見えますよね。この受け取り方でOK
ですよね?
イベントはデリゲート(型のことじゃなくて機構の意味で)を使って実装される プロパティと違ってイベントの実装を変えることなんてあまりないから VB.NETやC#ではイベントを定義したクラス内でなら通常はそのイベントを あたかもデリゲートのフィールドのように扱える(実際はコンパイラが頑張ってる) そのへんが混同しやすいところではあるけど混同してもなんとなく使えちゃうようになってる
なんか倒錯してる奴が多いね そもそもインスタンスが何者であるかを表現するときに 型名と違う呼称をする型ってあるのかよw たぶんこういう人は、プログラムミング言語におけるデータ型であれなんであれ、 「機構」というものは、まず最初に概念なり理念なりアイデアなりがあって、それを実現されるために 生み出されたものだ、という物事の順番がわかってないんだろうね。 だからくだらない分類学にとらわれちゃう。 「整数型」とか「配列」とか「ポインタ」とか「FIFO」とか「デリゲート」とか「イベント」だとかは 概念なりアイデアの名前だってことがわかってないから、それが型だとか何だとかいう分類学に意味があるように 勘違いしてしまう。
そうだね
>>329 >なんか倒錯してる奴が多いね
でたよ勘違い思考が。
お前さ、自分一人が他の100人の主張と違う状況だったとしても
「周りの奴らはみんな馬鹿だ。俺が絶対正しいのに。馬鹿ばっかりで困っちゃうよ全く。」
という思考しかできないタイプの人間なんだな。
100人とは言わないまでも、多数の反論が出ているんだから少し自分の間違いの可能性を考えるのが普通。
ま、VB脳どうこうではなく、それ以前の「人間」としての資質の問題だったようだ。
こういう奴には何を言っても無駄だから以後スルーを推奨したい。
御託はいいから具体的な反論は? いやまあできんのなら無理すんなw っていうか「スルーを推奨したい」だってさw だからそういうのはみんな(そもそもどこの「みんな」なんだかw)に 仲間はずれにされれば傷つく弱っちいお前自身を語ってるだけ。 中学生かよホントw
いやまあ土曜日の昼下がりから粘着キティが脂っこいこと。 ひきこもって俺的持論展開してないで外出ろと。 あ、俺?デスマーチ中で会社で徹夜明けだよ。 2chでキティ相手でもしないとやってられんわ。
休みだから外出ろってのもどこの小学生だか
ComboBoxへのデータ追加について教えてください。 1)DataSourceに接続して2000件程度セットすると表示に2秒ほどかかる。 Select ID, Name From Table; 2)同じSQLで1レコードずつ読んでItems.Addすると1秒かからない。 BeginUpdate ComboBox.Items.Add(); EndUpdate; 2)でBeginUpdate, EndUpdateしないと遅くなるのは分かりますが、 1)の方法で速度を速くする方法はあるのでしょうか。 2000件ComboBoxにセットするのはテストのためですので・・・突っ込まれるといけないので念のため。
VBからC#に転向しました。今までありがとうございました。
両方使えて当たり前
338 :
335 :2008/03/17(月) 15:03:16
試行錯誤の結果、以下が判明しました。 1)ComboBox.DataSource = ... ComboBox.DisplayMember = ... ComboBox.ValueMember = ... より、 2)ComboBox.DisplayMember = ... ComboBox.ValueMember = ... ComboBox.DataSource = ... が断然速い。理由は不明。
>>338 なんかわかった気がする
読み込みのタイミングかな
ユーザーコントロールの作成についてお勧めの書籍なりサイトなりありませんか?
>>342 またお前か。
とにかく人に文句つけたがる性格とその幼稚な口調。そして必ず「w」が入っている文章。
どうにかならんのかねまったく。お前がいると荒れるんだよ。
IDのない板で電波飛ばすなよw 語尾にwつけたら「またお前か」ってww
多分「俺」に否定的な言葉を投げる奴はみんな「(また)お前」なんだよw 冗談抜きで最近こういう統合失調一歩手前って人間増えてる気がするね
見えない敵と戦ってる男がいるんですよ。
とりあえず句読点付けるヤツと付けないヤツがいるな
句点と読点、それぞれ分けてクセ読んだ方がいいぜ 自演バレしてる現場を追うと、自演慣れしてる奴って 三点リーダーの扱い含めて使い分けてたりするから分析の意味は薄いと思うけど。
349 :
デフォルトの名無しさん :2008/03/18(火) 01:15:19
>>343 そうやって自分の落ち度を人のせいに転嫁するなよ恥ずかしい奴だな。
突っ込まれるとお前さんの気分が(このスレが、ではない)「荒れる」のなら
突っ込まれないような、あるいは突っ込まれてもちゃんと反論できるような
内容を書くように努力しろよ。
VB初心者なんですが質問です DataGridViewでドラッグアンドドロップを行うときに移動元のデータを DataGridView.CurrentRows.Index なんかで行番号を取得して要素を取得しているのですが、実行してみるとMouseDownイベントに入っているのにマウスを押すだけでは選択項目が変更されなくて違う所にあるデータがコピーされてしまいます MouseDownで選択項目を変更できないんですか? すみませんお願いします つまり選択セル(行)を無理矢理マウスダウンの位置に設定する方法があればお願いします 過去ログを検索かけてみてもかからなかったので
>352 マウスを押した段階で反応するのがマウスダウンだからその頭にCurrentrowを指定したいのですが読み取り専用とかでエラー出てしまいまして…
354 :
デフォルトの名無しさん :2008/03/18(火) 22:59:53
>>351 マウスを押して、そこから少し動かして初めてDrag開始とするようにする。
355 :
デフォルトの名無しさん :2008/03/18(火) 23:05:58
>>353 Helpによると
# 現在の行を変更するには、CurrentCell プロパティを目的の行のセルに設定する必要があります。
とあるからCurrentCell を変更汁
356 :
デフォルトの名無しさん :2008/03/18(火) 23:18:57
コードビハインドしているdefault.aspx.vbに importディレクティブを書きたいのですけど どこに書けばよいのでしょうか。
あのーVB初心者なのですが、これからのことを考えてC#に移ったほうがいいでしょうか?まだ初学者程度です。
>354,355 ありがとうございます 試してみます
[アプリケーション トレース]で[このアプリケーションに対する要求]の一覧で [要求の詳細]の[トレース情報]にエラーの項目があるものだけを 表示させるという事はできるのでしょうか? できるならやり方を教えていただけませんか? よろしくお願いします。 使用バージョンは .NET 2003 framework 1.1 です。
コンパイルは通るが、実行時エラー PictureGmain.ImageをBMPで保存しようとしてます。保存ダイアログ=sfd PictureGmain.Image.Save _ (sfd.FileName Imaging.ImageFormat.Bmp) オブジェクト参照がオブジェクト インスタンスに設定されていません。らしい VB2005です。 なんでですか?サンプルコード通りなのに
>>362 PictureGmainかsfdのインスタンスが作られていない。
つまりnewしてないってこと。
すまん。とんでもない初心者です。 入力項目の数値チェックってどのクラスつかえばいいの? 文字いれたら落ちるんです
>>364 もっと具体的に。
Integer.TryParse()かDouble.TryParse()のことだとエスパー
>>365 サンクス。Isnumericでも解決した。
どっちがベターなのかな。
プログラミングに関して初心者なのは構わないかもしれないけど、 人からエスパー(召還)とか言われても自分の説明能力を反省しない その無頓着さというか無神経さはどうにかしろよ
>>366 TryParse()の方がベター。
理由はIsNumeric()がVB固有の関数で、TryParse()が.NET共通の関数だから。
>>363 サンクス
bmp new image で
保存したら、ファイルできました。
bmp=picturebox.image
で読み込んだりdraw〜で書き込んで保存したら、真っ白でした。
勉強しなおしてきますorz
VB.NETでコマンドプロンプトで実行するプログラムしか作ったことないし、 また作る気もないけど、恥か?
>>370 コンソールアプリ以外作る気がないのに.NETを選択しているのが意味不明。
C++でいいじゃん。
>>370 別に。
.NET環境オンリーでおkならそれで無問題。
VBで質問です DataGridViewでバインドされていないデータを使ってます ある値の存在する位置にデータを挿入したいのです つまり dim i as integer'(iは全データ数) 'データを仮にDataA1、DataA2、DataB1・・・とします(DataAは2個でワンセット)これらをAddしておく 'DataA2の値を変更する for j as integer = 0 to i if datagridview1.rows(j).cells(0).value = DataA1 then datagridview1.insert(j,DataA1,DataA2) end if exit for next というようにしてみたのですが、なぜか変な場所に挿入されてしまうのです。 どこかおかしいのでしょうか? 教えてください。
375 :
デフォルトの名無しさん :2008/03/22(土) 14:51:22
DatagridViewの質問です。 tsvファイルをoleで読み込んで表示するプログラムを作っているのですが 困っていることがあります。 やりたいこと @グリッドに表示するデータは、tsvから読み込んだデータとボタンを表示する A検索機能を設けて、対象データのみを表示or対象データを先に表示する @の手段として、DataSourceに読み込んだtableを指定したあとにボタン型のカラムを 足したのですが、検索機能としてRowFilterを使用すると、ボタンのキャプションが初期化 されてしまいます(Valueがnullになる) そこで、DataSourceに指定するtable自身にカラムを足そうと思ったのですが、 tableにはボタン型のカラムを追加できない状況です。 解決するためのいいアイデアはないでしょうか? Aについては、「対象データを先に表示」する機能ができなくて困っています。 この機能はJaneDoeStyleのスレ一覧で検索をしたときに、対象スレが赤文字で 上のほうに表示されるのと全く同じ機能になれば嬉しいです。 ご教示お願いします。
376 :
374 :2008/03/23(日) 01:25:22
自己解決しました Arraylist使いました ありがとうございました
Win32APIのVB.NETからの利用方法を 30分でわかるように教えて下さい。
>>377 30分睡眠してみて、神からの啓示が無ければ神が見放したとあきらめろ
OS:XP VS2003 FlexGrid2.1.2で 環境が古くて申し訳ないのですが グリッド内の文字をドラッグして選択して その文字を取得するにはどのようにやればいいのでしょうか? もしご存知の方いましたらお願いします。 テキストボックスの場合は SelectedTextを使えば取得できるのですが・・・
381 :
380 :2008/03/24(月) 21:41:43
すいません、マニュアルにありました。 解決です。 Dim selText As String = "" Dim ctl As Control = flxList.Editor If (TypeOf ctl Is TextBox) Then selText = (CType(ctl, TextBox)).SelectedText End If
Spread for .NET 1.0.6.0でスプレッドシートを作る時、 Column A 〜 Hぐらいまでのうち、 B, E, Gのなど一部のセルにはフォーカスが合わなくて(読み取り専用) 他の列は普通にシングルクリックで書き込みできる状態に設定するのって どうやればいいんですか?
正規品ならメーカーに電話すれば。
384 :
デフォルトの名無しさん :2008/03/26(水) 13:26:16
頻繁にタイマで時間を確認する 1秒ごとにタイマのイベントが発生するようにしてるから今10回目で10秒…みたいなやり方は 不正確になるのでよくない
386 :
axa :2008/03/26(水) 13:50:44
すみません質問です VB.NET2005を使用してWebサイトを作っています 大体の手順としましては @FileUploadコントロールでjpg画像ファイルを参照(ローカルPC内画像データ) ASessionなどに@のFileUpload.PostedFile.FileNameのパスを格納 Bボタンなどで別画面を表示 C別画面のImageコントロールのImageUrlにパスを設定してjpgを表示→【表示されない】 ※aspxなどのプログラム自体はサーバ上にIIS指定で動作させています といった状況なのですが解決方法はありますでしょうか? ちなみに本当にしたかったのは @FileUploadコントロールでjpg画像ファイルを参照(ローカルPC内画像データ) ASaveAsを使用してサーバの指定フォルダへjpgデータをアップロード Bボタンで別画面を表示 C別画面のImageコントロールのImageUrlにアップロードした画像パスを設定してjpgを表示 だったのですが A〜Cのやり方だとアップロードがパス指定までに完了していないのか 画面を表示してからF5などで画面更新をしないと画像が現れてくれません・・・ なにとぞよろしくお願いします・・・
387 :
axa :2008/03/26(水) 13:59:52
あ、すみません わかりやすく言うと ローカルのjpg画像のフルパスをImageコントロールに指定して表示させたいってことです C:/data/image/abc.jpgのようなローカルパスをImageUrlに設定してもだめなのでしょうか?
388 :
axa :2008/03/26(水) 15:51:48
返事がないので質問をかえさせて頂きます^^; 画面AのボタンをクリックでFileUploadのSaveAsを使用してローカルのjpg画像をサーバの 指定フォルダへアップロードしてそのまま画面Bへresponse.redirectで移行し、 Image.ImageUrlにアップロードした画像パスを設定してjpgを表示したいのですが アップロードがパス指定までに完了していないのか 画面Bを表示してからF5などで画面更新をしないとImageコントロールに画像が表示されません どなたか解決方法をご存じないでしょうか?
まず、WEBでのURLパスとファイルシステムのフォルダパスは違うことを勉強したほうがいい。
390 :
デフォルトの名無しさん :2008/03/26(水) 16:42:28
VB.NET + Acrobat SDKで質問です。 OS :WinXP 開発:VB.NET 2005 .NET:framework 3.0 Acrobat SDKを使用し、Adobe LiveCycle Policy Serverで セキュリティをかけたPDFファイルを固定ポリシーサーバへ自動ログインし PDFファイルを開きたいのですが、どのようにすれば出来るのでしょうか? セキュリティが掛かっていないPDFをAcrobatSDK使いファイルを開けるのですが そのようなセキュリティが掛かっている場合開くことができません。 解決方法がご存知の方がいらっしゃったらご教授願いませんでしょうか? 参考となるサイトでも良いので何か情報があれば教えてください。
けっ 使えね〜やつらばっかだぜここ
おめーに使われてたまるか
DataGridViewのCellPaintingでセルの中身を自前で描画しているのですが、 横スクロールすると行ヘッダーに隠れるセルでDrawTextした文字が、 行ヘッダーに被ってしまいます。 ヘッダーで隠れている部分の文字だけを表示しない方法をどなたか分かりませんか?
>>388 早急なレスポンスを望むなら、にちゃんなんぞに頼らない方がいいと思う
ここで質問したいなら、お前の日本語わかりにくいし、
自前のソース貼ってくれた方が手っ取り早いと思うぞ
VB.NET初心者スレ立たないと、C#に切り替える
このスレって他の言語スレに比べて基礎的(簡単という意味ではなく)な質問が少ないよな でも基礎的なことがわかってないことが原因の場合が多い
Object型の変数の中のオブジェクトの実際の型を調べるには?
初歩的な質問ってここでいいのかな? VB.NET触って間もなくて質問の仕方とかおかしいかもしれないけどごめん。 テキストボックス内の文字列のバイト数を数えるプログラムを組んでるんだけど、半角文字を1、全角文字を2って数えるところまでは出来たんだ。 で、問題は改行なんだ。今の状態だと2バイトで計算されるんだけど、これを6バイトで計算する事って出来るかな? 出来なくはないと思うんだけど、色々調べてみたけど、どうにもマッチするサンプルがなくて困ってるんだ。 わかる人がいたら教えてもらいたい。
> 今の状態だと2バイトで計算されるんだけど、これを6バイトで計算する事って出来るかな? ?
400 :
398 :2008/03/29(土) 07:10:08
>>399 わかりにくかったか、ごめん。
半角=1バイト
全角=2バイト
改行=6バイト
で計算をしたいんだ。2chってそういう計算してるみたいだし。
もう少し具体的に言うと、2chにレスをする前に、そのレスのバイト数を調べたいって事なんだけど。
>>398 >半角文字を1、全角文字を2って数えるところまでは出来たんだ。
これはどうやたんだ?
1文字ずつ判定しながら数えてるなら改行のバイト数を読みかえるだけだし、
一度SHIFT-JISに変換して総バイト数を調べてるなら、
あとから改行の数を別に数えて足しこむでいいだろ。
402 :
398 :2008/03/29(土) 07:21:55
>>401 一度Shift-JISに変換して総バイト数を調べる方法を取ったよ。
>あとから改行の数を別に数えて足しこむでいいだろ。
なるほど、その方法があったか。考えが及ばなかったよ、ありがとう。
コピペ君って馬鹿だな、まで読んだ。
早く「VB.NET寺子屋スレ」作ってくれないと、C#に移っちゃうぞ
407 :
.net初めて、、 :2008/03/29(土) 23:02:05
こんにちは、いつも参考にさせてもらっています。 ひとつ質問させて頂きたいのですが、 .netで削除対象のデータをファイルに出力するという処理があります。 やろうとしている方法は、削除のものを一時ファイルとしてある固定パスに 書いておいて、ダイアログを開いてユーザに本当に落としたいパスを 選択させる。そして一時ファイルからそのユーザが選んだパスに選んだ ファイル名としてコピーしておく。 そして一時ファイルを消しておく、、というような設計にしたいのですが、 コーディングがあまり浮かびません。 お忙しいとは思いますが、教えてください。 お願いします。
まず.net以外で書いてみて、それを.netに書き換えると簡単だよ
409 :
デフォルトの名無しさん :2008/03/29(土) 23:33:21
さようなら、VB.NET
411 :
デフォルトの名無しさん :2008/03/30(日) 03:26:01
VB.NET2003でリバーシのプログラムを組みたいのですけど 色々な要素が含んだプログラムが作れるサイトなどはないでしょうか
>>411 プログラムを作るのはWebサイトではなく、お前だ。
414 :
デフォルトの名無しさん :2008/03/30(日) 14:54:27
VBでC++のconstに該当する機能はありますか? void Hogehoge(const Hoge& foo) みたいなの
>>414 そういう使い方のconstはないよ〜。
つーかクラスのconstをまともにサポートしてる言語はC++以外にあったっけ?
Dもそういうことができるみたい。
VB2005で、データベースに接続できているか確認をしたいのですが Dim Cn As New OleDbConnection Cn.ConnectionString = (省略) Try Cn.Open() Catch ex As Exception End Try としたところ、なぜかCn.Open()のところに ステートメントの終わりを指定してくださいと出るのですが、なぜでしょうか? Cn.Open()単体だと問題なく書けるので、Try文の書き方に問題があるようですが、 他に書き方があるようには思えないのですが…
418 :
417 :2008/03/30(日) 16:15:35
すみません、久しぶりなのでIf文の構文と混同してしまっていました… 自己解決しました
VB2008ex歴3日目の私の質問です VB6のアップダウンコントロール、またはVBAの スピンボタンコントロールのようなものはどれですか? NumericUpDownのボタンだけのもので、 ボタンサイズがいじれるものです
こんばんわ質問したいのですが、 ToolStripPanel.Joinで、指定した位置に配置するように引数渡したのですが、 指定した位置になってくれません。 ToolStripPanelは位置の自動調整をすることはわかっていますが 引数として渡した値は、特に問題のある値ではありません。
>>415 やはりそうでうか・・・
参照型だとbyval, byrefに関係なく変更できるのは如何なものかと。
>>420 >ToolStripPanel.Joinで、指定した位置に配置するように引数渡したのですが、
>指定した位置になってくれません。
プログラムは思ったとおりには動かない。書いたとおりに動くのだ。
ちゃんと指定しているつもりになっているか、他の部分でアホやってんだろ。
教えて欲しけりゃコード晒せよ。
>>421 変更されたくないのならばパブリックフィールドで公開しないでプロパティで公開するべきだし、
たとえば配列とかを渡したいときなんかはコピーを作ってそれを渡せばいいだけじゃん。
OOPがしっかり分かってればその辺は工夫次第でどうとでもなるでしょ。
constは面倒な割にメリットが少ないから捨てられたんだっけ
CLIレベルでサポートが必要だしねー
>>423 ファンクションの引数に参照型を渡すのは良くあることなので
いちいち、copyやcloneは面倒です。
C言語より退化している気がする。
>>423 たぶん
>>421 は違う視点で物を言っているんだと思うけど。
確かにconstがなくても、(メソッドの実装が不明でも)メソッドによって
メソッドが引数にとるオブジェクトのデータが変更されないことを保障することはできる。
でもこれはメソッドを使う側の視点の話。
>>421 が問題にしたいのは恐らくメソッドを設計する時の視点。
つまり、constがないことは、そのメソッドが引数に取るオブジェクトのデータを
変更しないことを明示的に保障する言語的な仕組みがないことを意味しているわけで、
そこに引っかかってるんだろう。
保障じゃなくて保証だね一応訂正
ネイティブリソースはどうすんの? 言語やILの範囲内ならできるだろうけどあんまり意味ないし混乱の元
ネイティブリソースって何のこと?
>>421 が言ってる話ならコンパイラがチェックすれば済むこと、要するにコンパイラの
仕様レベルの話のはずだと思うけし、全然話かみ合わないように思うけど
やるならCLRレベルでサポートしないと意味無いよ
ヘッダファイルの無いクロスランゲージな.NETでコンパイラがチェックすれば済むとか
もともとC++のconstには2種類の用途があって、 ひとつは定数を作ること。 もうひとつは読み込み専用のポインタ/参照を作ること。 const Hoge& fooは読み込み専用の参照で、この参照を通してはfooの内容を変更できない。 (別のルートからは内容を変更できるかもしれない) Hogeについてこういう参照の需要があるなら、 IReadonlyHogeみたいなインターフェイスを用意してそれを実装するという手があるかも。 C++でconstメソッドを作る感じ。
>>433 public sub NewRecord(ByRef ReadOnly table as DataTable) as DataRow ' ReadOnly てのがあったとしても
Dim result as DataRow = table.NewRow() ' そのメソッド NewRow が table を変更しないかどうかは不明
ってことかと。
436 :
デフォルトの名無しさん :2008/03/31(月) 11:25:03
質問です AとBという2つのShort変数があって Aは上位16ビットBは下位16ビットのInteger型へ変換したいのですが 論理シフトを使った場合、 Dim C As Integer = A C <<= 16 C += B これで変換できたのですが、 負数が絡む算術シフトをプログラムするときに 補数を保持しながらビットシフトを行う方法が思いつきません。 よろしくお願いします。
一旦両方 UShort に型変換してやればいいよ
438 :
436 :2008/03/31(月) 11:42:47
>>437 ありがとうございます。
やってみます。
よく考えるとVBだと既定ではオーバーフローが出ちゃうな。 Dim a As Short = -234, b As Short = -2434 Dim c As Integer = CInt(a), d = CInt(b) Dim x As Integer = ((c And &HFFFF) << 16) Or (d And &hFFFF) c,d は不要だけどこんなもんか。
>>436 BitConverter使った方が明示的じゃないかな。
しかし、なんか妙な需要だね
>>433 VBのコンパイラだけ単独でやるとしたら,拡張メソッドと同じように
引数にカスタム属性を付けることになると思うけど,
そんなのは他のconstをサポートしない言語から見たら何の拘束力も持たない
そういう言語で作られたクラスライブラリを使うときに混乱する
442 :
436 :2008/03/31(月) 13:59:51
>>439 ありがとうございます。
受けをUInteger型にしてInteger型に直す時にもオーバーフローでますね。
しかしUInteger型でも問題ない箇所だったので解決しました。
回答がすばらしいですね。たしかにANDしてORでできます。
聞くと簡単ですが、これが出てこないんですよね。
>>436 BitConverter便利ですね。
Byte配列ならこっちがいいですね。
今回はShortからByte配列へ変換そしてBitConverterですね。
こういう計算もクラス化されているんですね。
最初からBitConverter使っちゃうと中で何しているか
勉強しなくなりそうで怖いです。
443 :
初心者 :2008/03/31(月) 16:51:17
追加したデータセットモジュールに SQLサーバーからセレクトで取得したデータを 入れたいんだがどうしたらいいかわかりません 教えてください
>>426 C++でconstがどうしても欲しくなるところは、文字配列や文字列クラスなのだが
.NETの場合文字列は不変クラスだから問題ナッシングなんだよね。
>>421 参照型の場合はbyvalは参照渡し、byrefが参照の参照渡しで一応違いはある。
>>445 値型でも参照型でもByValは引数に影響を与えないでほすいんだけどね。。
引数の中身自体には影響を与えないよ 参照先は知らんけど
VB中学校が目に優しくなったな エイプリールフールだからか
>>446 それは無理だ。
だってポインタなんだもの。
450 :
助けて下さい。 :2008/04/02(水) 00:07:27
現在、VB.netでReportViewer(*.rdlc)を使用し印刷を行っているのですが、
印刷時には、毎回プレビュー画面が表示されてしまいます。
プレビュー画面を表示させずにプログラムから印刷をしたいのですがどう
すれば良いでしょうか?
(つまり、既存コードを流用しつつプレビュー画面を表示せずにプログラムから
自動で印刷を行いたいです。)
次の通り、サンプルコードを参考にしてローカルのプロジェクト内で既に使用している
【HogeReport.rdlc】ファイルを指定した上で、レポートのデータソース(DataSources)
にインスタンス(クラス)をバインドしようとしているのですがエラーが発生してしまいます。
report.ReportPath = @"C:/hoge/HogeReport.rdlc";
'report.DataSources.Add(new ReportDataSource("Sales", LoadSalesData())); ← サンプル
report.DataSources.Add(new ReportDataSource("Sales", InstanceClassMember)); ←私のコード
MSのドキュメントを見たところDataTableを指定しなくてはならない様なのですが
既存コードでは、インスタンスクラス.メンバがレポート(HogeReport.rdlc / テキストボックス等)に
バインド(DataSource)されている為に、データ構造をインスタンスクラス.メンバからDataTableに
置換するのは非常に大変なので避けたいです。
※次のサイトを参考にしローカルレポートを利用してサンプルデータの
印刷が出来るところまでは確認が取れています。
<参考にしているURL>
http://msdn2.microsoft.com/ja-jp/library/ms252091.aspx
>>450 ReportViewerなんて使ったことないので想像でしかわからんが、
レポート内のテキストボックス等にバインドされているのであれば、
report.DataSource.Addは必要ないと思うんだが。
report.DeataSource.Addはせずにやってみたら?
452 :
質問です。 :2008/04/02(水) 02:16:27
>>451 >report.DeataSource.Addはせずにやってみたら?
レスをどうもありがとうございます。
実は、それも試してみたんですがするとエラーが発生してしまいました。
ちょっと、ちょっと会社に行ってから色々と試してみようと思います。
イベントに独自引数を渡すにはどうすれば良いのでしょうか?
455 :
デフォルトの名無しさん :2008/04/02(水) 22:01:24
Interface ITest : ReadOnly Property Hoge As Integer : End Interface というインターフェイスがあってその実装クラスでは読み書き両方させたいのですが、 実装クラスのほうもReadOnly Propertyにしないとコンパイルエラーになります。 読み書き用と読み取り専用のプロパティを2つ準備する以外に何かスマートな方法が あれば教えてください。
インターフェイスの方の実装プロパティを別名定義すればOK
>>456 なるほど、ありがとう。うまくいきました。
Public Property Hoge As Integer
Get 略
Set(Value As Integer) 略
Public ReadOnly Property Huga As Integer Implements ITest.Hoge
Get 略
458 :
デフォルトの名無しさん :2008/04/02(水) 23:14:04
ボタンイベントの中でDropDownListを初期化して そのDropDownListのSelectedChangeイベント(だっけ?)を 設定するにはどうすればいいでしょうか?
459 :
デフォルトの名無しさん :2008/04/02(水) 23:28:53
データベースからSQLで取得したデータを一時的にデータセットに入れてるんだけど 入っているデータを視覚的に見る方法ってないですか?
addhandler
オススメの書籍おしえて
ない webでOK
463 :
デフォルトの名無しさん :2008/04/03(木) 10:47:34
質問です。 プログラムからPDFを部数を指定して印刷する方法を探しています。 行いたいのはAdobeReader8を起動させてそこから部数指定分PDFを印刷させたいのです。 ただ単純に印刷する事はできました。 しかし部数を指定して印刷することが出来ないでいます。 色々と探してみましたが、見つけたのはループで部数分まわすという処理方法のみです。 ですが私が求めている処理方法はループで部数分まわすのではなく直に印刷部数を指定したいのです。 どなたか解かる方がいましたら教えてください。よろしくお願いします。
>>459 デバッガでブレークしてデータセットが入っているフィールドの上にマウスカーソル置いたときに
表示される虫メガネのアイコンをクリックする
>>463 ループ回数を受け取る関数を作ったら?
引数に印刷部数を渡せば直に印刷部数を指定していることになるけど。
466 :
463 :2008/04/03(木) 13:07:16
>>465 すみません。もうすこし噛み砕いてお願いします。
引数とはどの引数なのでしょうか?
467 :
デフォルトの名無しさん :2008/04/03(木) 13:08:25
ToolTipコントロールの設定時間いっぱいになったら 表示が出なくなるバグとか直ってましたっけ? もうFramework2.0のSP、出すつもりはないのかな??>MS
>>457 インターフェイスの実装をPrivateにすることで余計な名前のHugaが外部から見えなくなりました。
改良版
Public WriteOnly Property Hoge As Integer
Set(Value As Integer)
略
Private ReadOnly Property Huga As Integer Implements ITest.Hoge
Get
略
>>466 Private Sub PdfPrint(ByVal cnt As Integer)
For index As Integer = 1 To cnt
'印刷処理のループ...
Next
End Sub
こんな関数を作っておいて、
呼び出すときは
Call PdfPrint(8)
とすれば直で部数を投げるだけで内部でループしてくれるってこと。
470 :
463 :2008/04/03(木) 14:58:27
>>469 すみません。説明が足りなかったようで。
えっとですね。ループで印刷すると、ループ分だけ印刷処理を行ってしまうのは避けたいのです。
例えば、5部印刷したい場合はループだと5回印刷処理をAdobeReaderからならReaderが5回立ち上がり印刷するような形になってしまいます。
そうではなく、1回の印刷処理にて5部を印刷したいのです。
印刷ダイアログの部数をかえるようなのをプログラム側から指定してあげたいのですよ。
なのでループで行うのは勘弁していただきたいです。
>>470 ちっと調べてみた。AcrobatSDKによると、
.NETで完全に制御したければAcrobatReaderじゃなくてAcrobat完全版を買えと言っているようだ。
おそらくAcroRd32.exeにコマンドライン引数を渡して印刷しているんだろうけど、部数を渡せる機能はないみたい。
だから、どのサンプルみても毎回Readerのインスタンスを生成する方法しかないんだと思われ。
Acrobat完全版をインストールすれば、Acrobat.tlbを参照に追加してやれば、.NET上で
いろいろできるようなことが書いてある。
確認もせずに逝ってみるけどプリンタのデフォルト部数を直前に変えるってのはダメだろうか
473 :
463 :2008/04/03(木) 16:52:46
>>471 Acrobatでなら出来るのはわかっているのですがなるべく買わない方向で行きたいので、Acrobat使用はないですね。
>>472 それが出来るならそれでも構わないです。
>例えば、5部印刷したい場合はループだと5回印刷処理をAdobeReaderからならReaderが5回立ち上がり印刷するような形になってしまいます。 それはReaderを5回立ち上げるからだろ? 立ち上げは1回にして、ocxかddeで印刷依頼を5回しろよ。
>>473 >Acrobatでなら出来るのはわかっているのですがなるべく買わない方向で行きたいので、Acrobat使用はないですね。
じゃー無理だな、あきらめろ。
ところで、AcrobatReaderも買わないとイケナくなる 条件が存在するって知ってた?
知らないけど知らなくっていいからお構いなく
TreeViewのノードを保存・読み込みするためのメソッドって無いんだね・・・ 自分でXMLのパーサ書くしかないか・・・
ところで、VSのデバッグ中PDFをADOBE Reader8で起動すると高確率で フリーズするのは、私だけですか?
XMLの形式は? バインドはできてもいいと思うけど
>>482 形式?
ウェルフォームドとか検証済みとかそういうことですか?
WEB開発ってやったことないから詳しいこと知らないけど
例えばMSDNのツリーなんてXMLをバインドしてるんじゃないのかな?
ノード増えるたびにハードコードみたいな非生産的なことする?
なんでそうなるんだよ バインドできないのは確かに問題だけどXMLから自動で読み込む処理を自分で書けばいいだろ
>>484 バインドできなくても、GUI名乗ってるんだからマウスからノード追加するような
プログラム作ったとき読み込み保存メソッドあれば便利だと思うんですが
使えない理由ってなんですか?
そんなこと言い出したらキリがないだろ バインドで一本化した方が綺麗
使えない理由は意地でも答えないつもりですね
理由? 数多くの場合に対応できるような汎用的なものを作ろうとすると、 結局、単純に使うのも大変なものになってしまう恐れがあると判断されたのだろう。 そんなものないほうがましだ。
489 :
デフォルトの名無しさん :2008/04/05(土) 03:40:40
Dim dt As DateTime DateTime.TryParse("昭和64年2月23日", dt) ↑これがTrueになってしまうのですが、非実在和暦を 検出するうまい方法はありませんか?
ありません 和暦には未来があります
>>489 そのdtを和暦に変換して"昭和64年2月23日"になればtrue
AcroPDF使ってPDFの表示してるんだが、「アクロバットがインストールされてない」ことを 知るにはレジストリあさるしか無い? newした時にエラーになるかと思ったらならないし… (アクロバット無い時にPDF処理しないようにするため)
493 :
デフォルトの名無しさん :2008/04/05(土) 08:57:05
>>491 ありがとうございます。それGoodです。
495 :
デフォルトの名無しさん :2008/04/05(土) 11:56:49
A3サイズでデザインしたActiveReportを A4サイズに縮小して印刷したいのですが、 .Net側でサイズを制御することはできるのでしょうか?
>>492 そのまま実行すればどこかでエラーになるので
それをCatchすれば良いだけでは?
497 :
デフォルトの名無しさん :2008/04/05(土) 15:16:41
このスレの住人なら知っていますね、あの糞開発ツールのことを ・自分のプログラムのバグなのかコンパイラのバグなのかわからない ・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している ・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている ・糞開発ツールを批判すると「性格が悪いから糞ツールを批判するんだ」と言われる 糞だけど、政治的な理由で無理やり使わされているんですよね。 もう、あんな厨の作った糞ツールを我慢して使うのはやめましょう。 ・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。 上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。 ・糞開発ツールを使わせる上司の下では働けません、と上司の上司に直訴しましょう。 ・あの糞開発ツール提供会社には「おたくの糞開発ツールは話にならない」と突き放しましょう。 バグレポートなどしてはいけません。改善要求などもってのほかです。 あの会社はあなたたちのことをテスター/モルモットとしか思っていません。 ・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」 なんて話が出たら力強く机を叩き、会議室を出ましょう。 あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。 糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。
コピペ君って馬鹿だな、まで読んだ。
>>496 最初にListViewに対象ファイルだけピックアップして、さらにクリックで拡大表示
(PDFの場合はAcroPDFに渡す)してるんだけど、最初のピックアップは拡張子だけで
判別してるのでAcroPDFに渡して始めてエラーになる
ところがアクロバットが無い場合はListViewの段階で出さないようにしたい、と
まあアクロバットアンインストールしてみりゃいい話なんだが面倒くさくて…
それとインストールされていない環境とアンインストールした環境が同じかどうか
ちと自信ない(アドビのこったからレジストリ完全に綺麗にするとは思えなくて)
PDFのアイコンを取得してみて、空なイメージと区別とか。 厳密にはAcrobatじゃないかもしれないけど。
結局アンインストしてみた
実際やってみたら簡単な話でAxAcroPDF.GetOcxがNothingかどうか調べるだけで
OKだった
>>500 classrootの.pdfからたぐる方法は自分でアクロバット使ってないから(FoxIt使ってる)考えなかった
まあ案の定currentuser\software\adobeにはacrobatのキー残ってたけど
ActiveX版Spreadを多用しているVB4のプログラムを VB2005 & Spread 2.5J .NET版への移行を行っています。 なんとか移行はできたものの、Spreadをマウスのホイールを使って スクロール(垂直、水平共に)させるとなんだか、ものすごく重たく感じます。 これってなんでなんでしょう??? どなたかご存知であれば教えてください。 開発用のPCは以下の仕様です。 OS : Win200Pro CPU : Celeron 2.8GHz Memory : 1GB .NetFrameWork : 2.0Sp1
正規ユーザーなら開発元に聞(以下略 IEのスムーズスクロールをONにしたときみたいな動作なの?
>> 503 はい、スムーズスクールをOFFにしたような、モッサリした感じの動きです。 開発元に聞いてみる前にどなたかご存知であればと思って質問させていただきました。
>>504 SpreadじゃないけどWindowsの右クリックメニューのにょろっと出る視覚効果を
殺したらグリッド系のスクロールがまともに動くようになった事があるな。
>>501 大ウソだったw
おかしいな…確かに出来た気がしたんだけどな…
結局レジストリ
>>505 Win2000の視覚効果みたいなのは全てOFFにしているのですが・・・。
それでもモッサリした感じがします。
プリンタの窓を開きたいのですが、どうすればいいでしょうか? プリンタとFAXまでは開くことができます。 (コントロールパネルのプリンタとFAXを表示→特定のプリンタを開く) 一回で開くことができるのでしょうか? それとも、「プリンタとFAX」の窓を開いてプリンタを開いて、「プリンタとFAX」の窓を 消す作業をしないといけないのでしょうか? 対処法お願いいたします。
ふつうは片手で開けるw
Dim dgv As DataGridView = DataGridView1 Dim tbl As DataTable = DirectCast(dgv.DataSource, DataTable) これキャストできないんですが原因がわかりません どんな原因が考えられるでしょうか
dgv.DataSource が DataTable じゃないんだろう
>>511 そういうことでしたか。
ちなみにDataSourceはBindingSourceだったんですが
そのままでDataTableを取得する方法ってないでしょうか?
>>508 プリンタのショートカットを作って開けるのだからできるだろ
514 :
512 :2008/04/07(月) 18:14:29
すみません↓でいけました。 Dim dgv As DataGridView = DataGridView1 Dim tbl As DataTable = _ DataSet1.Tables(DirectCast(DirectCast(dgv.DataSource, System.Object), BindingSource).DataMember)
課題でVB2005を使用してプログラムを作成してるのですが ちょっとしたことで躓いています Form1と2がある状態で2をShowメソッドで表示した際に Form2がアクティブになりません LoadやActivetedなどにActiveteメソッドセットしてみたのですが上手くいきません モーダル使わずにForm2をアクティブにするにはどうすれば宜しいのでしょうか?
ShowWindow
518 :
デフォルトの名無しさん :2008/04/08(火) 14:59:18
VB.net2003からプリンタの印刷設定を直接変える方法ってなんかないでしょうか?
バカに教える気は無い
コピペすれば動くコードがほしいよ〜
Shell.ApplicationをCOM interopでつくって、 shapp.NameSpace(ssfPRINTERS).Items()を ぐるぐるまわして、explorerで開きたいItemに InvokeVerb("open")あたりでどーだ。
プリンタのショートカットを作って開けるのってどうやるの? ショートカットを組み込むとかわからん。 通常のアプリなら組みこめられるが、プリンタのドライバ?とか指定はどうやるの?
>>525 まず文章を推敲するのが先。
正直君が何を言ってるのか、何をしたいのかサッパリ理解できないし、
それが俺の読解力の問題とは思えない。
System.Diagnostics.Process.Start(プリンタのショートカット)
System.Diagnostics.Process.Start(Adobe PDF)
とかじゃだめなのか・・・
>>526 ボタンを押したらプリンタの詳細(印刷中とか)の窓を開きたい。
531 :
524 :2008/04/09(水) 00:39:09
・・・
馬鹿がバカをバカにするスレはここですか。
ググっても出てこなかったのですかが、 すでにデータが入っているComboBoxのデータを ほかのComboBoxにデータをコピーするやり方が 解りません。 エロい人教えてください。 バージョンは.NET Frameworks1.1です よろしくお願いします。
ComboBoxは配列だから配列ごとコピーすれば?
538 :
536 :2008/04/09(水) 16:01:01
>>537 虫が良すぎるかもしれませんが
コードを教えていただけませんか?
虫の居所が悪いので無視
Items.CopyTo で配列にして Items.AddRange で追加。
541 :
536 :2008/04/09(水) 16:58:11
タブコントロールのタブを三角形(というか台形)にすることは可能ですか?
>>542 継承して画像を貼り付ければできなくは無い。
それ以外でできるかどうかはわかんね。
オーナードロー
545 :
デフォルトの名無しさん :2008/04/09(水) 21:29:49
事故解決しました
CrystalReportについての質問です。 最近CrystalReportの使いかたをVB.netで勉強し始めた者です やりたい事としてはDataTable内にあるレコードを(単純に)リスト(一覧)表示 したいのですが、その方法が分かりません。 ***.rpc上にテキストボックスを配置し(パラメータフィールド)プログラムから 値を設定する方法は分かるのですが、(この)一覧表示の仕方が分からないのです。 何か参考になるサイト等をご存じの方がいらしましたらお教え願います。
548 :
デフォルトの名無しさん :2008/04/10(木) 19:01:28
別スレで話題にあがったのだが、VB.NETってSQLは必須知識なんですか? 知っておいて損は無いと思うけど。 知らないと駄目であると言われたんだが本当でしょうか?
550 :
デフォルトの名無しさん :2008/04/10(木) 19:31:43
>>549 すまぬ、初心者プログラーゆえ。Linqが何かわからない。
知りたいことは要するに、プログラマーとして最初にいきなり
SQLの知識が必要になるのか知りたいのである。
別スレで「SQLを知らない人はプログラマーにはなれない」と言うような
ことを言われたので本当かどうか知りたかったのです。
>>547 俺にはお前のしたいことがわからん。
絵にでも描いてこい。
必要かどうか自分で判断できないならやっとけば? 覚えといて損はないって自分で言ってるんだからプラスになるとは思ってるんでしょ
>>550 SQLはデータベースを操作する言語。
データベースってのはデータをためておくところ。
vbなどの普通のプログラム言語で作ったソフトにはデータは保存できない。
起動するたびに前回のことは覚えていないわけだ。
で、覚えてて欲しいことをどこかにおいておく必要があるわけだが、
それを貯めておくところの代表的なのがデータベース。
vbで使う場合は、データベースへSQLっていう命令文を送って、
データを入れたり出したりする。
vb以外の言語でもデータをアクセスするときに使えるので、
覚えておいて損は無い。
業務用ソフトを作る場合は覚えさせられるので
そんなに気にする必要はない。
>>550 truncate table にだけは気をつけろよ
555 :
デフォルトの名無しさん :2008/04/10(木) 20:17:14
>>551 >
>>547 > 俺にはお前のしたいことがわからん。
> 絵にでも描いてこい。
自己解決しました。
事故解決したんじゃなかったのか
リファラとか見てるんじゃねーの?
ネットワーク絡みのを作る際はパケットモニタお勧め
直で叩いてアクセスできないってことはリファラ見てるんだろ
ドンピシャ!! リファラすっかり忘れてました。 ありがとうございました
563 :
デフォルトの名無しさん :2008/04/10(木) 21:34:33
Visual Web Developer 2008でFxcopを使おうとしてるんですが WebサイトをビルドしてもDLLができません。 有償のVisual Studioを購入する必要がある?
youtubeの閲覧URLからダウンロードできるURLを調べるにはどうやったらいいですか?
htmやhtmlファイルを読み込んで特定のタグだけ削除したいのですが HtmlDocumentクラス以外にHtml関係のクラスってありましたっけ?
HtmlTextWriterなら
削除対象によっては案外正規表現あたりで何とか出来たりしてw
XmlDocumentとかでも普通に読めるんじゃないの?>HTML
XHTMLならともかく普通のHTMLは無理
570 :
565 :2008/04/11(金) 22:16:36
みなさんどうも。 一度WebBrowserで読み込んでHtmlDocumentクラスを使えば HtmlElementsとして操作できるんですが、ちょっとめんどくさいですよね。 正規表現でいこうかなぁ・・・
WebBrowserコントロールののクッキーって削除できるのでしょうか? 方法を教えて下さい
GetUrlCacheEntryInfo
VBでd3d扱ってるサイトしりませんか? とくにアニメーションを勉強したいんですがなかなか見つかりません。
C#読めばいいじゃない ほとんど変わらないのに片方しか使えないなんてもったいない
2008だけどreleaseフォルダとかに勝手に作られる.xmlファイルを作らなくする設定ってないですか?
3gpファイルから動画のサイズを取得する方法を知ってる人、教えて
3gpについてはよく知らんけど サイズってファイル容量とか画面の縦横の長さとか再生時間の長さとかあると思うが
縦横の長さ。 Using video As New Microsoft.DirectX.AudioVideoPlayback.Video(File) width = video.DefaultSize.Width height = video.DefaultSize.Height End Using これでとれました
579 :
デフォルトの名無しさん :2008/04/15(火) 22:57:03
初心者です。 非バインドでdatatableのフィールドに入っている値をdatagridviewに出したいんですけれど ぐぐっても良いサンプルが見つからなくて困ってます。 そもそもバインドと非バインドの違いが調べてもよく分からないです。 データテーブル(アクセスで作ってます)のフィールドに入ってる値を datagridviewに出すのはバインド? データアダプタを使うコードを書くのが非バインド? 明日までに非バインドでdatatableのフィールドに入っている値をdatagridviewに出すというのプログラムを 完成させないといけないので困ってます。 言語はVBです。どなたか教えて下さい。よろしくお願いします。
・DataTableからデータを取得 ・そのデータをDataGridViewに設定して表示 これを別々に書けば非バインド
>・DataTableからデータを取得 SQLとかでですか? >・そのデータをDataGridViewに設定して表示 どうやって orz でも考え方は分かりました。ありがとうございます。 何かサンプルないでしょうか?初心者でも分かりやすいようなサイトでもいいんですが。 さんざん調べたけどプログラムにコメントがないと それがバインドか非バインドかさえ分からないんです・・。
582 :
デフォルトの名無しさん :2008/04/15(火) 23:33:35
.NET VB 2005で、デバックのと時、呼び出し履歴はどうしたら表示できる?
>581 それはSQLからDataTableに入れるのは、TableAdapterでしょ。 DataTableをfor eachに食わせると、DataRowがグルグルでてくるから、 そいつらのメンバ一つ一つを、DataGridViewのCellとして追加しろ、って話 BindingSourceとかが出てくるのがバインド。一行一行ぐるぐるまわって 処理(登録)するなら非バインド。
584 :
デフォルトの名無しさん :2008/04/16(水) 00:14:59
>>583 なるほど。ありがとうございます。
でも書き方が分かりません。VBはまだソートしか作ったこと無いんです。
もうだめだ 明日中なんて
誰かたすけてくれ
>>584 学生なら自力でやれ
新社会人なら先輩や上司に聞くとかしろ
最低でもMSDN見るくらいはしろ
DataGridViewくらい簡単に使えるだろjk
また宿題丸投げか
>>585 上司なんて聞いても教えてくれないし5時間必死で調べたのに結果書き方さえ分からなかった。
俺が馬鹿なのは分かってる。
最初から最後までとはいかなくても、一部分でも書き方のヒントだけ欲しかった。
ここは質問スレだから最後の頼みと思って聞いた。
期限が来週ならここで聞かなかったさ。
書き方のヒント>サンプルで欲しかったということです。
VB DataTable でググれカス
ここを最後の頼みにしちゃダメだよw
>datatableのフィールドに入っている値をdatagridviewに出す grid.DataSource = table こんだけなのになあ。
例外でもないのに例外をスローするのがナンセンスな理由を教えてくれ
みんなが例外的なときにしか例外は投げられないと仮定しているから。 お約束というやつ。
>>591 それバインド
>非バインドでdatatableのフィールドに入っている値をdatagridviewに出す
C#でいう public T this[int index] { get{ return 〜; } set{ 〜;} } みたいなのってどうやるの?
ヘルプで既定のプロパティ調べれ
>>595 既定のプロパティにしてかつプロパティ名をItemにすると
C#のインデックサ互換になり相互に使える。
コンボボックスのボタン(▼のボタン)の幅を変更することは 可能なのでしょうか? 開発環境は、vb.net 2005です。
>>597 そうそう。君はそうやって人の言うことを聞いとくべきだよ。
中学生とは思えないほど稚拙な文章だったけど、面白かったよ。
どこへの誤爆だw
601 :
デフォルトの名無しさん :2008/04/23(水) 10:42:35
ウインドウを持たないシステムトレイに常駐する外部アプリを、一定の条件で終了させて再度起動させたいのですが、 強制終了(Kill)させると、システムトレイのアイコンが残ったままになります。 マウスポインタを当てれば消えるのですが、放っておくとアイコンがどんどん増えていきます。 なんとかいい対処法はないでしょうか? よろしくお願いします。
コピペ君って馬鹿だな、まで読んだ。
FlexGrid.netでセルに改行が入力できないようにするには どうしたらいいですか?
>>604 TextChangedかValueChangedのイベントで改行を削除するようにするとか
606 :
デフォルトの名無しさん :2008/04/24(木) 11:42:13
VB.netでアプリケーションの一覧を取得するPGを作成しています。
http://www.microsoft.com/japan/technet/scriptcenter/resources/wmifaq.mspx#ECPAC で以下のVBSのコードを発見したのですがこれを.net用で動くように変換したいのですが、、
知恵を貸してください。
strHost = "."
Const HKLM = &H80000002
Set objReg = GetObject("winmgmts://" & strHost & _
"/root/default:StdRegProv")
Const strBaseKey = _
"Software\Microsoft\Windows\CurrentVersion\Uninstall\"
objReg.EnumKey HKLM, strBaseKey, arrSubKeys
For Each strSubKey In arrSubKeys
intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _
"DisplayName", strValue)
If intRet <> 0 Then
intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _
"QuietDisplayName", strValue)
End If
If (strValue <> "") and (intRet = 0) Then
WScript.Echo strValue
End If
Next
608 :
デフォルトの名無しさん :2008/04/24(木) 13:12:36
うむ。同じだな。 まぁ、向こうの方がオレらより知識は上だし、 向こうで解決しなかった問題を ここの住人が答えられると思ったのか?
いや、単なるレジストリの値を取得するだけのことなんだが Dim rkey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Uninstall", False) For Each subkeyName As String In rkey.GetSubKeyNames Dim srkey As Microsoft.Win32.RegistryKey = rkey.OpenSubKey(subkeyName, False) Dim objRet = srkey.GetValue("DisplayName") If objRet Is Nothing Then objRet = srkey.GetValue("QuietDisplayName") End If If Not IsNothing(objRet) Then Console.WriteLine(objRet.ToString()) End If Next
>>606 は自分で考えようと言うつもりは全くないだろ
お前ら良く答えるな
611 :
デフォルトの名無しさん :2008/04/24(木) 14:04:29
意味不明・・・
知恵を貸してくれもなにも どこまで解釈していて、何が出来ないから解決するのに知恵を貸してくれってならわかるが この質問じゃ解答できるのエスパーくらいじゃないか?
613 :
デフォルトの名無しさん :2008/04/24(木) 17:53:13
まったく別のプロジェクトどうしで同じファイル(自分で作成した設定ファイル)を 参照したいのですが、VSで項目追加すると勝手にそれぞれのプロジェクトの フォルダにコピーしてきてしまいますよね?そうすると、結局別々のファイルを 参照してることになってしまうのですが、 VB6.0のときのように、プロジェクト直下に無いファイルでもそのまま参照して 使用できるように
ならないでしょうか? すみません、途中で書き込みしてしまいました。
>>613 「設定ファイル」なんかを参照設定する必要がどこにあるのか理解できません。
>>613 > まったく別のプロジェクトどうしで同じファイル(自分で作成した設定ファイル)を
> 参照したいのですが、VSで項目追加すると勝手にそれぞれのプロジェクトの
> フォルダにコピーしてきてしまいますよね?そうすると、結局別々のファイルを
> 参照してることになってしまうのですが、
> VB6.0のときのように、プロジェクト直下に無いファイルでもそのまま参照して
> 使用できるように
馬鹿じゃない?
617 :
613 :2008/04/24(木) 22:18:13
参照設定という書き方がまずかったですね。 具体的に言うと、App.configファイル内の接続文字列の設定を外部ファイルに 外出ししてるんですが、アプリケーションのプロジェクトとそのテストプロジェクトで この外部ファイルを共有して参照したいんですけど、 何かいい方法ないですかね。
そのファイルがプロジェクトに属さないといけない理由がわからない
>613 [プロジェクト]-[既存項目の追加]-[リンクとして追加]のこと? 既存ファイルを選ぶダイアログボックスの追加ボタンが コンボボックスみたいになっててそこで選べる
ソースセーフ使ってないの?
vb2008のコードvc#2008に自動コンバートできないの?
>>622 > vb2008のコードvc#2008に自動コンバートできないの?
簡単にやる方法がある。
でもおしえねー
自己解決しました
厳密でないデリゲート変換って何? どうやるの? わけわかんね
MSDNに懇切丁寧に書かれてるジャン
627 :
デフォルトの名無しさん :2008/04/28(月) 09:38:32
WebBrowserでの表示で、YouTubeのページを表示すると
どういうわけか、そのページ内のボリューム・バーやビデオの
プログレス・バーのつまみ、ビデオの開始、停止ボタンなどを
掴めるのが、最初の一回目だけになります。次にまた掴もう
としても掴めません。
ただ、一回他のFormやデスクトップをクリックしてFormのFocusを
一回外してからまた掴むと掴めます。
これをExplorerでのように普通に何回でも掴めるようにするには
どうすればいいでしょう?
例)吉野山 千本桜の全貌
http://jp.youtube.com/watch?v=RkQb85PVzS8 などで確認できます。
628 :
627 :2008/04/28(月) 09:42:57
すみません、訂正します。 >FormのFocusを一回外してから これは、正確には、 >ビデオ装置の画面のFocusを一回外してから のようでした。ビデオ装置の外を一度クリックすると 次に各ボタンやバーつまみが掴めるようでした。
WebBrowserのバグ。 COM参照でAxWebBrowserの方使う。
631 :
デフォルトの名無しさん :2008/04/28(月) 11:24:56
>>629 さっそくのご回答、ありがとうございました。
>COM参照でAxWebBrowser
わかりました、これの使い方を調べて試してみます!
掴めるよ。おまえらなにいってんの?
633 :
デフォルトの名無しさん :2008/04/28(月) 22:10:27
>>632 それは
>>627 の件ですよね、本当ですか!
だとしたら何かのプロパティの設定か何かの差でしょうか・・・?
その辺もしわかれば知りたいです。
635 :
デフォルトの名無しさん :2008/04/28(月) 23:44:48
>>634 うわー、こういう方法で直るのですか!!すごいです。
ありがとうございます!!これやってみます!!
とても助かりました、ありがとうございました!
bin/debugやbin/releaseに生成されるアプリケーション名.xmlを生成しなくするにはどうしたらいいですか
プロジェクトのプロパティ→ビルド→XMLドキュメントファイル
vb2008exp だけどその項目なかった
なんでこんなに泥棒されてるのにまだまだ税金くれてやるの???日本てなんなのorz
なんで役人に贅沢させるための税金分捕られて借金までつくってるわけ???
誰か答えろよ>腐れ国賊官僚と結託してうまい汁飲みだけで生きてる自民党の糞ども。
188 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2008/04/29(火) 12:20:25 ID:???
■ちゃっかり天下り退職ウハウハ元役人リスト■
以下のジジイだけでも総額44億1640万円!!!チーンwぜんぶ税金&年金だよw
●近藤純五郎(61歳)総合計5億3623万円 旧厚生省時代5億1148万円
(8423万円/年金資金運用基金理事長2475万円(371万円)
●丸山晴男(60歳)総合計4億5074万円 役所での報酬4億0200万円(6140万円)
/年金資金運用基金での報酬4874万円(732万円)
●丸田和生(57歳)総合計4億3640万円 役所時代3億8095万円(6998万円)
/厚生年金事業振興団常務理事5545万円(833万円)
●伊藤雅治(61歳)総合計5億3096万円 役所時代5億1033万円(6235万円)
/全国社会保険協会理事長2063万円(310万円)※伊藤氏は医師なのでキャリア官僚と同等として試算
●山下真臣(76歳)総合計8億0289万円 厚生省時代4億7135万円(8523万円)
/環境衛生金融公庫理事長時代2億0829万円(3127万円)
/全国社会保険協会連合会理事長7425万円(1115万円)/国民年金協会理事長4900万円
●吉原健二(72歳)総合計7億9238万円 厚生省時代4億8919万円(8588万円)
/厚生年金基金連合会理事長2億0419万円(3066万円)/(財)厚生年金事業振興団理事長9900万円(1486万円)
●加藤陸美(73歳)総額8億6680万円 厚生省時代4億0668万円(8588万円)/社会福祉・医療事業
団副理事長・理事長(1826万円)/公害健康被害補償不服審議会会長1億6138万円/健康力つくり事業団・
全国国民年金福祉協会理事長7712万円(1363万円)
(カッコ内は退職金)
ttp://www.janjan.jp/special/sagi/list.php
コピペ君って馬鹿だな、まで読んだ。
641 :
デフォルトの名無しさん :2008/04/29(火) 21:47:33
vb2005初心者です。 テキストファイルからデータを読み込むとき、 カンマで区切られているならInputで読めるところまで分かったのですが、 スペースで区切られているときはどうすればいいのか分かりません。 どうすればいいのか教えてください。
そんな旧時代の遺物は忘れてTextFieldParser
String.Split(" ")
いまどきVBAでもInputなんて使わないぜ・・・
645 :
210 :2008/04/29(火) 23:30:13
VBA自体ちょっとね
>>642 ,643,644
ありがとうございます!
早速挑戦します。
ここにいる人はみんなマルチスレッドとかデリゲートとかわかるの?
全員はそりゃ無理だろう
649 :
210 :2008/04/29(火) 23:56:58
なにもわかってないw
・・・
651 :
デフォルトの名無しさん :2008/04/30(水) 00:51:49
VB2005でClickOnceを利用してホームページスペースからユーザーにソフトを起動してほしいのですが、 実際に発行を行い、FTPに乗ったことを確認してPUBLISH.HTMの実行リンクをクリックしても ソフトは起動せずXMLのソース?が文字列でブラウザーに表示されるだけなんですがなぜですか? 解決方法教えてください
653 :
デフォルトの名無しさん :2008/04/30(水) 00:57:17
これはなあに?
>>641 右クリック→スニペットの挿入→ファイルシステム→区切られたテキストファイルの読み込み
RichTextBoxでh抜きのURLにもリンクを貼るにはどうしたらいいですか
h付け加えればいいよ
付け加えないと無理ですか
リッチテキストにそんな機能あったっけ?w
リッチだからな
660 :
210 :2008/04/30(水) 19:12:17
リッチはリンク張ってくれるね、 ワードと機能は殆ど同じのように思える
「ハードウェアの取り外し」を画面から行おうと思っています。 ググってみたらAPIを使えば出来ることまではわかったのですが、 APIの関数のヘルプ的なものが全く見つかりません。 (しかもC言語のページしか見つからない) MSDNにAPI関数のヘルプはないのでしょうか?
662 :
デフォルトの名無しさん :2008/05/02(金) 00:53:57
String の Replaceメソッドですが、これが効くときと効かないとき があるような感じなのですが、こういうことはあるものでしょうか? ユニコード文字列ではない場合は置換してくれないということなの かもしれないんですが、とくにエンコードは変更してはいないのですが、 同じ場面で以前に効いていたものが、最近効かなくなりました・・・ 同じコントロール上の入力値が、エンコード指定していないと勝手に 任意のエンコードになったりしてるんでしょうか??
実に日本語でおkと言いたくなる文章だな とりあえずエンコーディングなんて関係ない
>>661 Windows SDK
>>662 コード書いたほうが文章だらだら書くより回答もらいやすい
>>663 >とりあえずエンコーディングなんて関係ない
そうですか、わかりました、もう少し調べてみます。
ただ一応ヘルプによるとユニコード文字列の場合にとある
ようでした。
>>664 該当箇所は
sInfo.Groups.Replace(tn.FullPath & "; ", "")
のような感じでした。
代入しなおしてないと言うオチじゃなかろうな
メソッド書かれても答えようがない・・・ Stringに何がセットされてるのかが重要なんだが・・・
質問させて下さい。 Default.aspx上の「検索」ボタンが押されるとSqlCommandを使用して 次のデータをDataTableに取得し、DataTableの値をGridViewに表示 しようと思っていますがやり方がわかりません。参考になるサイト・もしくは コードをご伝授下さい。お願いします。 【DataTable内でのカラム名】 1.EMPLOY_NUMBER 社員番号 2.EMPLOY_NAME 名前 3.REGIST_DATE 登録日時 【教えて頂きたい事】 1.GridView上のカラムとDataTable上でのカラムを紐付ける方法。 →どうすればDataTataTable上のEMPLOY_NUMBERをGridView上の特定カラム<GV_EMPLOY_NUMBER> に紐付ける事が出来るのか。恐らくDataSource / DataMemberを使うだろうとは思います。 2.コード無いでGridViewにハイパーリンクを貼る方法。 →GridView上の社員番号(<GV_EMPLOY_NUMBER>)がクリックされると特定のページにジャンプする。
>>669 ありがとうございます。
私の説明が足りませんでした。
やりたい事は、検索ボタンが押されたタイミングで、
ASP.netで使用するリスト用コントロール [ GridView ](DataGridViewでは無い。)
にDataTableより取得した値を吐き出し(出力し)尚且つそのうちの1カラムに
ハイパーリンクも同時に付けるという事をコード(VB.net)側でやりたいです。
1※DataTabelへのデータの取得
2※GridView.Row(i).Column(j).text = "hoge"
として値の設定までは出来ています。
>>666-667 お世話になります。
「代入しなおしてないと言うオチ」
これでした、以前やったときは代入してあったのに今回は
忘れてました><。大変ありがとうございました。
>>651 クライアントに.netフレームワークはインストールされてる?
673 :
670 :2008/05/03(土) 03:31:27
自己解決しました。
674 :
デフォルトの名無しさん :2008/05/03(土) 08:04:09
675 :
デフォルトの名無しさん :2008/05/03(土) 08:05:07
binにいろいろ出来るけど配布する時はあれ全部配布せんといかんのかね interop.vbide.dllとか無くても動いてるみたいな気はするのだが
677 :
デフォルトの名無しさん :2008/05/03(土) 20:32:24
コンパイル済みのvbのtimerの間隔を伸ばせるツールってあったと思うんですけど、 ぜひ、ツール名教えて下さい。お願いします。
678 :
デフォルトの名無しさん :2008/05/03(土) 23:33:08
>>651 自己解決
鯖によっては使えないらしい
.htaccessで設定できるとこならいけそうです
VBを覚えようとVisualBasic2008ExpressEditionをインストールしました。 単にVBSを書きたいのですが、エディタだけ開くことにはどうすればいいのでしょうか。 フォームは要らないんです。
何か大きな勘違いをしていることだけはわかる VBとVBSは違う言語だけどどっちがやりたいの?
>>679 VB→VisualBasic2008Express
VBS→メモ帳
VBA→Microsoft Office
VBでフォーム無しアプリケーションを作りたい
→新しいプロジェクト作成でコンソールアプリケーションを洗濯
>>680 やはり勘違いしていましたか・・・
VBを覚えようとVBScriptサンプル大全集という本を買ってきました。
さて、やるべとVisualBasic2008ExpressEditionをインストールしたのですが、
プロジェクトとして作成することしかできません。←この辺も勘違い可能性大。
とにかくエディタでVBを書きたいのです。
だけど、関数を途中まで書くと候補が出てくる機能は使いたいんですよね。
ゴシゴシゴシ
/' ! ━━┓┃┃ -‐'―ニ二二二二ニ>ヽ、 ┃ ━━━━━━━━ ァ /,,ィ=-;;,,, , ,,_ ト-、 ) ┃ ┃┃┃ ' Y ー==j 〈,,二,゙ ! ) 。 ┛ ゝ. {、 - ,. ヾ "^ } } ゚ 。 ) ,. ‘-,,' ≦ 三 ゞ, ∧ヾ ゝ'゚ ≦ 三 ゚。 ゚ '=-/ ヽ゚ 。≧ 三 ==- / |ヽ \-ァ, ≧=- 。 ! \ イレ,、 >三 。゚ ・ ゚ | >≦`Vヾ ヾ ≧ 〉 ,く 。゚ /。・イハ 、、 `ミ 。 ゚ 。 ・
>>680 、681
何かいろいろ勘違いしているっぽい!!!
SolidWorksというCADソフトのAPI講習を受けてきました。
SolidWorksのAPIはVBで提供されているため、まずはVBを覚えなくてはと思い
VBScriptサンプル大全集という本を買いました。
すでにこの時点で間違っているのかも知れません。
この場合はどの本を買って、どの環境で勉強するべきなのでしょうか。
686 :
685 :2008/05/04(日) 00:30:10
質問するスレ自体が間違っている場合は誘導お願いいたします。
COMみたいだからVBSでもVB.NETでもVBAでもできるとは思うけど VB.NETでやるのはちょっと難しいよ
>>687 SolidWorksそのものの質問ではなく、このソフトのAPIを利用するために
VBを勉強したいと考えています。
そのためにはどの言語(VBS?VBA?すでにこれが分かっていません。)を勉強しなくてはならなくて、
どんな環境で勉強するのが望ましいのでしょうか。
>>689 SolidWorksのAPIをVBで使っている奴はこのスレには居ないだろうよ
>>690 この世に生を授かったためですかね。
2人の子供のためにも生き抜いて飯を食わしてあげなくてはなりません。
>>691 今はSolidWorksことはいいんです。
もちろん最終的にはSolidWorksを使用するのですが、今は単にVBの勉強がしたいと考えています。
>>692 VBSは違うみたいですね。
とりあえずVBと書いてある簡単そうな本を購入したのが失敗でした。
その講習会では関数(?)を途中まで入力すると、その関数の候補が出てきたり、
全部小文字で記入して改行すれば大文字になることでコーディングミスが発見できると言った環境で勉強したため、
同じ様な環境で勉強したいと考えました。
その講習にもう一回参加して、使っている環境を教えてもらえよ
その講習会の配布物にでも環境ぐらい書いてあるんじゃないの?普通。
>>693 この場合Excel VBAがいいんでね?
すでにPCにはいってるはずだし、コンパイルいらんし
まず標準モジュールにコード書く
ワークシートにテキストボックスを貼り付け、
右クリック→マクロの登録
でコードをそれに割り付ける
するとそのテキストボックスをクリックすると、
コードが実行される
てな感じで、外部dllの制御など調べるときよくやってるよ
VBA覚えといて損無し
ただ何の言語にしても少し習熟しないと
APIたたくのはうまくいかないと思う
インターネットのあるページを10分毎にリロードするようなプログラムってどうしたら作れますか?
その通り書けばいいよ
700 :
698 :2008/05/04(日) 16:19:14
>>699 その通りの書き方が分からなくて困っています。
リロードの仕方ってどうやるんですか?
画面の外へ向けて打て
703 :
698 :2008/05/04(日) 16:50:57
F5
705 :
デフォルトの名無しさん :2008/05/04(日) 18:47:33
流れを断ち切ってすみません。 帳票を作成するプログラムを作っています。 印刷ダイアログや 印刷の進行状況を表すミニウインドウ(1/2とか出てくるやつ) を画面中央に表示したいのですが、 どのようなコードを書けば良いのかご存知の方教えてください。 お願いいたします。
大抵の場合Rキーに割り当てられている
707 :
デフォルトの名無しさん :2008/05/04(日) 20:27:34
環境はVB2005です。 自分とはまったく関係ないところで、FireFoxが立ち上がっています。 それがアクティブになったときに表示中のURLを取得する方法はありませんか? 手詰まり状態です。 よろしくお願いします
手詰まりって何やったんだよw
>>707 立ち上がってるFireFoxのウィンドウハンドルくらいは取れるとこまでいったのか?
710 :
デフォルトの名無しさん :2008/05/04(日) 21:36:26
それはいきました。 URL入力部分のハンドル取得で文字列とってきたらいいんでしょうね。 ただそれだと火狐のバージョンチェンジなんかに対応できないなと… IEであればIEHTMLDOCUMEMTかなにかで取得できるらしいのですが、 火狐では諦めるしかないですか? 言葉足らずですいません
>>709 そんなの出来るんですか?
どうやってやるのか教えてください。
消防ばかりかよw
と消防がいっております。
>>710 バージョンチェンジに対応できないってどういう意味?
その方法ならもう出来てるってこと?
他の部分なら変わらないって保障でもあるの?
もうなにが言いたいのかさっぱりわからん・・・
上手く説明できないならソース貼れよ質問者さんw
716 :
693 :2008/05/06(火) 13:55:38
>>696 ExcelのVBAの本を買って勉強中です。
お忙しい中、親切にご回答いただきありがとうございます。
とても感謝しております。
WindowsSDKをクイックチュートリアル無しで参照したい場合はどのようにすればよいのでしょうか?
そんな『ムー』の読者投稿みたいな質問されても。。
<foo("")> Public Interface hoge 見たいな構文見かけたんだけど この < と > で括られてる <foo("")> ってなに?
>>719 アトリビュート(属性)とかアノテーション(注釈)とか呼ばれてるもので、
クラスやメソッド、アセンブリのメタ情報につける追加情報。
JITやランタイム、コンパイラ、その他の実行基盤が読み取って使用する。
thx アトリビュートとかアノテーションあたりでぐぐってくる
属性をいくつも使うと継続行だらけになってかっこ悪いな VBは行志向のコーディングスタイルだから仕方ないけど
VB2008(Standard)を使用しています。フォントについて質問です。 OS(Vista/XP)によってフォームのフォントを切り替えたいのですが、 VBのフォームに該当するシステムフォントはどこで取得できますか? Drawing.SystemFonts.DefaultFontやControl.DefaultFontはVista、XPともに MS UI Gothicでした。 Drawing.SystemFonts.MenuFontならばVistaの場合メイリオでしたが、 これはメニューのフォントですよね。 OSごとに切り替えてみえる方はどこから値を取得しているのでしょうか? それともVistaの場合→メイリオ、XPの場合→MS UIゴシックと決め打ちしているのでしょうか?
724 :
デフォルトの名無しさん :2008/05/07(水) 16:55:54
VB2005(Pro)でインスコせずに USB等から起動させるアプリを作成しました。 Frameworkが入ってないPCでは動かないのですが、 Frameworkが入ってないことが分かったらFrameworkを インスコさせることは可能でしょうか? また、どうすれば可能か教えていただけませんか?
>>723 SystemFonts.MessageBoxFont かな
>>724 いっそのことアプリのインストーラ付けたほうが簡単じゃね
A: 「金庫の中に鍵を入れてしまいました、その鍵で金庫を開けたいのです!」 B: 「他の鍵を使えよ」
A「自作映画をDVDに焼きました。Playerが無いお宅では見れないのですがどうすればいいですか? B「Playerも一緒に配ればいいんじゃね
コピペ君って馬鹿だな、まで読んだ。
>>724 >Frameworkが入ってないことが分かったらFrameworkを
>インスコさせることは可能でしょうか?
それを実現させるのはアプリケーションであることは分かるな?
そして、そのアプリケーションは当然Framework無しで動くものでなければならない。
どうしてもインストーラを作成したくないのならばCでネイティブアプリでも作っとけ。
732 :
デフォルトの名無しさん :2008/05/08(木) 09:53:05
質問があります。 現在、VB.net2003でクリスタルレポートを使用して帳票を作成しているのですが、 プログラムからテキストオブジェクトに値を入れその値をテキストオブジェクト内で縦方向に中央揃を行いたいのです。 横方向での中央揃はできるのですが縦方向がそうにもできないのでどなたかご助力のお願いします。
733 :
723 :2008/05/08(木) 11:30:37
>>725 ありがとうございます。
MessageBoxFontの値を使用したいと思います。
734 :
デフォルトの名無しさん :2008/05/09(金) 09:28:34
VS2005Proを使ってます。どういうわけか、あるときから「ツールボックス」 内の各コントロールのアイコンがすべて同じものになってしまいました。 (そのアイコンは背景が黄緑でキューブ積み木が飛んでいくような絵です) これを元の状態に戻すことができるでしょうか? よろしくお願いします。
リソース不足が原因かと。 コンベンショナルメモリーの空きを増やしましょう。
736 :
デフォルトの名無しさん :2008/05/09(金) 11:46:29
>>735 ご指導ありがとうございます!
>コンベンショナルメモリー
そうだったのですか!!、これについて調べてみます。
DOSの頃にしばしばやっていたことがWindowsでもあったとは・・・
もう忘れてしまったので、ググッてみます、ありがとうございました。
>>736 いや、ごめんなさい。嘘ですm(_ _)m
ツールボックス上で右クリック
ツールボックスのリセット
で如何でしょう。
for each みたいな形でenum xxxで列挙したxxxの全てを処理するって出来ない?
enum xxxで列挙したxxxの部分ってコレクションじゃなくて型名だぞ? For iでメンバのインデックス使って回せないか?
740 :
738 :2008/05/09(金) 16:31:59
今はxxxの配列作ってそれにメンバを入れてるんだけど この一手間がスマートじゃないっつーか面倒くさい
Enum.GetValues とエスパー
742 :
738 :2008/05/09(金) 17:27:36
おー、これこそ求めていたもの For Each x As xxx In [Enum].GetValues(GetType(xxx)) Next
743 :
デフォルトの名無しさん :2008/05/09(金) 18:37:28
>>737 >ツールボックスのリセット
このメニュー確かにありました!!
ただこれをするとネイティブでないコントロールが消えてしまう
とのことなので作業の区切り目の頃合を図ってやってみます。
貴重なご指導誠にありがとうございました!
vb.net(2003)で、 dllファイルの中に埋め込まれたファイルってのがあるみたいなんですが、 それをすべて元のファイルとして取り出す方法ってありますか?
>>744 Assembly.GetManifestResourceStream
Visual Stdio で、カーソル下の単語を検索するコマンドってありますか? 普通にF3を押下するだけだと、直近の検索結果で検索を始めてしまうのです。
選択するかキーワード中にカレットがある状態でCtrl+F
>>747 Visual Stdio にはそのような物はない!Visual Stdio にはなw
アプリの起動時間について、Windowsアプリ(VB.net)よりASP.netでブラウザアクセス した方が、全然速い気がするのはオレだけ? Windowsアプリだと各クライアントマシンが最初にアプリを呼び出す際にコンパイル が掛かる(その為に時間が掛かる)が、ASP.netだとサーバ側で既にコンパイルがされ ている状態(最初に別のユーザよりアクセスがされたタイミングで)だから速いと 勝手に解釈しているのですが、オレにの認識は正しいでしょうか?
>>751 もう一回アーキテクチャから読み直したらどうだ?
IDでないっていいよねw
わっふるわっふる
まずコンパイルの意味が分かっていない。
VB.NETはインタープリタ型ではない。
>>751 は感覚的には惜しい。
まあそんな印象でいいんでないの?
Windows Formsの描画よりブラウザの描画のほうがめちゃくちゃ速いって可能性も考えられる。
>>756 >
>>751 は感覚的には惜しい。
> まあそんな印象でいいんでないの?
分かった振りしたレスは良いから、
ちゃんとした解答をしろ
>>759 だから教えて欲しいならそれなりの言い方をしろって
>>760 >
>>759 > だから教えて欲しいならそれなりの言い方をしろって
じゃ、お願いですからあなたの叡智ある解答をお願い致します。
>761ではないけど俺も知りたい ASP.NETが早いように思える理由? ・プログラムがロードされている ・サーバ/ローカル双方でそれぞれキャッシュされる こんな感じだと思うのだけど、どうだろう。
VB2008で、アプリケーションの種類を「Windows フォーム アプリケーション」、 スタートアップオブジェクトを独自の「Sub Main」とし、 フォームを持たないアプリケーションを作成しています。 この場合、自アプリケーションのウィンドウハンドルを取得するにはどのようにすればよいのでしょうか? お分かりになる方、お教えください。 (見当違いかもしれませんが、) Process.GetCurrentProcess.Handleや Process.GetCurrentProcess.MainWindowHandleの値を調べましたが Spy++で確認した値と異なっていました。
ウィンドウがなかったらウィンドウハンドルがないのは当然だが。 message-only window でも欲しいのか?
>>756 インタープリタという言葉が出てくる時点で.NETFrameworkが分かっていない。
だから
>>759 のような突込みが入る
ListBoxの項目を終了時に保存しておいて、 次回の起動時に復元したいです。 TextBoxの場合はApplicationSettingsの PropertyBindingのTextを使ってできるのですが、 ListBoxの場合はどうすればいいのでしょうか?
↓のような感じでリードオンリーのテキストボックスにログ表示のように Messageを表示しているのですが、テキストボックスがフォーカスを 得ると上手くメッセージが表示出来ません。(入力待ちになるため) 当然といえば当然だと思いますが、コピー操作等はしたいため、何か良い 方法はないでしょうか。 Protected Overrides Sub WndProc(ByRef m As Message) Dim MSGwParam As String Dim MSGlParam As String MyBase.WndProc(m) If m.Msg = WM_KEYDOWN Then Select Case m.WParam.ToInt32 Case 49 MSGwParam = m.WParam.ToString MSGlParam = Convert.ToString(m.LParam.ToInt32, 16) Me.TextBox1.AppendText("Key = [1] WM_KEYDOWN :wParam = " & MSGwParam & " " & "lParam = " & MSGlParam & vbCrLf) Case 50 MSGwParam = m.WParam.ToString MSGlParam = Convert.ToString(m.LParam.ToInt32, 16) Me.TextBox1.AppendText("Key = [2] WM_KEYDOWN :wParam = " & MSGwParam & " " & "lParam = " & MSGlParam & vbCrLf) End Select End If End Sub
フォーカスがいかないようにすればいい
>>769 AppendTextしないで変数にもっておいたらだめ?
任意のタイミングでTextBox1.Textにログを代入するとか
>>770 それじゃコピー範囲の指定とかいろんな面で不都合が起こりそうだが
>>769 そもそもフォーカスもってても普通にAppendTextできると思うんだけど。
いや今確認したから間違いなくそのはず。
774 :
769 :2008/05/16(金) 07:43:22
WndProcでフォームに入力されたキーを拾っているため テキストボックスでは拾えないという事でしょうか?
>>773 テキストボックスにWM_KEYDOWNが流れてしまい、
769のフォームのWndProcにWM_KEYDOWNがやってこないので、
どうしたらいいのか、ということだと思う。
まあ769は質問の意図をもっと明確に表現すべきだな。 こういう人に限って自分が「エスパー召喚質問」をしてる自覚がなかったりするんだけど、 どう好意的に見ても意味不明だし、それが俺の読解力のせいとも思えないんだよね。
誰にでも分かるように要点絞って質問出来るなら こんな所で質問しないだろjk
お前馬鹿だろ こんなところだろうがどんなところだろうが、 質問内容が正確に相手に伝わらない限り何も始まりようがないと思うが。
VB2008では ビルドごとにビルド番号を自動インクリメントすることはできない?
テレパスでないのでパス
782 :
デフォルトの名無しさん :2008/05/18(日) 14:45:28
>>780 はないのですか? ちなみにExpressです
784 :
769 :2008/05/20(火) 11:43:13
ドライブ名(C:\)から、 そのドライブがUSB接続されているのかどうかを判断したいんですが方法が見つかりません。 WMIだと物理側の情報はとれるけど、それが論理ドライブのどれになるのか 結びつけることができませんでした。
>>785 なんか難しそう。
とりあえずDDKでもダウンロードしてサンプルコードあさるとか。
PublicでSharedな変数ってどういう用途で使うのが一般的ですか? 他人が作ったローカルのみで動くシングルスレッドのアプリを保守することになったのですが、 大量に出てきて戸惑っています。 今まで触ったソースにはほとんどstaticな変数って使わなかったので 何か意味があるのか、それとも単純に設計が悪いだけなのかが判断しにくいです。
普通はあまり使わないと思う。 主な用途はシングルトンパターン的なものを作るときか? まあたぶん設計が悪いんだろう。 VB.NETになって標準モジュールを使うなって言われたから 意味もわからずクラスフィールドやクラスメソッドにしてる可能性が高い気がする。
my.settingsの保存ファイルuser.configを任意の指定の場所で運用させる方法を教えて下さい
790 :
787 :2008/05/21(水) 18:58:36
>>788 全体的に見た感じではクラスをモジュールと同じと考えてるようなので
設計ミスだと思います。
自分が無知なだけだったらどうしようと思ってましたが、
根本的に作りなおすことにします。
ありがとうございます。
hashtableをxmlにシリアライズする方法ないですか? 直にxmlシリアライズ出来なくてもhashtableを保存してそのまま復帰させる方法であれば良いです
>>791 List(OF String)なんかのXMLシリアライズできる型に一旦変換すればよいかと。
>>792 Hashtableの中身はstringに限らないんです。
やりたいことはmy.settings内の設定値をxmlに出力したいので
>>793 設定用クラス作ってXMLに書き出せば?
やっぱりそれしかないですかね? あくまでmy.settingsを元にしたかったんですよ
ミジンコですいません。 Visual Basic 2008 Exp で作ったソフト起動するには .NET Frameworkのバージョンいくつ以上が必要か教えて下さい。 あと他に何か必須なものがあったらお願いします。
>>795 ん??
>>791 と
>>793 と
>>795 でやりたいことがみんな違ってますね。
hashtableやxmlがどうのこうのじゃなくて、my.settingsを
元に戻したいって事ですか。
それなら、user.configをバックアップしておいて、元に戻したいときに
上書き&My.Settings.Reload()で元通りになるかと。
799 :
798 :2008/05/22(木) 07:47:35
あ、元通りにしたいんじゃなくて「元にしたい」か;;;
勘違い。
でも、ファイルを開いてみれば分かるけど、設定はすでにXMLで
保存されているから
>>793 の事はすでに実現されていますよ。
設定を変更したいだけなら、XMLの操作は必要ないですし・・・
(その為のsettingsクラスですから)。
>>798 @my.settingsの値を任意の場所に保存→復帰をしたい。
Aそのためのアプローチとして設定値を全部HashTableにぶち込んでそれをシリアライズして保存しようとした。
Bしかし、hashtableはシリアライズ不可だった。
上のようになります。
>それなら、user.configをバックアップしておいて、元に戻したいときに
>上書き&My.Settings.Reload()で元通りになるかと。
そのアプローチも考えましたけど、保存先の取得法がわからなかったのと、
なによりexeと別の場所に保存することが嫌だったので断念しました
あとこれはもう妥協したんですけど、
settingsクラスは(というか設定クラスをシリアライズするアプローチは)難読化すると動作しなくなるので
一つのHashtableに設定値を放り込んでそれをシリアライズしたらいいかと考えたんですが駄目でした
setting.valueでなく、setting("value")で出来ればよかったんだけど・・・
あとiniファイルも考えたけど、sizeオブジェクトとか復帰させれなかったので
>>800 HashtableやDictionaryはそのままだとシリアライズできないのはご存じでしょうか。
List型を使用すればご希望のことが可能かと。
ArrayListでもいいかな。でも使ったことがないや。
>>801 エラー出たので調べて、出来ないことが判明したので
既知の代替手法がないかと思って質問しました。
key->valueで取りたいのでlistでは無理ですよね
シリアライズん時だけ載せかえりゃいいだろ DictionaryEntryのコレクション
みんな逆コンパイル防止のために.exe圧縮したりしてますか? なんか、.NETはフリーソフトでソース丸見えみたいなんですが・・・ どなたかいい圧縮ソフト教えて下さい
難読化でぐぐれ
string配列の上限をRedim Preserveで拡張したところ、当たり前ですが 新しい配列はNothingになってます。 このNothingをまとめて"0"にできないでしょうか。 データベースに移すので、Nothingは避けたいのです。 For〜Nextを使えば実現しますが、そうではなく ForEachメソッドでスマートに決めたいのです。
そもそもForEachメソッドてList(Of T)にしか存在しないが。自作メソッドなのか?
回答ありがとうございます。 Dim strData() as Stringと宣言しておくと、よくある候補に出てきたので 使えないかな、と思いまして。
使えるだろ、普通に
普通の使い方を具体例で示してくれると助かるのだが。
それだけでは条件がまったく足りないのでコードを示すことはできない 頑張って正規表現考えて置換すれ
コードも書かずに○投げする奴ってなんなの?
いや、違うな、「あ」とかも消えてるや・・・
Dim str As String = Text.Replace("
ttp:// ", "
http:// ").Replace("h
http:// ", "
http:// ")
とりあえず、上でいきます。
あと、リッチテキストボックスで、貼り付け処理のイベントは取れないでしょうか?
貼り付け処理をするときに、貼り付ける文字列に対して上の処理を行いたいのですが
それだと元々hhttpだったのまでhttpになっちゃうけどなー WM_PASTE
>>820 ならないよw
input : hhttp
temp : hhhttp
output : hhttp
>>820 メッセージフックしろ、と?
それしかないですかね
>>821 ごめん 違うパターンが頭を占めてた
フックて
クラス派生させてWndProcオーバーライドするだけじゃん
試してみてるけど、今メッセージフックって楽に出来るんですね ただ、ペーストイベント上手く拾えてないですけど
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) Const WM_CUT As Integer = &H300 'カット(P840) Const WM_COPY As Integer = &H301 'コピー(P837) Const WM_PASTE As Integer = &H302 'ペースト(P876) Select Case m.Msg Case WM_CUT Debug.Print(m.WParam) Case WM_COPY Debug.Print(m.WParam) Case WM_PASTE Debug.Print(m.WParam) End Select MyBase.WndProc(m) End Sub 上手く拾ってくれないのは、どこ間違ってますか?
richtextbox ではWM_PASTE こない・・・?
CreateRichEditOleCallback の使い方がわからない
OverridesしてIRichEditOleCallbackの自前実装クラスのインスタンスを返すの
Dim RichEditOleCallback As Object = Me.CreateRichEditOleCallback こいつただのオブジェクトで、煮ても焼いても食えない状況です
tabcontrolのタブ上にボタンを配置するにはどうしたらいいですか
オーナードローだが甚だ面倒なのでさっさとWPFに移っちゃいなよ
ひょっとしてTabAppearance.Buttonsのことかな?
超初心者です。二次元配列(例えば配列名pref)を宣言する際、 1 ○○県 2 ××府 3 △△県 … … のように1列目と2列目のデータ型が異なる場合には Dim pref As *** = {}の***に何を指定すればいいのでしょうか?
二次元配列を使わないのがベスト NoとPrefectureの2つのプロパティを持ったクラスの配列とかDataTableにする
Dim pref As Object
WebBrowserコントロールで、現在のページから GoBackでの戻り先が存在するか、またGoForwardでの進み先が存在するかを判断するにはどうしたらよいですか? 「戻る」「進む」ボタンを実装したいです。
CanGoBackとかあるだろ
ありがとうございました。
例えば、ListBoxにディレクトリ構成を表示させるとして・・ ListBox1.DataSource = System.IO.Directory.GetFiles("C:/", "*.jpg") こんな感じにしたんですが、表示されるとき、ファイル名ではなく そのファイルまでのアドレスが表示されてしまいます。 (C:/test1.jpgみたいに) ファイル名だけ(test1もしくはtest1.jpg)表示させるようにするにはどうすればよいでしょうかお願い致します。
System.IO.Pathクラスで変換
初歩的なことで申し訳ありません。 MSDNのクラスライブラリでBoolean構造体を見てみると >スレッド セーフ >この型のすべてのメンバはスレッド セーフです。インスタンスの状態を変更するように見えるメンバは、 >実際には新しい値を使用して初期化された新しいインスタンスを返します。他の型と同じように、 >確実なスレッド セーフを実現するには、この型のインスタンスを含む共有変数の読み取りと書き込みを >ロックによって保護する必要があります。 この表記が今一よく分かりません。 スレッドセーフなんだけど、確実なスレッドセーフじゃないから排他制御の必要がある??? 素直に読めば排他制御をしなさいって事なんでしょうけど、それなら最初の1文はどういう事なのかな。 これが構造体とクラスの違いって事なんですかね・・・プログラムの基本を勉強していないので、 今一良く飲み込めません。
共有変数の場合ってことじゃね
つうか、MSDNの珍訳を理解しようとする努力が涙ぐましい 俺は諦めた
MSDNはわざと分かり難くしてるんだと思う
エクスプローラ上でファイルをドラッグアンドドロップした 場合に、確認メッセージを出したいんですが、何か良い実装方法は 無いでしょうか。
それは自分のアプリからってんじゃなくてエクスプローラ間の操作のことか? なら無理と考えていいよ
>>848 エクスプローラ上で、です。
グローバルフックとかで何とかならないかと思って
色々ググってみたんですが、無理そうですね。
あきらめます。有り難う御座いました。
Sql Serverに対してパラメータクエリを発行する方法について質問させてください。 (かなり困ってます。。。) (ちょっと古いと思われるかもしれませんが) 現在DataAdapterをにパラメータ(@ or ? or :)を使用してSQL文を作成し Sql Server2005に対してクエリを発行し抽出結果をDataTableに格納しようとしているのですが <DataTable.Fille(DataTable)> パラメータを使用して実行する方法が分かりません。 Oracleの場合だと普通に「@」をパラメータにつけて Command.AddParameter("@hoge_param",char,"hogehoge") で値を取得出来ていたのですがSqlServerに対しては出来ません。 どうすればSql Server2005に対してVB.net(VB2003)からパラメータクエリを実行させることが出来るか コードを教えて下さい。 ※パラメータクエリを使わずに直接文字列をSQL文と連結すると正常にDataTableにデータの 取得が出来る事は確認しています。 【環境】 ・VS2003 ・VB.net(ASP.net) ・Windows Server 2003 ・Sql Server2005
動的にSQL分組み立てたらいいじゃん
>>851 Sql インジェクション(クロスサイトスクリプティング)対策に
どうしてもパラメータクエリを使いたいのです。
Oracleなら出来るのですがSql Serverに対してやる方法が分かりません。
自前でエスケープすればいいだろ
855 :
851 :2008/05/26(月) 21:55:03
>>853 >>854 自前でやりたく無いんです。
Oracleに出来るのにSql Serverではなぜできないのでしょうか?
ぐぐっても見つからないんですよね。
わがままだなあ 機能がない場合、自前でするしかないんだぞ
>>856 やっぱりSql Serverにはパラメータクエリは使えないんですかね?
しゃーないので古典的にVBf.net(コード)で組み立てて実行します。
※でもでもでも、知ってる人がいたら教えてください。
(明日のAM3:00位まではこっそりこのスレを除かせていただきます。)
出来ないはずはないのだが。ドライバはなに使ってるんだ? こんな感じだぞ。 categoriesAdapter.SelectCommand.Parameters.Add( "@CategoryName", SqlDbType.VarChar, 80).Value = "toasters";
>>857 SQLServerにパラメータクエリ投げるとか、VB6以来だなw
懐かしいw
普通はadapterの生成のときにGUIで追加するからね
>>858 多分それでいけると思います。
categoriesAdapter.SelectCommand.Parameters.Add("@CategoryName",SqlDbType.VarChar,80)
「80」の部分に値をセットすると勘違いしてました。。。
ありがとうございます。
>>859 >>860 面白いことに、今時VS2003で開発をしなくちゃならなくなっちゃたtんですよね。
VS2005ならTableAdapterとか色々使えるんだけど(無駄なコードが色々と生成されてしまいはするけど)
皆さんありがとうございました^^;
>>843 俺はこう理解している。自信はないけど。
Boolean型の変数xがあったとして、
x = x.Hoge(...)
のようなことをやるときに、
適切に保護すれば、次の2つのどちらかになることが保証できる。
1. Hogeが成功し、xが新しい値に書き変わった。
2. Hogeが失敗し、xは以前の値のまま。
保護しないと、それに加え次の状態になることがある。
3. Hogeが成功したが、xが古い値のままである。
Hogeが成功して終わっても、
戻り値が代入される瞬間まではxに古い値が入ったまま。
もし、そのときに外部から非同期例外が起こるとそういうことがあり得るはず。
それが問題になるならロックして保護しろということだと思う。
特定ドライブのCDトレイをOPENすることはできるのでしょうか? APIのmciSendStringを使用するとOPENはできるのですが、 ドライブを指定しないため、CDドライブが2つあると ドライブ名早い方のドライブが開いてしまいました。
webbrowser で再生中の動画3gpとかをプログラムから停止する方法を教えて下さい
事故解決 For Each obj As HtmlElement In WebBrowserEx.Document.Body.GetElementsByTagName("EMBED") obj.DomElement.stop() Next For Each obj As HtmlElement In WebBrowserEx.Document.Body.GetElementsByTagName("OBJECT") obj.DomElement.stop() Next
866 :
ami :2008/05/27(火) 20:02:55
Using parser As New TextFieldParser("c:\nipgp1.txt", _ System.Text.Encoding.GetEncoding("Shift_JIS")) parser.TextFieldType = FieldType.Delimited parser.SetDelimiters(",") ' 区切り文字はコンマ While Not parser.EndOfData Dim row As String() = parser.ReadFields() ' 1行読み込み For Each field As String In row field = field.Replace(vbCrLf, "CRLF") ' 改行をnで表示 field = field.Replace(Global.Microsoft.VisualBasic.ChrW(13) &_ _ Global.Microsoft.VisualBasic.ChrW(10), "CCCCC") field = field.Replace(vbLf, "LF") ' LFをnで表示 field = field.Replace(vbCr, "CR") ' CRをnで表示 field = field.Replace(" ", "_") ' 空白を_で表示 Console.Write(field + vbTab) ' TAB区切りで出力 CSV_OutPut(field + ",") Next Console.WriteLine() End While 今VB2005を使用して、CSVファイルの読み書きをしております。 そこでまず読み込みの部分で上記のようなコーディングをして いるのですが、改行コードを認識してくれません。 ちなみにテキストは あああ,あああ,あああCR+LF あああ,あああ,あああCR+LF のような形式になっております。 アドバイスの程よろしくおねがいします
>>866 ReadFieldsが改行の直前までしか読み込まないからじゃない?
初歩的な質問ですみません VB2005でDataGridViewにTableAdapterでテーブルを表示させているのですが レコードをDataGridViewで選択してテキストボックスに表示させるという処理のやり方を 教えてもらえませんか?
870 :
AMI :2008/05/28(水) 14:41:22
867さん ありがとうございました。 的確なアドバイスのおかげで、解決しました。 それと、DATAGRIDVIEWコントロールについてですが、 列をコードでいれかえることはできるでしょうか? AAAA BBBBB CCCCC を BBBBB AAAA CCCCC のようにグリッドに表示したあとに、コマンドボタンをおして 上記処理をしたいと思っております。 ご教授よろしくおねがいします。
>>870 カラム1の参照を一時変数に格納
カラム1=カラム2
カラム2=一時変数(元のカラム1)
とかでできるんじゃない?
余談だけど、TextFieldParserクラスなんて初耳なので調べてみたらVB名前空間なのねw
872 :
AMI :2008/05/28(水) 15:30:39
>>871 早速のアドバイスありがとうございます
下記のようなイメージでしょうか?
Dim aaa As DataColumn
aaa = DataGridView1.Columns(1)
DataGridView1.Columns(1) = DataGridView1.Columns(0)
DataGridView1.Columns(0) = aaa
873 :
デフォルトの名無しさん :2008/05/28(水) 23:49:50
初心者ですが、 つまらない質問ですが、みなさんVB.NETを勉強するとき何を参考にしました? やっぱMSDNですかね?
本ですね。 msdnはある程度基礎部分が理解してからじゃないと何言ってるか意味不明だった記憶が・・ って、俺の能力不足かw
MSDNは基本的に辞書。 教科書なしに辞書だけで勉強は難しいだろ。
まあ、ただ、特定の技術についてはそれなりに詳しく載ってたりもするんだよね。 どっちにしても基礎は出来てからだけど。
Webbrowserで画像閲覧中、画像のドラッグでスクロールする方法を教えて下さい
俺は比較的コンパクトに網羅してるマイコミでC#もVBも勉強したけど デリゲートとかマルチスレッドとか載ってる参考書って見たこと無いよ
MSのドキュメントはマジでアホ杉。
MSDNの翻訳サイト作ったらアクセス数がすごいことになりそう
それでもマシになったほうなんだよ 昔は嘘しか書いていなかった
>>881 今でもMSのサイトには結構うそが多い。
MSの社員ってキチガイが多すぎ
MSのフォーラムでたまに社員がレスすることあるけど 言ってること適当なときある
質問させてください。 MSDNライブラリって印刷したもの売ってないんでしょうか? リファレンス部分が欲しいんですけど。 辞書的な物って プログラミング Microsoft Visual Basic 2005 言語編でも買えばいいんでしょうか? よろしくお願いします。
あんなん印刷しきれるもんじゃないって
8万ページとかあったような… 今はもっと増えてるだろう…
8万人が1枚印刷すれば たった1日で終わるじゃん と釣ってみる。
壁一面に専用本棚か
Webbrowserで画像閲覧中、画像のドラッグでスクロールする方法を教えて下さい
広辞苑って何ページぐらいよ?
1K22-0867-0795-66M4-5322-4750-2C54
まるで炎があなたの髪で猛威をふるっているかのように、あなたは、毎日まで完全に自分をに集結して、奉納しなければなりません。 - Taisen Deshimaru
893 :
デフォルトの名無しさん :2008/05/30(金) 01:38:22
クラスの共有メンバの初期化はどうすればよいでしょうか? 具体的にはこんな感じなのですが、 Public Class Shareds Public Shared col As New Collection Public Sub New() col.Add(〜〜) col.Add(〜〜) End Sub End Class 当然NewはSharedsクラスがインスタンス化されたときに呼び出されるので 初期化の位置としてはおかしいです。 Shareds.colが始めに参照される時既に初期化された状態でありたいのですが どうすればよいでしょうか。
フォームで、 最大化・最小化ボタンは表示したまま閉じるボタンを非表示にしたいのですが どのプロパティを使えばよいのでしょうか?
非表示は無理だったはず 無効化なら「VB 閉じるボタン 無効化」
>>862 そっちは例外セーフ系の話かな?
>>843 はスレッドセーフの話だな。
基本的に4バイトを超える値の書き換えは、アトミックに実行できない。
64ビットマシンなら8バイトだがまあそれはおいといて。
で、例えばあるクラスのメンバにDateTimeのように4バイトを超えるメンバがあったとすると、
そのメンバを書き換えるのはアトミックにできないから、
例えば半分書き込んだところで別スレッドに切り替わってしまう可能性があるわけ。
マルチコアやマルチCPUのマシンでは、半分書き換えたところで別スレッドが読もうとするかもしれない。
※実際はキャッシュも絡むのでもっと話は複雑だが。
こうなると、スレッドセーフにするためには、そのメンバ全体が書き換えられるまで
他のスレッドがアクセスできないように保護しないといけない。
だから
>確実なスレッド セーフを実現するには、この型のインスタンスを含む共有変数の読み取りと書き込みをロックによって保護する必要があります。
となる。
ここでいう共有とは、複数スレッドで共有、複数スレッドからアクセスされる可能性がある、というような意味
ああ、
>>843 はBooleanか
Booleanなら単体ではアトミックに操作できるが、Booleanひとつだけじゃなくて
Booleanを含むいくつかのメンバがある場合、
メンバ全部をアトミックに書き換えることはできない。
そうすると、メンバのうちの一部だけ書き換えた、中途半端な状態が発生するので、後は同じ話。
899 :
893 :2008/05/31(土) 07:36:26
>>894 ばっちりです。
ありがとうございます。
>>862 >>897 >>898 詳しい解説有り難うございました。
この辺を、VB.NETを私より長くやっている友人に聞いてみたところ、
「理由はよく分からんが、VBなら共有変数は排他制御した方がええよ。
Boolean型といえでもスレッドセーフじゃないからね。」
との返答をもらって、MSDNの文には不可解さを感じつつ、とりあえず
納得してしまいました。
C#ですとvolatile修飾子なるモノがあって、それを付けることによって
問題が解決できるそうですが、VB.NETには残念ながらその機能が
ないとのことです。
いあ、volatileはまたちょっと話が違う…
902 :
843 :2008/05/31(土) 12:25:10
あれ・・・違うんですか;;; うーん、Boolean型がスレッドセーフなのか否か(=排他制御が必要か否か) を知りたかったんですけど、MSDNにはスレッドセーフだけど排他制御が必要 なんて意味わかんないこと書いてあったので混乱してしまいました。 そもそも、「スレッドセーフ=排他制御の必要なし」という認識が間違っていた って事なんですかね。
>>903 有り難うございます。
早速ブックマークさせてもらいました。
ざっと見てみただけで、まだ内容を理解できていませんが、
特に上のリンクの方は、ずばり知りたかった情報が載っているようで
凄く有り難いです。
こういう情報を自分で見つけられれば良かったんですが・・・感謝いたします。
905 :
843 :2008/05/31(土) 13:51:32
あとググっていたら、
「スレッドの同期を行わずに複数のスレッドから同じフィールドにアクセスする」
http://codezine.jp/a/article.aspx?aid=139&p=3#volatile こちらに自分が悩んでいたコードとそっくりなものがありました。
.NET Framework 1.0の話のようで、2.0ではまた変わってくるのかな??
新規作成したスレッドをループさせて、リソースを解放したいときに
Boolean型の判断でループを抜けるコードを書いていました。
Boolean型に悩んでいたので、とりあえず今はBoolean型の使用を止めて、
Thread.Abortでスレッドを止めるように書き直しました。
今回はリソースの解放が目的だったので、終了のタイミングは気にしませんので。
いやはや、マルチスレッドプログラミングって難しいです。
基礎をちゃんと勉強していないので、情報を仕入れる度に後から後から
コードを直さないといけない;;;
フラグを立てる、折るという操作なら、Interlockedを使うという手もある。
>Thread.Abortでスレッドを止めるように書き直しました。 悩んだ挙句最悪の結論に至ったわけか
.NET Framework 2.0ではvolatileつけなくても大丈夫にも思えるけどな。
>>903 やその他読むと。
まあ気になるならSyncLockしとけばすむ話だ、Abortなんて本末転倒もいいとこだ
VolatileReadやMemoryBarrier使ってもいいけど、実質SyncLockと比べてそれほど利点はない。
ちなみにVolatileWriteはなくても大丈夫。
あと、この辺の話題は結構間違った情報もあふれてるので、
あまり下手に記事とかを鵜呑みにしないほうがいい。
>>905 とりあえず
Private _bool As Boolean
Private Property bool As Boolean
Get
SyncLock(Me)
bool = Me._bool
End SyncLock
End Get
Set
SyncLock(Me)
Me._bool = Value
End SyncLock
End Set
End Property
ってすればいいんじゃね?
普段C#しか書かないとVBの構文ってなんか間違ってるのか不安になってくるなw
うん間違ってる
BackgroundWorkerの実装をみるとCancellationPendingにvolatileもlockも使ってないんだよな。 メモリモデル的にはOKなのだろうけどちょっと不安になる。
>フラグを立てる、折るという操作なら、Interlockedを使うという手もある。 あんまり意味ない気がする
>>911 まあ、
>メモリモデル的にはOK
てことなんだろうねやっぱり。
'クリップボード監視 Select Case m.Msg Case WM_DRAWCLIPBOARD Me.DrawClipboard() If CInt(Me.NextHandle) <> 0 Then SendMessage(NextHandle, m.Msg, m.WParam, m.LParam) End If Case WM_CHANGECBCHAIN NextHandle = DirectCast(m.LParam, IntPtr) If CInt(Me.NextHandle) <> 0 Then SendMessage(NextHandle, m.Msg, m.WParam, m.LParam) End If End Select こんな感じでクリップボード監視してるんだけど、 Me.DrawClipboard()処理が貼り付け時にも4度くらい走る状態です。 コピー時にのみ1度走らせたいんだけど、どうしたらいいですか
関係ないとこに突っ込むが >CInt(Me.NextHandle) <> 0 こりゃまずいんでないの?
WM_DRAWCLIPBOARDはクリップボード変更時に発生するので、他所で変更してたから4回走っていました。 My.Computer.Clipboard.SetText(tmp)でいじってました それは良いのですが コピー処理時のみを補足するにはどうしたらいいでしょうか
事前に下をやっているので、おおむね問題ないかと、(拾ったサンプルにあったので Me.NextHandle = SetClipboardViewer(Me.Handle)
WM_COPYが取れればいいんだろうけど、とれない・・・
おれ32環境だから無問題
たしかrichtextboxではwm_copyとか発生しなかった(WndProcでとれない) けど、グローバルフックすれば発生しているの??
>>920 近い将来不可解なバグで悩むことになるぜw
richtextboxのpasteってオーバライドできないの??
別なやり方でなんとかした
CreateObject("WScript.Shell").Popupを使って、何秒かおきに、メッセージBOXを表示させて自動で閉じたいのですが、 timerのなかでPopupを使うと、自動で閉じずに表示されたままになってしまいます。 自分でメッセージBOXを作って、それを表示させて閉じるしか方法はないですかね?
ファイルのMIMEタイプ取得する方法を教えて下さい
メッセージループが回ってると消すのが遅れたりすることがあるみたいだな > 自分でメッセージBOXを作って、それを表示させて閉じるしか方法はないですかね? の方がいいんじゃない
>>909 外部から参照できるオブジェクトをSyncLockするのはあまり良くない。そのケースなら問題なさそうだけど。
Privateな同期オブジェクトを作って、それをSyncLockしる。
930 :
デフォルトの名無しさん :2008/06/01(日) 12:07:57
エラーの原因が全然わからず、完全にハマッてしまったのでお助け下さい。 VB2008にてACCESS2000のテーブルをbindingしてDataGridViewに表示しております。 DataGridViewにてクリックした行のデータを各テキストボックスに表示させてます。 1列目は"ID"列でDataGridView上は非表示(プロパティで設定)。 最初にこのFormを開いた場合は特に問題なく動作しており、データ更新などやりたいことは 出来ているのですが、Formを×ボタンもしくはBackボタン(me.close処理記述)入力で戻り、 再度このFormに入りなおすと、GridViewの1列目の"ID"列が表示状態になっており、 コードで非表示にすると、GridViewから値を取得する際に例外エラーを吐いてしまいます。 (GridView.currentRows.cells.Item("列名").valueなどで値取得時にnull exceptionエラー) 今、手元にソースコードが無いので、上記のような説明になってしまいましたが悩んでます のでお願いします。
931 :
rt :2008/06/01(日) 16:45:16
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 'x2乗値を計算して、書き出すだけの問題 Dim intA, intB, intC, intD, intN1, intN2, intM1, intM2, intT As Integer intA = intB = intC = intD = intN1 = intN2 = intM1 = intM2 = intT = TextBox9.Text = 'この問題で使う関数は絶対値を求めるMath.Absだけ End Sub visual basic 2003 です。=の後に入る答え教えてください。
日本語も不自由そうだな
頭も悪そうだな
935 :
デフォルトの名無しさん :2008/06/01(日) 17:19:22
システムハンガリアンuzeeeeeeeeeeeeeeeeeeeeeeeeeeeee
936 :
930 :2008/06/01(日) 19:02:03
試しに新規のプロジェクト作成して、DataGridViewのプロパティで1列目非表示 にしてme.close後、再度、画面名.showdialogで画面に入ったら非表示のはずの 1列目が表示されてました。 現象再現できるのでバグっぽいのですが対処法があれば教えてください。
>>936 何回やっても再現できないんだけど試したコードは書けないの?
938 :
930 :2008/06/01(日) 19:46:55
>>937 今テストした際に記述したコードは
初期画面のclassにてボタンクリック時処理 現象発生画面.ShowDialog() ←これしか書いてません。
処理の流れとしては
1.初期画面から現象発生画面に飛ぶ
2.現象発生画面にてDataGridViewにDBのデータが表示される(1列目はプロパティによって非表示設定済みの為表示されない)
3.×ボタンで現象発生画面を閉じる
4.再度現象発生画面を開く
5.DataGridViewの1列目が何故か表示されている ←いまここ
といった感じです。
この後、コードでcolumnに対してvisibleかけるとDataGridView.currentrow
に対する処理で例外エラーを拾ってしまいます。
会社と家の違う環境で試して同様の症状なので再現は可能だと思います。
どうか解決策を!!
どっちでやっても再現できない DataGridViewはColumn0〜2で0のVisibleプロパティをIDEでFalseにしてある VisibleプロパティをForm2_LoadイベントでFalseにしても再現できなかった Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click Dim f As New Form2 f.ShowDialog() End Sub End Class Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click Form2.ShowDialog() End Sub End Class
940 :
930 :2008/06/01(日) 20:13:20
>>939 再現できませんか・・・何故だろう。
自分は100%の再現率です。
何度Form2に入っても1列目が表示されることはありませんか?
VBのVersionが関係あるのかもしれませんね。
自分の環境は以下の通りです。
Microsoft Visual Basic 2008 ExpressEdition
Version 9.0.21022.8 RTM
Microsoft .NET Framework Version 3.5
941 :
デフォルトの名無しさん :2008/06/01(日) 20:29:46
VB初心者ですが、質問です。 Express editionで勉強しようとしてるのですが、 2005と2008の違いがわかりません。 2005でできなくて2008でできることって何でしょうか? 自分のパソコンはメモリーは224MBですが、2008を使ったら 重すぎますか? どちらをつかうほうがいいでしょうか?
2008の方が軽い わざわざ2005を選ぶ理由はない
943 :
デフォルトの名無しさん :2008/06/01(日) 20:42:42
>>942 マジですか?マイクロソフトのシステム要件を見ると、
2008は最低192MBで推奨が約300MB以上で、2005の推奨は256MBとなってるけど、
これはあてにならないんですかね?
Windows Liveも推奨スペックがあてにならなかったのですが。
224Mでって自殺レベルだぞ。 もう我慢の限界、やっとこさ動いてる、で512MBくらいじゃないか? 何とかまあ動いてる、で1G そこそこ動いてる、で2G くらいじゃない?いやまじで。
945 :
デフォルトの名無しさん :2008/06/01(日) 20:58:29
>>944 そんなおおげさな。VS2005を試しに使ったけど初学者がやる程度なら224MBでもそこそこ使えましたよ。
946 :
デフォルトの名無しさん :2008/06/01(日) 21:02:48
昔メモリ256のしょぼいノートPCで仕事してた時、 ビルドに1時間以上かかって切れそうになったことあるw
>>945 224MBって空きメモリの事?
256MB搭載:あり得ない、てか動くのか?
512MB搭載:ぎりぎり動作、かなり重い
1GB搭載:ちょっと重い、場面によってはフリーズ
2GB搭載:普通に使える
3GB搭載:快適、これが本来の動作なのかもしれない
2GBでメモリ使い果たしてる事なんてないけど、それ以上 増やして早くなるなんてあるの?
950 :
デフォルトの名無しさん :2008/06/01(日) 22:12:21
うそばっか書いてるといつかバチがあたるぞ。
951 :
947 :2008/06/01(日) 22:17:22
今まで1GBで使っていてデータセットデザイナが激重でたまに落ちたり メモリが安かったから4000円で1GB2本買って検証した結果
2GBと3GBの比較はしていないという事ですね。わかります。
953 :
947 :2008/06/01(日) 22:24:49
>>952 元々ついてたのが512MB2本
1GB2本購入
後は分かるな?
954 :
930 :2008/06/01(日) 22:27:26
何でもいいから私を助けてください。神様。
コードも書かないで助けてくださいって馬鹿なの?
957 :
デフォルトの名無しさん :2008/06/01(日) 23:19:38
vb.netでテクスチャの白い部分だけを透明にしたいんですが いくらネットで探しても情報がないのでわからなくて困ってます。 どなたかわかる人いたら教えてください。 よろしくお願いします。 ちなみにdirectxのバージョンは9です。
958 :
デフォルトの名無しさん :2008/06/02(月) 00:17:33
Click Onceの戻し方を教えてください。 環境 VisualStudio2005 VB .NET 更新の確認は、起動前に更新のチェックを行っております。 Click Onceを発行してVer1.2.0.1がクライアントにインストールされた状態で、 Ver1.1.0.1に戻す方法を教えていただけないでしょうか? @ITに書いてあった方法ではクライアントの方で新しいVerではない為 蹴られてしまいました。 板違いの場合は正しい板を教えてください。 そちらに参ります。
ListViewをクリックしたときにイベントを発生させたいのですが、 ListView.clickだとListView上の行をクリックした時しか反応しません。 行以外のスペースをクリックしてもイベントを発生させるには どのイベントを使えば良いのでしょうか?
>>961 ViewプロパティはDetailsにしています。
タッチパネルマシンで動かすので、行クリックではなく
ListViewのエリアをクリックすれば動作するようにしたいのですが・・・。
963 :
961 :2008/06/02(月) 16:45:16
>>962 ListView.MouseDownだとダメ?
964 :
960 :2008/06/02(月) 17:57:14
>>957 カラーキー
Managed DirectXならTextureLoader.FromFileのcolorKeyという引数に
Color.White.ToArgb()を渡す
2008でプログラム組んでるところなのですが、 デバッグ実行で開始して、フォームを閉じて終了した際、 IDEのデバッグ開始のアイコンが灰色のままになっています。 おやっと思って、マウスのポインタをデバッグ開始アイコンの 上に持っていくとちゃんと緑に戻ります。 他のアイコンもデバッグ実行状態の表示のままです。 何だかツールバーの表示の更新が止まっているようなのですが、 気にしなくていいんでしょうか。 ちなみにIDEのウインドウサイズを変えると全て元に戻るのですが...
>>958 クライアントで修復だっけ?するだけじゃないの?
それか、Ver1.2.0.1の次のバージョンとしてVer1.1.0.1を発行するとか
968 :
930 :2008/06/03(火) 00:14:59
>>955 DataGridViewを設定した画面を2回開くと現象が発生するんです。
コードを記載するので助けてください。
Public Class Form2
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
現象発生画面Frm.ShowDialog()
End Sub
End Class
絶対舐めてるだろw
軽いジョークということにしておこう
972 :
930 :2008/06/03(火) 00:59:16
舐めてません。 今、急遽テストで作ってみたんですが同現象発生するんです。 1列目のID列はDataGridViewのコントロールを右クリックして「列の編集」 からvisible=falseを設定しました。 データベースはAccessでもSQL Serverでも同現象。 適当に主キーのIDとテストという列を作って試したんですが同現象発生してます。 DataGridViewが設定されている画面を2回起動すると1列目が復活してしまいます。
じゃあそのテストをさっさとうp
974 :
930 :2008/06/03(火) 01:09:11
>>973 だからマジで入れたコードは968だけです。
単純すぎてバグなんじゃないかと思ってるわけです。
>>974 まずうpることから始めようぜ
会話にならん
976 :
930 :2008/06/03(火) 01:12:58
プロジェクトごとさっさとうp テストなら問題ないだろ
978 :
930 :2008/06/03(火) 01:21:19
979 :
930 :2008/06/03(火) 01:41:03
>>979 2008持ってないからわからないけど、
>>936 のソースはないの?DBとバインドしてなかったらどうなるの?
一回目はよくて二回目はダメって事は前の何かが残ってるんじゃないの?
>現象発生画面Frm.ShowDialog()
じゃなくて
dim f as new 現象発生画面Frm()
f.ShowDialog()
にしてみたら?
981 :
930 :2008/06/03(火) 02:33:56
>>980 おお!!問題なく表示されます。
すごい。
何が悪かったんでしょうか?
普通はインスタンス作成しなきゃいけないんですかね?
スピンボタンを押した時に、自作関数を呼び出してスピンボタンのvalueを加算したいのですが Private Sub NumericUpDown_ValueChanged内で関数を呼び出すと、関数内で Dim hogehoge As Decimal = NumericUpDown1.Value + NumericUpDown2.Value + NumericUpDown3.Value という風に表記した場合、何故かボタンを2回クリックしないと値が増減しなくなりました(2回押して1増減する) これはどういう事なんでしょうか・・・?
985 :
デフォルトの名無しさん :2008/06/03(火) 11:38:01
ローカルDB接続で作成したアプリをネットワーク上において 複数の人間が扱えるようにしたいんですが、 DBの排他制御はどのようにすればよいのでしょうか? 複数で使う場合はリモートDB接続すべきでしょうか(EXPRESSしかないから出来ませんが・・・)
>>985 ローカルDB接続/リモートDB接続というのは何のことをいってる?
SQLServer 200x Expressを使ってるなら、単に通信プロトコルの違いくらいで
排他制御の方法に違いはないはず。
済みません、各フォームの値の保存にpropertybindingを使うと、簡単に値が保存できますが この値が保存されているuser.configを、実行ファイルと同じディレクトリに置く方法はありませんか? 実行ファイルを他のディレクトリに移動すると、値がリセットされてしまい困っています。
textbox1 , DataGridView , textbox2があって、順にタブキーでフォーカス移動すると textbox1のvalidatedイベントがDataGridView から textbox2に移動したときに2回連続で発生するんだけど validatedイベントてtextbox1 から DataGridView にフォーカス移動したときには起きないもんなの?
webbrowserでポップアップウインドウを抑止する方法を教えて下さい。
990 :
デフォルトの名無しさん :2008/06/03(火) 21:57:02
VB2008ExpressEditionを使ってるんですが、 ちょっと操作してると、タブを切り替えたり設定からMy.Settingの変数を追加したりすると 時々異常なほどCPUが重たくなって、酷い時は数分操作不可能になります。 PCのスペックはC2DE6600+メモリ7GB(うち4GBをRamDisk)なので、足りないという事はないと思うのですが これはどうにかならないんでしょうか
992 :
デフォルトの名無しさん :2008/06/03(火) 22:41:05
読み取り専用のチェックボックスにチェックが入ったファイルを 読み取り専用じゃなくすにはどうしたらいいですか?
993 :
デフォルトの名無しさん :2008/06/03(火) 23:00:22
AxWebBrowserコントロールのリファレンスってどこにあるんでしょう ググってはいるのだけど… というかケツを表示しててSuspendLayoutしてるのにRefreshすると一瞬頭を表示してから またケツまでスクロールして非常に鬱陶しい 他にやり方あるんでしょうか?
そういうのはサンプルを示してくれた方が解決が早いと思うよ。
つかIEだってそうじゃん?
997 :
デフォルトの名無しさん :2008/06/04(水) 17:05:17
VB2005をインストールする時に付属されるSQLServerを利用していて、 データベースの内容をホームページに反映し、ユーザー側から条件検索できる機能をつけたいのですが、 そういったことを実現するに当たって必要な技術、知識は何でしょうか? また、それに関して参考になるページがありましたら紹介してください。 ホームページは自鯖ではなくレンタル鯖を使っています。 板・スレ違いかもしれませんが許してください。
人に聞くスキルが足りないようだね
>>997 ライセンスについてもう一度確認しませう
1000 :
997 :2008/06/04(水) 17:43:08
>>998 すいません。
>>999 >VB2005をインストールする時に付属されるSQLServerを利用していて
への突っ込みですか?機能実現に対して関係あるのでしょうか?
今見直してみてます。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。