VB.NET質問スレ (Part19 ..
[2ch|▼Menu]
388:デフォルトの名無しさん
07/02/03 00:23:56
そういう散漫な思考能力丸出しの文章を書く人はプログラマ向いてないと思うよ。

そもそもただ漠然とコントロールって何だよ。
VB6で背景透明にできるコントロールってラベルぐらいじゃなかったか?
だったらそんなの試せばわかるじゃん。それこそ猿でも。

まあどうしてもそんなことがしたいならデスクトップのDCに描画すればいいんじゃない?
くだらないこだわりにしか俺には思えないけど。

389:デフォルトの名無しさん
07/02/03 00:28:00
>>387
点線とハンドルかいてるのはデザイナだろうが

390:デフォルトの名無しさん
07/02/03 00:54:52
VB.NETで作られた有名なソフトご存じ無い?

391:デフォルトの名無しさん
07/02/03 01:03:42
>>388
スレ汚しになりましたね、すみませんね。

いちおう、Region使いながら考えてみてはいるのですが、やはり他のコントロール
が見える状態にはできませんでした。

またVB6でもラベルだけであったとしても、一応できてはいたわけで、
それがVB6が基本的にインタープリターだったから、同にでもなり安いからできた、
というものであれば、それが完全にオブジェクト指向になった.NETではやりにくいのだ、
ということなら、仕方ないですかね。

>>389
ですよね、たぶん。ということは、その点線も○も、他のコントロールにまたがって
その上面に描画できているということは、それはやはりRegionを貼っている特別の
コンロールを使ってやっている、ということなんでしょうか。

とすれば.NETでは本当の意味での透明化コントロールはできない、と考えるべき
なんでしょうか?

392:デフォルトの名無しさん
07/02/03 01:07:59
すまんがまとめてくれないか?質問がわからん。
背景が透けるコントロールがつくりたいのか?

393:デフォルトの名無しさん
07/02/03 01:09:47
>>388
後は、そのおっしゃっている 「デスクトップのDCに描画する」 ということなんでしょうが、
まだ皆目見当が付かないのでやるとしたらうんと大変になりそうですが、また調べてみます・・・

394:デフォルトの名無しさん
07/02/03 01:11:56
>>392
要はそういうことなのですが、、下に別のコントロールがあるときに、
そのコントロールもちゃんと見えるような透け方がほしいのでした。

現状ですと、Formの地が見えるだけで、コントロールは見えてくれない、
ということなのです。

395:デフォルトの名無しさん
07/02/03 01:15:35
そうやって書くからややこしくなる。
透けるとはそういうことに決まってるだろが

396:392
07/02/03 01:16:41
>>394
わかった。
で、UserControlでいいのか?
それともControlを継承してガリガリ書く?

397:デフォルトの名無しさん
07/02/03 01:58:45
>>396
それはもしかして、ここでコードを教えてくださるということでしょうか?
それではあんまりご迷惑を掛けてしまうので、とてもお願いはできません。

ただもしヒントとなる事柄を教えていただければ、また自分で考えてみます。

もしUserControlで出切るとしたら、概略どんなことを知らねばならないのでしょう、
それだけでもありがたいです。

398:デフォルトの名無しさん
07/02/03 02:05:25
新しいタイプの釣り?w

399:396
07/02/03 02:06:50
>>397
じゃ、これで。
URLリンク(www.microsoft.com)


400:デフォルトの名無しさん
07/02/03 02:11:28
>>398
そういうことではないのですが、別法も考えながらやってましたので、
回避して別の手段で乗り切ることもあり得るためでした。

>>396
ちなみに、現在のデザイナー上では、コントロールを移動する際は、
異形コントロールであっても、長方形の外枠全体が非透明状態で
塗りつぶされていました。なので、やはりRegionは長方形で認識されて
いるだと思いました。UserControlにした場合でも、基本的には同じになる
のではないかとおもいましたが、それを透明化する方法というものが
あるのでしょうか?

401:デフォルトの名無しさん
07/02/03 02:13:09
>>399
かぶってしまいました、すみません。

情報、さっそくにすみません。
読んでみます。

402:デフォルトの名無しさん
07/02/03 12:13:32
ああなんだ、別にWin32のGetWindowDCとか使わなくてもSetStyleでできるんだな。
普通に知らなかった。
でもこれ、Win32レベルではどうやって実現してるんだろう。

しかし、コントロールのSetStyleなんか典型だけど、.NETのクラスライブラリって
なんでこれがProtectedなんだ?ってのが結構あるよね。

403:デフォルトの名無しさん
07/02/03 14:34:01
プロパティでラップしようとしてるからな

404:デフォルトの名無しさん
07/02/03 18:40:16
アクセスを極力制限するのはいいことなんだが

405:デフォルトの名無しさん
07/02/03 18:54:08
なんかVBスレらしい間抜けなレスが続くなw
「モノ」が機能を発揮するにあたり、不必要な情報や機能呼び出しは隠蔽したほうが
判りやすさの観点から望ましいのは当然としても、必要な機能まで隠蔽してあるのでは
本末転倒でしょ。

テレビのリモコンに垂直振幅調整ボタンがなくても怒らないけど、
音量調整ボタンがなかったら怒るだろw

406:デフォルトの名無しさん
07/02/03 20:45:59
>なんかVBスレらしい間抜けなレス
=405


407:デフォルトの名無しさん
07/02/03 21:27:55
隠すのは分かりやすさよりも保守管理のため

408:デフォルトの名無しさん
07/02/03 21:34:28
また間抜けなレスを。。
自分の頭で理解して咀嚼したことでなく、
どこかで聞きかじったことを語ろうとするからそういうことになるんだよ。

隠蔽しなかったら保守が大変になるのはどうしてだよ。
それは人間の認識能力が限られているからだ。
つまり、判りにくくなるからだ。

409:デフォルトの名無しさん
07/02/03 21:42:01
405が言ってるのは「ユーザ側のわかりやすさ」
407,408が言ってるのは「クラスの提供者側のわかりやすさ」
ごっちゃにするな

410:デフォルトの名無しさん
07/02/03 21:47:18
そういう物言いはその二つが一致しない場合があるのでなければ意味がない。
で、実際のところどうよ?w
考えるまでもないな。

411:デフォルトの名無しさん
07/02/03 21:48:58
っていうか、仮に一致しない場合があるとして、ライブラリの作者が
ユーザビリティより自分たちにとってのわかりやすさを優先してどうするw

412:デフォルトの名無しさん
07/02/03 23:35:33
隠蔽するか公開するかは、わかりやすいかどうかじゃなくて必要か不要かだろ。
だいたい「わかりやすさ」って何よ。

413:デフォルトの名無しさん
07/02/04 00:11:59
もういいからお前ら消えろ。
けっきょくVBスレらしい間抜けなレスにしやがって

414:デフォルトの名無しさん
07/02/04 00:13:31
正規表現のパターンを複数指定する事は可能でしょうか。

415:デフォルトの名無しさん
07/02/04 00:24:49
>>399
昨日は情報どうもありがとうございました。
教えて頂いたサイトからサンプルをダウンロードしてテストしてみましたところ、
やはり下層のコントロールは見える状態にはなりませんでした。
このSetStyleの方法はすでに試みていたものではあったのですが、
やはり結果は同じものでした。

やはり .NETではVB6でのラベルの透明化と同等の機能はじつげんできない
ように思います。

Regionを多重に切るか、ドーナツのように穴あきにするかすれば、完全に
透けて見える状態になるわけすが、それですとその穴から下のコントロールが
アクセスできてしまうので、透明化ということにはならず、やはり無理、と
思われました。

もしできるという情報がどこかにありましたら、また教えてください。


416:デフォルトの名無しさん
07/02/04 00:30:47
>>415
いったい何が作りたいのか言っちゃえば?
透けて見えるコントロールにアクセスできたら困るってのはUIとしてどうなのかと…

VB6のラベルコントロールはフォームに書いてるだけだし。


417:デフォルトの名無しさん
07/02/04 01:04:50
>>415
頭悪いにもほどがあると思うよ。
背景透明にできたんだから、あとはOnPaintでクライアント領域に
描画するだろ。

418:デフォルトの名無しさん
07/02/04 01:10:41
まぁそう言うな

419:デフォルトの名無しさん
07/02/04 01:40:50
ランダムに文字列を表示させたいのですがどうすればいいでしょうか。

420:デフォルトの名無しさん
07/02/04 01:53:40
>>419
もうちょっと詳しく説明しろよホントに・・・

Dim message As String() = {"もうちょっと", "詳しく", "説明しろよ", "ホントに・・・"}
Dim rand As Random = New Random(DateTime.Now.Millisecond)
Label1.Text = message(rand.Next(4))


421:デフォルトの名無しさん
07/02/04 02:48:09
>>414
意味が分からん
取りあえず二回 Match させりゃ良いんじゃね 並列か直列か知らんが

422:デフォルトの名無しさん
07/02/04 02:49:35
なんで具体的に説明しないのかね?

423:デフォルトの名無しさん
07/02/04 03:00:29
初心者スレが機能してないから流れてきてんだろ・・・

424:デフォルトの名無しさん
07/02/05 12:11:47
以前はデバッグ時に一時停止してのコード変更が可能だったのに、
どこかのタイミングからか、コードウインドウのタブ耳にロックのマークが現われ、
デバッグ実行中の一時停止でコード変更ができない状態になってしまいました。

これを解除してまたコード変更可能な状態にしたいのですが、
方法が見つけられずにいます。すみませんがこれについて教えてください。

425:デフォルトの名無しさん
07/02/05 12:35:26
デフォルトのコンストラクタで作成するDictionaryのキーに
EnumとかIntegerって使える?

やっぱり面倒でもIEqualityComparer実装したクラスを別に作らないと駄目なんだろうか?
今日午前中MSDNその他いろいろ読んでみたがどうもよくわからない。

Dictionaryのこの辺の話題を掘り下げてるところってどこかないかなあ。。

426:デフォルトの名無しさん
07/02/05 13:18:32
普通に使えるでしょ。

Dim foo As Dictionary(Of Integer, Object) = New Dictionary(Of Integer, Object)

427:デフォルトの名無しさん
07/02/05 15:13:54
自分が/t:winexeでコンパイルされてるかどうかの判別はどうすればできますか?

428:デフォルトの名無しさん
07/02/05 18:42:51
>>426
いや、そういう意味じゃなくてw
当然使っても安全かどうかって意味ですよ。

IEqualityComparerを渡さないコンストラクタを使った場合、
DictionaryはKeyオブジェクトのGetHashCodeを間接的に呼び出すはずだけど、
MSDNライブラリによれば値型のGetHashCodeで得られる値はハッシュとして機能しないとあるから。

429:デフォルトの名無しさん
07/02/05 19:01:03
Dictionary は、キーが同じであるかどうかを確認するための等値比較の実装を必要とします。
comparer パラメータを受け付けるコンストラクタを使用して、
IEqualityComparer ジェネリック インターフェイスの実装を指定できます。
実装を指定しない場合は、既定のジェネリック等値比較演算子である EqualityComparer.Default が使用されます。
型 TKey が System.IEquatable ジェネリック インターフェイスを実装している場合は、
既定の等値比較演算子でその実装が使用されます。

<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Structure Int32
Implements IComparable, IFormattable, IConvertible, IComparable(Of Integer), _
IEquatable(Of Integer)

430:デフォルトの名無しさん
07/02/05 19:08:05
等値検査の話じゃなくて、ハッシュの話をしてるんですが。。。

431:デフォルトの名無しさん
07/02/05 19:21:06
>>430
> IEqualityComparerを渡さないコンストラクタを使った場合、
> DictionaryはKeyオブジェクトのGetHashCodeを間接的に呼び出すはずだけど、
これは本当か?

432:デフォルトの名無しさん
07/02/05 19:22:34
>>431
確証はないんですが、MSDNライブラリのEqualityComparer.Default のくだりに
それっぽいことが書いてありますよ。

433:デフォルトの名無しさん
07/02/05 19:23:32
というか、仮にもハッシュテーブルなんだから何らかの形でハッシュは使うでしょう

434:デフォルトの名無しさん
07/02/05 20:55:55
>>430
当然、コリジョン対策はしてある。
Reflectorでソース追ってみなよ。

435:デフォルトの名無しさん
07/02/05 20:58:06
>>428
ハッシュが衝突して安全でないってどんなしょぼい実装や

436:425
07/02/05 21:07:46
>>434-435
生半可な知識しかないんで偉そうなことはいえないんですが、
なんか勘違いしてません?

「コリジョン対策」というのは、違うキーに対して同じハッシュが
生成されることへの対策でしょう。

等価のキーのハッシュが異なる場合はこの限りではないはず。

437:デフォルトの名無しさん
07/02/05 21:08:01
>>431
それは本当。

Int32はIEquatable<Int32>を実装してるから、
EqualityComparer<Int32>.DefaultはGenericEqualityComparer<Int32>のインスタンスを返す。
で、GenericEqualityComparer<Int32>.GetHashCode(Int32)は、Int32.GetHashCode()を呼んでる。

ハッシュが衝突した場合、IEqualityComparer<T>.Equals(T,T)が呼ばれるが、
GenericEqualityComparer<Int32>.Equals(Int32,Int32)の実装では、Int32.Equals(Int32)が使われている

438:デフォルトの名無しさん
07/02/05 21:14:45
>>436
等価なオブジェクトは等しいハッシュを生成しなければならないよ。

参照型であれば、Object.GetHashCodeに丸投げすることができるけど、
値型の場合はその条件を満足するようにGetHashCodeを実装しなければならない。

URLリンク(msdn2.microsoft.com)(VS.80).aspx

439:デフォルトの名無しさん
07/02/05 21:16:16
>>436
同じ入力値に対して異なる結果がでるのはハッシュ言わんがな

440:425
07/02/05 21:24:18
>>438
つまり、それを総合するとEnumやIntegerはそのままではキーとして使えない、
という結論なんでしょうかやっぱり?

441:デフォルトの名無しさん
07/02/05 21:27:35
>>440
なんでそうなるかなあ。。。

少なくともmscorlibやその他の標準ライブラリで定義されている構造体はGetHashCode()を適切にオーバーライドしてあるよ。

442:デフォルトの名無しさん
07/02/05 21:29:17
>>440
心配なら逆コンパイルして確かめてみればいいんじゃないの

443:425
07/02/05 21:33:58
>>441
そうなんですか。

>>442
いやそこまでの能力ないヘッポコなもんでここで質問させてもらってる訳でして。。

444:デフォルトの名無しさん
07/02/05 21:37:03
ファイルを読み込む際、文字エンコードを自動判別する方法はありますでしょうか

445:デフォルトの名無しさん
07/02/05 21:39:38
GoogleMapの座標を取り込みたいのですが、どこかにいいサンプルありませんか?


446:デフォルトの名無しさん
07/02/05 21:40:35
>>444
mlang.dll, IMultiLanguage2, DetectInputCodepageあたりでググってみ。

447:デフォルトの名無しさん
07/02/05 21:57:24
>>446
ありがとうございました

448:デフォルトの名無しさん
07/02/06 00:34:51
>>444
adode.streamのcharset="autodetect"や"_autodetect"なんてのも

>>427のほうもよろしくお願いします
exeヘッダを読まずにできませんか?

449:デフォルトの名無しさん
07/02/06 03:02:16
>派生型の GetHashCode メソッドを呼び出した場合、戻り値はハッシュ テーブル内のキーとしての使用には適していない可能性があります。
派 生 型 の
ちゃんと嫁。
ここでいう派生型ってのはつまり自分で作成した値型ってこと。
自作じゃないやつはMSDN見ればちゃんと適切に実装されていることが分かる。
ついでに、適切でないってのは、同値条件が不明だからってだけで、
同じビットイメージなら同じ結果になったはず。


450:デフォルトの名無しさん
07/02/06 08:22:32
>ここでいう派生型ってのはつまり自分で作成した値型ってこと。
おいおいw
それは日本語の読解としておかしいよ。
すくなくともこの文章にそんな含意はないでしょう。

もちろん他にそういう意味の記述があれば話は別だが、
調べた限り見当たらないんだよね。
だから>>425のとおり質問させてもらったわけで。

>>443では一応納得したふりをしたけど、本当はそんな確証はどこにもないと思う。

451:デフォルトの名無しさん
07/02/06 10:17:53
ああ、言い間違い。
組み込みじゃない型のこと。

452:デフォルトの名無しさん
07/02/06 10:35:21
派生型では適しないの意味を理解してないだろ。
既定の実装では全メンバが反映されるんだったような気がする。
もちろん派生型でこれが適しない可能性はある。
が、組み込み型では正しく動作するようになってる。
列挙は整数型と同じだから問題なし。

453:デフォルトの名無しさん
07/02/06 10:56:01
>>450
つまり組み込み型でも値型のハッシュは使えないとお前は言いたいのか?
んなわけあるかぼけ

454:デフォルトの名無しさん
07/02/06 11:18:28
別function内で起きたエラーもtry〜catch文で拾えるんでしょうか?
どこら辺探れば理解できるかヒントでいいのでお願いします

sub main
try
if func_test then
label1.text = "true"
else
label1.text = "false"
end if
catch
label1.text = "exception error"
end try
end sub

function func_test() as boolean
〜〜〜〜〜
ここで例外エラー
〜〜〜〜〜
return true
end function

455:デフォルトの名無しさん
07/02/06 11:54:39
>>454
別Functionから例外投げればいいんじゃない?

456:454
07/02/06 12:21:48
>>455
ありがとうございます
出来ればmain内でエラーを拾いたいのです

今は拾えない前提で、func_testの部分を関数化せず
if func_test then の部分が出て来る度にtry〜catchで囲ってました。

457:デフォルトの名無しさん
07/02/06 12:25:58
>>452
派生型に「組み込み型は除く」なんて含意があるわけないでしょw
単に「〜から派生した型」、「〜を継承した型」という以上の意味があるはずがない。

ちなみに>>449の説明はObject型の説明でしょう。
.NETでは全ての型はObject型からの…まああとは言うまでもないね。

458:デフォルトの名無しさん
07/02/06 12:26:44
func_test内でtry〜catchしてなかったら外側で例外拾えると思ってた

459:デフォルトの名無しさん
07/02/06 12:45:34
>>457
お前思い付きで物言ってんだろ、話にならん。
objectじゃなくてValueTypeの説明の話だし、
Int32とかそれぞれの組み込み型のメソッドの説明に載ってる。
つまりきちんとオーバーライドされてる。
ちゃんと読めや。


460:デフォルトの名無しさん
07/02/06 12:52:18
もうお前ら消えていいよ

461:427
07/02/06 14:40:33
同じソースで、/t:exeならConsole.Writeで、
/t:winexeならMsgBoxかMessageBox.Showで出力しようとしても、
Console.Writeが/t:winexeでNOPになるだけで判別できないのです。
なにか方法ありませんか?

462:デフォルトの名無しさん
07/02/06 15:31:47
>>450
お前ArrayListが単純な配列とか有り得ない、
可変長配列は連結リストとかで作るのが常識みたいなこと
ほざいてたやつじゃねーか?w


463:デフォルトの名無しさん
07/02/06 16:11:44
馴れ合いなら、どこかよそでやれよ。

464:デフォルトの名無しさん
07/02/06 16:26:37
for each文で、配列の何番目の要素なのか簡単に取得する方法ってありますか?

465:デフォルトの名無しさん
07/02/06 16:27:32
ない

466:デフォルトの名無しさん
07/02/06 16:28:49
馴れ合いってそういう意味だっけか?

467:デフォルトの名無しさん
07/02/06 16:31:41
>>465
ありがとう

468:デフォルトの名無しさん
07/02/06 18:51:23
>>459
なるほど、ValueTypeの説明には明示的ではないにしろ、
キーにつかっても安全と取れる記述があるね。
>>449がはっきり「ValueTypeの説明にこうある」と書いてくれれば
いらん「誤解」は避けられたのに。

まあ、一応レスはありがとう。
でも君ごときにお前呼ばわりされるいわれはないよ。

469:デフォルトの名無しさん
07/02/06 19:10:14
2ちゃんでは二人称はお前がデフォだろうが

470:デフォルトの名無しさん
07/02/06 19:11:48
放っておけ

471:デフォルトの名無しさん
07/02/06 19:51:28
>>468
MSDNのメソッドの説明部分にもろ書かれてることを、
どこにも載ってないと言ってみたり、
最初からValueTypeの話で始まってるのに
勝手にobjectの説明だと決めつけたり
まあおめでたいやつだ。
誤解する方がおかしい。


472:デフォルトの名無しさん
07/02/06 19:55:31
ついでに言っとくがobjectのハッシュ実装の方こそ、
既定のハッシュ実装としては使えない。
これは確か明記されてなかったか?


473:デフォルトの名無しさん
07/02/06 20:30:29
>MSDNのメソッドの説明部分にもろ書かれてることを
ごめんこれ具体的にどこのこと言ってるの?
真面目にわからないから教えて欲しい

474:デフォルトの名無しさん
07/02/06 21:27:44
そっちが期待してる「書かれてる内容」とは違うと主張するのかもしれんが
Int32.GetHashCodeとかとにかく
組み込み型のGetHashCodeはみんなドキュメントあるだろ。


475:デフォルトの名無しさん
07/02/06 21:30:18
それとも具体的にハッシュとして使えると明記されてないから
こんなのは信用できないってか?

476:デフォルトの名無しさん
07/02/06 21:52:09
>>475
えーっと、それはプログラマとして当然の姿勢だと思いますが。。。

477:デフォルトの名無しさん
07/02/06 22:00:52
だったら何も使うなよ。
常識のレベルってもんがあるだろうが。
あの説明で具体的に何を疑うわけ?

478:デフォルトの名無しさん
07/02/06 22:04:07
つまりCLR組み込みの例えば整数型は
わざわざハッシュメソッドをオーバーライドした上で
しかもドキュメントにはこのインスタンスのハッシュコードを返すと書きながら
それを正しく実装していないと疑ってるわけだな?



479:デフォルトの名無しさん
07/02/06 22:06:00
やっぱりArrayListの列挙が順番通りなんて
とても信用できない、有り得ない君か?

480:デフォルトの名無しさん
07/02/06 22:10:42
初歩的な質問ですみません。
勉強がてらソフトキーボードを作っています。
例えばフォームのボタンをクリックしたら、他のアプリのテキストボックスに
文字などを表示するには、どうしたらいいんでしょうか?

481:デフォルトの名無しさん
07/02/06 22:12:49
そんなに熱くなる理由がさっぱりわからん。
不確かなことに依拠しない、なんてことはエンジニアだけでなく、
あらゆる仕事の基本だと思いますが。

482:デフォルトの名無しさん
07/02/06 22:14:38
Vista挿入した香具師居てるンですかどうなんですかブビの運命やいかに

483:デフォルトの名無しさん
07/02/06 22:29:05
デタラメばっかり言って人の言うことを全く信用しないからだ。
何のためにここに書き込んだわけ?
お前は誰が何を言っても信用しないのに

484:デフォルトの名無しさん
07/02/06 22:31:50
お前は疑うところがずれてんだよ。

485:デフォルトの名無しさん
07/02/06 22:34:06
>>480
何が分からないか具体的に

486:デフォルトの名無しさん
07/02/06 22:35:54
>>483
やっぱりそういう受け取り方をする人なんだね。
今日日増えたなこういうパーソナリティの人間。。

冷静に。
「信用できない」、「不確か」という言葉は君という人格に向けられた物じゃない。
君を信用できないとか誰が信用できないとかそういう問題じゃないんだよ。

大人ならそれぐらいわかるでしょ。

487:デフォルトの名無しさん
07/02/06 22:45:21
じゃあMSDNでいいよ
書かれてると言っても
書かれてることを読んでも
信用できないんだろ。
ただ、ここで言われたんじゃなく、自分で見て読んだなら
そこまで疑った反応するわけないんじゃないのか?
本当にMSDNに書かれてる内容をそこまで疑ってしか見られないんじゃ
とても開発なんて出来ないよ。

俺には何が疑わしいのか理解できないからな。


488:デフォルトの名無しさん
07/02/06 22:49:37
まあ、人が作ったものが信用できないなら自分で作ればいいだけだが
それで仕事になるかどうかは知らんが

489:デフォルトの名無しさん
07/02/06 22:50:38
わるいがわざわざ2チャンで冷静に見えるように書き込む必要を感じない。
携帯で丁寧な文は面倒なんだよ

あと内容で反論出来なくなたっらメンタリティとか、どうでもいいんだよ。
どこが疑わしいのかはっきり書け。

っていったらプログラマとして当然か、
悪いが全然当然じゃない。
よっぽどうがった見方しないと疑う余地がない。


490:480
07/02/06 22:52:25
>>485
レスありがとうございます。
フォームのボタンをクリックするとフォーム内の
仮に置いたテキストボックスに文字を表示する事はできました。
わからないのは、フォームではないアプリの入力欄に打ち込む方法です。
どんな設定やメソッド?を使えばいいのか見当がつかない状態です。

491:デフォルトの名無しさん
07/02/06 22:52:27
うがった見方ってのは、MSがわざわざ嫌がらせで
罠をはった実装を行った、くらいのレベルだ。

492:デフォルトの名無しさん
07/02/07 00:08:08
ちなみにInt32のGetHashCodeの実装は
自分自身の値を返す、だ。



493:デフォルトの名無しさん
07/02/07 00:23:03
ぶも。
最近@ITのVB記事がひどいでつ。


494:デフォルトの名無しさん
07/02/07 00:40:41
使用者のレベルに合わせてるだけでつ。

495:デフォルトの名無しさん
07/02/07 01:36:57
>>490
SendMessageでWM_KEYDOWN/WM_KEYUPメッセージを送るといい

496:デフォルトの名無しさん
07/02/07 10:12:08
配列の記事はまたひどいぶぶんがあるな。
なんかVBプログラマって感じだ。

497:デフォルトの名無しさん
07/02/07 15:05:35
質問です。

VB.Net2003でクラスライブラリを作成しています。

自作でクラスライブラリを作成することはできています。
できたDLLを別のVB.Netプロジェクトから参照して使用するのですが、
プログラミング時にインテリセンスで自作DLLの関数の説明を表示させるには
どのようにすればいいでしょうか?

System.ComponentModel の Description で自作プロパティを修飾したら
プロパティグリッドに説明が表示されますが、
自作関数に Description を使用してもインテリセンスには表示されません。
何を使って修飾すべきなのでしょうか?

498:デフォルトの名無しさん
07/02/07 15:20:12
ドキュメントコメント
xmlのやつ

499:デフォルトの名無しさん
07/02/07 15:21:51
ってVBか。
アドイン使わないと出来なかったな。
dll参照なら確かアドインでxml作れば出来たと思う。

500:497
07/02/07 15:44:31
ドキュメントコメントでググってみました。
VB2003では標準ではできないっぽいですね。

Imports System.ComponentModel
<Description("ほげ")> _
Public Function Hoge() As Stirng
  'なんたらかんたら〜

みたいにお手軽にできるものならやろうと思っていたんですけど。
VBCommenterとかのアドインがあるみたいですね。

まぁそのうちにVS2005に移行する予定なので今は我慢しておきます。

情報提供ありがとうございました。

501:480
07/02/07 17:14:26
>>495
ありがとうございます。調べて試してみます。

502:デフォルトの名無しさん
07/02/07 22:59:53
色々調べたのですが判らず、恐縮ですが教えていただけるとありがたいです。

Excel2003 VBAでは、
Application.OnTime TimeValue("17:00:00"), "my_Procedure"
のように、簡単に、指定した時刻に処理を行うことが出来るのですが、

VB.NETでは、
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

'処理

End Sub
のように、指定時刻から現在時刻を引き、それをTimerのインターバルに設定して、指定時刻に処理を行う
方法が良いのでしょうか?

503:デフォルトの名無しさん
07/02/07 23:02:30
0.5秒ごとに指定時刻と現在時刻を比べるといい
なあに大した負荷ではない
むしろその方が誤差は少ないじゃないか

504:デフォルトの名無しさん
07/02/07 23:36:44
>>503
なるほど。力業の感じを受けましたが、VBAとは違ってそのような処理は軽いんですね。ありがとうございました。

505:かのん ◆Ry3ufnjL32
07/02/08 00:09:26
VB2005のRichtextにおいて、マウスカーソルはRichtextboxがもともと持っているにもかかわらず、
フォームエディタで設定されたCursorで上書きされてしまいます。そのため、画像のサイズ変更ハンドル
などが表示されません。

フォームエディタで設定されたCursorを表示しないようにして、もともとRichtextboxコントロールが持っている
マウスポインタを表示させたままにすることはできますでしょうか(いろいろやってみたのですが、
カーソルが点滅して使い物になりませんでした。)。よろしくご享受ください。

506:デフォルトの名無しさん
07/02/08 13:52:44
アップロードするプログラムを作るためにソケットを使おうと思うんですが
Private sc As New Sockets.Socket( _
Net.Sockets.AddressFamily.InterNetwork, _
Net.Sockets.SocketType.Stream, _
Net.Sockets.ProtocolType.Tcp)

を数回使ったりするプログラム方法ってありますか?
打開策が見いだせなくて死んでますOTL

507:デフォルトの名無しさん
07/02/08 21:22:38
式のウオッチで、式の値が変化したときに停止(ブレーク)する、の設定は
どのようにするのでしたっけ?前にやったような気がするんですが、
またやろうとしたらメニューのどこを見てもそれらしいのがなく、Help見ても
出てきませんです。困りました。。。

508:デフォルトの名無しさん
07/02/08 22:29:12
>>506
数回使うという意味が分からん

509:デフォルトの名無しさん
07/02/09 02:09:48
VB2005でlzhファイルを解凍したいのですが、うまくいかなくて弱っています・・・
どう修正したら良いのでしょうか?

Public Class Form1

Public Declare Function Unlha Lib "unlha32" _
(ByVal hWnd As Long, ByVal szCmdLine As String, _
ByVal szOutput As String, ByVal dwSize As Long) As Long

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim Lzhfilename As String
Dim Outdir As String
Dim Meltopt As String
Dim result As Long '戻り値 (成功:0 失敗:エラーコード)

'ディレクトリ指定 & 解凍オプション
Lzhfilename = Chr(34) & "C:\Documents and Settings\My Documents\My eBooks\Book.lzh" & Chr(34)
Outdir = Chr(34) & "C:\Documents and Settings\My Documents\My eBooks\" & Chr(34)
Meltopt = "e " & Lzhfilename & " " & Outdir
result = Unlha(Me.hWnd,Meltopt, "", 0)
If (result <> 0) Then MsgBox "Error/Warning : 0x" & Hex(result)

End Sub

End Class

510:デフォルトの名無しさん
07/02/09 02:37:34
>>509
URLリンク(dobon.net)

511:デフォルトの名無しさん
07/02/09 09:57:20
>>510
できませんでした。

512:デフォルトの名無しさん
07/02/09 12:06:40
.NETで既存のExcelファイルを開きマクロを操作(実行)するには
どう記述したら良いのでしょうか?

513:デフォルトの名無しさん
07/02/09 12:26:28
VB.NETでExcelVBAのマクロを動かす方法は??
URLリンク(homepage1.nifty.com)
URLリンク(hanatyan.sakura.ne.jp)

MicroSoft Excelを起動(既存のファイルを開く)
URLリンク(www.bcap.co.jp)

Visual Basic .NET からオートメーションを使用して Office マクロを実行する方法
URLリンク(support.microsoft.com)

514:デフォルトの名無しさん
07/02/09 12:31:41
>>508

複数のファイルをアップロードしようと思うんです。
今はソケットを大量に作ってますOTL

515:デフォルトの名無しさん
07/02/09 14:19:10
>>512
.NETでExcelなどのCOMを扱うのは参照の解放漏れ対策で苦労するので、
VB6やWSHでやったほうが楽なのでは?

516:デフォルトの名無しさん
07/02/09 16:40:11
ちょっとこういうことできるか聞きたいんだが

【開発環境】VB.NET2003

あるラベル(長さは文字数が違っても一列で表示したい)を動的に縦に並べて作成する。
その横にテキストボックス(サイズは固定)を配置

で、ここでテキストボックスのLeftを揃えたい
ただし、ラベルの文字の長さは変わる

こういうことは出来るんだろうか・・・
結果的に↓みたいな感じにしたい

LABEL1AAA | TEXTBOX1
LABEL1BB | TEXTBOX1
LABEL1C  | TEXTBOX1

ずれてたらすまんが | が縦に並ぶようなイメージ
もし、こんなので出来るよって人いたらお願いします。

517:デフォルトの名無しさん
07/02/09 16:45:38
一番長いラベルが収まる幅を確保すればいいだけではないの?
Measurestringとか。

518:デフォルトの名無しさん
07/02/09 17:01:55
>>517
まさにその通りだったんですが
Graphics名前空間にこんな便利なのがあるとは・・・

これで計算した大きさにラベル合わせていけば問題なくいけそうです!!!
ありがとうございました!

519:デフォルトの名無しさん
07/02/09 18:41:34
んなことわざわざしなくてもラベルのサイズってAutoにできたような。。。

520:デフォルトの名無しさん
07/02/09 18:57:07
質問よく読めよ・・・

521:デフォルトの名無しさん
07/02/09 20:28:19
ちょっと教えてください

ユーザーコントロールを作成しました。

このコントロールは System.Windows.Forms.UserControl を継承していますが
ListViewのように常時スクロールバーを表示する機能は標準で実装されていないようです。

そこで、ListViewのように常時このコントロールにスクロールバーを表示させたいのです。
(ただし、スクロールできない場合は、グレーで操作不能)
こういう実装は可能なのでしょうか?

ググってみたのですが、どうもこういう質問は見当たらなかったもので・・・

522:デフォルトの名無しさん
07/02/09 20:33:14
>>514
一気にパケット送って一気に元に戻しちゃぁいけないの?

523:デフォルトの名無しさん
07/02/09 21:07:53
>>521
HorizontalScroll, VerticalScrollはどう?

524:デフォルトの名無しさん
07/02/09 21:14:24
>>523
折角お答えいただいたのに申し訳ない
FrameWork2.0ならそれでいけるのですが、
現在の環境はFrameWork1.1 SP1(細かく忘れましたがとにかく最新です。)
になっているんです。

確認してみたのですが見当たらなかったので・・・

環境書き忘れごめんなさい。

525:デフォルトの名無しさん
07/02/09 21:19:10
>>524
あーそれじゃあ

VScroll, HSrollってprotectedなプロパティがあったと思うから、
オーバーライドしてやればどうかな

526:デフォルトの名無しさん
07/02/09 21:21:29
あっと、
オーバーライドじゃなくて、普通に設定するだけでいい。
AutoScrollをfalseにするのを忘れずに。

527:デフォルトの名無しさん
07/02/09 21:51:39
>>525>>526
度々のレス、ホントありがとうございます。

んっと どうもそのプロパティは基本的に表示可能かどうかを示す値なような・・・
というわけでBooleanなので設定試してみましたがムリでした。(AutoScrollはFalse)

最初の説明を見直してみてちょっと修正したいと思ったんですが

ListBoxコントロールのScrollAlwaysVisibleプロパティ

ズバリコレと同じ事をユーザーコントロールで実装したいと思っていただければ
自分でそのあたり実装しなくてはいけないんでしょうが何をベースにしていいのやらがまったく・・・・

528:デフォルトの名無しさん
07/02/09 22:03:21
>>527
VScrollBar コントロールをそのUserControlに張り付けりゃいいんじゃねーの?

529:デフォルトの名無しさん
07/02/09 22:16:18
>>527
となると、SetScrollInfoをP/Invokeかなあ
他の処理も自前でやらないといけなくなりそうだが

530:デフォルトの名無しさん
07/02/10 00:04:52
貴重な意見ありがとうございます。

>>528
そうなると自前で書く部分が相当増えそうなきがして。。。
コントロールの移動とか(;´∀`)

>>529
ちょっとそれでググたりしてやってみることにします。
実際、コントロールの機能にないものを実装することがなかったので・・・
かなりきついとは思いますが(;´∀`)


531:デフォルトの名無しさん
07/02/10 00:33:30
親亀の上に子ガメをのせて孫亀乗せればいいじゃないか

532:デフォルトの名無しさん
07/02/10 01:15:31
とりあえずやってみました。

>>528の方法をまず試してみた
中にあるコントロールのサイズが大きいときだけEnable=Trueにして
期待通りの動作はしたけれど問題はVisualStyleですね。

次は>>529のを次試してみることにしよう



533:デフォルトの名無しさん
07/02/11 19:09:57
誰か>>507教えてください。よろしく

534:デフォルトの名無しさん
07/02/11 22:56:23
質問です

他の方がC#で作ったというDLLをもらってきて、
自分のVB2005で参照追加して使っているのですが、
できたプログラムをIDE上のデバッグモードで走らせるときは、期待通りの結果が得られますが、
ビルドしてできたEXEを実行しても結果がデバッグモードの時と違ってしまいます。

具体的にはDLLに含まれるある関数の戻り値が、ビルドしたEXEファイルでは必ず0になってしまっているようです。
他に特にエラーを吐くわけでもなく、DLL内のクラスのインスタンスを作ったり、関数を呼ぶこと自体はできているようです。

このようにデバッグ時とビルド後で結果が違ってしまう場合の原因ってどんなことが考えられるでしょうか?

ちなみに、環境はWinXP Pro(SP2) + VB2005 ExpressEditionです

535:デフォルトの名無しさん
07/02/11 23:13:08
>>533
2003になったとき、しばらく探してあきらめたような覚えがある。
ぶっちゃけ無くなっちゃったと思ってる。

536:デフォルトの名無しさん
07/02/11 23:21:06
VB6とかいうインタプリタの時代の機能じゃねえの?

537:デフォルトの名無しさん
07/02/11 23:25:29
>>534
関数?

作者に聞くしかないんじゃね?
// とか言いつつ実は漏れだったらどうしようw

538:534
07/02/11 23:48:34
>>537
>関数?
すみません、書き方が悪かったです。
正確にはDLLに含まれるクラスの中のメソッドです。

「A.DLL」のなかに 「B」というクラスがあって、そのクラス内にFunction C() As Double というメソッドがあったとして、
Dim Test As A.B = New A.B
MsgBox(Test.C().Tostring)
というコードを実行したとき、デバッグモードでは0でないある数値が表示されるのに、ビルドした後だと必ず0が表示されてしまうのです。

やっぱり作者に聞くしかないですかね・・・

539:デフォルトの名無しさん
07/02/12 01:18:45
Form3_Loadで、もしForm1からForm3へ移動してきた場合は真
Form2からForm3へ移動してきた場合は偽を返す
・・・みたいなこと出来ますか?
もし出来るのでしたらヒントかソース教えていただけると嬉しい。

540:デフォルトの名無しさん
07/02/12 01:25:58
>>538
デバッグ時とリリース時で挙動が違うときは最適化を疑う

>>539
「移動してきた」の意味が分からん。
直前にアクティブだったってこと?
それとも各フォームからShowされたってこと?

541:539
07/02/12 01:30:50
フォーム1,2でこのソースを使って3へ移動しています
If frm3 Is Nothing Then
frm3 = New Form3
End If
frm3.Owner() = Me
Me.Hide()
frm3.ShowDialog()
わかりにくくてすみません

542:デフォルトの名無しさん
07/02/12 01:36:16
>frm3.Owner() = Me
ってしてるんだったらForm3_LoadでOwnerの型を調べりゃいいじゃん


543:デフォルトの名無しさん
07/02/12 01:51:37
>>538
ConditionalAttributeが怪しいといってみる

544:539
07/02/12 02:11:40
レスありがとうございます!
Ownerの型ってどうやって調べるんでしょうか?
ぐぐっても今一ピンとくるものがなく困っています。

545:デフォルトの名無しさん
07/02/12 06:30:38
>>539
if frm3.Owner = frm1 then これでだめか?


546:デフォルトの名無しさん
07/02/12 10:32:52
しかし、ダメな奴に限って意味なくやたらとウィンドウが遷移するような
UI作りたがるのはどうしてなんだろうね。

そんでもって「別フォームの変数にアクセスするには〜」とか言ってやんの

547:デフォルトの名無しさん
07/02/12 15:25:52
ちょっとぼやいてもいい??

しかしなんでこうHelp役に多端の金?

ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.ja/CPref17/html/M_System_Windows_Forms_ToolStripItemCollection_CopyTo_1_1f033e27.htm

このCopyToすると、元のメニューのコレクションの中身が全部なくなるって
不具合なんで記載しておかないの金?w

548:デフォルトの名無しさん
07/02/12 15:27:36
CopyってCloneつくるんじゃなくて、配列にコピーしたら元のは消しますって
かいとかないのはなぜ?w もしコピーじゃなくて移動ならMoveとか名前変えないと
絶対ウソだろが。

549:デフォルトの名無しさん
07/02/12 15:58:07
アンタの環境特有のURL貼られてもねえw


550:デフォルトの名無しさん
07/02/12 16:07:51
>>549
すまそです
URLリンク(msdn2.microsoft.com)(VS.80).aspx

それにしても、いまいちわからんのだが
ToolStripItem
を New で生成しようとすると New は使えんと言ってくるが、Help 見ると
URLリンク(msdn2.microsoft.com)(VS.80).aspx
あるようで、どうもわかりまへん。誰かおせーてちょー
なんかの設定なのか


551:デフォルトの名無しさん
07/02/12 16:13:57
ライブラリどころか言語の基本的なところが理解できてないだけ
そのコンストラクタは Protected だし、そもそも ToolStripItem は MustInherit だ

552:デフォルトの名無しさん
07/02/12 16:14:26
protectedって書いてあるじゃんw
意味わからないなら真面目に初歩から勉強したほうがいいと思うよ

553:デフォルトの名無しさん
07/02/12 16:18:40
>>550
ついでに言うと実はコンテキストメニューのMergeがしたいのだが、どうも見当たらない
(従来のMenuだとあるんだけどね)んで、しかたなくいきなりInsertとかAddしたんだが、
やっぱり元のメニューからは中身が消えてしまった、んで、んじゃあCopyToとかが
あったんでそれもやってみたんだが、やぱ−り元が消えて移ってしまうんだよね。

昔のMenuはマージしても別に元は消えなかったのに

554:デフォルトの名無しさん
07/02/12 16:23:00
>>550-551
なるほど、Newが使えるのは派生クラスだけだと。確かにMustInheritと出てはきてますたし
後段ヘルプのprotectedにも目が行かなかった、すまそですた。

しかしそうなると、ContexrMenuの場合、やっぱりコントロール貼ってGUIでいちいち全部手で
書き込むしかないんですかね

555:デフォルトの名無しさん
07/02/12 16:23:59
>>554訂正 ContexrMenuの場合>ContextMenuの場合

556:デフォルトの名無しさん
07/02/12 16:51:30
で、例えば

i0 = 2
For j = 0 To ContextMenuStrip2.Items.Count - 1
With ContextMenuStrip2.Items(j)

Dim newMItem As ToolStripMenuItem = New ToolStripMenuItem(.Text)

i = i0 + j
ContextMenuStrip1.Items.Insert(i, newMItem)
End With
Next

こんなことをすれば一応コピーの形はできるんだけど、WithEventで宣言してないから
HandlerはAddHandlerでこれもいちいち書かなくちゃいけないし、結局Mergeメソッドは
ないってことで、なんだか下位互換性のためにMainMenuもContextMenuも残してありますって
のはどうも言い訳っぽい気がするんだよね、なんでMerggeなくしたんだろ??

557:デフォルトの名無しさん
07/02/12 17:09:27
>>556
だからくだらないことでクダ巻いてる時間に基礎を勉強した方がいいよ。
とりあえず文句いうのはせめて参照型の意味がわかるようになってからにしろって
あんた、かなり恥ずかしい発言してると思うよw

558:デフォルトの名無しさん
07/02/12 17:33:01
>>557
勉強は並行してやりますが、、それはおいておいて、下位のはずのMainMenuやContextMenuで
できてたMenuMergeを、上位のはずのMenuStripやContextMenuStripでなくなってしまった
のはなんでだろね?

上位なら上位らしくできるというべきじゃないのかな

559:デフォルトの名無しさん
07/02/12 17:33:46
できないんならできないでいいけど、だったら上位というのは問題だよな

560:デフォルトの名無しさん
07/02/12 17:37:28
>>557
それと、参照型の話は
Public Sub CopyTo ( _
array As ToolStripItem(), _
index As Integer )
がByValになってないってことかもしれんけど、それがどうしたって感じもする
違ってたら言ってほしいけど、世の中でCopyのコピペって、Cut&Pasteとは
異なる機能を言うよな、このCopyToの機能は明らかに CutAndPasteToだぜ?

これのがはずかしいんじゃね?w


561:デフォルトの名無しさん
07/02/12 17:39:55
もし仮にCopyToが参照型だからって言って、Cutされていい理由なんかないだろ?

参照型だというのなら、そしてCopyなんだというのなら、せめて、同一の実体を
使いませる意味で「割り当てる」って意味にしなけりゃおかしいと思うよ。それなら
消えるはずはないし。

562:デフォルトの名無しさん
07/02/12 17:40:54
あくまでもCutの意味なんだというのなら、明らかにCopyToの命名はおかしすぎるよ。

563:デフォルトの名無しさん
07/02/12 17:41:17
ろくすっぽ調べもせずにぐちゃぐちゃ言うのってすごく恥ずかしいよなw

ToolStripManager.Merge

564:563
07/02/12 17:49:02
それにCopyToしただけではコレクションの中身は消えない。

まさか、そのまま他のToolStripに追加したりしてないだろうなw

565:デフォルトの名無しさん
07/02/12 18:41:40
低能が粘着してるスレはここですか?

566:デフォルトの名無しさん
07/02/12 19:15:21
>>563
わかった、すまなかった。あんまり探すのに時間かかるんでイラついてた。
申し訳ない。
>ToolStripManager.Merge
ありがとう。助かった。

>>564
>まさか、そのまま他のToolStripに追加したりしてないだろうな

mergeできないかもと思って、CopyToに手を出したんだけど、これは
ToolStrip型の配列に対して行なってみたら、元のContextMenuStrpが
空になった。これってやっぱりダメなのね、でも配列にと書いてあるんだが

567:デフォルトの名無しさん
07/02/12 19:41:50
バカの自覚がないところが痛いんだよね。

568:デフォルトの名無しさん
07/02/12 19:45:02
>>567
ん?別にバカでもなんでも構わないが、教えてくれたこの
>ToolStripManager.Merge
で、実際に 一つのContextMenuから別のContextMenuに中身のTooStripMenuItemが
消えないでmergeされるコードはどうやって書くのか教えてほしいんだが。
良ければ教えてくれ。たのむ。

569:デフォルトの名無しさん
07/02/12 19:48:41
>>564では、CopyToで消えないと書いてあるよな、
ToolStripManager.Merge メソッド でもHelpにあるとおり、
>そのまま他のToolStripに追加したりして
みたわけだが、やっぱり元のContextMenuからは消えてしまうんだよね。

これって何か恥ずかしいことでもしてるの?全くわからん。


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

5387日前に更新/270 KB
担当:undef