54351


単純な自作プロパティStringPropを作成しました。  
Windows From Applicationを作成してコンストラクタの後のプロパティを追加しただけです。

[code]

        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            public string StringProp { set; get; }
        }
    
[/code]

どうやらプロパティはデザイナのプロパティウィンドウから設定できるようなのですが、StringPropというアイテムがありません。

どうすればデザイナから値を設定できるようになりますか。  
VS2017です。よろしくお願いいたします。


CC BY-SA 4.0
2019-04-20T23:21:58.193
54347
2019-04-21T06:11:03.423
32318
question
c#
C#の自作プロパティがデザイナのプロパティウィンドウに表示されない。


デザイナは`Form`のような標準クラスライブラリ、ユーザーコントロールのような第三者の作ったライブラリなどを **使用**
する際のデザイン操作を提供するものです。  
自分で作った`Form1`クラスを自分自身でデザインするのはマッチポンプでしかなく、そのような機能はありません。


CC BY-SA 4.0
2019-04-20T23:47:08.853
54348
2019-04-21T06:11:03.423
2019-04-21T06:11:03.423
4236
4236
54347
answer


どんなことがやりたいか、何を目指しているか、によって変わってくるでしょう。  
とりあえず、2つの方向が考えられます。これら以外なら質問内容を詳細化してください。

  * このままWinFormsアプリケーションとして完成させたい

    * デザイナで画面への表示内容をあらかじめ入力(かつデザイナで表示内容を確認)したい
    * @sayuriさん指摘のように、アプリケーション自身のフォームに対する、  
デザイナで編集できるプロパティの追加のような概念・機能はありません  
**標準のLabelコントロール/TextBoxコントロール等を配置すれば良いのでは？**  
**データは入力したいが表示はしたくない場合、非表示か表示位置をフォーム範囲外に設定**

    * 一応、[フォーム内にフォームを表示する](https://dobon.net/vb/dotnet/form/formwithinform.html) のようにして、子フォーム側で `Control/UserControl` のようにプロパティ追加すれば `Form` クラスだけでも対応できるようですが、わざわざやらなくても標準あるいはカスタムのコントロールで十分でしょう。
  * 他のWinFormsアプリケーションで使えるコンポーネントとして作成したい

    * 標準のコントロール等では機能が不足or多過ぎ/冗長なので独自に作りたい
    * 継承元を `Form` ではなく `Control` や `UserControl` にして、カスタムコントロール作成。  
方法/手順はMicrosoftの以下の記事全体を読んで勉強してください  
[.NET Framework を使用したカスタム Windows フォーム
コントロールの開発](https://docs.microsoft.com/ja-
jp/dotnet/framework/winforms/controls/developing-custom-windows-forms-
controls)  
例えばユーザーコントロールを作成し、プロパティ/イベントを追加・公開する一連の記事  
[タグ: ユーザーコントロール - HIRO'S.NET BLOG](http://blog.hiros-
dot.net/?tag=%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB)


CC BY-SA 4.0
2019-04-21T01:04:13.693
54351
2019-04-21T05:09:44.133
2019-04-21T05:09:44.133
26370
26370
54347
answer