VB.NET質問スレ (Part22) at TECH
VB.NET質問スレ (Part22) - 暇つぶし2ch377:名無しさん@そうだ選挙に行こう
07/07/29 16:10:46
登校日の7月31日までです

378:名無しさん@そうだ選挙に行こう
07/07/29 16:51:49
>>377
これ、小数とか負の数だったらどうするの?

379:名無しさん@そうだ選挙に行こう
07/07/29 17:18:13
課題3って製品名入力する意味あるのか?

380:372
07/07/29 18:01:20
>>378-379
そうゆう、細かい突込みはなしで(汗




381:名無しさん@そうだ選挙に行こう
07/07/29 18:12:48
>>380
じゃ、細かいことは気にしないで作ってみました。
>>372と同じロダ [13311.zip] 課題4ね。

382:名無しさん@そうだ選挙に行こう
07/07/29 19:03:28
>>370>>302の扱いの落差にワロタ

383:名無しさん@そうだ選挙に行こう
07/07/29 19:13:16
クラスなんか使ったら代作がバレないな心配w

384:名無しさん@そうだ選挙に行こう
07/07/29 19:31:05
とりあえず、課題を見たら>>372が最初からやる気ゼロだということがわかったw

385:名無しさん@そうだ選挙に行こう
07/07/29 19:33:57
>>382
間違えた
>>370>>372

386:372
07/07/29 19:35:22
>>381
サンクスです
でもクラス使ってるとバレるな、まだ習ってないし

387:名無しさん@そうだ選挙に行こう
07/07/29 19:44:40
>>386
関数は?

388:名無しさん@そうだ選挙に行こう
07/07/29 19:52:10
>>386
今は高校でVBやるんだ
工業系?

389:372
07/07/29 20:10:50
>>387
関数はやったけど、クラスは初心者向きじゃないのね教科書にも載ってない
>>388
工業の情報系です

390:デフォルトの名無しさん
07/07/29 20:28:09
>自分じゃよくわからないので誰か作って下さいますか?

おまぃら・・・PGかSEかしらんがこんなの手伝うなよ・・・・
意味がないだろ
お前らが手伝ってるってことは 将来の無能SEやPGを育ててることとそう変わらないんだぞ


391:デフォルトの名無しさん
07/07/29 20:31:26
ていうか何で情報系に行ったの?

392:デフォルトの名無しさん
07/07/29 20:34:21
>>389
[13334.zip]

>>390
後でプログラムの説明が出来なくて困るのは>>372だしいいんじゃね?

393:デフォルトの名無しさん
07/07/29 20:42:10
>>392
そうだよねw

つうか、他の人のソースどんなかな?とかって見ててリアルにコーヒー吹いたwwwww
俺のコーヒーかえせwwwwww

394:デフォルトの名無しさん
07/07/29 20:44:44
>>393
なんで?

395:デフォルトの名無しさん
07/07/29 20:47:37
>>394
おま・・・計算結果の書式フォーマットいじってるところのコメント見ろ

396:デフォルトの名無しさん
07/07/29 20:52:16
追伸
Kadai4\Kadai4\frmClac.vb
の40行目だ

397:デフォルトの名無しさん
07/07/29 20:55:20
ちょwww

398:デフォルトの名無しさん
07/07/29 20:57:33
これを素で書いてたんだとしたら・・・・
>>392はものすごい欲求不満


399:デフォルトの名無しさん
07/07/29 21:07:27
>>372が気づかないでそのまま提出したら面白かったのに・・・

400:デフォルトの名無しさん
07/07/29 21:09:19
>>399
なぁに
どうせ読んでないから気づきゃしないさ
というのを期待したい

401:デフォルトの名無しさん
07/07/29 22:25:55
Wordファイルの素性に言及しない
おまいらの優しさに泣いた

402:デフォルトの名無しさん
07/07/29 23:05:05 0
>>401
他の板じゃあるまいし
そんなものに興味はない

403:デフォルトの名無しさん
07/07/29 23:46:15 0
おまいら人によって態度変えるのやめろよ。
>>370, >>371 をみてみろよ。

404:デフォルトの名無しさん
07/07/30 00:05:47
>>403
説明するより、コード書いてた方が楽だから

405:デフォルトの名無しさん
07/07/30 00:32:02
>>403
少なくとも371は俺だが、俺は学生クンは一切シカトしてたから一貫はしてるよ。
他人にまでそれを強制するつもりはないが。

406:デフォルトの名無しさん
07/07/30 00:51:29
C#スレみたいに本スレとふらっとスレみたいに分けるべきなのかもね
でも、そしたらほとんど初心者スレに逝け、で終りかもなのね

407:デフォルトの名無しさん
07/07/30 00:54:28
この場合、スルーすればよいだけなのにレスした>>405の性格の悪さが問題なんだろうw
気持ちはわかるが書いてはダメだ。

408:デフォルトの名無しさん
07/07/30 01:19:34
>俺は学生クンは一切シカトしてたから

シカトしてない件について

409:デフォルトの名無しさん
07/07/30 09:56:30
>>389

自分で情報系入ったわけだから、宿題丸投げとか、ありか?

宿題の言語が多過ぎでそのうちの一部がやりきれないとかならわかるけどね・・・


410:デフォルトの名無しさん
07/07/30 10:04:04
同じ画面でモードを切り替えたいんですがどうしたらいいんでしょうか?


411:デフォルトの名無しさん
07/07/30 10:41:15
>>410
大局変数を使え。

412:デフォルトの名無しさん
07/07/30 10:58:30
あるパネル内にアクセスキー付きラベル 例(&1) があり、パネルの外にテキストボックスがあります。
ALT+1キーを押下した場合、フォーカスがテキストボックスに移動しません。
アクセスキーを使用してフォーカスをテキストボックスに移動させるにはどうすればよろしいでしょうか?


413:410
07/07/30 11:00:43
>>411
ぐぐったけどわかりません

414:デフォルトの名無しさん
07/07/30 11:23:35
>>410
意味がわかりません。
なんのモードなのか?

415:デフォルトの名無しさん
07/07/30 11:53:51
>>412
アクセスキーは同じコンテナ内じゃないと無理だと思う。
同じパネル内に入れない理由は何?
どうしても両コントロールをパネルの内外に置かなければならない理由があるなら、
FormのKeyPressイベントとかで擬似的にアクセスキー押下の挙動を作るしかないんじゃないかな。

416:410
07/07/30 11:58:57
>>414
照会、新規、修正モードです


417:デフォルトの名無しさん
07/07/30 12:02:42
質問させてください。
TabControlにて見出しの背景色を変更したいのですが、調べたところ
DrawModeをOwnerDrawFixedにして自分で描画する方法が見つかりました。
そこでDrawModeをOwnerDrawFixedにしてみたらTabControlのVisualStyleが
無効になってしまいました。
VisualStyleを有効にしたまま見出しの背景色を変更する方法ってありませんでしょうか。

418:デフォルトの名無しさん
07/07/30 12:05:24
>>416
お前頭腐ってねえか?
照会、新規、修正モードとか言われても、こっちにはわかるわけないだろ?w

419:デフォルトの名無しさん
07/07/30 12:09:56
347=372?

420:デフォルトの名無しさん
07/07/30 12:46:36
>>415
thx

パネルは装飾用に使っていたんだけど、やっぱり無理か。
LabelのPaintイベントでやるしかないな。


421:デフォルトの名無しさん
07/07/30 12:47:54
>>410
手っ取り早い方法としてTabControl使えば?

422:デフォルトの名無しさん
07/07/30 13:14:14
>>420
装飾に使っているだけなら、デザイナいじってパネルの上にラベルを乗せる(パネルのアイテムには含めない)ってのはどうよ?

423:デフォルトの名無しさん
07/07/30 13:51:55
>>422
ちなみにユーザーコントロールにしても同じだよね?

424:デフォルトの名無しさん
07/07/30 13:58:00
>>423
何が同じ?
いちいち言葉抜かんでくれ。口で会話してるんじゃないんだから。

425:デフォルトの名無しさん
07/07/30 14:04:01
>>417
VisualStyleも含めて自分で描画する

426:417
07/07/30 14:36:37
>>425
どこにどういうふうに記述すればよいのでしょう…。
tabcontrolにはPaintイベントがありません。
DrawItemイベントはDrawModeがOwnerDrawFixedの時にしか起こらないようです。

427:410
07/07/30 16:00:04
>>421
ラジオボタンで切り替えたいんです
ラジオボタンをチェックするとIDや氏名欄は空白にしたいんです

428:デフォルトの名無しさん
07/07/30 16:10:50
>>427
だからお前頭腐ってるだろ?

>ラジオボタンで切り替えたいんです
>>410の時点でそんなことは一言も言っていない

>>416といい、>>427といい、こっちはそっちがどういうモノを作っているのか、
どんなコントロールを使用しているのか、どういう仕様にしたいのか、何一つ知らないんだぜ?
いきなり何モードにしたいだの、何を空白にしたいだの言われても解かるわけねーだろ。
まず、質問の仕方から勉強して来い。

429:デフォルトの名無しさん
07/07/30 16:22:57
ツールバーからデバッグ→開始を選ぶと、「Debugger userグループのメンバーである事を確認してください」と
出て、ソフトのデバッグが出来ません。
使っているOSはWindowsVistaHomePremium、
adoministrator権限を持ったユーザーアカウントを使っています。
他のPCとは接続していません。

430:デフォルトの名無しさん
07/07/30 16:25:51
>>427
仕様を書け。

431:デフォルトの名無しさん
07/07/30 17:23:04
>>427
どうしようか?ww

432:デフォルトの名無しさん
07/07/30 17:32:50
入力項目貼り付けてラジオボタンのChangeイベントで項目のVisible切り替えればええがな

>>410

とりあえず
条件別に表示が必要な項目をあげてみろよ


433:デフォルトの名無しさん
07/07/30 18:05:24
もう放っておこうよw

434:434 ◆nf55XyzMAg
07/07/30 19:04:09
ちょっと聞いてくださいよみなさん。
スレとあんま関係ないんだけど。

VB.Netで特殊なメモ帳を今作っています。
DBを用いたメモ帳なんですけど、
開いた時にアカウントの選択ダイアログが出て、選択したアカウントのメモグループをツリービューに表示するのです。
メモグループをクリックするとそれに関連付けられた、メモの一覧が出てきます。
一覧のメモをクリックするとメモした文字列とファイルを別ウィンドウに表示するものを先輩と作っています。

本題は実際にはこのソフトのメモグループはミドル、メモ本体はディティールというのですが、先輩はミドルを親、ディティールを子と呼んでいます。
ではツリービューの+マークの付いている行やその下のすこし横にずれている行をなんというのでしょうか?
先輩は親、子と呼んでいますが、ミドルに属していないディティールもあるのでそれを親の無い子って呼んでるんです。
いくら「ミドルですよ。」「ディティールですよ。」っていっても罵倒雑言の嵐。
本でツリービューの+マークの付いている行やその下のすこし横にずれている行を親、子って説明しているんです。

先輩が間違っているのか本が間違っているのか教えてください。お願いします。


435:デフォルトの名無しさん
07/07/30 19:10:10
>>434
URLリンク(homepage1.nifty.com)

436:デフォルトの名無しさん
07/07/30 20:01:47
おい、貴様ら。

もうそろそろ、>>370に手を差し伸べてはいかがですか?

437:デフォルトの名無しさん
07/07/30 20:52:38
彼にとっては突き放されることこそが最大の援助だろう。真面目な話。
というかこの程度の問題を自分で解決できないなら(以下略

438:デフォルトの名無しさん
07/07/30 21:00:01
>>436 = >>370 ?
わからないから違うかも知れないけど、
Loadで書いたプログラムでは「一度描画されているが消えている」んだと思う。
Clickで描画したものも他のウインドウを手前に持ってくるとその部分消えるし。

439:370
07/07/30 21:24:05
>>438
いや436は私じゃないです

>Clickで描画したものも他のウインドウを手前に持ってくるとその部分消えるし。

本当だ、消えますね?
HSP厨から卒業しようと思ってVB Expressの勉強始めたんですが全然勝手が違いますねえ
何で命令使うのにいちいちdimで宣言するのかすら分からない
何の利点があるんだろ?

>>437
入門書見ながら頑張ってみます
 

440:デフォルトの名無しさん
07/07/30 21:36:17
>>439
たぶんその宣言でメモリ領域を予約するためだ
つうか、普通の言語はどれもそういう宣言があるんだよ

宣言強制しとけば間違った使い方もなくなるし
VB6みたく2005でも変数宣言の強制はオプションではずせるんじゃなかったっけか・・?
俺は絶対いやだけど


441:デフォルトの名無しさん
07/07/30 21:38:55
回答がついた途端に>>370が出てきたのにワロタ
ずっと見てたなら質問しなおせばいいのに。

442:436
07/07/30 21:46:55
>>439
ヒント:CreateGraphicsメソッドは描画、画像表示はImage.FromFileメソッド

443:デフォルトの名無しさん
07/07/30 21:47:51
>>440
変数は分かるんですけど、
        Dim g As Graphics = Me.PictureBox1.CreateGraphics()  
        g.DrawImage(bg, New Point(0, 0)) 
何故DrawImageを使うのにgという変数?を宣言するのかがわからんです

>>370の件、timerイベントで試してみたけど表示されなかった
イベントによって同じコードでも動き方が違うのか?

>>441
いやそんなふいんきじゃなかったんで・・・・・・




444:デフォルトの名無しさん
07/07/30 21:54:07
>>442
描画と表示は別なんですか
ありがとう、がんばって調べてみます

しかしじゃあ何でボタンの時だけ表示されるんだろう?
全部表示されないなら分かるが


445:デフォルトの名無しさん
07/07/30 21:58:29
370の人
本当真面目に勉強したほうがいいよ。
GDI+(というかWindowsの描画の考え方)は別に難しくない。
っていうか、どぼんとか@itとか、今時初歩的な内容ならタダで親切な解説が
いくらでも読めるのになんでいきなり「掲示板で質問」とか短絡するんだろう。

>>442
おいおいいい加減なこと吹き込むなよお馬鹿さん。
なにがヒントだw


446:436
07/07/30 22:07:15
>>445
ん?

ピクチャボックスに画像表示でしょ?

PictureBox1.Image = Image.FromFile()

プロジェクトリソースの場合は

PictureBox1.Image = My.Resource.リソース名

CreateGraphicsはPaintイベント使わないと消えるんじゃないの?
CreateGraphics自体あんまり使わないから詳しいことは知らないけど。
馬鹿アホ呼ばわりされてもいいけど、きちんとどこを指してるのか
指摘してくれないと困る。

447:デフォルトの名無しさん
07/07/30 22:07:17
>>455
何で同じコードなのに?という疑問が先にたって書き込んでしまいました
すいません
紹介していただいたサイト見て勉強します

448:デフォルトの名無しさん
07/07/30 22:10:33
>>446
ピクチャーボックスのImage プロパティにImageを設定するやり方は
あくまで(コスト度外視で)簡易的に画像を表示する方法であって王道ではない。

もしこれが言いがかりだと思ってるなら君も初歩から勉強が足りなすぎるよ。

449:436
07/07/30 22:14:28
>>448
何を勝ち誇ってるのか知らないけど
どういう方法を選択するのかを決めるのはプログラマでしょ?
>>370ぐらいの初心者にそういうアドバイスは
あなたの単なる自己満足でしょ。

あなた回答もしないのに性格極悪だね。

450:デフォルトの名無しさん
07/07/30 22:18:51
>>449
地獄への道は善意で舗装されている、という言い古された言葉をしらないのか君は。

451:370
07/07/30 22:24:03
自分のせいで雰囲気悪くなってすいません

452:436
07/07/30 22:24:30
>>450
だから、そういう抽象的な自己満足ならレスしないでよ。
>>442をどう解釈するかは>>370なんだって。
>>448の主張こそ>>370を縛る「善意の舗装」だってどうして気づかないわけ?

某スレにも回答しないのに回答者にダメ出しばっかりしてる人がいるみたいだけど
あなたじゃないの?

453:デフォルトの名無しさん
07/07/30 22:28:16
>>448
ちょいまて。
PictureBox.Image を使うのが王道でないならそもそも PictureBox を使う意味なんか一切ない。
ということを踏まえての発言だよな?

454:436
07/07/30 22:29:28
>>451
ああ、気にしないでがんばって。

455:438
07/07/30 22:30:51
>>448
その王道のやり方を教えてください。

456:370
07/07/30 22:36:35
議論の沈静化になるか分かりませんが、>>370は画像の重ね合わせのサンプルを
参考にしたもので、本ではその後別の画像を透過色を指定して描画しています
試しにまず一枚描画したとこformのロードイベントでは表示されなかったので質問した次第です



457:デフォルトの名無しさん
07/07/30 22:44:38
>>456
いつもこんな感じだから別にあなたのせいじゃないよw


458:デフォルトの名無しさん
07/07/30 22:52:26
>>453
なんでそういう風に短絡するかね。

たとえ話で言えば、スナップショットを撮るときにコストを度外視していつもポラロイドを
使う奴がいたらそいつは馬鹿だが、だからといってポラロイドの価値がゼロってわけじゃない。

たとえばスプラシュスクリーンとかバージョン情報のダイアログにPictureBoxを
使うのが悪い選択とは俺も思わない。

ただ、王道をスキップしてコスト高の手抜き手法のみ教えるのは馬鹿だといってるだけね。

459:デフォルトの名無しさん
07/07/30 22:56:58
>>458
君の論理の飛躍のほうが世間的には受け入れられないと思うが・・・

460:デフォルトの名無しさん
07/07/30 22:58:49
とりあえず 458 が日本語に不自由な人だというのは分かった。
からもういいや。

461:デフォルトの名無しさん
07/07/30 23:12:21
で、結局王道のやり方ってなに?

Private bg As Image = My.Resources.back

Private Sub PictureBox1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
    e.Graphics.DrawImage(bg, New Point(0, 0))
End Sub

でいいの?

462:436
07/07/30 23:23:33
たぶんExcelスレで初心者を煽り倒してる人でしょう。
全部文章で1行も回答しないところも一緒。
こっちでも玄人のフリできると思ったのかな。

463:デフォルトの名無しさん
07/07/30 23:37:32
>>462
下らん。
そういうのを「逆ギレ」という。

もし反論があるのなら俺の言った内容に関して反論してくれ。
PictureBoxのImageプロパティを使う方法は画像の描画方法としては邪道の部類。
これ間違ってる?

エクセルスレなんて行ったこともないが、仮に俺がそのエクセルスレの人物と
同一人物だったら何だというのだw

464:デフォルトの名無しさん
07/07/30 23:48:34
>>463
>これ間違ってる?

もっと自信もちなよ。

>エクセルスレなんて行ったこともないが、仮に俺がそのエクセルスレの人物と
>同一人物だったら何だというのだw

時にこういう開き直りも大事だと思うよ。

ごめん、勉強があるから。

465:デフォルトの名無しさん
07/07/31 00:19:19
>>463は王道なコードをびしっと書いて終わりにすればいいのに。


466:デフォルトの名無しさん
07/07/31 07:41:55
>463
王道コードプリーズ

467:デフォルトの名無しさん
07/07/31 07:44:35
>>463
王道!王道!王道!

468:デフォルトの名無しさん
07/07/31 07:47:34
王道!が流行しそうじゃないかw

469:デフォルトの名無しさん
07/07/31 08:44:16
370がなんだかいじらしく思えたきたw
おそらく超初心者だな
最初は疑問だらけだろうがガンガレ

470:デフォルトの名無しさん
07/07/31 08:56:57
>>463
俺にもその「王道」とやらのコードを教えてくれないか。
後学のためにぜひともお願いしたい。

471:デフォルトの名無しさん
07/07/31 09:14:21
>>463
王道よろしく

472:デフォルトの名無しさん
07/07/31 09:38:15
王道を見せてくれると聞いたので 嘔吐しそうですがやってきました!!!!

473:デフォルトの名無しさん
07/07/31 09:45:12
ゴッチが死んだのに、なんで全日の話題に走る?
ストロングスタイルのコードを見せろよ。


474:デフォルトの名無しさん
07/07/31 09:46:17
imageプロパティがコスト度外視ってのが理解できない。
どういうこと?


475:デフォルトの名無しさん
07/07/31 09:49:41
プログラムでいうコストって表現は何を示すのだ?
処理の早さ?

476:デフォルトの名無しさん
07/07/31 09:51:07
実行時間コスト?
リソースコスト?
金額コストw
手間(作成こすと?)?


477:デフォルトの名無しさん
07/07/31 09:54:29
とりあえず>>463の王道見てからにしようぜ

478:デフォルトの名無しさん
07/07/31 11:33:45
>>463
>これ間違ってる?
「それを邪道とするのが一般的だ」という主張であれば、間違ってますね。
そもそもそんな瑣末なコストを気にしなければならないシチュエーションで
VB.NET なんか使う奴は莫迦です。

479:デフォルトの名無しさん
07/07/31 12:27:34
まあ馬鹿な連中っていうのはこうやって自分自身の居場所を自分で破壊するんだな。

こういうくだらないレスが連続すれば、回答者側に回るポテンシャルの持ち主ほど
必然的にここに来なくなる可能性が高いことぐらい理解できないほど馬鹿なのかね。

それとも、昔話のサソリみたいに、自分も沈むと分かっていても自分が乗ってる
蛙を刺さずにはいられない類の精神の病み方をしているのか。

たぶん両方だろうね。

480:デフォルトの名無しさん
07/07/31 12:40:53
>>479
御託はいいから早く王道書いてよ

481:デフォルトの名無しさん
07/07/31 12:50:11
>479
その高いポテンシャルのコードを見せてくれ

482:デフォルトの名無しさん
07/07/31 12:53:27
>>479
お前にぴったりのスレがあるぞ

スレリンク(tech板)

483:デフォルトの名無しさん
07/07/31 14:08:42
ヤフオクの注目を一括して設定したいのですが、ちょっとご意見を聞かせてください
1.出品一覧を取得しGridに表示
2.SHDocVw.InternetExplorerを使ってソースを読み取りStringReaderに展開(innerHTML)
3.1行づつ読み込み、設定
という流れで処理していますが、3で無理やり感がしています。
特に3での処理が長くいので、連続してやっていくとエラーが良く出るのです。

スマートでエラーが出にくい書き方ってありますか?

484:デフォルトの名無しさん
07/07/31 14:31:24
>>479
王道!王道!王道!

485:デフォルトの名無しさん
07/07/31 15:15:12
あるテキストの最後が改行コードかどうかを調べるにはどんなかんじのプログラムを書くの?

486:デフォルトの名無しさん
07/07/31 15:57:03
とりあえず改行コードは何を使うのか聞こうか

487:デフォルトの名無しさん
07/07/31 16:49:16
古いVBを引きずっていいよ派:
  If Right(hoge, 2) = vbNewLine Then
VB.NET なんだからさ派:
  If hoge.EndsWith(Environment.NewLine) Then
まあその前に >>486 か。

488:デフォルトの名無しさん
07/07/31 17:25:02
>>445>>448>>450>>458>>463>>479

プログラムスレなのに文系丸出しじゃないですか
まさに王道ですね

489:デフォルトの名無しさん
07/07/31 17:26:50
まだやってるのか
双方とも厨まるだし

490:デフォルトの名無しさん
07/07/31 17:44:37
王道!王道!王道!

491:デフォルトの名無しさん
07/07/31 17:52:45
NewLineとCrLfの違いは?

492:デフォルトの名無しさん
07/07/31 18:25:56
みたまま全然違うじゃん

493:デフォルトの名無しさん
07/07/31 18:42:02
vbNewLine と vbCrLf は等価。
vbCrLf と vbCr & vbLf も等価。
Environment.NewLine と vbNewLine は Windows では等価。

494:デフォルトの名無しさん
07/07/31 20:20:32
ちょっと王道でラーメン食ってくる

495:デフォルトの名無しさん
07/07/31 20:50:24
じゃ俺、尿道に割り箸突っ込んでくる

496:デフォルトの名無しさん
07/08/01 10:01:34
ToolStripのボタンの、ドロップダウンのボタン、
ToolStripSplitButtonやToolStripDropDownButtonに、
選択中を示す「Chekedプロパティ」みたいなのってないんでしょうか?
ToolBarから移行しようと思ったんですが、にんともかんとも…。
ってか、この2つ、見た目(分かれてる)以外に何が違うの?

497:デフォルトの名無しさん
07/08/01 10:12:02
VB.Net2003でWinアプリを開発してます。

ListViewを使用してアイコン表示してるのですが、場合により
そのアイコンに記号を重ね合わせて表示したいのです。

たとえていうなら、Explorerでショートカットファイルはオリジナルファイルの
アイコンと、ショートカットを示す小さな矢印アイコンが合成される、あのイメージです。

あらかじめ使用するだけのアイコンをすべて用意しておいて、ImageListに埋め込んでおけば
いいのかもしれませんが、そういうわけにもいかないので・・・。

具体的にやりたい方法は、
 FormLoad時にListViewの各種ImageListを設定
 それらのImageListにはImage.FormFileで動的に取得
 条件により小さな記号を重ね合わせて表示
てな感じです。

.Net1.1のListViewではオーナードローは無いみたいですし、2.0にはまだ移行できない現状ですし・・・。
何か良いアイディアがあれば教えてください。

498:496
07/08/01 10:59:57
普通のToolStripButtonの横に、
イメージをクリアしたToolStripDropDownButtonを配置することで、
希望していたものが作成できそうです。
どうもお騒がせしました。

499:デフォルトの名無しさん
07/08/01 11:52:40
>>497
ListView.ImageListを切り替えて使うのはどう?

If ある条件 Then
TreeView1.ImageList = ImageList1
Else
TreeView1.ImageList = ImageList2
End If


500:497
07/08/01 12:09:25
>>499
レスありがとうございます。

やりたいのは、動的に生成したImageListと、ListViewItemの状態により
記号の付加です。

付加したい記号は固定なのでImageListにしてしまおうと考えています。

つまり、動的に生成したImageListでListViewItemを表示し、そのListViewItemの
 状態が1なら○
 状態が2なら△
 状態が3なら×
 状態が0なら記号なし
みたいに状態をあらわす記号を付加してListViewItemに表示したいのです。

言いたいことが伝わりますでしょうか?

501:デフォルトの名無しさん
07/08/01 13:08:22
>>500
記号を付加したアイコンをその都度作成するしか方法はないんじゃない?

502:497
07/08/02 14:01:16
>>500
レスありがとうございます。
やはりそうなりますよね・・・。
ListViewのアイコンにレイヤみたいなのが使用できればよかったんですけど。
ありがとうございました。

503:デフォルトの名無しさん
07/08/02 18:49:40
やや漠然とした質問で申し訳ないんだけど、
ComboBoxのOnDrawItemの中で、DrawItemEventArgsのGraphicsプロパティではなく、
あえてComboBox.CreateGraphicsでGraphics取得して描画した場合何か想定される
問題ってあるかな?

そもそもそんなことする必要ないだろ、って突っ込みがきそうですが、
説明すると長くなるので省略しますがとにかくその必要はあるのです。

こういうのは結局Win32に明るくないとよくわからない。

504:デフォルトの名無しさん
07/08/02 19:34:47
ダブルバッファにしたときはまる。
やらないだろうけど。


505:デフォルトの名無しさん
07/08/02 20:11:33
リストビューで列ヘッダーのサイズ変更を禁止にするにはどうすればよろしいでしょう?

506:デフォルトの名無しさん
07/08/02 20:31:53
>>504
よかったら詳しく。
それと、それは(Win9xの場合も含めて)通常は問題ない、という意味にとっていい?

507:デフォルトの名無しさん
07/08/03 12:16:54
うわぁぁぁああ!

ビルドしたら突然IDEが落ちる!!!
DebugでもReleaseでもIDEが落ちる!!!!

さっきまで普通にビルドできていたのに!
そういや全てのフォームのリソースがどうのこうのってビルドエラーが1回でたな・・・

どうやったらビルドできるようになるんだ!?!?

508:デフォルトの名無しさん
07/08/03 12:32:47
空のプロジェクトでも落ちるん?

509:デフォルトの名無しさん
07/08/03 12:35:34
>>507
前にもどこかに書いたけど、WinFormのGUI部品を継承したクラスで妙なことやってると
そういった現象が発生する場合はあるみたいだ。

510:デフォルトの名無しさん
07/08/03 13:42:09
VS2003です.
フォームを閉じるとき,その操作が(戻るボタンなどの)ボタンによるもの
なのか,それともフォームの閉じるボタンによるものなのかを判定するには
どうしたらよいでしょうか?

ボタンが一つ(btnBackとする)なら,Closingイベントで, If sender Is btnBack Then~
とできるのですが,ボタンが複数ある場合はどうしたらいいでしょう?


511:510
07/08/03 13:58:34
すみません,下2行は無視して下さい.
senderはどちらにしても該当フォームになるんでしたね.

512:デフォルトの名無しさん
07/08/03 14:18:25
>>510
URLリンク(jeanne.wankuma.com)

513:デフォルトの名無しさん
07/08/03 15:09:42
VB.NET2005で最終完成でこれいじょうバージョンアップのときに購入させられることありませんよね?

514:510
07/08/03 15:23:51
>>512
ありがとうございました.けっこう面倒なんですね…

515:デフォルトの名無しさん
07/08/03 16:11:27
>>513
何言ってんだ。
OSも開発環境も、買わせる為にバージョンアップを繰り返してるってのに。

516:507
07/08/03 16:49:28
原因はなんなんだろうなぁ・・・

ビルドしたかったプロジェクトを含むソリューションには複数のプロジェクトがあったんだけど
とりあえず今ビルドしたかったプロジェクトだけを含むソリューションを1つだけ作成して
ビルドしたら正常にビルドできて普通に動作してるよorz

これ以外のプロジェクトもそれぞれ単体でビルドすればイケるんだけど、
まとめてあるソリューションを開いてビルドすると落ちる・・・

>>509
kwsk

517:デフォルトの名無しさん
07/08/03 18:31:30
>>516
だからさ、もしプロジェクトで自作の継承コントロールとか複合コントロールを
使ってるならそいつが臭いかもよ、って話よ。

ただ、俺の経験した現象は、その自作のコントロールを使ってるフォームを
デザイナで開くとIDEが落ちる落ちる、というものだったけど。

もちろん落ちるのはその自作コントロールのコードに問題があるからであって、
意味なくやたらと落ちるわけじゃないけどね。

518:デフォルトの名無しさん
07/08/03 21:10:36
>>517
さんくす。

確かに自作コントロールを使用しているプロジェクトはあるんだけど、
そのプロジェクト単体のソリューションではちゃんとビルドできるんだ。

で、結局、新規に空のソリューションを作成してから今までの各プロジェクトを
追加したら普通にビルドできるんでやんのw

>>517みたいにデザイナで開くとIDEが落ちる、というのとはちょっと現象が
異なっているんよ。

原因はわかっていないけど、とりあえず今は正常にビルドとかできてるし
なんとかこのまま乗り切れたらいいのになぁ。
原因が解明できてないのでまた同じ現象に陥ることもあるかもしれないけど。

519:デフォルトの名無しさん
07/08/03 21:48:09
余計なお世話だろうけど、寝た子は起こして原因は究明しといた方が
後々安心だよ。

とりあえず別のPCにIDEインストールして「落ちる」リソルーションを読ませて
確認することで、原因が環境にあるのかプロジェクトにあるのかの切り分けはできるでしょう。

520:デフォルトの名無しさん
07/08/03 22:16:55
WebBrowser上のマウスの座標を取得する方法を教えてください。

521:デフォルトの名無しさん
07/08/03 22:17:41
Control.MousePosition で充分だろ

522:デフォルトの名無しさん
07/08/03 22:21:54
exeのアイコンを取得したいんですけど、
Icon.ExtractAssociatedIconでは複数のアイコンが含まれたexeから
2番目以降のアイコンを取得することは出来ますか?

523:デフォルトの名無しさん
07/08/03 22:29:54
>>521
WebBrowser上のマウスの座標を取得する方法を教えてください。

524:デフォルトの名無しさん
07/08/03 22:56:35
>>522
無理 頑張ってWin32API
Webを探せば余裕で見つかりそうだが

525:デフォルトの名無しさん
07/08/03 23:08:44
>>524
㌧クス

あちゃーWin32か…
ちょっと頑張ってみます

526:デフォルトの名無しさん
07/08/05 13:12:35
教えてください。
ControlPaint.DrawCaptionButtonで、閉じるボタンなどの描画ができますが、
ビジュアルスタイルを適用していないボタンしか描画できません。
ビジュアルスタイルが適用された閉じるボタンを描画する方法はありますでしょうか?
よろしくお願いします。
環境はVB2005 Expressです。

527:デフォルトの名無しさん
07/08/05 22:30:13
VisualStyleRenderer and VisualStyleElement

528:デフォルトの名無しさん
07/08/05 22:46:57
おおー2.0からそんなクラスが追加されてたのか知らなかった


529:デフォルトの名無しさん
07/08/06 00:51:43
JAVAみたいにArrayListで、
A = list(cnt++)
B = list(cnt++)



みたいな感じで取得できませんか?

530:デフォルトの名無しさん
07/08/06 01:34:30
自分でラップしてそういうクラス作るだけじゃないか。

531:デフォルトの名無しさん
07/08/06 07:59:33
コンボボックスのボタンで開くようなポップアップウインドウのようなものを
作りたいのですがうまくいきません。
縁無しウインドウをモーダルで開くとそれっぽく見えるのですがタスクが移動して
しまいコンボボックスのそれとは違うようです。
良い方法がありましたら教えて下さい。


532:526
07/08/06 10:23:16
>>527
でけましたヽ(´ー`)ノヒントありがとー!

>>528
自分も全然。

533:デフォルトの名無しさん
07/08/06 16:15:06

皆さん教えてください、よろしくお願いします。
MessageBox のように戻り値を持つFormを作成するにはどのようにすればよいでしょうか。
何かそれように使える特定のクラスがあるでしょうか。



534:デフォルトの名無しさん
07/08/06 16:34:15
フォームにプロパティをつけて、そのフォームをShowDialogで開く。
閉じられたときに、そのプロパティを取得する。
みたいな感じでいいんじゃない?

まんまダイアログでいいなら、追加→新しい項目→ダイアログ
でダイアログ追加してそれをカスタムするとか。

535:デフォルトの名無しさん
07/08/06 17:37:46
つうか DialogResult


536:デフォルトの名無しさん
07/08/06 17:41:59
oh! DialogResultって普通にフォームのプロパティやったんやな…

537:533
07/08/06 18:08:26
>>534-536

DialogResult というプロパティがあってそれを変更しておけばいいのですか、
なるほど、わかりました!!

ありがとうございました。

538:デフォルトの名無しさん
07/08/06 18:30:19
モーダルなダイアログなら、フツーはShowDialogの返り値を取得するんだけどね。

いつものことだけど、このスレにもc#のスレにも結構テキトーなこという奴がいるんで
話半分に聞いた方がいいよ。

モーダレスなフォームで閉じられた時に何らかの値を「返す」ようにしたいのなら
例えばValueEnteredのようなイベントを自作して、ValueEnteredEventArgsのプロパティとして
返り値が取得できるようにした方がわかりやすいと思う。

539:デフォルトの名無しさん
07/08/06 22:49:58
と本日一番てきとーな答えが返ってきました。


540:デフォルトの名無しさん
07/08/06 23:08:10
と、暇人が申しております。

541:デフォルトの名無しさん
07/08/07 08:58:11
つうか、親画面が生成したモードレス画面のClosingイベントか何かにイベント関数設定すればよかんべ。
VB6とちがって、 AddHandlerつう便利な呪文があるんだから。

イベント関数は別にそのイベント発生フォームにある必要がない。


542:デフォルトの名無しさん
07/08/07 09:44:49
>>538
モーダレスなフォームが閉じられた場合、どこがその返り値を受け取るのさ?
モーダレスの場合は、閉じられる側のフォームが値を押し付けるしかできないだろ。

ってか533は「MessageBox のように戻り値を持つFormを作成するには」って書いてるのに、なんでモーダレスの話になるのさ?

543:デフォルトの名無しさん
07/08/07 10:03:02
>>542

>>538じゃないが、つくりにもよるが、>>541に書いたとおりだよ。
モードレスフォームから受け取りたいと思ってる画面が、Closeingイベントか何かにイベント関数登録しとけばいいだけ。
その、受け取りたい側は別に1つである必要はない。
モードレス側がイベントをブロードキャストするだけ、おらっちしぬけどいいべか?って。


544:デフォルトの名無しさん
07/08/07 10:07:55
んあー、、っと、AddHandlerで、モーダレス側のClosingの時に、親の方のメソッド走らせるってことか。
んなことできるのか!

545:デフォルトの名無しさん
07/08/07 10:16:02
そこが楽しいところですよ。

コントロールダブルクリックしてイベント書いてるだけじゃVB6と変わらない。
Delegateの仕組みというか其のあたりを理解すれば、また違う世界が・・・。


546:544
07/08/07 10:20:39
>>545
(*´Д`*)試したよ。出来たよ。
戻り値欲しいときは全部モーダルで開いてたんだが、これで世界が変わりそうだぜ!
AddHandlerもよく使うのにこういうことに頭回らなかったなー。

547:デフォルトの名無しさん
07/08/07 10:26:27
AddHandlerって、イベントの呼び出しスタックに関数を登録するイメージだから。
イベント発生時に、そのスタックのDelegateを順次呼び出し。
まあ、注意点は順序でしょうか?基本は登録順だから(確か変えられたけど)

通信系とか、その他でも、この使い方知れば、関連フォーム、クラスにブロードキャスト可能。
フォームだけじゃないことも大事なところ。

548:デフォルトの名無しさん
07/08/07 12:11:49
>>538
>>542
×モーダレス
○モードレス

>>544
そりゃ、
 ・ 一つのイベントハンドラを複数のコントロールで共用したいとき
 ・ 動的に生成されるコントロールのイベントを捉まえたいとき
なんかのために、イベントハンドラを動的に設定するためのもんなんだから
出来なきゃ困る。

549:デフォルトの名無しさん
07/08/07 12:27:41
>>548
よくある勘違いだが、それは「モードレス」っていう表記の方が間違ってるんだよ。
モーダル ⇔ モーダレスという表記が正しい。


550:デフォルトの名無しさん
07/08/07 12:34:47
かたかな表記はどっちにしても間違いってのが、ゼミの教授のお言葉。


551:デフォルトの名無しさん
07/08/07 12:38:20
>>549
いや、modeの語尾変化でmodalとmodelessだからモーダルとモードレスだろw

552:デフォルトの名無しさん
07/08/07 12:44:13
そりゃmodeの音が「モード」だという思い込みを前提としているからそういう判断になる

553:デフォルトの名無しさん
07/08/07 12:44:21
こまかいなぁ

554:デフォルトの名無しさん
07/08/07 12:54:36
くだんね


555:デフォルトの名無しさん
07/08/07 12:59:05
modeの発音記号は[moud]で一番近い日本語表記はモードですぅ~><

ってかくだらんことで意地張ってレス消費させるなw

556:デフォルトの名無しさん
07/08/07 12:59:42
>>555
オマエモナー

557:デフォルトの名無しさん
07/08/07 13:01:06
>>552はi mode も アイモーダとか発音してるんだぜ(´ー`)

558:デフォルトの名無しさん
07/08/07 13:02:01
↓下らん流れを変える、質問よろ。

559:デフォルトの名無しさん
07/08/07 13:04:17
まぁ表記がどっちだろうと構わないが、一般的なのはどっちなのか
グーグル先生に聞いてみた。あとはご自由に。

モーダレス 1,470 件
モードレス 29,500 件

560:デフォルトの名無しさん
07/08/07 13:52:39
初心者です、2点わからないことがあるので教えてください。
1点目が、データグリッド内に指定した行数だけデータを表示させる方法。

2点目が、ページング機能のプログラムの書き方。
この二つの方法をご教授ください。

561:デフォルトの名無しさん
07/08/07 13:59:41
>>560
環境も書いてくれ。
VS2005とか。

562:デフォルトの名無しさん
07/08/07 14:04:31
すいません
書き忘れです。
.net2003でmysql、odbc使ってます。


563:531
07/08/07 16:47:33
すまんが、>531にもなにかヒントちょうだい

564:デフォルトの名無しさん
07/08/07 18:34:12
>>563
答えが返ってこないのは、質問が漠然としているからでもあると思うよ。
君は読み手のESP能力を無意識に期待してるんだよ。
なぜ読み手の立場にたった文章が書けない?

例えばこのスレの標準的な読み手ならこう思うんじゃないか?
-------------------------------------------------------------
結局こやつは何がしたいのだ?

パネルやラベルを任意の位置に表示すれば済むように感じるのだが、
それではダメなのだろうか?
ダメだとしたら何故?

というか、なぜこやつは読み手にエスパーであることを要求して平気なのだ?
-------------------------------------------------------------


565:デフォルトの名無しさん
07/08/07 19:50:10
つか、「タスクが移動してしまい」の意味が解らん…

566:デフォルトの名無しさん
07/08/07 21:27:51
>>563
ShowInTaskbarをFalseにする。


567:デフォルトの名無しさん
07/08/07 22:01:42

Form を画面の中央に配置する場合、最も普通に行う方法はどのようなものでしょう?
VB6の時代には、Screenのサイズから割り出してTopとLeftを指定しました。
そうではなく、何か簡単な一発メソッドか何かで指定可能でしょうか。
また、画面が複数ある場合にも対応可能でしょうか。
なにとぞよろしくお願いします。

568:デフォルトの名無しさん
07/08/07 22:04:25
StartPosition

569:567
07/08/07 22:16:59
>>568

おお、助かります。やはりなんでも用意されているのですね!!
ありがとうございました!!


570:デフォルトの名無しさん
07/08/07 22:25:15
>>563
率直に言わせてもらう。





意味がわからん。

571:デフォルトの名無しさん
07/08/08 09:27:52
>>563
パネルとかを動的に生成して、任意の位置に最全面で表示させればええんじゃない?
試してないけど。

572:デフォルトの名無しさん
07/08/08 12:02:16
>>560
SQL文で必要な行数を持ってこいとすれば解決するのでは?
そうすればグリッドはただ表示するだけなんだし。

573:デフォルトの名無しさん
07/08/08 13:34:45

すみません、ボタン・コントロールの ForeColor に教えてください。
このプロパティを標準以外に変更しようとしてBlueなどを代入してみたのですが
変更できませんでした。これは単純には変更できないとしますと、
何か別のプロパティを先に変更しておく必要があるでしょうか。
その場合何を変更しておけばよいでしょう?よろしくお願いします。


574:573
07/08/08 13:36:02
>>573 すみません間違えました。訂正します。

>ForeColor に教えてください -> ForeColor について教えてください


575:デフォルトの名無しさん
07/08/08 13:40:03
.ForeColor = Color.Blueで効くはずだけど?
VisualStyleが腐ってるんじゃね?

576:デフォルトの名無しさん
07/08/08 13:57:44
>>573
FlatStyleプロパティがSystemになってるとForeColorの設定いじっても変わらない。

577:デフォルトの名無しさん
07/08/08 14:53:25
すみません、質問させて下さい。
DataGridViewにて、CellPaintingイベントで、セルの中身を自分で描画しようと思ったのですが、

Dim rect As New Rectangle(e.ClipBounds.X, e.CellBounds.Y, e.CellBounds.Width / 2, e.CellBounds.Height)
e.Paint(rect, DataGridViewPaintParts.Background + DataGridViewPaintParts.Border)
e.Handled = True

イベント内に以上のように書いた場合、セルの左半分だけ背景とボーダーが描画されると思ったのですが、
実際実行してみたところ、セル全体に背景とボーダーが描画されてしまいました。
rectを(1,1,1,1)なんて指定してみたところで、関係なくセルの全体が描画されているようでした。

これってrectで範囲指定ができないバグなんでしょうか?
それとも自分の書き方が間違ってるんですかね?

578:デフォルトの名無しさん
07/08/08 16:18:26
>>576
FlatStyle プロパティを System にしていました。><

むかし VB6 のときは、GraphicStyle だとかにすると色関係が
帰られたかと思いましたが、VB.NETではどうやっても無理ということ
なのでしょうか?

>>575
VisualStyle はググッたのですが、もしかすると WinXpの
ということでしょうか。


579:デフォルトの名無しさん
07/08/08 16:22:11
>>578

FlatStyle プロパティを System にしていましたのは、
Flat ですと見た目のインパクトが弱いためで、
その形が使いからでした・・・


580:デフォルトの名無しさん
07/08/08 16:26:56
>>579
Standardじゃだめ?

581:デフォルトの名無しさん
07/08/08 16:59:37
>>580

なるほどー。

ただやってみたのですが、BackColor が 
System のときと同じように、立体的なテキスタイルになる
とうれしいのですが、可能でしょうか?


582:デフォルトの名無しさん
07/08/08 17:54:41
自分の環境だとStandardとSystemの外観がまったく一緒なんだが、違うのかな…?

583:デフォルトの名無しさん
07/08/08 18:18:15
>>582

そうなのでした、これはもしかしたら、WinXPの設定なのですかね・・・。


584:デフォルトの名無しさん
07/08/08 18:19:37
質問者はOSとIDEの環境くらい書いておくれ。

585:デフォルトの名無しさん
07/08/08 20:03:51
>>584

すみません、OS は WindowsXp で、IDE は VS2005Pro でした。
そういえば、Xp は >>575さんの VisualStyle がありました、
これで変更してるから表示が変わるのですね。


586:デフォルトの名無しさん
07/08/08 23:32:38
Delegate ステートメント
URLリンク(msdn2.microsoft.com)(VS.80).aspx

Delegateについて勉強中なのですが教えてください。VB2005EEです。
上記の使用例で書かれているコードについてなのですが
Delegateがどのように役立っているかが全くわかりません。

Protected Sub Test()
AddNumbers(5, 3)
SubtractNumbers(9, 3)
End Sub

と書いたほうが良い様に思うのですが。

587:デフォルトの名無しさん
07/08/08 23:34:27
@ITのデリゲート入門でも読めば?
あんまりいい記事じゃないけど、デリゲートの存在意義は馬鹿じゃなきゃ理解できるはず

588:デフォルトの名無しさん
07/08/08 23:36:25
お前はいまとどめをさしてしまった…



589:デフォルトの名無しさん
07/08/08 23:37:49
イベントとか
コレクションのSortとか


590:586
07/08/09 01:09:19
>>587,>>589
回答ありがとうございます。何となくわかった気がします。

591:デフォルトの名無しさん
07/08/09 11:30:48
Windowsアプリで質問です。
ユーザーコントロールを作成し中にLabelとPictureBoxを配置しました。
このユーザーコントロールを貼り付けたフォームで、このユーザーコントロールのMouseHoverイベントを
使用したいのですがLabelとPictureBox以外の領域でしかMouseHoverイベントが発生しません。
このユーザーコントロール中(LabelとPictureBoxとそれ以外の領域全て)でMouseHoverイベントを
発生させるにはどのようにすれば良いでしょうか。

592:デフォルトの名無しさん
07/08/09 11:44:20
Private Sub UserControl1_MouseHover()
Private Sub Label1_MouseHover()
Private Sub PictureBox1_MouseHover()

でいいんじゃね?(未確認)

593:デフォルトの名無しさん
07/08/09 12:27:15
>>591
しばらく前にほとんど同じ質問があったなあ。
過去ログ見れば参考になるサンプルコードが見つかるはず。(確か俺が書いた)

まあ要は、自分の内部コントロールのイベントを拾って、
あたかも自分のイベントのように偽装(っていってもOnXXXX呼ぶだけ)すればいいだけだよ

594:デフォルトの名無しさん
07/08/09 12:30:23
>>592
解答ありがとうございます。
その記述をフォーム側に書くと言うことはLabelとPictureBoxをパブリックなプロパティにするということですね。
この場合、ユーザーコントロール内のマウスの位置によって3種類のMouseHoverイベントが起こるのが
ちょっとまずいです。
ユーザーコントロール内でマウスを動かしているだけで何度もイベントが発生するからです。
イメージとしてはユーザーコントロールと同じ大きさの透明のコントロールを最前面に配置して
その透明のコントロールのMouseHoverイベントを使用したい感じです。

595:デフォルトの名無しさん
07/08/09 12:32:23
>>593
ありがとうございます。
過去ログを探してみます。
よろしければ検索のためのキーワードみたいなものを教えてもらえないでしょうか。

596:デフォルトの名無しさん
07/08/09 12:41:55
>>593
内部のイベントを全て自作のイベント(MouseHoverExみたいな)にまとめて外部に公開するってことですかね。
そうするとやっぱりそのコントロール内でそれぞれのコントロールにマウスを合わせる度に同じイベントが発生
してしまいます。
Clickイベントなどはこの方法で実装しています。

597:デフォルトの名無しさん
07/08/09 12:42:35
>>595
一個前のスレの363以降だね。
っていうか、593のヒントから自分でゼロから考えた方が楽しいぞ

598:デフォルトの名無しさん
07/08/09 12:43:31
>>594
じゃあさ、MouseHoverイベントを使って
何をやりたいのかも書いておいたほうが回答もらいやすいぞ。
君がこれだ!って思う方法が可能とは限らないんだから。

599:デフォルトの名無しさん
07/08/09 12:57:13
>>598
やりたいことはメニュー型のランチャーのサブメニュー項目のようなコントロールです。
使ってない人にはさっぱりかもしれませんがメニュー型ランチャーのOrchisでいう
サブメニューのような感じです。
画像とテキストを含んだユーザーコントロールにMouseHoverすると新しいFormを
Showすると言うような動きがしたいです。

>>597
了解です。
しばらくちゃんと自分で考えてみます。


600:デフォルトの名無しさん
07/08/10 18:19:38
vb2003でGraphicsオブジェクトを使用して画像を合成しています。

単純に合成はできるのですが、乗算で合成したいなぁ、と思って
Graphics.MultiplyTransformなるメソッドを使用してみたのですが
乗算になっているようには見えません。

Photoshopでレイヤーを乗算にして描画される、あのイメージだったんですが
このメソッドで良かったのでしょうか?


g.DrawImage(imgA, rect)

Dim transformMatrix AS New System.Drawing.Drawing2D.Matrix
transformMatrix.Translate(1.0F, 1.0F)
g.MultiplyTransform(transformMatrix, System.Drawing.Drawing2D.MatrixOrder.Append)

g.DrawImage(imgB, rect)


こんな感じでやってます。

601:デフォルトの名無しさん
07/08/10 19:35:40
ドキュメント読めばわかるが、MultiplyTransformはワールド変換のためのメソッド。
つまり座標変換。

System.Drawing.Graphicsというかその基になってるGDI+には色合成処理は用意されてない。
アルファブレンドはできるけど。
ので頑張って自前で実装するしかない。探せば見つかるかもしれないけど。

URLリンク(blog.livedoor.jp)
DelphiのコードだけどGDI+の乗算カラーフィルタのサンプルを見つけた。
参考になるかもしれない。

// そういえばPaint.NETは今どうなってんだろ。

602:デフォルトの名無しさん
07/08/10 19:42:26
そりは変換行列の「積」なんでは?w

レタッチソフトの「乗算」の処理内容を具体的に知らないので抽象的なアドバイスになって
申し訳ないけど、たぶんカラー行列を使うんじゃないかな?(DrawImageのオーバーロードを見るべし)

603:デフォルトの名無しさん
07/08/10 22:38:02
IME制御の質問です

アルファベットしか入力し得ないテキストフィールドなので、そのフィールドでの
入力時はIMEの変換モードを英数に固定しようとして

hWnd = TextBox1.Handle
hIMC = ImmGetContext(hWnd)
If hIMC <> 0 Then
ImmSetConversionStatus(hIMC, IME_CMODE_ALPHANUMERIC, IME_SMODE_NONE)
ImmReleaseContext(hWnd, hIMC)
End If

のようなことをFormのActivate時に実行してみたのですが、指定したフィールドだけでなく、
全ての項目にこの設定が適用されてしまいます。

その項目だけに効果を与えるにはどうすればよいのでしょうか?

604:デフォルトの名無しさん
07/08/10 22:50:04
>>603
MSDNライブラリのTextBoxのメンバ一覧を穴があくまでじっくり読む

605:デフォルトの名無しさん
07/08/10 23:09:33
>>604
お返事ありがとうございます。
ただ、もし ImeMode の事を言われているのであれば、それが使えない環境なので・・・・・・。
そうでないのであれば、ちょっと判りませんでした。


606:デフォルトの名無しさん
07/08/11 00:47:24
>>605
それどういう環境?

607:デフォルトの名無しさん
07/08/11 00:59:18
.NET Compact

608:デフォルトの名無しさん
07/08/11 11:37:08

すみません、教えてください。
Labelコントロールにおいて、現れている文字列を、マウスの操作でクリップボードに
コピーすることは普通はできないと思いますが、もしかしてそういうことができるように
するためのプロパティとかは存在しないでしょうか?

どうしても不可能な場合はボタンかまたはコンテキストメニューでもつけて
クリップボードにコピーするなどは考えられるのですが、テキストボックスと同様に
手軽に使えて、しかも文字列が変更されてしまわないものが望みです。

ちょうど、プロパティ・ダイアログの中のURLなどがそのようにできるものでした。
同様の機能を実現するのには特別なコントロールを自作する必要があるでしょうか?
すみませんがよろしくお願いします。


609:デフォルトの名無しさん
07/08/11 11:47:05
TextBoxでReadOnlyにしたらいいんでないの?
あとはボーダーとか消してラベルっぽくすれば。


610:デフォルトの名無しさん
07/08/11 12:26:22
>>609

おお、TextBox に ReadOnly というプロパティがあったのですね!
わかりました、ありがとうございます!
いろいろ新しくなっているのですね!助かりました。



611:デフォルトの名無しさん
07/08/11 12:33:18
おい大昔からなかったかい?


612:デフォルトの名無しさん
07/08/11 12:43:08
板違いかもしれません。ですが質問します。
C#.NETとVB.NETの違いって何ですか?

調べてみると、(触り程度)
C#.NETにメモリーを切る概念が無くなったと。
だったら、方言とコンパイルの速度だけの違いになりますか?

613:デフォルトの名無しさん
07/08/11 13:56:52
ハァ?

614:デフォルトの名無しさん
07/08/11 13:59:46
メモリー切る機能ってなんだよ

615:デフォルトの名無しさん
07/08/11 14:26:34
俺のおじいちゃんがメモリ確保することを「切る」と言っていたが
21世紀にその言葉を聞けるとは思わなんだ

616:デフォルトの名無しさん
07/08/11 17:57:37
万能動詞、切る
何が何でも切るって言うんだぜ?

617:デフォルトの名無しさん
07/08/12 10:06:08
コンソールアプリケーションの質問です

ReadLineなどで、画面から読み込む文字列を
[******]のようにマスクして、読み込む方法はあるのでしょうか?

すみませんが、よろしくお願いします

618:デフォルトの名無しさん
07/08/12 13:05:52
>>612
VB.NETはリフレクションを使用するコードが勝手に生成されて凄く遅くなることがある
回避はできるからそれさえ注意すれば一緒

619:デフォルトの名無しさん
07/08/13 09:08:53
言語の違いなど飾りです。
PGさんにはそれがわからんとです。



620:デフォルトの名無しさん
07/08/13 10:44:01
つまらん

621:デフォルトの名無しさん
07/08/13 14:16:59
Graphicsクラスで1ピクセルの点をPenを使って書く時って
Graphics.DrawLine(Pens.Black, New PointF(10, 10), New PointF(10.1, 10.1))
のようにPointF使うしかないの?

622:デフォルトの名無しさん
07/08/13 15:21:56
もう少しものの聞き方を勉強しなおした方がいいよ。

623:621
07/08/13 15:33:05
>>622
ごめんなさい。

624:デフォルトの名無しさん
07/08/13 16:24:46
DrawLineはPointFを引数にするものもあるけど、Singleを引数にしているものもあるだろ?
あとなんで1ピクセルが0.1だと思ってるんだ?

625:621
07/08/13 17:38:46
>>624
Graphics.DrawLine(Pens.Black, 10, 10, 10, 10)
だと何も描かれないですし、
Graphics.DrawLine(Pens.Black, 10, 10, 11, 11)

Graphics.DrawLine(Pens.Black, 10, 10, 11, 10)
だと2ピクセル分描かれます。
10.1を指定するときれいに1ピクセル分描かれるのですが。
何かとんでもないトコを見落としているのかなぁ。
もうちょっと調べてみます。

626:デフォルトの名無しさん
07/08/13 17:48:01
ピクセルの操作はBitmap.SetPixel/GetPixelで。
短いラインがどのなんドットなるかなんて、
ディスプレイディバイスの種類が違ったり、
スケールとか座標系いじったりしたら意味ないだろ。

627:デフォルトの名無しさん
07/08/13 18:05:15
>10.1を指定するときれいに1ピクセル分描かれるのですが。
あほすぎて話にならん。
そんなのディスプレイの都合上、1ピクセル分の直線が引かれているように見えるだけだろ。
プログラム上では0.1ピクセルの直線を引いてる。
結果さえよければどうでもいいのか?

説明が面倒なので、答えを書く。
お前が書きたい1ピクセルの点というのは、数学的に言えば「一辺1ピクセルの面」だ。
面を書くのはDrawLineではない。

e.Graphics.FillRectangle(Brushes.Black, 10, 10, 1, 1)

628:デフォルトの名無しさん
07/08/13 18:07:38
>>626
.netじゃ座標や幅の基本単位がピクセルだから関係ないんじゃね?
twipならディスプレイの設定で変化してくるが。

629:621
07/08/13 18:17:21
>>627
もちろんFillRectangleやSetPixelを使うことは知っています。
1ピクセルの点をPenを使って書く時に10.1のように
書くしかないのですかという質問なのですが。


630:デフォルトの名無しさん
07/08/13 18:17:57

.NET2.0用に作成したアプリケーションは、3.0しかインストールしていないWindowsでは
動作しないのでしょうか?


631:デフォルトの名無しさん
07/08/13 18:24:08
ポカーン

632:デフォルトの名無しさん
07/08/13 18:24:52
>>629
1x1のビットマップを作成してDrawImageという手もあるけど
それならまだ10.1の方がスマートな気がする

>>630
3.0は、2.0に一切手を入れずに新機能を追加しただけのもの
MSを信じるなら全く問題ないはず

633:デフォルトの名無しさん
07/08/13 19:13:37
>>629
だからよ、お前はDrawLineの仕様がわかってないって言われてるの。
DrawLineはあくまで座標ペアで指定された2つの点を結ぶ直線を描画するんだ。
「点」ってのは直線じゃないだろう?
Graphics.DrawLine(Pens.Black, New PointF(10, 10), New PointF(10.1, 10.1))
お前のこれは、「見かけ上」1ピクセルの点に見えるだけで、プログラム上じゃ(10, 10)to(10.1, 10.1)の直線なワケ。
お前が厳密に1ピクセルの点を書きたいわけじゃなく、ただ見かけだけそうなってりゃいいや、っていうならそれでいいよ。
ただ、そんなのに甘んじるようなお前は果てしなくセンスが無いってだけだ。

634:デフォルトの名無しさん
07/08/13 19:25:55
Penで点を描くのは確かにおかしいかも

635:621
07/08/13 21:25:54
>>633
すみません。怒らせちゃって。
確かにおかしいんですよ。
僕も通常点を描くだけならFillRectangleで済ますんですが
ただ描画するのは違うクラスでこのクラスはもう変更きかなくて
Penと座標しか指定できないので
困ってたんです。
で、やっとこさ10.1というのを発見してあなたの言う見かけだけ
はできたのですが、他に何かないかなと思った次第でして。
あなたと私はたぶん似ているんだと思います。
私もDrawLineの仕様を言いたいですが、
Penと座標しか指定できない場合、10.1と指定するのことに
甘んじたくなくて質問したんです。
あなたも同じ状況なら他になにかないか探すと思います。


636:デフォルトの名無しさん
07/08/13 21:31:33
そもそもPenと座標しか指定できないのになんで他の方法を探してたの?

637:621
07/08/13 21:32:58
>>632
ありがとうございます。
少し気が楽になりました。

638:621
07/08/13 21:36:12
>>636
他の方法というのは
例えば独自のPenを作成するとか
Penのプロパティにそういうのが指定できるとか
もしあったらと思いまして。
ですのでPenを使って何かないのかなと質問しました。


639:デフォルトの名無しさん
07/08/14 02:14:46
フォームクラス以外のクラスからフォーム上のコントロールを操作したいとき、
My.Forms.Form1.TextBox1.text = "2ch2ch"
とか使う?それとも引数で渡す?
俺はMSがせっかく用意してくれてるんだからMy使うんだけど、みんなはどっち?

640:デフォルトの名無しさん
07/08/14 04:42:20
TreeView や ListView 上の ListViewItem というのは、
Selected 状態と Active 状態とで異なるでしょうか?

Explorer上の TreeView や ListView では、点線でかこまれただけの状態の Item
と、実際に選択されて薄いパープル色あるいはグレーのバックカラーになって現れている
場合の2種類がありますが、それらに対応するものなのでしょうか。



641:デフォルトの名無しさん
07/08/14 04:51:13
はて、Active 状態ってのは一体どのプロパティがどの値になってるのを指すんだ?

642:640
07/08/14 05:21:30
>>641

そうですね、よくわからないんですが、OnItemAvtivated() の Protected メソッドが
動くときのイベントが発生したとき、という意味のつもりでした。

Explorer では「単なる点線囲み状態」 と 「BackColorが色付く状態」 の両方があったので
そういう違いがある2つの状態というものがあって、それが Selected とは別の何かなのかなと
思ったのでした。

そういうもの自体存在しないのでしょうか。

643:デフォルトの名無しさん
07/08/14 09:43:48
OnItemActivate の二つ先に Activation プロパティがある。その解説読んでみ。

> 「単なる点線囲み状態」「BackColorが色付く状態」
ListViewItem にそれぞれ対応するプロパティがある。

TreeView は単一選択なんでこの辺は無関係。

644:デフォルトの名無しさん
07/08/14 09:49:15
>>639
ほんとは引数で渡した方がいい
テキストボックスも直接公開するんじゃなくてForm1にString型のプロパティを定義した方がいい
でもどうせ使い捨てなら別にどうでもいい

645:640
07/08/14 14:15:33
>>643

ご指導どうもです、この 「点線囲み状態」 は ListViewItem の Focused プロパティに
関係ありそうですね。さらにあちこち見て調べてみます。
ありがとうございました!


646:デフォルトの名無しさん
07/08/14 15:07:48
>>627
プププ何コイツ
久々に笑わせられたぜww

>数学的に言えば「一辺1ピクセルの面」だ。

何が数学的だよ1ピクセルはプログラム上は点に決まってんじゃん。www
>e.Graphics.FillRectangle(Brushes.Black, 10, 10, 1, 1)
ちゃんと4ピクセルの面を指定しるじゃん。wwwうぇwww
FillRectangleってのは領域の内側を塗るんだよ。おバカさん
内側ってのは右辺と下辺から1ピクセル分引いた値。w
で結果1ピクセル分だけ塗られているだけだぽwww

直線上にない異なる3点以上を指定しないと面にならないことくらい
消防でも知ってるっつうの。

>一辺1ピクセルの面 プププププww
一番小さい面は3ピクセルの三角形だよwwwwww

ってかムキになってる638はその前に氏ねよwww。

こいつらくだんね。


647:デフォルトの名無しさん
07/08/14 15:15:40
( ゚д゚)ポカーン

648:デフォルトの名無しさん
07/08/14 16:09:05
>>646
>FillRectangleってのは領域の内側を塗るんだよ。おバカさん
>内側ってのは右辺と下辺から1ピクセル分引いた値。w

FillRectangleには下辺の指定とかないんだけど、勝手に定義を変更しているあなたはなんなの?

>e.Graphics.FillRectangle(Brushes.Black, 10, 10, 1, 1)
これは座標(10,10)から始まる幅1高さ1の面ってことだろ?

ってか文章からして釣りだよなw

649:デフォルトの名無しさん
07/08/14 16:14:46
>>635
>僕も通常点を描くだけならFillRectangleで済ますんですが
>ただ描画するのは違うクラスでこのクラスはもう変更きかなくて
>Penと座標しか指定できないので
>困ってたんです。
こういう背景も書かずに、いきなり>>621みたいな聞き方するから、Bitmap.SetPixel/GetPixelやFillRectangleなんて話がでてきたんではないの?

『定義の使用上、通常1ピクセルの直線は描画できないDrawLineで、
1ピクセルの点を描画する方法はありませんか』
とか聞けばいいのに。

650:デフォルトの名無しさん
07/08/14 17:13:09
>>648
>これは座標(10,10)から始まる幅1高さ1の面ってことだろ?
これ読んだら吹いたwww

お前633で「点」ってのは直線じゃないだろう?
って言ってたじゃん。
点は直線じゃないが面になるのかよwww

お前まさか座標のことピクセルとピクセルの間だと思ってないかww
GetPixelでカラー取得できなくなるっちゅうのwwww

Rectangle( 10, 10, 1, 1)ってのは
(10,10)(10,11)(11,10)(11,11)の4点を表すんだよwww
DrawRwctangleやってみろよwwうぇぇぇぇwwww

>1ピクセルの面なんてねぇぇぇよwwうふ


651:デフォルトの名無しさん
07/08/14 18:14:34
>>650
俺は627で「1ピクセルってのは点じゃなくて幅1高さ1の面だ」って言ってるんだが…。
だからこそ1ピクセルの「いわゆる」点を書くのは、面を塗りつぶす
e.Graphics.FillRectangle(Brushes.Black, 10, 10, 1, 1)
だと言うているんだが…?
目に見える「点」なんて存在しないだろ?
お前の言いたい事がてんでわからん。


652:651
07/08/14 18:16:58
>>650
e.Graphics.FillRectangle(Brushes.Black, 10, 10, 1, 1)
ちなみにこれは座標(10,10)だけが塗りつぶされます。
あおる前に試してから書き込め、糞が。

653:デフォルトの名無しさん
07/08/14 19:52:58
どうでもいい

654:デフォルトの名無しさん
07/08/14 19:55:35
>>558

655:デフォルトの名無しさん
07/08/15 11:52:54
VB.NETからエクセルに出力する時の質問です。

データベースの内容をエクセルに出力したいのですが(行は100行×列は10列くらい)、
この場合、VB.NETからエクセルのセルに直接書き込んだ方が早いですか?
それとも、エクセルのマクロを呼び出して、マクロ側でデータベースの内容を
セルに書き込んでいった方が早いですか?


656:デフォルトの名無しさん
07/08/15 12:23:04
後者

657:デフォルトの名無しさん
07/08/15 15:17:28
教えてください。
DataGridViewにて、指定したセルの左上の座標を取得する方法はありますでしょうか?
ありましたらその方法を教えてください。
宜しくお願いします。

658:デフォルトの名無しさん
07/08/15 15:22:30
DataGridViewのメンバに目を凝らすんだ

659:657
07/08/15 15:52:18
>>658
AccessibilityObjectプロパティを利用して解決できました。


660:デフォルトの名無しさん
07/08/15 20:51:23
Windowsフォームで別スレッドからコントロールを操作するには?
(URLリンク(www.atmarkit.co.jp))
引数がない場合、サンプルのように次の書き方でOK。

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  TextBox2.Focus()
 End Sub
 ↓
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 Dim t As New Thread(New ThreadStart(AddressOf worker))
 t.Start()
 End Sub

 Delegate Function FocusDelegate() As Boolean

 Sub worker()
 ' textBox2.Focus()の実行
 Invoke(New FocusDelegate(AddressOf TextBox2.Focus))
 End Sub

次のように引数も渡したい場合、どのように書きなおせばよいのでしょうか?
 Dim dtNow As DateTime = DateTime.Now

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 TextBox2.Text += dtNow.ToString() & vbcrlf
 End Sub
 ↓
 ?

661:デフォルトの名無しさん
07/08/16 09:59:26
文字列のフォーマットについて教えてください。

"abcdefgh" という文字列を "abcd-ef-gh" という風に変換したい場合、
VB6の時は
Format("abcdefgh","@@@@-@@-@@")
で出来ました。
これをVB2005で表現するには、
VB6.Format("abcdefgh","@@@@-@@-@@")
といった風にしかできないのでしょうか?
VB6.Formatを使わずに簡単に上記操作が出来る方法があれば教えてください。

662:デフォルトの名無しさん
07/08/16 10:07:34
SubstringでぶったぎってConcatで繋げればいいよ

663:デフォルトの名無しさん
07/08/16 12:51:09
ToStringメソッドを調べると良いと。

664:デフォルトの名無しさん
07/08/16 13:05:33
TreeViewについて教えてください。

あるノードが、あるノードより上にあるか下にあるか
調べたいのですが簡単にわかる方法はありますでしょうか?

If hogeNode.index > hoge2Node.index Then
End If

ですと階層が同じでないと比較できないので困っています。

よろしくお願いします。

665:デフォルトの名無しさん
07/08/16 13:22:03
上?

666:デフォルトの名無しさん
07/08/16 13:29:26
>>665
ツリーを全展開したときに、より左上にあるものが上といった感じです。

667:デフォルトの名無しさん
07/08/16 13:34:31
TreeNode.Parentを辿って数えれば?

668:デフォルトの名無しさん
07/08/16 13:48:04
右上にあっても上?

669:デフォルトの名無しさん
07/08/16 13:58:41
上位という意味だろ
より親

670:デフォルトの名無しさん
07/08/16 15:34:46
右上も上です。

671:デフォルトの名無しさん
07/08/16 16:02:58
プロパティの質問です。
会社の先輩にクラスのフィールドは必ずプロパティで介せよ!って言われたのですが、
以下のコードのようにmfield1とmfield2の違いがよくわかりません。
mfield1はプロパティ内で入出力操作みたいなことはできるのですが、下のコードのように
特に何もしないプロパティなんて意味あるのでしょうか?こういうプロパティがクラスに沢山あるのですが、正直面倒です。
先輩に聞いたら元請にそう指示されたと言ってましたが・・・
Public Class Class1
  Private mfield1 As String
  Public mfield2 As String

  Public Property Field1() As String
    Get
      Return mfield1
    End Get
    Set(ByVal value As String)
      mfield1 = value
    End Set
  End Property
End Class
確かに以前Javaの引継ぎの仕事で貰ったソースも、getter、setterが無数に書かれてましたが、return とクラスの変数の割り当て以外何もしていませんでした。
いまいち利点がわかりません。

672:デフォルトの名無しさん
07/08/16 16:11:34
>>671
そのうち昔は無駄なことをしていたなぁ
ということになるからそれまでは我慢

673:デフォルトの名無しさん
07/08/16 16:41:00
C#3.0をまて

674:デフォルトの名無しさん
07/08/16 16:55:15
>>671
読み書きの処理をインターセプトして値のチェックや変換ができるというのも利点だが、
そういう処理の必要でない単純なプロパティを含む場合の利点としては
フィールドと違いInterfaceにしたり継承でoverrideできること。
特にリモート呼び出しなどではInterfaceであることは重要になる。

その為プロパティが花盛りなのは事実だが大半が単純な構造のプロパティであることから、
プロパティによるコードの増大を何とかしようとする動きはある。
1.IDEのサポート機能で強引にsetter/getterを大量生産する。
2.基本的な構造のプロパティを簡単な構文で書けるようにする。
3.パブリックなフィールドは自動的にプロパティにする。

1は現状のJavaやらC#で盛ん。
2と3は言語の拡張で対応。次版のVBやC#はこの方向。
3はあまりみないが、VB6のActiveXクラスのパブルックフィールドがこのやり方だった。


675:デフォルトの名無しさん
07/08/16 20:02:10
>660
解決しました。
660の質問は却下します。


676:デフォルトの名無しさん
07/08/16 21:38:41
>>664
nodeにlevelってプロパティがあった様な。

677:デフォルトの名無しさん
07/08/16 21:48:32
質問させてください。
ドラッグアンドドロップのコードを記述してるのですが、
ドラッグ元のオブジェクト名を取得するにはどうすればいいのでしょうか?

VB2005EEを使っています

678:デフォルトの名無しさん
07/08/16 21:54:51
オブジェクト名って何さ
型名? それともひょっとして変数の名前のこと?

679:デフォルトの名無しさん
07/08/16 22:09:06
>>678
picturebox1とかlabel1みたいなクラス?の名前のことです

680:デフォルトの名無しさん
07/08/16 22:14:08
1付きはForm1以外はクラス名じゃなくて変数名だと思うぞ
で、そんなもんは仮の名前なのでとれるわけもないが

結局その名前を使って何がしたいの?

681:デフォルトの名無しさん
07/08/16 22:14:30
おまえ却下てw


682:677
07/08/16 22:24:00
ドラッグ元の画像をドラッグ先の画像にドラッグアンドドロップしたときに
ドラッグ元の画像を非表示にしたかったのですが、ドラッグ元の情報を
どうやって取得したらいいのか分からなかったので質問しました。

683:デフォルトの名無しさん
07/08/16 22:29:25
DoDragDrop の返り値見てドラッグ元側が処理すればいい
ドラッグ元とかドラッグ先とかの状況が分からないから一般論だが

684:671
07/08/17 00:09:30
>>674
ありがとう。とりあえずプロパティにしておくのは間違いではないのですね。
ググルと既にJava界ではgetter setterでいろいろ賛否両論が行われてました(@ITの掲示板はついて行けませんでしたが…)
しかし、オブジェクト指向のソースとか何の為?って思う箇所が多々あって辛い。
周りに詳しい人もいないんで、何を頼りにすべきか…。デザインパターンとかとりあえず目を通した方が良いのかな。

685:デフォルトの名無しさん
07/08/17 10:49:21
質問です。
DataGridViewで、”スクロールバーが現在表示されているかどうか”を取得できるプロパティみたいなものはあるのでしょうか?
それともDataGridViewの高さ(幅)と、表示されている行(列)の高さ(幅)の合計を比較するしかないでしょうか?

686:デフォルトの名無しさん
07/08/17 13:40:41
DataGridViewを継承したコントロールですと、
HorizontalScrollBar.Visible
で判定できるみたいですね。
それでいってみます。

687:デフォルトの名無しさん
07/08/17 15:27:14
Textbox(Multiline)のIMEModeの挙動がおかしいです。

No Control に設定(デフォのまま)してあるのに、実行時に
普通に入力できていたのに突然、カナ入力になったり、
オフ固定になったりします。

フォーカスが、他のアプリなどへ移動して、再度該当の
TextBoxに来た時に症状がおきやすい様ですが、明確な
発生状況の原因は突き止められていません。

ネットで検索した所、似たような症例が見受けられたが、
クリティカルな回避方法が分かりません。

何か良い方法はありませんでしょうか?

688:デフォルトの名無しさん
07/08/17 21:52:19
以下のソースで文字をPictureBox1に描画してるのですが、
この文字を、BMP保存したい場合どうすればいいのでしょうか?

Dim g As Graphics = PictureBox1.CreateGraphics() ' PictureBox1のGraphicsオブジェクトを取得
Dim fnt As New Font("MS 明朝", 20, FontStyle.Bold) ' フォントオブジェクトの作成

g.DrawString("文字をを描画", fnt, Brushes.Blue, 50, 20) ' 文字を描画

'リソースを開放する
fnt.Dispose()
g.Dispose()

689:デフォルトの名無しさん
07/08/17 21:56:53
普段から直接描くんじゃなくてBitmapに描くようにすればいいよ

690:デフォルトの名無しさん
07/08/17 21:57:14
Graphics.FromImage(Bitmap)で取得したオブジェクトに対して描画してBitmap.Save
保存しない場合でもPictureBoxに直接書くよりBitmapに描画してDrawImageの方がいいと思うよ

691:デフォルトの名無しさん
07/08/17 22:04:38
>698,690
うまくいきました、ありがとうございます

692:デフォルトの名無しさん
07/08/17 22:58:20

すみません、教えてください。

TreeView において、+ 印をクリックしたときにも、MouseUp イベントが発生する
のですが、、

それを、Node 本体をクリックしたときと区別する方法はあるものでしょうか?
IsSelected プロパティを見てみたのですが、無関係のようで、どうしたらいいもの
かと思いまして。すみませんがよろしくお願いします。


693:デフォルトの名無しさん
07/08/17 23:13:02
NodeMouseClick とかじゃ駄目か
.NET 1.1 以前なら駄目か、じゃあ HitTest だな

694:デフォルトの名無しさん
07/08/17 23:26:06
>>693

どうもです。

2.0でしたが、NodeMouseClick でもやはり + 印の方でも反応していました。
HitTest でしたか。調べてみます、ありがとうございました!



695:デフォルトの名無しさん
07/08/18 08:47:26
>>692
TreeViewMouseDownで
マウスダウンポイント = New Point(e.X, e.Y)
選択ノード = ツリービュー.GetNodeAt(マウスダウンポイント)
範囲 = 選択ノード.Bounds()
If 範囲.Contains(マウスダウンポイント) Then
 ボディを選択した
Else
 +を選択した
End If

696:デフォルトの名無しさん
07/08/18 12:15:27
>>695

おお!!そうやってやるのですか!!!
すばらしい、どうもありがとうございました!!
助かりました!!!


697:デフォルトの名無しさん
07/08/18 15:07:21
VS2005のIDEですが、ソースコード・エディタ上でマウスであちこちクリックしたり、
検索で移動したり、「シンボルの検索結果」での選択で移動したり、とこれらの操作で
キャレットの位置が変わっていったとき、その位置を復元して逆たどるためのツールボタン
があったと思うのですが、

PCが壊れて、別のPCに変えて同じボタンと思われるものを使ってみたのですが、
同じその機能が働いてくれません。

この機能のボタンはありますよね。なんという名前のボタンかがわかりません。

(試してみたのは、「前の検索結果1の場所へ移動」「前の検索結果2の場所へ移動」
「前の場所へ移動」などですが、これらでは復元しませんでした。ツールボタンの欄で
右クリック->「ユーザー設定」->「編集」を選択->その中のボタンから選択してみました。)


698:デフォルトの名無しさん
07/08/18 15:13:24
そういうのって人に聞くより自分で実際やってみる方が早くないか?

それともIDEのメニューやツールバーのカスタマイズ方法を知らないの?

699:デフォルトの名無しさん
07/08/18 15:56:40
>>697

ですから、それをやってみたと書いていますが・・・。それでもできなかったもので。
           ↓
(試してみたのは、「前の検索結果1の場所へ移動」「前の検索結果2の場所へ移動」
「前の場所へ移動」などですが、これらでは復元しませんでした。ツールボタンの欄で
右クリック->「ユーザー設定」->「編集」を選択->その中のボタンから選択してみました。)


700:デフォルトの名無しさん
07/08/18 17:14:24
進む、戻る、かなんかのボタンだよね
俺も見つかられんのだわw


701:デフォルトの名無しさん
07/08/18 17:14:55
たしかすごい意外なとこにあった記憶はあるんだが…


702:デフォルトの名無しさん
07/08/18 17:46:36
分類:表示 の 一番下のほうにある 戻る か?

703:697
07/08/18 20:36:38
>>702

あー、それでした!!どうもありがとうございました!



704:デフォルトの名無しさん
07/08/20 01:05:24
質問なんですが、フォントスタイルに太字と斜体の両方を
設定した場合に、太字(もしくは斜体)のみを標準状態に
戻す場合のコードってどう書けばいいのでしょうか?

705:704
07/08/20 01:12:05
自己解決しました、お騒がせしました。

706:デフォルトの名無しさん
07/08/20 09:31:20
どれだけ下らなく稚拙な質問でも、同じ疑問を持ってるやつがいるかもしれないから、
自己解決した場合でも、解決法は書くべき。

現在のスタイル-太字
TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Xor FontStyle.Bold)

ちなみに
現在のスタイル+太字
TextBox1.Font = New Font(TextBox1.Font, TextBox1.Font.Style Or FontStyle.Bold)

707:デフォルトの名無しさん
07/08/20 12:31:46
地獄への道は善意で舗装されている、という言葉の意味を706は噛み締めるべきだね。

そういう「善意」は、結局のところ、基礎の理解や自分の頭で考えることをスキップする
「コピペ馬鹿」を生み出すだけだと思うが。

708:デフォルトの名無しさん
07/08/20 13:14:31
>>707
善意から莫迦が産まれるとでも思ってんのか?
莫迦は元々莫迦なんだよ。

709:デフォルトの名無しさん
07/08/20 14:47:18
まあ少なくとも馬鹿を矯正するスレじゃないからね

710:デフォルトの名無しさん
07/08/20 16:43:07
質問答えたらだめじゃんw

711:デフォルトの名無しさん
07/08/20 17:36:01
コントロールを名前で選択するにはどうすればいいのでしょうか。

例えばForm1上にButton1があったとすると、
Dim btn As Button = hoge("Button1")
みたいなことがしたいのです。
ググると、Form上のコントロールのコレクションをFor eachで回して、名前が一致するかどうかで
探すというのは見つけたのですが、名称からダイレクトに選択したいです。

712:デフォルトの名無しさん
07/08/20 18:27:44
またコントロールを名前で選択したいです厨か


713:デフォルトの名無しさん
07/08/20 20:42:55
>>711
>Form上のコントロールのコレクションをFor eachで回して、名前が一致するかどうかで
>探す
という関数を作成すれば
>名称からダイレクトに選択
できますよ。

714:デフォルトの名無しさん
07/08/20 21:01:40
>>711
Form.Controls(string)
やめとけやめとけやめとけやめとけ

715:デフォルトの名無しさん
07/08/20 21:04:12
712じゃないけど(いや712は別に何も言ってないがw)
>>711みたいな「要求」は、ほとんどの場合勘違いの産物だと思うぞ。
ありていに言えば頓珍漢なんだよたぶん。

716:デフォルトの名無しさん
07/08/20 21:49:53
>>711は結局それで何がやりたいのだろう

717:デフォルトの名無しさん
07/08/20 21:53:11
ちゃんと理解してて目的があって使うならいいんだけど
>>711はそれ以外に方法がないと思い込んでるだけだろうな

718:デフォルトの名無しさん
07/08/20 23:06:46
ListView上をMouseでClickしたとき、何かのListViewItemをHitすると
MouseUpイベントが連続して2回立つ、ということはありうるでしょうか?

そういう現象が出て悩んでいました。

下に何もないところをClickしたときはMouseUpは正常に一回しか立たない
のですが、下にItemがあるところをMouseでClickすると、2回連続してMouseUpが
立つのでした。

そのためか、そのListViewItemは、選択された印のBackColorが付かず、
Selected状態になっているのかどうかわからないのでした。

MouseDownイベントを挟まずにMouseUpが2回連続するというのは変だと
思うのですが、どこを通ってきてそうなっているのかわからないのでした。
こういう現象になった方いらっしゃったら何かご指導ください。よろしくお願いします。



719:デフォルトの名無しさん
07/08/21 01:21:52
>>718
ありうるかどうかはdebug.printしてみればわかる。

720:デフォルトの名無しさん
07/08/21 07:53:11
DirextXを使用しているものから色を取得して判定したいのですが
Win32APIのGetPixel等では不可能のようでしたが、何か良い方法は
ないでしょうか。

721:711
07/08/21 09:20:41
>>714さんの方法でできました。ありがとうございました。

やりたいことは、

722:デフォルトの名無しさん
07/08/21 09:59:05
>>719
そうなのです、それをやってみた結果、それがわかったのでした。

MouseUpというのはMouseDownが起きて初めて起こるはずなので、Upだけ
2回連続するというのは、理屈でいけばおかしいと思われました。

しかし、確かにDownを挟まずに、2回通っているのでした。

これは、どこかでDownに準じる何かが起きているが、それがおもてに
現れずにいるというようなことなのか、それとも、どこかまだ不明なところを
経由して再びMouseUpが実現してしまうという構造なのか・・・??

それで、そういったことは起こりうるのか、それが疑問になったのでした。

で、現実にItemが選択状態のBackColorにならない、ということは、その
2回連続しているMouseUpがおきてしまうことと関係があるのだろう、
と推測されたわけでしたが、どなたかアドバイスがありましたらお願いしますです。

723:デフォルトの名無しさん
07/08/21 10:14:55
>>720
DirextXを使用している「もの」って具体的に何
>>722
再現しなかったのでした。
そのListViewItemについて詳しく教えてほしいと思ったのでした。

724:デフォルトの名無しさん
07/08/21 10:19:28
>>723
スルーされるの覚悟ですが、フルスクリーンで動作するゲームです。
DirectXについて詳しくないのですが、普通にSpy++でハンドル調べて
Findwindow等で取得したハンドルを使ってGetPixelしたのですが
駄目でした。

725:デフォルトの名無しさん
07/08/21 10:29:50
普通にGraphics.CopyFromScreenでできない?

726:デフォルトの名無しさん
07/08/21 10:35:20
有り難う御座います。帰ってから試してみます。

727:デフォルトの名無しさん
07/08/21 11:31:28
行列クラスを作ろうとしています。今、
Dim ary(,) As Integer = {{1, 0}, {0, 1}}
Dim matrix As New Matrix(ary)
のようにやっていますが、
Dim matrix As New Matrix({{1, 0}, {0, 1}})
とやることはできないでしょうか。

また、a22 = matrix(2, 2) で a22に1が入るなどとやりたいのですが、
そういうことは可能でしょうか。

Array は Inherits できないようなので、無理なんですかね?


728:デフォルトの名無しさん
07/08/21 11:34:12
>>724
FPSゲームのチートソフトでも作る気かw

729:デフォルトの名無しさん
07/08/21 11:38:29
>>727
>Dim matrix As New Matrix({{1, 0}, {0, 1}})
コンストラクタの引数に配列をとる
>a22 = matrix(2, 2)
既定のプロパティ

730:729
07/08/21 12:00:46
すまん上の方はもうやってたな
Dim matrix As Matrix = New Matrix(New Integer(,) {{1, 0}, {0, 1}})
にするだけ

731:724
07/08/21 13:23:15
>>728
チートだなんてとんでも無い。ちょっとしたマクロ程度です。
>>725も試してみたんですが、上手く使えずWin32APIで
GetWindowDC(0)としてデスクトップ全体のDCからGetPixelしたん
ですが、DirectX(フルスクリーン)だと上手く行かないみたいですね。
今会社なので試せてませんが…。

ググってみると、どうも出来ないという話ばかりありました。

もう何て言うか、他のソフトで窓化してから組んだ方が手っ取り早い
気がしてきました。UWSCのPeekColorなんかだと出来るんですが
どうやって実現しているんだろう…。


732:デフォルトの名無しさん
07/08/21 14:23:02
DirectXとフルスクリーンには、何にも因果関係はないと思うが。

DirectXで描画しているDCを取得しないと駄目なんでないの?

733:デフォルトの名無しさん
07/08/21 14:39:07
WebBrowserコントロール内のドキュメントの反転範囲の取得は可能ですか?

734:733
07/08/21 14:40:27
連レスすいません、「クリップボードの利用は無し」が条件です。

735:デフォルトの名無しさん
07/08/21 14:43:37
>>733
可能です

736:733
07/08/21 14:45:27
>>735
ありがとうございます

737:デフォルトの名無しさん
07/08/21 14:54:33
VB2003で開発しています。

ここで質問していいかわからないので、もし他スレが適切なら
誘導をお願いします。


OSがWin2003Serverでドメインコントローラになっているサーバに
Everyoneでフルコントロールできる共有フォルダがあります。
この共有フォルダに、LANで繋がっているOSがXpHomeEditionのPC
からファイルをアップロードしたりダウンロードしたりするアプリを
作りたいのです。

使用するPCはちょっと特殊なPCでHomeEditionしかプリインストールされていません。
ドライバ類の事を考慮して、OSをProfessionalEditionに乗せかえることは
しません。

クライアントがProfessionalEditionなら問題はないのですが、HomeEdition
なのでサーバの共有フォルダにアクセスしようとすると、ユーザ名と
パスワードを要求されてしまいます。

最初にエクスプローラから共有フォルダを開こうとしてユーザ名とパスワードを
通しておけば次からは要求されないので問題がないのですが、この開発中の
アプリからいきなり共有フォルダにアクセスしようとすると、ユーザ名と
パスワードが通っていないためにエラーになります。

プログラムからユーザ名とパスワードを認証させる方法はありますでしょうか?

738:724
07/08/21 14:55:53
>>732
そうなんですか。すいません。あまり詳しくなくて。。
URLリンク(oshiete1.goo.ne.jp)
この辺みて勘違いしてたかもしれません。

取りあえず、↓みたいな感じの関数で帰ってから試してみます。
有り難う御座いました。

Private Function PeekColor(ByVal x As Integer, ByVal y As Integer) As Integer

Dim ret As Integer

ret = GetWindowDC(0) 'スクリーン全体のデバイスコンテキストを取得
PeekColor = GetPixel(ret, x, y)
ret = ReleaseDC(0, ret) 'スクリーン全体のデバイスコンテキストを解放

End Function

739:デフォルトの名無しさん
07/08/21 15:00:47
>>737
WNetUseConnection


740:デフォルトの名無しさん
07/08/21 15:03:46
>>738
どんなフルスクリーンか知らんが解像度が変更されている場合もあるので気をつけれ
多分デスクトップのDCのピクセル情報はフルスクリーンキャプチャに移るのと一緒だと思うから一回撮ってペイントに貼り付けてみて確認してみるのもいいかも

741:デフォルトの名無しさん
07/08/21 15:16:15
>>737

>ドライバ類の事を考慮して、OSをProfessionalEditionに乗せかえることは
>しません。

これだけの為にProにアップグレードするべきだとは思わんが、一応教えておく。
ドライバはHomeだろうがProだろうが一緒。互換性を心配するのは間違い。

742:デフォルトの名無しさん
07/08/21 17:20:47
VB2005です。
TextBoxで未入力のときに数値の0とみなしたいのですが、次のようなやり方以外に
簡単な方法はありますか?
if textbox1.text.length = 0 then
val = 0
elseif isnumeric(textbox1.text) then
val = cint(textbox1.text)
else
'error
end if

743:737
07/08/21 17:47:49
>>738
さっそくWNetUseConnectionをぐぐってみました。
で参考になるサンプルを見つけたので
URLリンク(64.233.167.104)
真似てやってみたのですが
その関数の戻り値が 487 となり、失敗します。

で、その戻り値を調べたら
ERROR_INVALID_ADDRESS 487 0x000001E7 無効なアドレスにアクセスしようとしています。
とありました。
しかし、そのアドレスは確実に間違っていないはずなんですが・・・。
そのアドレスをエクスプローラのアドレス欄に貼り付けるとちゃんと表示されます。

これ以上はスレ違いでしょうかね?
apiスレに移動したほうがいいでしょうか?


>>741
ドライバの互換性云々というのではなく、ドライバ類がOSの再セットアップ用に
提供されていないという問題なんです。
一応、ハードディスクにはリカバリイメージが格納されているのですが
隠蔽されているっぽいのです。
ドライバCDもなく、webでも公開もされておらず・・・

744:デフォルトの名無しさん
07/08/21 18:14:50
>>743
ヒント:上書きインストール

745:デフォルトの名無しさん
07/08/21 18:33:56
>>742
それで十分簡単だと思われ。

746:727
07/08/21 18:57:05
>>729
a22 = matrix(2, 2) はできました。ありがとうございます。
Dim matrix As New Matrix({{1, 0}, {0, 1}})
の方は、以下のようにしてみましたが、式が必要です
というエラーが出ます。対策を教えていただけないでしょうか。


Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim matrix As new Array2({1, 0})
End Sub
End Class
Public Class Array2
Public elements As Array
Public Sub New(ByVal ary As Array)
elements = ary
End Sub
End Class


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