[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 23:01 / Filesize : 270 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

VB.NET質問スレ (Part19)



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






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<270KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef