לאחר שיצאתי מתוסכל מהטעינה האיטית של הפקד cmbobox כאשר יש בו הרבה פריטים חפרתי קצת ומצאתי פתרון
מצו"ב הלינק
https://stackoverflow.com/a/8834289
pcinfogmach
הפורום כעת לקריאה בלבד, לקריאה נוספת.
-
טעינה איטית של combobox מרובה פריטים ב-wpf - לא עוד! -
איך ליצר קיצור מקשים בוורד עבור קודים ב-C# VSTOיש כמה דרכים לעשות זאת כאן אכתוב את הבסיס איך לעשות זאת על ידי הוספת קוד vba('רך אחרת תוכלו לראות פה)
אפשר לשכלל את זה כמובן אני רק כותב את הבסיס שאם מישהו יצטרך שלא יתחיל מאפס
- יצירת קלאס ב-C#: בקוד C# יש ליצור class ולהוסיף לו את התג ComVisible(true) כדי לאפשר ל-Microsoft Office לגשת אליו דרך COM. לשם הדוגמה בתוך הקלאס נגדיר פונקציה פשוטה בשם GetNumber שמחזירה את המספר 42.
[ComVisible(true)] public class MyManagedFunctions { public int GetNumber() { return 42; } }- קוד עבור ה-startup של התוסף: בקוד ה-C# הוא נכתב תחת אירוע ה-startup של התוסף. בעת ה-startup, הקוד מפעיל את הפונקציה RegisterCallback עם אינסטנס של ה-class שנוצר בצעד הקודם. בנוסף, הקוד מצריך תגובה לאירוע של פתיחת מסמך חדש (DocumentOpen). כאשר מסמך נפתח, הקוד מפעיל פונקציה נוספת (Application_DocumentOpen) בו אפשר לקרוא לקודים של המאקרו דלהלן שאחראיים על חיבור או הסרת הקיצורי מקשים לפונקציה.
private void ThisAddIn_Startup(object sender, System.EventArgs e) { this.Application.Run("RegisterCallback", new MyManagedFunctions()); this.Application.DocumentOpen += Application_DocumentOpen; } private void Application_DocumentOpen(Microsoft.Office.Interop.Word.Document Doc) { //this.Application.Run("AssignShortcut"); // Run the VBA macro to assign the shortcut //this.Application.Run("RemoveShortcut"); // Run the VBA macro to remove the shortcut this.Application.DocumentOpen -= Application_DocumentOpen; }- קוד בשביל ה-מאקרו VBA: הקוד ב-VBA מגיב לפעולות של המשתמש בתוכניות כמו Word. הוא כולל כמה פונקציות:
RegisterCallbackשמקבלת אובייקט ומגדירה אותו למשתנהmanagedObject,
ו-GetNumberFromVSTOשמפעילה את הפונקציהGetNumberמה-C# ומציגה את התוצאה ב-MessageBox.
יש גם פונקציות להקצאת קיצורי מקלדת (AssignShortcutו-RemoveShortcut) ופונקציה (RemoveAllShortcuts) להסרת כל הקיצורי מקלדת.
ו-ShowAllShortcutKeys- למקרה ששחכתם מה עשיתם בעבר
Dim managedObject As Object Public Sub RegisterCallback(callback As Object) Set managedObject = callback End Sub Public Function GetNumberFromVSTO() As Integer GetNumberFromVSTO = managedObject.GetNumber() MsgBox "The number is " & GetNumberFromVSTO End Function Sub CallVstoFunction() Call GetNumberFromVSTO End Sub Public Sub AssignShortcut() ' Assign Ctrl+Shift+Q to CallVstoFunction CustomizationContext = NormalTemplate KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyControl, wdKeyShift, wdKeyQ), _ KeyCategory:=wdKeyCategoryMacro, _ Command:="CallVstoFunction" End Sub Public Sub RemoveShortcut() ' Remove the shortcut key assignment for CallVstoFunction Dim keyBinding As keyBinding For Each keyBinding In KeyBindings If keyBinding.Command = "Normal.Module1.CallVstoFunction" Then keyBinding.Clear End If Next keyBinding End Sub Public Sub RemoveAllShortcuts() ' Remove the shortcut key assignment CustomizationContext = NormalTemplate KeyBindings.ClearAll End Sub Sub ShowAllShortcutKeys() Dim keyBinding As keyBinding Dim msg As String msg = "Currently assigned shortcut keys:" & vbCrLf For Each keyBinding In Application.KeyBindings msg = msg & "Command: " & keyBinding.Command & ", Key: " & keyBinding.KeyString & vbCrLf Next keyBinding MsgBox msg End Subלפעמים צריך להתחיל את וורד מחדש כדי שהקודים 'ייתפסו'
-
מאוורר שהתחיל להסתובב לאט - מה עושים@אף-אחד-3
כל מילה בסלע!
רק רציתי להוסיף שהרבה פעמים נתקע שעות וכיו"ב שם בפנים ואם כבר עושים גירוז אז להסיר כמובן את כל הליכלוכים -
קוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים) -
תבנית ברעיון של MVVM עבור VSTO XML RIBBON? -
התייחסות דינמית ל-Globals בקוד VSTO במאגר משותף?אני מנסה ליצור מאגר של קודים שימושיים ל-VSTO (Visual Studio Tools for Office). הבעיה היא שאני צריך להתייחס ל-Globals של התוסף, וזה ספציפי ל-namespace שלו. המשמעות היא שאם אני אשתף את המאגר עם מישהו אחר, הוא ייתקל באלף שגיאות ויצטרך להחליף את כל ההתייחסויות ל-Globals בכל הקוד.
האם יש דרך לזהות את ה-Globals בצורה דינמית בהתאם לאפליקציה, כך שזה לא משנה באיזה namespace הם נמצאים?
-
תבנית ברעיון של MVVM עבור VSTO XML RIBBON? -
תבנית ברעיון של MVVM עבור VSTO XML RIBBON?לאחרונה יצא לי לעבוד על פרויקט עם הרבה לחצנים בסרגל הכלים של וורד. אמרתי לעצמי שזה לא שפוי ואני חייב לעשות סדר בבלאגן באמצעות חלוקה למשהו כמו-MVVM (Model-View-ViewModel).
מכיון שה-ribbon xml לא באמת נותן גישה לאוסף של הפקדים חשבתי על הרעיון הבא:
הרעיון הוא לקרוא לכל מתודה על ידי ID של הלחצן באותו שם, ולהעביר את הלוגיקה הקשורה ללחיצה על הלחצן לתוך class נפרד ומסודר, מה שיעשה את הקוד יותר נקי וניתן לניהול.
(עוד לא יישמתי את הרעיון לגבי אייקונים אבל שם זה אמור להיות ממש עוצמתי מאחר ובצורה הזו כל מה שהמשתמש יצטרך לעשות זה להוסיף אייקון לפרוייקט ולקרוא לו בשם של הכפתור).
להלן דוגמאות עבור button1 ו-button2.
בתוך ה-callbacks יש להוסיף את הקודים הבאים:
private ButtonInvoker buttonInvoker; public Ribbon() { buttonInvoker = new ButtonInvoker(); }public void button_Click(Office.IRibbonControl control) { buttonInvoker.InvokeButtonMethod(control.Id); }במקום ליצור מתודה ייחודית לכל כפתור ב-XML, כל כפתור יקרא לאותה מתודה. הנה דוגמה ל-XML:
xml <?xml version="1.0" encoding="UTF-8"?> <customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon> <tabs> <tab id="tab1" label="Label"> <group id="MyCustomGroup" label="My Custom Group"> <button id="button1" label="Button 1" onAction="button_Click"/> <button id="button2" label="Button 2" onAction="button_Click"/> </group> </tab> </tabs> </ribbon> </customUI>כעת, נוסיף את מחלקת ה-ButtonInvoker שתטפל בלחצנים:
public class ButtonInvoker { public void InvokeButtonMethod(string methodName) { try { MethodInfo method = this.GetType().GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Instance); if (method != null) { method.Invoke(this, null); } else { MessageBox.Show($"No method found for button ID: {methodName}"); } } catch (Exception ex) { MessageBox.Show($"Error invoking method for button ID: {methodName}. Error: {ex.Message}"); } } private void button1() { MessageBox.Show("Button 1 clicked"); } private void button2() { MessageBox.Show("Button 2 clicked"); } }בעזרת הקוד הזה, הצלחנו לפשט את ניהול הלחצנים בסרגל הכלים של וורד ולהקטין את הבלאגן. כל לחצן מזוהה לפי ה-ID שלו וקורא לאותה מתודה כללית שמפעילה את המתודה המתאימה בהתאם ל-ID.
-
קוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים) -
עזרה עם בעיה בהתחברות לגיטהב -
קוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים)**DiffPlex השוואת טקסטים.exe **
למי שמעוניין בניתי את הפקד של DiffPlex בתוך חלון בצורה מסודרת (בעברית כמובן).
עובד מעולה החיסרון היחיד שלו הוא העובדה שאין לו אפשרות לעשות wrap עבור הטקסט המוזן.https://github.com/mmanela/diffplex/issues/113
שימו לב! מכיון שמדובר בתוכנה ניידת האנטי וירוס עלול למחוק אותו (תלוי איזה אנטי וירוס יש לכם).
למי שרוצה את הקודים שמתי בגיטהאב
https://github.com/pcinfogmach/DiffPlex-
-
עזרה עם בעיה בהתחברות לגיטהב -
קוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים)@צדיק-תמים
על פניו זה נראה שהוא רק משווה מסמכים, לא טקסטים מוזנים? -
עזרה עם בעיה בהתחברות לגיטהבאני מנסה לעזור למישהו עם הפקוייקט שלו בגיט האב הוא שיתף אותי בפרוייקט
אבל כל פעם שאני מנסה לעשות cloning אני נתקל בשגיאה דלהלן

-
קוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים)@צדיק-תמים
תודה
ראיתי את זה נראה ממש יפה
אבל זה לא בעברית
-
קוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים)@dovid כתב בקוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים):
יש מאות כאלו... תחפש text compare tool.
שכחתי לציין אני מחפש משהו בעברית שאינו דורש חיבור לאינטרנט (עבור אברכים)
-
קוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים)@dovid כתב בקוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים):
הקוד שלך עובד לך טוב?
בדיקות בסיסיות עבר לא היה לי פנאי לבדוק אותו לעומק