0

通常の winform を作成してフォームに追加し、キーと値LookUpEditを含む辞書を作成しました。を使用してロードしました。 Lookupedit がロードされたら、辞書キーを非表示にしたい:stringstringLookupEdit.Properties.DatasourceBindingSource

private LookUpEdit lookup1;

void InitializeComponent()
{
    //...
    this.lookup1 = new DevExpress.XtraEditors.LookUpEdit();
    this.lookup1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                        | System.Windows.Forms.AnchorStyles.Right)));
    //this.cmbCards.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
    this.lookup1.Location = new System.Drawing.Point(400, 125);
    this.lookup1.Name = "Test";
    this.lookup1.Properties.ShowHeader = false;
    this.lookup1.Properties.ValueMember = "Test";
    this.lookup1.Size = new System.Drawing.Size(400, 85);
    this.lookup1.TabIndex = 0;
    this.lookup1.Tag = "";
    this.lookup1.Properties.BestFit();
    this.lookup1.Properties.ShowDropDown = DevExpress.XtraEditors.Controls.ShowDropDown.SingleClick;
    this.lookup1.Properties.BestFit();
    this.lookup1.Properties.PopupWidth = 50;
    this.lookup1.Properties.PopupSizeable = false;
    //...
}

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        Dictionary<string, string> dic = new Dictionary<string, string>();
        dic.Add("Test", "1");
        dic.Add("Test2", "2");
        dic.Add("Test3", "3");
        dic.Add("Test4", "4");
        dic.Add("Test5", "5");
        dic.Add("Test6", "6");
        dic.Add("Test7", "7");
        dic.Add("Test8", "8");
        dic.Add("Test9", "9");
        dic.Add("Test10", "10");

        this.lookup1.Properties.DataSource = new BindingSource(dic, null);
        this.lookup1.Properties.ShowLines = false;
        this.lookup1.Properties.ShowPopupShadow = false;
        this.lookup1.ItemIndex = 0;
    }
}

これは次のことを示しています。

Output 
Test  1
Test2 2

「1」
「テスト」を非表示にする必要があるため、出力が必要です。

4

2 に答える 2

2

解決策: に 2 つの列を追加してからlookupEdit、 を割り当てdatasourceます。その後、これらの列にアクセスできるようになります。lookupEdit.properties.Columns動的に生成された列はコレクションに追加されません。

LookUpEdit クラスを参照

これを使って:

private void CreateLookupEdit()
{
    ledMyControl = new LookUpEdit();
    ledMyControl.Properties.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("Key"));
    ledMyControl.Properties.Columns.Add(new DevExpress.XtraEditors.Controls.LookUpColumnInfo("Value"));

    this.Controls.Add(ledMyControl);
    Dictionary<string, string> dic = new Dictionary<string, string>();
    dic.Add("Test", "1");
    dic.Add("Test2", "2");
    dic.Add("Test3", "3");
    dic.Add("Test4", "4");
    dic.Add("Test5", "5");
    dic.Add("Test6", "6");
    dic.Add("Test7", "7");
    dic.Add("Test8", "8");
    dic.Add("Test9", "9");
    dic.Add("Test10", "10");
    ledMyControl.Properties.DisplayMember = "Value";
    ledMyControl.Properties.ValueMember = "Key";
    ledMyControl.Properties.DataSource = dic.ToList();

    ledMyControl.Properties.Columns[0].Visible = false;
}

参照: ArrayList にバインドさ
れたデータソース LookupEdit としてのDictionary フィード lookupEdit with Dictionary

于 2013-02-06T12:40:19.527 に答える
1

コード ビハインドで次のイベントを管理する

lookup1.Popup += new EventHandler(gridLookUpEdit1_Popup);

protected void gridLookUpEdit1_Popup(object sender, EventArgs e)
{
    this.lookup1.Properties.View.Columns[0].Visible = false;
}
于 2013-02-06T11:35:15.053 に答える