В первую очередь, спасибо за ответы! 9 общих ответов. Спасибо.
Плохие новости: все ответы имели некоторые причуды или не работали совершенно верно (или вообще). Я добавил комментарий к каждому из Ваших сообщений.
Хорошие новости: я нашел способ заставить его работать. Это решение довольно просто и, кажется, работает во всех сценариях (mousing вниз, выбирая текст, снабжая вкладками фокус, и т.д.)
bool alreadyFocused;
...
textBox1.GotFocus += textBox1_GotFocus;
textBox1.MouseUp += textBox1_MouseUp;
textBox1.Leave += textBox1_Leave;
...
void textBox1_Leave(object sender, EventArgs e)
{
alreadyFocused = false;
}
void textBox1_GotFocus(object sender, EventArgs e)
{
// Select all text only if the mouse isn't down.
// This makes tabbing to the textbox give focus.
if (MouseButtons == MouseButtons.None)
{
this.textBox1.SelectAll();
alreadyFocused = true;
}
}
void textBox1_MouseUp(object sender, MouseEventArgs e)
{
// Web browsers like Google Chrome select the text on mouse up.
// They only do it if the textbox isn't already focused,
// and if the user hasn't selected all text.
if (!alreadyFocused && this.textBox1.SelectionLength == 0)
{
alreadyFocused = true;
this.textBox1.SelectAll();
}
}
, Насколько я могу сказать, это заставляет текстовое поле вести себя точно как строка поиска веб-браузера.
, Надо надеяться, это помогает следующему парню, который пытается решить эту обманчиво простую проблему.
Еще раз спасибо, парни, для всех Ваших ответов, которые помогли привести меня к корректному пути.
require 'rubygems'
require 'nokogiri'
puts Nokogiri::XML::Builder.new { |xml|
xml.root("xmlns:foo"=>"url") {
xml.parent.namespace = xml.parent.namespace_definitions.find{|ns|ns.prefix=="foo"}
xml['foo'].child
}
}.to_xml
Вы не можете использовать xml ['foo']
до определения пространства имен, т.е. перед тем, как передать его в качестве аргумента корневому узлу. Таким образом, приведенный выше код добавляет пространство имен постфактум к корневому узлу.