I have a problem. I want to create a edit text and then when I type a string in it, it will display nothing like a empty. That is to say it allows only numbers. I found some ways but they use push button for checking. Please help me.
Thank you in advance.

 Akzeptierte Antwort

Jan
Jan am 31 Mär. 2016

0 Stimmen

What does "only numbers" exactly mean? "1e3" is a number also.
What about checking the value inside the callback?
function Edit_Callback(hObject, EventData)
Str = get(hObject, 'String');
Value = sscanf(Str, '%g', 1);
fixStr = sprintf('%g', Value);
set(hObject, 'String', 'fixStr);
This tries to interprete the contents as 1 number and removes other characters.

2 Kommentare

Quan Tran
Quan Tran am 1 Apr. 2016
Thank you so much
But I have another problem :) When I typed '8.8*10^-7' in edit text, then I pushed enter button but it displayed '8.8'. How can I control it? I mean I want to type the mathematical symbol also.
Walter Roberson
Walter Roberson am 1 Apr. 2016
You need to define all of the possible number formats, and then you need to write code that parses them. For example do you also allow 8.8E-7 ? 8.8d-7 ? .5e-7 ? 5E+007 ? 8.8+5.2i ? 8.8^-7 (where it is not 10 which is the base being raised) ? 8.8•10^+7 ? 8.8*10^—7 (notice that is one of the dashes, not a minus sign) ? 8.8*10ˆ7 (notice that is ˆ not ^) ? 8.8·10^-7 ? 8.8×10^-7 ?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

Daveed Daveed
Daveed Daveed am 31 Jul. 2022

0 Stimmen

Hello. i was walking around here and i thought the following solution might be usefull for future people (may be the past time traveler :) )
function prevent_string(textbox_control)
if textbox_control.String ~= "" && isnan(str2double(textbox_control.String))
textbox_control.String = "";
end
Walter Roberson
Walter Roberson am 31 Jul. 2022

0 Stimmen

These days you would use a
uieditfield('numeric')
which requires uifigure() (and will not work for traditional figures)

Kategorien

Mehr zu Creating, Deleting, and Querying Graphics Objects finden Sie in Hilfe-Center und File Exchange

Produkte

Gefragt:

am 31 Mär. 2016

Beantwortet:

am 31 Jul. 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by