2017-08-08 4 views
0

LabelとCheckBoxには「Padding」プロパティがあります。 これは、TableLayoutPanelでその位置を設定したい場合に非常に便利です。 ComboBoxで同じことをやりたかったのですが、驚いたことにComboBoxでPaddingプロパティが見つかりませんでした。ComboBoxのPaddingプロパティはどこにありますか?

本当にありませんか? そうでなければ、TableLayoutPanelのコンボボックスインデントのインデントを設定するための回避策がありますか?

+0

これは、コンボボックスがコントロールであるためです。 https://msdn.microsoft.com/en-us/library/system.windows.forms.control.padding(v=vs.110).aspxを参照してください。さらに、おそらく '[Browsable(false)、EditorBrowsable(EditorBrowsableState.Never)]'のようなもので隠されています。しかし、たとえ見えなくても、コードから設定できるはずです。 – djv

答えて

2

ComboBoxはControlから派生しているため、存在します。それはプロパティを持っています。 https://msdn.microsoft.com/en-us/library/system.windows.forms.control.padding(v=vs.110).aspxを参照してください

しかし、devsは意図的にコンボボックスのためにそれを隠しました。ここでComboBox.Padding [メタデータから]

コンボボックスどうやら

// 
// Summary: 
//  This property is not relevant for this class. 
// 
// Returns: 
//  A System.Windows.Forms.Padding value. 
[Browsable(false)] 
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
[EditorBrowsable(EditorBrowsableState.Never)] 
public Padding Padding { get; set; } 

の署名、

This property is not relevant for this class.あなたはは、実行時にコードから、それを修正するためにを試すことができないと言うことではないです...

this.comboBox1.Padding = new Padding(10); // this compiles! 

...しかし、これはやっていないようです何でも

TableLayoutPanelにはパディング自体があります。これはおそらくあなたのために働くでしょう

+1

これは私が2年後に自分自身を嫌うコメントのようなものです:-)なぜそれが関係ないのか説明はありません。 – tmighty

+0

しかし、TableLayoutPanelには、各行/ colのPaddingがありません。 – tmighty

+0

パディングとマージンがあります。パディングは、他のコントロールで行っていたことを処理する必要がありますが、すべてのコントロールに適用されます。最初にComboBoxに従ってtlp Paddingを設定し、他のものを個別に調整することができます。 – djv

関連する問題