SORU
18 EYLÜL 2008, PERŞEMBE


Bir TextBox tarayıcınızın'ler gibi görünmesi adres çubuğuna

Metin kutusu odak alır Win a C#, tarayıcınızın adres çubuğuna benzer şekilde davranmanızı istiyorum.

Ne demek istediğimi görmek için, web tarayıcınızın adres çubuğuna tıklayın. Aşağıdaki davranış göreceksiniz:

  • Kutucuğu tıklayarak eğer textbox önceden odaklanmış olmasaydı tüm metni seçin.
  • Textbox ve aşağı sürükleyin fare sadece fare ile işaretledim metni seçin.
  • Eğer textbox zaten odaklanmış ise, ek metin seçmez.
  • Metin programlı olarak veya sekme klavye üzerinden gerçekleştirilmesinin tüm metni seçmek gerekir.

Win tam olarak bunu yapmak istiyorum.

HIZLI SİLAH UYARISI: cevap vermeden önce aşağıdaki lütfen okuyun!Teşekkürler çocuklar. :-)

Arama.() Render sırasında .Girin ya .GotFocus olayları olmaz işeğer kullanıcı tıklandığında çünkü textbox, şapka alınacaktır böylece tüm kaldırma çaktı nerede metin.

Ayrıca,arama .() Render sırasında .Tıklama olayı işe yaramazkullanıcı fare ile herhangi bir metin, seçmek için mümkün olmayacaktır çünkü .() Select arayın kullanıcının metin seçimi üzerine devam edecektir. )

CEVAP
19 EYLÜL 2008, Cuma


Öncelikle cevaplar için teşekkürler! 9 toplam cevaplar. Teşekkür ederim.

Kötü haber: tüm yanıtların bir gariplik vardı ya da çok doğru (veya hiç) işe yaramadı. Mesajların her biri için bir yorum ekledim.

İyi haber: bu işi yapmanın bir yolunu buldum. Bu çözüm oldukça basittir ve tüm senaryolar (aşağı, metin seçimi üzerine fare, sekme odak, vb.) İş gibi görünüyor

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();
    }
}

Söyleyebileceğim kadarıyla, bu tam olarak web tarayıcının adres çubuğuna gibi davranmak için bir textbox neden olur.

Umarım bu, bu aldatıcı biçimde basit bir sorunu çözmek için çalışır gelecek adama yardımcı olur.

Tekrar teşekkürler çocuklar, doğru yolu doğru bana neden yardım ettiğini tüm cevaplar için.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Associated Press

    Associated P

    18 EYLÜL 2006
  • Howcast

    Howcast

    4 EKİM 2007
  • whiteboy7thst

    whiteboy7ths

    1 Temmuz 2009