>>1乙。
この機会に、テンプレを新着情報を巡回してみるかな。
西京味噌乙
>>11 うお、これおもしろそう。(w
残業禁止っつーのに帰らないやつの本体に、タイマーシャットダウン
を仕込んでおこうかな。
>>12 悪用厳禁です。うそです。
>>13 どもども。新サイト全然探してないから
新鮮だわさ。ありがたや
ちびりながら書き換えてみた記憶が・・・。戻したけど。
グローバル変数はどこに定義すればよいですか?
OOPを勉強してね。
「初心者です」とか書く奴はスルー方向で。
なんとかパターンを使えばいいのか。
ところでリストビューのレポートタイプで
1行に2行表示する方法ないですか?
釣りは釣堀でやってくれい。
24 :
デフォルトの名無しさん:05/01/25 13:09:20
datagridコントロールのセル内に画像(picturebox?)を埋め込むことは可能でしょうか?
可能でしたらその方法をご教授ください
質問です。VB.NETは飽きたのでC++にしようと思います。
BuilderとVisualどっちがいいですか?
テキストボックスに何も入力しないで
ボタンをクリックしたら、メッセージボックスを
表示させて、OKのクリックで、再びそれ以下の処理は
せずに入力画面に戻りたいのですが、そのようにIfから抜け出すには
どうすればよいですか?
>>27 If テキストボックス = vbnullstring Then
msgbox メッセージ,,メッセージ
exit sub
End if
これじゃ駄目なわけ?
Validate関係のイベントで処理だな。
マイドキュメントに、テキストファイルが作成されたら
イベント発生したいのですが、ファイル名指定なしで
なにかテキストファイルができたら、発生させたいです。
If System.IO.File.Exists("Z:\MyDocuments\*.txt")
とやってみたのですが、うまくできず、
なにかファイル名指定なしの方法はないですか?
System.Watcher以外で。
マイドキュメント内のテキストファイル数を監視すればいいんじゃねーの。
>>32 そうですね、それやりたいんですが調べてもなかなか
なくて・・・・
>>33 プログラム開始時にスレッドを立ててループで回し、
マイドキュメント内の拡張子数を
カウントして拡張子数に変動があったらイベント発生するような
プログラムを書けばいいんじゃないかね?
何を基準に「よりいいもの」なのさ。
フィーリングでお願いします。
>>34 「カウントして拡張子数に変動があったらイベント発生」
ん〜んこのやり方わかりませんでした、教えてくれませんか?
>>39 細かい制御がしたいのでExcelはちょっと
41 :
デフォルトの名無しさん:05/01/25 16:41:54
姑息な手だけど
VB6のコンポーネント突っ込む方法もある
タダで( ゚Д゚)ウマー
金ならあるので
>>38 34じゃないが、もしかしてマイドキュメント内のテキストファイルの数を調べる方法がわからないのか?
わかっていれば、34の説明で十分わかるぞ。
44 :
デフォルトの名無しさん:05/01/25 17:26:06
Windows2000,VB.NETで入力フォームを開発しています。
ボタンを押したらその横にMainMenuコントロールのようなものを表示させて、
マウスで選択できるようにしたいのですが、うまくいきません。
それ専用のコントロールもしくは実現する方法はないでしょうか?
Windowsのタスクバーにあるスタートボタンがそのものズバリなのですが…
コンボボックスやツリービューで作成したところ、却下されました。
お教えください、宜しくお願いします。
ContextMenu
46 :
デフォルトの名無しさん:05/01/25 17:48:16
>>45 即レスありがとうございます。
つまりContextMenuをボタンクリックで表示して、
かつFormか何かに固定してふらふらしないようにする
とかなんかそういうことでしょうか。
とりあえずやってみます。
何が分からないのか分からない。
マイドキュメント内のテキストファイルの数を調べる方法です
System.IO名前空間をじっくり眺めろと。
マイドキュメント内のテキストファイルの指定がわからないと・・・
"Z:\MyDocuments\*.txt"じゃいかないので
どう書けばよいのかと??
読みましたが、わからなかったです・・・
メンドクサイならDIR使え。DIR関数で検索すればすぐわかる。
55 :
デフォルトの名無しさん:05/01/25 20:25:33
常駐プログラムでフォームをロード時に非表示にし、タイマーイベントをスタート。
10秒毎にフォルダを監視して、フォルダ内にファイルがあれば処理をする、というプログラムを作りました。
土曜日に起動しっぱなしで帰って、月曜の朝にテストとしてフォルダ内にファイルを入れて見ましたが処理してくれません。
一度プロセスを切って、再び立ち上げたところ処理してくれました。タイマーが止まったのでは?と考えています。
タイマー処理自体は非常に単純なロジックなので、これが止まるとは思えなかったのですが、、、
Windowsフォームのtimerコントロールが止まってしまう条件って知っている方いますでしょうか?
ちなみに現象は一度きり、再現しません。
対象OSはWin2003Server、処理としてはファイル内のデータを別のPC(OS:Win2003Server)のSQLServerに登録して
ファイルを別のフォルダに移す、というものです。
次(
>>55?)にタイマー周りのソースを書きます。
56 :
デフォルトの名無しさん:05/01/25 20:27:41
Private Sub DummyForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
〜略〜
'タイマー起動。
Me.UpdTimer.Interval = 10000
Me.UpdTimer.Enabled = True
End Sub
Private Sub UpdTimer_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles UpdTimer.Tick
Me.UPDData()
End Sub
Private Sub UPDData()
Dim fs As String()
Try
〜処理〜
Catch ex As Exception
Exit Sub
Finally
End Try
End Sub
ある時点から毎回例外を投げるようになっただけじゃないの?
>>55 なんかやることの順番というか、目の付け所が全てにおいて狂ってる気がする。
俺なら〜処理〜の部分、とくにそこで例外が発生した場合の
処理を真っ先に疑うけど。
ていうか、本当にタイマーが怪しいと思うなら
(まったくナンセンスでありえないと思うが。。)まずタイマの動作が
目に見える簡単なコードで確認するでしょ?
そんなこと人に尋ねてどうすんの?
>>49 ファイルシステムオブジェクトを使った場合、
Filesコレクションでフォルダ内のファイルを取得できます。
それからif文を使ってGetExtensionNameコレクション(拡張子を調べる)で
判定。
同じ拡張子(txt)だったらあらかじめ作っておいた変数に
ファイル数をインクリメント。
これでファイル数のカウントが出来ます。
VBSでもあるまいに、なんで.NETでFileSystemObjectなのかと。
ああこれが過去の遺物という奴か。
Test1(アセンブリ名).Form1 型を System.Windows.Forms.Form 型に
変換するにはどうすればいいのでしょうか。(引数に渡す)
Option Strict OffにすればOKなんですが、これだけの為に
on にしたくないんです・・・。
質問があるんですが、
ミリ秒単位である処理をくりかえしループするというような
物を作るとき、時間制御に使うのはやっぱりタイマーコントロールですか?
それともスレッドをスリープさせた方が精度は高いのでしょうか?
一番いいのはAPIかと思うのですが、よく分からないので・・・
どれが一番いいのでしょうか?
System.Timers.Timer使え。
と前スレで何回言った事やら。
>>64 もしよろしければ、簡単なソースを教えてください。
初心者なんで良く分からないです。図々しいお願いして
ホント申し訳ないです。
ヘルプなりMSDNなり見ろよ……。
>>63 前スレでも同じこと聞いてたでしょ?
だからミリ秒単位で処理する必要があるってのは君の思い込み違うの?
どんなことしたいか知らないが、バッファリングしといてまとめて処理で
普通は必要十分でしょ。
ていうかWinのタイムスライスってデフォで20mSec位だったはずだから
mSec単位でイベント処理ってのは普通には出来んよ。
少なくとここんなとこで質問してるレベルの人には無理だわさ。
>>65 System.Timers.Timerなんて
コントロールなんだから、プロパティ画面が出ますよ。
親切にメソッドの説明まで書いてあるんだし、分かると思いますよ。
それを見てもわからなければMSDNで調べたほうが良いかと。
まずはソースを見るよりも自分で調べてみるべきではないでしょうか?
自分の自分で調べることをしないとスキルアップになりませんよ。
>>67 そうですね。。ちょっと僕には難しいかもしれないですね。
まぁこれから努力して学んでいきたいと思います。
とりあえず、
>>67さん、
>>64さん、有難うございました。
頑張ってみます。
>>68さんの言うとおりMSDNで今調べてきました。これからも頑張っていきたいと
思います。有難うございました。
今の今まで調べなかったその腐りきった根性はもはや賞賛にすら値する
わたしにも、どなたかご教授を・・・。 orz...
却下します。
CType
>>76 うをー。神様ありがとうございました。
こんなに簡単だったとは・・・。
Buttonを押したらContextMenuをその下に表示したいのですが、どうすればいいのでしょうか?
Showメソッド
別に特定のコントロールのContextMenuプロパティに入れとく必要もなかったり
ContextMenu.Show(Me, New Point(ボタン名.Location.X, ボタン名.Location.Y + 移動する間隔))
でするとちょうど良く出来ました。
>>79さんありがとうございました。
MDIブラウザで子ウィンドウから新しいページを開く場合(例:右クリック→開く)、
別の子ウィンドウに移すにはどうすればよいでしょうか?
e.〜ってのは覚えているのですが、ソースをなくしてしまって分からなくなりました。
追記:VB.NET質問スレ (Part6) に書いてあったような気がします。
.Net Managed Provider for Oracle を使ってアプリケーションを作った場合
このアプリケーションを配布するときはこれをインストールする
必要がありますか?
>>84 これって.Net Managed Provider for Oracleのことか?
86 :
デフォルトの名無しさん:05/01/26 13:30:11
Compact Framework でPDA用アプリを作成しています。
Form上のボタンクリックで指定サーバの指定フォルダ以下にある
画像ファイルをFTPでダウンロードすることは可能ですか?
方法をご存知の方いらっしゃいましたらご教授ください。
お返事ありがとうございます。
>>57 サブクラスなどの例外は全てcatchしてアプリが止まらないことを前提に処理をしているので、
毎回例外を投げているのならば、せめてプロセスのCPUが動いていてもいいのですが、まったく処理していないんです。。。
一応全クラス全メソッドのcatchをロギングしてみたのですが、これといって以上もなく、正常処理後、タイマーが止まったとしかいえない状況でして。。。
>>58 他のクラスの例外は処理していますが、万が一UPDData()まで上がってきたとしてもcatchしてExit sub してあります。
つまり、10秒後には同じロジックが通らないとおかしいわけです。
もしそれでも例外の処理がおかしいのならば、Winフォームなのでシステムエラーメッセージなりなんなり出ても良いと思うのですが。
ていうか、ナンセンスでありえないことだからこそ聞いてるんですが。
簡単なコードで再現するのなら「現象は一度きり、再現しません」なんて書かないです。
またDB操作でトラブりました。orz
主にDataGridで編集してるんですが、CommandBuilderで生成した
SQLを使って、DataAdapter.Updateを使いファイルに書き戻しを
しています。
このとき、「追加だけ」や「削除だけ」だと問題ないんですが、同
時に複数の操作をしてからVBアプリを再起動すると、追加した行が
DataGridに表示されません。DataViewで絞り込んだら出てくるん
ですが、なぜかテーブル全体表示だと見えないんです。
ファイルをAccessで開いてもきちんと書き込まれてます。Access
で最適化を実行すると、それ以降はVBアプリでもきちんと見えるよ
うになるんですが、VBでいちいちJRO経由の最適化をさせないとい
けないのでしょうか?
6.0のADOでは、こんなことでトラブったりしなかったんだけどなぁ。
89 :
デフォルトの名無しさん:05/01/26 13:42:35
>>87 まあ確かに例外の処理が原因なら
>一度プロセスを切って、再び立ち上げたところ処理してくれました。
ということはない罠。
>>58はただの知ったか厨だと思うが質問する側がキレちゃ駄目だ。もちつけ。
90 :
デフォルトの名無しさん:05/01/26 13:44:20
92 :
デフォルトの名無しさん:05/01/26 13:55:45
>>91 サンキューです。
今からお勉強してみます。
>>90 アドバイスありがとうございます。
DataGridへのバインドを初期化するってことでしょうか?
DataSetを切ったり貼ったりしてみましたが、特に変化ありません
でした。アプリやVisualStudio自体を再起動しても再現するので、
どうにも納得いかないんですよ。(´・ω・`)
プログラムの起動終了時にに力技を使って、JROからmdbファイル
の最適化をやったら、一応動くようにはなりました。美しくないし
パフォーマンスも落ちるんで、この方法はできれば避けたいですが。
ttp://support.microsoft.com/default.aspx?scid=kb;ja;306287 ぐぐってもこの手の情報は少なくて苦労してます。
>>84 入れれば確実ですね。
使用しているファイル名が確定しているんならば、そのファイル
(.lib)等を入れれば動きます。
97 :
デフォルトの名無しさん:05/01/26 16:33:22
delegateを呼び出す場合Invokeを使う場合と、使わない場合が
あるけど、どう違うの?
>>97 使わない場合って例えば?
BeginInvokeのこと?
間接オブジェクト参照だな、日本語だと「委譲してその先に頼る」
100 :
97:05/01/26 16:58:24
『Delegate ステートメント』のMSDNのサンプルなんだけど
If IsGreaterThan.Invoke(IntArray(j), MaxVal) Then
を
If IsGreaterThan(IntArray(j), MaxVal) Then
とやっても同じ動作のようにに見える
違いがあるのかしら。
一応、コーディーネーターぽい、
つうか、仮想化だよ、つうか先は未定だよよく言うと
>>100 ILを見ればすぐ分かるけど、全く同じ。
Delegate宣言されたデリゲートには自動的にInvokeメソッドが追加されて、呼ばれる時はこのメソッドが実行される。
Invokeを明示的に呼び出さなくてもコンパイラが勝手に補う。
103 :
100:05/01/26 17:23:01
>>102 省略可なんだ。
よくわかった。 サンキュー!
ところで恥をしのんで聞くけど、ILてなに?
どうやって見るの、ど素人ですまん。orz
104 :
103:05/01/26 17:31:36
CallBackメソッドってSharedにしなきゃいけないの?
なんかMSDNのサンプル見てるとみんなそうなってるんだけど
そんなことはない。
引数と返値さえ合ってればPrivateでも問題ない。
VBに限らずコールバック関数は他では使わないほうが良い
てか、Sharedって何?
うん、ネットだから良いな、すれーッドだよ。
うちは、日本語、うちは英語ってあるじゃん、そこの切り替え大事だな
ソフトは
111 :
デフォルトの名無しさん:05/01/26 18:03:11
>>105 Sharedにしとけばインスタンスを作らなくてもいいからな。
オブジェクト指向なんだからインスタンス作ったほうがいいよな
そうでもないよ
そうでもあるよ
まあ単純なデリゲートのサンプルなら一々インスタンスを作る必要もないとは思う。
しかし同時に例えばPrivateなインスタンスメソッドでもコールバックメソッドに使えるというサンプルも必要だろうな。
116 :
デフォルトの名無しさん:05/01/26 18:28:54
117 :
デフォルトの名無しさん:05/01/26 18:31:50
MSDNのサンプルはインスタンスを作るとコードが判りにくくなるから
Sharedにしてる鴨。余計わかりにくかったりして。
118 :
58:05/01/26 19:44:40
>>87 全部言わないと分らないかな。
なんか例外をトラップしさえすればいいとか思ってない?
私の書いた「例外が発生した場合の処理を真っ先に疑うけど」の意味は
例外をちゃんとトラップしてるかどうかを疑えって意味じゃなくて
トラップ後の処理に問題はないかって意味だけど。
ありていに言えば、何らかの理由で一度例外が発生すると、
〜処理〜
この部分その後ずっと例外が発生する、あるいは処理がスキップされるような
コードになってるんじゃないの?って意味だよ。
猿でも分る例をあげればこんなのね
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Static PrevVal As Integer = 1
Static Rnd As New Random
Dim ThisVal As Integer = Rnd.Next(101)
Dim Result As Integer
Try
Result = ThisVal / PrevVal
'〜なんか処理する〜
PrevVal = ThisVal
Catch ex As Exception
End Try
End Sub
>>89 センスないな。
Tickの最初にConsole.WriteLineか
WriteEntryかなんか入れとけばいいんでねぇか。
120 :
デフォルトの名無しさん:05/01/27 00:34:57
C1FlexGridで1行の高さを変更したいのですが
どうしたらいいですか?
122 :
89:05/01/27 13:11:50
>>118 自分の頭が悪いくせに何他人をけなしてんだよボケ。
>>57がたった1行でおまえと同じことを言っていて、さらに55は
>>87でそれに答えてんだろうが。
流れも読めず、国語すら分からない馬鹿人間が偉そうなことのたまってんじゃないよ。
何が「全部言わないと分からないかな」だよ。分かってないのはお前。市ね。
123 :
デフォルトの名無しさん:05/01/27 13:14:44
>121
Heightを変えな
>>123 Grid1.Row.Heightというようなプロパティが無いのですが
どのように指定すればよいでしょうか?
すいません。
125 :
デフォルトの名無しさん:05/01/27 13:28:31
>>118 その猿でも分かる例が少なくとも2回以上通ることが前提条件になるな。
そこら辺の仕様が分からんことにはなんとも言えんわけで。
常駐プログラムにStaticなんて使う奴いるんだろうか?
126 :
デフォルトの名無しさん:05/01/27 13:29:10
マニュアルで探せ
127 :
デフォルトの名無しさん:05/01/27 13:29:37
>>124 Styleとかが代わりにあるんじゃないの?
SetCellStyleかなぁ
130 :
55:05/01/27 13:41:46
>>118 お返事ありがとうございます。
>この部分その後ずっと例外が発生する、あるいは処理がスキップされるような
>コードになってるんじゃないの?って意味だよ。
結論から言うと、なってません。
例外が発生する際の処理はエラー内容をDBに書き込む程度のもので、
例外が発生した対象のファイルは問答無用で監視フォルダから移動させるようなロジックになっています。
もしそこでDBエラーが起きたとしてもcatch中のエラーなので、上に上がるだけです。
一応
>>57さん、
>>58さんのアドバイスを受け、再び例外処理を中心にコードの見直しをしてみましたが、特に例外がループしたり、処理がスキップするようなロジックはありませんでした。
どうやら
>>58さんはタイマーが止まるような条件を知らないようなので、他の場所で聞いてみます。
みなさんどうもありがとうございました。
131 :
デフォルトの名無しさん:05/01/27 13:46:11
>>131 神キタ━━━━━━(゚∀゚)━━━━━━!!!!
ありがと。助かりました。3日悩んだよ。
これからはまずFAQを見に行けと言う事だな。
>>133 はい。そうします。
とりあえずFAQのページは読破します。
AsyncCallbackってなんですか?
ヘルプを読んでも意味がわからないのですが
文脈がないと説明しづらいよ。
非同期メソッドの実行に使うデリゲート。
呼出元と実行先メソッドをIAsyncResultで架け橋する。
呼出元はIAsyncResultのWaitHandleで非同期メソッドの完了を待機したりできる。
>>136 難しいですねー。そもそもデリゲートって何ですか?
139 :
デフォルトの名無しさん:05/01/27 17:05:12
サンプルと良く見比べてみれば足りないのがあるだろう?
141 :
139:05/01/27 17:15:29
インデントが上手くいかなくて、見にくくて申し訳ない。
>>140 え!足りないものは無いと思うんだけど、
Sub MultiCall(ByVal d As SimpleDelegate, ByVal count As Integer)
を
Module Test の中に入れたのがいけないのかな?
142 :
141:05/01/27 17:27:39
ちなみにエラーは
'SimpleDelegate' はデリゲート型です。
デリゲート構築には引数一覧として 1 つの AddressOf 式のみ使うことができます。
多くの場合、デリゲート構築の代わりに AddressOf 式が使われます。
と出ます。
だから足りないのがあるだろう?
144 :
142:05/01/27 17:49:19
判った!
Dim d As New SimpleDelegate(AddressOf F)
AddressOf だ!
なんとおいらの開発環境のmsdn『6.9 デリゲート』は
Dim d As New SimpleDelegate(F)
となってる。 KUSO-
ところで、VB.NETってモジュールのMain()から
スタートするにはどうしたらいいの?
145 :
144:05/01/27 18:41:02
開発環境は.NET 2002でした。
.NET 2003を見ましたら『6.9 デリゲート』の項は直っていました。
明日.NET 2003にアップグレードします。
モジュールのMain()から の起動はまだ上手く
いっていません。
>>145 ソリューションエクスプローラでプロジェクト右クリックでプロパティ開いてスタートアップを設定。
そういうことじゃないのならMSDNでMainを検索すりゃずばり出てくるだろ。
147 :
145:05/01/27 21:05:14
>>146様
そういうことでした。orz
出来ました。
これで全て解決です。
それにしてもまさかMSDNのサンプルが違っているとは。
C#の場合 AddressOf 使わないんで、VB.NETも使わない書式が
有るかと思っちゃた。ほんと紛らわしい。帰って寝よ。
Dim content As [String] = [String].Empty
ってどういう意味ですか?
[String]というのがよくわかりません。
>>148 Dim content() As String = String.Empty
こういうこと
>>149 それに変えたらコンパイルできなくなってしまいました。
ヘルプの非同期サーバーソケットの例で使われてます。
System.String
うーむ。ハイレベル過ぎたか
困ったな
それが型の名前である事を明示する。
>>154 なるほど!ではエラーがでなければStringでいいわけですね!
ここ最近の低レベル過ぎる質問は同一人物による釣なので、皆さんスルーしましょう。
知ってるか知らないかだけの差だと思いますよ
158 :
デフォルトの名無しさん:05/01/28 15:28:00
C言語でいう
void PlusPlus(int *pValue, int count) // 第二引数は配列数
{
int iii;
for (iii = 0; iii < count; iii++) pValue[iii]++;
}
void main(void)
{
int value[5] = {2, 3, 4, 5, 6};
PlusPlus(value, 5);
PlusPlus(value, 5);
}
(つまりは結果は value[0]=4,value[1]=5,value[2]=6,value[3]=7,value[4]=8)
のような処理をVB.NETで行ないたいのですが、どのようにすればいいのでしょうか?
配列が1つだけという仕様のプログラムならば
Private Sub PlusPlus(ByRef value As Integer, ByVal count As Integer)
value = value + 1
End Sub
を使って
Dim Value As Integer
Value = 2
PlusPlus(Value, 1) ' 配列が1つなので第二引数は1
PlusPlus(Value, 1) ' 配列が1つなので第二引数は1
のように呼べばいい程度のことはわかります。
よろしこです。
Private Sub PlusPlus(ByVal values() As Integer) '配列もクラスなので参照型
Dim i As Integer
For i = 0 To values.Length - 1
values(i) += 1
Next
End Sub
.NETで配列数を渡すようなアレなコードはいかんぜ。
//まあ特定の部分だけを操作って言うオーバーロードはあってもいいけど。
160 :
デフォルトの名無しさん:05/01/28 18:59:26
配列を参照渡しするコードがアレでいかんってセンスが理解不能。。
参照渡しじゃなくて(というかクラスなら自動的に参照を渡す事になる)、
第2引数、配列の数を渡す所だろ。
162 :
デフォルトの名無しさん:05/01/28 19:56:31
>>157 レベルが高い人は知らない事を調べることができる。
訊かなきゃ何もできないうちは自分も初学者であるという自覚を忘れるな。
その方が自力で解決できるようになった時に素直に感動できる。
早く答える側になれるようにガンガレ
163 :
デフォルトの名無しさん:05/01/28 20:32:40
>>160 もともとCは配列と言う概念が希薄なのよね、
配列、呼んでるのはデーターの並び方の方法なの
だから引数で配列を渡す時は先頭のポインターと
大きさを渡す訳、ところが.NET FrameWorksは
違うぞ、配列はクラスだから、引数で配列の
インスタンスを渡すと、その中には大きさを
表すメンバーも含まれているわけ。
それなのに、又わざわざ大きさを引数につける
てのは、郵便番号を書いた上に都道府県名を
書くようもんで、あれなわけ、そお言うこと
だよな、きっと。漏れも暇だな。
>>163 配列もオブジェクトだし、今は区別無いだろう?
165 :
デフォルトの名無しさん:05/01/28 20:53:46
166 :
デフォルトの名無しさん:05/01/28 21:02:00
神様すみません!
私はいまだにC++ではなくましてやC#でもない
単なるCをカーニハン&リッチの参考書片手に
使っていることを、ここに告白します。
いや、値渡しも、アドレス渡しも意味無いのでは?
何がどう意味がないのかね。
下位互換のためにあるだけかと。
>>166 すまんな。俺は K&R の初版持ってる。
それよりもスレ違いどころか板違いな事を深く反省しる。
ByRefが下位互換のためだけにあると言いたいのなら出直してこいと。
値型と参照型の区別が付かないのも出直してこいと。
あー、スレ間違えた、javaじゃ無かったんだ
173 :
158:05/01/28 21:37:01
>>159や皆さん、どうもありがとうございました。
>>159については表面的には理解できました。
ところで、
>>159の関数はVB.NETという前提にしてましたが、実は
CでDLLにした関数にして呼び出しをすることが目先の目標でした。
そのCのプログラムは.NET FrameWorksではありません。
もちろん、クラスも何も無いので大きさが得られません。
その場合は、.NET FrameWorksのやりかたで作り直せ!!
というのが筋ということになるんですよね?
やっとVB6とVB.NETが違うものだという意識を感じ始めました。
# 遅いって?(w
174 :
デフォルトの名無しさん:05/01/28 21:57:31
だからさっきから言っているでしょう。
.NET FrameWorksは2つの型があるので、先ず値型か参照型かの
区別をつける、参照型は全てクラスなので、どのようなメンバー
があるかしっかり確認して使う。
クラスとオブジェクトの区別がつかないものと、参照型と
参照渡しの区別のつかないものは、パソコン教室でExcelを
勉強しなさい。
VBって6の頃から日本語で識別子書けますよね?
んで、.NETでWebアプリ書く時にWebControlのIDを日本語にする事も出来る
みたいなんですが、なんか悪影響はあるんでしょうか?
たとえばValidationの時にjavascriptがちゃんと動かなくなるとか。
クラスは定義で実体化させたものがオブジェクトだろ
177 :
デフォルトの名無しさん:05/01/28 22:06:17
オブジェクトとインスタンスの区別のつかないものは
アビバで英語を習おう。
178 :
デフォルトの名無しさん:05/01/28 22:09:58
>>175 何はともかく日本語だけはやめとけ、
予測のつかない不幸が次々と襲うぞ。
アーグメントとパラメータの関係も分からんやつがいっぱいいるので
仕方ないよね
180 :
デフォルトの名無しさん:05/01/28 22:13:24
>>177 すまん、アビバじゃなくてノバだった
アビバじゃ英語は習えんわな。
System.Threading.Threadを使ってマルチスレッドプログラムを
書いているのですが、ThreadをStart()した瞬間HandleCountの値
(Process.GetCurrentProcess().HandleCount)が4つ増え、
スレッドが終了しても減ることはありません。
Threadを生成する際にAddressOfで指定した関数が終われば
スレッドは勝手に終了すると思い込んでいたのですが、
終了処理を何かしなくてはならないでしょうか。
>>178 そうします。
VB6の時でもActiveXコンポーネントのインターフェイスに日本語使ったら
バイナリ互換モードでコンパイルしてるのに毎回GUIDが変わったりして
苦労したので同じ過ちは繰り返したく無いです。
ただ、今やってるシステムは長ったらしい業務用語がやたら多いので、
I/Fに現れない内部のロジックには日本語を使う事になるかもしれません。
(VSのインテリセンスが効くようにobjとかintのようなプリフィックスぐらい
は付けるつもりですが。)
それで良いのか?、
こうしてバグが世の中に広がっていく
186 :
デフォルトの名無しさん:05/01/29 01:42:47
VB.Net2003のマニュアル第4章のメニューとダイアログボックスの勉強で
126Pの「文字の色」コマンドのイベントプロシージャを
以下のようにマニュアル通りに編集(ルーチンを記述)すると・・
ColorDialog1.ShowDialog()
Label1.ForeColor = colorDialog1.Color
上記の2行で(2行しかない)
ColorDialog1は宣言されてません。と出てしまうのですが・・
マニュアル通りに記述してるだけなんですけど、
何度見直しても原因が分かりません。
何方かお分かりになる方アドバイスをお願いします。
>>186 フォームにColorDialogコンポーネントを貼った?
188 :
デフォルトの名無しさん:05/01/29 03:18:41
VB6時代のコードで、コンボボックスのリストを
自動的に表示させるために
Call SendMessage(target.hWnd, CB_SHOWDROPDOWN, 1, 0)
とやっているコードがあります。
これ、.Netではどう置き換えればいいのでしょうか・・・
OnDrawItemだと、DrawItemEventArgsに
何をセットすればいいのか分からないし・・・
アドバイスお願いします。
事故解決しますた
190 :
デフォルトの名無しさん:05/01/29 08:29:12
>>187 貼ってませんでした。^^;
まだ試してませんが、多分そのせいでしょう。
ありがとう御座います。後ほど報告にきますね。
191 :
デフォルトの名無しさん:05/01/29 08:40:21
>>187 報告っ
ColorDialogを貼ったら出来ました。
コーディングの記述ミスの事ばかり考えていて
肝心なコンポーネントを貼るのを忘れてました。
まだまだ日々精進です。
ありがとう御座いました。
192 :
デフォルトの名無しさん:05/01/29 09:23:26
>肝心なコンポーネントを貼るのを忘れてました。
先ずクラスの概念を理解するんだな。
全てはそれからだ。
えらそうに
>185
どれのこと?
フォームにステータスバーを付けて、1つのペイン内に
複数のアイコンを並べて表示させたいのですが、
どのようにすれば実現可能でしょうか。
196 :
デフォルトの名無しさん:05/01/29 11:20:31
>>192 肝に銘じました。修行します。m(__)m
.NETで作ったアプリケーションを.NET Frameworkのインストール
されていないPCで動かすにはどうすればよいのでしょうか。
VB.NETでメモリマップドファイルみたいなことを実現するには
どうすればいいですか?
201 :
デフォルトの名無しさん:05/01/29 13:45:49
>>199 あきらめろ、それ以外内は無い。
.NET FrameworkはVBのランタイムのようなものだ。
みたいな事ってのはつまりプロセス間通信をしたいと言う事?
>>202 そうです。メモリマップドファイルなら使ったことがあるので
似たようなクラスとかがあれば一番いいのですが、やりたい
ことは、プロセス間通信です。
205 :
デフォルトの名無しさん:05/01/29 15:36:36
MsgBoxっていうメソッドはどのクラスのメソッドなんですか?
ラベルコントロールの背景を透明にしたいのですが、
どうすればよいでしょうか。
209 :
デフォルトの名無しさん:05/01/29 22:03:47
いやたぶんFormのOpactyのようなことを聞いてると
思うけど、Labelには無い。
自分でプロパティを作る事になるが結構大変だぞ。
前スレの
30 デフォルトの名無しさん sage 04/12/10 13:52:06
VB6から.NETへの移行したばかりの初心者です。
移行後、いきなり壁にぶち当たってしまったのでお知恵を貸してください。
フォームの上に配置した二つのPictureBoxに、透過情報をもった画像をセットします。
背景色をTransparentで透過指定します。
PictureBoxを重ねると、背面の画像が、透過されている所も含めて隠れてしまいます。
調べたところ、親コントロールの情報を描画しているので、
前面にあるPictureBoxをControls.Addを使い、
背面にあるPictureBoxの子ににしてしまえば良い所までわかりました。
しかしコントロールは常に重なっているわけではないので、この方法だと使えません。
Regionを使ったやり方だと、単純な図形や文字は何とかできても、画像となるとあまり現実的とは思えません。
VB6のimageコントロールのように、背面にある画像を表示させる方法はないものでしょうか?
↑のことでは?
子ウィンドウから新たに親ウィンドウ内に子ウィンドウを開きたいのですが、
子ウィンドウが独立して開いてしまうので困っています。
いろいろと試してみましたが、うまくいきません
どうすればいいのでしょうか?
いや、普通にMDIの環境です。
単に
変数名.MdiParent = parent
だけでは駄目なんですね・・・
それで問題ないはずなので、周辺のコードを示してみれば助言できるかも知れない。
>>204 すいません。まったく自分がやりたいことの説明ができてなくて
申し訳ないのですが、VC++で作ったアプリケーションAと
VC++で作ったアプリケーションBがあり、これらはメモリマップドファイルを
使ってメモリを共有しています。
ここに.NETで作ったアプリケーションCを登場させ、AとBが使用している
メモリを参照したいのです。
>>214 Dim 親変数 As Form1
Dim 子変数 As New Form2()
子変数.MdiParent = 親変数
子変数.Show()
としているんですけど、どこが違うんでしょうか。
親変数がNothingになってるじゃん。何も割り当ててないんだから。
.MdiParent = NothingならそりゃMdi子フォームにはならない。
えーと、これを書いてるのはMdi子フォームの所だよな。
新しく作るフォーム.MdiParent = 自分自身.MdiParentとすればMdiParentが同じになるぞ。
>>217 出来ました!!
指摘どおり子フォームの部分に書いてました。
子変数.MdiParent = Me.MdiParent
で希望通りの動作しました。
ありがとうございました。m(_ _)m
ほかの方もありがとうございました。
>>215 メモリマップドファイルを使うのなら、Win32APIを使うしかない。
APIや定数の宣言さえすれば、あとはそう変わらずに使える。
CreateFileMapping/OpenFileMappingで開いて、
MapViewOfFileでアドレス空間にマッピングして、
System.Runtime.InteropServices.Marshalクラスの各メソッドで読み書きやコピーをして、
UnmapViewOfFileでアドレス空間からアンマッピングして、
最終的にCloseHandleでメモリマップドファイルのハンドルをクローズする。
ちなみにVB6までではポインタ/ハンドルもLong型辺りで処理してたらしいけど、
VB.NETではポインタ/ハンドル用の型としてIntPtr型があるのでこれを使う。
>>219 ありがとうございます。チャレンジしてみます。
フォームのタイトルバーを消しつつもマウスでの移動は
したいのですが、どうすればできるでしょうか。
フォームじゃなく、普通のクラスの Public Shared Sub Main()
から開始して いろいろ初期化を行ったあと、
Dim maFm As Form1
maFm = New Form1
maFm.Visible = True
としてフォームを表示して、あとはプログラムの制御をそちらで
任せようとしても勝手に終了してしまいます。
どうすればいいのでしょうか?
フォームAからフォームBをモードレスで開いた後、
フォームAからフォームCをモーダルで開くと、
フォームBに触れなくなってしまいます。
この動作は当たり前なのかもしれませんが、フォームCを
開いている間もフォームBに触れるようにすることは
できるでしょうか。
>>222 ありがとうございます。解決できそうです。
>>223 Application.Run(maFm)
227 :
デフォルトの名無しさん:05/01/30 21:31:35
助けてください。
デバック中って、ローカル変数やウォッチで、
現在の変数の中味などを見れるじゃないですか、
それの+(プラス記号)で、ディレクトリを展開できるはずが、
突如、+をクリックしても展開されず、+記号が消えてしまう現象が
起こっております。
解決方法はないでしょうか?
ツリーだろ。
他のソリューションは?
VS/VB.NETを再起動してみたら?
ブレークポイントが不味いだけの気もするけどなぁ。
231 :
227:05/01/30 22:38:06
すみません、ツリーでした
他のソリューションもダメです
再起動してももちろんダメです
ブレークポイントも・・特に今までと変わらないと思います
実際VB.NETで作ったものを、VBが
入ってない環境で、実行するにはどうすれば?
VBが入った環境って何?
なんていえばいいんだろ、VBがインストールされてない
パソコンです。
235 :
デフォルトの名無しさん:05/01/30 23:24:35
ところでさ。
.netフレムワク1.1 SDK で作ったものって
2.0ランタイムで動く保障ないの?
237 :
デフォルトの名無しさん:05/01/30 23:26:23
>>234 ワロタ。
VBがインストールされてないパソコンじゃなきゃうごかん とか
あまりにも絶望的すぎじゃん。
保証はできないが基本的に動く。
確実を期すなら.NET 1.1を入れさせるか.NET 2.0で再コンパイルする。
>>235 2.0でサポート外になったのを使ってたらやばいかもな。
MSDN読んでて、たまにそういう記載が出てくるし。
240 :
ちょん:05/01/30 23:44:08
MYSQLにVB.NET(ADO)で繋ごうと思っているんですが
繋げません・・コネクションすら張れません・・
どなかたお力添えお願いします
ADOバージョン .2.8
MYSQLバージョン 4.1
ODBCドライバ 3.5
VB.NET(STD) 2003
MYSQLサーバー
WINDOWS XP OR WINDOWS 2000
charset SJIS
他は特にいじってません。
開発環境
WINDOWS XP Pro SP2
VB.NET(STD)
COMのインポート
MSDASC
ADODB
Dim adoCo As New ADODB.Connection
adoCo.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" & _
"SERVER=127.0.0.1;" & _
" DATABASE=test;" & _
"UID=root;PWD=****;OPTION=3"
adoCo.Open() オープンでエラー(致命的なエラー)
System.Runtime.InteropServices.COMException' のハンドルされていない例外が あるらしい
adoCo.Close()
もちろんDNSは登録してあります。ODBCマネージャーでからのドライバーテストは成功しています。VBのサーバーエクスプローラーからも致命的なエラーで登録不可です。
VB.NETってCOMコンポーネントって使えないんでしょうか? ドライバーのトレースしたんですが見方がよくわかりません。自分なりの解釈ですと
接続ハンドルがアプリケーション側に渡って来ないようなんですが・・・ODBCドライバーも入れ替えたりしたんですが接続できませんでした。
とりあえず、VB.NETで作ったものがあるんですが
先ほど言った環境で、どやって実行できるんですか?
今まで、VB.NETからファイル開いて実行してたんで・・
243 :
デフォルトの名無しさん:05/01/31 05:13:08
>>241 プロジェクト名/binフォルダの下にexeがあるからダブルクリック
244 :
デフォルトの名無しさん:05/01/31 10:54:26
文字列の左から8バイト分を取得したいのですが、どうしたらいいでしょうか?
LeftBが使えないようなので・・・
左から4文字で8バイト分になりますが何か。
246 :
デフォルトの名無しさん:05/01/31 11:12:48
Encoding.GetBytes して Encoding.GetString
250 :
244:05/01/31 12:08:39
やっぱりわかりませんでした・・・
Public Function pAsciiLeftB(ByVal strValue As String, ByVal intLength As Integer) As String
pAsciiLeftB = StrConv(LeftB(StrConv(strValue, vbFromUnicode), intLength), vbUnicode)
End Function
をvb.netでやりたいんですが・・・
252 :
デフォルトの名無しさん:05/01/31 12:41:38
1.GetBytesで文字列から8バイト分取り出す。
2.GetStringで、引数にその8バイトの配列を指定して文字列を取り出す。
万一これで分からなければ根本的に理解できていないのでMSDNなどで
勉強すればいい。
Function LeftFixB(ByVal strString As String, ByVal nLength As Integer) As String
Dim strResult As String
If (strString = "") Then
strResult = Space(nLength)
Else
Dim nCode As Integer
Dim nBytes As Integer = 0
Dim nIndex As Integer = 0
Dim bLoop As Boolean = True
Do While (bLoop = True)
nCode = AscW(strString.Chars(nIndex))
nBytes = nBytes + IIf(((nCode < &H0100) Or ((nCode >= &HFF61) And (nCode <= &HFF9F))), 1, 2)
If (nBytes = nLength) Then
strResult = Left(strString, (nIndex + 1))
bLoop = False
ElseIf (nBytes > nLength) Then
254 :
デフォルトの名無しさん:05/01/31 12:54:37
strResult = Left(strString, nIndex ) & Space(1)
bLoop = False
Else
nIndex = nIndex + 1
If (nIndex >= strString.Length) Then
strResult = strString & Space(nLength - nBytes)
bLoop = False
End If
End If
Loop
End If
LeftFixB = strResult
End Function
Encoding.Unicode.GetString(Encoding.Unicode.GetBytes("UNICODEの1文字は2バイトですが、何か?"),0,8)
>>252 よく考えたらこれ全く意味の無いことだった。
257 :
デフォルトの名無しさん:05/01/31 13:42:47
どなたかご存知であれば教えてください。
VB.NETで赤外線/IrDAにデータ送信するやり方(コード)を恵んでください。
FTPでファイルをアップロードしたいのですが
WinInetAPIでやろうかなと思っていますが.NETですと
もっと簡単にできる方法がありますか?
GotDotNet辺りに転がってるDLLを使うとか。
260 :
144:05/01/31 17:13:26
>>259,260
ありがとうございました。やってみます。
今度、ソケット接続のプログラムを作るハメになってしまったのですが、
VB初心者の上にネットワークプログラムなんて知識の欠片もないので
一体どういうものなのか良く分かりません。とりあえず文字を送信とか
ファイル読み込んで送信とかそういうのでいいかと思うんですが・・・
どなたか何か参考になりそうなサンプルプログラムが置いてある
サイトとかご存知でしたら紹介してください。
お願いします。
1スレッドで動かすと0.5sec程度で終了する処理があるのですが、
これを2スレッドにするとそれぞれ1.5sec程度かかって
しまうことがあります。
スレッド内で行っている処理は、ハッシュテーブルに対する
検索処理なのですが、このように時間がかかるのは
自然なことでしょうか。
スレッドの作成や切り替えはそれなりに重い処理だぞ。
>>265 1スレッドで0.5sec程度のものを2スレッドにした場合、
0.5secで完了するというのはムシがよすぎるとは
思うのですが、せめて0.6〜0.7secぐらいにはならないかなー
とか思ったのですが、1.5secじゃ直列に実行した方が
速いんですよね(ry
ちなみにスレッド内部でループしている個所にSleep(0)とか
入れたらさらに遅くなってしまいました。
>>265 スレッドの切り替えにかかる時間や切り替え回数(?)を
評価するような方法はあるでしょうか?
そんなにかかるか?
軽量プロセスっていうぐらいなのに。
いろいろと不正確かもしれんがテストしてみた。
Imports System
Imports System.Diagnostics
Imports System.Threading
Public Class ThreadCost
Shared Sub Main(ByVal args() As String)
Dim p As Process = Process.GetCurrentProcess
p.PriorityClass = ProcessPriorityClass.High
Const THREADCOUNT As Integer = 1 '適当に変えて
Dim t(THREADCOUNT) As Thread
CL()
Dim ts As TimeSpan
Dim dt As DateTime = DateTime.Now
Dim i As Integer
For i = 1 To THREADCOUNT
t(i) = New Thread(New ThreadStart(AddressOf CL))
Next
For i = 1 To THREADCOUNT
t(i).Start()
Next
For i = 1 To THREADCOUNT
t(i).Join()
Next
ts = DateTime.Now.Subtract(dt)
Console.WriteLine("Totalミリ秒{0}", ts.TotalMilliseconds.ToString())
Console.WriteLine("1Thread平均ミリ秒{0}", ts.TotalMilliseconds / THREADCOUNT)
Console.ReadLine()
End Sub
Shared Sub CL() '適当
Dim i As Long
Dim sum As Long
For i = 0 To 100000 '500000000
sum += i
Thread.Sleep(0)
Next
End Sub
End Class
すまん。Thread.Sleep(0)は抜いてやってくれ
1Thread平均ミリ秒はほとんどかわらんかった。
1Thread ->1350
10 Thread ->1330
30 Thread ->1320
タスクマネージャも起動してやったので正確なもんじゃぁないですが。
>>267 パフォーマンスカウンタの
Processer-% Privileged Time
System-Context Switches/sec
かな。
>>270 1Thread平均ミリ秒が変わらないということは、パラレルにしても
シーケンシャルにしても全体の時間は同じくらいって感じなんですかね。
スレッド化しても1CPUじゃ速くはならんだろ
少なくともスレッドの生成&切り替えが原因ではないといえると思う。
考えられることは
ハッシュテーブルを同期化して使っていると思うが、
そのことでのパフォーマンス劣化。(どれだけ落ちるかは知らん)
例外なげまくってることでのパフォーマンス劣化。(もちろん知らん。)
JITコンパイルの時間。これもそこまで変わるとは思えんが。。(普通に知らん)
あとは計測ミス。
まっわからんwいろいろ試せ。
>>274 ハッシュテーブルは各スレッドで共有しているわけじゃないので
同期で遅くなっていることはなさそうです。
>>273 すいません。そうですよね。
>>273 HT対応のプロセッサだと、ちっとは効くのかな?
HTって何?
キャッシュに限りがある以上
HTでも遅くなる可能性はある
マルチCPUならともかく
ソケット通信でプログラミングしています。
BeginAcceptをキャンセルしたい場合はどのようにすればよいでしょうか?
Closeしちまえ。
Closeしてみました。ReceiveCallbackは呼ばれるけど
EndReceiveで例外が発生するのでキャッチすればいいみたいです。
しかしReceiveCallbackされないのが最善かなと思うのですが
そこまでは無理ですか?
間違えました。Receive->Accept
Closeしてみました。AcceptCallbackは呼ばれるけど
EndAcceptで例外が発生するのでキャッチすればいいみたいです。
しかしAcceptCallbackされないのが最善かなと思うのですが
そこまでは無理ですか?
無理だね。
返答待ち中に閉じられるってのは例外事項だろうから、
例外が投げられてそれをキャッチするという流れは極めて自然。
>>283 了解しました。ありがとうございました。
285 :
デフォルトの名無しさん:05/02/01 14:00:02
VB.NETだと、テキストボックスの縦のサイズが
19に固定されていて、変わりません。
大きくするにはどうしたらいいですか?
>>285 1.フォントのサイズ変更
2.MultlineをTrueに変更
287 :
デフォルトの名無しさん:05/02/01 14:13:41
288 :
デフォルトの名無しさん:05/02/01 14:13:56
VBでMCPを取るにはどうすればよろしいでしょうか。
289 :
デフォルトの名無しさん:05/02/01 15:24:11
フォーム1のテキストボックスに書いた内容を
フォーム2のテキストボックスに表示するにどうすれば
いいですか?
>>289 フォーム1のテキストボックスのTextChangedで
フォーム2のテキストボックスのTextに、フォーム1のテキストの内容を入れてやれば?
291 :
デフォルトの名無しさん:05/02/01 16:11:17
フォーム2のテキストボックスのTextに、フォーム1のテキストの
内容を入れるのができないんです。
フォーム1のTextBox1の内容は
フォーム2ではForm1.Text1.Textで得られるんですか?
これだと、エラーが出てしまいます
292 :
デフォルトの名無しさん:05/02/01 16:22:50
別のフォームで使える変数ってありますか?
Dim,Public しかしらないもんで
>>フォーム2ではForm1.Text1.Textで得られるんですか?
そことなく罠の匂いがします。
292も含め釣りか・・・・。
295 :
デフォルトの名無しさん:05/02/01 16:51:42
いや、マジで、わかんないです。
別のフォームで使える変数がしりたいです
294のリンク先も理解できないようならプログラマを即刻辞めるべきだ。
297 :
デフォルトの名無しさん:05/02/01 17:53:01
>295
プロパティ処理が面倒なら、
メインフォーム以外のフォームデザインを一通り済まし、
サブフォームのすべてのコードを、名前空間内のメインフォームのクラスの下へ貼る。
そうすると、
サブフォームのデザイン画面が見れないが、サブフォームのアクセスが容易になる。
この方法は、プロパティ処理の不要や、メンバ情報漏洩防止が可能。
もし、サブフォームのデザインを修正したいなら、そのサブフォームのコードを、元の場所に移せばいい。
298 :
デフォルトの名無しさん:05/02/01 18:11:18
>297 の修正
プロパティ処理が面倒なら、
サブフォームのすべてのコードを、名前空間内のメインフォームのクラスの下へコピー。
コメントで、サブフォームのコードだと分かりやすく明示しておく。
サブフォームのデザインを修正したら、メインへコピーしたものを最新にしておく。
そうすると、
サブフォームのアクセスが容易になる。
この方法は、プロパティ処理の不要や、メンバ情報漏洩防止が可能。
299 :
デフォルトの名無しさん:05/02/01 18:52:17
テキストファイル(ある文章が書いてある)の内容を
一文字ずつ読み込たいんですが、どうすらばいいですか?
StreamReaderのReadLine
エンコーディングに気をつけろよ。
>>301 1文字=1バイト とは限らないからな。気をつけろよ。
>300
1文字ずつ
Readメソッドだな。
>300はバカ
307 :
デフォルトの名無しさん:05/02/01 20:37:33
datagridについてなんですが、
列数と行数をあらかじめ指定する事って出来るんです?
vbのMsFlexGridだとcolsとrowsに値を入れる事が出来るんですが・・・。
すいません。速攻で解決してしまいました。
For i = 0 To CountA - 1
Table1.Columns.Add(NoA, Type.GetType("System.String"))
NoA = NoA + 1
Next
dim StringBox(CountA-1) as new String
Table1.Rows.Add(StringBox)
で解決しました。
これだとString型しか入らないですが、表示するだけなのでこれでいけそうです。
どうもdatagrid使いにくい・・・自分があれなだけなんですが。
>>263 MSDN見ながら何とかソケット通信出来ました〜。
サーバー側プログラムが受信待機状態になると止まっちゃって
他からのアクセスを受け付けなくなってしまうのを何とか解決
しようとしてスレッドを色んなサイト見ながら試しました。
正直、正しいスレッドの使い方できてるのか不安でしたが
一応動いてるっぽいです。クライアント用を三つ起動して
サーバー側にアクセスしてもちゃんと処理してくれたので・・・
でも、同時アクセスとかの場合はどうなんでしょうか?
何か効率のいいテスト方法あったら教えてください。
ヨロシクお願いしますです。
>>310 配列を使うとは・・?
よく分からないのでもう少し詳しくお願いします。
お手数かけて申し訳ないです。
>>311 それ以上でもそれ以下でもない。
そもそも質問の仕方と意図も漠然すぎるので、説明しようがない。
>>クライアント用を三つ起動してサーバー側にアクセスしてもちゃんと処理してくれた
>>同時アクセスとかの場合はどうなんでしょうか
この段階で、クライアントが3つ同時アクセスして成功しているんじゃないのか?
セットアッププログラム実行時に、関連するファイルも一緒にコピーしたいのですが、
複数のインストール先があり、それぞれに関連するファイルが違います。
固定の場合はファイルシステムエディタで追加出来るようですが、違う場合のコピーは
どこで設定してやればよいのでしょうか?
314 :
デフォルトの名無しさん:05/02/02 04:02:56
既出ならすみません
ACCESSのデータベースを読み込む時検索結果が安定しません
全検索のときでも
検索がちゃんと出るときと出ないときがあります
ウィザードを使って作ったのでSQLに間違いは無いと思います
対処法教えて下さい
環境は
WinXP home
VB.NETスタンダード
ACCESS2002です
長々とすみません
何も事情を知らない人がその文章を読んで、何を聞きたいかが
理解できるか?ということをまずは十分に検討した方がいい。
317 :
314:05/02/02 08:22:52
情報不足申し訳ありません
いわゆる会員一覧のようなものをデータグリッドで表示させたいのです
メインフォームから別フォーム(データ表示用)を呼び出し
開いたときに一覧を表示するようにしたいのです
そこで別フォームのロードイベントでfillを行っています
そこでデータが10件あったとします
何回かのうちに全一覧がでずに
7,8件しか表示されない場合があります
その原因がわからないので困っています
SQLはウィザードで作られたものから変更はしていません
これでも情報不足でしたら指摘お願いします
>>317 ためしにAccessファイルの最適化をやってみそ。
うちではVB側で追加した行がどうしても表示できなくて、最適化
をしてみたら全部出るようになった。
ソケット通信で非同期ソケットを使っている場合の
タイムアウトの処理は、やはりタイマーを使うのでしょうか?
普通はそうだね。
321 :
デフォルトの名無しさん:05/02/02 10:19:30
タブコントロールにてタブページを5つぐらい作って順番変えた時、
タブページの順が指定した順にならずに困ってます。
何か考えられる原因はありますか?
・タブページコレクションエディタで順を変更
↓
・保存して終了
↓
・再び起動すると勝手に順番変更
↓
・もう一度やってみる
↓
・同じく勝手に変更
↓
エンドレス・・・
>>320 了解しました。やっぱり普通っていいよね。
VB.NET2002しかもっていないのですが
VB.NET2003ならSystem.Data.OracleClientはデフォルトで使用できるのでしょうか?
OracleならODP.NETを使うのがモアベター。
>>324 ダウンロードしようとすると登録を迫られるのですが
どうしましょう?
.Net Managed Provider for OracleとODP.NETって違うものですか?
327 :
デフォルトの名無しさん:05/02/02 11:08:55
Listviewコントロールについて質問です。
Checkboxes が True
Multiselect が True
View が Details または List
この状態で複数のアイテムを選択するとチェックボックスが勝手にチェックされてしまいます。
これを回避する設定か技はありますでしょうか?
328 :
デフォルトの名無しさん:05/02/02 11:13:58
TextBoxなどを継承して新しいクラスを作った時コードエディターで継承した、
プロパティーやイベントのインテリセンスが出ないんですが、
何か方法はありますか。現在は"GetType"がインテリセンスで出るだけです。
よろしく。
329 :
デフォルトの名無しさん:05/02/02 12:39:53
すいません、ASP.NETについて教えてください。
Serverに保持している値をClientに渡し、ClientでJavaScriptを
用いて演算したいのですが、何か方法はあるでしょうか?
330 :
314&317:05/02/02 13:47:19
最適化してみました
全件表示させるだけなら出来ましたが
検索に条件を付けて一覧を表示させるときに同じような現象が起きます
検索条件のフォーム(以下検索画面)と結果表示のフォーム(結果画面)を別にしていて
検索画面に入力された値を結果画面で受け取るようにして
その値をパラメータに当てはめてクエリを実行させるようにしました
値の受け渡し方法は
結果画面に検索メソッドをつくりその引数に検索画面の各テキストボックスの値を割り振るようにしています
そして結果画面のロードイベントで検索メソッドを実行しています
この方法が悪いのでしょうか
他になにか方法があれば教えて下さい
説明不足でしたら指摘お願いします
331 :
デフォルトの名無しさん:05/02/02 17:16:16
テキストボックスに、簡単な文章入力して
その文に、あらかじめ用意していた単語が出てきたら
イベントを起こしたいです。
例えば「さむい」を用意していて、入力文が「今日はさむい」
だったらイベント発生という感じですが
どうゆうやりかたありますか?
ちょっと思い浮かばないです・・・
TextChanged イベントは?
追加です。
ボタンクリックで、読み取って
キーワードが含まれていたら、イベントって感じです。
>>332 レスどうもです
ボタンクリックというイベントを自分で言ってるじゃん。
あっイベントを勘違いしてました。
テキストボックスに、簡単な文章入力して
その文に、あらかじめ用意していた単語が出てきたら
イベントを起こしたいです。
例えば「さむい」を用意していて、入力文が「今日はさむい」
だったらという、if文をつくりたいんです
おまいさんの言う「イベント」が、何を差しているのか不明なのと、
文字入力中に内容の評価をしたいのか、入力終了後にボタンを押し
て評価をしたいのかどっちなんだ?
>>331と
>>335で、どう説明が代わったのかすらわからん。
IndexOf使って、登録文字列があるか探せ。
Form1にPanelを用意しておいて、MDIParentとします。
そしてForm2をMDIChildとし、そのForm2を開くとForm1のPanelにボタンを表示させたいのですが
どうすれば良いのでしょうか?
そのPanelにはButtonを表示して子ウィンドウを制御したいです。
>>338 インスタンスを作成してイベントハンドラに関連付けして、Panelにコントロールを追加する。
340 :
デフォルトの名無しさん:05/02/02 21:22:06
PanelとForm2などは作っており、
作っていないのはボタンとその処理をするプログラムです。
342 :
デフォルトの名無しさん:05/02/02 22:15:41
>>341 先ず標準モジュールを追加してその中で
Module Module1
Public F1 As Form1 'F1をグローバルに宣言。
End Module
とおまじないをする
次に
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
F1 = Me
とする
これで
Form2の中で
F1.Button1.Show()
等とやり放題になるよ。
……。
学校のVB.NET作ったの
家のパソで動かないんですが
なんでですか????
>338=>81=>211か?
タブブラウザを作るつもりなら諦めろ。
F1ボタンは表示されてたんですが、別の子ウィンドウを開いたところ、ボタンが追加されませんでした・・・。
学校のパソのVB.NETで作ったのですが
学校ではexeファイル開けるのですが
家のパソでは起動しません
なんでですか????
家にはVBははいってないです
こんなバカでもプログラムが書ける.NETってスバラシイ!
>>198見れ。
public class Form2 : Form{
private ToolBar toolBar1;
〜〜中略〜〜
private void menuItem28_Click(object sender, System.EventArgs e){
Form2 f = new Form2();
ToolBarButton b = new ToolBarButton();
toolBar1.Buttons.Add(b);
b.Tag = f;
f.MdiParent = this;
f.Show();
}
private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e){
((Form2)e.Button.Tag).Select();
}
}
350 :
デフォルトの名無しさん:05/02/02 22:53:38
>>346 ちょっといいかげんに説明しすぎたかな。
先ずForm1のPanelの上にボタンを置いて、VisiblプロパティをFales
にして置く、ここまではいいな。
次に『Form2を開く』どのようにして開くかは、書いてないので俺は知らん。
このフォームの中で、Form1.Button1.Visible=True等としたいが、
我慢しろ、Form1はインスタンスではなくクラスなのでForm2からは、
参照が出来ないのだよ。
そこで仕方ないので、標準モジュールを追加して、
Public F1 As Form1
とForm1のクラスのF1を宣言するのだ、こうするとモジュールは
全てのフォームから参照が出来るから、このF1はForm2から参照が
出来るのだよ。
ただしあわててはいかん、F1は宣言しただけなので実態は無いわけだ、
そこで、Form1のLoadイベントの中で、F1=Meとするのだ、
Meは唯一Form1が自分を参照するキーワードだ、ここで初めて
F1にForm1のインスタンスが代入されるのだよ。
これでForm1のインスタンスはどこからでもF1で参照が出来る。
そこで、Form2の中で
F1.Button1.Visible=TrueとするとForm1の中のButton1が現れる、
まあそお言うことだ、分ったよな。
351 :
デフォルトの名無しさん:05/02/02 22:55:56
>>349 おいおい、VB.NETとC#の区別のつかないやつは
Javaのスレにでも池。
>>346 >>339の意味がわからないのなら諦めろ。まずは意味を理解する所から始めな。
あと、どういうコードを書いているかチャートで見せてみ。
'Form1で子ウィンドウ作成するボタン
Private Sub NewWindowBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewWindowBtn.Click
Dim MDIChild As New Form2()
MDIChild.MdiParent = Me
MDIChild.Show()
End Sub
'Form1の中身
Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
F1 = Me
End Sub
'Form2の中身
Public Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'F1.ControlButton.Show()
F1.ControlButton.Visible = True
Me.Tag = F1.ControlButton.Tag()
End Sub
とりあえず、関係ありそうな部分のソースのみです。
例のボタンは Visible = False 参照レベルは一応 Public に設定してあります。
System.GC.Collect()で強制的にガベージコレクションを行うことが
できますが、自動的に行われるガベージコレクションと競合して
おかしくなったりすることはあるでしょうか。
>>355 基本的な点で勘違いしている気がする。
ファイルを「開く」のはドトネトのアプリじゃなくて
ファイルに関連付けられたアプリだよ。
>>354 ないよ。
っていうかどういう状況を競合と言うんだろう?
358 :
350:05/02/03 08:34:57
>>353 出来てるジャン、それで何がわからないの?
>>353 MDIChild.MdiParent = Me
Me.ControlButton.Visible = True
MDIChild.Tag = Me.ControlButton.Tag
MDIChild.Show
俺ならこうしてフォーム2のLoadイベントは使わないが、、、
どこでエラーが起こってるんだ?
>>356 えっと、すいません
要はエクスプローラでhoge.txtとfoo.txtの両方を選択し
それを右クリックで動詞を選んで開く
というのと同じ効力を得れる命令を知りたいのですが
フォームを継承したいのですが、どのような手順で
行えばよいでしょうか?
できました。
VB6では
form1で
form2.show
unload me
とするとform2を表示したあとform1を消せますが
VB.NETでは
dim f as new form2()
f.show
close()
とするとform2も閉じられて終了してしまいます。
VB6と同様の動作にするにはどうすればよいでしょうか?
364 :
デフォルトの名無しさん:05/02/03 11:08:09
>>363 親のコンテナを消すと呼び出した子供は全て消される。
せいぜいMe.Visible=falseとするくらい。
ただし子供から親を表示出来るようにしておかないと
親を表示して、終了するすべが無くなるから木おつけろ。
>>364 了解!.NETは本格的にオブジェクト指向なんですねー
366 :
デフォルトの名無しさん:05/02/03 11:42:54
ヘルプがいきなり白紙になった(泣)
設定を 内部/外部にしてもダメ
コレクションの選択をしても全部ダメ
ヘルプの実体がどこにあるか良く分からんし
それっぽいのみつけても、どこで設定すればいいのか分からん。
たすけてください。
367 :
デフォルトの名無しさん:05/02/03 12:36:16
松下の陰謀ですよ
368 :
デフォルトの名無しさん:05/02/03 13:55:52
>>366 ヘルプだけ再インストールしたらいいんでは。
VB.NETで作成したアプリケーションはWindowsNT4.0で動作しますか?
テキストボックスのフォントサイズを変更したく
txtText.Font.Size = 12
とするとコンパイルエラーになってしまいます。
どこが間違っているのでしょうか?
Fontクラスは変更不可のクラスなので、Newし直すべし。
教えてください。
VB.NETってサーバーインスコしてネットワーク共有でつかえるのですか?
自分はクライアントベースと聞いているのですが。
フォームのサイズを固定にするにはどうしたらよいでしょうか?
>>374 FormBorderStyle を Fixed〜 にしましょう。
VB.NETから勉強をはじめたら、以前のバージョンで開発されたシステムには対応できませんか?
まったくの初学とした場合。
>>375 こんな質問にも答えてくれて、ありがとう。
378 :
デフォルトの名無しさん:05/02/03 17:24:16
プロパティって配列に出来ます?
Public Property Mode() As Integer
Get
Return Me.Mode
End Get
Set(ByVal Value As Integer)
FormMode = Value
End Set
End Property
だと、Modeというプロパティになりますが、
このModeを配列にしたいのです。
>>376 勉強する順番はどうでもいいが、最終的に知ってないといけないものは勉強するだろ?
ん?msdn見ると、プロパティを使う場合は
privateなフィールドを別に作っておけと書いてあるな・・・。
>>378の例文はやばいですね。
Private PropVal As String
Public Property Hoge() As String
Get
Return PropVal
End Get
Set(ByVal Value As String)
PropVal = Value
End Set
End Property
こっちが正解ですねすみません。
すみません・・・インデックス付きプロパティでぐぐったら
速攻で答えが出てきました・・・こんなんばっかり。
.Net Managed Provider for OracleとはADO.NETのことなのでしょうか?
いまいちわかりません。
やはりODP.NETの方がOracleへのアクセスは標準的なのでしょうか
うーん。どなたかお助けを
ADO.NETは.NETにおけるデータベースとの標準インターフェイス。
System.Data名前空間下の各クラスがその実装。
.NET Managed Provider for OracleはADO.NETのOracle用のMS製の実装。
ODP.NETはオラクル自身が作った.NET用の実装。
当然パフォーマンスはODP.NETが一番良いし相性も良い。
ただ、Oracleが9よりも前のバージョンだと、.NET Managed Provider for Oracleの方が良いとも聞く。
384 :
デフォルトの名無しさん:05/02/03 18:44:59
ADOで、Accessのファイル.mdb にかかっているパスワードを変更するプログラムを作りたいんですが、
どうしたらいいでしょうか?
うっかり、パスワードに「\」の文字を含めてしまい、Accessからは開けなくなっちゃったんです。
ADOでは、開けるので、パスワードを変更したいんです。
よろしくお願いします。
386 :
384:05/02/03 21:12:07
Frameworkインストールしたんですが、
ファイル実行できません。
実行しようとすると↓こんなんでてきます。
C:WINDOWS\Microsoft.NET\Framework\
v.1.1.4322\micorwks.dll could not be
loaded
>C:WINDOWS\Microsoft.NET\Framework\
>v.1.1.4322\micorwks.dll could not be
>loaded
これを意訳すると
ファイル実行って意味わかんねえよ氏ね
390 :
デフォルトの名無しさん:05/02/03 21:57:02
このサイトについての質問なんですが
http://www.atmarkit.co.jp/fdotnet/dotnettips/115dgselcell/dgselcell.html // テーブルのスタイルを作成
DataGridTableStyle dgTableStyle = new DataGridTableStyle();
dgTableStyle.MappingName = dataTable1.TableName;
// *** 選択セルの背景色と前景色を設定する ***
dgTableStyle.SelectionBackColor = Color.Yellow;
dgTableStyle.SelectionForeColor = Color.Black;
dataGrid1.TableStyles.Add(dgTableStyle);
とあるのですが、この時、
dataGrid1.SelectionBackColorには、Color.Yellowが入っているのですか?
というのも、VB.NETでWindowsアプリケーションを作っていて、
どうもTableStyleで設定した項目がdataGrid1に反映されていないようなのです。
ためしに、
dgTableStyle.ReadOnly = False
dgTableStyle.AllowSorting = False
DataGrid1.TableStyles.Add(dgTableStyle)
というサンプルを作って、DataGrid1.ReadOnlyとDataGrid1.AllowSortingをテキスト表示すると
FalseとTrueが入っています・・・。こういうもんなんですか?
そのサイトの著者に訊いてみたら?
画像のキャプチャーソフトのようなものを作りたいのですが、
利用できるクラスはあるでしょうか。
キャプチャにはWin32APIが必須だね。
ちょっと調べれば色々出てくるし、それで理解できなければ挑戦はまだ早い。
ソケット通信のプログラムの動作について
ちょっと疑問に思ったことがあるので教えてください。
ソケット通信のクライアントプログラムとサーバープログラムを
同じPCで起動して、文字とか送るのですが、私はこれは一度ネット上に出て
指定してあるIPアドレスとかポートとかを頼りにして、同じPCのサーバー
プログラムにデータを送っているのだと思っていました。
しかし、LANケーブルを抜いてネットに接続できない状態でも通信できたのです。
これって指定アドレスが自PCのアドレスだから外には出なかったということでしょうか?
よく分かりませんのでご存知の方教えてください。
・・・・なんか訳の分からない文章になってしまいすいませんです。
>>394 TCPとUDPで微妙に挙動が違うんだけれど、サブネットマスクと
デフォルトゲートワイが何のためにあるのかを調べてみるとイロイロ解るよ。
興味があったらUDPのマルチキャストとかも調べてみるといい。
>396
死ねば?
>>394 IPアドレス直指定じゃなくて
コンピュータ名とかで送ってたら
ループバックアドレスに自動変換されて
送られてたとかかしら?
んで本題の質問なんですが
VBでフォームがアクティブじゃない時に
入力されたキーを取得したいのです
具体的にはキー送信するマクロ作ったのですが
キーを送信しているのウィンドーがアクティブになってます
これを何らかのキーを押すことでVBで送信してる
マクロを停止したいのですが・・・
そのようなことはできるのでしょうか?
可能だとしたらヒントでもいいのでご教授くださいませ
.NETじゃ無理。
グローバルフックという手法を使うんだが、それが.NETでは不可能だから。
そう言う用途なら代わりにホットキーを使うのはどうだろう?
Win32APIになるけど、RegisterHotKeyとUnregisterHotKey関数を使って。
登録したキーの組み合わせが他のアプリで一切使えなくなる(Ctrl+Cをホットキーにしたら、他のあらゆるアプリがCtrl+Cを使えなくなる)が、
代わりにWindowsキーも修飾キーに使える。
>>398 すまん。Javaスレと間違えて誤爆した。吊ってくる。
>>352 =
>>359 さん
子ウィンドウを開くとボタンは開くのですが、
もう一個呼び出してもボタンは追加されず、しかも両方の情報を持っているらしいみたいです。
しかも片方を閉じたらボタンは見えなくなってしまうのです。
こういう動作の方法はやったこと無いのでいまいち理解できずにいます。
>>402 >>もう一個呼び出してもボタンは追加されず、しかも両方の情報を持っているらしいみたいです。
当たり前。
子フォームそれぞれに対応したボタンを作成して、イベントもそれぞれに対応したものを作りたいなら、配列使えと最初に戻る。。
g_frmMain
dim g_frmMain as new frmMain()
g_frmMain = new frmMain()
とした場合最初にNewしたフォームのオブジェクトは
メモリ上から消えてくれますか?
うん。
すぐに、ではないけれど。
>>405 ありがとん。よかった。
なんかタスクマネージャみたらメモリがどんどん増えていくから
心配でした。
407 :
デフォルトの名無しさん:05/02/04 13:38:22
vb.netプログラムから、twainドライバ対応スキャナを操作するにはどうすればいいですか?
なにか参考になるサンプルあります?
リードツールみたいなOCX使わないと無理ですか?
onKeyDownイベントでTabキーが拾えないのですが
拾う方法はないでしょうか?
誰かオレの宿題手伝ってくれない?
VB.netのコンソールアプリケーション(コマンドプロント)で
loopをつかって下にあるひし形作るんだけど
どうやるの?
教科書の問題にはConsole.WriteLine("*"), Console.WriteLine(""), Console.write("")とか
使えって書いてあるんだけど、なんでループでこんな形になるのかわからん・・・(´・ω・`)
*
***
*****
*******
*********
*******
*****
***
*
誰か助けて・・・orz
413 :
デフォルトの名無しさん:05/02/04 14:21:12
>>412 ひし形じゃなくって3角形になってる・・・orz
*
***
*****
*******
*********
*******
*****
***
*
何で3角形になるんだろう・・・orz
ひし形なのに・・・
>>412 >>誰かオレの宿題手伝ってくれない?
>>どうやるの?
手伝えじゃ無くて答えを教えろといってるわけだが?
1行中のスペースと*の合計値は等しい。
後は足し算と引き算の問題だ。
>>415 "*"の増減ループと" "の増減ループの合わせ技。
正三角形ができたら、その逆で逆三角形ができる。
>>416 だね、手伝ってじゃなくってやってくれだね。
悪かった。。
>>417 ↑の△と↓の△に分けて考えればいいのか。
なんとなくヒントもらってやる気が出ました。
>>416, 417
ありがとう
419 :
デフォルトの名無しさん:05/02/04 14:53:51
For i = 1 To 6
Console.WriteLine(i * 2 + 1, "*")
Next
ってやってみたんだけどi+2+1, "*"のところに青い線ひかれる・・・
へるぷみー
420 :
デフォルトの名無しさん:05/02/04 15:47:08
質問です。
テキストボックスとボタンが10個ほどあります。
テキストボックスにはあらかじめ、abcdefgといった文字列がいれてあります。
ボタンにはa,b,c,dといったnameをふってあります。
テキストボックスからTextBox1.Text.Chars(i)として1文字を取り出した時に、
その文字に応じたボタンのいろをかえたいのですが、何か方法はありますか?
説明下手ですがお願いします。
>>419 青い線にマウスを持っていって、エラー内容を読め。
Console.WriteLineにカーソルを置いてF1キーを押せば、MSDNが
詳しい使い方を教えてくれる。
>>420 ボタンを配列に読み込んで、取り出した文字とボタン.textをループ
で比較しろ。合致したらボタン.backcolorを変えればいい。
で、何が分からないんだ?
If Me.ActiveControl = TextBox1 Then
MsgBox("hoge")
End If
がコンパイルエラーになります。
なぜでしょうか?
エラーメッセージは読まないのか?
>>424 あいたた。ごめんなさい。
適切なアドバイスありがとうございました。
>>419 Dim Count As Integer = -1
Dim i As Integer
Do While Count <> 9
Count += 2
For i = 1 To (9 - Count) / 2
Console.Write(" ")
Next
For i = 1 To Count
Console.Write("*")
Next
Console.WriteLine("")
Loop
Do While Count <> 1
Count -= 2
For i = 1 To (9 - Count) / 2
Console.Write(" ")
Next
For i = 1 To Count
Console.Write("*")
Next
Console.WriteLine("")
Loop
System.Threading.Thread.Sleep(10000)
怪しまれないように、へぼっぽく加工しといた。
>>420 文字に応じた色ってのが意味不明
#FF6688
とかそゆのか?
説明がさっぱりだがあるか無いかを問われればあると答えておく。後は自分でがんばれ。
>>426 DoLoopも+=演算子もわかってないと思う。(w
>>412にLoopを使うってあるし、使っとかないと不味いんじゃ?w
If Keys.Tab Then
でタブキーは拾えたのですが
Shift+Tabキーはどのように拾えばいいでしょうか?
それは、組み合わせ可能な列挙型の、組み合わせの表記が分からないという事か?
Orで組み合わせ、Andで特定フィールドの抽出。
//微妙にヘルプの解説もこの辺薄目……分かって当然だからか?
>>421 ありがとうございます。
ボタンを配列にできるのは知りませんでした。
調べたらあったので、できました。感謝です。
>>426 テキストから取り出した文字と、ボタンにつけたnameに対応したという意味でした。
わかりにくくてすみません。
結局nameは関係なく、textを使いましたが。
>>429 If Keys.Tab And e.Modifiers = Keys.Shift Then
じゃねーかなーと思うわけだ。たぶん。
>>433 ところがどっこい、Shift+TABはKeyDownイベントでは取れないので、ProcessDialogKey辺りをオーバーライドするしかないわけだ。
そうするとKeyEventArgsは手に入らず、手に入るのは修飾キーとキーコードが組み合わされたKeys列挙体。
>>400殿
ありがとうございました
VB単体では無理なのですね
教えていただいたのを勉強して
挑戦してみたいと思います
丁寧なレス感謝です
すみません。Keys列挙体というのはどういったものでしょうか?
if Keys.Tab And Keys.Shift Then
では拾えませんでした。
はぁ。オレってアホだな
そうだ。フラグに持てば
>>434 フォームのKeyPreviewをtrueにして、フォームのKeyDownでやればいけるだろ。
発見しました。
Shift+Tabは65545みたいです。
連続してレベルコントロールのバックカラーを
高速に変えています。
一方のPCではちゃんと変えた色がアニメーションのように
変化してくれるのですが、他方のPCでは
最後に変えた色に一発で変わってしまいます。
ためしにApplication.DoEvents()を入れてみましたが
だめでした。このような場合どうすればようでしょうか?
>>442 マシンの処理速度にどの程度の差があるのかはチェック済みだよな?
>>441 ああひょっとして空のフォームでやっちゃった?
コントロールを一つ入れるととたんに検出できなくなるよ。
>>443 速度は遅くなっていいのですがアニメーションして欲しいと思ってます。
勝手にはしょられたらつらいです。
>>444 タブ1 テキスト6、ラベル2 チェックリスト1 コンボ1 ボタン3
が配置されてるフォームでやっていけたわけだが。
>>445 途中でSystem.Threading.Thread.Sleep(1000)を入れるとか、タイマーで回すとか。
Me.Refreshでできました。どうもすみません。
>>446 私もやってみたけどやっぱり取得できない。
で、気になったのが>433の
If Keys.Tab And
の部分だ。
これがほんとにこのままなら、Strict Onならコンパイルで撥ねられるし、Strict Offなら必ずTrueを返すわけだ。
Shift押しただけでこのIf節が成立してないか?
返答ありがと。
実は取れるのかとかなりビックリした。
.NETのクラスでlog4jみたいな便利なログ出力クラスってある?
log4netってのがあるのか。失礼。
455 :
デフォルトの名無しさん:05/02/04 22:56:33
たのも。だれかRS-232C制御のクラスつくってくれ。なんでいまさら・・・
457 :
デフォルトの名無しさん:05/02/04 23:23:55
458 :
デフォルトの名無しさん:05/02/04 23:36:32
>>426 ありがとう
Whileのあとにある<>はどういう意味?
<か>だけじゃダメなの?
459 :
デフォルトの名無しさん:05/02/04 23:46:32
1よりも大きく1よりも小さい。。。。1じゃねーってことだろ。
460 :
デフォルトの名無しさん:05/02/04 23:57:18
.NETで低レベルキーボードフックってできないの?
例えば、左右のどちらのCtrlキーが押されたかを
チェックするにはどうしたらいいんでしょう?
VC++で作った別プログラムでフックした情報を
プロセス間通信で取得しないといけないんかなぁ。。
もっさすぎ。
byteデータを16進2桁で出力したいのですが、どのように
すればできるでしょうか。
printfみたいなことができると楽でいいのですが・・・
>>462 hoge.toString("X2")
467 :
デフォルトの名無しさん:05/02/05 00:36:41
>462
String.Format("{0:X2}",hoge)
でないの?
16進自体が演算かがオブジェクト
タイムスタンプ(例:2005/02/05 10:01:26.640)を正確に
出力したいのですが、DateTime.Now.ToString(〜) では
かなり大雑把になってしまうようです。
より正確に出力する方法はあるでしょうか。
【問題】
簡単な野球ゲームを作れ
(条件)
・打者は5回打席に立つ
・1打席ごとにW(敬遠)、H(ヒット)、O(アウト)を判定
・W,O,HはArrayから呼び込む
・ヒットの場合は1ポイント、アウトは0ポイント、敬遠はノーカウント
・打者のアベレージをだす
(例:5打席で2ヒット、2アウト、1敬遠の場合、2ヒット÷(5打席-敬遠の数)
ヒント:LoopとIf
って問題があるんですけど
Hはcount +=1, Outは count+=0でいいんでしょうか?
ごめん。もう分かったからいいです。
HとOがcount+=1でWがcount+=0ですか?
アウトォ、セーフゥ、よよいのヨイィ!
>>476 野球のルール分かってるか?助けてやろうとしてるんだから、
質問には答えてくれよ。
479 :
デフォルトの名無しさん:05/02/05 10:47:23
>>479 じゃあなんで>476みたいな質問が出てくるの?
481 :
デフォルトの名無しさん:05/02/05 10:52:26
打席数をカウントしていくのに
ヒットとアウトはカウントされて
敬遠はカウントされないって考えて
>>476みたいな質問をしました。
打席数をCountするのが
If h Then
count += 1
ElseIf o Then
count += 1
ElseIf w Then
count += 0
End If
でいいのかっていう点と
もし、いいのであればArrayをどうやって組み込むかって言う点が
全然わかってません。
>>483 打席数をカウントしたいのなら間違ってる。
てゆーか、打席数=5と条件に書いてある。
打率の計算式も条件に書いてある。
Arrayから「呼び込む」は日本語の意味が分からないので
回答しようがない。
>>484 親切に有難うございました。
自分でもう少しやってみます
>>471の問題でこうやったほうがいいんじゃない?
ってのがありましたらヒントでいいんでおしえてください。
>>487 あ、もしもヒントとか教えていただけるならって意味です。
気に障ったらなすみません
なんじゃい、もう解決済みだったか、失礼しまんこ。
>>491 全然見当違いには思えないが。
書式指定文字列を使ってより詳細に出力できるだろ。
(秒以下の部分ね)
>>492 伝統的にVBスレはレベルが低い(種種の原因があろう)。
カスタム書式指定のドキュメント解説を紹介されても情報の
価値が分からない奴の書き込みにいちいち反応する必要なし。
レベルが低い原因はあれだろ?DQN学生が多いからでしょ。
いかにも宿題っていう質問が目立つじゃん。
質問したら答えが返ってくるのが当たり前と思ってるからねぇ。
そもそもVBなんて教えるぐらいならC#とか教えろと小1時間・・・
>>492 >>470を読めば、それをもう試してることは分かるでしょ。
近似解像力が10msecなんだから、"f"をいくら増やしても
大雑把にしか出力できない。どうしたらいいですか?
ってのが
>>470の言いたいことでしょ。
>495
そういうことか。TickCount系使うとかそういう感じの話?
>>495 それってヘルプに書いてあるんですか?たしかに秒以下を
見ていると、しばらく同じ値が続いて一気に10増えてまた
しばらく同じ値、みたいな動きしてます。
>>498 聞く前に調べてないかどうか判断付きますか?
>>499 MSDNのDateTime.Nowプロパティにはっきり明記してあることを、
わざわざ質問するあたりに、おまいさんの努力不足が現れてるね。
オレは質問者じゃないけど?
>>492がパッタリ黙ったってことは、見当違いだって
気付いてくれたってことだよね?
ステータスバー上でアイコンを点滅させるには
どうすればよいでしょうか。
二つのアイコンを定期的に切り替える。
>>505 されたのか? かわいそうにな。
そのうちきっといいことあるさ。
そんなやり方してたら解雇されちゃうよ、って君へのアドバイスだよ。
ちなみに503は最初から解決してたんで悪しからず。
もちろん>504みたいなやり方じゃないですが。
>>503 ステータスバーって
タスクバーのことかや?
それならFlashWindowExAPIで出来る気配
VB単体でできるのかはしらん
>>509 言ってる意味が解らんのだが・・・・・
データグリッドコントロールくっつけれ?
511 :
デフォルトの名無しさん:05/02/06 00:17:08
データグリッドコントロールというか、
リストボックスを区切ったようなものみたいなんです。
わかりづらくてすいませんtt
あーレスよく見ないで発言してしまった・・・・orz
すまん・・・・・;;
>>508 StatusBarコントロールだしょ?
>>509 ListViewかな?
ViewプロパティをDetailsにすればエクスプローラの詳細表示のアレになるが。
>>511 見た目で言われてもわからんよ。
具体的にどんなことをしたいのか説明しる。
515 :
デフォルトの名無しさん:05/02/06 00:20:56
>>513さん それでした。本当にありがとうございます。
>>510,514さんもどうもありがとうございました。
フォームにビットマップを貼り付けて、マウスカーソルが上に来たときに
ツールチップを表示するのですが、マウスカーソルの座標によって
ツールチップの表示内容を変更したいと思っています。
どのようなテクニックを使えば実現可能でしょうか。
517 :
デフォルトの名無しさん:05/02/06 01:07:25
質問させていただきます。
現在、ローカルで完結するプロセス間通信を行うプログラムを作成しようと考えています。
どの手段を使って実現しようかと色々と探し回ってみたのですが、どうも使えそうなものが
見つかりませんでした。
それなりの速度で、メソッドやイベントなどのオブジェクト メンバを操作できるものと
いうと、.NET Remoting 位しか見つかりませんでしたが、どうも技術が大掛かりすぎて、
ローカル内での通信にはちょっと向かないかな、と感じました。
もし他の、オブジェクトメンバを操作できるような手段をご存知の方がいらっしゃいましたら、
どうかご教授のほどお願いいたします。
技術が大がかりだろうが、コードにしたら数行だけど?
リモーティング以外のやり方はコーディング的によっぽど大がかりになるよ。
メモリマップドファイルをクラス化してみたけど面倒くさいったらありゃしない。
>>516 MouseMoveイベントで座標とってSetToolTipで
変えればいいんじゃないの?
範囲でほしいんだろうから座標指定で
IF文いっぱい出来ちゃいそうね
貼り付けるビットマップ切って分けたほうが
楽っぽいけど・・・・・・・・
もっと便利な機能知ってる人
むしろ俺にも教えてくださいw
昨日の471ですが、自力では無理なようです・・・
ウェブマネー3千円あげるので誰かコード書いてください・・・
やってもいいよという方がいたら
[email protected]まで
メールください。
>>520 いくらなんでも安過ぎ。
潔く先生に怒られなさい。
何が分からないのかが心の底から分からん。
5回ループさせてそれぞれヒットならh += 1 敬遠なら w += 1
あとは式通り計算するだけだろ?
>>523 ランダムにh,o,wにするのがわからないんです。
そもそも、vb.netがわかってないのですが・・・
h +=1のさわりの辺だけでもいいのでこうやって書くんだよ
っての教えていただけたらありがたいです。
どうやって乱数からh,o,wを作るんですかとか聞いてくるに違いないッ
>522
ウェブマネー5千円でも安いですか?
先生にウェブマネー提示して単位を買え。
つか、普通は同級生に相談するもんだろうが。
そうする
>>530 お前は役に立たない奴の代表だしな。しかも、口先だけというおまけ付き。
自覚が無いってのも凄いな。
最近会社でVB.NETやる事になったので
本屋でいろいろあさってVB.STUDIO2002(期間限定試用版)を購入。
起動したのはいいのですが、
ファイル→新規作成→VisualBasicプロジェクト→ASP.NET webアプリケーション
で、新規作成するとUNC共有ERRと言ったメッセージが出ます。
存在しないかアクセス許可が無いというメッセージです。
これは最初にローカルに共有ファイルを作成しておけ、と言う事でしょうか?
なにぶんド素人なので、、すいませんがご教授願います。
535 :
デフォルトの名無しさん:05/02/07 15:21:53
VB.NETの設定について質問させてください。
日本語OSのWINXPに英語版Visual Stadio.NET2003
を入れてVBを使ってるのですが
Format(Me.TotalPriceLabel.Text, "currency")
でCurrencyを使うと通貨単位が日本円で表記されます。
currencyのフォーマットを変えてUSドル表記にする事は
出来るのでしょうか? ヘルプなどを見て国別のコードがあることは
判ってるのですがどこで変えたらいいのか分からなくて困ってます。
どなたか教えていただけますでしょうか?
よろしくお願いいたします。
536 :
デフォルトの名無しさん:05/02/07 15:24:24
自己解決しました。お騒がせしました。
538 :
デフォルトの名無しさん:05/02/07 16:33:14
>>537 System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-US")
539 :
538:05/02/07 16:35:10
ま、間違った
>>535 System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-US")
数値.ToString("c", New System.Globalization.CultureInfo("en-US"))
541 :
539:05/02/07 17:59:54
>>535 ところで、ロケールを変えたいの?
通貨の表示だけでいいの?
通貨の表示だけでいいの
543 :
デフォルトの名無しさん:05/02/07 20:42:27
初心者ですが教えてください。
VBでデータベースソフトを作ろうとおもい、
DataGridをフォームにいれてみたのですが、
フォームのサイズを広げたときにDataGridのサイズも一緒に広がるようにするには
どうしたらいいですか?
主にDockプロパティ。時々Anchorプロパティ。
DataGridのAnchorプロパティ使え
そのプロパティを知らなかった俺は、Form_Layoutイベントで
リアルタイムにDataGridのSizeを微調整してたよ。orz
粘着が過ぎるってのも痛いな。
550 :
デフォルトの名無しさん:05/02/08 03:29:03
>>549 うぜぇなぁ、てめぇ。
>>役に立たない奴ばっかで。
役にたたてねぇって人を見下すなら、てめぇが代わりにコード書けばいいだろうが。
それもやらずに文句だけ言ってるから、口先だけって言われるんだよ。
いちいち指摘されなきゃわからねぇとは知害だな。
VB6.0のLeft(str, 5)
というのはVB.NETではどのようにすればよいでしょうか?
str.Substring(0, 5)
>>552
さんくす
ODP.NETが勉強できるサイトありませんか?
現在
dim i as integer
For i = 0 To 15
If Me.ActiveControl Is txtName(i) Then
Call hoge()
exitfor
End If
Next
という処理をしてるのですが
できればこのようにループで回してコントロールを
特定しているのですが
If Me.ActiveControl Is txtName Then
のように1発で判定する方法はないでしょうか?
あらかじめHashtableに入れておいて、Contains
558 :
デフォルトの名無しさん:05/02/08 10:15:28
VB.NETで作ったアプリってVB6.0で作ったものより
少し重い気がするのですがなぜでしょう?
.net FrameWorkの動作スペックが高いからでないかと。
VB.NET+ODP.NETでアプリケーションを作成する場合
Oracle Fail Safeに対応するために何か特別な
コーディングが必要でしょうか?
Me.Color = RGB(255,255,255)
がコンパイルできません。なぜでしょう?
ColorTranslater.FromWin32でできました。
566 :
デフォルトの名無しさん:05/02/08 16:39:32
コンボボックスの高さって変更出来ます?
テキストボックスとかだと、AutoSizeプロパティをFalseにして
その後サイズ変更出来るんですが、
コンボボックスだとどうもそれに該当するプロパティが見当たらない・・・。
OnKeyDownイベントで
その押されたキーをキャンセルするにはどうしたらよいでしょうか?
テキストボックスでカーソルの↑↓を押されたときに
押されなかったことにしたいのですが
>>566 どの高さなのかね。
MaxDropDownItemsがドロップダウンするリストの項目数。
Fontのサイズによって自動的に高さ調節。
DropDownStyleをComboBoxStyle.Simpleにしてやればドロップダウンリストの代わりにちと特殊なリストが出て、Heightプロパティでリストの大きさを調節。
オーナードローする場合、
DrawModeをDrawMode.OwnerDrawFixedにしてやれば、ItemHeightで項目の高さを設定。
DrawMode.OwnerDrawVariableにしてやればItemHeightははじめの項目の高さを表す。
>>567 e.Handled = True
よくわからない現象が発生したので質問します。
Form1、Form2と作成し、それぞれにボタンを一つづつ貼り付けます。
それぞれのイベントに
フォーム1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim frm As Form2 = New Form2
Try
frm.ShowDialog()
Catch ex As Exception
End Try
End Sub
フォーム2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
Throw New Exception
End Sub
とすると、Debug、Releaseともに意図したように動作するのですが、exeから実行するとExceptionがCatchされません
なぜでしょう?
強制的にGCを作動させる方法ありませんか?
参照のなくなったオブジェクトがちゃんと破棄されるか
確認したいのですが
GC.Collect()
「破棄されるか確認したい」のならWeakReference
>>551 あらら。逃げちゃったよ。まあそろそろ許してやるか。
池乃めだか?
>>573 あらあら、指摘に反論できなかったので勝利宣言ですか。
お疲れ様でした。
あ、負け犬の遠吼はいくらでもどうぞ。
>>575 さらに遠くに逃げるとは・・・指摘ってどれ?
577 :
デフォルトの名無しさん:05/02/09 05:20:39
私はどうでもいいのですが、何かしつこいので。
>>576 妄想持ちは大変ですね。
日本語も不十分のようなので、小学生からやり直す事を薦めますよ(プ
GC.Collect()してもタスクマネージャで見ると
メモリが減らないんですけどそんなもんですか?
>>指摘ってどれ?
指摘された事が理解できない真性の知能障害者はもういいからここにくんな。
自分が役に立ってる口先だけじゃないっつーなら、証明して見せてみろ。
このスレだけでも、未回答の質問が沢山あるから全部答えろや。
Type AAA
BBB(4) As Integer
End Type
ってのがVB6で使えましたが
VB.Netでこうやると
Structure AAA
Dim BBB(4) As Integer
End Structure
「構造体メンバとして宣言された配列を初期サイズで宣言することはできません。」
どうすれば?
構造体だと、引数付きコンストラクタを作ってそこで初期化するしか無いね。
Structure AAA
Dim BBB() As Integer
End Structure
>>584 それだとサイズがまだ未定義ですよね?
そこで
引数付きコンストラクタ内で
ReDimすればいいんですね
>>583 感謝です。
色を指定する際、Color.Whiteなどで指定しますが、
フォームのデザイン時のようにシステムカラーを
指定したい場合はどうすればよいでしょうか?
例えば
Color.Window
などがあるとよいのですが
System.Drawing.SystemColors
Public Structure T1
Dim v() As Short
Public Sub New(ByVal Size As Integer)
ReDim v(Size - 1)
End Sub
End Structure
Public Structure T2
Dim v1 As Short
Dim v2 As Short
Dim v3 As Short
Dim v4 As Short
End Structure
Dim a As New T1(4)
Dim b As New T2
Debug.WriteLine("T1 Size =" & System.Runtime.InteropServices.Marshal.SizeOf(a))
Debug.WriteLine("T2 Size =" & System.Runtime.InteropServices.Marshal.SizeOf(b))
でサイズを調べると
T1 Size =4
T2 Size =8
API に渡す構造体なんですけど
T1の方法では無理でした。
T2のほうならうまく動くのですが
なんかスマートじゃないです…
LayoutKind.Sequentialに指定したStructLayoutAttribute属性を構造体につけて、
UnmanagedType.ByValArrayとSizeConstを指定したMarshalAsAttribute属性を配列メンバに。
というのをコードで書くと、
<System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential)> _
Public Structure T
<System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=4)> _
Public v As Short()
End Structure
>>591 「この操作を完了するのに十分な記憶域がありません」
<StructLayout(LayoutKind.Sequential)> Public Structure T3
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=8)> Dim v() As Short
End Structure
やっとできました…
>>592 心底感謝。
SizeConst:=8 ではなく
SizeConst:=4 でした。
SizeConstは要素数ってことですね
ADO.NETってADO2.7のラッパーだから
ADO2.7に出来ないことはADO.NETにも出来ないってのを聞いたことがある
2.7のときにあった「SQLコマンドからパラメータ生成する」が出来なくなったのは痛い
Updateメソッドって結局
1レコードごとにUPDATE文発行してるだけだから
やってることは大して変わらないのよね
バカ。
VB.netで円の描画関数を使っているんですが、
円が細くなったときが汚いのでいい方法はないでしょうか?
>>599 GraphicsインスタンスのSmoothingModeプロパティ
>>600 汚いというのが、FillEllipseを使って円を描画すると円が細いときも違和感がないのですが、
DrawEllipseを使って円をペンサイズを大きくして描いて細くすると両端が極端にとがるんです。
それってどうしようもないんでしょうか?
>>601 円弧だな? ブラシを自分で定義するとか?
円が細いって言い回しを聞いたのは初めてだ。。
極端にとがる、って、そりゃ極端にとがった楕円を指定してるんでしょ。
PenインスタンスのLineJoinプロパティ
どういう結果が欲しいのか良くわからん。
ペンの太さより扁平してる楕円を書けってどだい無理でしょ?
外接する長方形の高さがペンの直径以下だったら楕円じゃなくて
直線を描画したら?
(ノ∀`)タハー
やっぱり無理ですかねぇ。
まぁ、いろいろ試してみます。
ありがとうございました。
>>581 自演ご苦労様。自分が口先だけじゃないなんて私が言いましたか?
あなたが勝手に脳内で作り上げた事実に対してキレられても
どうにもできないのですが。
ここんとこ書き込まれていたウザい発言は、例の厨房だったわけだな。
>>611 もう、どちらか放置しようぜ。
相手にした方が負けだってば。
>>612 しかも、女のフリしてるわけだ。
最悪だよな。粘着電波厨房逝って良し!!
女のフリ?
>>613 分かりにくいのでちゃんと敗北宣言をしてください。
なにもできやしないんだから、みんなほっとけって。
以後、大人のスルーでよろしく。
>>616 子供だから相手をする能力がないということです。
あなたは大人などではありません。
> 分かりにくいのでちゃんと敗北宣言をしてください。
> 分かりにくいのでちゃんと敗北宣言をしてください。
> 分かりにくいのでちゃんと敗北宣言をしてください。
> 分かりにくいのでちゃんと敗北宣言をしてください。
> 分かりにくいのでちゃんと敗北宣言をしてください。
自分がテストで敗北したのを人のせいにしたいんだろ。(w
必死ですね (プ
>>620 うわー、敗北宣言もできないんだ。
悲惨なほど脳が少ない方なんですね。
同情しますよ、本気で。
分かりにくいので、ちゃんと「かおり」って名乗ってください。(w
>>607 >>一応、作ってみたのですがもっといい方法があるなら教えてください。
おいおい。書いたのは俺だぞ(汗)
>>611 おまえさん、矛盾しすぎ。
ダブルスタンダードってやつなんだろうな。
>>626 どれとどれが矛盾しているのか指摘してみてください。
当然できますよね。
しかしここの住人はいつになったらスルーを覚えることやら。
以前から練習の機会を与えてやってるのだが全然
覚えないねぇ。
あ、ここの住人って言い方は失礼か。
いつも特定の一人なんだろうから。
ひとに書いてもらったコードを、あたかも自分が書いたかのように
よそで披露する慎ましやかな性格のかおりちゃんに萌え。ヽ( ´∀`)ノ
可哀想な627は以後スルーの方向で。
なにを言っても無駄でしょう。
以後彼を示す形容は「かおり」で
>>632 はい。そういう書き込みをする時点であなたはダメです。
「かおり」が何のことだか知りませんが、見当違いも甚だしいですね。
>>627はさらっと流してるし。オツムついてますか?
まあ、ある意味かおりも気の毒だな。
テストは落とすし掲示板で晒されるし。
厨房ならいきり立って書きなぐるところを、ぐっと堪えて丁寧な
口調を維持してるのは、まあえらいんでないの。
-人-
初歩的な質問でスマソ
VS,NETはSSE命令をサポートしてるのか?
教えてエロい人
シテイマセヌ
>>636 intelのコンパイラー買うか、ハンドアッセンブルするかです。
MASMでマクロ定義して作っても、あんまり変わんない。
CLRのJITがSSEのコードを生成してるって可能性は無いのでしょうか?
GDI+は奥の方でネイティブのコード呼んでるからその辺では使ってそうですけどね。
>>636 VB.NETスレだがらあれだけど「VS,NETは」ってことならネイティブのvc++で
cl /arch:sseとかxmmintrin.hとかインラインアセンブラなどいろいろサポートしてますよ。
>>634 はい、またしても反応してる時点であなたはダメです。
学習能力ゼロなんですねぇ。本当にあわれだ。
他の人たちもあわれだと思ってくれてるはずですよ。
気を落とさないでくださいね。
>>639 > CLRのJITがSSEのコードを生成してるって可能性は無いのでしょうか?
現状、そこまでインテリなJITコンパイラではない。
将来的にはできるだろうけど。
> GDI+は奥の方でネイティブのコード呼んでるからその辺では使ってそうですけどね。
や、そんな事言い出したら.NET Frameworkクラスライブラリは大抵突き詰めればWin32APIを呼んでるわけで。
余談だが、GDI+は全部CPUで演算してるから遅いんだという話を聞いた事がある。
539様
遅くなって申し訳ありません。
通貨表示だけ変えたかったのです。
Winの設定で変えられるのは判ってたんですが
パソコン自体じゃなくて.netの設定で
変更できないものかと思って質問させていただきました。
おかげで出来ました。
ありがとうございました。
正規表現についての質問です。
ある文字列内からダブルコーテーションで囲まれた文字を探したいのですが、
前後のコーテーションまで取り出されてしまいます。
現在は、Regex(""".*""")とやって取り出した文字列の前後のコーテーションを
取り除いて対応していますが、1発で取り出すのはどのような記述になるのでしょうか?
Dim reg As New Regex("""(.*?)""")
Dim m As Match = reg.Match("as""asdf""fe")
Console.WriteLine(m.Groups(1).Value)
すみません。アプリケーションのアイコンは
どうやって変更すればよいでしょうか?
エクスプローラのアイコン表示ならプロジェクトのプロパティの、ビルドの項目のアプリケーションアイコン。
フォーム左上のアイコンなら当該フォームのIconプロパティ。
> 女のフリってのは何だったんだ?
口調かわってるやん。
ちゃんと、
>>607 のリンク先を全部 (4つ) 見てみ。
649 :
デフォルトの名無しさん:05/02/10 11:14:48
System.Net.SocketsのTcpListenerクラスについて質問です
AcceptTcpClientを使ってしまうとそこで処理が止まってしまうので困っています。
Threadクラスを使って別スレッドにしてAbortすればいいかなと思ったんですが、
Abortを呼び出しても終わってくれません。
どなたかAcceptTcpClientを用いて接続要求待ちのスレッドの
適切な落とし方を知っている方いらっしゃいませんか?
Suspend じゃいかんのか?
別スレッドからStopしてやればいい。
当然SocketExcpetionが投げられるので捕まえて妥当な処理をする。
どんな質問でもいいのかわかりませんが、
フォームをVB6.0のようにSDIで画面全体に表示させたいのですが、
>>2-6を調べても、載っていません。(探し方が悪い可能性もありますが。)
.NETの統合環境では、フォームの全体を表示させてコントロールを
貼り付けていくことは出来ないのでしょうか?
>>653 VB6.0でオプション>詳細設定>SDI開発環境にチェックを
入れたような環境で.NETを使うことは出来ませんか?
>>652 タブ表示かMDI表示の選択はできるけど、VB6までのようなSDI環境モードはなくなりました。
画面いっぱい使ったダイアログベースのアプリはもう作るなっておたっしなのかも。
656 :
デフォルトの名無しさん:05/02/10 14:08:12
>>655 そうですか、どうもありがとうございました。
全体の構成・バランスを見ながら、コントロールの配置が
出来ないのは不便ですが、我慢するしかないのですね。
配列を宣言し、値を入れた後に、配列の指定したindex番号を削除してデータを詰めるにはどうすればよいでしょうか?
Dim a As int16() = {0,1,2,3,4,5}
で、5番目の配列に格納されているa(2)を削除し、
a(0) = 0
a(1) = 1
a(2) = 3
a(3) = 4
a(4) = 5
という感じにしたいのですが。
for i = 2 to 4
a(i) = a(i+1)
next
redim a(4)
というやり方は、どうも違うような気がするので、、、。
どうかよろしくお願いします。
redim Preserve でいいのでわ?
初心者くんは ArrayList 使った方が安全だったりもするなぁ
>>657 System.Collections.ArrayListなどのコレクションを使う。
CollectionやArrayListを使う事も考えたのですが、、、
コントロールや構造体で657のような事をしたいと考えた時、どのようにコードを書けばいいのかわからなくて。
いや、redimで良いよ、内部では結局コレクションだし。
redim preservとすれば基の配列の値が保存されるよ
バカは応用力ないんですね。(プ
>>662 上のままで良いってことでしょうか?
>>663 そうなんですよ。
手順書やフローチャートを書いたりしてるんですけど、ぜんぜん応用力が身につかなくて。
すいませんが、正しいやり方を教えてください。
構造体でコントロールを宣言して、それを配列宣言した奴を657で説明した感じで削除する方法をお願いします。
>>664 redim a(4) -> ReDim Presrve a(4)
>>665 RedimとReDim Presrveは分かっています。
RemoveAtのように、指定したインデックスにある要素を削除し、削除してデータを詰める方法です。
for i = 2 to 4
a(i) = a(i+1)
next
というやり方以外の方法という意味です。
dim b(4)
j=0
for i=0 to 4
if i<>2 then
b(j)=a(i)
j+=1
end if
next
a=b
じゃダメ?
669 :
デフォルトの名無しさん:05/02/10 19:45:12
>>657 おいおい、話がずれてるぞ。
だいたいこれどういう意味
> Dim a As int16() = {0,1,2,3,4,5}
>で、5番目の配列に格納されているa(2)を削除し、
a(2)は3番目だろ。
答える方もおかしいだろ
> redim a(4) -> ReDim Presrve a(4)
これじゃ何も変わらんだろ。(*_*)
配列を一つ減らしたいんだから、
ReDim Presrve a(3)
でしょ。
>>650-651 別スレッドからStopで止まりました。ありがとうございます。
Stopを勘違いして使っていました(OpenとCloseの関係のような感じ・・・)
>>669 >で、5番目の配列に格納されているa(2)を削除し、
すいません。これは
「で、3番目の配列に格納されているa(2)を削除し、」
です。申し訳ないです。
672 :
669:05/02/10 19:56:54
>>671 それで最後の配列を減らす方法は
ReDim Presrve a(3)
です、これで4番目までの配列の中身を変えずに
5番目の配列を消しています。
>>669 >>配列を一つ減らしたいんだから、
>>ReDim Presrve a(3)
その解答もおかしくないか?それだと、2つ減ってるよーにみえる。
674 :
672:05/02/10 21:09:55
>2つ減ってるよーにみえる。
ほんとだ!!2つ減らした、「5番目」に惑わされた。
スマン。orz
ていうか
>>660がせっかくArrayList使えって教えてくれてるのにアホかもう。
そんなPC-8001とかMZ-80の頃のBASICのプログラムみたいな
泥臭いコードかいてどうすんの。。
あえて配列に固執するとしても、せめてCopyメソッド使ってくれよ。
カンペキにスルーですか。そうですか。
結局
>>634一人が池沼だったんだなぁ・・・と、しみじみ。
679 :
デフォルトの名無しさん:05/02/10 22:26:28
>>675 そおじゃなくて、まず配列の大きさを、中身を変えずに
行う方法が違っているので、直さないといけないのでは。
その後でArrayListっていう方法もありますよ、ってのが
順番では。
680 :
デフォルトの名無しさん:05/02/10 22:28:06
>>675 >>661 ってことでしょ?
>>676 サンプルより長いコード書いてりゃなぁ・・・。
ところで上便質問で悪いんだが
ReDim Presrve a(4)
上のコードの前に
a.Clear(a, 5, 1)
って付け加えると、何かいいことあんの?
>>681 >>661がArrayListを避ける理由になると思ってるのか……
こんな人ばっかだからVBやってるとVB厨なんて馬鹿にされるんだよな。。
>>681 > a.Clear(a, 5, 1)
> ReDim Presrve a(4)
Clearの意味は無いな。
それはそれとして静的メソッドをインスタンス.メソッドと書くのは是非ともやめていただきたい。
Array.Clear(a, 5, 1)
と書けと。
>>683 本質的でない、どうでもいい些細なことに固執する人はたいていたいしたことない。
そんなの単に好き嫌いの問題でしょ。
>>680 お前ってなんでスルーできないわけ?説明してみ?
ハタから見ててお前はマジうざい。
>>682 すまん。おれ、構造体を配列で宣言するなんてこたぁ、やった事がないのでわからん。
是非とも正しいやり方を教えてくれ。
>>687 なんか話が噛み合わない人だな。
配列じゃなくてArrayList使えっていってるのに、
>すまん。おれ、構造体を配列で宣言するなんてこたぁ、やった事がないのでわからん。
>是非とも正しいやり方を教えてくれ。
全然意味がわかりません。
>>688 下のようなのを、ArrayListを使うとどういうコードを書けばいいんだって事、、、なんだと思うんだが。
Structure a
Dim b As PictureBox
End Structure
Private c(5) As a
>>688 >>689のような事だったんだが、ヘルプ見て一発で自己解決した。使う事があるか微妙だが、参考にはなったよ。
だからどうして「
>>689のような」話が唐突に出てくるの?
意味わからん。
最近こういう話の文脈の理解できない人が多いよな。
統合失調って病気の軽症のやつかな?
>>691 理解できてないのはお前さんだけのようだが。
〃〃∩ _, ,_
⊂⌒( `Д´) < ArrayList使ってくれなくちゃヤダヤダ
`ヽ_つ ⊂ノ
ジタバタ
>>691 他の奴は冷たいけどオレはちゃんと相談に乗るよ。
仕切りなおしてオレだけ宛てにもう1回質問内容書いて。
他の奴は一切答えないように。
サービスとして動くアプリケーションって、普通に作って
後でサービスに登録すればそれでいいんでしょうか。
ちょっと難しい問題にぶちあたりました。
テキストボックスがあるとして
そこにabcdefg
と入力されているとして
abcとdefgの間にカーソルがあるとして
そこでdelキーを押したらdefgが消えないといけないらしいのです。
どうやって実現しましょうか?
SelectionStart、SelectionLength、TextLength
肝心のSelectedTextを忘れてるぜ。
どう組み合わせればいいんですか?
IQ75のオレにもわかるように教えて
プロパチにあるから、EditBox.xxxx のxxxxに上記を代入
vb.net2003を勉強中のプログラマ1年生です。
Aというプロジェクトの中にBというクラスがあるとして
B内よりAのプロジェクト名を取得するにはどういった参照記述をすればよいのでしょう?
EnvDTE.Projectなどそれらしいものを調べているんですがどうも求めているものと違うような・・
(これに関する記事はプロジェクトコレクションの列挙、というかサンプルが動かせません…)
調べきれないだけで Me.Name
のように簡単に参照できる方法があるのでしょうか?
GetType(B).Assembly.GetName().Name
ってとこかな。
厳密にはプロジェクト名なんて開発環境の管理の便宜上のものではなく、アセンブリ名なんだが。
>>704さん
できました!!ありがとうございます!!!
この方法で取得しているのはプロジェクトのルート名前空間ではなくてアセンブリ名ということでしょうか。
フォームのkeypreviewをtrueにして
onkeydownイベントを処理しています。
onkeydownイベントでkeys.downを拾っているのですが
このとき処理した後、このキーが押されたことをキャンセルしたいのですが
うまくいきません。
e.keycode = 0
でできるかと思ったのですがだめでした。
ほかにどのような方法がありますか?
e.KeyHandled
あ、e.Handledの間違いだった。
dim str as string
str = "あ"
if str = 全角? then
msgbox "OK"
end if
のようにある文字が全角かどうか判定する方法は
ありますでしょうか?
>>711 ShiftJISに変換してから上位バイトを見ろということですか?
できました。とんくす。
はじめまして。
VB.netでPostgreSQLと接続して、データのやりとりをしたいのですが
どうすればいいのでしょうか?接続段階から詰まってしまってよく分かりません。
参考サイト、プログラム等あれば教えてください。
ヨロシクお願いします。
715 :
デフォルトの名無しさん:05/02/14 22:39:40
はじめて質問させていただきます。
現在CのソースをVB.NETへ移植しているのですが、以下のコードをVBではどう表現したら良いか悩んでおります。
typedef unsigned long ORG_UINT32
これはunsigned long型を、ORG_UINT32と別名定義し使用するためのコードなのですが、このような型の定義をVBで行う場合どのようにすれば良いのでしょうか。
お知恵を拝借いただければと思います。
宜しくお願いしますm(_ _)m
別名定義は無理。
既存の各種基本型を使う事。
32ビット符号無し正数ならVB.NETではUInt32だな。
はっきりいって馬鹿質問。
機械的にCのソースをVB.NETに「逐語訳」できるとでも思っているのか。
黙ってCとVB.NETの入門書から勉強しろとしかいいようがない。
>>716 ご回答いただきありがとうございます。
別名定義が無理なのであれば、UInt32を使っていくほかありませんね。
どうもありがとうございましたm(_ _)m
質問です。
ウインドウの外枠(タイトルバー含む)を除いた中身の部分を
希望のサイズに指定するにはどうすればよいのでしょうか?
と言うのも、デザイナからFormのサイズで指定すると、外枠も含んでしまい
環境によってタイトルバーのサイズが違うから困ってるのです。
ClientSize
ありがとうゴザイマシタ。
>>717 機械的に移植出来るなんてハナから思っていませんよ(;´д`)
現在移植中の物についてはVB.NETに移植するにあたり、ほぼ作り直しになってます。
そのうえで、なるべく既存のものを流用したいという気持ちがありました。
型の名称を別名定義する事により、その型の変数の意味合いなんかがハッキリしてきますし、なるべく移植したかったわけです。
また、別名定義について独自で調査はいたのですが、解らずじまいで質問させていただきました。
と少し言い訳をしてみる…(;´_ゝ`)
714なのですが、どなたか助けてください。
お願いします。(必死)
ある変数を ボン! ってそのままファイルにしたいのですが、
その変数はバイナリかもしれないし、テキストかもしれません。
また、その逆で、ファイルを ボン! ってそのまま文字列型変数に
入れることもしたいのですが、どうすればよいのでしょうか?
開く方は、あらかじめ文字列型変数に空白を10000個ぐらい入れて
バイナリで開いてFileGet()でぶち込むという方法でなんとかなりました。
保存がどうもうまくいきません。
なんとなくワロタ
うおー。そのサイトすごいですね。
むずかしーけど頑張りマス。
729 :
デフォルトの名無しさん:05/02/15 01:14:07
プログラムランチャみたく実行している間(アクティブかどうかは問わず)にあるキーが押されたかどうか検出するにはどのようにしたらいいんでしょうか
全角と半角の入り混じった文字列を受け取り
半角にできるところは半角にして返すような
便利な関数はありませんでしょうか?
StrConv...こんなのそんなに使うもんなのかね。
>>732 たんくす。
さすが.net、すごいですね。
APIでやろうとしてました。
こんなのVBのレガシ関数だし。
結局内部でAPI呼んでるだけだし。
VB6.0にあったSendKeysはVB.NETにはありますでしょうか?
うーん。Keys.RControlKeyで右のコントロールキーが
拾えないのですがなぜでしょうか?
他のKeys.EnterやKeys.Deleteは拾えてます。
RControlKeyが拾えてしまったらControlKeyが拾えなくなるから。
Win32APIのGetKeyState/GetKeyboardStateを使うべし。
すごくださいけどできました。
case 131089
if getkeystate(163) < 0 then
msgbox("ヽ(´ー`)ノ")
end if
マジックナンバーはだせーな。
それより困りました。
case 131089
if getkeystate(163) < 0 then
System.Windows.Forms.SendKeys.SendWait("+({TAB})")
end if
とやっているのですが、なぜか最初の一回がShift+Tabが送られません。
どうしたものでしょう?
keybd_eventに置き換えたほうがよいでしょうか?
keybd_eventにしたらできました。
うーん。微妙
745 :
デフォルトの名無しさん:05/02/15 20:59:55
そういうことはVBSで十分だろ
>>724 有難うございました。教えてもらったサイトを見ながら何とかかんとか
SQLを実行できるようになりました。
なりました・・・が、ODBCドライバーでPostgreSQLに接続して
Select文を使って抽出したデータをデータグリッドの中に入れて
表示したいのですが、やり方が分かりません。
rs = cn.Execute("select * from testtable")
これでrsの中にはデータが来てることは来てるのですが、
どうやってデータグリッドに入れて表示するのでしょうか?
PHPやサーブレットならHTMLの組み合わせですぐできるんですが
VBはいかんせん勝手が違うように感じるためうまくいきませんです。
どうかご指導よろしくお願いします。
ひょっとするとcnはADODB.Recordset型か?
VB.NETでシングルトンパターンのクラスを作成したいのですが
簡単な例を教えてください。
それくらいGoogleに聞きなさい。
聞いてみたらわかりました。とんくす。
これでいいですか?
Imports Oracle.DataAccess.Client
Public Class clsOracle
'コネクションオブジェクト
Private Shared con As OracleConnection
'コネクションを取得する
Public Shared Function getOracleConnection() As OracleConnection
If IsNothing(con) Then
con = New OracleConnection()
con.ConnectionString = "User ID=scott;Password=tiger;Data Source=V920"
con.Open()
End If
Return con
End Function
End Class
VB.NETにsprintfのような関数はありますか?
String.Format
javaにはtry catch構文でthrowがあったと思うのですが
VB.NETにはありませんか?
TryもCatchもThrowもあるけどそれがなにか?
Perlには、Foreach や nextがありましたが、
VB.NETにはそれに該当するのはありませんか?
あるのであれば、どれか教えてください。
VB6時代のあるモジュールで宣言されていた
APIを.netでも使いたいと思います。
調べたところ
as any型の引数をとる場合
同名のAPI宣言を2つし、
as anyの部分を それぞれ as long と as string
にしろとなっています。
しかし宣言部に as any 型が二つ含まれている場合
4つ宣言しなければならない?
VB6.0 :
Declare Sub foo Lib "ex.DLL" (ByRef A As Any, ByRef B As Any)
VB.net
Declare Sub foo Lib "ex.DLL" (ByRef A As Long, ByRef B As Long)
Declare Sub foo Lib "ex.DLL" (ByRef A As Long, ByRef B As String)
Declare Sub foo Lib "ex.DLL" (ByRef A As String, ByRef B As Long)
Declare Sub foo Lib "ex.DLL" (ByRef A As String, ByRef B As String)
Dim i As Integer
For i = 0 To Me.Controls.Count - 1
If Me.Controls(i).Name.Substring(0, 3) = "txt" Then
Me.Controls(i).Text = ""
Me.Controls(i).BackColor = SystemColors.Window
End If
Next
というような処理をしているのですが、
全体的にダサいのですが、特に
If Me.Controls(i).Name.Substring(0, 3) = "txt" Then
がダサいです。
コントロールの型を取得して比較するよい方法はないでしょうか?
>>761 Is 演算子か、GetType を使いましょう。
リフレクションが絡むのでお勧めしません。
>>759 別にAs AnyをAs LongとAs Stringの二つにしなきゃいけない理由はない。
//As Longってほんとか? LongはInt64、つまり64ビット整数だぞ?
//ポインタを指してるんだろうからIntPtrで宣言すべき所だと思う。
実際に関数を使用する時にどう使うかが問題だ。
引数にStringしか使わないのならAs Stringだけでいい。
ポインタも文字列も引数になるというのなら両方書いた方が楽だが。
>>762 If Me.Controls(i).Name.Substring(0, 3) = "txt" Then
これでもいいということでしょうか?
試しに
If Me.Controls(i).GetType = System.Windows.Forms.TextBox Then
とやってみましたが、コンパイルできませんでした。
うーん。
>>766 キターーーーーーーーーーーーーーーーーー
Formから別のThreadを作って、その2つのThread間で情報をやり取りする手段は無いでしょうか?
詳しくは以下のようなことで困っています
***困っていること***
TCP/IPで受信した結果を基にTabControlにTabPageを追加するプログラムを作成しています
FormからThreadを作ってそこに受信部分を作ったのですが、
TabControlにTabPageを追加しようとするとフリーズします。
調べてみると、「別スレッドのコントロールに新たにコントロールを追加できない」ということがわかりました。
>>768 (1)「コントロールを操作するメソッド」を作る
(2)そのメソッドの引数に一致するDelegateを宣言する
(3)UIスレッドとは違うスレッドからコントロールを操作する時は、FormのInvokeメソッドまたはBeginInvokeメソッドを使う
と言う流れ。
VB6.0ではプロジェクト内のすべてのファイルから文字列が検索できましたが
VB.NETではどうやって検索すればいいでしょうか?
ファイル単位で検索は非常に面倒です。
>>760 どうもです。Foreachに関してはわかったのですが、nextに関しては載ってないような、、、
ここで言うnextはループ制御の事です。
残りのコードをスキップして判断文に制御をするやり方なのですが(lastで言う所のexit for)
>>769 ありがとうございます!
ちょっと知らない単語が出てきたので調べながら進めてみます。ありがとうございました。
>>771 C言語系で言うcontinueかね。
ContinueキーワードはVB.NET2005からの追加なので、それまでは
ループ終了部直前にラベルを作ってそこにGoToする、
Continueを使わないコーディングを行う、
該当部分をヘルパメソッド化する、
辺りで対処する。
s/VB.NET2005/VB2005
だね。
「.NET」という単語は死滅。
>>774 そういやそうだった。
しかしVB6までと違う言語という意味で.NET付きなのも意義があったと思うんだけどな。
WinFXを見越してVBFXとか……訳わからんか。先取りしすぎてるし。
>>724ですが、なんとか助けて頂けないでしょうか。
よろしくお願いします。
>>773 やはりその方法しかありませんか。
了解しました。答えてくださった方、ありがとうございました。
>>777 .netなのになんでDataSetじゃなくRecordSetを使ってるのかな?
RecordSetから仲介役にDataSetをはさんで、DataGridに表示する
ならこんな感じかと。
DataAdapter.Fill(DataSet, RecordSet, "適当な名称")
dataGrid1.SetDataBinding(DataSet, "適当な名称")
780 :
デフォルトの名無しさん:05/02/16 14:30:20
とても初歩的な質問ですが、お願いします。
Aのファイル読み、必要項目を修正してBファイルを作りたいと思います。
その際、Aファイルを
SELECT * FROM ファイルA で読み、
While Rs.Read で全件回したいのですが、
このWhile Rs.Read メソッド中にBファイルを開いて、
生成されたレコードを書き込む方法はありますでしょうか?
(レコードセットが既に開いていると言われてしまいます)
一度、Arryエリアに保存してから、Aファイルを閉じた後だと
Bファイルを書き込むこともできるのですが、これは馬鹿げた方法ですよね。。。
OracleStringからStringへ変換するにはどうしたらよいでしょうか?
ODP.NETです。
System.net.WebClientオブジェクトを使用してサーバーのaspを介してファイルの転送をしようとしています。
転送は実現しているのですがファイル名を送る方法で悩んでいます。
送信と同時にQueryStringプロパティで送信したら文字化けしてしまい上手くいきませんでした。
なにかいい方法はないでしょうか?
VB.NET関連のおすすめの書籍を教えてください。
必読書スレや書籍案内WEBにもVBの本はほとんど話題に出ないもので。。
>>783 テンプレ付近のサイトにいろいろ紹介されてると思う。
おまいさんの力量がわからないのに、お薦めはなに?って言われても
なぁ。
どなたかプリーズ
.ToString()してやりゃいいんじゃね。
>>787 それが、hoge.Valueの次のインテリセンスは.GetTypeしか
出てこなくてToStringはエラーになってしまいます。
Dim hoge As OracleParameter = _
cmd.Parameters.Add("hoge", _
OracleDbType.Varchar2, ParameterDirection.Output)
cnn.Open()
cmd.ExecuteNonQuery()
MsgBox(hoge.Value)
でhoge.valueがOracleStringはStringにできないとかなんとかの
エラーが出ました。
いいからhoge.Value.ToString()だ。
>>746の者なんですが、どうしてもよく分からないので
もう一回教えてください。
rs = cn.Execute("select * from testtable")
で、rsの中にはDBからデータが来てるとコマでは分かっているのですが
それをどうやればデータグリッドで表示できるのかさっぱりです。
rsはADODB.RecordSet型です。レコードセットとは1行1レコードとして
それがまとまっている物なんだと認識してきましたけど、これをデータグリッド
で表示するにはどうすればいいんでしょうか?
>>779さんの言うとおりにDataSetとかDataAdapterとかも調べたのですが
どうもピンときません。もしかしてレコードセットに格納されている内容を
データグリッドに表示するのは結構めんどくさい事なのでしょうか?
何度も同じ事聞いて非常に申し訳ありませんが、どうかよろしくお願いします。
>>724の.NET用のカスタムプロバイダを使えと。
ていうか779でいいじゃん。何が分からないのさ。
>>779,
>>795,
>>796 色々とありがとうございます。正直きついな〜と思ってましたが
もう少し頑張ってみようと思いました。
今の段階では管理ツールのODBCデータソースのシステムDSNに
PostgreSQLのODBCドライバーを設定して、接続しています。
データを受け取る以外のSQL(insertとかdeleteなど)は普通に動くのが
確認済みなので、後はデータグリッドで表示ってとこだけなのですが
頑張ってみようと思います。
初歩的な質問なのかも知れませんが、VBってDBへの接続方法が
OLEDBとかODBCやADODBなど、概念というか考え方が、ごちゃごちゃしてて
初心者の私には分かりづらかったんですが、どんな接続方法を取ったにしても
データグリッドへデータ連結ってのは可能なんですよね?
書式が違うとか、そんなレベルの問題だと思って頑張りたいと思います。
TransparencyKeyを黒に指定した場合、
フォームが黒になっていたらその部分が透過になりますが
これを見た目は黒の半透明で透過という状態には出来ないのでしょうか?
無理。
800 :
デフォルトの名無しさん:05/02/17 10:26:28
むりかぁ
ageチャタ
コントロールキーが押されるとひとつ前のコントロールに移動するために
下のコードを書いているのですが
テキストボックス間は移動してくれるのですが
ボタンは移動してくれませんでした。
'Shift+Tabを押す
keybd_event(Keys.ShiftKey, 0, 0, 0)
keybd_event(Keys.Tab, 0, 0, 0)
keybd_event(Keys.Tab, 0, KEYEVENTF_KEYUP, 0)
keybd_event(Keys.ShiftKey, 0, KEYEVENTF_KEYUP, 0)
試行錯誤してると
keybd_event(Keys.ShiftKey, 0, 0, 0)
Sleep(100)
keybd_event(Keys.Tab, 0, 0, 0)
keybd_event(Keys.Tab, 0, KEYEVENTF_KEYUP, 0)
keybd_event(Keys.ShiftKey, 0, KEYEVENTF_KEYUP, 0)
とSleepを入れると一応移動してくれました。
しかし、これではいまいちです。最適な方法はないでしょうか?
SelectNextControlメソッド。
ただしこのメソッドは検索起点となるコントロールが必要なので、
現在フォーカスが当たっているコントロールを見つけ出すメソッドを自前で実装する必要がある。
>>803 SelectNextControlメソッドで一つ前のコントロールへ
移動するにはどうしたらよいでしょうか?
すみません。応用が利かなくて
>>803 すみません。わかりました。
引数にありますね。_| ̄|○
VB6.0のright(hoge, 5)
ってどうやればいいでしょうか?
Stringの、SubstringメソッドとLengthメソッド組み合わせ。
Microsoft.VisualBasic.Right
>>803 現在フォーカスが当たっているコントロールを見つけ出すメソッドを自前で実装する必要がある。
Me.ActiveControl
>>807,808
ありがとうございます。
簡単そうなので
>>808さんのやりかたでやっておきます。
EnterキーとテンキーのところにあるEnterキーを区別したいのですが
GetKeyState()では区別できませんでした。
他に方法がありますでしょうか?
VK_RETURN(0D)
VK_SEPARATOR(6C)
>>814 ありがとうございます。試してみましたがだめでした。
PCがDellだからでしょうか・・・
OEMって?
818 :
デフォルトの名無しさん:05/02/17 22:17:42
RichTextBoxでさApendText & VbCrLfで行単位でテキストを数行つくったんだだよ。
んで、行単位でSelectして消そうとしたら、消すってのがないんだね。
何行目って選ぶにしたってLinesってのもつかえないし・・・
まぁえらぶにゃ〜選んだが、どうやってけすんだい?
RichTextBox.Select(StartPosition,Length)
RichTextBox.SelectText = "" <- これでなんで消えないんだい?
だれか教えてエロ人
おかげさまで、何とかSelect文で取得した結果を
データグリッドに表示することが出来ました。ありがとうございます。
そこで、また問題が出てきたのですが、
データグリッドに表示してある物を編集したいのです。
よくDB操作にあるInsert,Delete,Updateみたいなかんじで
グリッドの値を編集後、何かのボタンを押したらその値を
DBに保存するということは可能でしょうか?
現在、DBのテーブルを選べるようになっていて、テーブルごとに
フィールド数、型などが違うため、SQLのInsert,Delete,Update文は
使えないんじゃないかと思うんです。
質問ばかりで申し訳ありませんがヨロシクお願いします。
管理ツールのODBCソースでOdbcドライバーを使って
PostgreSQLと接続しています。
OleDBを使いたかったのですが、どうもPostgreSQLだと
うまくいかなかったので・・・
Dim dataadapter As Data.Odbc.OdbcDataAdapter
Dim command As Data.Odbc.OdbcDataCommand
Dim connection As Data.Odbc.OdbcConnection
Dim dataset As Dataset
connection.ConnectionString = "PostgreSQLへの接続文字列"
connection.Open()
command.Connection = connection
command.CommandText = "select * from testtable"
dataset.Table.Add("テーブル名")
dataadapter.Fill(dataset,"テーブル名")
datagrid.SetDataBinding(dataset,"テーブル名")
connection.Close()
うろ覚えでホント申し訳ないのですが、確かこんなカンジで
データグリッドにデータを表示することが出来まして
これを編集できるようにしたいのです。
どうかヨロシクお願いします。
>>811 アンマネージドだと何か問題あるんですか?
っていうかそもそも.NETのVBランタイムってアンマネージドなのか?
ハイッ!
ジャンガジャンガジャンガジャンガジャンガジャンガジャンガジャンガ
ジャンガジャンガジャンガジャジャ〜〜〜ン
>>821 いや、だからCommandBuilder使えって言ってるじゃん。
,net 2003でカレンダーコントロールをフォームに貼り付けて使っていると
環境の違いかどうか定かではないのですが
カレンダーのサイズと位置が勝手に変わってしまいます
カレンダーのサイズと位置を変えるような処理はしていないのですが
何か考えられる対策はありますか?
構造体内の構造体配列のマーシャリングがわかりません。
どなたかヒントだけでも
マーシャリングって何?
× SizeConse
○ SizeConst
テキストボックスにはIMEコントロールプロパティがありますが
たまに期待する状態になってくれない場合があります。
ImmGetContextなどのAPI群を使ったほうが確実なのでしょうか?
832 :
デフォルトの名無しさん:05/02/19 10:41:59
form1からボタンクリックイベントでform2を表示し、
Dim form2 As New Form2
form2.ShowDialog();
form2で[両方閉じる]ボタンをクリックするとform1とform2を閉じる処理をしたい。
どうやったらできるん?
>>831 内部ではWin32APIを呼んでるわけで、多分症状は変わらないと思うがね。
まあ意外な落とし穴が分かりやすくなるかも知れない。
//一般論として、ね。
>>832 form2にForm型のプロパティを作って、form1がform2を作った時に自分自身の参照をform2に渡す。
834 :
デフォルトの名無しさん:05/02/19 14:08:14
プログラムを書いているとき、
複数行まとめて、コメントにしたい('を付けて緑色にしたい)ときに、
何かいい方法ないでしょうか?
1行ずつ”シフト+7”をしていかなくてもいい方法があれば
教えてください。
>>835 つまらない釣りだ。
でもこういう「釣り」にも得意げに答える奴が確実にVBerには存在するのだな。
>>836 質問と釣りの見分け方を教えてください。
すみません。釣りではないので、教えてください。
いくら調べても見つからないです。
>>837 ツールバーに用意されてる単機能を、わざわざ質問することかな?
くだらない質問して、申し訳ありませんでした。
助かりました。ありがとうございました。
ほんとにまる1日探してました。
俺は結構コメントアウト使ってるから、呼び出しボタンをファンク
ションキーに割り当ててる。フリーのマクロソフトなんかでできる
から試してみそ。
>>840 気付かなければ質問しても全然おかしくないと思いますが、
あなたが釣りと断定した理由が知りたいです。
845 :
デフォルトの名無しさん:05/02/19 17:50:28
俺は836じゃねえけど、
「vb6 複数行 コメントアウト」でググれば
一発で出てくる物を1日もかけて探せないのじゃ
プログラマ止めた方が将来の為だな、疑いたくもなるよ。
846 :
デフォルトの名無しさん:05/02/19 18:12:14
簡単なテキストエディタをRichTextBoxを使用して作成しています。
RichTextBox1.Font = new Font("Arial", 12)
などとして、選択文字列の一部のフォントを変更するように試みているん
ですが、選択文字列に複数のフォントネームが混じっていると、エラーと
なってしまいます。たとえば、
あああああああいいいいいいいいい
のうち、「あ」がMSゴシック、「い」がMS明朝であった場合、「あ」と「い」
を同時に選択た状態でフォントを変更しようとすると、エラーとなってしまう
というわけです。これの回避方法をご教授ください! m(_ _)m
847 :
デフォルトの名無しさん:05/02/19 18:18:53
>>846 すいません、訂正です。
(誤)
RichTextBox1.Font = new Font("Arial", 12)
(正)
RichTextBox1.SelectionFont = new Font("Arial", 12)
>>845 あなたは他人の心配をできるような人間なのですか?
>>846 エラーの内容を一言一句間違いなく教えてください。
850 :
845:05/02/19 18:30:51
>848
一日だぜ、こんなのに金払うやついるか?
848さんどう思う。
>>850 まあまあ、放置した方が大人だって。
意見には激しく同意するけど。
「プログラマ辞めた方がいい」って言うより、社会人やめた方がいいな。
こいつ、Excel とかの機能も使えないんじゃないか? ( ´,_ゝ`) プッ
853 :
850:05/02/19 18:47:05
>851
すまん、次から放置する。
>>853 は結構いいやつ。
それにしても、もうちょっと自分で調べてから質問できないものかねぇ。
855 :
853:05/02/19 19:14:41
俺が悪かった、この辺で止めよう。
はじめから人をけなす気は無かったのだが、
VB.NETやC#をやってるとわからないことだらけで、
MSDNやGooglを駆使しなければとてもコードなんて書けない、
つまり、プログラムを書くという行為の中で、検索する
と言うことは、かなり重要になってる気がして、その辺を
真剣に考えた方がいいかなと思ったのだが、いかんせん
書き方が悪かった、俺も書き方の勉強しなければな。
>>850 あのー、話がどんどんそれてますけど。
元々の問題が何であったか思い出してください。
あなた、設計中にもそうやってどんどん発散していくのでしょうね。
857 :
デフォルトの名無しさん:05/02/19 20:24:53
放置、報知、法治、ホウチ、
ほうち、鵬値、邦地................
ここは「VB.NETの質問全般」を話題にするスレであって、質問者
の資質を問うところじゃないから、そういうスレ違いな話題を引っ
張るのはかんべんしてくれ。
ところで
>>849の返答はマダー?
859 :
デフォルトの名無しさん:05/02/19 20:41:01
>846
おいらの環境ではエラーにはならないな。
>>857 そういう書き込みをすること自体、放置できてないってこと
なんだけど。バカなんじゃないの、お前。
861 :
デフォルトの名無しさん:05/02/19 21:18:16
放置
862 :
デフォルトの名無しさん:05/02/20 00:33:07
こんばんは、Declareについて質問させてください。
与えられたファイル拡張子の文字列(たとえば".zip"など)から
エクスプローラで表示されるファイルのアイコン(16*16)を得るにはどのDeclareを使えばよいでしょうか。
サンプルなどがありましたら助かります。
アイコンが表示できる簡単なファイルブラウザを作ろうと思います。
よろしくおねがいいたします。
>>863 即答感謝です!まさにこれでした。ありがとうございます。
Odbc.Connectionを使ってDBと接続してるのですが、
DBのテーブル名一覧を取得するいい方法はないでしょうか?
Oledbなら使えそうなメソッドがあったんですが
Odbcはないっぽいです。
DBはPostgreSQLです。
何かいい方法があれば教えてください。よろしくお願いします。
>>864 たぶん
>>863は君の求めているものと違うと思う。
どっちかっていうとExtractAssociatedIconの方じゃないの?
msdnでapi調べてからググったらサンプルコードが出てきた。
>>865 Dim rs As ADODB.Recordset
Set rs = conn.Execute("select * from pg_tables")
Do While Not rs.EOF
Debug.Print rs.Fields("tablename") & "," & rs.Fields("tableowner")
rs.MoveNext
Loop
870 :
846:05/02/20 16:12:39
あれから、コードをいったん破棄し、再度ほとんど同じものを組んで
みたんですが、なぜかエラーが出なくなりました・・・。おさわがせ
しました。m(_ _)m
恥かきついでといっては何ですが、もう一つ質問させてください。
複数のフォントが混在した文字列を選択し、その部分のフォントや
フォントサイズ、太字や斜体といった文字の属性を変えたいんですが、
その際、次のコードを使用すると、いっぺんにフォントの種類・大きさ
属性などが変わってしまいます。
RichTextBox1.SelectionFont = new Font("Arial", 12, bold)
フォントの種類だけ、あるいは大きさだけ、太字や斜体にするだけ、
といった処理をするには、どのようにしたらよいでしょうか。 例えば、
あああああいいいいい
のうち、のうち、「あ」がMSゴシック、「い」がMS明朝であった場合、
「あ」と「い」を同時に選択た状態で、「あ」がMSゴシック、「い」が
MS明朝というのを保ったまま、サイズのみ変える、という処理です。
できないよ
>>871 レスありがとうございます! できないんですが・・・・ショック orz
参考になりました。ありがとうございました m(_ _)m
>>870 なんで自分の頭で物を考えようとしないの?
RichTextBoxなんて使ったことないが、MSDNでメンバ見る限り、
自分でコード書けば普通にできるでしょ?
874 :
デフォルトの名無しさん:05/02/20 20:41:24
>873
出来るけどかなりめんどう、文字一つ一つクラスを設定
する必要がある鴨
LDAPでADSに接続するのを初めて作ってみたのですが・・・
ボタンを押すとgetObjectするようにしたのですけど
接続しようとする瞬間に「ActiveXコンポーネントが作成できませんと・・」
OSパッチいれたりしたけど何故かうまくいきません。
短いプログラムなのですがさっぱりです
OS 2003 .netインストール済みです
文法もチェック済みです
プロの方よろしくお願いします
>>877 泣いてもだめ
ただで動くのはもはやプロではないからね
ポインタの加算ってどうやりますか?
Dim p as IntPtr
......
p.ToInt32 + 2
という式はOK?
okだよ。
882 :
デフォルトの名無しさん:05/02/21 14:07:49
本日はじめて、VB.NETでプログラムを作成しています。
プログラムの開始後に、デザイン画面で配置したコントロールが
すべて表示されないのですが、何か設定が必要なのでしょうか?
(名前もついていない小さいフォームが1つ出るだけです。)
VB6でこのような現象になったことがないので良くわからないのですが・・
変な事やってるだけだろ。
それ以上答えようもないな。
>>882 この行を消してない?
' この呼び出しは Windows フォーム デザイナで必要です。
InitializeComponent()
885 :
デフォルトの名無しさん:05/02/21 16:54:27
>>882 次はきっと「新しいプロジェクトでやり直したら、出来ました。」だ。
スキャンコードというヒントをいただきましたが
いまだ、解決できていません。
どなたかわかる方、お願いいたします。
>>882 いや、きっと知らない間に2枚目のFormを作ってて、そこにコント
ロールを貼り付けてただけだろ。スタートアップがForm1のままだ
から、実行しても空のフォームが表示されるだけ。
ソリューションエクスプローラにFormが複数登録されてないか?
コーディング中、ツールチップに
メソッドの説明など表示されますが
あれを自分で書くにはどうしたら?
>>889 自分で XML を書きましょう。
または VB Commenter をアドインで使いましょう。
>>888 読んだのですがスキャンコードというので区別することくらいしか
理解できていません。あー、オレってアホ。。。。
ProcessDialogKeyをオーバーライドしているのですが
ここで判定したいのですがどうしていいかわからないでいます。
ツリ―ビューで質問があります。
親 ┳ 子
┃ ┣ 子
┃ ┣ 子
┃ ┗ 子
┃
親 ┳ 子
┣ 子
┣ 子
┗ 子
同じ名称の親、同じ名称の子があるで、子のNodesを選択した時の親のIndexを取得したいのですが、どうすればよいでしょうか?
×同じ名称の親、同じ名称の子があるで
○同じ名称の親、同じ名称の子がある場合で
追記です
tagに親のIndexを格納しておく事も考えましたが、親のIndex番号が変化した場合、それにあわせて子のtagの情報も変化させなければなりません。
そのやり方はどうも違う気が、、、、
素人質問で申し訳有りません。
sender
ProcessCmdKeyなんてメソッドもあるがな。
ボタンのFlatStyleをSystemに変更すると、Imageが反映されなくなるのは何故ですか?
900 :
YOSHI:05/02/21 20:35:07
プログラム初心者です。
VB.NET+ORACLE10gで勉強を開始しました。
VB.NETに関しては基本的なことは分かるようになったのですが
Oracleとのつなぎ方がよく分かりません。
ODP.NETを利用して接続したいのですが、どのように
プログラムを書けばよいのかを記してある入門者用サイトや
書籍等ご存知であれば教えていただけませんでしょうか?
(当方本当に初心者で、OTNのサイトにあった解説だと
理解できませんでした・・・)
>>899 thx
If e.Node.Parent Is Nothing Then
で識別してから、e.Node.Parent.Index で取得すればいいのね。
ProcessKeyEventArgsというメソッドをオーバーライドして
m.LParamを見るとEnterキーとテンキーのEnterキーで
値が違うことがわかりました。一歩前進したような気がします。
>>896 見逃してた。_| ̄|○
こっちのほうがよさそうです。
If msg.LParam.ToString = "1835009" Then
'通常のEnterキー
Else
'10キーのEnterキー
End If
としました。ダサいですか?
>>905 君の環境で動けば良いだけならそれで良いだろうね。
>>906 不特定多数というわけではないですが
なるべく環境依存にはしたくありません。
どうしましょう。
設定画面を作ってそこでEnterキーと10キーのEnterキーを
押してもらってその値を保存しておくようにすればいいかなー
>>908 最終的にはそうなると思う。
キーリピートが発生してもLParamは変わったりするから気をつけてな。
判別に必要な部分だけを取り出してやらないといけない。
>>909 ほんとだ。キーを押し続けると値も変わっちゃう。
ありがd!
Console.WritelineとDebug.Writelineの違いってなんでしょうか?
標準出力(普通はコマンドプロンプト)に書き出すか、
Debug.Listenersプロパティで指定されたリスナ(普通はデバッグウィンドウ)に書き出すか。
DebugクラスによるものはReleaseビルドだとILコードから削除されたり。
ペイントソフトでよくあるバケツツールを再現したいんですけど、
再帰でやるとスッタクオーバーフローになります。
他にいい方法はないでしょうか?
>>913 バグがあるからで、再帰のせいじゃない。
>>914 塗りつぶす範囲が小さければうまくいくので
バグではないと思うんですけどねぇ・・・
何回再起呼び出ししてる?
917 :
デフォルトの名無しさん:05/02/22 17:30:26
ここはコードを見ないでバグの話をする板ですか。
参照の追加で自作DLLを参照すると
プロジェクトフォルダのbinにコピーされてきて
うざいのです。
参照元のDLLを修正したときとかも
再度参照し直さなければなりませんか?
参照のプロパティのローカルコピー
ど初心者です。初めてから数日なんですが・・・・
複数のaspxを展開して編集しているのですが
デバッグ時、思ったデータがデバッグできません。
スタートページに設定してデバッグしたのですが、自分の意とした
ものがデバッグできないのです。
切り替える方法を教えてください。
スレッドが終了しているかどうかを判断するには
どうしたらよいでしょうか。
ThreadStateプロパティ見れ。
>>869 遅くなりましたが、教えてもらった方法で実現できました。
どうも有難うございます。お世話になりました〜。
924 :
YOSHI:05/02/23 11:44:07
VB.NET初心者です。(っていうかプログラム初心者)
教則本にしたがってオラクルとの接続をADO.NETを通じて
行おうとしているのですが、本にはASP.NETのやり方は
書いてあるのですが、VB.NETでの作り方は載ってません
でした。(「オラクルプログラミング教習所」という本。
正確に言うとVB6とASP.NETのやり方は載っているのだが
肝心のVB.NETが載ってなかった)
下記はそこに出てくるASP.NETでのコーディングなのですが
これをVB.NETにコピーペーストすると、最後のGRID1のところで
エラーになります。
どなたかアドバイスいただけませんでしょうか?
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
Dim myConnString As String = "Data Source=ORCL;user ID=system;Password=plusit;"
Dim cn As New OracleConnection(myConnString)
cn.Open()
Dim cmd As New OracleCommand("Select * from movie2", cn)
Dim dr As OracleDataReader = cmd.ExecuteReader()
DataGrid1.DataSource = dr
DataGrid1.DataBind()
フォームにデータグリッドが張ってないって言うオチじゃないことを願う
切に願う
ていうかさー、System.Windows.Forms.DataGridにDataBindメソッドなんて無いんだよね。
別に要らないし。
VB.NETを使用してIEのお気に入りをインポートし
それを動的にコンテキストメニューに追加したいと考えています。
そこで質問があるのですが
IEのお気に入りをインポートする時は
フォルダを直接みてurlを開く方法以外にありますか?
また、動的にコンテキストメニューに追加した際に
イベントの発生はどのようにしたら出来るのでしょうか?
よろしくお願い致します。
長文失礼しました。
>>927 > また、動的にコンテキストメニューに追加した際に
> イベントの発生はどのようにしたら出来るのでしょうか?
MenuItemのコンストラクタで
New MenuItem("名前", AddressOf 実行メソッド名)
とするか、New済みのitem As MenuItemに対して
AddHandler item.Click, AddressOf 実行メソッド名
とするか。
実行メソッドの引数はわかるよね。動的に追加するのに対してHandles句は要らない。
Detailsタイプのリストビューで非表示のカラムを作成することはできますか?
VB6.0のvariant型は.NETにはないでしょうか?
nullも保存できるString型が欲しいのですが・・・
>>933 ありがd
>>934 DBNullはNothingに変換して保存するということでしょうか?
937 :
デフォルトの名無しさん:05/02/23 19:39:05
vb.netでcab32.dll(ver0.98)を用いてcabファイルを解凍したいのですがうまくいきません。
CabCheckArchiveまではよいのですが、Cabコマンド時に正常終了の「0」ではなく
「8599934591」が返ってきてしまいます。どこに問題があるのかご指摘願えないでしょうか?
(他の解凍ツールでは問題なく解凍できるのでPGが間違っていると思うのですが・・)
'Module側
Public Declare Function CabGetVersion Lib "cab32.dll" () As Short
Public Declare Function CabGetRunning Lib "cab32.dll" () As Boolean
Public Declare Function CabCheckArchive Lib "cab32.dll" (ByVal szFileName As String, ByVal imode As Integer) As Boolean
Public Declare Function Cab Lib "cab32.dll" (ByVal hWnd As Long, ByVal szCmdLine As String, ByVal szOutput As String, ByVal dwSize As Long) As Long
'Form側
Dim archiveFile As String = "E:\a\testdata1.cab"
Dim extractDir As String = "E:\a\"
If Not System.IO.File.Exists(archiveFile) Then
Throw New ApplicationException("ファイルが見つかりません")
End If
Try
CabGetVersion()
Catch
Throw New ApplicationException("Versionが不正です")
End Try
If CabGetRunning Then
Throw New ApplicationException("現在Cab32.dllが使われています")
End If
If CabCheckArchive(archiveFile, 0) = False Then
Throw New ApplicationException(archiveFile & "は展開できないファイルです")
End If
Dim ret As Long = Cab(Me.Handle.ToInt64, String.Format("-x {0} {1} *.*", archiveFile, extractDir), Nothing, 30000)
cab32.dllの問題
940 :
デフォルトの名無しさん:05/02/23 20:31:21
え?
なんか考える余地があるの?
VかHかの違いしか見あたらないんだけど。
>>943 いや、VScrolledメソッドに習って、HScrolledメソッド動かそうとしても
どうも上手くいかんのです。
'パラメータで渡すScrollEventArgsオブジェクトを作成
Dim args As New ScrollEventArgs(ScrollEventType.LargeIncrement, 10)
'GridVScrolledメソッドを呼び出す
t.InvokeMember("GridVScrolled", _
System.Reflection.BindingFlags.NonPublic Or _
System.Reflection.BindingFlags.Instance Or _
System.Reflection.BindingFlags.InvokeMethod, _
Nothing, _
DataGrid1, _
New Object() {DataGrid1, args})
これのGridVScrolledをGridHScrolledに変えるだけじゃダメみたいなんで
GridHScrolledのメソッド調べてみたら、
>>942みたいな感じでVかHかの
違いしか見当たらないんで、さてどうするかって感じです。
ScrollEventArgsが、横スクロールの場合特別な何かが必要なのか、
それともHScrolledメソッドに何かあるのか悩んでる感じです。
945 :
デフォルトの名無しさん:05/02/23 23:12:04
タスクマネージャに出てくるアプリケーションの名前の一覧を取得する方法はありませんか?
ググってみたんですが、プロセス名一覧は出せることはわかったのですが…
>>945 それはトップレベルウィンドウのタイトルと言う意味?
ならProcessのMainWindowTitleプロパティを見ればいいが。
MainWindowHandleプロパティでメインウィンドウがあるかどうか確かめるのがポイント。
Date型の変数に入っている日付をYYYYMMDDの形で取り出したいのですが
どのようにすればよいでしょうか?
ボタンを窪ませたままにするには?
>>949 左端と上端に灰色の線を引き、
右端と下端に白色の線を引く
ReDimで確保した動的配列はEraseしたほうがよいですか?
まあ、したほうがよいとは思いますが、GCが開放してくれるなら
まかせようと思うのですけど。
クライアントアプリなのでたまに開放されないぐらい問題ないので。
>>951 気にせず放置。
これマネージドリソースの基本。
winAPI ExtFloodFill を.NETで使うにはどうしたらいいんでしょうか?
メソッドを再入不可にしたい場合はどうしたらよいでしょうか?
テキストボックスを継承して、数値のみしか受け付けないテキストボックスを以下のように
作成しました。これですと ctrl+c、ctrl+x、ctrl+v も使用できないのです。
コピペを可能にするにはどのようにすればよいのでしょうか??
Public Class NumTextBox
Inherits System.Windows.Forms.TextBox
#Region " コンポーネント デザイナで生成されたコード "
Protected Overrides Sub OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs)
Dim c As String = e.KeyChar
If Not IsNumeric(c) And c <> vbBack Then
e.Handled = True '処理を止める
Else
MyBase.OnKeyPress(e)
End If
End Sub
End Class
>>959 OnTextChangedで制御したら?
>>959 そういう問題ぐらいは自分でいろいろ試行錯誤して解決できることが
PGに必要な最低限の資質だと思う。
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
Console.WriteLine(e.KeyData.ToString)
End Sub
LinkLabelコントロールに、クリップボードからテキストを貼り付けたとき、
URLやメールアドレスを抽出して、それをハイパーリンクとしてLinkLabel
のLinks.Addで加えたいと思っているんですが。。。テキストのどこから
どこまでがURLあるいはメアドかを判定する方法で困っています。なにか
いい方法ないでしょうか。
URLの始まりは、「http:」「ftp:」などで、Instr関数で検索すればいいと
思うんですが、どこまでがURLかを判定できないでいます。また、メアドに
関しては、完全にお手上げ状態でして。。。
>>962 正規表現Regexクラスを使えば良い。
URLの実装は割と簡単。
メールアドレスはまともに実装しようとすると死ねるので適度に手を抜いて。
正規表現って何とかどう書けばいいのとかはググれ。
>>963 うおーー素早いレスありがとうございます! 助かりましたーこれから
勉強します! がんばります〜〜〜
function conv_hex( param )
{
var hex="";
for(var i=0; i<param.length; i++){
hex = hex + param.charCodeAt(i).toString(16);
}
return hex;
}
↑
javascriptで文字列から無理矢理16進数に変換した文字列を
vbsで10進数の文字列に戻したいんですがどう記述すればいいでしょうか?
他のスレですれ違いだと言われたのでこちらに書き込みさせて頂きます(´・ω・`)
文字列が欲しいだけなら10進数にする必要ないと思う
Val("&h"+hex)
968 :
デフォルトの名無しさん:05/02/25 12:00:02
VBAとVBA.NETではどちらが習得しやすい言語でしょうか?
VBA.NETという言語が存在しない現状、VBAと答えざるを得ない。
フォーム上にWord、もしくはExcelの文書を表示、編集することは可能だろうか?
WebBrowserってコンポーネントで開けるには開けるんだが、
ファイルを開いた時ダウンロードの確認が出てしまう・・・
「開く」を選択すればいいんだが・・・
972 :
デフォルトの名無しさん:05/02/25 13:29:34
今から学習するならVBかVB.NETどっちがいいの?
973 :
デフォルトの名無しさん:05/02/25 14:23:53
974 :
デフォルトの名無しさん:05/02/25 15:21:26
言語 将来性 難易度
VB6 × ◎
C++ △ ×
VB.NET ○ ○
C# ◎ ○
Java ○ △
ANSI C ○ △
975 :
デフォルトの名無しさん:05/02/25 15:23:10
ASP.NETのモバイルコントロールでIMODE用サイトを作成しています。
機種によってはcookieを使用できないようなのでweb.configの
cookielessを"true"に設定しています。
また機種によってはリダイレクトのURLがフルパスでないと動かない場合があるので
web.configに以下の設定を追加しています。
<httpRuntime useFullyQualifiedRedirectUrl="true" />
上記設定でSSLなし(
http://〜でアクセス)では正常に稼動するのですが
SSL有り(
https://〜でアクセス)の時にリダイレクトのURLが
http://〜になってしまいタイムアウトしてしまいます。
(携帯) (APサーバー)
https://〜でアクセス →
←
http://〜でリダイレクトURLを返信
受信したURL(
http://〜)で再アクセス →
タイムアウトエラーが表示 ← タイムアウト
リダイレクトのURLが
https://〜で帰ってきてくれたら解決できそうなのですが
方法が見つからなくて困っています。
<httpRuntime useFullyQualifiedRedirectUrl="true" />
はSSL(HTTPS)に対応していないのでしょうか?
どなたか知っている方、教えてください。
よろしくお願いします。
978 :
デフォルトの名無しさん:05/02/25 16:05:04
>>978 だめでしょう。
2ch だって、コミュニティなんだからね。
>>972 俺には流石に発売中止になっている製品を勧めることは出来ないよorz
その2択ならVB.NETにしとけ。
>>980 俺も賛成。
VB厨にならないためにも、VB.NETからやるべきだ。
JavaかC++やってれば楽勝。
982 :
デフォルトの名無しさん:05/02/25 18:21:06
>>979 ごめんなさい
めちゃくちゃ悩んでるもんで
httpsでアクセスしてリダイレクトもhttpsで
返ってくることさえできれば・・・
983 :
デフォルトの名無しさん:05/02/25 19:02:08
すみませんが教えていただけないでしょうか?
vbでデータベースを作成してるのですが、
フォームが2つあって1つは[取引先住所録]、もう1つは[社員の住所録]です。
[社員の住所録]のとき登録した社員名を[取引先住所録]で担当ヘルパーとして選択できるようにしたいのです。
それで[社員の住所録]で作成したxsdファイルを[取引先住所録]フォームで読み込みたいのですがどうしたらよいのでしょうか?
よろしくおねがいします。
スレが終わり際なのに質問するのは心苦しいんだけど。
VB.NET 2005 Express Edition betaでプログラム中。
Dim outputBitmap As New System.Drawing.Bitmap(100, 100)
Dim g As Graphics = Graphics.FromImage(outputBitmap)
'出力用のBitmapと、それに絵を描くためのGraphicsを用意
g.FillEllipse(Brushes.Black, 50, 50, 20, 20)
'絵を描く
この後、gの中身を保存するにはどうしたらいい?
outputBitmap.Save("hoge.bmp")
だと100*100の白い絵が保存される・・・orz
>984
hoge.bmpを消してからもう一度やってみて。
すまん。Clearメソッドを入れてやってみて
↓
g.Clear(Color.White)
g.FillEllipse(Brushes.Black, 50, 50, 20, 20)
bmpを表示したアプリケーションが透明に対応してないだけで
コード自体に問題があったわけじゃぁない。
Tab区切りテキストを出力したいのですが
.NETならではの書き方はありますか?
普通にfopenしてprintfしていけばいいですか?
printfじゃだめだなw
それは置いといて。
StreamWriterクラスでも使えば.netしてるぜーって
感じになるんでねーの?ならんか。
フォームの幅をかなり小さい値にすると、勝手に広げられて
しまいます。(タイトルの文字が見えるようにされるのでしょうか?)
この、自動的に幅を広くしてしまう機能を避けて、指定した
小さい幅にするにはどうすればよいでしょうか。
FormBorderStyleを変えると可能ではある。
FormBorderStyleは普通にSizableにしているのですが、
何に設定すればよいでしょうか。
SizableToolWindowとか
試行錯誤してくれ。それ以上のことは胃炎