首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 请问patrickpan在吗? [已结贴,结贴人:laoguang_2008]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-12 16:02:55 楼主
    我使用了下面的代码,但是当焦点离开lookupedit后,输入的内容也不见了。还是自己输入值。
    『1. lookup也可以輸入值的,輸入后,如果在lookup中找不到,添加到lookup數據源中,請參照幫助文檔。』这个帮助文档哪里有呢?
    C# code
    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            DataTable dt;

            private void Form1_Load(object sender, EventArgs e)
            {
                dt = new DataTable();
                dt.Columns.Add("Test", typeof(string));

                DataRow dr = dt.NewRow();
                dr[0] = "Hello,World";
                dt.Rows.Add(dr);

                lookUpEdit1.Properties.DataSource = dt;
            }

            private void lookUpEdit1_ProcessNewValue(object sender, DevExpress.XtraEditors.Controls.ProcessNewValueEventArgs e)
            {
                if (MessageBox.Show(this, "Add the '" + e.DisplayValue.ToString() + "' entry to the list?", "Confirm", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    //(lookUpEdit1.Properties.DataSource as ContactList).Add(new Contact(e.DisplayValue.ToString()));
                    DataRow dr = dt.NewRow();
                    dr[0] = e.DisplayValue.ToString();
                    (lookUpEdit1.Properties.DataSource as DataTable).Rows.Add(dr);
                    e.Handled = true;
                }

            }
        }


    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-12 16:44:211楼 得分:0
    自己顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yagebu1983
    • 等级:
    发表于:2008-05-12 16:45:542楼 得分:0
    帮你顶!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 11:06:053楼 得分:0
    这段代码我专门测试过的,没有问题。
    看来你不熟悉lookupEdit这个控件。
    在界面上设置这些参数,在代码中会自动生成:
    new DevExpress.XtraEditors.Controls.LookUpColumnInfo("Test", "测试", 20, DevExpress.Utils.FormatType.None, "", true, DevExpress.Utils.HorzAlignment.Default, DevExpress.Data.ColumnSortOrder.None)});
                this.lookUpEdit1.Properties.DisplayMember = "Test";
                this.lookUpEdit1.Properties.NullText = "";
                this.lookUpEdit1.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;
                this.lookUpEdit1.Properties.ValueMember = "Test";
    全部代码如下(测试可以添加,可以运行。):
    有什么问题联系我QQ: 2618543
    C# code
    partial class Form1 { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.lookUpEdit1 = new DevExpress.XtraEditors.LookUpEdit(); ((System.ComponentModel.ISupportInitialize)(this.lookUpEdit1.Properties)).BeginInit(); this.SuspendLayout(); // // lookUpEdit1 // this.lookUpEdit1.Location = new System.Drawing.Point(79, 93); this.lookUpEdit1.Name = "lookUpEdit1"; this.lookUpEdit1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); this.lookUpEdit1.Properties.Columns.AddRange(new DevExpress.XtraEditors.Controls.LookUpColumnInfo[] { new DevExpress.XtraEditors.Controls.LookUpColumnInfo("Test", "测试", 20, DevExpress.Utils.FormatType.None, "", true, DevExpress.Utils.HorzAlignment.Default, DevExpress.Data.ColumnSortOrder.None)}); this.lookUpEdit1.Properties.DisplayMember = "Test"; this.lookUpEdit1.Properties.NullText = ""; this.lookUpEdit1.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard; this.lookUpEdit1.Properties.ValueMember = "Test"; this.lookUpEdit1.Size = new System.Drawing.Size(253, 21); this.lookUpEdit1.TabIndex = 0; this.lookUpEdit1.ProcessNewValue += new DevExpress.XtraEditors.Controls.ProcessNewValueEventHandler(this.lookUpEdit1_ProcessNewValue); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(488, 379); this.Controls.Add(this.lookUpEdit1); this.Name = "Form1"; this.Text = "Form1"; this.Load += new System.EventHandler(this.Form1_Load); ((System.ComponentModel.ISupportInitialize)(this.lookUpEdit1.Properties)).EndInit(); this.ResumeLayout(false); } #endregion private DevExpress.XtraEditors.LookUpEdit lookUpEdit1; } ///////////////////////////////////////////////////////////////////// public partial class Form1 : DevExpress.XtraEditors.XtraForm { public Form1() { InitializeComponent(); } DataTable dt; private void Form1_Load(object sender, EventArgs e) { dt = new DataTable(); dt.Columns.Add("Test", typeof(string)); DataRow dr = dt.NewRow(); dr[0] = "Hello,World"; dt.Rows.Add(dr); lookUpEdit1.Properties.DataSource = dt; } private void lookUpEdit1_ProcessNewValue(object sender, DevExpress.XtraEditors.Controls.ProcessNewValueEventArgs e) { if (MessageBox.Show(this, "Add the '" + e.DisplayValue.ToString() + "' entry to the list?", "Confirm", MessageBoxButtons.YesNo) == DialogResult.Yes) { //(lookUpEdit1.Properties.DataSource as ContactList).Add(new Contact(e.DisplayValue.ToString())); DataRow dr = dt.NewRow(); dr[0] = e.DisplayValue.ToString(); (lookUpEdit1.Properties.DataSource as DataTable).Rows.Add(dr); e.Handled = true; } } }

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 14:35:484楼 得分:0
    我的代码是这样的,您看有什么问题?
                //
                // lookUpEdit12
                //
                this.lookUpEdit12.DataBindings.Add(new System.Windows.Forms.Binding("EditValue", this.出口合同BindingSource, "客户名称", true));
                this.lookUpEdit12.Location = new System.Drawing.Point(72, 327);
                this.lookUpEdit12.Name = "lookUpEdit12";
                this.lookUpEdit12.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
                new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
                this.lookUpEdit12.Properties.Columns.AddRange(new DevExpress.XtraEditors.Controls.LookUpColumnInfo[] {
                new DevExpress.XtraEditors.Controls.LookUpColumnInfo("名称", "Name1", 20, DevExpress.Utils.FormatType.None, "", true, DevExpress.Utils.HorzAlignment.Default, DevExpress.Data.ColumnSortOrder.None)});
                this.lookUpEdit12.Properties.DataSource = this.系统客户BindingSource;
                this.lookUpEdit12.Properties.DisplayMember = "名称";
                this.lookUpEdit12.Properties.NullText = "";
                this.lookUpEdit12.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;
                this.lookUpEdit12.Properties.ValueMember = "名称";
                this.lookUpEdit12.Size = new System.Drawing.Size(625, 21);
                this.lookUpEdit12.StyleController = this.dataLayoutControl1;
                this.lookUpEdit12.TabIndex = 57;
                this.lookUpEdit12.ProcessNewValue += new DevExpress.XtraEditors.Controls.ProcessNewValueEventHandler(this.lookUpEdit12_ProcessNewValue);
                //
                // 系统客户BindingSource
                //
                this.系统客户BindingSource.DataMember = "系统_客户";
                this.系统客户BindingSource.DataSource = this.cessdbDataSet;
                //

            private void lookUpEdit12_ProcessNewValue(object sender,
              DevExpress.XtraEditors.Controls.ProcessNewValueEventArgs e)
            {
                DataRow dr = cessdbDataSet.系统_客户.NewRow();
                dr[1] = e.DisplayValue.ToString();
                cessdbDataSet.系统_客户.Rows.Add(dr);           
                e.Handled = true;
            }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 19:15:335楼 得分:100
    cessdbDataSet.系统_客户.Rows.Add(dr);
    数据源添加数据后,和控件重新绑定:

    DataRow dr = cessdbDataSet.系统_客户.NewRow();
    dr[1] = e.DisplayValue.ToString();
    cessdbDataSet.系统_客户.Rows.Add(dr);           
    e.Handled = true;
    改成:

    DataRow dr = cessdbDataSet.系统_客户.NewRow();
    dr[1] = e.DisplayValue.ToString();
    cessdbDataSet.系统_客户.Rows.Add(dr);           
    this.lookUpEdit12.Properties.DataSource = cessdbDataSet.系统_客户;
    e.Handled = true;

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 10:47:206楼 得分:0
    我测试了,可以了,谢谢呀呵呵
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 10:56:027楼 得分:0
    但我如果把代码改成这样就出错了
    DataRow dr = (this.lookUpEdit12.Properties.DataSource as DataTable).NewRow();//cessdbDataSet.系统_客户.NewRow();
                dr[0] = e.DisplayValue.ToString();
                (this.lookUpEdit12.Properties.DataSource as DataTable).Rows.Add(dr);
                //this.lookUpEdit12.Properties.DataSource = cessdbDataSet.系统_客户;
                e.Handled = true;
    提示:未将对象引用设置到对象的实例。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 12:15:168楼 得分:0
    看看這些代碼,根據這些代碼修改吧。
    this.lookUpEdit12.Properties.DataSource = this.系统客户BindingSource;
    this.lookUpEdit12.Properties.DisplayMember = "名称";

    this.系统客户BindingSource.DataMember = "系统_客户";
    this.系统客户BindingSource.DataSource = this.cessdbDataSet;
    建議LZ不要用那些拖拉控件生成的代碼,可維護性太差了。

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 13:20:119楼 得分:0
    看看這些代碼,根據這些代碼修改吧。
    this.lookUpEdit12.Properties.DataSource = this.系统客户BindingSource; 
    this.lookUpEdit12.Properties.DisplayMember = "名称"; 

    this.系统客户BindingSource.DataMember = "系统_客户"; 
    this.系统客户BindingSource.DataSource = this.cessdbDataSet; 
    不好意思,我不明白这是什么意思。
    根据上面这四行代码修改下列代码吗?
    DataRow dr = (this.lookUpEdit12.Properties.DataSource as DataTable).NewRow();//cessdbDataSet.系统_客户.NewRow();
                dr[0] = e.DisplayValue.ToString();
                (this.lookUpEdit12.Properties.DataSource as DataTable).Rows.Add(dr);
                //this.lookUpEdit12.Properties.DataSource = cessdbDataSet.系统_客户; 
                e.Handled = true;

    您说的可维护性差是指什么呢?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 13:41:1110楼 得分:0
    问的太多,真是打扰您了.我就想弄清楚些呵呵.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 17:37:0911楼 得分:0
    呵呵,另外一个话题,说起来比较长,加QQ聊。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved