DOBON.NET DOBON.NETプログラミング掲示板過去ログ

「コンポーネントの追加」メニューが表示されない。

環境/言語:[WinXP Pro SP2 / VC# ExpressEdidion]
分類:[その他]

Visual C# 2005 Express Edidion(SP1)を使用して、
「フォームを表示させずにトレイアイコンを表示する」
http://dobon.net/vb/dotnet/form/hideformwithtrayicon.html
の、「フォームを使わない方法」を試そうとしています。

手順の最初に、
>  1.コンポーネントを作成します。
>   Visual Studioのメニュー[プロジェクト]-[コンポーネントの追加]で作成できます
>   (作成したコンポーネントは「Component1」という名前であるとします)。

と、ありましたが、私のIDEの[プロジェクト]メニューには、
[コンポーネントの追加]という項目が表示されません。
(グレーアウトではなく、存在しない。)

Microsoftのサイトにも[プロジェクト]メニューの下に
[コンポーネントの追加]があることを示す記載があります。
http://msdn2.microsoft.com/ja-jp/library/fc77hxyh(VS.80).aspx


「新しい項目の追加」ウィザードのリストにも、
クラスやインタフェイスはあるものの[コンポーネント]は見つかりません。


バージョン情報はこんな感じです。(WinXP Pro SP2上で使用)
--------
Microsoft Visual Studio 2005
Version 8.0.50727.762 (SP.050727-7600)
Microsoft .NET Framework
Version 2.0.50727

インストールされている Edition: C# Express

Microsoft Visual C# 2005 76544-000-0000011-00126
Microsoft Visual C# 2005
--------


単純明快な部分で躓いているので、
何かしらのチョンボ系だとは思うのですが、
どなたか教えていただけませんでしょうか。

よろしくお願いします。
2007/07/09(Mon) 03:17:11 編集(投稿者)

私はよく知らないのですが、もしかすると、Express Editionではコンポーネントの追加ができないのかもしれませんね。(コンポーネントのデザインができないのかも?)

もしそうだとしても、自分でコードを書けば、コンポーネントの作成は可能でしょう。

ちなみに、

http://dobon.net/vb/dotnet/form/hideformwithtrayicon.html

で紹介した方法により作成されたコンポーネントのコードは、以下のようになりました。作成されたファイルは、Component1.csとComponent1.Designer.csの2つです。

=====Component1.cs=====
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;

namespace Sample
{
public partial class Component1 : Component
{
public Component1()
{
InitializeComponent();
}

public Component1(IContainer container)
{
container.Add(this);

InitializeComponent();
}
}
}

=====Component1.Designer.cs=====
namespace Sample
{
partial class Component1
{
/// <summary>
/// 必要なデザイナ変数です。
/// </summary>
private System.ComponentModel.IContainer components = null;

/// <summary>
/// 使用中のリソースをすべてクリーンアップします。
/// </summary>
/// <param name="disposing">マネージ リソースが破棄される場合 true、破棄されない場合は false です。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

#region コンポーネント デザイナで生成されたコード

/// <summary>
/// デザイナ サポートに必要なメソッドです。このメソッドの内容を
/// コード エディタで変更しないでください。
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
//
// notifyIcon1
//
this.notifyIcon1.Text = "notifyIcon1";
this.notifyIcon1.Visible = true;

}

#endregion

private System.Windows.Forms.NotifyIcon notifyIcon1;
}
}
ご回答ありがとうございます。

ExpressEditionは制限があるようなので、もしや…? と思っていたのですが、
やはりそうなのでしょうか。
もう少しレベルアップしたら購入を検討してみることにします。

とりあえず、今回の問題については、
次のどちらかの方法で回避(not解決)しようとしていたところでした。
 ・運用(仕様)を変更する。趣味なので妥協するとキリが無いですが。
 ・他人のSourceかProjectを参考にして、それを改造する。

Sourceまでいただきありがとうございます。
Projectに食わせて、いじくってみることにします。

ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板