VB.NET質問スレ (Part10 ..
[2ch|▼Menu]
178:デフォルトの名無しさん
05/03/08 12:08:30
>>177
回答ありがとうです。

datatableで行決め打ち削除ってどうやればいいんですか?

179:デフォルトの名無しさん
05/03/08 13:25:59
>>178
DataTable.Rows(削除したい行Index).Delete()

180:デフォルトの名無しさん
05/03/08 14:30:10
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が
帰ってきてどうにもこうにも。_| ̄|○

URLリンク(backno.mag2.com)

181:デフォルトの名無しさん
05/03/08 14:47:08
>>179
ありがとうございましたー。
多謝 m(_ _)v

182:デフォルトの名無しさん
05/03/08 15:45:14
>>180
まずiData.GetFormatsと、それで取得できたそれぞれの形式に対してGetType(iData.GetData(形式名))をやってみては?

183:デフォルトの名無しさん
05/03/08 17:21:53
>>182
GetFormatsの結果、下記の3つが取得できました。

Embedded Object
Object Descriptor
MetaFilePict

こんなのImageやBitmapにできないよね。orz
調べてたらなんかヤバそうなネタも見つかったし。
URLリンク(support.microsoft.com)

184:デフォルトの名無しさん
05/03/08 19:13:45
すいません、おしえていただきたいのですが。

時間計算なのですが 10:30〜13:00 を下記のようにしたのですが、

textbox1=10 (開始 時)
textbox2=30 (開始 分)

textbox3=13 (終了 時)
textbox4=00 (終了 分)

これを 働いた時間 2:30としてLabel1に表示したのですが

どういった計算方法ですればいいですか?

よろしくおねがいします。


185:デフォルトの名無しさん
05/03/08 19:28:22
>>184
URLリンク(www.atmarkit.co.jp)

186:デフォルトの名無しさん
05/03/08 20:49:27
VB.NETを勉強したいのですが、ACCESSしか知らない人に分かりやすい参考書ありませんか?

187:デフォルトの名無しさん
05/03/08 23:25:20
サービスアプリケーションってソケット通信可能ですか?

188:デフォルトの名無しさん
05/03/09 01:04:58
自分で試せよ。

189:デフォルトの名無しさん
05/03/09 02:22:31
>>187
当たり前だ

190:デフォルトの名無しさん
05/03/09 02:43:55
>>186
谷尻かおりさんのとか、イメージをつかむにはいいかも
Access本に比べてるとが悪いけど

191:デフォルトの名無しさん
05/03/09 02:45:19
×Access本に比べてるとが悪いけど
○Access本に比べると出来が悪いけど

192:デフォルトの名無しさん
05/03/09 07:07:24
>>191
そんな打ち間違えあるか。
脳みそ少なすぎ。

193:デフォルトの名無しさん
05/03/09 09:07:22
リストビューの各サブアイテムごとに文字の色を変更したいのですが
可能でしょうか?
もし、可能であればやり方を教えてください。よろしくお願いします。

194:デフォルトの名無しさん
05/03/09 09:32:02
ListViewSubItemのプロパティ一覧とその解説を良く読め。

195:デフォルトの名無しさん
05/03/09 10:25:21
Dim subItem As System.Windows.Forms.ListViewItem.ListViewSubItem
subItem = item.SubItems.Add("hoge")
subItem.ForeColor = Color.Red

とやってみたのですが色が変わってくれません。
なぜでしょうか?

196:デフォルトの名無しさん
05/03/09 10:27:13
解説を良く読めと。

197:デフォルトの名無しさん
05/03/09 10:28:56
item.UseItemStyleForSubItems = False
でできました。ご迷惑お掛けしました。


198:デフォルトの名無しさん
05/03/09 10:57:10
>>186
これで取り敢えず動くものを作ってみる。
URLリンク(www.amazon.co.jp)
これでVB.NETの概要を掴む。
URLリンク(www.amazon.co.jp)
辞書代わりにこれを使う。
URLリンク(www.amazon.co.jp)

DB連携のシステムを勉強したいならこんな感じだと思う。

199:デフォルトの名無しさん
05/03/09 13:27:20
最近はじめたんだけど、VB.NETで作ったプログラムってMACでも動くの?
.NETフレームワークってMAC版も出てるのかな?

200:デフォルトの名無しさん
05/03/09 13:29:05
Mac OS Xならmonoが動くんじゃないか?

201:デフォルトの名無しさん
05/03/09 13:31:46
>>199
無理。
REALBASICで開発すれば、Windowsでも動く実行ファイルを生成
できるらしいけどね。

202:201
05/03/09 13:34:54
おお、monoってのがあったんだね。知らなかったーよ。

URLリンク(www.macinbasic.info)

203:199
05/03/09 14:05:19
なるほど、基本的には無理なんですね。
フリーソフト作ってるんだけど「MAC対応」って銘打つにはmonoではまだ厳しいのかな。

っていうか中間コード生成する最大の理由は「OSに依存しないで動く」っていうことじゃないの?
Windowsでしか動かないなら中間コードでコンパイルする価値があまりない気が・・・。
なぜなんでしょう?

204:デフォルトの名無しさん
05/03/09 14:18:43
ぶっちゃけ、Windowsにおける32bit環境から64bit環境へのスムーズな移行が
最大の目的じゃないかな。

205:デフォルトの名無しさん
05/03/09 14:22:38
>>203
>っていうか中間コード生成する最大の理由は「OSに依存しないで動く」っていうことじゃないの?
>Windowsでしか動かないなら中間コードでコンパイルする価値があまりない気が・・・。
>なぜなんでしょう?

1つは、やっぱり異なるOSで動かす事には無理があるんじゃない?
というのはWin32APIに相当する機能も.NetFrameworkには存在するわけだが、
こういった部分はOSに依存する訳だし。

ただ、中間コードのメリットがOSに依存しない事だけかと言われれば、
そんな事無いと思うんだが?

実際、C#だろうがVB.NETだろうが同じ処理するプログラムを書けば、
生成される中間コードは同じになる。
そして、C#からVB.NETのクラスを呼んだり逆にVB.NETからの呼び出しも出来る。

一般的に大規模アプリになれば複数人で開発する訳だが、
それぞれが得意な言語で開発しても問題無くお互いのクラスを呼び出せる。

これだけでも十分メリットになると思うんだが?

206:デフォルトの名無しさん
05/03/09 15:06:00
VB.NETでアプリケーションを作っているのですが
起動しただけで35メガもメモリを食います。
ひょっとしてすべてのウィンドウのインスタンス化を起動時に
やってしまうのでしょうか?
確かdelphiもそうだったと思うのですが、delphiは
その辺のコードもいじれたのですがVB.NETはそのあたりの
コードはどこにあるのでしょうか?



207:デフォルトの名無しさん
05/03/09 15:13:41
そんなことはない。
ネイティブのコードへのコンパイルすら「初めてそのメソッドが出てきた時」に行われるのに。
起動時にメモリを食われるのは.NET Frameworkを通して起動させるためのコスト。
起動した後は不要になるので、気になるならウィンドウを一旦最小化させれば仮想メモリにしまい込まれる。
根本的にネイティブのアプリより消費メモリが大きめなのはしょうがないがね。

208:デフォルトの名無しさん
05/03/09 15:18:44
>>207
了解です。
ちょっと起動に時間が掛かるなと思いタスクマネージャを見たら
30メガも使ってるのでびっくりしたしだいです。
それが普通ならまったく問題ありません。

209:デフォルトの名無しさん
05/03/09 16:11:19
リストビューのカラムごとにTextAlignを指定したいのですが
指定するメソッドが見つかりません。
これは不可能でしょうか?

210:デフォルトの名無しさん
05/03/09 16:18:27
ColumnHeader.TextAlign
ただし先頭列だけは必ず左寄せ。

211:デフォルトの名無しさん
05/03/09 16:22:26
listview.Columns(2).TextAlign = HorizontalAlignment.Right
listview.Columns(3).TextAlign = HorizontalAlignment.Right
でできました。さんくす。


212:デフォルトの名無しさん
05/03/09 16:58:55
>>203
「開発環境(言語)の差を吸収出来る」ことと
「安全なコードを書ける可能性が高い」こと、これらから
「開発生産性が高い」ことがメリットだと思うよ。

例えばJAVAのWORAというのは嘘とは言い切れないけど
未だに盲信してる人は少ないよね。
MSは良くも悪くもリアリストだから、「どこでも動く」ことより
「どこからでも繋がる」ことを .NET の宣伝材料にしてる。

213:デフォルトの名無しさん
05/03/09 19:52:20
compact frameworkにて、設定ファイルを使用したい場合、
どのようにファイルを作って、どのように読み込めばいいのでしょうか?

質問が大雑把ですみません。とっかかりすらわかっていない状態ですので。

214:デフォルトの名無しさん
05/03/09 22:28:54
設定ファイルとやらを使って何をしたいのかによるけど。
App.configなら
URLリンク(dobon.net)

215:デフォルトの名無しさん
05/03/09 22:43:04
VB.NETでWSDLがない状態でSoap通信したいんですけど
Soap ToolkitにあったSoapConnectorにあたるクラスってないんでしょうか?

216:デフォルトの名無しさん
05/03/10 08:31:10
デストラクタってどうやって定義すればよいでしょうか?
コンストラクタは
public sub new()
end sub
でよいみたいですが

217:デフォルトの名無しさん
05/03/10 08:38:44
Overrides Protected Sub Finalize()

218:デフォルトの名無しさん
05/03/10 08:49:38
>>217
ありがとん

219:デフォルトの名無しさん
05/03/10 11:01:20
EXCELを操作しているのですが
アプリケーションを終了するまでEXCEL.EXEがタスクマネージャの
プロセス一覧から消えてくれません。
消すにはどうしたらよいでしょうか?

Dim exl As New Excel.Application()
exl.Visible = True
exl.Workbooks.Add()

exl.Cells(1, 1) = "hoge"


220:デフォルトの名無しさん
05/03/10 11:15:10
Quitも呼んでない辺りアレっぽいが。
URLリンク(support.microsoft.com)

221:デフォルトの名無しさん
05/03/10 11:23:19
>>220
さんくす。熟読します。

222:デフォルトの名無しさん
05/03/10 11:33:57
消えました。ありがとん。

223:デフォルトの名無しさん
05/03/10 14:19:06
Private m_Pos() As Point
Private m_Pos As Point()
の違いはなんでしょうか?

224:デフォルトの名無しさん
05/03/10 16:03:14
GCってちゃんと仕事してくれますか?
なんか不安。メモリ使用量がどんどん増えるよー

225:デフォルトの名無しさん
05/03/10 16:10:34
>>224
メモリは特に気にする必要ない。

226:デフォルトの名無しさん
05/03/10 16:18:13
>>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は閉じてくれません。
だれかわかりますか?

228:デフォルトの名無しさん
05/03/10 17:33:27
ピクチャーボックス上の
線などを消去するには?

229:デフォルトの名無しさん
05/03/10 19:47:14
>>223
基本的に無い。好み。
個人的には配列型を宣言してると分かりやすい後者の方が良い。

>>227
私の所では閉じる。

>>228
何らかで上書きする。

230:デフォルトの名無しさん
05/03/10 21:02:53
簡単なテキストエディタを作っています。カレットが移動するたびに、その位置を
ステータスバーに表示したいと考えています。で、一番最初に思いついたのが、
KeyDown/Upイベントを利用することです。しかしながら、IMEがオンになって
いると、KeyDown/Upイベントが発生するたびに変換が解かれてしまい、実用に
なりません。なにかいい方法はないでしょうか。

231:デフォルトの名無しさん
05/03/11 00:13:11
MDI子フォームのKeyDownイベントでファンクションキーが
押された場合の処理を書いているのですが、このイベントが
親フォームにも送られているらしく、F1キーを押すと
ヘルプが起動してしまいます。
ファンクションキーイベントは子フォームだけで受け取り
(子フォームがアクティブの場合)
親フォームには送られないようにするにはどうしたらよいでしょうか。
e.Handle=True
は試してみたのですが、ダメでした。

232:デフォルトの名無しさん
05/03/11 00:28:57
メニューのイベントでヘルプ表示してるんでしょ?

だったら自分がアクティブじゃなかったら
ヘルプ表示しないようにするだけだと思うんだけど。。
何か間違ってるか?

233:デフォルトの名無しさん
05/03/11 00:33:11
ウケる。要求仕様と違うとはまさにこのことか。

234:デフォルトの名無しさん
05/03/11 00:34:05
>>232 「自分」って誰?(バク

235:デフォルトの名無しさん
05/03/11 00:38:42
>>232
それって親フォームにキーイベント飛んでるじゃん。
e.Handle = True
じゃムリなの?

236:デフォルトの名無しさん
05/03/11 00:42:25
馬鹿な上に幼稚なVB厨どもはしょうがないですな。

別にウィンドウメッセージそのものをキャンセルする必要なんて全然ない。
要はそれを処理するべき場合かどうかを判断できれば必要十分だろといってるの。

237:デフォルトの名無しさん
05/03/11 00:48:27
>>236
必要かどうかの問題ではなく、231がやりたいのはメッセージを
キャンセルしたいのだろう。別に君がその方法を知らないなら
ムリに書き込む必要ないんじゃないの?何がしたいの?

238:234
05/03/11 00:49:18
どうでもいいけど「自分」って誰?(ププッ

239:デフォルトの名無しさん
05/03/11 00:52:02
>>237
そういうSEは最近多いよ。勝手に要求仕様を捻じ曲げて
得意げな大馬鹿

240:デフォルトの名無しさん
05/03/11 00:54:28
>>231ですが、メイン画面(親フォーム)は別の外注の会社が
作っていて、私が作っているフォームでファンクションキーを
処理する都合でメイン画面に修正が入るのはあまり
好ましくないのでメッセージをキャンセルする方法があるのならば
それがやりたいです。分かりにくくてすいません。

241:デフォルトの名無しさん
05/03/11 01:28:29
VBで、ある業務システムつくろうと思ったけど。
スタックが心配で見合わせてる。


242:デフォルトの名無しさん
05/03/11 01:29:27
で?

243:デフォルトの名無しさん
05/03/11 01:34:56
どうしたものかな。
VB6では、スタック領域を設定することできないんだよ。
NETは、どうなの。


244:デフォルトの名無しさん
05/03/11 01:40:41
質問です。
IEで表示した内容を印刷ダイアログを表示せずに
プログラムから印刷する方法を教えてください。

245:最凶VB厨房
05/03/11 01:42:20
>>231
もしかして親フォームのKeyPreviewプロパティはTrue??

246:デフォルトの名無しさん
05/03/11 01:45:52
アホか。
要求仕様は、「子フォームがアクティブの時には親フォームのヘルプを表示しないようにしたい」
メッセージをキャンセルするってのはその一手段に過ぎない。

>>240
やっぱり無理なんじゃないか。
というのは、別に子が親にメッセージ送ってるわけじゃないのだから。
いま実際WndProcでメッセージ拾うコード書いて確認したので間違いないと思う。

247:デフォルトの名無しさん
05/03/11 02:01:28
WndProcをオーバーライド。
該当するキーの場合、基底クラスのWndProcを呼ばない。
あるいはProcessCmdKeyをオーバーライド。
該当するキーの場合、trueを返す。

248:デフォルトの名無しさん
05/03/11 07:13:39
>>246
>>240

アホ

249:デフォルトの名無しさん
05/03/11 07:15:36
>>246
>いま実際WndProcでメッセージ拾うコード書いて確認したので間違いないと思う。
間違ってるじゃんw

お前、マジでもういいよ

250:デフォルトの名無しさん
05/03/11 08:35:18
タスクバーを除いたデスクトップのサイズを取得したいのですが
どのようにすればよいでしょうか?

251:250
05/03/11 10:40:54
すみません。わかりました。

252:デフォルトの名無しさん
05/03/11 12:26:42
>>249
幼稚な奴。
実際に自分でやってみてから言ってるか?
っていうか、「本当はWndProcなんてわかんない」に五万両。

253:デフォルトの名無しさん
05/03/11 19:48:58
このスレの大半はアホなのはわかっている。

254:最凶VB厨房
05/03/11 22:50:51
ドアホがスレ立ててんだからしょうがねぇってこった。

255:デフォルトの名無しさん
05/03/11 23:07:27
アホは自分がアホだと認識した時点でアホではなくなる。

256:デフォルトの名無しさん
05/03/12 00:35:42
>>252
>>246が間違っていることを確認し、問題を解決できました。
回答くださった方(>>246の人は除き)、どうもありがとうございました。

257:デフォルトの名無しさん
05/03/12 23:09:18
どなたか教えてください。

datagridのDataGridTableStyleでFormatを設定する部分があると思うのですが、
番号を01,02,03・・・という感じでしたいので 00 と入れたのですがちゃんと表示されず、
1,2、・・とでてしまいます。
どの部分がおかしいのでしょうか?

258:デフォルトの名無しさん
05/03/12 23:13:34
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)


259:258
05/03/12 23:14:09
上記サンプルの、ListViewコントロールについて質問です。
Details モードで、チェックボックスを付けた状態で、チェックされた行を
取得する方法なのですが、以前より何故こんなに遅いのかと疑問に感じていました。
が、どうやらコーディング次第でものすごく差があるようです。
私は、A<B<@となると思っていたのですが、現実は、@<B<<<<Aになりました。
何故このような結果が出るかどうしても説明出来ません。
誰か偉い人教えてください。

260:デフォルトの名無しさん
05/03/12 23:20:00
>>257
DataGirdTextBoxColumnのFormatプロパティだな。
該当するDataColumnのDataTypeがString型になってるんだろう。

261:デフォルトの名無しさん
05/03/13 00:40:04
>>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を使うのは躊躇しちゃうね。

262:258
05/03/13 12:06:00
>>261
ホントにありがとうございます。
非常に分かり易い神な回答が返って来るとは思いませんでした。

ヘッポコ同僚が(1)でコーディングを行っていて、カコ悪いなーと思っていましたが
それが一番コストが掛からないなんて・・・orz


263:デフォルトの名無しさん
05/03/13 13:17:14
配列の概念がよくわかりません

264:デフォルトの名無しさん
05/03/13 13:18:37
そうか頑張れ。

265:デフォルトの名無しさん
05/03/13 14:43:45
>>264
なんだそれ

266:デフォルトの名無しさん
05/03/14 12:24:47
LinkLabelをクリックした時に左右どちらのボタンでクリックしたか調べるには
どうすればいいですか?
LinkClickedのイベントプロシージャ内で判定させたいのですが。

267:デフォルトの名無しさん
05/03/14 12:40:47
>>266
MouseDownで保存しとくとか。

268:デフォルトの名無しさん
05/03/14 12:59:19
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")



269:デフォルトの名無しさん
05/03/14 13:08:04
FlexGridの新しい奴がExcel直接操作できる

270:268
05/03/14 13:38:21
すみません。お騒がせしました。
データを書き込んでいるところを関数にしたら直りました。
データを持っているオブジェクトが解放されなかったためのようです。


271:デフォルトの名無しさん
05/03/14 14:33:51
リストビューでカラムヘッダーをクリックしたら
そのカラムでソートしたいのですがどのようにしたらよいでしょうか?

272:デフォルトの名無しさん
05/03/14 15:55:47
>>271
URLリンク(dobon.net)

273:デフォルトの名無しさん
05/03/14 16:03:41
>>272
ありがとん。
できました。

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()と書くと構文が違うと怒られるんですが、
こういう書き方はできないのでしょうか?


275:デフォルトの名無しさん
05/03/14 18:48:24
>>274
VB.NETの構文を勉強してください。

276:デフォルトの名無しさん
05/03/14 18:49:32
Java'erならC#使った方が良くね?

277:デフォルトの名無しさん
05/03/14 18:50:00
>>275
嫌なんで、教えてください。

278:デフォルトの名無しさん
05/03/14 18:51:22
わかった、ちょっと待ってな・・・

279:274
05/03/14 18:52:33
できればそうしたいんですが、
それができないんで○| ̄|_
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すべてについて書かなければいけないのでしょうか?
何か他にエレガントな方法はありませんか?

281:名前は開発中のものです。
05/03/15 16:00:45
まぁ藻前ら、それほどの技術と経験と根性があるなら、今まさに危機に瀕している↓のMMORPGを救ってくれ。
軽く問題に触れておくと、要は開発者が逃げ出しましたよと。
そしてそれに痺れを切らした3Dモデリング担当の人もプロジェクト脱退しましたよと。
そこで藻前らの力が必要になったわけで。。
この企画に参加、若しくは引継ぎすれば少なくとも藻前らのスキルアップにも繋がるだろうし。。
頼むよ。絶望に満ち溢れた世界に新たな風を吹き込んでくれ。藻前らの力で・・・・・・

         頼       ん      だ       ぞ

                 URLリンク(rob2.jp)

282:デフォルトの名無しさん
05/03/15 16:24:34
>>280
TextBoxのTagに説明文を入れて、
Label1.Text = CType(sender, TextBox).Tag.ToString()
を全てのTextBoxのEnterイベント共通メソッドにする、とかどうよ。

283:デフォルトの名無しさん
05/03/15 17:29:04
>>282
それは全てのTextBoxのEnterイベントを共通メソッドとして一括で書く方法があるということですか?
それとも全てのTextBoxのイベントをひとつひとつ書かないといけないということでしょうか?

284:デフォルトの名無しさん
05/03/15 17:43:04
なんでWebBrowserコントロールのドキュメント、MSDNに無いんだよ!!!!

285:デフォルトの名無しさん
05/03/15 17:44:58
>>283
URLリンク(www.microsoft.com)

>>284
英語が読めない人は大変ですね。

286:デフォルトの名無しさん
05/03/15 17:50:07
>>282>>285
おお、百万の感謝を。

287:デフォルトの名無しさん
05/03/15 22:54:31
RichTextBoxで100行目に書かれている1行をすばやく消す方法を教えてください。


288:デフォルトの名無しさん
05/03/15 23:24:18
SendKeys "^({HOME})"
For intCnt = 1 To 99 Step 1
SendKeys "{DOWN}"
Next intCnt
SendKeys "+({END}){DEL}"

289:デフォルトの名無しさん
05/03/15 23:51:37
↑こういうのって一般的なんですか?


290:デフォルトの名無しさん
05/03/16 07:20:34
>>289
No

291:デフォルトの名無しさん
05/03/16 12:55:13
>>287
WordWrapは考慮しなくてもいいの?


292:デフォルトの名無しさん
05/03/16 17:06:23
Ctrl+Xで削除する行って、削除と同時に複写もするんですか?

293:デフォルトの名無しさん
05/03/16 17:15:48
すみません。教えていただきたいのですが、

DatagridにListBoxを使用しています。
たとえば

あああ
いいい
うううう
えええ
おおお

のリスト中の「あああ」と「えええ」 を複数選択してそれを
A列とB列に入れたい場合はどういうふうにすればいいでしょうか?

リストボックスプロパティのselectionmode=MultiSimpleで複数選択はできました。

よろしくおねがいします。



294:デフォルトの名無しさん
05/03/16 17:22:24
>>293
A列とB列はどこから出てきたんだ?

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みたいなのがあるのに、その行を消せないし。

297:デフォルトの名無しさん
05/03/16 22:15:29
APIのSendMessageでEM_GETLINEを送れば特定行の先頭インデックスを取得できる。

298:デフォルトの名無しさん
05/03/16 22:49:10
Windows2000/XP でログオフ/終了/再起動ををするのをフックにして
動作するプログラムを書きたいのですが、どうやって判断すれば
いいでしょうか?



299:デフォルトの名無しさん
05/03/16 22:50:11
VB.NETでCABファイルを扱いたいのですが、専用のクラスとかは
あるでしょうか。

300:デフォルトの名無しさん
05/03/16 22:54:46
>>299
ない。

301:デフォルトの名無しさん
05/03/16 23:20:05
>299
URLリンク(www.elguille.info)

302:デフォルトの名無しさん
05/03/16 23:36:02
そろそろ、テンプレのリンクに色んなサイト追加しない?
漏れ自身は、結構良いサイト増えてきてると思ってる。
掲示板が設置してあるサイトをまとめてみたりすると良いかも。

303:デフォルトの名無しさん
05/03/17 00:38:38
>>302
頼む

304:デフォルトの名無しさん
05/03/17 11:48:34
>>292
Ctrl-X は切り取り

305:デフォルトの名無しさん
05/03/17 16:51:33
VB.NETのソースはJavaのようにフォルダを階層構造にして
管理できますか?

306:デフォルトの名無しさん
05/03/17 18:37:27
シリアルキー解析集「ALTEA」
大好評発売中!

URLリンク(openuser10.auctions.yahoo.co.jp)


市販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を使って呼び出したデータと
同じ行の違う列のデータを表示させたいんです。
どうしたらいいですか?


308:デフォルトの名無しさん
05/03/17 21:12:22
>>307
わけがわからんのでもうちょっと整理して。

309:デフォルトの名無しさん
05/03/17 21:20:19
>>307
まさかプロじゃないだろうな?

310:デフォルトの名無しさん
05/03/17 21:31:23
「データベース作る」って何やってんだ?

311:デフォルトの名無しさん
05/03/17 23:21:44
>>307
ComboBoxのSelectedIndexを使う
選択された行を認識して任意の列を取り出せばいいんでないの
ValueMemberに抽出のキーとなるデータをほりこんでおいてそれで探してもいいけど

しかしもう少し聞き方何とかならねぇのか?

312:デフォルトの名無しさん
05/03/17 23:37:21
VB.NETにはRebarってありますか?
あのツールバーの場所を移動したりするやつです。

313:デフォルトの名無しさん
05/03/17 23:40:55
.NET Frameworkのライブラリにはない。.NET 2.0で追加される。
それまではサードパーティのを。どぼんとかに紹介もされてたはず。

314:デフォルトの名無しさん
05/03/17 23:48:00
>>313
そうだったんですか。今年後半まで我慢ですね。
Twintailというソフト確認したら、それも外部のものを使ってました。
探してみます。ありがとうございました。

315:デフォルトの名無しさん
05/03/18 00:15:56
フォームの左上に表示されるアイコンを条件によって
切り替えたいのですが、どうすればできますか?

316:デフォルトの名無しさん
05/03/18 00:17:08
Iconプロパティを操作する

317:デフォルトの名無しさん
05/03/18 00:25:59
>>316
それはそうなのですが、デザイナでIconプロパティを設定すると
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
みたいなコードが生成されますよね。この右辺部分を動的に変える
方法がよく分からないのです。リソースファイルみたいなものを
使うのでしょうか。

318:デフォルトの名無しさん
05/03/18 00:42:11
>>317
ま、普通はリソースを埋め込むね。
URLリンク(dobon.net)

319:デフォルトの名無しさん
05/03/18 01:02:43
>>318
サンクス

320:302
05/03/18 04:24:31
>>303
頼むって・・・そんな・・・。
最凶VB厨房先生に頼まないとダメなのかしらねん。
まあ、いいや、ほどほどにあげとこ。

VB.NET初心者の館(初心者専用ですな)
URLリンク(vbnet-iku2.hp.infoseek.co.jp)

PAPA'n VB (API 系のサンプルが結構ある)
URLリンク(www.mitene.or.jp)

じゃんぬねっと(VB.NET だけでなく、C#, J# も、なんと VB6 も)
URLリンク(jeanne.wankuma.com)

VB レスキュー花ちゃん(.NET 専用のコーナーがある)
URLリンク(www.bcap.co.jp)

掲示板も紹介しようかと思ったけど、ここの人がいなくなるからやめた(w

321:302
05/03/18 04:26:35
あ、一応全部リンクフリーみたい。
てんぷらに合わせて書くとこんな感じ?

VB.NET初心者の館
URLリンク(vbnet-iku2.hp.infoseek.co.jp)
PAPA'n VB
URLリンク(www.mitene.or.jp)
じゃんぬねっと
URLリンク(jeanne.wankuma.com)
VB レスキュー花ちゃん
URLリンク(www.bcap.co.jp)

322:デフォルトの名無しさん
05/03/18 09:36:17
MDBファイルにアクセスするプログラムを組んでいるのですが
「この接続に関連付けられている DataReader が既に開いています。この DataReader を最初に閉じる必要があります。」
というエラーメッセージが出ます。
Oracleへアクセスするプログラムの時は問題なかったのですが
MDBファイルへアクセスするときはDataReaderが一つしか開けない
ということでしょうか?
これを簡単に回避する方法はないでしょうか?

323:デフォルトの名無しさん
05/03/18 09:42:56
開いた接続はさっさとClose。

324:デフォルトの名無しさん
05/03/18 09:45:40
>>323
ネストしたい場合はどうしますか?

325:デフォルトの名無しさん
05/03/18 10:05:19
新たにコネクションを張る、Readerから取得したデータを変数に格納する、DataAdapterとDataSetを使った手法に変える。

326:デフォルトの名無しさん
05/03/18 10:10:16
>>325
さんくす。うーん。どれにしようかな。
DataSetにするかなー

327:デフォルトの名無しさん
05/03/18 11:24:45
>>320-321
Good Job!

328:デフォルトの名無しさん
05/03/18 16:09:36
>321
3つとも知ってましたがなにか?

329:328
05/03/18 16:09:57
間違えた、4つともだった。OTZ

330:デフォルトの名無しさん
05/03/18 23:35:01
InstallShieldのスレってある?

331:デフォルトの名無しさん
05/03/19 10:14:51
以前はあったんだけどな。

インストーラー相談室
スレリンク(tech板)

過疎ってるけどageで質問すれば誰か来るでしょ。

332:デフォルトの名無しさん
05/03/20 01:05:38
Dim a As String = "4+2*15/3"
と 4+2*15/3 をStringで宣言し
これを計算させて14という答えを導いて
それを他の変数に代入するには
どうしたらいいのでしょうか?

333:最凶VB厨房
05/03/20 02:12:03
参照の追加
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
URLリンク(www.atmarkit.co.jp)
どぼん!のプログラミング道のメルマガ
URLリンク(dobon.net)


334:デフォルトの名無しさん
05/03/20 14:32:30
>>333
遅くなってすいません。
ありがとうございました。

335:デフォルトの名無しさん
05/03/20 14:57:20
For文で繰り返し処理しているときでもユーザーの入力を
受け付けるようウェイトをかけたいんですが?

336:デフォルトの名無しさん
05/03/20 15:00:32
そう言う処理は別スレッドでやって下さい。

337:デフォルトの名無しさん
05/03/20 15:23:34
そして別スレッドのコントロールを触ってあぼーん

338:デフォルトの名無しさん
05/03/20 16:37:32
え、waitとかsleepとかないんですか

339:デフォルトの名無しさん
05/03/20 16:38:05
基本だな。

340:デフォルトの名無しさん
05/03/20 16:41:32
>>338
あるけどね。お薦めしない。
UIスレッドはユーザとの対話だけやって、重い処理は別スレッドでやるべき。
VB6までの常識は捨て去れ。
.NETでマルチスレッディングは簡単になったし。
コントロールを別スレッドから扱うのは工夫が必要だが。

341:デフォルトの名無しさん
05/03/20 16:47:13
>あるけどね。お薦めしない。
一応教えてください。

342:デフォルトの名無しさん
05/03/20 17:36:07
>>340
>>コントロールを別スレッドから扱うのは工夫が必要だが。
コントロールを貼り付けたりする方法を教えてけれ。

343:デフォルトの名無しさん
05/03/20 17:45:10
>>342
端的に言えばFormのInvoke/BeginInvokeメソッドを使え、と言う事。
URLリンク(www.atmarkit.co.jp)

その辺をキーワードにぐぐればいろいろ情報も出てくるだろう。

344:341
05/03/20 17:51:08
342とは別人なんですが

>あるけどね。お薦めしない。
一応教えてください。


345:デフォルトの名無しさん
05/03/20 19:38:13
なんだ、バカばかりだな。

346:デフォルトの名無しさん
05/03/20 19:47:09
そうだな。

347:デフォルトの名無しさん
05/03/20 19:50:15
バカで悪いか?

348:デフォルトの名無しさん
05/03/20 21:08:59
>>347
悪いのでは?

349:デフォルトの名無しさん
05/03/20 21:51:06
質問です。VBには先人の開発したモジュール郡を無料で配布管理してる
サイトが存在しますか?
perlではCPANというボランティア団体が大量のモジュールを提供していました。
(ALL英語なので敷居が高く挫折気味ですが..)
MSDNを彷徨って探してみてのですが、膨大なコンテンツ群に圧倒され
お目当ての物はみつけられませんでした。


350:デフォルトの名無しさん
05/03/20 21:53:46
GotDotNetとかthe Code Projectとか。
ん? .NETの話だよな?

351:デフォルトの名無しさん
05/03/20 22:18:06
ええと...単体で買うとNETでは無くなるのかな?
新しいの買ってこようと考えていますが...
the Code Projectは英語表記ですね><
GotDotNetはあまり20-30くらいしかモジュールないのかな...

...英語面倒だとか贅沢いうな ハゲとか言わないでください..><
簡易にオブジェクト組めるVBに興味が湧き出しているのですが
できれば、モジュールを組み立ててコーディングしたいのですので

352:デフォルトの名無しさん
05/03/20 23:06:31
.NET Frameworks自体が、でかいモジュールの集まりだと言えなくも
ない罠。

353:デフォルトの名無しさん
05/03/21 02:11:58
.NETでは6.0で書かれたVBソースって見れないんでしょうか?

今日電気店にて聞いたところ
「6.0で書かれたソースを.NETで開くと
.NETの形式に変換されて表示されちゃう。」
と言われました。

当方ソースを閲覧できさえすればよいのですが
エディタを使うしかないのでしょうか?
.NETを使用して見れるとよいのですが…。
6.0は販売してないし…。

354:デフォルトの名無しさん
05/03/21 02:18:20
閲覧だけならテキストエディタで良いじゃんと思うんだが。
VSは一々重いし。
VBの色つけならそれなりのエディタが対応してるんじゃない?

355:デフォルトの名無しさん
05/03/21 06:52:08
>>354
それなりとは?

356:デフォルトの名無しさん
05/03/21 08:18:33
>>354
重いってどこが?

357:デフォルトの名無しさん
05/03/21 08:51:59
おまいら>>353の電気店ってほうが突っ込むべきところだと思うが。

358:デフォルトの名無しさん
05/03/21 11:00:25
>>357
思いません。

359:デフォルトの名無しさん
05/03/21 14:47:34
すいません、質問させてください。
IEのフォームにVB.NETで文字を自動入力させることは可能でしょうか?
注文ページに住所氏名電話番号など、自動入力できる常駐ソフトなど、
よろしければ教えてください。

360:デフォルトの名無しさん
05/03/21 18:24:38
'Yahooにログイン.vbs

'-------------------
Set ie = CreateObject("InternetExplorer.Application")
ie.visible = True
ie.navigate "URLリンク(www.yahoo.co.jp)"
Do
   WScript.Sleep 100
Loop While ie.Busy
With ie.document.forms(0)
   .item("login").value = "なまえ"
   .item("passwd").value = "ぱすわーど"
   .submit
End With

361:デフォルトの名無しさん
05/03/21 19:13:14
AddHandlerで、イベントをデリゲートした場合、
明示的に、RemoveHandlerを呼び出さないと、ガベージコレクトされませんか?

362:デフォルトの名無しさん
05/03/21 19:26:52
361ですが、
イベントハンドラ(イベントを関連付けたメソッド)
を持つクラスのインスタンスをNothingしても、RemoveHandlerを呼び出していなかった場合、
ガベージコレクトされずに、メモリに残ることはないのだろうかということです。

363:デフォルトの名無しさん
05/03/21 19:34:14
ないよ。普通にGCされる。

364:デフォルトの名無しさん
05/03/21 19:44:02
>>362
VB.NETではリソースの解放は一切必要ないよ。
ベストは1秒間隔くらいで動くタイマ仕掛けておいて、
その中でSystem.gc.Collect()しとけば絶対リークなしだよ。

365:デフォルトの名無しさん
05/03/21 19:47:21
ReDimも解放されますか?

366:デフォルトの名無しさん
05/03/21 19:47:43
無茶言うな。

367:デフォルトの名無しさん
05/03/21 19:48:45
>>365
されるよ。GCは最強。

368:デフォルトの名無しさん
05/03/21 19:57:32
そうですか。レスありがとう
一応、REmoveやっとけばいい話だけども。
ヘルプによると、
Event ステートメントで型が定義されて、
AddHandlerで、その型にインスタンスされるそうです。(デリゲートが?)
>>364
そりゃないよ。

369:デフォルトの名無しさん
05/03/21 20:34:25
一応技術的な解説をしとこう。

イベントは、対応する引数・返値を持ったデリゲートの一種のプロパティだ。
デリゲートというのは、メソッドへの参照リストを保持する特殊なクラス。
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の対象になる。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4973日前に更新/240 KB
担当:undef