gpt4 book ai didi

c# - 在标签之间切换时执行某些操作?

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:23 24 4
gpt4 key购买 nike

我知道标签无法获得焦点,它似乎对标签切换没有反应。但是我所需要的只是当用户在只有标签的表单上使用选项卡时执行一些操作。例如,每个标签都有一个关联的文本框,但当标签可见时该文本框隐藏,反之亦然。我想要的是允许用户使用选项卡在表单上的隐藏文本框之间切换,通常情况下,所有文本框都是隐藏的,而所有标签都显示,标签应该是可聚焦的,以便在使用选项卡时,它可以知道(作为某些事件)显示关联的文本框并隐藏自身,当切换到另一个标签时,显示关联文本框的当前标签将再次可见,其关联的文本框将隐藏。

我必须实现这种 2 合 1 控件(复合控件中的文本框和标签),因为我只想显示文本(没有边框和背景),就好像文本框具有透明背景一样,只显示当用户需要编辑时(通过单击字段或使用选项卡开始),文本框(并隐藏标签)。如果有一个透明的背景文本框,这对我来说应该更容易,但在 Windows 窗体的世界中没有一个像样的文本框。请注意,我也知道 alpha blend transparent textbox presented in an article in codeproject 但它不能满足我的需要,因为文本呈现错误,文本路径周围有丑陋的边框(某种缺少抗锯齿功能,但比这更糟糕)。

如果这个机制不能实现,我真的很遗憾,当所有字段似乎只显示信息时,表单看起来更好,但点击或标签切换可以让用户跳转到编辑模式。我希望那里有一些解决方案。提前谢谢你。

最佳答案

我心血来潮找到了这个解决方案。我不认为有这样的解决方案,但它确实有助于解决我的问题(而且我相信很多其他人会从中受益)。简单地说,我必须创建自己的 Label 继承 UserControl。我之前没有想到 UserControl,它很有帮助。可聚焦性、透明背景、无边框都是 UserControl 可以轻松完成的。我必须自己做的唯一自定义功能是渲染文本,这也非常简单并且有很多方法可以做到。我只是在UserControl中添加一个Label,并将Label的Dock设置为DockStyle.Fill,适当调整UserControl的高度就可以了。

感谢上帝帮助我在尝试任何其他复杂的解决方案(例如监听 TAB 和 SHIFT + TAB 按键事件)之前想到了 UserControl。

关于c# - 在标签之间切换时执行某些操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16060721/

24 4 0