VB.NET質問スレ (Part19 ..
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からは消えてしまうんだよね。
これって何か恥ずかしいことでもしてるの?全くわからん。
570:デフォルトの名無しさん
07/02/12 20:05:14
こっちがやってみたのは、
ContextMenuStrip1.AllowMerge = True
ContextMenuStrip2.AllowMerge = True
sourceContextMenuStrip = ContextMenuStrip2
targetName = "ContextMenuStrip1"
returnValue = ToolStripManager.Merge(sourceContextMenuStrip, targetName)
こうすると returnValue はTrueだが ContextMenuStrip2 から全部消えてしまう。
これで何が間違ってるんだろ?
元に戻してみると確かに
returnValue = ToolStripManager.RevertMerge(targetName)
これで元には戻る。
571:デフォルトの名無しさん
07/02/12 20:30:55
マージなんだから消えるのが当然の挙動では?
572:デフォルトの名無しさん
07/02/12 20:39:59
>>571
やっぱり消えたの確認したのね、オッケーオッケー。いいよいいよ。
ってことは>>570のコードは別に間違ってないってことだよね?
>マージなんだから消えるのが当然の挙動では?
しかし本当にそう思う?
さっきも書いた通り、前からあったMainMenuもContextMenuではちゃんと消えない
でMergeできてたんだよねー。当然上位のMenuでできないのは変でしょが。
たとえば、一つのContextMenuにはどこのコントロールでも使う共通のメニューアイテム
を入れておいて、コントロール個別の内容は別に個別にセットしてあるところにその共通
分のを 「マージ」 すると、どのコントロールにも共通項目が簡単につけられるし、
いらなくなったらはずせばいいわけでしょ。これが前はできてたのよ、なんで
こんな便利な機能を外しちまったわけ??マージはマージであって、元を消して
いいなんて話はどう考えてもおかしいと、俺は思うね。だってそうなら前のMergeは
なんだったの?ってことで
573:デフォルトの名無しさん
07/02/12 20:42:43
でも、>>563-564には「消えない」という意味で書いてあるからなあ
回答待つことにするわ
574:デフォルトの名無しさん
07/02/12 21:01:56
>>565>>567
回答くれるんならあんたでもいいけどな。
575:デフォルトの名無しさん
07/02/12 21:25:14
どうでもいいが、バカだと抜かしておいてたいしたことないのかよ>>>565>>567
576:デフォルトの名無しさん
07/02/12 21:53:26
マイクロソフトの現実にわかりにくいHelp検索できるだけでは威張れませんよね
それから基本的なことどうとかいうけど、権威を信じてるだけでプログラムの中身が
ないんじゃだめですよ。
577:デフォルトの名無しさん
07/02/12 21:54:13
それでヘーキでバカが、とか、痛いとかw
笑っちゃうねw
578:デフォルトの名無しさん
07/02/12 22:08:50
何を文句言ってるのかようやく分かったw
ToolStripItemの派生クラスのインスタンスは、複数のToolStripItemCollectionに
同時に所属(?)できないようだけど、そのことに文句をたれているのか。
例えばMenuStripの項目の一部をContextMenuStripの項目の一部として表示したい、
ということなら、ContextMenuStripをShowする直前にAddRangeしてClosedイベントで
元のMenuStripに復元するだけでしょそんなの。
何も難しく考える必要はない。
それと、>>563-564の言ってることは別に間違ってないよ。
よく考えてみ。
まあ知識がないのに考えても思いて学ばざるはなんとやら、だが。
しかし、何か昔のフェミかサヨクみたいな壮大な勘違いしてるようだけど、
別にマイクロソフトは君が頑張れる環境を整備する責任を負ってないよ。
まあ君が勘違い野郎でも別に俺には関係ないけどw
579:デフォルトの名無しさん
07/02/12 22:20:26
>>578
>別にマイクロソフトは君が頑張れる環境を整備する責任を負ってないよ
これこそ大きな勘違いだと思うけどなぁ
Helpがわかりにくいのは現実、結局あれこれ本みて調べないと調べたいことに
たどり着けなかったりするのはHelpとしてそれ自体「欠陥品」でしょ。
かつてのVB4.0のHelpは何でもすばやく出てきて優秀だった
生産性が良かったね
それがHTMLベースになりレスポンスは遅くなり、しまいにゃあちこち
勝手にリンクが切れたり、全く使いものにならんよこんなの
壮大な勘違いはマイクロソフトの殿様商売の方だろそもそも
580:デフォルトの名無しさん
07/02/12 22:25:26
>>579
そーだよなー
エクセルでも95のヘルプは良かったのに97で少し使いにくくなって、2000以降は
もう使う気しないもの
581:デフォルトの名無しさん
07/02/12 22:26:06
>>578
>例えばMenuStripの項目の一部をContextMenuStripの項目の一部として表示したい、
>ということなら、ContextMenuStripをShowする直前にAddRangeしてClosedイベントで
>元のMenuStripに復元するだけでしょそんなの。
>何も難しく考える必要はない
まあそうやれば「このダウングレードされた欠陥商品」の欠陥を補うことはできるな
それは>>570で済んでるよ
確かに
>564 名前:563[sage] 投稿日:2007/02/12(月) 17:49:02
>それにCopyToしただけではコレクションの中身は消えない
>まさか、そのまま他のToolStripに追加したりしてないだろうなw
こそ痛かったと思うぜw
だから、それじゃあいちいち元に戻さなくてもいいMergeの仕方をしてみせてくれよと
言ってんだが、結局できなかったってことだよなwww
582:デフォルトの名無しさん
07/02/12 22:28:30
偉そうに言う割りに結局はマイクロソフトの弁護して終わるやつが多いのここw
583:デフォルトの名無しさん
07/02/12 22:30:01
だから>>564は別に間違ってないって言ってるのに。。
本当馬鹿だな
584:デフォルトの名無しさん
07/02/12 22:32:43
>>583
元にもどしてもどれば消えてない、とでも?
別の意味なら消えないマージの仕方を示してくれ。
いちいち戻すのはとても面倒でしょうがないからさ!
585:デフォルトの名無しさん
07/02/12 22:34:34
Microsoftに訊けよ。
いくら偉そうに言っても怒らないからあいつら。
586:デフォルトの名無しさん
07/02/12 22:35:32
中身の実体が別のところに張り付いてるから消えてない、ってのなら、
たとえば、こっちの桶にある水を別の桶に空けたら、こっちのは空っぽ
になってしまった・・・・・はて、これをこっちの桶からは消えたって言わないのか?
不思議な言語世界だぞそれはw
587:デフォルトの名無しさん
07/02/12 22:38:09
それから、前のMenuクラス群なら、Cloneが作れてちゃんと別ものがコピーで作れたぞ。
それがなんで新しいやつだとできないんだよ?だいぶへんなバージョンアップじゃないかね??
588:デフォルトの名無しさん
07/02/12 22:39:58
>>585
バカとか言ってる時点で十分えらそうだろw
>>564とか言ってるくせにさ。消えてるじゃねえかよ、
Helpでやれと書いてあるとおりにやってんだぜ。
589:デフォルトの名無しさん
07/02/12 22:41:48
>>582
いやいやMSの弁護なんて誰もしてないって。
そうじゃなくて君が馬鹿だっていってるの。
だって与えられた条件はみんな一緒だぜw
MSDNは確かにお世辞にも分かり安くもユーザーフレンドリーでもないが、
君のその体たらくは単なる君自身の勉強不足に由来するのであってMSの責任じゃないでしょ。
っていうか、そもそもプログラマっていうのはそれなりにプロフェッショナルであるべきであって、
馬鹿が無理してやるべき性質のものじゃないんだけど。
590:デフォルトの名無しさん
07/02/12 22:45:28
>>589
お前のはバカを連発して>>564の矛盾を糊塗しているだけw
591:デフォルトの名無しさん
07/02/12 22:48:10
中身のないプログラムのバージョンアップはやめろというのが先決だろ?ww
マイクロソフトは金儲けでソフト重くすればインテルと組んでハードもどんどん
仕方なしにでも買わせられる、これはグルでうまくやってるつもりなんだろw
592:デフォルトの名無しさん
07/02/12 22:49:59
俺の大学時代の友人にもこういう被害妄想傾向の持ち主が一人いたな。。
奴は今元気にやってるだろうか。
593:デフォルトの名無しさん
07/02/12 22:53:15
結局、こっちの桶から中身は移動して消えていたのが正しかった、しかし
>>564は調べもしないでいいかげんなことをのたまって偉そうにしただけだった
これが違うというのなら、桶の中身が消えていないというのなら、ちゃんと
Mergeしてもこっちの方からは消えていかないMergeがあることを実際に示せなければ
おかしいはずだ
それができないことに後から気がついたもんでそんな言い訳をこいて指摘した
方を馬鹿だということで逃げ切ろうとw
別に消えてもいいんだよ、ちゃんと調べて消えてることを知った上でものを
言っていたんならなw
594:デフォルトの名無しさん
07/02/12 22:57:30
お前さんも痛い奴だな。
だから>>564は間違ってないって。
嘘だと思うなら実際やってみ
595:デフォルトの名無しさん
07/02/12 23:08:01
おい!
どうでもいいけど、数字コテくらいつけろよ>>547
596:デフォルトの名無しさん
07/02/12 23:08:32
>>594
そのコードを出して見せてくれよ
とずっと言ってるのに出さない理由は?
1.簡単すぎてあほらしいから出せない
2.ホントはできないから出せない
答えはどっちですかあ?
If 1 Then
回答コード
Else
すみませんでした
どうも
End If
597:596
07/02/12 23:12:14
もし1なら、先にそれを出しておけばいいこと
しかし、それを出して説明しないから言ってきただけでしょが?>>>594
戻せば戻るって、そんなのは当たり前、とっくに>>570でわかってますよ
と前にも言ってますが。
598:デフォルトの名無しさん
07/02/12 23:13:48
コードって言ったってCopyToメソッド一行書くだけじゃんw
まあいいや、例えばformのLoadイベントハンドラに次のように書いてみ。
Dim count As Integer = ContextMenuStrip1.Items.Count
Dim items As ToolStripItem() = New ToolStripItem(count - 1) {}
ContextMenuStrip1.Items.CopyTo(items, 0)
どう、消えたかな?w
599:デフォルトの名無しさん
07/02/12 23:16:14
馬鹿だのなんだのと御託は言うくせに、結局、
>>578で
>ToolStripItemの派生クラスのインスタンスは、複数のToolStripItemCollectionに
>同時に所属(?)できない
とか言ってるんだから、無理なんでしょ原理的にさ
なら、元々できるわけないじゃん。
結局マイクロソフトはオブジェクト指向だのなんだのとDelphiの開発者を札束で
引き入れて「好きなようにやっていいよ」と甘い言葉でエンジニアのマスターベーションを
させて、OOPをいいことにクラスを乱造させて収集が付かないほどに膨れ上がって
るのが現実ではないんかな
クラスを作り散らかしてはまた捨てての繰り返しw
いい加減にしろよ
600:デフォルトの名無しさん
07/02/12 23:17:32
いい加減スレ違いなんですけど。
MSの批判がしたいならそれなりの場所でやってくれませんか?
601:デフォルトの名無しさん
07/02/12 23:20:59
いやいやこういうお人は出て行けって言っても絶対出て行かないから、
それならせいぜいからかって楽しませてもらうべきだよw
602:デフォルトの名無しさん
07/02/12 23:23:47
>>547
お前どんだけ書き込んでんだよ。
よそでやれ。
ああ、別にMSの製品に問題ないとは思わないが、
お前の痛さの方がよっぽどひどい。
603:デフォルトの名無しさん
07/02/12 23:43:19
沸点の低いスレだ
604:デフォルトの名無しさん
07/02/12 23:49:02
>>598
別に役に立たない代物で、途中までで消えてないからいいって話は全然無いからw
Public Class Form6
Private ContextMenuStrip1 As New ContextMenuStrip
Private ContextMenuStrip2 As New ContextMenuStrip
Private ToolStripMenuItem1 As New ToolStripMenuItem
Private ToolStripMenuItem2 As New ToolStripMenuItem
Private ToolStripMenuItem3 As New ToolStripMenuItem
Private items As ToolStripItem()
Private count As Integer
Private Sub Form6_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ToolStripMenuItem1.Text = "ToolStripMenuItem1"
ToolStripMenuItem2.Text = "ToolStripMenuItem2"
ToolStripMenuItem3.Text = "ToolStripMenuItem3"
ContextMenuStrip1.Items.Add(ToolStripMenuItem1)
ContextMenuStrip1.Items.Add(ToolStripMenuItem2)
ContextMenuStrip1.Items.Add(ToolStripMenuItem3)
count = ContextMenuStrip1.Items.Count
items = New ToolStripItem(count - 1) {}
Application.DoEvents()
ContextMenuStrip1.Items.CopyTo(items, 0)
Application.DoEvents() '<---- あんたの言ってるのはここまでの話でしょ。
For i As Integer = 0 To count - 1
ContextMenuStrip2.Items.Add(items(i))
Next
Application.DoEvents()
Me.ContextMenuStrip = ContextMenuStrip1
Label1.ContextMenuStrip = ContextMenuStrip2
End Sub
End Class
605:デフォルトの名無しさん
07/02/12 23:49:49
>>601
何を言ってるカス野郎めwてめえでコード書いて確かめてから言え馬鹿者めが!!
606:デフォルトの名無しさん
07/02/12 23:51:10
結局、>>604の最後までやって別の桶に移すと元の桶からは消えていくんだよ。
これで消えてないの?w
607:デフォルトの名無しさん
07/02/12 23:51:26
doevents って vb6 ?
608:デフォルトの名無しさん
07/02/12 23:53:42
>>578が回答で、結局は新しいToolStripとやらは、いちいち移しては戻し
してやらないと使いものになりません、と言ってるだけですよw
面倒な話ですなあww
609:デフォルトの名無しさん
07/02/12 23:54:02
>>604
ほんっと被害妄想傾向の激しいやっちゃなあ。。
>>564になんて書いてあるか読めないのかねえ
610:デフォルトの名無しさん
07/02/12 23:54:13
>>607ってこういうやつには馬鹿とかはいわねえのなw
611:デフォルトの名無しさん
07/02/13 00:09:03
コレダ!!!!!!!!!!
Friend Sub MoveItem(ByVal value As ToolStripItem)
If (Not value.ParentInternal Is Nothing) Then
Dim num1 As Integer = value.ParentInternal.Items.IndexOf(value)
If (num1 >= 0) Then
value.ParentInternal.Items.RemoveAt(num1)
End If
End If
Me.Add(value)
End Sub
612:デフォルトの名無しさん
07/02/13 00:09:36
>>609
だから?
こっちはそんなこと問題にしてない。>>>581
ずっと言ってる通りですよ。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5383日前に更新/270 KB
担当:undef