ביעבוע של אירועי המקלדת לטופס (WinForm – KeyPreview)

30 בינואר 2010

  נניח שאתם כותבים אפליקצייה WinForm ונרשמים לאירוע של KeyDown ואתם עושים משהו כזה   private void Form1_KeyDown(object sender, KeyEventArgs e) {     Text = e.KeyCode.ToString(); }   זה יעבוד נהדר - עד שיהיה לכם פקדים על הדף - ברגע שזה יקרה (כלומר יהיו לכם פקדים על הטופס) הם בולעים את האירועים של המקלדת ולכן הקוד שלכם לא יקרה.   כדי לפתור את זה, צריך להגדיר את המאפיין KeyPreview ל - true.   כשתעשו את זה יגרום לאירועים להגיע קודם לטופס.   מתוך הדוקומנטצייה:   Gets or sets a value indicating whether the form will receive key events before the event is passed to the control that has focus.
תגיות: , , ,
אין תגובות

איך לקבל ערכים מ – Query String ב JavaScript – גרסה שנייה Version 2 for FindByName

24 בינואר 2010

  כתבתי בעבר איך אפשר לקבל ערכים מ - QueryString ב - JavaScript.   ראיתי גרסה יעילה יותר ל - FindByName     function FindByName(key, search) {     return gup(key, search); }   function gup(name, where) {     if (!where)         where = window.location.href;     name = name.replace(//, "\\\]/, "\\\]");     var regexS = "" + name + "=(*)";     var regex = new RegExp(regexS);     var results = regex.exec(where);     if (results == null)         return "";     else         return unescape(results); }
תגיות: , ,
אין תגובות

string.ToLower ToTitleCase

  חבר לעבודה (רון כהן) שאל אותי איך אפשר לקבל את הפונקציונליות של ToLower עבור האות הראשונה של כל מילה, לדוגמא shlomo goldberg יהפוך ל - Shlomo Goldberg.   זה הקוד שנתתי לו   string str = "shlomo goldberg";   CultureInfo c = new CultureInfo("en-US"); str = c.TextInfo.ToTitleCase(str);   הוא כמובן הפך את זה ל - extension methods     namespace System {     public static class StringExtension     {         public static string ToTitleCase(this string str)         {             CultureInfo c = new CultureInfo("en-US");             return c.TextInfo.ToTitleCase(str);         }     } }   static void Main(string args) {     string str = "shlomo goldberg";     str = str.ToTitleCase(); }
תגיות: , ,
תגובה אחת

עבודה עם Services ו – Console Application

19 בינואר 2010

  הרבה פעמים כשאנחנו עובדים עם Services ה - host שלהם הוא Windows Service, מה שמתסכל לעבוד בצורה הזאת זה שבזמן פיתוח כדי לדבג צריך כל פעם לעשות Attach to process ובכל קומפילציה צריך לעצור את ה - Serivce ולהפעיל אותו מחדש אחרי הקופמילציה (מה שלוקח קצת זמן).   אני משתמש ברעיון מעניין (נדמה לי שזה שייך לאלכס מחברת QualiSystems)   נוסיף למחלקה שיורשת מ - ServiceBase את המתודת הבאות   public void Open() {     OnStart(null); }   public void Close() {     OnStop(); }     כעת ב - Main נכתוב את הקוד הבא   bool console = args.Length > 0 && args == "console";   var service = new MyService();   if (!console) {     ServiceBase ServicesToRun;     ServicesToRun = new ServiceBase    ...
2 תגובות

פילטור ב – RadGrid בעזרת CmoboBox

18 בינואר 2010

  לא מזמן קנינו את החבילה של Telerik ל - Web, אני חושב שזה בחירה נבונה לעבוד עם הפקדים שלהם.   בכל מקרה רציתי להדגים כאן, איך ניתן לייצר גריד שיש לו את האפשרות לפלטר בעזרת ComboBox שנותן לבחור מתוך הערכים.       לגריד של telerik יש מנגנון פילטרניג מובנה - אבל אין את האפשרות ל - Combo. כדי שיהיה לנו Combo צריך לעשות את הדבר הבא.   כתבתי מחלקה כללית שתשמש אותי בכל הפרוייקטים שאני עובד עם Telerik.   אנחנו צריכים לרשת מהמחלקה GridTemplateColumn ולדרוס את המתודות הבאות   SetupFilterControls SetCurrentFilterValueToControl GetCurrentFilterValueFromControl SupportsFiltering ConvertValueIfEmpty   והנה המימוש public class DDLFilterColumn : GridTemplateColumn {   המתודה הראשונה protected override void SetupFilterControls(TableCell cell) {     RadComboBox rcBox = InitProperties();     cell.Controls.Add(rcBox);       if (!DesignMode)     {         FireFillingItems(this, new DDLFilterItemsEventArgs(rcBox));    ...
אין תגובות

Filtering with ComboBox (DropDownList) in telerik grid (RadGrid)

  לא מזמן קנינו את החבילה של Telerik ל - Web, אני חושב שזה בחירה נבונה לעבוד עם הפקדים שלהם.   בכל מקרה רציתי להדגים כאן, איך ניתן לייצר גריד שיש לו את האפשרות לפלטר בעזרת ComboBox שנותן לבחור מתוך הערכים.       לגריד של telerik יש מנגנון פילטרניג מובנה - אבל אין את האפשרות ל - Combo. כדי שיהיה לנו Combo צריך לעשות את הדבר הבא.   כתבתי מחלקה כללית שתשמש אותי בכל הפרוייקטים שאני עובד עם Telerik.   אנחנו צריכים לרשת מהמחלקה GridTemplateColumn ולדרוס את המתודות הבאות   SetupFilterControls SetCurrentFilterValueToControl GetCurrentFilterValueFromControl SupportsFiltering ConvertValueIfEmpty   והנה המימוש public class DDLFilterColumn : GridTemplateColumn {   המתודה הראשונה protected override void SetupFilterControls(TableCell cell) {     RadComboBox rcBox = InitProperties();     cell.Controls.Add(rcBox);       if (!DesignMode)     {         FireFillingItems(this, new DDLFilterItemsEventArgs(rcBox));    ...
תגובה אחת

Change ValidationGroup in client side (Java Script)

17 בינואר 2010

  בתפוז עלתה שאלה, כיצד ניתן לשנות את ה - ValidationGroup בצד הלקוח. (אני אוהב התעסקות עם ולידציות).   אז ככה. (ניתן להוריד את הדוגמא, מכאן)   נניח שיש לנו את ה - HTML הבא (שני RadioButton, ארבעה תיבות טקסט, ארבעה RequiredFieldValidator, (עם שני ValidationGroup) בנוסף ValidationSummary ולחצן)   <input type="radio" name="valid" id="Radio1" value="group1" checked="checked" onclick="ChnageGropu(this)" />1 <input type="radio" name="valid" id="Radio2" value="group2" onclick="ChnageGropu(this)" />2 <br />   <asp:TextBox ID="txt1" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfv1" ValidationGroup="group1" runat="server"     ControlToValidate="txt1" ErrorMessage="txt1" Text="*"></asp:RequiredFieldValidator> <asp:TextBox ID="txt2" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfv2" ValidationGroup="group1" runat="server"     ControlToValidate="txt2" ErrorMessage="txt2" Text="*"></asp:RequiredFieldValidator> <br /> <br />   <asp:TextBox ID="txt3" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfv3" ValidationGroup="group2" runat="server"     ControlToValidate="txt3" ErrorMessage="txt3" Text="*"></asp:RequiredFieldValidator> <asp:TextBox ID="txt4" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="rfv4" ValidationGroup="group2" runat="server"     ControlToValidate="txt4" ErrorMessage="txt4" Text="*"></asp:RequiredFieldValidator> <asp:ValidationSummary ID="vs" runat="server" ShowMessageBox="true" ShowSummary="false"     ValidationGroup="group1" /> <br /> <br...
אין תגובות

ArgumentOutOfRangeException – Value is not valid for OracleType: 0. Parameter name: oracleType

14 בינואר 2010

  אם קבלתם את ההודעה הבאה: Value is not valid for OracleType: 0. Parameter name: oracleType   מן הסתם כתבתם את הקוד הבא OracleParameter param = new OracleParameter("name", 0);   מה שאתם צריכים לעשות זה אחד מהשניים   int num = 0; OracleParameter param = new OracleParameter("name", num   OracleParameter param = new OracleParameter("name", Convert.ToInt32(0));     זה לא יעבוד   OracleParameter param = new OracleParameter("name", (int)0);   הסיבה לשגיאה זה הדרך שבה הם כתבו את ה - overload של הפונקציות, שימו לב: (הפונקציות איך שהם הוגדרו)   public OracleParameter(string name, object value); public OracleParameter(string name, OracleType oracleType);     שני קריאות לפונקצייה   OracleParameter param = new OracleParameter("name", 0); int num = 0; OracleParameter param1 = new OracleParameter("name", num);   ואיך זה נראה כשפותחים Reflector   OracleParameter param = new OracleParameter("name",...
תגיות: , , ,
אין תגובות

חוויות ממפגש ה – User Group של קבוצת WPD

  לשמוע ההרצאה מגדי זה חוויה, לשמוע הרצאה מסשה זה חוויה, לשמוע בערב אחד הרצאה גם מגדי וגם מסשה זה המקסימום שמפתח יכול לבקש לעצמו .   אז מה היה לנו. פבל פתח את המפגש עם דברי ברכה, לאחריו אלון תיאר בקצרה מה היה ב - PDC והסביר למה חשוב להגיע עד לוס אנג'לס לשמוע את ההרצאות אם אפשר לראות את כל ההרצאות של הכנס (בגדול זה הסתכם בלתקשר עם צוותי הפיתוח וקבלת מחשב נייד עם מסך מגע).   כאן התחילו התכנים הרציניים של הערב, למעשה גדי חילק את העולם לשלושה חלקים.   Heros - מתכנתי ++C Mainstream - מתכנתי NET. וכינוי שאני לא זוכר - VB6 וכו'   אני משתייך...
תגיות: , , ,
אין תגובות