My Programming Notes

Here are Notes.... come from debugging

My Programming Notes

Here are Notes.... come from debugging

۶ مطلب در مرداد ۱۳۹۲ ثبت شده است

پنجشنبه, ۳۱ مرداد ۱۳۹۲، ۱۰:۳۰ ب.ظ

NaN چیست؟؟

 چند روز پیش داشتم روی یک کلاس کار می کردم که محاسباتی رو باید انجام می داد. تصور کردم که تمام مواردی که توی اون کلاس باید نوشته می شد، تموم شده و رفتم برای تست نهایی که اونو در اختیار دیگر همکارانم قرار بدهم... متاسفانه موقع دیباگ کردن با خطایی رو به رو شدم که می گفت این مقدار برابر NaN است!!

۲ نظر موافقین ۵ مخالفین ۰ ۳۱ مرداد ۹۲ ، ۲۲:۳۰
سارا زکی زاده
دوشنبه, ۲۸ مرداد ۱۳۹۲، ۱۰:۴۶ ب.ظ

پنجره ای به شفافیت شیشه در WPF

به  تصاویر زیر نگاه کنید.....

           
           xp
      تصویر پنجره7




پنجره8



چه تفاوت هایی رو می بینید.... خوب مسلما این سه تصویر خیلی تفاوت دارند(:D) ولی تفاوتی که می خوام توی این پست درموردش حرف بزنم پنجره شیشه ای  هستش که در تصویر دوم می بینید.
در تصویر اول ، پنجره ای هست با حالت معمول که در ویندوز xp می بینیم ولی در  تصویر دوم  پنجره ای داریم که به ویندوز 7 و بعد آن  و نرم افزارهایی با همون مترو استایل تهیه می شوند اختصاص دارند.
قسمتی که مربوط به کنترل های بستن و تغیر سایز پنجره و... هستش کمی متفاوت شدند.
برای داشتن این چنین پنجره هایی در WPF تنها لازم است که در Property های مربوط به Window گزینه Allow Transparency را تیک بزنید. حالا یک پنجره شفاف دارید. ولی خوب کارتان سخت تر شد.
باید برای کنترل بستن و تغییر سایز و.... ترفند جدیدی به کار ببرید!

۱ نظر موافقین ۵ مخالفین ۰ ۲۸ مرداد ۹۲ ، ۲۲:۴۶
سارا زکی زاده
دوشنبه, ۲۱ مرداد ۱۳۹۲، ۱۱:۵۲ ب.ظ

یک ComboBox تخت در WPF

به دنبال مطالبی که در پست قبلی گفته بودم ، در این پست  می خواهم شرایط داشتن یک ComboBox تخت را توضیح دهم.

برای اینکار ابتدا یک Style به صورت زیر در کد xaml تعریف می کنیم و به Resource مربوط به Style همان ComboBox معرفی می کنیم.

به قطعه کد های زیر دقت کنید:

codes


کد مربوط به Resource :

combo


combobox

۰ نظر موافقین ۶ مخالفین ۰ ۲۱ مرداد ۹۲ ، ۲۳:۵۲
سارا زکی زاده
پنجشنبه, ۱۷ مرداد ۱۳۹۲، ۰۷:۰۸ ب.ظ

یک دکمه Flat در WPF

شاید برای شما هم پیش آمده باشد که برای یک پروژه design خاصی تعریف کرده باشید و تمام صفحات و متعلقات آن باید از این اصول پیروی کنند.
در طول یک پروژه wpf باید از یک اصول خاصی برای design پیروی می کردم یکی از آنها داشتن کلید هایی مسطح بود!
برای داشتن یه همچین Button هایی کافی است از کد زیر را در xaml  مربوط به button خود استفاده کنید:


button


                                click

در پست بعدی راه حل داشتن یک Combo Box مسطح را هم توضیح خواهم داد.

۴ نظر موافقین ۶ مخالفین ۰ ۱۷ مرداد ۹۲ ، ۱۹:۰۸
سارا زکی زاده
جمعه, ۱۱ مرداد ۱۳۹۲، ۰۵:۴۸ ب.ظ

ورودی Text Box را محدود کنیم!

 فرمی داشتم که در آن تعدادی text Box برای ورود اطلاعات نیاز بود. این text Box ها اختصاصا باید عدد می گرفتند و یه جورایی کاربر نباد حروف الفبا وارد می کرد. برای اینکه از خطاهایی که در صورت وارد کردن کاراکتر الفبا در این text Box ها هنگام محاسبات جلوگیری کنم باید مانع ورود حروف می شدم.

یعنی اگر کاربر حتی کلید های حروف را می فشرد ، هیچ چیزی در text Box ثبت نشود.

بعد از جستجو (Google) در منابع موجود به راه حل زیر رسیدم:

در Text Box مورد نظر event (رویداد) PreviewTextInput را  اضافه می کنیم.

در CS فرم (Window در WPF) ابتدا NameSpace : System.Text.RegularExpression اضافه می کنیم.

کد زیر را در رویداد TextBox می نویسیم.

;("[Regex Regex = new Regex("[0-9

;(e.handled = Regex.IsMatched(e.text

# محدوده 0 تا 9 که مشخص کردم ، می تواند با هر محدوده دیگری و یا هر شرایطی که برای textBox خود می خواهید قائل شوید جایگزین شود. مثلا اگر می خواهید همه کاراکترها به جز این اعداد را بپذیرد می توانید به صورت ^9-0^ بنویسید. ^ : یعنی به جز!

#handled  کلاسی از NameSpace:System.Windows.Forms است. این کلاس مقداردهی مربوط به روریداد KeyPress (فشردن صفحه کلید) را انجام می دهد.


۳ نظر موافقین ۸ مخالفین ۱ ۱۱ مرداد ۹۲ ، ۱۷:۴۸
سارا زکی زاده
جمعه, ۴ مرداد ۱۳۹۲، ۰۳:۰۷ ق.ظ

خواندن داده از یک فایل Excel در C#

اولین مطلبی که موقع کار کردن با WPF یاد گرفتم نحوه گرفتن داده از دیتا بیس بود.

فرض کنید دیتا بیس شما یک فایل Excel باشد. برای اینکه بتوانیم از اطلاعات موجود در آن استفاده کنیم باید با آن مثل Sql برخورد کنیم.

برای اینکار از کلاس oleDb استفاده می کنیم.

این کلاس یک Data Reader  است که برای خواندن سطر های دیتا بیس از آن استفاده می شود.

موقع استفاده از آن باید Namespace: using system.oleDb و Namespace : using system.Data رو حتما به Namespace   ها اضافه کنید.

حالا با استفاده از oleDb یک connection می سازیم که به دیتا بیس مورد نظر متصل بشیم.

یعنی یک متغیر را مثل زیر از جنس string تعریف می کنیم و عبارت زیر را مثل نمونه به آن می دهیم. این متغیر نشان می دهد که متا  می خواهیم از یک فایل Excel استفاده کنیم. پس از آن یک نمونه از  OleDbCommand می سازیم.


string ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties= 'Excel 12.0;HDR=yes


;()OleDbCommand oleDBCmd = new OleDbCommand


از Command استفاده می کنیم تا بتوانیم دستور اتصال به دیتا بیس را صادر کنیم و نوع دستور و جزئیاتش را مشخص کنیم.


  ,oleDBCmd.Connection = new OleDbConnection(String.Format(connectionString 

;(("C:\Users\SZ\Desktop\New File - Sample.xlsx"@


        ( if (oleDBCmd.Connection.State != ConnectionState.Open

        }

         

;  () oleDBCmd.Connection.Open

       {

        ; oleDBCmd.CommandType = CommandType.Text


همان طور که در بالا می بینید ابتدا برای برقراری اتصال ، آدرس محل قرار گرفتن  فایل را قید کردم سپس وضعیت Connection  را  بررسی کردم که حتما open باشدسپس نوع  دستور را به  CommandType  به صورت Text  دادم که خودم دستور را دستی بنویسم مانند دستوراتی که در Query های Sql  می نویسیم.

با همان مقررات.

به کد زیر توجه کنید:

   [$string cmdText = "SELECT  [Name] as [Title] ,[Id] FROM [PersonId] from [Student

         

  

      ; oleDBCmd.CommandText = cmdText


با این روش اتصال به دیتابیس (فایل Excel ) برقرار می شود. برای خواندن فایل و جدول های موجود هم باید از کلاس OleDbDataReader استفاده کرد.


دانلود مثال WPF

! دقت کنید که همین مثال می تواند با توجه به شرایط Windows Forms Application نوشته شود.

۴۴ نظر موافقین ۶ مخالفین ۰ ۰۴ مرداد ۹۲ ، ۰۳:۰۷
سارا زکی زاده