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

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

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

Re[1]: ユーザーコントロールのデザイン処理について


(過去ログ 129 を表示中)

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

■76490 / inTopicNo.1)  ユーザーコントロールのデザイン処理について
  
□投稿者/ よぽん (49回)-(2015/07/15(Wed) 14:39:48)

分類:[C#] 

ユーザーコントロール作りました。
ラベルを配置して右横にボタンを配置しました。

このユーザーコントロールをフォームに配置して。
デザイン上で、ラベルの下にボタンを配置するように
変えたいと思ったのですけど。
ユーザーコントロールの移動しかできず、
ボタンの位置だけを移動することができません。

できないんでしょうか?

現状はとりあえずできないので、

public Button Btn
{
 get { return (button1); }
 set { button1 = value; }
}

ボタンをプロパティにして
Btn プロパティの Location を数値で入力
するようにしています。

引用返信 編集キー/
■76494 / inTopicNo.2)  Re[1]: ユーザーコントロールのデザイン処理について
□投稿者/ ぶなっぷ (36回)-(2015/07/15(Wed) 18:40:30)
できないと思います。
仮にコンボボックス的なものをユーザーコントロールで作るとして、
それを使う側で、勝手にコンボボックスののエディット部とプルダウン部を分離
されても困るでしょ?

引用返信 編集キー/
■76496 / inTopicNo.3)  Re[1]: ユーザーコントロールのデザイン処理について
□投稿者/ 魔界の仮面弁士 (408回)-(2015/07/15(Wed) 20:39:38)
No76490 (よぽん さん) に返信
> このユーザーコントロールをフォームに配置して。
> デザイン上で、ラベルの下にボタンを配置するように
> 変えたいと思ったのですけど。

その座標は、1 ドット単位で細かく指定できる必要がありますか?

たとえば TrackBar コントロールの場合、Orientation プロパティで
2 種類のレイアウトを変更できますよね。あんな感じで、
あらかじめプリセットのデザインを幾つか用意しておき、
その中から選んでもらうようにするのは如何でしょう。


> ユーザーコントロールの移動しかできず、
> ボタンの位置だけを移動することができません。

UserControl 上の内包コントロールには、直接アクセスできないようになっています。
たとえば NumericUpDown の場合、テキストボックスの横に、
UpDownButton コントロールが 2 つ配置されています。
DataGridView も同様に、幾つかのコントロールを内包しています。

それらの内包コントロールの座標などを、外部から直接操作できてしまうと、
いろいろと都合が悪いですよね。


もし、意図的に操作させたいのであれば、そのための機能を作りこまねばなりません。
https://msdn.microsoft.com/ja-jp/library/37899azc.aspx



> ボタンをプロパティにして
ボタンそのものを公開してしまうと、
 this.yourControl1.Btn = this.ButtonOK;
 this.yourControl2.Btn = this.ButtonCancel;
 this.yourControl3.Btn.Visible = false;
のように、ボタンを好き勝手に操作できてしまうので、
あまりにも都合が悪いと思います。


ボタンそのものではなく、位置情報のみを公開すれば十分では無いでしょうか?

public Point ButtonPosition
{
 get { return this.button1.Location; }
 set { this.button1.Location = value; }
}

実際には setter 側で、座標の調整なども行った方が良いでしょう。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -