

お世話になります。

VisualStudio2019でWindowsアプリケーションを作成する際に、フォームに配置するコントロールに  
**『デザイナ上から』**Nameプロパティを設定する方法はありますでしょうか。

コード側で設定すれば、『xxx.Name = "あいうえお";』でできますが、デザイナ上にはこのプロパティが  
表示されません。特にコードで動的に変化させたりする必要もなく、設計上で済ませたいので  
デザイナで完結させたいのですが、その方法がありまたら、お教えいただけますでしょうか。

独自で作ったプロパティなら、デザイナ上で表示されるのですが、既存のプロパティを表示  
させるといったことは見つかりませんでした。

[![画像の説明をここに入力](https://i.stack.imgur.com/U2L4Z.jpg)](https://i.stack.imgur.com/U2L4Z.jpg)

よろしくお願いいたします。


CC BY-SA 4.0
2019-11-27T05:07:46.207
60879
2019-11-27T14:12:28.597
9374
question
c# visual-studio
C# VisualStudio2019で、デザイナ上からNameプロパティを設定する方法はありますか？


**再検討して追記**  
Nameプロパティの変更は、今まで下に書いてきたようにデザイナーツールを少しでも使うとリセットされてしまうので、使い勝手が良くないですね。これにこだわるのは下策だと思われます。

その代わりになって、デザイナーツール/プロパティウインドウで変更しても問題なく、情報が保持されてオブジェクトの識別に使えるものとして、`Tag`があるのではないでしょうか。

質問のスクリーンショットにも出ていますが、その欄にカーソルを移動させると、「オブジェクトに関連付けられた、ユーザー定義のデータです。」と表示されます。

ここにデータを入力しておけば、ソースにも反映されますし、デザイナーツールで他のフォームやコントロールを操作してもリセットされることはありません。

既に`Tag`を何かに使っているのなら、用途を追加・重複させるのは良くないですが、そうで無いなら検討に値すると思われます。  
[![TagProperty](https://i.stack.imgur.com/DM9ig.png)](https://i.stack.imgur.com/DM9ig.png)

ソースはこちらです。  
[![TagSource](https://i.stack.imgur.com/WOf4U.png)](https://i.stack.imgur.com/WOf4U.png)

* * *

**以下は当初の回答：残しておきます**

そのままのName(プロパティウインドウ上はカッコつきの(Name)ですが)を書き換えられると思いますが、それではダメなのでしょうか？  
[![PropertyWindow](https://i.stack.imgur.com/kWZMD.png)](https://i.stack.imgur.com/kWZMD.png)

変えた例：  
[![NewNamed](https://i.stack.imgur.com/coPfF.png)](https://i.stack.imgur.com/coPfF.png)

これらのことはデザイナーツールが画面上の表示と`Xxxx.Designer.cs`ソースを両方変更しているだけなので、どちらをいじっても同じだと思いますが。上記の結果は以下のソースになります。  
(Name)を変えれば、コントロール名称(この場合は`this.CustomizeNamedButton1.Xxxx`の`CustomizeNamedButton1`の部分)も変更されています。  
[![Designer.cs抜粋](https://i.stack.imgur.com/KbTlZ.png)](https://i.stack.imgur.com/KbTlZ.png)

一応注意のコメントは書いてありますが、設定後にさらにVisualStudio上で直接`Xxxx.Designer.cs`ソースを編集しても、コントロール名称の変更程度なら問題なく反映されると思います。

* * *

なお、ここでコントロール名称は変えずに、上記.Nameプロパティだけを変えたいという場合は、プロパティウインドウ上では出来ないと思われます。  
`Xxxx.Designer.cs`ソースを表示して直接変更するのが一番早いのではないでしょうか？  
以下のように変えてビルドしてもエラーは出ていません。  
[![FurtherChanged](https://i.stack.imgur.com/onOr5.png)](https://i.stack.imgur.com/onOr5.png)

この後、
**上記のコントロールに限らずデザイナーツールで何かを変更すると、.Nameプロパティがコントロールと同じ名前に変わるので、また別々に変えたい場合は再度ソースを直接編集する必要があります。**  
非常に煩わしいですね。

**コントロールオブジェクト名称と.Nameプロパティを別々にしたい場合は、いったん変えた後はデザイナーツールを一切操作しないか、それは諦めてプログラム上で書き換えるかのどちらかになるでしょう。**


CC BY-SA 4.0
2019-11-27T05:18:29.067
60880
2019-11-27T14:12:28.597
2019-11-27T14:12:28.597
26370
26370
60879
answer