1 名前:デフォルトの名無しさん [2007/01/12(金) 15:57:21 ] 前スレVB.NET質問スレ (Part18) pc10.2ch.net/test/read.cgi/tech/1161250878/
477 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:00:52 ] だったら何も使うなよ。 常識のレベルってもんがあるだろうが。 あの説明で具体的に何を疑うわけ?
478 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:04:07 ] つまりCLR組み込みの例えば整数型は わざわざハッシュメソッドをオーバーライドした上で しかもドキュメントにはこのインスタンスのハッシュコードを返すと書きながら それを正しく実装していないと疑ってるわけだな?
479 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:06:00 ] やっぱりArrayListの列挙が順番通りなんて とても信用できない、有り得ない君か?
480 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:10:42 ] 初歩的な質問ですみません。 勉強がてらソフトキーボードを作っています。 例えばフォームのボタンをクリックしたら、他のアプリのテキストボックスに 文字などを表示するには、どうしたらいいんでしょうか?
481 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:12:49 ] そんなに熱くなる理由がさっぱりわからん。 不確かなことに依拠しない、なんてことはエンジニアだけでなく、 あらゆる仕事の基本だと思いますが。
482 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:14:38 ] Vista挿入した香具師居てるンですかどうなんですかブビの運命やいかに
483 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:29:05 ] デタラメばっかり言って人の言うことを全く信用しないからだ。 何のためにここに書き込んだわけ? お前は誰が何を言っても信用しないのに
484 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:31:50 ] お前は疑うところがずれてんだよ。
485 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:34:06 ] >>480 何が分からないか具体的に
486 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:35:54 ] >>483 やっぱりそういう受け取り方をする人なんだね。 今日日増えたなこういうパーソナリティの人間。。 冷静に。 「信用できない」、「不確か」という言葉は君という人格に向けられた物じゃない。 君を信用できないとか誰が信用できないとかそういう問題じゃないんだよ。 大人ならそれぐらいわかるでしょ。
487 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:45:21 ] じゃあMSDNでいいよ 書かれてると言っても 書かれてることを読んでも 信用できないんだろ。 ただ、ここで言われたんじゃなく、自分で見て読んだなら そこまで疑った反応するわけないんじゃないのか? 本当にMSDNに書かれてる内容をそこまで疑ってしか見られないんじゃ とても開発なんて出来ないよ。 俺には何が疑わしいのか理解できないからな。
488 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:49:37 ] まあ、人が作ったものが信用できないなら自分で作ればいいだけだが それで仕事になるかどうかは知らんが
489 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:50:38 ] わるいがわざわざ2チャンで冷静に見えるように書き込む必要を感じない。 携帯で丁寧な文は面倒なんだよ あと内容で反論出来なくなたっらメンタリティとか、どうでもいいんだよ。 どこが疑わしいのかはっきり書け。 っていったらプログラマとして当然か、 悪いが全然当然じゃない。 よっぽどうがった見方しないと疑う余地がない。
490 名前:480 mailto:sage [2007/02/06(火) 22:52:25 ] >>485 レスありがとうございます。 フォームのボタンをクリックするとフォーム内の 仮に置いたテキストボックスに文字を表示する事はできました。 わからないのは、フォームではないアプリの入力欄に打ち込む方法です。 どんな設定やメソッド?を使えばいいのか見当がつかない状態です。
491 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 22:52:27 ] うがった見方ってのは、MSがわざわざ嫌がらせで 罠をはった実装を行った、くらいのレベルだ。
492 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 00:08:08 ] ちなみにInt32のGetHashCodeの実装は 自分自身の値を返す、だ。
493 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 00:23:03 ] ぶも。 最近@ITのVB記事がひどいでつ。
494 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 00:40:41 ] 使用者のレベルに合わせてるだけでつ。
495 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 01:36:57 ] >>490 SendMessageでWM_KEYDOWN/WM_KEYUPメッセージを送るといい
496 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 10:12:08 ] 配列の記事はまたひどいぶぶんがあるな。 なんかVBプログラマって感じだ。
497 名前:デフォルトの名無しさん [2007/02/07(水) 15:05:35 ] 質問です。 VB.Net2003でクラスライブラリを作成しています。 自作でクラスライブラリを作成することはできています。 できたDLLを別のVB.Netプロジェクトから参照して使用するのですが、 プログラミング時にインテリセンスで自作DLLの関数の説明を表示させるには どのようにすればいいでしょうか? System.ComponentModel の Description で自作プロパティを修飾したら プロパティグリッドに説明が表示されますが、 自作関数に Description を使用してもインテリセンスには表示されません。 何を使って修飾すべきなのでしょうか?
498 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 15:20:12 ] ドキュメントコメント xmlのやつ
499 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 15:21:51 ] ってVBか。 アドイン使わないと出来なかったな。 dll参照なら確かアドインでxml作れば出来たと思う。
500 名前:497 mailto:sage [2007/02/07(水) 15:44:31 ] ドキュメントコメントでググってみました。 VB2003では標準ではできないっぽいですね。 Imports System.ComponentModel <Description("ほげ")> _ Public Function Hoge() As Stirng 'なんたらかんたら〜 みたいにお手軽にできるものならやろうと思っていたんですけど。 VBCommenterとかのアドインがあるみたいですね。 まぁそのうちにVS2005に移行する予定なので今は我慢しておきます。 情報提供ありがとうございました。
501 名前:480 mailto:sage [2007/02/07(水) 17:14:26 ] >>495 ありがとうございます。調べて試してみます。
502 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 23:02:30 ] 0.5秒ごとに指定時刻と現在時刻を比べるといい なあに大した負荷ではない むしろその方が誤差は少ないじゃないか
504 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 23:36:44 ] >>503 なるほど。力業の感じを受けましたが、VBAとは違ってそのような処理は軽いんですね。ありがとうございました。
505 名前:かのん ◆Ry3ufnjL32 mailto:sage [2007/02/08(木) 00:09:26 ] VB2005のRichtextにおいて、マウスカーソルはRichtextboxがもともと持っているにもかかわらず、 フォームエディタで設定されたCursorで上書きされてしまいます。そのため、画像のサイズ変更ハンドル などが表示されません。 フォームエディタで設定されたCursorを表示しないようにして、もともとRichtextboxコントロールが持っている マウスポインタを表示させたままにすることはできますでしょうか(いろいろやってみたのですが、 カーソルが点滅して使い物になりませんでした。)。よろしくご享受ください。
506 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん [2007/02/08(木) 21:22:38 ] 式のウオッチで、式の値が変化したときに停止(ブレーク)する、の設定は どのようにするのでしたっけ?前にやったような気がするんですが、 またやろうとしたらメニューのどこを見てもそれらしいのがなく、Help見ても 出てきませんです。困りました。。。
508 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 22:29:12 ] >>506 数回使うという意味が分からん
509 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 02:37:34 ] >>509 dobon.net/vb/dotnet/links/extractarchive.html
511 名前:デフォルトの名無しさん [2007/02/09(金) 09:57:20 ] >>510 できませんでした。
512 名前:デフォルトの名無しさん [2007/02/09(金) 12:06:40 ] .NETで既存のExcelファイルを開きマクロを操作(実行)するには どう記述したら良いのでしょうか?
513 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 12:26:28 ] VB.NETでExcelVBAのマクロを動かす方法は?? ttp://homepage1.nifty.com/MADIA/vb/vb_bbs2/200409_04090028.html ttp://hanatyan.sakura.ne.jp/bbs/wforum.cgi?mode=allread&no=4441&page=0#4441 MicroSoft Excelを起動(既存のファイルを開く) ttp://www.bcap.co.jp/hanafusa/dotnet/Excel01.htm#no2 Visual Basic .NET からオートメーションを使用して Office マクロを実行する方法 ttp://support.microsoft.com/kb/306682/ja
514 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 12:31:41 ] >>508 複数のファイルをアップロードしようと思うんです。 今はソケットを大量に作ってますOTL
515 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 14:19:10 ] >>512 .NETでExcelなどのCOMを扱うのは参照の解放漏れ対策で苦労するので、 VB6やWSHでやったほうが楽なのでは?
516 名前:デフォルトの名無しさん [2007/02/09(金) 16:40:11 ] ちょっとこういうことできるか聞きたいんだが 【開発環境】VB.NET2003 あるラベル(長さは文字数が違っても一列で表示したい)を動的に縦に並べて作成する。 その横にテキストボックス(サイズは固定)を配置 で、ここでテキストボックスのLeftを揃えたい ただし、ラベルの文字の長さは変わる こういうことは出来るんだろうか・・・ 結果的に↓みたいな感じにしたい LABEL1AAA | TEXTBOX1 LABEL1BB | TEXTBOX1 LABEL1C | TEXTBOX1 ずれてたらすまんが | が縦に並ぶようなイメージ もし、こんなので出来るよって人いたらお願いします。
517 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 16:45:38 ] 一番長いラベルが収まる幅を確保すればいいだけではないの? Measurestringとか。
518 名前:デフォルトの名無しさん [2007/02/09(金) 17:01:55 ] >>517 まさにその通りだったんですが Graphics名前空間にこんな便利なのがあるとは・・・ これで計算した大きさにラベル合わせていけば問題なくいけそうです!!! ありがとうございました!
519 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 18:41:34 ] んなことわざわざしなくてもラベルのサイズってAutoにできたような。。。
520 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 18:57:07 ] 質問よく読めよ・・・
521 名前:デフォルトの名無しさん [2007/02/09(金) 20:28:19 ] ちょっと教えてください ユーザーコントロールを作成しました。 このコントロールは System.Windows.Forms.UserControl を継承していますが ListViewのように常時スクロールバーを表示する機能は標準で実装されていないようです。 そこで、ListViewのように常時このコントロールにスクロールバーを表示させたいのです。 (ただし、スクロールできない場合は、グレーで操作不能) こういう実装は可能なのでしょうか? ググってみたのですが、どうもこういう質問は見当たらなかったもので・・・
522 名前:デフォルトの名無しさん [2007/02/09(金) 20:33:14 ] >>514 一気にパケット送って一気に元に戻しちゃぁいけないの?
523 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 21:07:53 ] >>521 HorizontalScroll, VerticalScrollはどう?
524 名前:デフォルトの名無しさん [2007/02/09(金) 21:14:24 ] >>523 折角お答えいただいたのに申し訳ない FrameWork2.0ならそれでいけるのですが、 現在の環境はFrameWork1.1 SP1(細かく忘れましたがとにかく最新です。) になっているんです。 確認してみたのですが見当たらなかったので・・・ 環境書き忘れごめんなさい。
525 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 21:19:10 ] >>524 あーそれじゃあ VScroll, HSrollってprotectedなプロパティがあったと思うから、 オーバーライドしてやればどうかな
526 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 21:21:29 ] あっと、 オーバーライドじゃなくて、普通に設定するだけでいい。 AutoScrollをfalseにするのを忘れずに。
527 名前:デフォルトの名無しさん [2007/02/09(金) 21:51:39 ] >>525 >>526 度々のレス、ホントありがとうございます。 んっと どうもそのプロパティは基本的に表示可能かどうかを示す値なような・・・ というわけでBooleanなので設定試してみましたがムリでした。(AutoScrollはFalse) 最初の説明を見直してみてちょっと修正したいと思ったんですが ListBoxコントロールのScrollAlwaysVisibleプロパティ ズバリコレと同じ事をユーザーコントロールで実装したいと思っていただければ 自分でそのあたり実装しなくてはいけないんでしょうが何をベースにしていいのやらがまったく・・・・
528 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 22:03:21 ] >>527 VScrollBar コントロールをそのUserControlに張り付けりゃいいんじゃねーの?
529 名前:デフォルトの名無しさん mailto:sage [2007/02/09(金) 22:16:18 ] >>527 となると、SetScrollInfoをP/Invokeかなあ 他の処理も自前でやらないといけなくなりそうだが
530 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 00:04:52 ] 貴重な意見ありがとうございます。 >>528 そうなると自前で書く部分が相当増えそうなきがして。。。 コントロールの移動とか(;´∀`) >>529 ちょっとそれでググたりしてやってみることにします。 実際、コントロールの機能にないものを実装することがなかったので・・・ かなりきついとは思いますが(;´∀`)
531 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 00:33:30 ] 親亀の上に子ガメをのせて孫亀乗せればいいじゃないか
532 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 01:15:31 ] とりあえずやってみました。 >>528 の方法をまず試してみた 中にあるコントロールのサイズが大きいときだけEnable=Trueにして 期待通りの動作はしたけれど問題はVisualStyleですね。 次は>>529 のを次試してみることにしよう
533 名前:デフォルトの名無しさん [2007/02/11(日) 19:09:57 ] 誰か>>507 教えてください。よろしく
534 名前:デフォルトの名無しさん mailto:sage [2007/02/11(日) 22:56:23 ] 質問です 他の方がC#で作ったというDLLをもらってきて、 自分のVB2005で参照追加して使っているのですが、 できたプログラムをIDE上のデバッグモードで走らせるときは、期待通りの結果が得られますが、 ビルドしてできたEXEを実行しても結果がデバッグモードの時と違ってしまいます。 具体的にはDLLに含まれるある関数の戻り値が、ビルドしたEXEファイルでは必ず0になってしまっているようです。 他に特にエラーを吐くわけでもなく、DLL内のクラスのインスタンスを作ったり、関数を呼ぶこと自体はできているようです。 このようにデバッグ時とビルド後で結果が違ってしまう場合の原因ってどんなことが考えられるでしょうか? ちなみに、環境はWinXP Pro(SP2) + VB2005 ExpressEditionです
535 名前:デフォルトの名無しさん mailto:sage [2007/02/11(日) 23:13:08 ] >>533 2003になったとき、しばらく探してあきらめたような覚えがある。 ぶっちゃけ無くなっちゃったと思ってる。
536 名前:デフォルトの名無しさん mailto:sage [2007/02/11(日) 23:21:06 ] VB6とかいうインタプリタの時代の機能じゃねえの?
537 名前:デフォルトの名無しさん mailto:sage [2007/02/11(日) 23:25:29 ] >>534 関数? 作者に聞くしかないんじゃね? // とか言いつつ実は漏れだったらどうしようw
538 名前:534 mailto:sage [2007/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 名前:デフォルトの名無しさん [2007/02/12(月) 01:18:45 ] Form3_Loadで、もしForm1からForm3へ移動してきた場合は真 Form2からForm3へ移動してきた場合は偽を返す ・・・みたいなこと出来ますか? もし出来るのでしたらヒントかソース教えていただけると嬉しい。
540 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 01:25:58 ] >>538 デバッグ時とリリース時で挙動が違うときは最適化を疑う >>539 「移動してきた」の意味が分からん。 直前にアクティブだったってこと? それとも各フォームからShowされたってこと?
541 名前:539 [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 01:36:16 ] >frm3.Owner() = Me ってしてるんだったらForm3_LoadでOwnerの型を調べりゃいいじゃん
543 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 01:51:37 ] >>538 ConditionalAttributeが怪しいといってみる
544 名前:539 [2007/02/12(月) 02:11:40 ] レスありがとうございます! Ownerの型ってどうやって調べるんでしょうか? ぐぐっても今一ピンとくるものがなく困っています。
545 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 06:30:38 ] >>539 if frm3.Owner = frm1 then これでだめか?
546 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 10:32:52 ] しかし、ダメな奴に限って意味なくやたらとウィンドウが遷移するような UI作りたがるのはどうしてなんだろうね。 そんでもって「別フォームの変数にアクセスするには〜」とか言ってやんの
547 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 15:27:36 ] CopyってCloneつくるんじゃなくて、配列にコピーしたら元のは消しますって かいとかないのはなぜ?w もしコピーじゃなくて移動ならMoveとか名前変えないと 絶対ウソだろが。
549 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 15:58:07 ] アンタの環境特有のURL貼られてもねえw
550 名前:デフォルトの名無しさん [2007/02/12(月) 16:07:51 ] >>549 すまそです msdn2.microsoft.com/ja-jp/library/system.windows.forms.toolstripitemcollection.copyto (VS.80).aspx それにしても、いまいちわからんのだが ToolStripItem を New で生成しようとすると New は使えんと言ってくるが、Help 見ると msdn2.microsoft.com/ja-jp/library/8fw63t85 (VS.80).aspx あるようで、どうもわかりまへん。誰かおせーてちょー なんかの設定なのか
551 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 16:13:57 ] ライブラリどころか言語の基本的なところが理解できてないだけ そのコンストラクタは Protected だし、そもそも ToolStripItem は MustInherit だ
552 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 16:14:26 ] protectedって書いてあるじゃんw 意味わからないなら真面目に初歩から勉強したほうがいいと思うよ
553 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 16:18:40 ] >>550 ついでに言うと実はコンテキストメニューのMergeがしたいのだが、どうも見当たらない (従来のMenuだとあるんだけどね)んで、しかたなくいきなりInsertとかAddしたんだが、 やっぱり元のメニューからは中身が消えてしまった、んで、んじゃあCopyToとかが あったんでそれもやってみたんだが、やぱ−り元が消えて移ってしまうんだよね。 昔のMenuはマージしても別に元は消えなかったのに
554 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 16:23:00 ] >>550-551 なるほど、Newが使えるのは派生クラスだけだと。確かにMustInheritと出てはきてますたし 後段ヘルプのprotectedにも目が行かなかった、すまそですた。 しかしそうなると、ContexrMenuの場合、やっぱりコントロール貼ってGUIでいちいち全部手で 書き込むしかないんですかね
555 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 16:23:59 ] >>554 訂正 ContexrMenuの場合>ContextMenuの場合
556 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 17:09:27 ] >>556 だからくだらないことでクダ巻いてる時間に基礎を勉強した方がいいよ。 とりあえず文句いうのはせめて参照型の意味がわかるようになってからにしろって あんた、かなり恥ずかしい発言してると思うよw
558 名前:デフォルトの名無しさん [2007/02/12(月) 17:33:01 ] >>557 勉強は並行してやりますが、、それはおいておいて、下位のはずのMainMenuやContextMenuで できてたMenuMergeを、上位のはずのMenuStripやContextMenuStripでなくなってしまった のはなんでだろね? 上位なら上位らしくできるというべきじゃないのかな
559 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 17:33:46 ] できないんならできないでいいけど、だったら上位というのは問題だよな
560 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 17:37:28 ] >>557 それと、参照型の話は Public Sub CopyTo ( _ array As ToolStripItem(), _ index As Integer ) がByValになってないってことかもしれんけど、それがどうしたって感じもする 違ってたら言ってほしいけど、世の中でCopyのコピペって、Cut&Pasteとは 異なる機能を言うよな、このCopyToの機能は明らかに CutAndPasteToだぜ? これのがはずかしいんじゃね?w
561 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 17:39:55 ] もし仮にCopyToが参照型だからって言って、Cutされていい理由なんかないだろ? 参照型だというのなら、そしてCopyなんだというのなら、せめて、同一の実体を 使いませる意味で「割り当てる」って意味にしなけりゃおかしいと思うよ。それなら 消えるはずはないし。
562 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 17:40:54 ] あくまでもCutの意味なんだというのなら、明らかにCopyToの命名はおかしすぎるよ。
563 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 17:41:17 ] ろくすっぽ調べもせずにぐちゃぐちゃ言うのってすごく恥ずかしいよなw ToolStripManager.Merge
564 名前:563 mailto:sage [2007/02/12(月) 17:49:02 ] それにCopyToしただけではコレクションの中身は消えない。 まさか、そのまま他のToolStripに追加したりしてないだろうなw
565 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 18:41:40 ] 低能が粘着してるスレはここですか?
566 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 19:15:21 ] >>563 わかった、すまなかった。あんまり探すのに時間かかるんでイラついてた。 申し訳ない。 >ToolStripManager.Merge ありがとう。助かった。 >>564 >まさか、そのまま他のToolStripに追加したりしてないだろうな mergeできないかもと思って、CopyToに手を出したんだけど、これは ToolStrip型の配列に対して行なってみたら、元のContextMenuStrpが 空になった。これってやっぱりダメなのね、でも配列にと書いてあるんだが
567 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 19:41:50 ] バカの自覚がないところが痛いんだよね。
568 名前:デフォルトの名無しさん [2007/02/12(月) 19:45:02 ] >>567 ん?別にバカでもなんでも構わないが、教えてくれたこの >ToolStripManager.Merge で、実際に 一つのContextMenuから別のContextMenuに中身のTooStripMenuItemが 消えないでmergeされるコードはどうやって書くのか教えてほしいんだが。 良ければ教えてくれ。たのむ。
569 名前:デフォルトの名無しさん [2007/02/12(月) 19:48:41 ] >>564 では、CopyToで消えないと書いてあるよな、 ToolStripManager.Merge メソッド でもHelpにあるとおり、 >そのまま他のToolStripに追加したりして みたわけだが、やっぱり元のContextMenuからは消えてしまうんだよね。 これって何か恥ずかしいことでもしてるの?全くわからん。
570 名前:デフォルトの名無しさん [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 20:30:55 ] マージなんだから消えるのが当然の挙動では?
572 名前:デフォルトの名無しさん [2007/02/12(月) 20:39:59 ] >>571 やっぱり消えたの確認したのね、オッケーオッケー。いいよいいよ。 ってことは>>570 のコードは別に間違ってないってことだよね? >マージなんだから消えるのが当然の挙動では? しかし本当にそう思う? さっきも書いた通り、前からあったMainMenuもContextMenuではちゃんと消えない でMergeできてたんだよねー。当然上位のMenuでできないのは変でしょが。 たとえば、一つのContextMenuにはどこのコントロールでも使う共通のメニューアイテム を入れておいて、コントロール個別の内容は別に個別にセットしてあるところにその共通 分のを 「マージ」 すると、どのコントロールにも共通項目が簡単につけられるし、 いらなくなったらはずせばいいわけでしょ。これが前はできてたのよ、なんで こんな便利な機能を外しちまったわけ??マージはマージであって、元を消して いいなんて話はどう考えてもおかしいと、俺は思うね。だってそうなら前のMergeは なんだったの?ってことで
573 名前:デフォルトの名無しさん [2007/02/12(月) 20:42:43 ] でも、>>563-564 には「消えない」という意味で書いてあるからなあ 回答待つことにするわ
574 名前:デフォルトの名無しさん [2007/02/12(月) 21:01:56 ] >>565 >>567 回答くれるんならあんたでもいいけどな。
575 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 21:25:14 ] どうでもいいが、バカだと抜かしておいてたいしたことないのかよ>>>565 >>567
576 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 21:53:26 ] マイクロソフトの現実にわかりにくいHelp検索できるだけでは威張れませんよね それから基本的なことどうとかいうけど、権威を信じてるだけでプログラムの中身が ないんじゃだめですよ。
577 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 21:54:13 ] それでヘーキでバカが、とか、痛いとかw 笑っちゃうねw