作者: Decline
查看: 1340|回复: 1
打印 上一主题 下一主题

LayeredListBox自定义添加DuiTextBox集合BUG

[复制链接]
跳转到指定楼层
楼主
Decline 发表于 2019-11-13 00:26:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查看: 1340|回复: 1
新建一个组件继承自LayeredListBox,在Dui虚拟控件中添加多个DuiTextBox,在显示后获取的光标有问题,求解决办法,效果图如下:

在你依次选择不同文本框进行文本输入时,之前获取到焦点的文本框不会失去焦点,在填写信息时会同步更新之前所有获取过焦点的文本框,代码如下


public partial class UTextDui : LayeredListBox
    {
        public UTextDui()
        {

        }


        public void addControls()
        {
            for (int i = 0; i < 10; i++)
            {
                DuiBaseControl baseComtrol = new DuiBaseControl();
                baseComtrol.Size = new Size(Width, 30);
                baseComtrol.BackColor = Color.Transparent;
                baseComtrol.Name = "baseControl_"+i.ToString();
                int zWidth = (this.Width - 20) / 3;
                for (int j = 0; j < 3; j++)
                {
                    DuiTextBox textBox = new DuiTextBox();
                    textBox.Size = new Size(zWidth,26);
                    textBox.Location = new Point(5*(j+1)+zWidth*j,2);
                    textBox.Name = "Text_" + i.ToString() + "_" + j.ToString();
                    textBox.Text = "Text_" + i.ToString() + "_" + j.ToString();
                    textBox.BackColor = Color.White;
                    textBox.BorderRender = new LayeredSkin.DirectUI.FilletBorderRender(15, 1, Color.Blue);
                    baseComtrol.Controls.Add(textBox);
                }
                Items.Add(baseComtrol);
                RefreshList();
                GC.Collect();               
            }
        }
    }


代码生成控件添加到窗体上,调用控件的addControl方法即可显示所有文本框,复现问题
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播
回复 论坛版权

使用道具 举报

沙发
 楼主| Decline 发表于 2019-11-14 13:34:51 | 只看该作者
折中的解决方案,在TextBox获取到光标之后通过委托向父窗体传递一个事件,在该事件中将鼠标光标转至其他控件上,之后再将光标移动到该TextBox上,需要进行下逻辑判断,在光标未离开该事件时触发委托事件,委托事件中需要判断下该状态,所有操作需要在TextBox获取到焦点时触发,没获取到焦点不触发该操作即可
您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-4-27 01:00, Processed in 0.662824 second(s), 31 queries , Gzip On.

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