如何在文本框内部放置一个“X”(以清除文本框)?

3
在我的Windows应用程序中,我想在文本框的右边放置一个X来清除它。就像Google现在正在使用的那样。搜索任何内容,您开始输入时就会在文本框中看到X。我知道我可以只在文本框旁边放一个按钮,但我想做得更好一些。

1
如果您正在使用WPF,那么应该没有问题。 - Quasdunk
1
你正在使用WinForms还是WPF?我认为用WPF会容易得多。 - RB.
可能是重复问题 http://stackoverflow.com/q/1861166/754438 - Renatas M.
Waqas:我认为这有点不相关,因为他们也在寻找一种互动的方式,而不仅仅是一张图片。 - Joey
我正在使用WinForms。当这个程序最初编写时,WPF还不存在。没有太大的必要重新编写。但你是对的。用WPF做这件事非常容易。只是想看看是否有什么我错过的东西,也许我可以不费太多力气就能完成这个任务。我会查看那些其他的帖子。 - Matt Winer
显示剩余2条评论
3个回答

3

谁说谷歌在文本框的右侧放了一个X??

那不是在谷歌搜索文本框内部。它在该文本框之外。这是唯一的方法。谷歌使用一张表,其中一个单元格包含文本框,而另一个单元格包含“X”。他们放置了一些CSS,让你感觉到X在文本框内部。但实际上并不是这样。

这是谷歌搜索文本框的HTML:

<table cellspacing="0" cellpadding="0" style="width: 100%;"><tbody><tr><td class="gsib_a"><div style="position: relative; width: 100%; height: 25px;"><input type="text" maxlength="2048" name="q" id="lst-ib" class="gsfi" autocomplete="off" size="41" title="Search" value="mysql_num_rows" style="border: medium none; padding: 0pt 0pt 0pt 2px; margin: 0pt; width: 100%; outline: medium none; top: 1px; background: url(&quot;data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw%3D%3D&quot;) repeat scroll 0% 0% transparent; overflow: hidden; position: absolute; z-index: 5; color: transparent;" spellcheck="false" dir="ltr"><div class="gsfi" style="top: 1px; padding: 0pt; white-space: nowrap; position: absolute; width: 100%; color: silver; z-index: 0; text-align: left; left: 3px;" id="gs_tad0" dir="ltr"></div><div class="gsfi" style="position: absolute; top: 1px; background: none repeat scroll 0% 0% transparent; color: rgb(0, 0, 0); padding: 0pt; white-space: nowrap; z-index: 2; left: 3px;" dir="ltr">aol</div><div style="position: absolute; top: 1px; width: 1px; height: 20px; background-color: rgb(0, 0, 0); padding: 0pt; z-index: 4; left: 14px; visibility: hidden;"></div><div class="gsfi" style="position: absolute; top: 1px; background: none repeat scroll 0% 0% rgb(255, 255, 255); color: rgb(255, 255, 255); padding: 0pt; white-space: nowrap; z-index: 1;"></div></div></td><td><table cellspacing="0" cellpadding="0" style="width: 100%;" dir="ltr"><tbody><tr><td class="gsib_e"><div></div></td><td class="gsib_b" style="color: rgb(161, 185, 237);">×</td><td class="gsib_f"><div></div></td><td class="gsib_d"><div></div></td></tr></tbody></table></td></tr></tbody></table>

4
@MADMap,我认为这个回答仍然有帮助(除了HTML片段以外),因为在这里解释的思路可以轻松地转移到Winforms或WPF中。 - stakx - no longer contributing
6
你真的不需要粘贴一行很长很长的HTML来证明你的观点。 - BoltClock
1
也许OP指的是iOS上Safari中的Google搜索框(可能还有其他很多地方)。-1 - PaulB

0

抱歉,伙计,但我认为你只能通过添加一个按钮(甚至在文本框内部)并将其设置为当单击它时清除文本框来实现此操作。

textbox.Clear(); 

祝你好运,祝你一切顺利


0
你可以使用自定义绘制来在控件的右侧绘制一个小红色图标。添加一些鼠标单击代码以检测小红色图标内的鼠标单击事件,以激活“任何”自定义代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接