複数行文字列にPropertyGrid
-
02-07-2019 - |
質問
が内蔵エディタのためのマルチライン文字列 PropertyGrid
.
解決
これらの System.Design.dll
は System.ComponentModel.Design.MultilineStringEditor
できるこんなところに使用されています:
public class Stuff
{
[Editor(typeof(MultilineStringEditor), typeof(UITypeEditor))]
public string MultiLineProperty { get; set; }
}
他のヒント
かを自分で作成する必要がありますか"というモーダルUIタイプ編集者。して作成していただく必要がありクラスを継承UITypeEditor.これは基本的に形状を取得する場合は、表示をクリックする省略記号はボタンの右側のプロパティを編集.
唯一の欠点から、しないといけないという飾りの特定の文字列の特定の属性。やっと自分もついていかなければいけなかった。私はこれらの情報からクリス-販売している""Windows形式のプログラミングC#"
ある商業propertygridという スマートPropertyGrid.NET によるVisualHint.
そうです。んかん"と呼ばれるものが見のプロパティエディタのためのようなコンボボックス
編集:としての@fryguybob、コンボボックス.項目を使用します。Windowsの場合です。ます。デザイン。ListControlStringCollectionEditor
を書く必要がある当社のカスタムエディタを複数行の支援物件のグリッド
こちらはお客様のテキストエディタクラスから実施 UITypeEditor
public class MultiLineTextEditor : UITypeEditor
{
private IWindowsFormsEditorService _editorService;
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.DropDown;
}
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
{
_editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
TextBox textEditorBox = new TextBox();
textEditorBox.Multiline = true;
textEditorBox.ScrollBars = ScrollBars.Vertical;
textEditorBox.Width = 250;
textEditorBox.Height = 150;
textEditorBox.BorderStyle = BorderStyle.None;
textEditorBox.AcceptsReturn = true;
textEditorBox.Text = value as string;
_editorService.DropDownControl(textEditorBox);
return textEditorBox.Text;
}
}
書カスタムプロパティグリッドおよびエディタの属性に
class CustomPropertyGrid
{
private string multiLineStr = string.Empty;
[Editor(typeof(MultiLineTextEditor), typeof(UITypeEditor))]
public string MultiLineStr
{
get { return multiLineStr; }
set { multiLineStr = value; }
}
}
メイン形式の譲渡をこのオブジェクト
propertyGrid1.SelectedObject = new CustomPropertyGrid();
所属していません StackOverflow