C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[9]: .NET 2005以降で旧MainMenuなど


(過去ログ 36 を表示中)

[トピック内 13 記事 (1 - 13 表示)]  << 0 >>

■17975 / inTopicNo.1)  .NET 2005以降で旧MainMenuなどを使いたい
  
□投稿者/ HSKN (1回)-(2008/05/07(Wed) 12:31:42)

分類:[.NET 全般] 

はじめまして。

今までもっぱら Delphi や C++ を使ってきたのですが、
最近ようやく .NET や C# に興味が湧いてきたので、勉強もかねて
C#.NET で何か簡単なアプリケーションを作成してみたいと思っています。

そこで気になったのですが、Visual Studio .NET の 2005 や 2008 では、
メインメニューやコンテキストメニューなどが、2003 までの
MainMenu や ContextMenu ではなく、MainMenuStip や ContextMenuStrip を
使うよう推奨されています。

しかし、その中身は独自描画でメニュー項目の大きさが妙に大きいのが気持ち悪く、
Strip ではないほうを使いたいと思っています。
ツールボックスを右クリックして「アイテムの選択」を選べば
MainMenu や ContextMenu をフォームに貼り付けることはできます。

しかし、ここで問題があり、フォームなどのプロパティエディタに
「MainMenu プロパティ」や「ContextMenu プロパティ」がありません。
MainMenu は貼り付ければ自動的にフォームに設定されるのでまだ良いですが、
ContextMenu はプロパティエディタから設定できず、デザイナのコードを表示し
this.ContextMenu = this.contextMenu1;
のようなコードを書かなければなりません。

2005 や 2008 で、プロパティエディタに「ContextMenu プロパティ」などを
表示させる方法はありませんでしょうか?
ご存じの方、ぜひ教えていただければ幸いです。
よろしくお願いします。
引用返信 編集キー/
■17977 / inTopicNo.2)  Re[1]: .NET 2005以降で旧MainMenuなどを使いたい
□投稿者/ やじゅ (344回)-(2008/05/07(Wed) 12:47:23)
No17975 (HSKN さん) に返信
> 2005 や 2008 で、プロパティエディタに「ContextMenu プロパティ」などを
> 表示させる方法はありませんでしょうか?
>

フォームを継承して、ContextMenu プロパティを追加

引用返信 編集キー/
■17979 / inTopicNo.3)  Re[1]: .NET 2005以降で旧MainMenuなどを使いたい
□投稿者/ 渋木宏明(ひどり) (744回)-(2008/05/07(Wed) 13:07:34)
渋木宏明(ひどり) さんの Web サイト
> しかし、その中身は独自描画でメニュー項目の大きさが妙に大きいのが気持ち悪く、

「気持ち悪い」のがイメージ表示用の余白のことを言ってるのであれば、プロパティ(名前忘れた)で調節できます。

引用返信 編集キー/
■17983 / inTopicNo.4)  Re[2]: .NET 2005以降で旧MainMenuなどを使いたい
□投稿者/ HSKN (2回)-(2008/05/07(Wed) 13:31:36)
ありがとうございます。

> やじゅさん
うーん、この方法ではデザイナのコードを変更するより手間がかかるうえに
フォーム以外には適用できないですね…これでは解決できなさそうです。すいません。

> 渋木宏明(ひどり)さん
見た目、挙動が違いすぎる (余白が広すぎるほかに、メニューのフェードイン設定などを無視するなど)
OSの処理を使わずに独自描画させる意味が全くないの二点が主に気持ち悪いと感じるところです。

イメージ表示用の余白をなくせるのは初めて知ったので、プロパティをひととおり見てみたのですが
それらしいものを見つけることはできませんでした…。
引用返信 編集キー/
■18051 / inTopicNo.5)  Re[3]: .NET 2005以降で旧MainMenuなど
□投稿者/ HSKN (3回)-(2008/05/08(Thu) 12:47:59)
2008/05/08(Thu) 12:48:14 編集(投稿者)

解決策が出ませんでした (ないかもしれません?) が、
ほかの掲示板でも聞いてみたいので、一旦解決マークをつけさせていただきます。
渋木宏明(ひどり)さんの余白調整は参考にさせていただきます。
お二方、ありがとうございました。

解決済み
引用返信 編集キー/
■18055 / inTopicNo.6)  Re[3]: .NET 2005以降で旧MainMenuなどを使いたい
□投稿者/ 渋木宏明(ひどり) (745回)-(2008/05/08(Thu) 13:20:12)
渋木宏明(ひどり) さんの Web サイト
> 見た目、挙動が違いすぎる (余白が広すぎるほかに、メニューのフェードイン設定などを無視するなど)
> OSの処理を使わずに独自描画させる意味が全くないの二点が主に気持ち悪いと感じるところです。

