うまくいきません。
コンパイルが通らないのか例外がスローされるのか明記してください。
コンパイルが通らない場合、タスク一覧の説明を書いてください。
例⇒(1267): ) が必要です。
例外がスローされる場合、
例⇒'System.Xml.XmlException' のハンドルされていない例外が system.xml.dll で発生しました。
追加情報 : システム エラーです。
上記に当てはまらない場合は詳細に説明してください。
エラーメッセージが出るならどういったことをするとエラーメッセージが出るのか、
またエラーメッセージの文も併せて書いてください。
テンプレ完
Graphics.FromImageでimageから画像をコピーするとそのままコピーされますが、
DirectDrawのbitbltのような背景色を透過させてコピーするようなメソッドはありませんか?
>Graphics.FromImageでimageから画像をコピー
これ意味わかんないのは俺だけ?
背景色でMakeTransparent
まちがいた。Graphics.DrawImageだ。Fromじゃねぇ
>>14 ありがとん
うああ
がんばってますねみなさん。
Insider更新されて、Myキーワードについてかかれてますよ。
俺は、設定は、XMLファイルにしてたんだけど、My.Settingですむようになるんかな
クラスの継承について説明されてるページありませんか?
ステータスバーにいくつかパネルがあって、そのうちの
特定のパネルがクリックされた場合だけある処理を
実行したいのですが、どのようにすれば可能でしょうか。
PanelClickイベントのハンドラの引数eにあるだろ。
>>23 うわー、PanelClickっていうイベントがあったんですかー
ありがとうございました。
25 :
デフォルトの名無しさん:05/02/28 00:19:53
Dock で、例えば Fill に設定するコントロールを一番初めに作成してしまうと、
後からコントロールを追加した場合、下に隠れてしまいます。
これは事前に作成する順序を気をつけるしかないのでしょうか。
それともどこかで、作成したコントロールの順序?を変更等して対応できるのでしょうか。
>>27 最前面、最前列ですね!
ありがとうございました。
リストビューで教えてください。
DetailsタイプのリストビューでFullRowSelectがTrueのもので
フォーカスがリストビューから他のボタンなどのコントロールに移ったあとでも
リストビューの選択状態が維持される方法を教えてください。
>>28 プロパティのHideSelectionだっけかな
デフォルトボタンを指定したいのですが
defaultプロパティがありません。
どうしたらよいでしょうか?
FormのAcceptButtonプロパティかね。
>>32 おぉ!たんくす。
フォームのプロパティになっていたとは
34 :
デフォルトの名無しさん:05/02/28 11:40:09
VB.NETでActivXコントロールは作成できないのでしょうか?
VB.NETでプログラムを作ってたのに、VB6で作り直しかな・・・
>>35さん
ありがとうございます。調べてみます。
Visual Studio 2003 です。
VB.NET で C# みたいな /// と入力してできるコメント(XMl コメント?)
を入力する事はできないんでしょうか?
VB で作成したクラスライブラリなどの引数など、
Visual Studio のインテリセンスに表示させたい場合は、
どのようにコメントを書けばよいのでしょうか?
よろしくお願いします
VB6.0のLeftBに相当するメソッドは.netにはありませんか?
なにせUnicodeなもんだから、バイト数=文字数×2で固定だからなぁ。
41 :
デフォルトの名無しさん:05/02/28 16:08:07
質問です。
自分(Form)がshowで表示されたのかshowDialogで表示されたのか
分かるプロパティとかありませんか?
FormのModalプロパティ
43 :
デフォルトの名無しさん:05/02/28 16:29:29
frm.modal = true は show() で
frm.modal = false で showDialog() なんですね〜。
ありがとうございました。
>>44 うむ、VB Commenterみたいなアドインを使うか、
VS2005を待てって感じで砂。
46 :
デフォルトの名無しさん:05/02/28 22:06:37
Vb.net Standard Version2003を使用しています。
プロジェクトにアイコンを追加して、ビルドアクションを「埋め込まれたリソース」としてビルドしました。
適当なショートカットのプロパティからアイコン変更をしようとしてビルドされたファイルを指定したんですが、
アイコンが表示されません。
「アプリケーションのアイコン」に指定したアイコンは表示されます。
VB6の時はできたんですが、.netではできないのでしょうか?
普通はフォームのタイトルバーをドラッグすると位置を動かすことが
できますが、X座標だけ変更不可とすることはできるでしょうか。
画面の左端にしか置けない(ただし、上下には動かせる)というのを
実現したいと思っています。
すいません。補足です。
単純にMoveイベントの中でMe.Left = 0でもいいのですが、
それだとドラッグ中にフォームの枠だけは移動できてしまうので
できればこれをできなくしたい、ということです。
分かりにくくて申し訳ありません。
49 :
デフォルトの名無しさん:05/02/28 22:57:49
ローカルで動く.NETプログラムをWEB上から呼び出すようにしたいのですが、
どうすれば良いのでしょうか?
ActiveX? APS.NET? どちらでも実現可能なのでしょうか?
メニューバーやステータスバー等の背景色を、独自の色や画像で描画するには
どうすればいいのでしょうか?
「オーナードロー?を使えばいいらしい」というところまではどうにかわかった
のですが、具体的にどうコードを書けばいいのかわからず困っています。
ソリューションエクスプローラーでプロジェクトから削除すると
一時的にプロジェクトからはずれるだけで表示自体は残るはずですよねえ・・・・
表示も消えてしまうんですが。。。
何か自分が間違っているのでしょうか?
なんの表示さ。
略しすぎですいません。
ソリューションエクスプローラーで表示する作成したASPです。
デバッグ作業する為、新規作成したもの以外のASPをプロジェクトから
削除したのですが表示が消えました。
昨日、PCのOSがあぼーんしてしまったのですべて入れなおしで
もちろんVB.NETも入れなおししました。
入れなおしする前の作業ではプロジェクトからASPを削除すると
表示は出ているままでASPファイル名は残ってました。
なにぶん初心者なので・・いろいろやっているので先に自己解決したらすいません。
この肝心なところだけを巧みにぼかす手腕には感嘆を覚えるほか無い。
>>51さん
ご返答ありがとうございます。 見てみましたが、ファイルのI/Oに制限が
ありすぎるので、使えないみたいです。 他の方法を検討してみます。
でたー
なにぶん初心者なので
>>57 「具体的に」何をどうしたいのか書けば助言できるかも知れないがね。
>49のじゃ曖昧すぎてどうにも。
自己解決しました。ご迷惑おかけしました。
>>56 貴重なご意見ありがとうございます。
>>58 初めて一ヶ月足らずなので初心者ですが。それがなにか?
リストビューに非表示カラムを作成することはできないでしょうか?
できない。
>>62 みなさんがこういったことをしたい場合、どのような代替案がありますか?
単純なのはWidthを0にする。ユーザにカラム幅を操作されたら見える。
.NET 2.0でColumnWidthChangingイベントが追加されるのでそれならカラム幅の調整のキャンセルも可能。
普通は見せたくないのはListViewItemのTagに突っ込む。
動的にカラムの表示非表示を上手い事操作する手段は無さげ。サブアイテムがインデックスでしか管理されてないから。
改めてカラム&アイテムの作り直し。
それが不満ならDataGridに行くとか。
COM オブジェクトまわりで質問です。
Me.comObject.value("ret")
のように COM オブジェクトが処理結果を返してくるのですが、これを
VB.NET で
if (Convert.ToInt32(Me.comObject.value("ret")) = 0) then
のように処理したいのですが、
型 '_ComObject' から '型 'Long' へのキャストが有効ではありません。
とエラーになってしまいます。上記ような判定を行なうには
どのように処理すべきなのでしょうか?
よろしくお願いします。
>>65 _ComObjectを返すって事は返値が単純型でないような気がするが、
取りあえずCTypeでキャストしてみたらどうだ。
>>64 おっ!
tagがあったんですか?
やってみます。スペシャルさんくす。
>>66 ありがとうございます。 CType でキャストしてみたところ、やはり同様に
型 '_ComObject' から '型 'Long' へのキャストが有効ではありません。
となってしまいました。他に試す事があればアドバイスください。
よろしくお願いします。
そのCOMのリファレンスを読むことだな。
valueメソッドの返値が何型か分からなければどうしようもなかろ。
あとLongは符号付き64bit整数だがそれでいいのか?
>>70 戻値の型は Int のはずなんですよね。
なので、CInt,CLng どちらも試したのですが、
どちらも同じようにキャストでエラーが出てしまうんです。
他に何かアドバイスがあればお願いします。
panelのautoscrollのscrollイベントを入手するにはどうしたらいいんでしょうか?
>>71 単純型ならそれに一致した型が返ってくる。
例えばADODB.StreamのtypeプロパティはSystem.Int32だ。
そうでなく_ComObjectが返ってくるって事は単純型じゃないって事になる。
何らかの構造体とかそんなんではないのか?
いずれにせよそのCOMがなんなのか分からない以上、アドバイスも出せないね。
いっそ参照設定で事前バインディングすればどうだ。
>>72 Panelの継承クラスを作って、WndProcをオーバーライドして、WM_VSCROLL/WM_HSCROLLを処理する。
>> 73
レイトバインディングじゃなきゃならない理由がありまして…。
できるものな事前バインディングにしたいのですが…。
単純型ではないのですか。そういう事ですか。COM の仕様を把握しないと
いけないって事ですね。ありがとうございます。
ちなみに、同じ COM オブジェクトを VBA から操作するコードがあって、それは
if (comObject.value("ret") = 0) then
で問題なく処理できているんですよね…。同じく CreateObject しているので
参照設定云々はやっていません。
VBA と VB.NET の動きが違うって事なのでしょうね…
COM の資料をあさってみます。ありがとうございました。
いやさ、取りあえず実験のためだけでも事前バインディングして何型で扱えばいいのかチェックすればいいじゃん。
>>73 記述の仕方がよくわからないんですけど・・・。
>>76 どれが?
・Panelの継承クラスを作って、
・WndProcをオーバーライドして、
・WM_VSCROLL/WM_HSCROLLを処理する。
ちなみに後ろ2つは纏めてキーワードをぐぐればトップにその記事が出たりするけどな。
>>77 すいません出来ました。
ただ処理のところオブジェクト参照が必要ってでるのはどうしたらいいんでしょう?
オブジェクト指向を一から説明する事になるので省略。
Panelの代わりに作った継承クラスを使う。
VB.NET Standard 2003 で(.NET Frameworkではなく)VB6ランタイムライブラリを
使うアプリは作れますか?
81 :
デフォルトの名無しさん:05/03/01 21:59:22
超初心者です
ここでこんなこと聞くのも痛いのですが
インストールは下もののさっぱり意味不明です。
こんなワタクシメにもわかる,解説書なりページを教えてください。
m(_ _)m
82 :
デフォルトの名無しさん:05/03/01 22:23:19
今までデバッグの時にはウォッチウィンドウを無条件に使ってきたのですが、
ローカルウィンドウ と
イミディエイトウィンドウ と
ウォッチウィンドウ
はそれぞれ何が違うのでしょうか。
よろしくおねがいいたします。
83 :
デフォルトの名無しさん:05/03/01 22:36:46
Visual Studio .NET Professional 2003を親戚の大学生に
アカデミーパックを買わせて、10万ほど得しようと考えてます。
何か問題がありますか?
>>81 っ[www.amazon.jp]
>>82 ライセンス上、学生じゃないお前さんは買ってもらったソフトを使えない。
アカデミックエディションからは、VS2005にアップグレード出来ない可能性が高い。
毎度、アカデミック版を買うと結構高くつく。
安く上げたいならVS2005 Express Edition βでも使っておけ。
>>85 アップグレードだって4万近くかかるのに、アカデミーは2万9千。
毎度アカデミー買っても得しそうだ。
ライセンス? それって食べられるの?
87 :
デフォルトの名無しさん:05/03/02 11:01:41
違法とわかっていて、聞いてくるやつは無視。
だれか、C1PrintDocumentとか使ってるのいねーかな?
C1PrintPreviewで画面出力して印刷の手順なのだが
ボタン1個作って押すと印刷するのだが、ボタンから印刷するとA3設定のはずの
用紙がA4で出てくるのだよorz
C1PrintPreviewでのデフォルトのツールバーの使えばA3で出てくるのだが・・
VB.NET
Private Sub C1PrintPreview1_PrintQueryPageSettings(ByVal sender As Object, _
ByVal e As System.Drawing.Printing.QueryPageSettingsEventArgs) Handles _
C1PrintPreview1.PrintQueryPageSettings
e.PageSettings = C1PrintDocument1.PageSettings
End Sub
これだと、イベント発生時にA3の用紙でA4のサイズの内容がでてきてしまう・・
よかったら、教えてください
長文スマソ
なんだよ、C1PrintDocumentだのC1PrintPreviewって。。。
そんなもん誰も知らねえよ。
俺様の命名した変数の型は世界中誰でも知ってるはずニダ、ってか?
>>87 OKOK。違法かそうでないかの違いしかなく、中身は全く同じという確認を取りたかっただけだ。
すでに開いているフォームへのフォーカス移動の方法を教えてください。
frmForm1とfrmForm2がありまして、frmForm1はメニュー画面(ボタンが数個のみ)で、そこにあるボタン(cmdForm1)から
frmForm2をShow()を使ってモードレス(これは必須)に呼び出しています。しかし、モードレスであるがために何度でも
frmForm1のcmdForm1押せてしまい、複数のfrmForm2が開いてしまいます。
希望する動作としてはfrmForm2が開いていないときにcmdForm1が押された場合はfrmForm2を開き、すでに開いている場合には
その開いているfrmForm2にフォーカスを移す、というものです。frmForm2上にあるコントロールにFocus()なども試して
みたのですが効果がありませんでした。
どのように上記を実現すればよいかおわかりになりましたらアドバイスいただけないでしょうか?
>>92 > frmForm1のcmdForm1押せてしまい、複数のfrmForm2が開いてしまいます。
そりゃボタンを押すたびにForm2をNewしてたらそうなるだろう。
frmForm2はForm1のメンバとして宣言すればいい。
Private frmForm2 As New Form2()
あとはボタンを押したらShowとActivateだ。
>>93 ありがとうございます。言われてみれば当然のことでした・・・。
いくら本やネットを調べても対処方法がみつからなかったのはあまりに
当然のことだったからのようです。(´・ω・`)
すっかりはまっていたので本当に助かりました。
>>91 グレープに聞けばいいじゃん。たしかあそこのサポート評判良いんでしょ。
てかグレープのコンポーネントボり過ぎ。米ComponentOneとか
DataDynamicsから直接買った方が安いよね。
白地に黒字というのがつらいのですが
コードエディタを黒地に白地にできますか?
>>95 ああいうのはサポート代が寧ろ代金のメインではないか?
確かに高いと思うけどね。
まあ基本的に対象は企業なんであって大した問題じゃないんだろうな。
>>96 できる。
それぐらい探せ。
98 :
デフォルトの名無しさん:05/03/02 18:40:59
>>90 買ってから後悔するんだな、ウフフ......
99 :
デフォルトの名無しさん:05/03/02 18:42:54
100 :
デフォルトの名無しさん:05/03/02 19:14:15
100get
>>96 表示のプロパティページでも見ろや。
っつーか背景黒にしたいって、、
ひょっとしてcobolerか?
>>99 VS.NET2002って「最新版の有無のチェック」でエラーが出てたから
とうに見捨てられてたと思ってたよ。これも直ってました(笑)。
>>85 放送大学とかに入学してお前自身が学生になればライセンス上は問題ない。
104 :
デフォルトの名無しさん:05/03/02 20:42:12
>>85 おまえニートだろう、買ってみろ、買って後悔しろ
アカデミックエディションはおまえのようなやつの為に
有るのだ。 フフフ...............
105 :
デフォルトの名無しさん:05/03/02 20:55:13
参照渡しについて教えてください。
Dim s As Integer
s = 5
XP(s)
MessageBox.show(s)
Public sub xp(ByRef Date As Integer)
Date = Date * 100
End sub
そもそも上記のコードは何がしたいんだ(汗
あとはFunctionプロシージャとか・・・・・。
どこで呼び出されたり呼び出したり、値を返したり返さなかったり・・・・・。
詳しく教えてください、マジ困ってます・・・・・。
>>105 俺は普通のやり方って知らないんだが
Public sub xp(ByRef Date As Integer)
Date = Date * 100
End sub
上のやり方じゃなく
Function xp(ByRef Date As Integer) as Integer
Return Date * 100
End Function
とかじゃねーのかと思うんだが、気のせいか。
>>107 それではByRefで渡す意味が無い。
まあこんなメソッドはByValで渡してIntegerをRerutnするのが自然だけどさ。
うぉ。ByValの間違いたっだ、_| ̄|○
アンカーを正しく書けない池沼が多いスレだなw
土曜にアカデミーを受け取ることになった。流石に小学生には売れないみたいなので大学生に頼んだ。
その夜にでも後悔の弁を書き連ねるからな。
VB.NETでサービスアプリケーションを作って動かしてみたところ、
実行時のカレントディレクトリがwinnt\system32になっているようなのですが、
元々exeが置いてあった場所を取得することは可能でしょうか。
分かりにくいですが、
InstallUtil 〜.exe
で指定するパスのことです。
GetType(起動アセンブリが含んでいる型).Assembly.Location
が一番シンプルかな。
>>113 ありがとうございました。試してみます。
115 :
81:05/03/03 00:03:18
こんな物が作りたいのですが,どうやったらいいのでしょ
スペースキー(キーは何でもよし)を押すとキーの押された時刻と,押している経過時間を記録してExcelに読み込ませるか,テキストでファイルに出力する。
当方,初心者につき,さーっぱりわかりません。
参考書でもいいです。何か教えてください。
FormのKeyDownイベントと
Streamクラスあたりを調べてみては
117 :
81:05/03/03 00:22:04
>116
dクス
すまん,Stream
118 :
81:05/03/03 00:22:39
streamクラスの説明がほすぃ
120 :
81:05/03/03 00:44:13
>119
ありがとん
ガンガって見るッス
日付を選択するDateTimePickerというのがありますが
月を選択するのに適したコントロールはありませんか?
コンボボックスに1から12まで数字振ってみれば?
Call System.Configuration.ConfigurationSettings.AppSettings.Set("hoge", hoge)
とすると、読み取り専用という例外エラーが発生してしまいます。
書き込み可能にするにはどうしたらよいでしょうか?
手書き。
というかユーザデータは自前の設定ファイルに書くのが普通。。
>>124 すみません。よく意味がわからないのですが
そーすると設定値を保存したい場合はINIファイルを使ったほうが
よいということでしょうか?
しかし、そーするとSetメソッドってなんのためにあるのかと疑問です。
>>125 AppSettingsプロパティはNameValueCollection型。
NameValueCollectionクラスは一般的な文字列(非対称)ペアのコレクションであって、
ConfigurationSettings.AppSettingsにだけ使われるものじゃないから。
.NETでは一般的に設定ファイルはXmlSerializer辺りを使う。慣れない間は使いにくいが。
>>126 さんくす。理解できました。XMLファイルに保存するわけですね。
.NETぽくて(・∀・)イイ!!
文字列が全てカナ以外の文字が混ざっていないか
チェックできるメソッドはありますでしょうか?
Regex.IsMatch
131 :
デフォルトの名無しさん:05/03/04 17:18:11
BorderStyle.FixedSingleの実線の色とサイズを変更する方法を教えてください。
今は、
BorderStyle.Noneにして、Graphicsを使用してBitmapをClear(Color.Transparent)
その後、Penを使って、そのBitmapをDrawRectangleを使用して、ラインを描画
その後、BitmapをImageにぶち込んでやってるのですが、あまりにもスマートじゃない気がするので
VB.NETと直接関係ないんだけどさ・・・
Microsoft ASP.NET Web Matrix
これ使っている人っている?
VB6のLeftBみたいなことがしたいのですが、VB.NETでは
どうやればよいでしょうか。
どいつもこいつもLeftBLeftBばっかだな。
だいたい「みたいな」って何だっての。
グリッドを貼り付けて、ある一つのセルの文字だけを変えたり、
背景色を変えるということは出来るのでしょうか。
ご教授よろしくお願いいたします。
最近は逆切れするやつが多くてこまるね。(´・ω・`)
>>135 WinFormなのかASP.NETなのか、
DataGridの話で良いのか、
そうならデータはどういう形式なのか、
辺りを聞こうか。
>>139 多分君は「逆切れ」を正しく使えていないと思うが
どれのこと言ってるの?
「このオブジェクトは現在ほかの場所で使用されています」
このエラーの対処法を教えてください
データグリッドで、行のサイズ変更を不可にするにはどうすればいいのでしょうか?
行のサイズとは、行の縦の長さのことです。
他の質問サイトでも聞いてみましたが返信はありませんでした。
意外と複雑な処理をしないといけないんでしょうか?
今日たまたまコーディング中に発見したんだが
何も選択されていない状態でCtrl+Cを押すと一行選択になるのな。
今まで知らんかった。
Ctrl+Xなら一行切り取りだな。
削除代わりによく使う。
149 :
デフォルトの名無しさん:05/03/06 05:27:54
なにもオペレーションが無い状態の時間
(スクリーンセーバーの起動条件となる状態)
を取得するのってどうするんでしょう?
テキストファイルを拡張子に関連付けられたアプリケーションで
開くにはどうすればいいでしょうか。
メモ帳で開くのならば、
Shell("notepad.exe " & 〜)
みたいに開けることまでは分かったのですが・・・
よろしくお願いします。
System.Diagnostics名前空間のProcessクラスのStart静的メソッド
>>151 できました。
どうもありがとうございました。
153 :
デフォルトの名無しさん:05/03/07 09:26:15
同じフィールド ( ID ) を持った、二つのDataTable ( dt1, dt2 ) があります。
dt1、dt2共に同じIDのレコードが存在する場合、
dt1からそのレコードを削除する方法はありますでしょうか。
DataSetのRelations.Add では思ったような結果が得られませんでした。
具体的には、DataTable間で、SQL文 ( OUTER JOIN句 ) を実行し、
別のDataTableを作成したいのですが、どうも出来ない?ようなので。
よろしくお願いします。
>>153 ExecuteNonQueryで直接SQLを実行してみたら?
tet
ウィンドウハンドルからコントロールを取得する方法を教えてください。
そのコントロールかテキストボックスかどうか判定したいのですが
そのコントロールを識別するものがウィンドウハンドルしかわかりません。
If TypeOf Me.ActiveControl Is System.Windows.Forms.TextBox Then
Me.ActiveControlのところをウィンドウハンドルから取得したいです。
よろしくお願いします。
カードゲームを作ってるんですが、描画のタイミングがうまく調整
できません。
カードクリック→FromFileでjpg画像表示→役の判定→カードの破棄
こういう流れをひとつのプロシージャでやってると、その処理が終了
するまで画面更新がかからないんですね。カード表示されずに破棄ま
で進んでしまうので、いったい何のカードを引いたのかプレイヤーが
わからないんです。
中にウエイトを置いても同じことなので、今はTimerで100msごとに
役判定するという乱暴な手段を使ってますが、これもクリックするタ
イミングによって妙な挙動になります。
何かいい方法はありませんでしょうか?
Refreshを挟めば?
>>161 さんくす。
Me.Refreshであっさりできました。ウエイト前に置いても無問題。
Picturebox使ってて気がつかなかったのはお恥ずかしい限りです。
163 :
デフォルトの名無しさん:05/03/07 18:33:37
超初心者の質問で申しわけありませんが、
textboxで入力後、カーソルが自動的に次のtextboxへ移動するにはどうしたらいいですか?
VBAではautotabの機能があったのですが、VB.NETには無いようなので
どなたか教えていただけないでしょうか?
>>163 無いので、TextChangedイベント辺りで自分で処理。SelectNextControlメソッドとか。
作ったプログラムを他の人のPCで動かすときには
何をインストールすれば良いの?
Win2000です・・・
binフォルダの中にあるexeファイルと.Net Frameworks。
ツールバーのアイコンって、自分で作らないといけないんでしょうか?
VBや C++Builderには、アイコン集があった気がするのですが、.net には
見当たりません。
何か良いアイコン集があったら、教えてください。
>>167 VBやC++BuilderのインストールされてるPCから
ビットマップだけコピーすればいいじゃないか。
っていうか\Common7\Graphicsにあるでしょ
VS5の時代から進歩がないけど。。
CDの中も探した?
172 :
デフォルトの名無しさん:05/03/08 01:00:43
>167
VB.NET Power Packに結構いいの入ってたよ。
ライセンスはどうかわからんけど・・・
適当にフリーアイコン素材サイトからもってくる。
or
デザイナーの友達を作る。
VB.NETで作成したアプリケーションがメモリリークしていないか
調べたいのですがどのような方法がありますか?
176 :
デフォルトの名無しさん:05/03/08 10:56:14
vb.net compact frameworkにて
以下で定義してテーブルより、特定のレコードを削除する方法を教えてください。
'テーブル宣言
Public dataSet1 As New DataSet("テスト一覧")
Public dataTable1 As DataTable = dataSet1.Tables.Add("テストテーブル")
Public dataClumn1 As DataColumn = dataTable1.Columns.Add("番号")
Public dataClumn2 As DataColumn = dataTable1.Columns.Add("項目")
Public dataClumn3 As DataColumn = dataTable1.Columns.Add("得点")
'レコード追加
dataTable1.Rows.Add(New [Object]() {"0001", "国語", "100"})
dataTable1.Rows.Add(New [Object]() {"0002", "国語", "90"})
dataTable1.Rows.Add(New [Object]() {"0003", "国語", "80"})
dataTable1.Rows.Add(New [Object]() {"0004", "国語", "70"})
dataTable1.Rows.Add(New [Object]() {"0005", "国語", "60"})
>>176 dataviewで条件抽出してDeleteするもよし、datatableで行決め打ち
削除するもよし。
178 :
デフォルトの名無しさん:05/03/08 12:08:30
>>177 回答ありがとうです。
datatableで行決め打ち削除ってどうやればいいんですか?
>>178 DataTable.Rows(削除したい行Index).Delete()
Accessのグラフ画像をクリップボード経由で、FormにあるPictureBox
に貼り付けたいんですが、EnhancedMetafileから変換できないんです。
Dim iData As IDataObject = Clipboard.GetDataObject()
If iData.GetDataPresent(System.Windows.Forms.DataFormats.EnhancedMetafile) Then _
PictureBox1.Image = _
CType(iData.GetData(System.Windows.Forms.DataFormats.EnhancedMetafile), Image)
End If
ネットで探したこういうコードで実行すると、CTypeでNothingしか帰
ってきません。そのままワードパッドに貼り付けるとMicrosoft Graph
という形式だとプロパティで確認できました。
一度ファイルに落として、直接FromFileで表示しようとも思いましたが
CTypeが通らないのでSaveもできない状態です。
MemoryStreamを使った方法が下記にありましたが、同じくNothingが
帰ってきてどうにもこうにも。_| ̄|○
ttp://backno.mag2.com/reader/BackBody?id=200407270600000000104516000
181 :
デフォルトの名無しさん:05/03/08 14:47:08
>>179 ありがとうございましたー。
多謝 m(_ _)v
>>180 まずiData.GetFormatsと、それで取得できたそれぞれの形式に対してGetType(iData.GetData(形式名))をやってみては?
184 :
デフォルトの名無しさん:05/03/08 19:13:45
すいません、おしえていただきたいのですが。
時間計算なのですが 10:30〜13:00 を下記のようにしたのですが、
textbox1=10 (開始 時)
textbox2=30 (開始 分)
textbox3=13 (終了 時)
textbox4=00 (終了 分)
これを 働いた時間 2:30としてLabel1に表示したのですが
どういった計算方法ですればいいですか?
よろしくおねがいします。
VB.NETを勉強したいのですが、ACCESSしか知らない人に分かりやすい参考書ありませんか?
サービスアプリケーションってソケット通信可能ですか?
自分で試せよ。
>>186 谷尻かおりさんのとか、イメージをつかむにはいいかも
Access本に比べてるとが悪いけど
×Access本に比べてるとが悪いけど
○Access本に比べると出来が悪いけど
>>191 そんな打ち間違えあるか。
脳みそ少なすぎ。
リストビューの各サブアイテムごとに文字の色を変更したいのですが
可能でしょうか?
もし、可能であればやり方を教えてください。よろしくお願いします。
ListViewSubItemのプロパティ一覧とその解説を良く読め。
Dim subItem As System.Windows.Forms.ListViewItem.ListViewSubItem
subItem = item.SubItems.Add("hoge")
subItem.ForeColor = Color.Red
とやってみたのですが色が変わってくれません。
なぜでしょうか?
解説を良く読めと。
item.UseItemStyleForSubItems = False
でできました。ご迷惑お掛けしました。
最近はじめたんだけど、VB.NETで作ったプログラムってMACでも動くの?
.NETフレームワークってMAC版も出てるのかな?
Mac OS Xならmonoが動くんじゃないか?
>>199 無理。
REALBASICで開発すれば、Windowsでも動く実行ファイルを生成
できるらしいけどね。
なるほど、基本的には無理なんですね。
フリーソフト作ってるんだけど「MAC対応」って銘打つにはmonoではまだ厳しいのかな。
っていうか中間コード生成する最大の理由は「OSに依存しないで動く」っていうことじゃないの?
Windowsでしか動かないなら中間コードでコンパイルする価値があまりない気が・・・。
なぜなんでしょう?
ぶっちゃけ、Windowsにおける32bit環境から64bit環境へのスムーズな移行が
最大の目的じゃないかな。
>>203 >っていうか中間コード生成する最大の理由は「OSに依存しないで動く」っていうことじゃないの?
>Windowsでしか動かないなら中間コードでコンパイルする価値があまりない気が・・・。
>なぜなんでしょう?
1つは、やっぱり異なるOSで動かす事には無理があるんじゃない?
というのはWin32APIに相当する機能も.NetFrameworkには存在するわけだが、
こういった部分はOSに依存する訳だし。
ただ、中間コードのメリットがOSに依存しない事だけかと言われれば、
そんな事無いと思うんだが?
実際、C#だろうがVB.NETだろうが同じ処理するプログラムを書けば、
生成される中間コードは同じになる。
そして、C#からVB.NETのクラスを呼んだり逆にVB.NETからの呼び出しも出来る。
一般的に大規模アプリになれば複数人で開発する訳だが、
それぞれが得意な言語で開発しても問題無くお互いのクラスを呼び出せる。
これだけでも十分メリットになると思うんだが?
VB.NETでアプリケーションを作っているのですが
起動しただけで35メガもメモリを食います。
ひょっとしてすべてのウィンドウのインスタンス化を起動時に
やってしまうのでしょうか?
確かdelphiもそうだったと思うのですが、delphiは
その辺のコードもいじれたのですがVB.NETはそのあたりの
コードはどこにあるのでしょうか?
そんなことはない。
ネイティブのコードへのコンパイルすら「初めてそのメソッドが出てきた時」に行われるのに。
起動時にメモリを食われるのは.NET Frameworkを通して起動させるためのコスト。
起動した後は不要になるので、気になるならウィンドウを一旦最小化させれば仮想メモリにしまい込まれる。
根本的にネイティブのアプリより消費メモリが大きめなのはしょうがないがね。
>>207 了解です。
ちょっと起動に時間が掛かるなと思いタスクマネージャを見たら
30メガも使ってるのでびっくりしたしだいです。
それが普通ならまったく問題ありません。
リストビューのカラムごとにTextAlignを指定したいのですが
指定するメソッドが見つかりません。
これは不可能でしょうか?
ColumnHeader.TextAlign
ただし先頭列だけは必ず左寄せ。
listview.Columns(2).TextAlign = HorizontalAlignment.Right
listview.Columns(3).TextAlign = HorizontalAlignment.Right
でできました。さんくす。
>>203 「開発環境(言語)の差を吸収出来る」ことと
「安全なコードを書ける可能性が高い」こと、これらから
「開発生産性が高い」ことがメリットだと思うよ。
例えばJAVAのWORAというのは嘘とは言い切れないけど
未だに盲信してる人は少ないよね。
MSは良くも悪くもリアリストだから、「どこでも動く」ことより
「どこからでも繋がる」ことを .NET の宣伝材料にしてる。
213 :
デフォルトの名無しさん:05/03/09 19:52:20
compact frameworkにて、設定ファイルを使用したい場合、
どのようにファイルを作って、どのように読み込めばいいのでしょうか?
質問が大雑把ですみません。とっかかりすらわかっていない状態ですので。
VB.NETでWSDLがない状態でSoap通信したいんですけど
Soap ToolkitにあったSoapConnectorにあたるクラスってないんでしょうか?
デストラクタってどうやって定義すればよいでしょうか?
コンストラクタは
public sub new()
end sub
でよいみたいですが
Overrides Protected Sub Finalize()
EXCELを操作しているのですが
アプリケーションを終了するまでEXCEL.EXEがタスクマネージャの
プロセス一覧から消えてくれません。
消すにはどうしたらよいでしょうか?
Dim exl As New Excel.Application()
exl.Visible = True
exl.Workbooks.Add()
exl.Cells(1, 1) = "hoge"
消えました。ありがとん。
Private m_Pos() As Point
Private m_Pos As Point()
の違いはなんでしょうか?
GCってちゃんと仕事してくれますか?
なんか不安。メモリ使用量がどんどん増えるよー
>>225 そうなんですかー
なんかC房だから気になって仕方ないよー
227 :
デフォルトの名無しさん:05/03/10 16:38:58
Form1からForm2をShowDialogで表示し、Form2からForm3をShowDialogでまたまた表示する。
タイマーイベントで規定時間後に、自動でForm2とForm3を閉じてForm1を表示するようにしたい場合、どのようにすればいいですか?
今、Form1のタイマーイベントで
Form3.close()
Form2.close()
ってやるとForm3は閉じるけどForm2は閉じてくれません。
だれかわかりますか?
ピクチャーボックス上の
線などを消去するには?
>>223 基本的に無い。好み。
個人的には配列型を宣言してると分かりやすい後者の方が良い。
>>227 私の所では閉じる。
>>228 何らかで上書きする。
簡単なテキストエディタを作っています。カレットが移動するたびに、その位置を
ステータスバーに表示したいと考えています。で、一番最初に思いついたのが、
KeyDown/Upイベントを利用することです。しかしながら、IMEがオンになって
いると、KeyDown/Upイベントが発生するたびに変換が解かれてしまい、実用に
なりません。なにかいい方法はないでしょうか。
MDI子フォームのKeyDownイベントでファンクションキーが
押された場合の処理を書いているのですが、このイベントが
親フォームにも送られているらしく、F1キーを押すと
ヘルプが起動してしまいます。
ファンクションキーイベントは子フォームだけで受け取り
(子フォームがアクティブの場合)
親フォームには送られないようにするにはどうしたらよいでしょうか。
e.Handle=True
は試してみたのですが、ダメでした。
メニューのイベントでヘルプ表示してるんでしょ?
だったら自分がアクティブじゃなかったら
ヘルプ表示しないようにするだけだと思うんだけど。。
何か間違ってるか?
233 :
デフォルトの名無しさん:05/03/11 00:33:11
ウケる。要求仕様と違うとはまさにこのことか。
>>232 それって親フォームにキーイベント飛んでるじゃん。
e.Handle = True
じゃムリなの?
馬鹿な上に幼稚なVB厨どもはしょうがないですな。
別にウィンドウメッセージそのものをキャンセルする必要なんて全然ない。
要はそれを処理するべき場合かどうかを判断できれば必要十分だろといってるの。
237 :
デフォルトの名無しさん:05/03/11 00:48:27
>>236 必要かどうかの問題ではなく、231がやりたいのはメッセージを
キャンセルしたいのだろう。別に君がその方法を知らないなら
ムリに書き込む必要ないんじゃないの?何がしたいの?
どうでもいいけど「自分」って誰?(ププッ
>>237 そういうSEは最近多いよ。勝手に要求仕様を捻じ曲げて
得意げな大馬鹿
>>231ですが、メイン画面(親フォーム)は別の外注の会社が
作っていて、私が作っているフォームでファンクションキーを
処理する都合でメイン画面に修正が入るのはあまり
好ましくないのでメッセージをキャンセルする方法があるのならば
それがやりたいです。分かりにくくてすいません。
241 :
デフォルトの名無しさん:05/03/11 01:28:29
VBで、ある業務システムつくろうと思ったけど。
スタックが心配で見合わせてる。
で?
243 :
デフォルトの名無しさん:05/03/11 01:34:56
どうしたものかな。
VB6では、スタック領域を設定することできないんだよ。
NETは、どうなの。
質問です。
IEで表示した内容を印刷ダイアログを表示せずに
プログラムから印刷する方法を教えてください。
>>231 もしかして親フォームのKeyPreviewプロパティはTrue??
アホか。
要求仕様は、「子フォームがアクティブの時には親フォームのヘルプを表示しないようにしたい」
メッセージをキャンセルするってのはその一手段に過ぎない。
>>240 やっぱり無理なんじゃないか。
というのは、別に子が親にメッセージ送ってるわけじゃないのだから。
いま実際WndProcでメッセージ拾うコード書いて確認したので間違いないと思う。
WndProcをオーバーライド。
該当するキーの場合、基底クラスのWndProcを呼ばない。
あるいはProcessCmdKeyをオーバーライド。
該当するキーの場合、trueを返す。
>>246 >いま実際WndProcでメッセージ拾うコード書いて確認したので間違いないと思う。
間違ってるじゃんw
お前、マジでもういいよ
タスクバーを除いたデスクトップのサイズを取得したいのですが
どのようにすればよいでしょうか?
すみません。わかりました。
>>249 幼稚な奴。
実際に自分でやってみてから言ってるか?
っていうか、「本当はWndProcなんてわかんない」に五万両。
このスレの大半はアホなのはわかっている。
ドアホがスレ立ててんだからしょうがねぇってこった。
アホは自分がアホだと認識した時点でアホではなくなる。
257 :
デフォルトの名無しさん:05/03/12 23:09:18
どなたか教えてください。
datagridのDataGridTableStyleでFormatを設定する部分があると思うのですが、
番号を01,02,03・・・という感じでしたいので 00 と入れたのですがちゃんと表示されず、
1,2、・・とでてしまいます。
どの部分がおかしいのでしょうか?
Dim str As String : Dim time As Integer : Dim ch As ListView.CheckedListViewItemCollection
ListView1.View = View.Details : ListView1.CheckBoxes = True : ListView1.Columns.Add("test", 100, HorizontalAlignment.Left)
''' テストデータセット 偶数にチェック
For ii As Integer = 0 To 5000
ListView1.Items.Add(CStr(ii)) : If (ii Mod 2) = 0 Then ListView1.Items(ii).Checked = True
Next ii
''' チェックデータ取得 @〜B のどれが一番早い??
time = Environment.TickCount() ''''@
Dim txt1 As New System.Text.StringBuilder
For ii As Integer = 0 To ListView1.Items.Count - 1
If ListView1.Items(ii).Checked Then str = ListView1.Items(ii).Text
Next ii
Console.WriteLine(Environment.TickCount() - time)
time = Environment.TickCount() ''''A
ch = ListView1.CheckedItems
For ii As Integer = 0 To ch.Count - 1
str = ch.Item(ii).Text
Next ii
Console.WriteLine(Environment.TickCount() - time)
time = Environment.TickCount() ''''B
ch = ListView1.CheckedItems
For Each item As ListViewItem In ch
str = item.Text
Next
Console.WriteLine(Environment.TickCount() - time)
上記サンプルの、ListViewコントロールについて質問です。
Details モードで、チェックボックスを付けた状態で、チェックされた行を
取得する方法なのですが、以前より何故こんなに遅いのかと疑問に感じていました。
が、どうやらコーディング次第でものすごく差があるようです。
私は、A<B<@となると思っていたのですが、現実は、@<B<<<<Aになりました。
何故このような結果が出るかどうしても説明出来ません。
誰か偉い人教えてください。
>>257 DataGirdTextBoxColumnのFormatプロパティだな。
該当するDataColumnのDataTypeがString型になってるんだろう。
>>259 面白そうなのでちょっとILDASMで見てみた。
(2)の最大のボトルネックはCountプロパティの取得部分であるのは動作を見れば一目瞭然。
では内部でどんな作業をしてるのかというと、
1.オーナーであるListViewのCheckedIndicesを取得して、そのCountプロパティを返す。
2.CheckedIndices.Countは、内部ではオーナーであるListViewのItemsプロパティを取得し、
それをFor Eachで回して一つ一つCheckedプロパティを確認し、インクリメントして計測する。
という遠大な事をやっている。
For ... To で毎回Countプロパティを取得してればそりゃ死ねる。
Forの前に一度Countを別変数に取り出すだけで劇的に改善され、(3)にほぼ並ぶ。
さて、(2)と(3)の違いだが。
(2)は毎回Item(Integer)を呼んでいる。この動作の遷移は、
1.ListViewのCheckedIndicesを取得、CheckedIndices.Itemを呼ぶ
2.CheckedIndices.Itemは内部でListView.ItemsをForで回し、Index回目で見つかったCheckedのインデックスを返す
3.返されたインデックスのアイテムをListView.Itemsから取得し、それを返す
という流れだ。分かりにくいなんて意見はスルー。
(3)、For Eachは内部でGetEnumeratorが呼ばれ、それで返されるIEnumeratorのCurrentプロパティ・MoveNextメソッドで列挙動作が行われる。
ではGetEnumeratorはどうなってるかというと、
1.CheckedListViewItemCollection.Countを取得し、その数でListViewItem配列を作成する
2.ListViewのItemsをForで回し、Checkedかどうか確かめてCheckedなアイテムを順に配列に格納する
3.配列のGetEnumeratorを返す
って流れになる。
配列のGetEnumeratorは、MoveNextが呼ばれるごとにインデックスをインクリメントして、Currentで現在のインデックスのアイテムを返すってだけの簡単な処理。
(3)はCheckedListViewItemCollection.Countを取得してる以外にコストがかかる処理はなさそうだ。それが大きいけど。
(2)は2.の所だな。指すインデックスが後ろになればなるほどコストがかかるようになる。
その上ch.Item(ii)がループ回数呼ばれてる訳で、その回数分のListView.Itemsのループが発生してしまうと。
こんな動作を知ってしまった後では、でかいビューでCheckedItemsを使うのは躊躇しちゃうね。
>>261 ホントにありがとうございます。
非常に分かり易い神な回答が返って来るとは思いませんでした。
ヘッポコ同僚が(1)でコーディングを行っていて、カコ悪いなーと思っていましたが
それが一番コストが掛からないなんて・・・orz
配列の概念がよくわかりません
そうか頑張れ。
LinkLabelをクリックした時に左右どちらのボタンでクリックしたか調べるには
どうすればいいですか?
LinkClickedのイベントプロシージャ内で判定させたいのですが。
Excelでレポートを出力するアプリケーションを作っています。
一旦Excelに書き込んで保存して終了して
その書き込んだExcelファイルを開くという処理をしているのですが
System.Diagnostics.Process.Startをしたときに前のExcelの
プロセスが残っているためかExcelのメニューだけ表示された状態で
とまってしまいます。
GC.WaitForPendingFinalizers()
がないと100%そうなるのですが、これがあると
うまくいくときもあります。何か回避方法がありますでしょうか?
oBook.Close(False)
NAR(oBook)
NAR(oBooks)
oApp.Quit()
NAR(oApp)
GC.Collect()
GC.WaitForPendingFinalizers()
System.Diagnostics.Process.Start("hoge.xls")
FlexGridの新しい奴がExcel直接操作できる
すみません。お騒がせしました。
データを書き込んでいるところを関数にしたら直りました。
データを持っているオブジェクトが解放されなかったためのようです。
リストビューでカラムヘッダーをクリックしたら
そのカラムでソートしたいのですがどのようにしたらよいでしょうか?
274 :
デフォルトの名無しさん:05/03/14 18:42:38
--------------------------------------------------
Java
--------------------------------------------------
public class Foo {
public static void main(String[] args) {
new Foo();
}
public Foo() {
}
}
と同等なコードをVB.NETで書きたいのですが、
New Foo()と書くと構文が違うと怒られるんですが、
こういう書き方はできないのでしょうか?
>>274 VB.NETの構文を勉強してください。
Java'erならC#使った方が良くね?
277 :
デフォルトの名無しさん:05/03/14 18:50:00
わかった、ちょっと待ってな・・・
できればそうしたいんですが、
それができないんで○| ̄|_
VB冗長すぎる…。
280 :
デフォルトの名無しさん:05/03/15 15:55:17
TextBox1をクリックしたりしてフォーカスがTextBox1に移動したときにLabel1.Textが
TextBox1の説明文に変更されて、また別のTextBoxが選ばれたらLabel1.TextがそのTextBoxの
説明文に変更されるというようなプログラムを書く場合、
Private Sub TextBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Click
Label1.Text = "(TextBox1の説明文)"
End Sub
てな感じのを各TextBoxすべてについて書かなければいけないのでしょうか?
何か他にエレガントな方法はありませんか?
まぁ藻前ら、それほどの技術と経験と根性があるなら、今まさに危機に瀕している↓のMMORPGを救ってくれ。
軽く問題に触れておくと、要は開発者が逃げ出しましたよと。
そしてそれに痺れを切らした3Dモデリング担当の人もプロジェクト脱退しましたよと。
そこで藻前らの力が必要になったわけで。。
この企画に参加、若しくは引継ぎすれば少なくとも藻前らのスキルアップにも繋がるだろうし。。
頼むよ。絶望に満ち溢れた世界に新たな風を吹き込んでくれ。藻前らの力で・・・・・・
頼 ん だ ぞ
http://rob2.jp/
>>280 TextBoxのTagに説明文を入れて、
Label1.Text = CType(sender, TextBox).Tag.ToString()
を全てのTextBoxのEnterイベント共通メソッドにする、とかどうよ。
>>282 それは全てのTextBoxのEnterイベントを共通メソッドとして一括で書く方法があるということですか?
それとも全てのTextBoxのイベントをひとつひとつ書かないといけないということでしょうか?
なんでWebBrowserコントロールのドキュメント、MSDNに無いんだよ!!!!
287 :
デフォルトの名無しさん:05/03/15 22:54:31
RichTextBoxで100行目に書かれている1行をすばやく消す方法を教えてください。
SendKeys "^({HOME})"
For intCnt = 1 To 99 Step 1
SendKeys "{DOWN}"
Next intCnt
SendKeys "+({END}){DEL}"
289 :
デフォルトの名無しさん:05/03/15 23:51:37
↑こういうのって一般的なんですか?
>>287 WordWrapは考慮しなくてもいいの?
Ctrl+Xで削除する行って、削除と同時に複写もするんですか?
293 :
デフォルトの名無しさん:05/03/16 17:15:48
すみません。教えていただきたいのですが、
DatagridにListBoxを使用しています。
たとえば
あああ
いいい
うううう
えええ
おおお
のリスト中の「あああ」と「えええ」 を複数選択してそれを
A列とB列に入れたい場合はどういうふうにすればいいでしょうか?
リストボックスプロパティのselectionmode=MultiSimpleで複数選択はできました。
よろしくおねがいします。
295 :
デフォルトの名無しさん:05/03/16 17:41:04
>>294 SQLサーバーで従業員のデータを作成してdatagridで使用してます。
従業員の担当業務が複数あってそれを入れたいと思っています。
複数あるので担当業務の列を5つ設けています。
2つであればA列、B列。3つあればC列までって感じです。
296 :
289:05/03/16 22:04:52
>290
んじゃ〜正しいの教えてください。御願いします。
Select〜で選んで消さなきゃいけないのはわかるんですが、目的の場所にたどり着くのに
えらいこと時間がかかるから、、、
せっかくLinesみたいなのがあるのに、その行を消せないし。
APIのSendMessageでEM_GETLINEを送れば特定行の先頭インデックスを取得できる。
298 :
デフォルトの名無しさん:05/03/16 22:49:10
Windows2000/XP でログオフ/終了/再起動ををするのをフックにして
動作するプログラムを書きたいのですが、どうやって判断すれば
いいでしょうか?
VB.NETでCABファイルを扱いたいのですが、専用のクラスとかは
あるでしょうか。
そろそろ、テンプレのリンクに色んなサイト追加しない?
漏れ自身は、結構良いサイト増えてきてると思ってる。
掲示板が設置してあるサイトをまとめてみたりすると良いかも。
VB.NETのソースはJavaのようにフォルダを階層構造にして
管理できますか?
シリアルキー解析集「ALTEA」
大好評発売中!
http://openuser10.auctions.yahoo.co.jp/jp/user/dancexxx1960? 市販SOFTやオンラインSOFTのパスワード集です。
オークション関係から画像・OS・表計算・CAD・・・・etc
国内・国外のあらゆる分野のSoftを解析済です。
これを初めて手にされた時には、驚愕される事でしょう。
そして・・・手当たり次第にインストールを始める筈ですw
パソコンをご使用の方なら、必ず!満足されると思います。
解析結果のデータベースには15,000点を越えるパスワードが入ってます。
このパスワード集から検索するだけで、登録や制限解除が出来てしまいます。
シェアウェアを購入して、正規登録したのと同じ状態になります。
余りにもデータが多すぎる為、辞書引のようなパスワード検索SOFTで提供します。
シェアウェア以外にもパッケージ版をVectorなどでオンライン販売してるSOFTにも
多数対応しています。これらをダウンロードして無期限に試用する事も可能です(^^;
WindowsXPやOfficeなどのCDキー(プロダクトキー)ジェネレーターを使えば複数のパソコンに
インストールする事も可能です。デスクトップとノートPCなど2台以上持ってる場合は特に有効ですね。
オンラインSOFTを購入した経験は有りますか?
ありとあらゆる分野の優れたSOFTが、数多くありますよね。
しかし、ほとんどが試用期間や機能制限をして、「気に入ったら購入してください」です。
もう少し使いたいが使用期限切れで、削除・・・再インストールを繰り返していませんか?
307 :
デフォルトの名無しさん:05/03/17 21:10:23
だれかおしえて!
datagrid使ってデータベース作ってるんだけど、
別のフォームで作成したデータベースのデータをComboboxを使って
よびだしたとき、ほかのTextboxにComboboxを使って呼び出したデータと
同じ行の違う列のデータを表示させたいんです。
どうしたらいいですか?
>>307 わけがわからんのでもうちょっと整理して。
「データベース作る」って何やってんだ?
>>307 ComboBoxのSelectedIndexを使う
選択された行を認識して任意の列を取り出せばいいんでないの
ValueMemberに抽出のキーとなるデータをほりこんでおいてそれで探してもいいけど
しかしもう少し聞き方何とかならねぇのか?
VB.NETにはRebarってありますか?
あのツールバーの場所を移動したりするやつです。
.NET Frameworkのライブラリにはない。.NET 2.0で追加される。
それまではサードパーティのを。どぼんとかに紹介もされてたはず。
>>313 そうだったんですか。今年後半まで我慢ですね。
Twintailというソフト確認したら、それも外部のものを使ってました。
探してみます。ありがとうございました。
フォームの左上に表示されるアイコンを条件によって
切り替えたいのですが、どうすればできますか?
Iconプロパティを操作する
>>316 それはそうなのですが、デザイナでIconプロパティを設定すると
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
みたいなコードが生成されますよね。この右辺部分を動的に変える
方法がよく分からないのです。リソースファイルみたいなものを
使うのでしょうか。
MDBファイルにアクセスするプログラムを組んでいるのですが
「この接続に関連付けられている DataReader が既に開いています。この DataReader を最初に閉じる必要があります。」
というエラーメッセージが出ます。
Oracleへアクセスするプログラムの時は問題なかったのですが
MDBファイルへアクセスするときはDataReaderが一つしか開けない
ということでしょうか?
これを簡単に回避する方法はないでしょうか?
開いた接続はさっさとClose。
新たにコネクションを張る、Readerから取得したデータを変数に格納する、DataAdapterとDataSetを使った手法に変える。
>>325 さんくす。うーん。どれにしようかな。
DataSetにするかなー
>321
3つとも知ってましたがなにか?
間違えた、4つともだった。OTZ
InstallShieldのスレってある?
332 :
デフォルトの名無しさん:05/03/20 01:05:38
Dim a As String = "4+2*15/3"
と 4+2*15/3 をStringで宣言し
これを計算させて14という答えを導いて
それを他の変数に代入するには
どうしたらいいのでしょうか?
参照の追加
Microsoft.JScript
Microsoft.Vsa
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Imports System
Imports Microsoft.JScript.Vsa
Imports Microsoft.JScript
Public Class calc
Public Shared Sub Main()
Dim exp As String = "4+2*15/3"
Dim ve As VsaEngine = VsaEngine.CreateEngine()
Dim result As Double = CDbl(Eval.JScriptEvaluate(exp, ve))
'結果を表示
Console.WriteLine(result)
Console.ReadLine()
End Sub
End Class
実行時の動的な式の評価 - Insider.NET
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=18271&forum=7 どぼん!のプログラミング道のメルマガ
http://dobon.net/vb/melma/dotnet34.txt
334 :
デフォルトの名無しさん:05/03/20 14:32:30
>>333 遅くなってすいません。
ありがとうございました。
For文で繰り返し処理しているときでもユーザーの入力を
受け付けるようウェイトをかけたいんですが?
そう言う処理は別スレッドでやって下さい。
そして別スレッドのコントロールを触ってあぼーん
え、waitとかsleepとかないんですか
基本だな。
>>338 あるけどね。お薦めしない。
UIスレッドはユーザとの対話だけやって、重い処理は別スレッドでやるべき。
VB6までの常識は捨て去れ。
.NETでマルチスレッディングは簡単になったし。
コントロールを別スレッドから扱うのは工夫が必要だが。
>あるけどね。お薦めしない。
一応教えてください。
>>340 >>コントロールを別スレッドから扱うのは工夫が必要だが。
コントロールを貼り付けたりする方法を教えてけれ。
342とは別人なんですが
>あるけどね。お薦めしない。
一応教えてください。
なんだ、バカばかりだな。
そうだな。
バカで悪いか?
質問です。VBには先人の開発したモジュール郡を無料で配布管理してる
サイトが存在しますか?
perlではCPANというボランティア団体が大量のモジュールを提供していました。
(ALL英語なので敷居が高く挫折気味ですが..)
MSDNを彷徨って探してみてのですが、膨大なコンテンツ群に圧倒され
お目当ての物はみつけられませんでした。
GotDotNetとかthe Code Projectとか。
ん? .NETの話だよな?
ええと...単体で買うとNETでは無くなるのかな?
新しいの買ってこようと考えていますが...
the Code Projectは英語表記ですね><
GotDotNetはあまり20-30くらいしかモジュールないのかな...
...英語面倒だとか贅沢いうな ハゲとか言わないでください..><
簡易にオブジェクト組めるVBに興味が湧き出しているのですが
できれば、モジュールを組み立ててコーディングしたいのですので
.NET Frameworks自体が、でかいモジュールの集まりだと言えなくも
ない罠。
353 :
デフォルトの名無しさん:05/03/21 02:11:58
.NETでは6.0で書かれたVBソースって見れないんでしょうか?
今日電気店にて聞いたところ
「6.0で書かれたソースを.NETで開くと
.NETの形式に変換されて表示されちゃう。」
と言われました。
当方ソースを閲覧できさえすればよいのですが
エディタを使うしかないのでしょうか?
.NETを使用して見れるとよいのですが…。
6.0は販売してないし…。
閲覧だけならテキストエディタで良いじゃんと思うんだが。
VSは一々重いし。
VBの色つけならそれなりのエディタが対応してるんじゃない?
356 :
デフォルトの名無しさん:2005/03/21(月) 08:18:33
おまいら
>>353の電気店ってほうが突っ込むべきところだと思うが。
すいません、質問させてください。
IEのフォームにVB.NETで文字を自動入力させることは可能でしょうか?
注文ページに住所氏名電話番号など、自動入力できる常駐ソフトなど、
よろしければ教えてください。
'Yahooにログイン.vbs
'-------------------
Set ie = CreateObject("InternetExplorer.Application")
ie.visible = True
ie.navigate "
http://www.yahoo.co.jp/r/l1"
Do
WScript.Sleep 100
Loop While ie.Busy
With ie.document.forms(0)
.item("login").value = "なまえ"
.item("passwd").value = "ぱすわーど"
.submit
End With
AddHandlerで、イベントをデリゲートした場合、
明示的に、RemoveHandlerを呼び出さないと、ガベージコレクトされませんか?
361ですが、
イベントハンドラ(イベントを関連付けたメソッド)
を持つクラスのインスタンスをNothingしても、RemoveHandlerを呼び出していなかった場合、
ガベージコレクトされずに、メモリに残ることはないのだろうかということです。
ないよ。普通にGCされる。
>>362 VB.NETではリソースの解放は一切必要ないよ。
ベストは1秒間隔くらいで動くタイマ仕掛けておいて、
その中でSystem.gc.Collect()しとけば絶対リークなしだよ。
ReDimも解放されますか?
無茶言うな。
そうですか。レスありがとう
一応、REmoveやっとけばいい話だけども。
ヘルプによると、
Event ステートメントで型が定義されて、
AddHandlerで、その型にインスタンスされるそうです。(デリゲートが?)
>>364 そりゃないよ。
一応技術的な解説をしとこう。
イベントは、対応する引数・返値を持ったデリゲートの一種のプロパティだ。
デリゲートというのは、メソッドへの参照リストを保持する特殊なクラス。
Event Hogeを宣言すると、VB.NETコンパイラは以下の操作を行う。
・MulticastDelegateを継承するHogeEventHandlerクラスを作成する
・HogeEventHandler型のフィールドHogeを追加する
・メソッドadd_Hogeとメソッドremove_Hogeを追加する
イベントの実体は結局の所デリゲートの派生クラスであるHogeEventHandler型のフィールドHogeである。
AddHandlerステートメントは、まずメソッドの参照をラップするHogeEventHandlerインスタンスを作成する。
その後add_Hogeを呼び出して、フィールドHogeと作成したインスタンスを合成し、新しくHogeとする。
これでHogeにはメソッドの参照であるHogeEventHadlerインスタンスのリストがあることになる。
//このリストは飽くまでインスタンスの参照のリストである、という点を忘れてはいけない。クラスインスタンスは全て参照でやりとりを行う。
RaiseEventステートメントを使うと、このメソッドリストを最初から順に実行していくわけだ。
さて、Hogeが持ってるのはHogeEventHandlerインスタンスのリストである。
それぞれのHogeEventHandlerインスタンスはこのHogeからしか参照されていないわけで、
Hogeが他から参照されなくなると、自動的に各HogeEventHandlerインスタンスも他からの参照はなくなる。つまりGCの対象となる。
ではHogeの参照を持っているのは、というと(SharedのEventでない限りでない限り)、
Eventを持ってるクラスのインスタンスが
・明示的にHogeにNothingを代入する(ただしVB.NETでは不可能)
・クラスのインスタンス自身が他から参照されなくなった
といった状況だ。
つまり、クラスのインスタンスがGCされる状況では必ずHogeとHogeが持っているHogeEventHandlerインスタンス達もGCの対象になっているというわけだ。
あと、RemoveHandlerすればHogeからHogeEventHandlerインスタンス(の参照)が一つはずれる。
はずされたHogeEventHandlerは当然他からの参照されていないためGCの対象になる。
371 :
368:2005/03/21(月) 21:13:47
>>371 俺は369じゃないが君人間として終わっとるな。
言われないと分からないようなやつがいるこんな世の中じゃ(ry
Python
うまいな。(w
分かりやすい自演をするのが最近の2ちゃんのトレンドだと思うが。
ListViewのアイテムをカラムの値を使ってソートしたいのですがやり方がサッパリわかりません。
教えていただけないでしょうか?
382 :
デフォルトの名無しさん:2005/03/23(水) 01:01:41
ブラウザコントロール(?)を利用してデータをPOSTで送信しているのですが、
特定のコード(Chr(81)〜Chr(9F))が00に化けてしまいます。
コードはこのような感じです。
Dim sendPOST As Object
Dim i As Integer
sendPOST = "test="
For i = 0 To 255
sendPOST += Chr(i)
Next i
sendPOST = Encoding.GetEncoding("Shift-JIS").GetBytes(sendPOST)
AxWebBrowser1.Navigate2("
http://xxxxxxxxxxx/test.php", "", "", sendPOST, "")
化けない方法はありますか?
383 :
382:2005/03/23(水) 01:03:51
>特定のコード(Chr(129)〜Chr(159))が00に化けてしまいます。
384 :
sage:2005/03/23(水) 01:48:09
算術演算子はオーバーロードできないのですか?
>>382 アスキー未定義コードだし、相手がLinux鯖じゃないのかな?
>>384 できない。
VB2005では、できるようになるらしい。
387 :
デフォルトの名無しさん:2005/03/23(水) 11:53:42
最初の画面のコンボボックスで、”AAA”という値を選択したとして
次の画面のコンボボックスで、”AAA”という同じ値が存在したら
選択状態にしたいのですが、どーすればいいのでしょうか?
388 :
368:2005/03/23(水) 12:08:50
371は俺じゃないぞ。
>>387 そう言う風に書け、としか言いようがないな。
390 :
デフォルトの名無しさん:2005/03/23(水) 14:01:51
>>389 すみません、具体的なコマンドが知りたいのですが。。。
グローバルで値を渡してselectedItemに投げろ。
392 :
デフォルトの名無しさん:2005/03/23(水) 14:40:59
サンクス子!
393 :
デフォルトの名無しさん:2005/03/24(木) 08:27:18
VB.NETからボタンなどのコントロールの配列ができなくなって
結構めんどくさいのですが、
ボタンがcmdBtn00からcmdBtn99まであって、
String="33"の場合、cmdBtn33のボタンオブジェクトが欲しいのですが、
どうすれば可能でしょうか?
Select Caseでだらだらと書くのでなく、
2,3行以内で書きたいのですが。
VB.NETでアプリケーションを作りました。
配布のためにインストーラを作成したいのですが
定番はどのような方法でしょうか?
>>393 6.0の頃みたいに添字で配列化はできないけれど、普通に1次元配列
を宣言して、そこにオブジェクトを代入すればそれっぽく使える。
配列いらないよ。
Formにボタンおいてるなら、そのフォームのControlsコレクションに入ってるから、
TypeOfで、取り出せる。
ShowDialogで表示したページに
明示的にDislogResultを設定すると
勝手にページが閉じるんだが
これは仕様?
仕様。
402 :
デフォルトの名無しさん:2005/03/24(木) 12:30:08
>>393です。
みなさんありがとうございます。
結果、下記のようになりました。
Private Function GetButton(ByVal a_str As String) As Button
Dim objControl As Control
Dim btn As Button
Dim strWork As String
For Each objControl In Me.Controls
If objControl.GetType Is GetType(Button) Then
btn = CType(objControl, Button)
strWork = btn.Name
If strWork = a_str Then
GetButton = objControl
Exit For
End If
End If
Next
End Function
俺のやり方が正しいかわかんないけど、
ボタンコントロールがたくさんあるなら、デザイナからも設定できるけど、プロパティにTagってのがあるでしょ。
そこに、1とか、2とか番号振っといて、
For Each C as Control In Me.Controls
If TypeOf C Is Button Then
If C.Tag.ToString = "1" Then
Btn=DirectCast(C,Button)
End If
End If
Next
試してはいないです。
404 :
デフォルトの名無しさん:2005/03/24(木) 18:25:27
>>403 あーTagですか。
他社製品のコンポーネントでtagを使用してたのに
Windows標準のコンポーネントでのTagの存在、
全く気づきませんでした。
軽く見ると、もしかしてコントロールには
すべてTagがついてそうで、
そのやり方の方が短くていいかも。
やってみたら、5行も短くなりました。
さんくす。
Private Function GetButton(ByVal a_str As String) As Button
Dim objControl As Control
Dim btn As Button
For Each objControl In Me.Controls
If objControl.Tag = a_str Then
GetButton = objControl
Exit For
End If
Next
End Function
ここはバカが結構いるインターネッツですよね?
そんなに自分を責めるなよ。
いや、実際バカばかりだよな。
全員がそうではないけど。
obj=controls.contains(Button1)とか。
これじゃ意味内科。
410 :
デフォルトの名無しさん:2005/03/25(金) 16:17:50
質問です。
Windowsアプリケーションなのですが、
ShowDialogで表示したページを閉じて親ページにもどる時に親ページをリフレッシュ
する一般的な方法ってありますか?
Webアプリケーションの時はフレームを使ってJavaScriptを埋め込みました。
411 :
デフォルトの名無しさん:2005/03/25(金) 16:19:36
>>410のつづき
しかし、Windowsアプリケーションでは方法が見つかりません。
回答よろしくお願いします。
リフレッシュの意味がわからん。
413 :
デフォルトの名無しさん:2005/03/25(金) 16:24:44
414 :
デフォルトの名無しさん:2005/03/25(金) 16:26:53
415 :
デフォルトの名無しさん:2005/03/25(金) 16:42:27
↓もしかしてこれだけとかゆう落ちだったかも・・
Dim f2 As New Form2
f2.ShowDialog()
Me.Form1_Load(sender, e)
Webアプリケーションももっと楽な方法がありそうですね。
閉じる時に、クローズドイベントとかあるのでは?
VB.NETから簡単に使えるHTMLパーサはないでしょうか。
>>413 おバカ!!
イベントの概念勉強してこい。ぼけ。
Form1_Loadメソッドを
呼びだすという意味じゃないの?
ひとをバカ呼ばわりするなら、解決策も併記してほしいもんだな。
>>420 Form1_Load()を呼び出しても何の問題もないよ。
でも
>>418さんの説明を待ってみましょうか?w
すいません。どなたか
>>417のヒントかアイディアだけでも
いいのでお願いします。
>>418は説明できなくて逃亡に65535バイト。
ListBoxで一つの項目だけフォントを太字にすることはできないのでしょうか?
listViewだとできますがいかがでしょう。
>>427 できないのでしょうか?はご法度ですが?
コントロールのフォントを太字にしたいとき
Control.FontBold = True [VB]
Control.Font = New Font (Control.Font, FontStyle.Bold) [VB.NET]
同時に斜体や下線も指定するときはVB.NETの方が一括で指定できて便利だが、
現在のフォントを指定することなくもう少し簡略に書く方法はないだろうか。
ない。
433 :
デフォルトの名無しさん:2005/03/28(月) 00:42:22
というか、
>>431は何が不満でどうしたいのかよくわからない。
旧VBライクに現在のフォントからスタイルだけを変更したいということ?
436 :
デフォルトの名無しさん:2005/03/28(月) 08:18:06
>なんでそれが理解できないの?
>>431の文章が意味不明で一義的に解釈できないから。
だから言わんとしていることを忖度はできるが、理解はできない。
忖度は所詮忖度にすぎない。
そんなこともわからない奴にエンジニアの資格はないと思う。
「もう少し簡略に書く方法はないか」と聞かれたら、
単純にその方法があるかないかを答えればすぐに済む話ではないのか?
そもそも
>>432で答えが出てるんだから、その後に何が不満で
どうしたいのかなんてわざわざ聞く必要すらないだろう。
品名A メーカー1
品名B メーカー1
品名C メーカー2
品名D メーカー2
品名E メーカー3
というデーターを、メーカー名で検索できるような画面を作っているのですが、
単純にメーカー名でSQLで抽出すると
メーカー1
メーカー1
メーカー2
メーカー2
メーカー3
と抽出されてしまいます。
メーカー1
メーカー2
メーカー3
とデーターグリッドに出力したい場合は、何を使えばよいのでしょうか?
メーカーが別テーブルになってない?
そんな馬鹿な! 何のための「リレーショナル」データベースだ!
distinct
VBってもしかして正規表現ない?
VBは知らないがVB.NETにはRegexクラスがある。
VB6にはないな。
正規表現は遅くなるから、あんまり使わないな。
>>436 あれ?君は自分がエンジニアのつもりだったのかな?
エンジニアはこんなところには来ないはずですけど。
私も含め、エンジニアなんてここには来てないと思ってました。
認識を改めるように。
>>436 お前普段そんな言葉遣いしてるの?
ムリしなくていいぞ。
448 :
デフォルトの名無しさん:2005/03/28(月) 21:19:12
てか、ほっときゃいいじゃねーか
>441
意味不明。
>>437 >>436みたいな投稿への2ちゃん流の対処は「必死だな」の4文字で
十分だよ。まともに相手する必要なしw
図に乗るからな。
何を騒いでるかと思えば荒らし(
>>436)を放置できない奴らの集まりか。
あ、俺もか。
ランタイム不要なアプリを作るにはどうしたらいい?
前から言ってるが、本当にバカばっかりだな。
ばかりというだけで、全員がバカではないのが救いだ。
↑バカw
457 :
デフォルトの名無しさん:2005/03/29(火) 18:02:05
あっ、あのぉ・・・
メモリエディタってあるじゃないですかぁ・・
あんな感じのメモリを弄る(?)ツールを作りたいんですけど
どうやったらいいですかねw
プログラミング初心者なので
メモリを取得したり弄ったりできる方法を教えて下さいw
ねこまんま作者のサイトとリンクを熟読すればいいと思う。
459 :
デフォルトの名無しさん:2005/03/29(火) 19:00:34
pocket PC 2003用のプログラムで
他のexeを実行するにはどうすればいい?
processが使えなくて困った
460 :
デフォルトの名無しさん:2005/03/29(火) 20:53:13
いまどき実メモリ好き勝手にいじること許すようなOSがあったら見てみたい。
>>457はメモリとファイルの区別がついてないんじゃないか?
バイナリエディタのこと言ってるんでしょ?
こんなレベル人の作ったバイナリエディタなんて怖くて使う気しないけどw
釣られないぞ
>>459 APIを直接操作するしかないんじゃない?
Pocket PCのAPIに詳しくないからアドバイスはできないが。
Win32APIならKernel32.dllのCreateProcess関数だが。
//.NET 2.0でProcessクラスがCompact Frameworkでもサポートされるようになるようだ。
>>458 熟読してみまーす
>>460 そーなんですかぁー、もうちょっと勉強してみまーす
答えてくださった方ありあとうございました。
VB.NETとC#.NETで書いたプログラムに処理速度の違いはあるんでしょうか。
C言語の方が高速だと言いますが、.NETで書いたプログラムはビルドすると
MSILという中間コードになるので基本的にはどちらも同じですよね。
ただ“VB.NET製のプログラムにはMicrosoft.VisualBasic.dllが必ずImportされて、
はずせない”ようなのでここで若干変わるんでしょう。だとしたら速度は
VB.NET<C#.NET<C++.NETだと思うんですがこれで合ってるでしょうか。
C++.NETはネイティブコードもできるということで一番上です。
有意の差はない。
.NET Frameworkって何たるかわかってないな。
MSILが何たるかわかってないな。
>VB.NET製のプログラムにはMicrosoft.VisualBasic.dllが必ずImportされて、
>はずせない
根拠を教えてください。
470 :
デフォルトの名無しさん:2005/03/30(水) 21:56:41
>>469 そんな厨房みたいな突込みわざわざせんでも。。
ちゃんと自称してるじゃないか。
Microsoft Text Driverを使ってCSVファイルのデータを
DataTableに入れたいのですが、CSVファイルの文字コードが
Shift-JIS以外では文字化けして正しく取得できませんでした。
(試したのはUTF-8とEUC-JP)
Shift-JIS以外のCSVファイルをMicrosoft Text Driverで
読み込むのは無理でしょうか。
objConn = New OdbcConnection
objAdapter = New OdbcDataAdapter
dtCsvData = New DataTable
objConn.ConnectionString = "Driver={Microsoft Text driver (*.txt; *.csv)};DBQ=" & Directory.GetCurrentDirectory() & "\.."
objAdapter.SelectCommand = New OdbcCommand("SELECT * FROM UTF8.csv", objConn)
objConn.Open()
objAdapter.Fill(dtCsvData)
Hi japanese -)
im jon from new york
>>472 実感できるほど変わらないってことじゃねーの?
2005っていつ発売なのですか?
>>424 うぅぅ、せっかく教えて頂いたのですが、使い方が全然分かりません・・・
分かりやすく解説してあるサイトや書籍などはないでしょうか。
MSDNに日本語のリファレンスとかないんですね・・・
やはり、バカばかりだ。
最低限の検証くらいしろよ。
せめてILレベルくらいの検証はしろ。ぼけ。
>>482 君はそんなに優秀なのかな?このスレに誰からも
回答がつかなかった質問もたくさんあるようだけど、
どうして答えてあげないの?
485 :
482:2005/03/31(木) 11:03:55
うるせーな、ぼけ。わかんねーんだよ、バカ。
>>481 リファレンスぐらい英語で困る事なんかないと思うんだが……。
必要なのは型/メソッド/プロパティ名と仮引数と返値の型くらいじゃん。
統合開発環境使ってればカバーしてくれるし。
それともDOMを今までいじった事がないのか?
自分が出来るからってきどってんじゃーねよタコ
>>487 IHTMLDocument2にキャストして、StreamReaderとかでファイルから読み込んだ文字列をwriteしてやればいいようだな。
IPersistFileは自分で定義しても何故かどうもうまくいかない。createDocumentFromUrlも。
コマンドラインパラメータを取得するにはどうしたらよいでしょうか?
Mainメソッドの引数に与えられるが、Mainメソッドは普段隠蔽されてるんだよな。
System.Environment.GetCommandLineArgsメソッド。
493 :
デフォルトの名無しさん:2005/03/31(木) 15:57:47
vbのプログラム上からアクロバットリーダーを呼び出したいのですが
立ち上がるアクロバットリーダーが常に一つしか立ち上がりません。
ファイル名が異なれば新しくアクロバットリーダーを立ち上げたいのですが
どうしたらいいんでしょうか?
以下はアクロバットリーダーを立ち上げている部分のソースです
Dim myProcess As Process
Dim startInfo As ProcessStartInfo
startInfo = New ProcessStartInfo(Path)
myProcess = Process.Start(startInfo)
>>494 反応するような、藻前みたいなヤツに言ってるんだろう (プ
>>490 >IHTMLDocument2にキャストして、StreamReaderとかでファイルから読み込んだ文字列をwriteしてやればいいようだな。
申し訳ないのですが、サンプルソースを載せていただけないでしょうか。
>>495 オレのレスがおかしかったのか、気になったんでな。
>>497 えー。それくらい書こうよー。
Dim doc As New mshtml.HTMLDocument()
Dim sr As New StreamReader("c:\hoge.html", System.Text.Encoding.GetEncoding("Shift_jis"))
Dim doc2 As mshtml.IHTMLDocument2 = doc
doc2.write(sr.ReadToEnd())
doc2.close()
sr.Close()
Dim elem As mshtml.IHTMLElement
For Each elem In doc.all
Debug.WriteLine(elem.tagName)
Next
>>493 どういう状況になってるのかは書いてないから分からないけど、
アクロバットリーダーの制限じゃないの?
私のとこのアクロバットリーダー7.0だと、初めにプロセスが一つ立ち上がって、
その後Prcess.StartするたびにMDI子ウィンドウが増えるようになるが。
501 :
デフォルトの名無しさん:2005/03/31(木) 17:05:17
>>500 ありがとうございます。
>Prcess.StartするたびにMDI子ウィンドウが増えるようになるが。
のレスで自分の間違いに気づきました。
アクロバットを立ち上げるメソッド内でProcessを宣言して
正常に起動したらProcessはcloseしていました。
フォームが立ち上がってる間はProcessはcloseせずに
ずっと開きっぱなしにしておかないと駄目だったんですね。
お手数おかけしました。
ShowDialogで生成されたインスタンスって
ほおって置けば勝手にガベージされるの?
それともDisposeしないと永久に残る?
>>499 んー、ヘタなソースですが参考にさせて頂きます。
タダで他人にコード書かせておいて「下手なソース」とかよく言えるよな。
>>502 DisposeはGCとは関係ないぞ。
参照が無くなったらGCの対象になる。
>>505 トンクス
どうやら勘違いしてたようです
ボタンクリック等のプライベート関数で
FormをShowDialogすると
アプリケーション終了の段階でようやくForm.Disposeが走ってたので
CGがDisposeを実行してるのかと
もうちょっと調べてみますです
507 :
デフォルトの名無しさん:2005/03/31(木) 18:25:02
今すごいことに気づきました。
今まで自分で作ったソースを見ると、
イベントハンドラの第一引数senderの型が
ObjectだったりSystem.Objectだったりしてます。
フォームのロードでもクロージングでもクローズドでも
ボタンのクリックでもメニューのクリックでもです。
これってなんででしょうか?
みなさんのソースはどうですか?
どこがすごいんだ?
senderはイベントを起こしたオブジェクトが入る。
Button1_ClickならButton1が入ってるし、Form1_LoadならForm1が入ってる。
そのためどんな型でも入るようにObject型で宣言する。
それだけの話。
> ObjectだったりSystem.Objectだったりしてます。
これも突っ込むところなのだろうか・・・?
>>504 んーと、タダからヘタでも許してあげる、ってとこですかね。
>>507 > ObjectだったりSystem.Objectだったりしてます。
同じじゃねーか
>>512 その違いも分かってないのか・・・いたたたたた・・・
515 :
デフォルトの名無しさん:2005/03/31(木) 21:20:18
CE用のプログラムで
ポケットPCのシステム日付時刻を変更する方法はありませんか?
>>515 DateAndTimeモジュールのTodayプロパティ・TimeOfDayプロパティはサポートされてない?
断末魔?
520 :
デフォルトの名無しさん:2005/03/31(木) 22:00:56 BE:28350533-###
VC++に比べてなんでこんなにVBは簡単なのでしょうか?
521 :
デフォルトの名無しさん:2005/03/31(木) 22:06:42
DateAndTime.TodayにDateを入れて変更しようとすると
noSupportedExceptionのエラーが出てしまいます…
>>502 ShowDialogのときは、不要になったときに
Disposeしておいた方がいい。
ほうっておいてもアプリケーション
終了時に破棄されるとは思うけど。
524 :
デフォルトの名無しさん:2005/03/31(木) 22:55:26
VBのやり方だと出来ないっぽいです…
Microsoft.VisualBasic.DateAndTime.Todayを使おうとすると
notFupportedExceptionが発生してしまっています
> VBのやり方だと出来ないっぽいです…
てのはどういう意味かな?
523の話?
527 :
デフォルトの名無しさん:2005/03/31(木) 23:10:54
>>525 ごめんなさい
523のことです
compactだと時刻設定は出来ないんですかねえ…
>>527 どうできないのかを聞くまでは。
何かの例外が投げられるのか?
(リンク先で言う)SetTime関数がFalseを返すのか?
文字変換部分はうまくできているのか?
SmtpMail使ってtext/plainなメールを送信したら本文の最後に必ず改行が足されるんですけど、
これって仕様?
530 :
デフォルトの名無しさん:皇紀2665/04/01(金) 08:59:13
>>513 ObjectとSystem.Objectの違いを教えて下さい。
旧型Objectと新型Object(.NET)
ってことだけで、同じですよね?
>>530 >>513ではないが
ObjectはSystem.Objectのエイリアスだよ。
要するに、同じものです。
名前空間を理解してないんじゃない?
533 :
デフォルトの名無しさん:皇紀2665/04/01(金) 10:14:47
>>531 さんくす。
でもなんで、同じForm_Loadで
senderがObjectだったり、System.Objectだったりするのだろう?
エイリアス使ったりそうでなかったりなのでしょう?
どうして使う名前が統一してないのでしょう?
>>533 残念ながら、私はVB.NETを
使ったことがないんでよくわからないです。
>>532 名前空間は関係ないよ。
>>534 .NET使ったことなくてよくわかんねーならだまってろ。
名前空間そのものの話だろうがよ。
.NET使ったことがないとは言ってないが・・・
>名前空間そのものの話だろうがよ。
IntegerとSystem.Int32のような関係といったらわかる?
537 :
デフォルトの名無しさん:皇紀2665/04/01(金) 11:57:59
>>533ですが、なんか文がおかしいので訂正します。
×どうして使う名前が統一してないのでしょう?
○どうして使う名前が統一されてないのでしょう?
○どうして(MSは)使う名前を統一してないのでしょう?
選択すると自動で作成されるイベントハンドラで、
Form_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
だったり、なんかソースが統一されてなくていやです。
538 :
デフォルトの名無しさん:皇紀2665/04/01(金) 12:30:19
なんか厨房ネタが続いているなあ。。
>>536 Objectがエイリアスだと思ってるのか。。
それこそ違うよ。
>>538 じゃあ、Systemをインポートしなくても大丈夫なのは何で?
540 :
デフォルトの名無しさん:皇紀2665/04/01(金) 12:41:08
>>539 ネタだと思うけど一応回答ね。
プロジェクトのプロパティを見るべし。
>>540 はっはっは、vbc.exeでメモ帳に書いたソースをコンパイルした事もないのかい?
うろ覚えだが、プロパティのインポートってとこ?
Systemを削除してもコンパイル通るけど。
さちこさん。お茶
544 :
デフォルトの名無しさん:皇紀2665/04/01(金) 15:00:00
マルチスレッドについて質問です
http://dobon.net/vb/dotnet/programing/abortprocess.html の後半に、マルチスレッドのサンプルコードがあります。
その中で、ボタンのEnabledを変更するためや、コントロールの値を変更するために
デリゲートを使用しているのですが、これはなぜでしょうか?
調べてみると、どうやら非同期デリゲートというものらしいのですが、
いかんせんスレッドもデリゲートも初心者の旧VBプログラマなので、
なぜこういうコーディングになったのかを理解したいのです。
デリゲートにすると非同期になるんですか?
なぜ非同期でないとまずいのでしょう?
普通にButton1.Enabled = true とするとどうなってしまうの?
どなたかお分かりになる方、ご教示ください
文字列を指定したキーで暗号化してくれる関数を探しています。
もしご存知のかたがいましたら教えてください。
こんな感じで・・・
private function 文字列暗号化(byval s as string, byval key as string) as string
ありました。
>>544 > デリゲートを使用しているのですが、これはなぜでしょうか?
Invokeを使うから。
デリゲートというのは、メソッドそのものを変数に代入できるようにしたもの。
そうすることで、例えばデリゲートを引数に取るメソッドを書くと、そのメソッド先で“デリゲートで指定されたメソッド”を実行できるようになるわけ。
で、Invokeメソッドはデリゲートを引数に取るから、デリゲートを作ってるわけ。
InvokeメソッドはForm(の基底クラスのControl)に実装されたもので、
「“自分を作ったスレッド”で、“渡されたデリゲートで指定されたメソッド”を実行する」
という働きをする。
デリゲートもクラスの一種なんだけど、宣言すると自動的にBeginInvoke/EndInvokeと言うメソッドが追加される。
これが非同期デリゲートと言って、BeginInvokeを呼び出すとそのデリゲートに指定されているメソッドが別スレッドで実行される事になる。
んだけれども、この場合は関係ない話なので、非同期デリゲートの事は棚に上げておいて良い。
あと一応フォローしておくと、「非同期で実行」=「別スレッドで実行」。
> 普通にButton1.Enabled = true とするとどうなってしまうの?
なぜInvokeを使うか、というのの詳細は面倒なので省略。
・必ずコントロールを作成したのと同じスレッドで操作しなければならない
・作成スレッドと同じスレッドで操作するのにはそのコントロールのInvokeまたはBeginInvokeを使う
・その操作処理はデリゲートでラップしてInvoke/BeginInvokeの引数に渡す
という点だけ覚えればいい。
そうしない場合、「何が起こるかは保証されない」。
ネットワーク上のPCの共有フォルダにアクセスしたいのですが、
ユーザーとパスワードを指定してアクセスできるようなクラスはありますか?
クラスはない。
Win32API使うしか。
550 :
548:皇紀2665/04/01(金) 16:55:36
>>547 詳細な解説、ありがとうございます
30回くらい読み返して、ようやく意味が分かってきました
ちなみに、コントロール(とか、そのスレッド内で作成されたオブジェクト)に関わらないメソッドなら
そのまま呼び出してもいいという理解でよろしいですか?
数値・文字列等の演算系関数とか
あ、でもStringすらクラスですよね
ということは、クラスのスコープが大事ということでしょうか?
呼び出すメソッド内で作成され、消滅するクラスオンリーで構成されたメソッドなら、そのまま呼んでよし、とか
プロジェクトや、フォーム全体で使用しているクラス(グローバルやソースの上の方で宣言したりするもの)を触るメソッドなら、デリゲートで呼ばないとだめ、とか
マルチスレッドは奥が深いですね
むずかしー
>>551 > ちなみに、コントロール(とか、そのスレッド内で作成されたオブジェクト)に関わらないメソッドなら
> そのまま呼び出してもいいという理解でよろしいですか?
> 数値・文字列等の演算系関数とか
勿論。
というかInvokeしたら全てコントロール作成スレッドで実行される事になって、マルチスレッドじゃなくなってしまう。
> あ、でもStringすらクラスですよね
> ということは、クラスのスコープが大事ということでしょうか?
いいや、スレッドを超えてオブジェクトを共有して構わない。
寧ろオブジェクトを共有できる事にスレッドの意味がある。
Invokeしなければならないのは、コントロール(System.Windows.Forms.Controlとその派生クラス)を操作する時のみ。
ただし2つのスレッドから同時にあるオブジェクトを操作してしまったりすると問題が起こりうるから注意が必要だ。
例えばあるスレッドでArrayListをFor Eachしている時に、別のスレッドでこのArrayListにAddしたりRemoveしたりしたら、正しくFor Eachできなくなる。
そういうのを避けるためにSyncLockステートメントなどがある。
553 :
デフォルトの名無しさん:皇紀2665/04/01(金) 19:09:27
DOBONさんとこのメルマガのバックナンバー嫁、でいいんじゃないの?
ここで説明しきるなんて無理なんだから。
まあ、自分の中での整理も兼ねて。
バカばかりだしな。
556 :
551:int 2ch =05/04/01(金) 22:44:26
>>552 なるほど!
重ね重ねありがとうございました。
大変参考になりました。
精進致しますです。
>>553,555
申し訳ありませんでした。もう消えますので勘弁して下さい。
558 :
デフォルトの名無しさん:int 2ch =05/04/02(土) 01:47:58
結局
>>533は誰もわからないということでしょうか?
なんで統一してないかなんて作った奴に聞かんとわからんだろう。
だぼーくぃっくで生成したかリストから選んで生成したかがわかるかも
しれんぐらいだな。
>>559 しょーがないな。
このスレは、言語だけでなく文章まで初心者の香具師ばかりだから。
561 :
559:int 2ch =05/04/02(土) 10:17:11
文章を正して投稿して。
>>558 IDE の仕様の話をされても困りますから (w
>>557 あのな・・・
『少しは』自分で考えなさい。
『少しは』ね。
>>563 いや、もちろん自分でも考えるというか試してますが、
どうも私にはムリそうなので質問しているのです。
565 :
564:int 2ch =5,2005/04/02(土) 14:51:41
ちなみにShift-JIS以外の場合はいったんShift-JISの一時ファイルに
変換してから
>>474の方法で読み込む、という方法で一応は
解決しています・・・が、どうにも不細工なやり方に思えるので、
スマートにできるやり方を知っている方がおられましたら
是非お願いします。
このスレは馬鹿の溜まり場みたいな
ところだから、聞くだけ無駄だろ。
春だねぇ。縦読みにすらなってない。
バグにもならないコメント文みたいなもんだな。
VB.NETの初心者です。
テキストファイルをStreamReaderで開くときにエンコードを
指定できますが、あらかじめ文字コードが分かっていない
場合はどう指定すればよいのでしょうか。
JavaだとJISAutoDetectとかいうのがあって便利だったのですが。
そうか。じゃあ自前実装で車輪の再発明を頑張れ。
発明じゃなくて、作りなおしだろ。ばか
577 :
デフォルトの名無しさん:2005/04/03(日) 12:25:00
普通のスレなら春休みの厨房クンが……と思うところだけど
もともとVBやってる奴ってスキルだけでなく人格的にも未熟な奴が多いからなあ。。
幼稚な自分に嫌気がささないところが不思議でしょうがないんだけど、
まあ自意識ないんだろうなこういう輩は。
>>577 自意識ないんだろうなぁ、こういう輩は。
C# VB.NET VB(p-code)
平均 310 平均 1190 平均 5488
最小 296 最小 1156 最小 5468
最大 329 最大 1313 最大 5625
1億回の計算を連続で行うのにかかった時間(ミリ秒)
これだけじゃ判断しようがないんだが。
>>579 どうせ等価なコードは書けてないんだろ。
>>583 多分全然等価じゃないコードが出てくると予想。
コードは等価なんです!
実行した機材が違うだけで。
とか?
不満があるなら自分で試せよ
>>588 とうの昔に試してるけど?
バカにデータは公開しないが。
>>579 ソースを含め、何の条件も添えずにこんなデータ出す奴の
気が知れないよな。
自分でやろうやろうと思って忘れてて、
いざ他人に先越されると悔しくて難癖つける・・と。メモ
メモ♥
この板も早くIDつけてほしいよな。
みんなでbe付ければ解決。
>>598 おお、こんなのあったんだ。
で、beってどうやって付けるの?
他の人のベンチマークまだぁ?
>>579のデータがおかしいと言うのなら、まず自分で数値出さないとねぇ。
C#とVB.NETなんて速度ちっとも変わらねぇよとでも言いたいのか?
そう言いたいならハッキリそう言えばいい。
折れのでは、C#:VB.NET = 1:1 だった。
変わんない
C#とVB.NETに速度の違いがあるとすると整数のオーバーフローチェックの
デフォルトの違いくらい。それほど違いが出るものかな?
/removeintchecks
/checked
関数使ってると変わってくるんじゃないのか
>>603 それ以前の問題であることに早く気付いてください。
>>590とかで乱暴ながらも指摘されてるのに
気付かなかった?
> まず自分で数値出さないとねぇ。
利用規約違反ですね。タイーホします。
>>608 だな。
おまえら、EULAをちゃんと嫁。
このうんこやろう。
610 :
デフォルトの名無しさん:2005/04/04(月) 10:33:49
If button Is TBB0 Then
'TBB0のときに必要な処理
ElseIf button Is TBB5 Then
'TBB5のときに必要な処理
End If
↑こんなコード(button、TBB0、TBB5はいずれもButton型)
をSelect Caseで整理しようとしてるんだが、Select Caseでは
Button型は使えないみたいで、CObj()を通してもだめで、
しかたなく
Select Case button.Text
Case TBB0.Text
'TBB0のときに必要な処理
Case TBB5.Text
'TBB5のときに必要な処理
End Select
こんなごまかしで動かしていますが、もっとうまい方法はないものでしょうか?
(TBB0.Text=TBB5.Textになっちゃうとおかしくなりますし)
>>610 どうしてもというなら.Nameで分岐するとか。
612 :
610:2005/04/04(月) 12:07:59
>>611 うう、ありがとうごぜぇますだ。さっそく試すべ。。。
あれ、なんか違うかも?ん?、Button型じゃなくてToolBarButton型?
え、なんでNameプロパティないの?
すみません、質問するまえにもうちょい下調べしないと。
でもオブジェクトを確実に識別できるプロパティを探せばいいわけだし、
がんばってみます。
614 :
デフォルトの名無しさん:2005/04/04(月) 12:42:10
下手したら30代超えのオッサンが「うんこ野郎」だの「タイーホ」だの言ってるかと
思うと反吐が出るな。
幼稚臭っ。キモ過ぎる。
615 :
デフォルトの名無しさん:2005/04/04(月) 12:43:25
なんでVB使いにはこんな幼稚な奴が多いんだ?
>>612 .Tagがあるなら、好きなのを定義して分岐のキーにできる。
ToolBarButtonなら、ToolBarのButtons.IndexOf(button)でインデックスベースという手もあるが。
>>613 発想がおかしい。省略していいかどうかの判断ができていない。
それにソースだけではないとも指摘されているが
それについて触れようともしていない。
結論。アホ。
620 :
610:2005/04/04(月) 18:02:49
>>616 Tagは真っ先に考えたのですが、フォームが多数あって
Tagを入れ忘れるやつがいないとも限らないので
(VBのToolbarでKeyの入れ忘れを散々やってます(汗))
他の方法がないかと勉強してたところなのです。
(入れ忘れさえなければいい方法なのですが)
>>617 With TB1.Buttons
Select Case .IndexOf(button)
Case .IndexOf(TBB0)
Case .IndexOf(TBB5)
こんな感じになりますた。だいぶすっきりだし、判定もまちがいなさそうです。
>>618 すまぬ。ヘルプみたのだがいい方法が見つからなんだ。
621 :
デフォルトの名無しさん:2005/04/04(月) 19:41:17
素直にIf...ElseIfで書いたほうが後々理解しやすいと思うけど。。
>>621 まあまあ。こういう輩にそんなこと言ったって
わかんないんだって。分かりやすいプログラムを書ける人が
PGとして高く評価されることにそのうち気付くかなぁ。
>>621 現場の事わかってない厨か学厨でしょ しょせん
自分でマスかいて、高度な事やってるつもりでも
周りはいい迷惑なんだって
おまえが責任もって最後まで虫取り保守やれっていいたくなる
やっぱり、バカが集まるところだ。ここは。
>>624 現場を気取ってるが多分学生だな。
多分本当に現場にいるPGなら後半2行にそのことを
露呈した記述があることにすぐ気付くと思うが。
>>625はそれを指摘してるんだよな。
一人芝居が上手なスレはここですか?
>>626 げっ
ばれましたか
さすがです...ショボーン
630 :
629:2005/04/04(月) 22:09:38
あー、アンカーは626じゃなくて628にするべきだったね。
まーどうでもいいけど。
>>619 数値だけ出して読む側がそれを信じようが信じまいが問題なし
別に何をどう書こうが自由だしw
>>631 まだ分かってないみたい。信じる信じない以前に
判断を下しようがない、って言ったら分かる?
分かりやすいように、君がやったことを極端な例にしてあげようか?
パフォーマンス測定しました!
VB.NETは1秒、C#では100秒でした。
終わり。
>>632 まだ分かってないみたい。読み手が判断を下す以前に
何を書こうがどんな書き方をしようが自由だって言ったらわかる?
終わり。
>>633 それはいいけどその後の君の対応はNG。
>>633 はいはい。このスレを君の落書き帳として使わせてくださいってことね。
それに対しては「いいよ、通報されない程度にね」としか
言いようがないな。
>>633 分かりました。あのデータがどんな条件やどんなソースから
得られた数値なのか興味があるのですが、提示して頂けませんか?
>>634 どんな対応をしても自由だしw、NGだと思っているだけだろう
必死になりすぎて恰も別人を装っているかのように思える。
>>635 もし荒らしだと思っているなら、それに反応するのも荒らしだな。
荒らしを助長していることになる。
>>636 めんどくせ
>>638 捏造データ?じゃないですよね。
ソースはもう消してしまったんですか?
>>639 ごめんなさーい、もう消してしまったんですぅーm(_ _)mペコリ
>>642 ソース見て叩こうと思ったけど無理みたいだから諦めます。
>>642 よっぽど他人には見せられない代物だったんだろうなぁ。
>>643 暇つぶしができると思って期待してたのかな?相手できなくてごめんね
>>644 見せられないのではなく、何度も言っているように見せるのがめんどくさいんだよ。
やっとわかってくれたかな?
646 :
質問age:2005/04/05(火) 00:57:13
しつもんです!そもそも
>>633さんは何が訊きたかったのでつか?
>>646 その何かがわかるまでスレッドの中を何度も繰り返し読んでみよう!
きっと何かがわかってくるはずだよ。
648 :
646:2005/04/05(火) 01:13:06
世の中は春休みだという事がわかりますた。。。_| ̄|○
わかるの遅っ
世の中は春休みだったのか・・・。
俺がいる世界はもしかしてあの世なのか?!
こりゃまいったわぃ
わかるの遅っ
>>645 あれー?削除しちゃったんじゃなかったんだー。
コロコロ変わるねーw
普通に組んでC#の方が速いならC#で作りたいなぁ
普通に組んでC++の方が速いからC++で作るといいよ。
C++は難しいのでやめておきます。
>>652 削除したことどこでも否定してないけどw 頭大丈夫?
まぁ、めんどくさいと言っても削除しちゃったから見せることすらできないけどねw
657 :
デフォルトの名無しさん:2005/04/05(火) 16:40:23
http://www.atmarkit.co.jp/fdotnet/winexp/index/index.html ↑サンプルアプリケーションがあったのでちょっと拝見
しかし、こんなもの見て「よし、これやってみよう」なんてプログラマいないよな?
まんど臭い機能つけて後で突っ込み浴びて却下とかなったら、破壊したくなるもんなあ。
Sのプログラマは駄目かと思われ・・受身が一番で常。
ただRAD手法は絶対必要だと思う。んでもって強気にいかないと(仕様変更をあの手この手で防がないと)、納期に間に合いません!
フィックスって言ってたやん・・なんて愚痴は何百回言ったことでしょうか・・
>>656 >>656 >削除したことどこでも否定してない
まさにあなたはそこを突っ込まれたのですよ。
理解してから書くか、理解できてないのならダンマリでよろしく。
そろそろウザいので相手するな。
>>658 いやぁ以前にも書いたけどどんな書き方しようが自由だからね。
そんなに僕ちゃんのおふざけが気に入らなかったかなw
あるプロセスが起動中か確認したいのですが
どうのようにすればよいでしょうか?
例えばhoge.exeか起動中かどうかというのを
確認したいです。
System.Diagnostics.Process.GetProcessesByName
WebBrowserコンポーネントで開いたExcelのイベントを取ることは可能だろうか?
667 :
初歩的な質問なのですが:2005/04/06(水) 16:05:18
初歩的な質問なのですが、vb.netを使ってアプリケーションを作成し、
セットアッププロジェクトでインストーラーを作成しています。
その際に作成した「プロジェクトファイル名\obj\Release」に作成したアプリケーションが出来ますが、
これをセットアッププロジェクトの「アプリケーションフォルダ」にドラックアンドドロップして、作成したアプリケーションを含めてビルドを行うと、依存関係が見つかりませんと出ます。
アプリケーション単体でビルド行った際には出ないのです。
もちろん、必要なCOMなどは参照設定で登録しております。
これは何が問題なのでしょうか?
668 :
デフォルトの名無しさん:2005/04/06(水) 20:51:32
>>667 理解しようとする意欲がないのに、最初からいきなり複雑なことを
成し遂げようって発想が理解できない。
韓国人のパリパリとかいう主義みたい。
そういう場合はまず手始めにフォームだけの空っぽのアプリのインストーラを
作ってみる。小学生でもわかる定石でしょ。
話はそれから。
年齢を生年月日から求めたいのですが
DateDiffで年の差を求めると月/日が無視されてしまいます。
困りました。
DateTimeのSubtractメソッド、TimeSpanのTotalDaysプロパティ、除算。
671 :
デフォルトの名無しさん:2005/04/06(水) 22:40:51
>>669はただ「困った」って言ってるだけじゃん。
何も質問してないぞ。
>>670 それって365日と366日で結果が違ったりしませんか?
超てきとー
>>671 (・∀・)ニヤニヤ
673 :
デフォルトの名無しさん:2005/04/06(水) 23:25:48
VBを始めようと思っているのですが、周りの人はCにしておけといっています。
VBの欠点を教えてください。
674 :
デフォルトの名無しさん:2005/04/06(水) 23:49:21
>>673 数日前もだれかに言った気がするが・・・
馬鹿に思われるからやめなさい
676 :
デフォルトの名無しさん:2005/04/07(木) 11:34:46
以下のようなエラーが出ます。
> 'System.ObjectDisposedException' のハンドルされていない例外が mscorlib.dll で発生しました。
> 追加情報 : 閉じている TextWriter に書き込むことはできません。
エラーが出るのは下のソースで「_WriteText.Flush()」です。
Finalize()でFlush()を呼ぶ前にClose()は呼んでません。
なぜこんなエラーが返るのか検討がつきません。知っている方、ご教授願います。
Public Class TextOut
Private _FStream As FileStream
Private _WriteText As StreamWriter
Public Sub New()
_FStream = New FileStream("log.txt", FileMode.Append, FileAccess.Write)
_WriteText = New StreamWriter(_FStream, Encoding.GetEncoding("Shift_JIS"))
End Sub
Protected Overrides Sub Finalize()
_WriteText.Flush()
_WriteText.Close()
_FStream.Flush()
_FStream.Close()
_WriteText = Nothing
_FStream = Nothing
MyBase.Finalize()
End Sub
End Class
.NETでの正規表現の質問はここでいいのでしょうか。
パターンAからパターンBが「最初」に出てきたところまで、
というパターンを作りたいのですがうまく行きません。
pA〇〇〇〇〇pBpA×××pBpA△△△△△△△△pBpA・・・・
↑から pA〜pBまでのセットを取りたいのです。
ここで、 pA.+pB とやると最初から最後まで引っかかってしまいます。
ただ、 pA[^pB]+pB とやれば意図したように動くのですが、
実際にはパターンA、パターンBとももう少し複雑なので
なにかいい方法はないでしょうか。
最短一致は「?」
VB.NETの質問スレだろ?なんでVB否定するヴォケがいるの?ROMってろよ、ゴラァ
>>678 ありがとん
pA.+?pB で思うようにできました。
普段はエラーなど起きないのに、ごく稀に発生するエラーに悩んでおります。
発生するエラーは2種類あります。
System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。
at System.Data.Common.Dbnetlib.ConnectionError(HandleRef pConnectionObject, IntPtr& netErr, IntPtr& netMsg, IntPtr& dberr)
at System.Data.SqlClient.TdsParser.ProcessNetlibError(IntPtr errno)
at System.Data.SqlClient.TdsParser.ReadNetlib(Int32 bytesExpected)
at System.Data.SqlClient.TdsParser.ReadBuffer()
at System.Data.SqlClient.TdsParser.ReadByteArray(Byte[] buff, Int32 offset, Int32 len)
at System.Data.SqlClient.TdsParser.ReadEncodingChar(Int32 length, Encoding encoding)
at System.Data.SqlClient.TdsParser.ReadValue(_SqlMetaData md, Int32 length)
at System.Data.SqlClient.TdsParser.ProcessRow(_SqlMetaData[] columns, Object[] buffer, Int32[] map, Boolean useSQLTypes)
at System.Data.SqlClient.SqlDataReader.PrepareRecord(Int32 i)
at System.Data.SqlClient.SqlDataReader.GetValues(Object[] values)
at System.Data.Common.DbEnumerator.MoveNext()
at System.Web.UI.WebControls.Repeater.CreateControlHierarchy(Boolean useDataSource)
at System.Web.UI.WebControls.Repeater.OnDataBinding(EventArgs e)
at System.Web.UI.WebControls.Repeater.DataBind()
at hoge.hogehoge.Button1_ServerClick(Object sender, EventArgs e)
at System.Web.UI.HtmlControls.HtmlInputButton.OnServerClick(EventArgs e)
at System.Web.UI.HtmlControls.HtmlInputButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
at System.Web.UI.Page.ProcessRequestMain()
続く...(本文長すぎって。。。)
682 :
681:2005/04/07(木) 17:41:27
...続き
System.InvalidOperationException: データ リーダーが閉じているときに、無効な操作 Read をしようとしました。
at System.Data.SqlClient.SqlDataReader.Read()
at System.Data.Common.DbEnumerator.MoveNext()
at System.Web.UI.WebControls.Repeater.CreateControlHierarchy(Boolean useDataSource)
at System.Web.UI.WebControls.Repeater.OnDataBinding(EventArgs e)
at System.Web.UI.WebControls.Repeater.DataBind()
at hoge.hogehoge.Button1_ServerClick(Object sender, EventArgs e)
at System.Web.UI.HtmlControls.HtmlInputButton.OnServerClick(EventArgs e)
at System.Web.UI.HtmlControls.HtmlInputButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
at System.Web.UI.Page.ProcessRequestMain()
以下、ソース抜粋
Repeater1.DataSource = SqlDataReader1
Repeater1.DataBind() ★ ここで稀にエラーが発生
SqlDataReader1.Close()
SqlConnection1.Close()
SqlConnection1 = Nothing
データベースを検索して結果を表示する、といった簡単なものなのですが、
結果の件数が100件程度だと再現せず、1000件ほどになると稀に発生します。
よい解決案などありましたら、ご教授おねがいいたします。
>>681 Repeater1が何ものか知らないが
DataSourceにReaderをつっこむのではなく
DataTableのDefaultViewを設定してみては?
.netフレームワークのバージョンって
どうやって調べるの?
>>676 _FStreamのファイナライザが既に動いてCloseしてるからだろう。
ttp://www.ascii.co.jp/pb/msdn/article/a09_0003.html が参考になるかも知れない。
そもそも、どうせFileStreamがGCされた時にFileStreamのファイナライザが動いてフラッシュして閉じるので、
こちらでわざわざファイナライザを実装してCloseさせちゃいけない。
StreamWriterを使うと、デフォルトではStreamWriterがバッファリングしてストリームにすぐには書き込まないので、
書き込み内容が損失するわけだ。StreamWriterのファイナライザはストリームに操作しないから。
確実にはStreamWriter.Closeが喚ばれない場合の解決策としては、
StreamWriterを使わずWriteやWriteLineメソッドを自前で実装してFileStreamに直接書き込むとか、
StreamWriterを使うなら、AutoFlushをTrueにする手もある。
こういう場合はIDisposableを実装させてDisposeメソッドにファイル閉じる動作を書いて、
プログラマにDispose呼出を明示するのがベターなんだけどな。
VB2005でUsingステートメントもサポートされるようになるし。
ちなみに、StreamWriter.Closeは、自動でFlush動作もするので_WriteText.Flushは必要ないし、
基底のストリームも閉じてしまうのでその後の_FStream.Flushとかできない(意味無い)。
687 :
676:2005/04/07(木) 21:05:29
>>685 レスありがとうございます。凄く×∞参考になりました。m(_ _)m
ついでに、自分のバカさ加減がよ〜くわかりました…
全て685さんの指摘どおりです。
私はVB.NET歴2日の上、JavaやC++(こっちは4年くらいやってる)と同じ
程度の処理が出来ると思ってました(爆)。
StreamWriter.CloseがFileStream.Closeを呼び出すのはいいとして、
Finalize()の呼び出し順序が明確に決まってない事には驚きました。
指摘にあったDisposeの実装で対応するしかなさそうです。
Finalize()を使った「後始末はおまえにまかせる」は無理っぽいですね。
書き込みの精度は、一定のWriteをした直後にFlushするようにします。
StreamWriterとFileStreamの問題は有名なんですね。
しかもStreamWriterのFinalize()が何もしないっては……orz
何かしてくれるとバグに気づきにくい可能性があるからだよ。
>>679 あなたはVBスレでVB万歳なレスだけみていてそれで満足なんですね?
たまには自己否定も必要なんですよ。
690 :
デフォルトの名無しさん:2005/04/08(金) 05:20:35
VB6からの移行組です。
簡単な通信(チャット)を行うプログラムを作ろうと思います。
Winsockコントロールが標準で無いのでSystem.Net.Socketsを
使う方法を初歩から学習中です。
そこで分からないのは、Winsock.ocxのデータ受信イベント
(DataArrival)の代わりの方法についてです。
WithEvents 付きで System.Net.Sockets.TcpClient を宣言すると
「WithEvents変数はイベントを発生させません」と怒られます。
何か、Eventドリブン式で書く方法は有りますでしょうか?
とりあえず、Threadクラスを使ってループ待ちさせる方法を見つけ
自作イベントのような形では実現できましたが、こっちのスレッド
方式と、Event方式とどちらが一般的でしょうか?
VB6の時にクラスは使ってましたが理解度は低めです。
よろしくお願いいたします。
わざわざイベントで書く必要がないんだが。
送受信を行うNetworkStreamは、データが来るまで自動的にブロッキングしてプログラムの流れを中断させる。
別スレッドでReadさせておけばいい。
692 :
デフォルトの名無しさん:2005/04/08(金) 06:04:23
>691 レスありがとうございます!それでは現在テストで動いた以下の
スレッド方式でも、悪い方ではないと考えていいでしょうか?
Private Sock1 As New System.Net.Sockets.TcpClient
Private Stream As NetworkStream
Private myThread As Threading.Thread
-----ボタンクリック
Private Sub Button1_Click(〜) Handles Button1.Click
Sock1.Connect("www.yahoo.co.jp", 80)
TextBox1.Text = ""
Stream = Sock1.GetStream()
Dim ByteSend As Byte() = System.Text.Encoding.ASCII.GetBytes("GET / HTTP/1.0" + vbCrLf + vbCrLf)
Stream.Write(ByteSend, 0, ByteSend.Length())
myThread = New Threading.Thread(AddressOf DataArrave)
myThread.Start()
End Sub
-----自作SUB
Private Sub DataArrave()
Dim ByteRead(2000) As Byte
Dim strText As String
Dim intLength As Integer
Dim lngRevcnt As Long
Dim lngRevByt As Long
Do
intLength = Stream.Read(ByteRead, 0, ByteRead.Length())
lngRevcnt += 1 : lngRevByt += CLng(intLength)
Me.Text = "受信パケット数:" & lngRevcnt & " (" & lngRevByt & " byte)"
strText += System.Text.Encoding.ASCII.GetString(ByteRead, 0, intLength)
If intLength < 1 Then Exit Do
Sock1.Close()
Loop
TextBox1.Text = strText
End Sub
693 :
690=692:2005/04/08(金) 06:08:49
↑すみません、レスの改行制限で見づらくなりました。
とりあえずの確認用なので、単に、HTTP-GETを送信して
自作スレッドで受信させているだけのショボプログラムです。
とりあえずこんな感じでも、アリでしょうか?
>>692 Readがパケットごとに実行される保証はどこにもないはずだがね。
> strText += System.Text.Encoding.ASCII.GetString(ByteRead, 0, intLength)
まあASCIIだからいいけど、shift_jisとかだとデコードに失敗する可能性があるよ。
最後の1バイトが2バイト文字の1バイト目だった場合に。
受信中はMemoryStreamに蓄えて、受信が完了してから一気にGetStringしたほうがいい。
> Do
(略)
> If intLength < 1 Then Exit Do
> Sock1.Close()
> Loop
このSock1.Close()はコピペミスかな?
Loopの外に出さなきゃいけないね。
> Me.Text = "受信パケット数:" & lngRevcnt & " (" & lngRevByt & " byte)"
> TextBox1.Text = strText
やっかいなのはこいつだ。
別スレッドからコントロールを操作しちゃいけない。
Invoke/BeginInvokeを使う必要がある。
ttp://dobon.net/vb/melma/index.html の19から26、とくに25を良く読んでマルチスレッドに関する問題を良く把握してくれ。
695 :
690=692:2005/04/08(金) 06:33:44
>694
うぉ!ありがとうございます!
1Read=1パケとは限らないのですね。分かりました!
確かに、逐次デコードはまずいですね。了解です。
> このSock1.Close()はコピペミスかな?
> Loopの外に出さなきゃいけないね。
そうなんです。実は少し悩んでました。
手持ちの書籍「VB..net逆引き大全500」の初歩サンプルに
こういった記述があったもんで丸写ししながら疑問に感じてました。
試してみたらコレでも動くんです。
今試したら外へ出しても動きますね。理屈通り外へ出します!
> Invoke/BeginInvokeを使う必要がある。
了解です。教えていただいた所を良く読んで勉強します!
とても丁寧に分かり易いレスを本当にありがとうございました!
>>686 遅くなりましたがありがとうございました。
698 :
デフォルトの名無しさん:2005/04/08(金) 13:11:00
comboboxでデータソース指定だと、表示(DisplayMember)と値(ValueMember)を指定できるけど、
自分で項目を設定した場合は、そういった指定はできないものなのですか?
どういう効果を求めているの?
700 :
デフォルトの名無しさん:2005/04/08(金) 13:18:05
表示は
東京
大阪
名古屋
・・・(略)
などと表示して、内部の値としては
34
21
15
・・・(略)
などように、取り出せるようにしたいです。
じゃあそういう都道府県クラスを作れば?
ComboBoxで表示されるのはToString()の結果だから。
Idと都道府県名を保持して、ToString()のオーバーライドで都道府県名を返す。
Idはプロパティとして公開。
702 :
デフォルトの名無しさん:2005/04/08(金) 14:28:20
>>701 ありがとうごじあます。
データ構造を作ってやることにします。
質問させてください
PrintDocument等を使っての印刷に関してです.
取得したデータの件数に応じて改ページして次のページに出力,
といった印刷物のページコントロールはどうやるのが定石なのでしょうか?
ヘルプドキュメントから,PrintPageEventArgs.HasMorePagesをTrueに
する,というのは見つけたのですがいまいち記述方法がわかりません…
その他,PrintDocument,Graphicsなどリファレンス一通りみたのですが,
ページコントロールに関わりそうなメンバが見つけられませんでした
よろしくお願いします.
>>704 ありがとうございます
どうやら概念を理解していなかったようです
HasMorePagesがTrueである間は
PrintPageイベント発生→PrintPageハンドラ実行,
が繰り返される,
ということですね.
VB.NETでiniファイルを読むにはどうすればよいのでしょうか。
>>707 いや、それはそうなのですが、どうしても旧システムのINIファイルを
読まないといけない処理がありまして、どうしたものかと。
やはりAPIを叩くんですかね。
DataTableって何件くらいのデータ扱えるの?
711 :
デフォルトの名無しさん:2005/04/10(日) 10:13:12
713 :
デフォルトの名無しさん:2005/04/10(日) 12:47:06
>>706 読むにはどうすればよいのでしょうか、って発想が理解できん。
別に全然煽りじゃなく読めばいいんだよ。
APIなんて使うまでもない。iniなんてただのテキストファイルじゃん。
読んだ後の処理だってどうってことない。
こんなこともできない人が人様から給料もらって仕事でPGやってるとしたら
そりゃ犯罪だよ。
API使うのが一番楽だと思うのだけど
Microsoftは切り捨てたがってるけどねー。
>>713 回答ありがとう。理解できないのに回答するって発想が理解できません。
ちなみに何の罪でしょうか。
717 :
デフォルトの名無しさん:2005/04/11(月) 02:28:04
vb6.0のプログラムを.NETにアップグレードしようと思い、
.NETに詳しそうな方に聞いてみました。
すると、
リストビューが消える!?(ただし、端末にインストールした.NETフレームワークにもよる、との由)
LenBが使えない!?(半角文字と全角文字の判定はどうするの!?)
KeyPress時にKeyAsciiに代入できるのは0だけ!?(小文字を大文字に変換するの面倒になりそう)
などという問題があるといわれ
それだけでもしり込みしています。
でも解決方法あるんですよね、あたりまえですが。
みなさんはどのように解決してらっしゃるんでしょうか。
書き直す
719 :
デフォルトの名無しさん:2005/04/11(月) 02:37:55
>>717 つまり、.NETにアップグレードした時のtips的な
纏めサイトが必要なんだろ。
LenBならこうしろ、みたいな情報が欲しい、と。
聞いた人本当に.netに詳しいのか?
例えばLenBなんて関数ひとつ作れば終わりです
これくらいで尻込みしているようなら、アップグレードはやめとけ
こんなこと書いている俺の場合は、全部1からコードを書き直しましたよ
アップグレードウィザードも使えないし
まだ自作ライブラリの半分も終わってないから生産効率悪い悪い
microsoft のftpで
以下のm_sRemoteHostにIPアドレスを指定すると
dns.resolveの処理がすごく遅くなってしまいます。
どうしたら速くなりますか?
Public Function Login() As Boolean
m_objClientSocket = _
New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Dim ep As New IPEndPoint(Dns.Resolve(m_sRemoteHost).AddressList(0), m_iRemotePort)
Try
m_objClientSocket.Connect(ep)
Catch ex As Exception
MessageString = m_sReply
Throw New IOException("Cannot connect to the remote server")
End Try
十進記法である事が分かってるなら、Dns.GetHostByAddressを使うとか。
.NET 1.1以降なら、ピリオドで分けてByte配列にしてIPAddressインスタンスを直接作るとか。
Dns.GetHostByNameならホスト名でもIPでも両方可能だな。
Dns.Resolve(m_sRemoteHost).AddressList(0)
を
Dns.GetHostByName(m_sRemoteHost).AddressList(0),
にするだけで速くなるのでしょうか?
まず試せ。
話はそれからだ。
試したいのですが自社のネットワークではどちらも速いのですが
お客様のネットワークではなぜか遅かったので質問している次第です。
>>726 少なくとも.NET 1.1の実装では、与えられた文字列が十進表記の時、
ResolveだとDNSサーバに実際に問い合わせ、GetHostByNameだと問い合わせを行わない。
それで速くなるかどうかは別だが、内部処理で済む分GetHostByNameの方が速い可能性は高い。
Wordファイルを読み込むサンプル掲載してるサイトありませんか?
ぐぐってもどうもExcelばかり引っかかって・・・
OpenMutexのVB.NETで使える宣言を教えてください。
なぜか、IntPtrで受けてもIntPtr.zeroしか帰ってこないし
Longで受けても常に同じ値(0ではない)が帰ってきます・・・
どうやって呼べばいいですか?
>>730 あのな、「なぜか」ってのやめろよ。
お前のせいなんだからさ。
MutexクラスじゃOpenMutexできないでしょ?
VB6とかで実際に動いてるコードをもっていって動かないから
「なぜか」なんだけどなぁ
IntPtrはVB6にはないけど。
教えてくれる人はいないんか。ここには
Mutexクラスで完全に代用できるけどな。
OpenMutexできないのもお前がへぼいだけだろ。
なにせLongの理解すらできてないようだからな。
736 :
デフォルトの名無しさん:2005/04/12(火) 09:58:57
738 :
736:2005/04/12(火) 10:08:30
>>737 ご返答助かります。
VB6とVB.NETでは仕様が多少異なっているのですか。
ありがとうございました。
>>738
多少つか別物
多少ワロタ
仕様は全く別物。使い方は似せてあるけどね。
単なるバージョンアップだとか思わない方がいいよ。
・・って、まぁ趣味ならどうでもいいかw
何度もすいません先日からVB.netのPrintDocumentでの印刷実装で
てこずってるものです
質問ですが,PrintPreviewDialogでの表示と実際の印刷物でマージンに
差異が生じるのですが原因がわかりません.
PrintDocument.PrinterSetting.DefaultPageSettings.Margins
PrintPageEventArgs.PageSettings.Margins
上記二つのプロパティは調査済みですが他にも印刷時のマージンに関わる
プロパティ等ありますでしょうか?
VB.NET2003でODP.NET 10gですがWindowsXP環境において
DBアクセス時に不安定になる場合があります。
例えば、応答がなくなったりshowしたダイアログが裏に回ってしまったり。
Windows2000環境で問題ありません。
何かパッチなどがありますでしょうか?
744 :
741:2005/04/12(火) 14:06:49
>>743 どうもこれとは症状が違うようなのです.
PageSettingDialogも現状では使っていません.
マージンをゼロにし,用紙の端からのサイズで描画してるのですが,
左端,上端に固定値のマージンが追加された状態で印刷されて
しまうのです.
プレビューでは真ん中に配置されているのに印刷してみると右下に
ずれて印刷されてしまいます.
描画の際にこの値がわかれば座標から引いて配置すればいいのですが,
プリンタ依存のマージンなのかそれともプログラム内部のプロパティで
設定されているものなのかわからなくて質問した次第です…
>>745 おお,ありがとうございます.
早速試してみます.
ひとつの〜.Config構成ファイルを
複数のEXEから読み込ませたいんだけど
いい方法ないですか?
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", "お好きなパス")
を一番最初に実行。
自己解決したからいいけど、役にたたない質問スレだな。
>Mutexクラスで完全に代用できるけどな。
だって。プププ
頭の悪いフレームワークになれちゃってるのって怖いねぇ
>>748 めちゃんこThx!!!
これで30個の〜.Configが1つに出来ます!!!
バージョンアップ用のインストーラーの作成は出来ないんでしょうか?
初めてのインストール時にはユーザーがどこにインストールするか分からないので、
インストール先を判断し上書きするような動きはインストーラには出来ないのでしょうか?
そんなもの、いくつか方法あるだろう。
インストール時にレジストリにインストール場所を書き込んでおいて、
バージョンアップはそのレジストリ情報を元に上書きする。
バージョンアップ用のインストーラーは、最初にインストールした場所と同じ場所に置き、
バージョンアップは同じディレクトリにあるファイルを上書きする。
インストーラーが特定のレジストリ値を見るなんてことが出来るんですか?
>>753 はい。できないと思う理由はなんでしょうか。