c# - Using regex on a on-screen keyboard -
c# - Using regex on a on-screen keyboard -
ok i'm getting stuck here guys :/. i've got (custom!) onscreen keyboard wanna utilize regular expressions.
i created regex allow 0-9
, comma
regular keyboard.
of course of study isn't working on-screen keyboard.
i have code snippet works...
but have space button, backspace button, , 2 buttons move caret around.
when utilize below regex code , click space, backspace or caret buttons error:
object reference not set instance of object.
what doing wrong?
// regex code private command keyb = null; private void editprodpriceex_gotfocus(object sender, routedeventargs e) { string allowedchars = "[^0-9,]"; if (regex.ismatch(editprodpriceex.text, allowedchars)) { keyb = (control)sender; } }
space button:
private void knopspatie_click(object sender, routedeventargs e) { textbox tb = keyb textbox; int selstart = tb.selectionstart; // here error string before = tb.text.substring(0, selstart); string after = tb.text.substring(before.length); tb.text = string.concat(before, " ", after); tb.selectionstart = before.length + 1; }
backspace button:
private void knopwissen_click(object sender, routedeventargs e) { textbox tb = keyb textbox; int cursorposition = tb.selectionstart; // here error if (cursorposition > 0) { tb.text = tb.text.substring(0, cursorposition -1) + tb.text.substring(cursorposition); tb.selectionstart = cursorposition - 1; } }
move caret left button:
private void knoplinks_click(object sender, routedeventargs e) { textbox tb = keyb textbox; if (tb.selectionstart > 0) // here error { int selstart = tb.selectionstart; string before = tb.text.substring(0, selstart); string after = tb.text.substring(before.length); tb.selectionstart = before.length - 1; } }
move caret right button:
private void knoprechts_click(object sender, routedeventargs e) { textbox tb = keyb textbox; if (tb.selectionstart >= 0) // here error { int selstart = tb.selectionstart; string before = tb.text.substring(0, selstart); string after = tb.text.substring(before.length); tb.selectionstart = before.length + 1; } }
i think must seek this. in first code.
// regex code private command keyb = null; private void editprodpriceex_gotfocus(object sender, routedeventargs e) { string allowedchars = "[^0-9,]"; if (regex.ismatch(editprodpriceex.text, allowedchars)) { keyb = (control)sender; } }
you made keyb null, , not set key mention (space , others), think produce reference not set error. can check that?.
c# .net regex
Comments
Post a Comment