アダプター構成のカスタム ドロップダウン エディター
カスタム エディターのコードには、パスワードを入力するためのドロップダウン テキスト ボックスを表示する System.Drawing.Design.UITypeEditor クラスから派生したエディターが表示されます。 GetEditStyle オーバーライドは、UIEditorEditStyle.DropDown を返して、ドロップダウン サブコントロールを示します。 サービス メソッド DropDownControl と CloseDropDown は、 CreatePassword で作成されたコントロールを管理します。
次のコードはカスタム ドロップダウン エディターのクラス定義です。
/*************************************************************************
* Copyright (c) 1999-2004 Microsoft Corporation. All rights reserved. *
* *
* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY *
* KIND, WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE *
* IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR *
* PURPOSE. THE ENTIRE RISK OF USE OR RESULTS IN CONNECTION WITH THE USE *
* OF THIS CODE AND INFORMATION REMAINS WITH THE USER. *
*************************************************************************/
using System;
using System.ComponentModel;
using System.Drawing.Design;
using System.Windows.Forms;
using System.Windows.Forms.Design;
using System.Security;
using System.Security.Permissions;
using Microsoft.BizTalk.Adapter.Framework;
using Microsoft.BizTalk.Adapter.Framework.Forms;
namespace AdapterManagement.ComponentModel {
/// <summary>
/// PasswordUITypeEditor implements a user interface for acquiring passwords
/// within a visual designer.
/// </summary>
public class PasswordUITypeEditor : UITypeEditor {
public const char PasswordChar = '\u25cf';
private IWindowsFormsEditorService _service = null;
private TextBox _password = null;
[SecurityPermissionAttribute(SecurityAction.LinkDemand)]
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) {
if (null != context && null != context.Instance) {
return UITypeEditorEditStyle.DropDown;
}
return base.GetEditStyle(context);
}
[SecurityPermissionAttribute(SecurityAction.LinkDemand)]
public override object EditValue(ITypeDescriptorContext context,
IServiceProvider provider,
object value) {
if (null != context && null != context.Instance && null != provider) {
this._service = (IWindowsFormsEditorService) provider.GetService
(typeof(IWindowsFormsEditorService));
if (null != this._service) {
this._password = CreatePassword();
this._service.DropDownControl(this._password);
value = this._password.Text;
}
}
return value;
}
private TextBox CreatePassword () {
TextBox password = new TextBox();
password.PasswordChar = PasswordUITypeEditor.PasswordChar;
password.Leave += new EventHandler(password_Leave);
}
private void password_Leave(object sender, EventArgs e) {
if (null != this._service) {
this._service.CloseDropDown();
}
}
} // PasswordUITypeEditor
} // Microsoft.BizTalk.Adapter.Framework.ComponentModel
参照
カスタム アダプター構成デザイナー
アダプター構成のカスタム モデル ダイアログ エディター
アダプター構成のカスタム型コンバーター
アダプターの詳細構成コンポーネント