http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 2344|回复: 6

[毕业生提问] combobox lookupedit的范围非级联出发中止原理探讨

[复制链接]
发表于 2016-3-23 16:13:30 | 显示全部楼层 |阅读模式
案例背景:1, 程序使用DevExpress的lookupedit来实现. 此控件的使用类似于combobox的使用, 这里想问的问题无关于控件, 想问下事件触发机制, 何时中断的问题.
首先, 下拉控件, 就说combobox1 吧和 combobox2 同时绑定了同一个source 就datatable吧, 分别绑定第一列和第二列的问题.
现在改变其中任一一个, 则另一个值保持改变. (Commobox貌似默认保持联动, 而我今天的lookupedit则默认不变). 所以我就想了如下的方法去改变:
1. 绑定lookupedit1 和 lookupedit2 的textChanged事件到一个方法, 去当前object的序号, 然后将2个序号和这个保持不变. 实际编译运行正常. 问题来了:
控件1 值改变, -> 触发事件 -> 改变控件2 值 ->触发事件 ->....(改变控件1值????) ->......
问题大概就是这样, 实际中, 我在互相改变前, 如果2者相同, 我是直接返回的, 来间接中断这个过程. [问题解决了?]
好吧, 问着问着就解决了, 如果我不判断, 就是互相引用对方值, 那会不会就死循环了??

问题之外: 懂DevExpress的知道 能不能设置默认显示值的格式了. 譬如datatable[2]列的值为长时间格式, lookupedit 的
Properties.ValueMember 就是这列, 但是我只想显示为短日期格式, 试了很多方式都不成功.
求解答.


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2016-3-23 16:35:47 | 显示全部楼层
Tables dt like this:


    index StartDate         EndDate
    1   2015/03/23 22:00    2015/03/23 23:00
    2   2015/03/23 22:00    2015/03/23 22:00
    3   2015/03/23 22:00    2015/03/23 22:00

i have set:
    lookupedit1.Properties.ValueMember = "StartDate";
    lookupedit1.Properties.DisplayMember = "StartDate";

so, the value has show OK, long date Type, but i want the DisplayMemeber like short date type. i have try any of below, but it's havn't work expectly.

```
lookupedit1.Properties.Mask.EditMask = "yyyy-MM-dd";
lookupedit1.Properties.DisplayFormat.FormatString = "yyyy-MM-dd";
lookupedit1.Properties.EditFormat.FormatString = "yyyy-MM-dd";  
```
how can i resolve my questions?
发表于 2016-3-23 17:43:10 | 显示全部楼层
会,但系统会自动结束,这种可预知的循环。
 楼主| 发表于 2016-3-24 09:06:56 | 显示全部楼层
站长苏飞 发表于 2016-3-23 17:43
会,但系统会自动结束,这种可预知的循环。

是么? 可以介绍下可靠实现, 我没找到对应原理, 也不知道能不能找到对应答案.
 楼主| 发表于 2016-3-24 09:08:34 | 显示全部楼层
公布下我自己的答案, stack overflow上有人给了答案, 我验证下通过.
http://stackoverflow.com/questio ... t/36174938#36174938
主要是这三行的设置:
[C#] 纯文本查看 复制代码
lookUpEdit1.Properties.Mask.EditMask = "d"; // short date
lookUpEdit1.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.DateTime;
lookUpEdit1.Properties.Mask.UseMaskAsDisplayFormat = true;
 楼主| 发表于 2016-3-24 09:10:32 | 显示全部楼层
hijushen 发表于 2016-3-24 09:08
公布下我自己的答案, stack overflow上有人给了答案, 我验证下通过.
http://stackoverflow.com/questio . ...

有共同学习的, 推荐除了官方的文档, 比较好的总结笔记博客让我看下.
有些东西还是比较别手的, 我接手的项目主要是dev winform 11版本的.
发表于 2016-3-24 10:06:17 | 显示全部楼层
这个控件了解不多,没有实际用过,仅仅是玩过几把
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-26 00:22

© 2014-2021

快速回复 返回顶部 返回列表