どれだけ好みの表示なるか分かりませんが、RenderMode を System にしてみるとか。

> イメージ表示用の余白をなくせるのは初めて知ったので、プロパティをひととおり見てみたのですが
> それらしいものを見つけることはできませんでした…。

ごめんなさい、ContextMenuStrip や ToolStripDropDownMenu での話でした>ShowImageMargin プロパティ
引用返信 編集キー/
■18056 / inTopicNo.7)  Re[2]: .NET 2005以降で旧MainMenuなどを使いたい
□投稿者/ 渋木宏明(ひどり) (746回)-(2008/05/08(Thu) 13:21:53)
渋木宏明(ひどり) さんの Web サイト
> フォームを継承して、ContextMenu プロパティを追加

てか、デザイナから見えてないだけで、プロパティとしては存在しているはずなので、コードで設定するとか。
引用返信 編集キー/
■18083 / inTopicNo.8)  Re[4]: .NET 2005以降で旧MainMenuなど
□投稿者/ HSKN (4回)-(2008/05/08(Thu) 16:27:13)
2008/05/08(Thu) 16:28:11 編集(投稿者)

渋木宏明(ひどり)さん、ありがとうございます。

> どれだけ好みの表示なるか分かりませんが、RenderMode を System にしてみるとか。
これは既に試していたのですが、見た目がOfficeもどきではなくなるだけで、挙動などは変わらないので
私の望んでいるものではありませんでした。

> ごめんなさい、ContextMenuStrip や ToolStripDropDownMenu での話でした>ShowImageMargin プロパティ
なるほど。把握しました。ありがとうございます。

> てか、デザイナから見えてないだけで、プロパティとしては存在しているはずなので、コードで設定するとか。
質問文の下から7行目前後に書きましたが、そうしなくてもよい方法
(デザイナだけで解決できる方法) を探していました。m(_ _)m

「デザイナでは無理」という結論に達したならば、この方法で行きたいと思います。
引用返信 編集キー/
■18097 / inTopicNo.9)  Re[5]: .NET 2005以降で旧MainMenuなど
□投稿者/ 渋木宏明(ひどり) (747回)-(2008/05/08(Thu) 17:43:22)
渋木宏明(ひどり) さんの Web サイト
> (デザイナだけで解決できる方法) を探していました。m(_ _)m

既に Form の継承クラスは存在してるんですよね?

なら、MainMenu プロパティを override して属性つけなおす、じゃダメです?

引用返信 編集キー/
■18103 / inTopicNo.10)  Re[6]: .NET 2005以降で旧MainMenuなど
□投稿者/ HSKN (5回)-(2008/05/08(Thu) 19:17:36)
> なら、MainMenu プロパティを override して属性つけなおす、じゃダメです?

でも、この方法では Form にプロパティが追加されるだけで、
フォームに貼り付けた Edit などには適用されないですよね。
残念ですが、この方法で解決することはできなさそうです。

まだ C# や .NET の仕様を完全に理解していないので、
何か勘違いでおかしなことを言っていたらすいません。
引用返信 編集キー/
■18119 / inTopicNo.11)  Re[7]: .NET 2005以降で旧MainMenuなど
□投稿者/ 渋木宏明(ひどり) (748回)-(2008/05/08(Thu) 21:53:34)
渋木宏明(ひどり) さんの Web サイト
> でも、この方法では Form にプロパティが追加されるだけで、
> フォームに貼り付けた Edit などには適用されないですよね。

そっか、最初の投稿に ContextMenu なんかも含めて、って書いてありましたね。

> 残念ですが、この方法で解決することはできなさそうです。

じゃあ、少し変形して IExtenderProvider で MainMenu や ContextMenu に代わる「おれおれプロパティ」を生やしてみるとか。

引用返信 編集キー/
■18122 / inTopicNo.12)  Re[8]: .NET 2005以降で旧MainMenuなど
□投稿者/ Azulean (101回)-(2008/05/08(Thu) 22:43:47)
> じゃあ、少し変形して IExtenderProvider で MainMenu や ContextMenu に代わる「おれおれプロパティ」を生やしてみるとか。
この辺ですね。
http://msdn.microsoft.com/ja-jp/library/ms229066.aspx

プロパティグリッドでのみ表示したいという要求は満たせそうに見えます。
引用返信 編集キー/
■18473 / inTopicNo.13)  Re[9]: .NET 2005以降で旧MainMenuなど
□投稿者/ HSKN (6回)-(2008/05/14(Wed) 13:25:28)
2008/05/14(Wed) 13:25:59 編集(投稿者)

お返事が遅くなり申し訳ありません。
みなさんご回答ありがとうございました。

IExtenderProvider について、まだ内容を熟読していませんが試してみようと思います。
ありがとうこざいました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -