не встаёт фокус на контрол TextEdit от DevExpress15.2

111
14 июня 2019, 07:50

Есть простая форма редактирования с одним полем ввода TextEdit и 2 кнопками Button(подтвердить/отменить); при запуске формы хотелось бы получить фокус в поле ввода TextEditи выделение его содержимого (для быстрой замены с клавиатуры, без выделения вручную) путём предварительного задания свойств IsEnabled="True" Focusable="True" SelectAllOnGotFocus="True" и пытаюсь выставить фокус в коде C#:

var focus = textEdit.Focus();//фокус на контролл -- как показала отладка, вернёт false сразу же
textEdit.SelectAll();//дополнительно, выбрать всё содержимое принудительно

и почему-то ничего из этого не сработает: фокус не встаёт на TextEdit, выделение никаким образом не происходит, даже принудительно (а значение там есть, как минимум 0 по умолчанию)  :(
сброс/задание свойства IsDefault кнопки Button не влияют на отсутствие ожидаемого фокуса/выделения в TextEdit.

XAML:

<Grid>
    <Layout:LayoutControl Layout:DockLayoutControl.Dock="Client" Padding="0" dxe:ValidationService.IsValidationContainer="True"  Name="validateContainer">
        <Layout:LayoutGroup Orientation="Vertical" ItemSpace="10" View="GroupBox" Header="{Binding NameGroup}"  
                        Name="GroupMain" HeaderTemplate="{StaticResource GroupMainHeader}"
                        VerticalAlignment="Stretch" HorizontalAlignment="Stretch" >
            <Layout:LayoutGroup Orientation="Horizontal">
                <dxe:TextEdit
                    Name="textEdit"
                    Validate="TextEdit_Validate"
                    HorizontalContentAlignment="Right"
                    InvalidValueBehavior="AllowLeaveEditor"  
                    MaskType="Numeric"
                    MaskUseAsDisplayFormat="False" 
                    MaskSaveLiteral="False"
                    MaskBeepOnError="True"
                    IsEnabled="True" Focusable="True"  SelectAllOnGotFocus="True"  AllowSpinOnMouseWheel="False"
                    />                        
            </Layout:LayoutGroup>
            <Layout:LayoutGroup Orientation="Horizontal">
                <Button MinWidth="100" HorizontalAlignment="Left" Name="btnEnter"  Click="BtnEnterClick"  VerticalAlignment="Center"  IsDefault="True" >
                </Button>
                <Button Name="btnClose" HorizontalAlignment="Right" Click="BtnCloseClick" VerticalAlignment="Center">
                </Button>
            </Layout:LayoutGroup>
        </Layout:LayoutGroup>
    </Layout:LayoutControl>
</Grid>

Как заставить TextEdit выделять текст в своём содержимом ?

Answer 1

вам нужно задать FocusBehavior для вашего контрола

<TextBox Text="This control is focused on startup">
    <dxmvvm:Interaction.Behaviors>
        <dxmvvm:FocusBehavior/>
    </dxmvvm:Interaction.Behaviors>
</TextBox>

подробнее можете почитать в документации

READ ALSO
Перенос Верхнего меню в PHP

Перенос Верхнего меню в PHP

Надо вывести "Меню" <li> в код через PHPСмысл в том, чтобы не повторять одну и тоже строку <li>, а сократить 8 строк в 1 php вывод

131
Отправка документа на стену docs.save vk api

Отправка документа на стену docs.save vk api

При выполнении данного кода возникает ошибка в последней строке

163
Twig цикл в ассоциированном массиве

Twig цикл в ассоциированном массиве

У меня есть массив такого вида:

132
Opencart 2.3 Ocmod заменяет строки

Opencart 2.3 Ocmod заменяет строки

Почему-то неправильно отрабатывает ocmod в opencart 23

146