كيفية القيام بما يلي: استخدام الوسيطات المسماة والاختيارية في برمجة المكتب (إرشادات برمجة C#)
الوسيطات المسماة والاختيارية, المقدمة في Visual C# 2010، تحسن الملاءمة, والمرونة, و قابلية القراءة في برمجة C#. بالإضافة إلى ذلك، تسهل هذه الميزات بشكل كبير الوصول إلى واجهات COM مثل Microsoft Office التشغيل التلقائي لـAPIs.
في المثال التالي، أسلوب التحويل لجدول لها ستة عشر معلمة و التي تمثل خصائص الجدول، مثل عدد الأعمدة والصفوف، والتنسيق، والحدود، والخطوط والألوان. كل الستة عشر معلمة اختيارية, لأن معظم الوقت لا تريد تعيين قيم معينة لها جميعاً. ومع ذلك، دون الوسيطات المسماة والاختيارية فإن القيمة أو قيمة العنصر النائب يجب توفيره لكل معلمة. مع الوسيطات المسماة والاختيارية, عليك تعيين قيمفقط من أجل المعلمات المطلوبة للمشروع.
يجب أن يكون لديك Microsoft Office Word مثبت في جهاز الكمبيوتر الخاص بك لإكمال هذه الإجراءات.
ملاحظة
قد يعرض جهاز الكمبيوتر الخاص بك أسماء أو مواقع مختلفة لبعض عناصر واجهة مستخدم Visual Studio في الإرشادات التالية. يحدد كل من إصدار Visual Studio لديك والإعدادات المستخدمة هذه العناصر. لمزيد من المعلومات، راجع العمل مع إعدادات.
لإنشاء تطبيق وحدة تحكم جديد
ابدأ Visual Studio.
من القائمة File (ملف)، أشر إلى New (جديد)، ثم انقر فوق Project (مشروع).
في جزء فئات القوالب, توسيعVisual C# , ثم انقر فوقWindows.
انظر إلى أعلى جزء القوالب للتأكد من ظهور .NET Framework 4 في مربع إطار العمل الهدف .
في جزء Templates أنقر Console Application.
في حقلالاسم، أكتب اسمًا للمشروع.
انقر فوق موافق.
سوف يظهر المشروع الجديد في مستكشف الحلول.
لإضافة مرجع
في مستكشف الحل، ينقر على اليمين اسم مشروع الخاص بك ومن ثم انقر فوق إضافة مرجع. يظهر مربع الحوار Add a Script (إضافة برنامج نصي).
في صفحة .net, قم بتحديد Microsoft.Office.Interop.Word في قائمة إسم المكوّن قائمة.
انقر فوق موافق.
لإضافة الضرورية باستخدام التوجيهات
فيمستكشف الحلول انقر بزر الماوس الأيمن على ملف برنامج.cs ومن ثم انقر فوق عرض تعليمات برمجية.
قم بإضافة سطر التعليمة البرمجية التالية أعلى الملف.
using Word = Microsoft.Office.Interop.Word;
لعرض نص في مستند Word
في الفئة Program في برنامج.cs، أضف الأسلوب التالي لإنشاء تطبيق Word و مستند Word. أسلوب إضافة يحتوي على أربعة معلمات اختيارية. يستخدم هذا المثال القيم الافتراضية لهم. ولذلك، لا يوجد وسائط الضرورية في كشف الاستدعاء.
static void DisplayInWord() { var wordApp = new Word.Application(); wordApp.Visible = true; // docs is a collection of all the Document objects currently // open in Word. Word.Documents docs = wordApp.Documents; // Add a document to the collection and name it doc. Word.Document doc = docs.Add(); }
قم بإضافة التعليمات البرمجية التالية في نهاية الأسلوب لتعريف مكان عرض النص في المستند وأي النص لعرضه.
// Define a range, a contiguous area in the document, by specifying // a starting and ending character position. Currently, the document // is empty. Word.Range range = doc.Range(0, 0); // Use the InsertAfter method to insert a string at the end of the // current range. range.InsertAfter("Testing, testing, testing. . .");
لتشغيل التطبيق.
أضف الكشف التالي للأساسي.
DisplayInWord();
اضغط F5 لتشغيل المشروع. يظهر مستند Word الذي يحتوي على النص المحدد.
لتغيير النص إلى جدول
استخدام أسلوب ConvertToTable لإحاطة النص في جدول. أسلوب يحتوي العديد من المعلمات الاختيارية. يستخدم IntelliSense أقواساً للإشارة إلى المعلمات الاختيارية، كما هو مبين في التوضيح التالي.
معلمات التحويل إلى جدول
تتيح لك الوسيطات المسماة والاختيارية لتحديد قيم المعلمات التي تريد تغييرها. قم بإضافة التعليمات البرمجية التالية إلى النهاية الأسلوب DisplayInWord لإنشاء جدول بسيط. تحدد الوسيطة سلسلة الفواصل في نص في range التي تفصل بين خلايا الجدول.
// Convert to a simple table. The table will have a single row with // three columns. range.ConvertToTable(Separator: ",");
في الإصدارات السابقة من C# ، الاستدعاء إلى ConvertToTable يتطلب وسيطة مرجع لكل معلمة كما هو موضح في التعليمات البرمجية التالية.
// Call to ConvertToTable in C# 3.0 or earlier. This code is not part of // the solution. var missing = Type.Missing; object separator = ","; range.ConvertToTable(ref separator, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
اضغط F5 لتشغيل المشروع.
للتجربة مع معلمات أخرى
لتغيير الجدول بحيث يحتوي على عمود واحد و ثلاثة صفوف, قم باستبدال السطر الأخير في DisplayInWord مع العبارة التالية ومن ثم اضغطعلى زر'Ctrl' + F5.
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1);
لتحديد تنسيق معرف مسبقاً للجدول, قم باستبدال آخر سطر في DisplayInWord مع العبارة التالية ومن ثم اضغط زر'Ctrl' + F5. يمكن أن يكون التنسيق أي من الثوابت WdTableFormat .
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1, Format: Word.WdTableFormat.wdTableFormatElegant);
مثال
تتضمن التعليمات البرمجية التالية المثال الكامل.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Word = Microsoft.Office.Interop.Word;
namespace OfficeHowTo
{
class WordProgram
{
static void Main(string[] args)
{
DisplayInWord();
}
static void DisplayInWord()
{
var wordApp = new Word.Application();
wordApp.Visible = true;
// docs is a collection of all the Document objects currently
// open in Word.
Word.Documents docs = wordApp.Documents;
// Add a document to the collection and name it doc.
Word.Document doc = docs.Add();
// Define a range, a contiguous area in the document, by specifying
// a starting and ending character position. Currently, the document
// is empty.
Word.Range range = doc.Range(0, 0);
// Use the InsertAfter method to insert a string at the end of the
// current range.
range.InsertAfter("Testing, testing, testing. . .");
// You can comment out any or all of the following statements to see the
// effect of each one in the Word document.
// Next, use the ConvertToTable method to put the text into a table.
// The method has 16 optional parameters. You only have to specify values
// for those you want to change.
// Convert to a simple table. The table will have a single row with
// three columns.
range.ConvertToTable(Separator: ",");
// Change to a single column with three rows..
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1);
// Format the table.
range.ConvertToTable(Separator: ",", AutoFit: true, NumColumns: 1,
Format: Word.WdTableFormat.wdTableFormatElegant);
}
}
}