讨论有分。100分,讨论textbox多行显示有关问题
讨论有分。100分,讨论textbox多行显示问题我测试用的是C#2005,在winodws mobile 6.0下运行测试内容:两个tex
讨论有分。100分,讨论textbox多行显示问题 我测试用的是C#2005,在winodws mobile 6.0下运行 测试内容:两个textbox都设置为多行显示 我在textbox1里写了句textbox2.focus(); 理应得到的结果:textbox2得到光标,textbox1失去光标 实际得到的记过:textbox1仍然获取到光标 我测试跟中了下代码 发现, 当执行了textbox2.focus();后 (`1)textbox1.lostfocus (2)textbox2.gotfocus (3)textbox2.lostfocus (4)textbox1.gotfocus 若把textbox1,textbox2设置为当行显示,则不会出现以上问题,为什么?因为时间关系,没有测试一个单行的textbox和一个多行的textbox2会不会有以上问题, 我猜测若单行文本textbox1写textbox2.focus ,textbox2能够获取到焦点 但若在textbox2写textbox1.focus,那么textbox2仍然没有失去焦点。 为什么会这样的呢? 讨论 讨论下,这今天一直在为着烦恼,看过些资料,这个多行显示是有BUG的,[解决办法] 估计是楼主的逻辑出了问题。 我做了个简单的例子: 在Form上方两个TextBox:textBox1和textBox2,默认textBox1有焦点。 再放一个Button,在Button的Click响应里调用:textBox2.Focus(); 运行后都正常,开始textBox1有焦点,点击button后textBox1失去焦点,textBox2得到焦点。[解决办法] 刚试过 textBox设置多行
C# codeprivate void textBox1_KeyPress(object sender, KeyPressEventArgs e) { textBox2.Focus(); }[解决办法] textBox1_KeyPress吧,想想消息的过程就知道是为什么了~~~[解决办法] 发送一个消息, Shift+TAB键[解决办法] 经过测试,猜测: 按"上","下"键后,程序执行了焦点改变,又执行了上下滚动条的滚动 (即使不可见,也会执行到,禁用滚动条还没试过. 这个假设也符合楼主所说的 单行 多行 之间的区别..), 这使得焦点重新回到触发控件`` 楼主可以使用组合键让用户在输入控件之间切换[解决办法] 是不是操作引起页面回发,导致页面刷新,把信息给丢了?[解决办法] 这样的问题好纠结...我在我这里试了一下...KeyDown,按上下的时候,textBox2.Focus()执行不成功,其它的情况是成功的, KeyPress,按方向键左右上下的时候textBox2.Focus()不成功,其它的时候是成功的. 只觉得这不是BUG,而可能逻辑不同...设计人员的内部思想与你的想法不符...所以...[解决办法] 感觉不复杂,应该不会有bug的[解决办法] 这种简单的功能,为什么不交给js去实现呢?[解决办法] 探讨 引用: 经过测试,猜测: 按"上","下"键后,程序执行了焦点改变,又执行了上下滚动条的滚动 (即使不可见,也会执行到,禁用滚动条还没试过. 这个假设也符合楼主所说的 单行 多行 之间的区别..), 这使得焦点重新回到触发控件`` 楼主可以使用组合键让用户在输入控件之间切换 组合键,如果用tab就按照tabindex跳.但如果要返回前一个tabindex的控件,组合键是什么呢? shift+tab嘛?我尝试了,应该不是.[解决办法] 对12楼看法赞同,不知lz是什么意图,想完成什么功能?[解决办法] 用vs2008试试吧[解决办法] 我不搞C#,JAVA还可以一起研究下![解决办法] 上面的测试,符合理论啊............[解决办法] 哦[解决办法] 好像是有这样的BUG[解决办法] 做个标记~[解决办法] 学习![解决办法] 探讨 我做的那个测试就是一个窗体有两个textbox, C# codeprivatevoid textBox1_KeyDown(object sender, KeyEventArgs e) { textBox2.Focus(); } 然后在textbox1上写了这句话,就没有其他多余的代码了.所以应该不是逻辑错误
[解决办法] 路过 怎么算 ?[解决办法] 为什么大家的得分都是0分呢[解决办法] 逻辑问题[解决办法] 没有问题呀,我是在vs2008和wm6里测试的。 c#代码为 private void TextBox1_KeyDown(object sender, KeyEventArgs e) { TextBox2.Focus(); } 没出先所说的BUG[解决办法] 不要用 ControlXXXX.Focus(); // 并不能让 ActiveControl 变成 ControlXXXX 用 ActiveControl = ControlXXXX; ActiveControl.Focus();[解决办法] 正再学 不懂[解决办法] 嘿,我也赶上趟了~~~~~[解决办法] 这个我不懂,分析详细点哈[解决办法] 探讨 不要用 ControlXXXX.Focus(); // 并不能让 ActiveControl 变成 ControlXXXX 用 ActiveControl = ControlXXXX; ActiveControl.Focus();[解决办法] 讨论半天一点思路都没有~[解决办法] 看了,可是看不懂哦[解决办法] 跟着学习[解决办法] 应该没啥大问题嘛。也来看下如何解决。期待高手[解决办法] d[解决办法] 幫頂,謝謝。[解决办法] 关注中......[解决办法] D[解决办法] d[解决办法] 我做的那个测试就是一个窗体有两个textbox, C# code private void textBox1_KeyDown(object sender, KeyEventArgs e) { textBox2.Focus(); } 然后在textbox1上写了这句话,就没有其他多余的代码了.所以应该不是逻辑错误[解决办法] 逻辑问题,好好看看代码吧。[解决办法] up[解决办法] up too[解决办法] I know[解决办法] 1 是执行顺序的问题,eidtbox的keydown执行直接获取焦点,setfocus()设置焦点,主要是看哪个最后决定了焦点[解决办法] 抓紧,要不没了[解决办法] 汗一个。。看了很久。不懂。。初学者啊。。真。。。学习------解决方案--------------------
为什么不直接用win32 API呢,C#有太多的封装了[解决办法] 学习