Коммутатор мәтінін қалай алып тастау керек

Менде кілт-мән жұптарының тізімімен байланысы болатын криптондық кіре беріс жәшігі бар. Не болып жатқанын, таңдалған элементті кодқа қойған кезде, ол мәтінді бөлектейді. Бұны қалай болдырмауға болады немесе мәтінді болдырмау керек?

Мен келесі әрекеттерді жасадым:

// 1
combo.Select(0,0);
// 2
combo.Focus();
anotherControl.Focus();
// 3
combo.SelectionStart = 0;
combo.SelectionLength = combo.Text.Length;
// 4 
combo.SelectionStart = combo.Text.Length;
combo.SelectionLength = 0;

Ештеңе жұмыс істемейді. Кез келген көмекті бағалайды.

16

12 жауаптар

Мен мұны іске асыра алмадым, бұл менің басқару элементімнің/терезесінің OnPaint оқиғасын болдырмау және орындау

combobox1.SelectionLength = 0;
6
қосылды
Мұны жасай отырып, мәтінді кейінірек көрсете алмаймын. OnPaint әдісі жиі жиі кездесетіндіктен, оны алудан бас тартады
қосылды автор Martin Fernau, көзі

Мүмкін, мен жұмыс істейтін шешімді таптым:

Пішінді пайдалансаңыз, пішіннің көрсетіліміне жазылыңыз.

ЖӘНЕ

Егер сіз UserControl (мен сияқты) қолдансаңыз, VisibleChanged оқиғасына жазыла аласыз.

Бұл жағдайда келесі әрекеттерді орындауға болады:

        foreach (ComboBox cbo in (this.Controls.Cast().Where(c => c is ComboBox).Select(c => (ComboBox) c)))
        {
            cbo.SelectionLength = 0;
        }

Бір жағынан:

Мен ComboBoxes-ты басқару элементіне қосқан пайдаланушыны басқару үшін мұны істеуім керек болды, содан кейін олардың өлшемін динамикалық түрде орнатуға қажет болды. Өлшемді орнату ОР-ның кездесетін ерекшеліктерін тудырды.

3
қосылды
Бұл мен үшін де жұмыс істеді. Тамаша
қосылды автор Martin Fernau, көзі

Мұны көріңіз

combo.SelectedText = String.Empty;

Фокусты мәселеңізге қатысты: ( MSDN )

Біріктірілген қорап фокустауды жоғалтқанда, таңдау нүктесі жылжытады   мәтіннің басталуы және кез келген таңдалған мәтін таңдалмаған болып саналады

Соншалықты ел. неге төменде жұмыс істемеді:

anotherControl.Focus(); 
2
қосылды
Жұмыс істемеңіз. Мүмкін бұл жауап ескі C# үшін өте маңызды.
қосылды автор Gurebu Bokofu, көзі
Рахмет, бірақ жұмыс істемеді
қосылды автор MattBH, көзі
ол жүктегеннен кейін оны басқан кезде, мен оны таңдаймын, содан кейін басқа нәрсені баса отырып, сол фокус жұмыс істейді! бұл мені жаңғақ шығарады
қосылды автор MattBH, көзі
ол байланысты, бірақ мен тізімнен элементті таңдаймын. Негізінен, db-дан алдын ала дайындалған пішін, сондықтан дұрыс элементті таңдау керек.
қосылды автор MattBH, көзі
сіздің combobox кейбір деректер көзіне байланысты? Егер иә, SelectedIndex = -1 деп көріңіз
қосылды автор sll, көзі

Мен мұның қаншалықты есейгеніне алаңдамаймын. Біз білім базасын құрып жатырмыз.

Мен D5-ды қолданамын (және, мүмкін, алдыңғы нұсқалар бірдей). Сізге қажет:

Combobox.SelLength :=  0; 

Сондай-ақ, егер бұл жұмыс істемесе, ол мынаны істейді: әдепкі Стильден (csDropDown) аулақ болыңыз.   Және оны орнатыңыз:

Combobox.Style := csDropDownList; 

Алекс ұсынды.

Рақмет сізге. Үлкен жұмыс істейді!

1
қосылды
D5? Сіз Delphi дегенді білдіресіз бе? [C #] белгі қойылған сұрақ бойынша?
қосылды автор jean, көзі
Маған кешіріңіз, бірақ мұнда көрсеткен синтаксисіңіз C# сияқты емес.
қосылды автор kayess, көзі

Міне, мен:

private void faceComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
     this.ActiveControl = cancelButton;
}
0
қосылды
this.ActiveControl = null; де жұмыс істейді.
қосылды автор Alden, көзі

Оқиғада SelectedIndexChanged 10 миллисекундтан кейін бір рет орындалатын таймерді қосыңыз.

new System.Threading.Timer((s) =>
            {
                comboBox1.Invoke(new Action(() =>
                {
                    comboBox1.Select(0, 0);
                }));
            }, null, 10, System.Threading.Timeout.Infinite);
0
қосылды

Бұл сұрақты сіз сұрағаннан бері білемін. Бірақ бұл жерде сіз жасай аласыз

combo.selectedindex = -1;
0
қосылды
Рахмет, бірақ мен таңдалған элементті өзгертуге тырыспаймын, тек мәтінді бөлектеуді ғана қалаймын.
қосылды автор MattBH, көзі

Пайдаланушы ComboBox мәндерін өңдей немесе өзгерте алмайтынын анықтаған жоқсыз. Олай болмаса, ComboBox-тың DropDownStyle кодын ComboBoxStyle.DropDownList деп орнатыңыз. Осылайша, ComboBox қолданыстағы мәндерді таңдауға мүмкіндік береді, пайдаланушылар жаңа мәндерді енгізе алмайды және мәтін ешқашан бөлінбейді.

0
қосылды

бұл 3 жол маған көмектесті:

cbInstallationType.SelectionStart = 0;
cbInstallationType.SelectionLength = 0;
cbInstallationType.TabIndex = 99;

TabIndex бірінші болып табылмайды, бұл пішіндегі бірінші элемент емес

0
қосылды
Мен ОС сияқты проблемаға тап болдым және бұл көмектесті емес
қосылды автор Martin Fernau, көзі

Фондық режимде не істеп жатқаныңызды білмейсіз, яғни оқиғаны және т.с.с. Алайда, таңдалған комбинацияда басқаControl.Select() қосуға болады.

Бұл керек :)

0
қосылды
Жоқ, жұмыс істемеді.
қосылды автор MattBH, көзі

Сіз бұл кодты құрастырылған оқиғада орналастыруыңыз керек немесе батырмаға контейнердің мәтінін таңдаудан бас тарту керек

ComboBox1.SelectedItem = null;
0
қосылды
Иә! жақсы, рахмет @shivam
қосылды автор Murtuza Khan, көзі

Іріктеу өлшемі кейін пайда болды. Бұл шешілді:

textBox.Resize += (sender, args) =>
{
    Control c = sender as Control;
    if (c == null || c.Parent == null)
        return;

    c.Focus();
    c.Parent.Focus();
};
0
қосылды