مشاهده دست آورد نظرسنجی: شما دوست دارید سطح مطالب این تاپیک در چه حدی باشد؟

رای دهنده
260. شما نمی توانید در این رای گیری رای بدهید
  • حرفه ایی

    131 50.38%
  • پیشرفته

    76 29.23%
  • معمولی

    39 15.00%
  • متوسط

    11 4.23%
  • ضعیف

    3 1.15%
صفحه 1 از 2 12 آخرآخر
نمایش نتایج 1 تا 40 از 75

نام تاپیک: نا گفته ها در Visual Basic.Net

  1. #1
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    Smile نا گفته ها در Visual Basic.Net

    سلام
    پس از این همه وقت گذاشتن برای یادگیری ویژوال بیسیک هنوز به مواردی برخورد میکنم که برای من کاملا ناشناخته و جالب است.
    برای همین تصمیم گرفتم تا تاپیکی رو شروع کنم که هدف ان نشان دادن امکانات و توانایی های از ویژوال بیسیک است که کمتر کسانی اونها رو میشناسند .
    از شما خواهش میکنم تجربیات و نکاتی که در برنامه نویسی با ویژوال بیسیک بدست اورده اید و به نظر خودتان جالب و اموزنده هستند رو برای استفاده ی همه ی برنامه نویسان روی سایت قرار دهید.
    با تشکر

  2. #2
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    نقل قول: نا گفته ها در Visual Basic.Net

    برای شروع من کلاسی رو معرفی میکنم که مشکل تعداد زیادی از برنامه نویسان در مورد تاریخ شمسی رو حل میکنه. در دات نت کلاسی به نام PersianCleander وجود داره که به وسیله ی آن میتوانیم تاریخ شمسی رو محاسبه کنیم. بدین صورت :
    Imports System.Globalization
    Public Class ConvertDate
    Public Function ShamsiToMiladi(ByVal ShamsiDate As String) As String
    Dim PDate As New PersianCalendar
    Dim y, m, d As Integer
    y = Mid(ShamsiDate, 1, 4)
    m = Mid(ShamsiDate, 6, 2)
    d = Mid(ShamsiDate, 9, 2)
    Return Mid(PDate.ToDateTime(y, m, d, 1, 1, 1, 1, 1), 1, 11)
    End Function
    Public Function MiladiToShamsi(ByVal MiladiDate As String) As String
    Dim PDate As New PersianCalendar
    Dim miladi As Date = CDate(MiladiDate)
    Dim y, m, d As String
    y = PDate.GetYear(miladi)
    m = PDate.GetMonth(miladi)
    d = PDate.GetDayOfMonth(miladi)
    Return y & "/" & m & "/" & d
    End Function
    End Class

  3. #3
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    نقل قول: نا گفته ها در Visual Basic.Net

    مشکلی که خیلی از برنامه نویسان با ان مواجه هستند این است که عملکرد Enter در برنامه همانند عملکرد Tab باشد.
    به همین خاطر هر کسی با راه و روش خودش این کار رو انجام میدهد که اکثرا با کد نویسی های زیادی حاصل میشود. در صورتی که این کار فقط با نوشتن یک خط کد حاصل میشود.
    در ابتدا مقدار KeyPreview که یکی از مشخصه های فرم است را به True تغییر میدهیم و سپس در رویداد KeyPress برنامه این قطعه کد را مینویسیم :
        Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
    If e.KeyChar = Chr(Keys.Enter) Then
    SendKeys.Send("{Tab}")
    End If
    End Sub

  4. #4
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    نقل قول: نا گفته ها در Visual Basic.Net

    این دفعه میخوام Property هایی رو براتون بگم که کمتر با انها اشنا هستیم
    AutoCompleteCustomSource , AutoCompleteMode , AutoCompleteSource
    این مشخصات که مخصوص TextBox هستند میتوانند کار ورود داده به برنامه ها رو خیلی سریع تر کنند. بدین صورت که ما بوسیله ی آنها میتوانیم مثل یک ComboBox بلکه در زمینه هایی بهتر از ان عمل کنیم.
    کار این مشخصات این است که با تایپ کردن قسمتی از متن درون Textbox برنامه بقیه ی آن متن را به کاربر نشان دهد.
    برای کار شما ابتدا باید برای AutoCompleteCustomSource آیتم هایی رو تعریف کنین.
    سپس AutoCompleteMode را انتخاب کنین
    و در آخر AutoCompleteSource را برابر CustomSource قرار دهید.
    با این کار وقتی کاربر حرف اول کلمه ایی رو تایپ میکنه برنامه در AutoCompleteCustomSource آن کلمه رو پیدا میکنه و به کاربر نمایش میده.
    حالت های مختلفی وجود داره مثلا اگه AutoCompleteSource رو برابر FileSystem قرار دهیم با تایپ "C:\" برنامه زیر پوشه های درایو C رو برای نوشتن ادرس باز میکنه که این کار کاربر رو خیلی راحت تر میکنه

  5. #5
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    نقل قول: نا گفته ها در Visual Basic.Net

    بعضی وقت ها پیش میاد که میخواهیم یک نوع داده ی خاص رو از کاربر بگیریم که شکل خاصی داره (مثلا کد ملی یا کد پستی و ...) . برای اینکه ببنیم کاربر اون متن ورودی رو طبق قاعده وارد کرده یا نه از کلاس RegularExpressions استفاده میکنیم.
    Imports System.Text.RegularExpressions

    Dim s As String = "122-250152-8"
    If Regex.IsMatch(s, "[1-9]{3}-[0-9]{6}-[0-9]") = True Then
    MsgBox("True")
    Else
    MsgBox("False")
    End If

  6. #6
    کاربر دائمی آواتار shask00l
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    روی پاهای خودم
    سن
    38
    پست
    387

    نقل قول: نا گفته ها در Visual Basic.Net

    نقل قول نوشته شده توسط sepehr.net مشاهده تاپیک
    مثل اینکه کسی مایل نیست مطلبی قرار بده !!!
    چرا دوست عزیز . ولی مطالبی که شما پست میکنی خیلی پیشرفته هستش و نشانه نکته سنجی شماست . بنده به شخصه با این مدل مطالب تکمیلی کمتر برخورد کردم .. ضمنا کمی صبر کنید چون اکثر دوستانی که من میشناسم 1-2 روز در میان مطالب این سایت رو چک میکنند .

    این تاپیک با این عنوان نیاز به پتانسیل زیادی برای ادامه دادن داره . بهتره مطالب رو بخش بندی کنی و هر چند وقت 1 بار update کنی .
    در هر صورت ... بنده هم تلاش میکنم تا جایی که در توانم هست به تکمیل این تاپیک کمک کنم .

    با آروزی موفقیت روزافزون برای شما ...
    آخرین ویرایش به وسیله shask00l : جمعه 17 آبان 1387 در 00:44 صبح

  7. #7

    نقل قول: نا گفته ها در Visual Basic.Net

    سلام دوستان عزیز،
    لطفا" در این تاپیک تنها به ارائه ی نکات بپردازید و سوالات خود را در تاپیک جدید مطرح نمایید ،/
    I've just started tweeting!
    @Alireza_Maddah

  8. #8

    نقل قول: نا گفته ها در Visual Basic.Net

    امیدوارم تاپیک خوب پیش بره.
    این هم یک کد که در خاصیت KeyPress تکست باکس قرارش میدیم , تا فقط مقدار های عددی رو قبول کنه

    Private Sub T7_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ،TextBox1.KeyPress
    If Not IsNumeric(e.KeyChar) And e.KeyChar <> Convert.ToChar(Keys.Back) And e.KeyChar <> Convert.ToChar(Keys.Delete) Then
    e.Handled = True
    End If
    End Sub
    آخرین ویرایش به وسیله mojtaba-saleh : سه شنبه 01 اردیبهشت 1388 در 21:49 عصر

  9. #9
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    Smile نقل قول: نا گفته ها در Visual Basic.Net

    ساختن Help در برنامه ، میتونه ارزش اون برنامه رو بالا ببره. مخصوصا اگه Help ایی قوی داشته باشه . و بخوبی با کاربر ارتباط برقرار کنه
    این دفعه میخوام چند کنترل که برای ساختن Help بکار میروند را معرفی کنم . Sample زیر نحوه ی کار با این کنترل ها رو نشان میده.(بر گرفته از سایت Microsoft)
    کنترل های HelpProvider , ToolTip , MenuStrip ,ErrorProvider
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: zip Help.zip‏ (982.8 کیلوبایت, 3172 دیدار)

  10. #10

    متد DoEvents

    این هم یک کد خیلی مفید برای حلقه ها و loop ها
    اگر توجه کرده باشید توی دات نت وقتی یک حلقه ی بزرگ , مثلا 1000000 رکورد رو بخواید توی یه لیست باکس بریزید , یا از دیتابیس فرا بخونید , تا قبل از تموم شدن حلقه برنامه اگر Not Response نشه , حداقل دیگه نمی تونید توش کاری انجام بدید.
    برای رفع این مشکل , کافیه در حلقه خود از متد Application.DoEvents استفاده کنید
    مثال :

     
    For i=0 to 100000
    application.Doevents
    Listbox1.Items.add(i)
    Next

  11. #11
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    نقل قول: نا گفته ها در Visual Basic.Net

    این هم نمونه کدی برای کار با پست شماره ی 4
    البته من فقط 2 تا از حالت هاش رو قرار دادم . بقیه ی حالت هاش مشخص هستند و احتیاجی به گفتن نداره. در ضمن من تمامی کار ها رو در کد انجام دادم تا دوستان متوجه بشوند.
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله sepehr.net : جمعه 17 آبان 1387 در 15:34 عصر

  12. #12
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

    نقل قول: نا گفته ها در Visual Basic.Net

    سلام
    این هم یه پروپرتی Override شده برای سایه دار کردن فرم ها . زمانی که یه کنترل خواستید بسازید این تکه کد خیلی به دردتون میخوره.
     Private Const CS_DROPSHADOW As Integer = 131072
    ' Override the CreateParams property
    Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
    Get
    Dim cp As CreateParams = MyBase.CreateParams
    cp.ClassStyle = cp.ClassStyle Or CS_DROPSHADOW
    Return cp
    End Get
    End Property
    اینم نمونه کنترل که توش از این کد استفاده کردم
    Untitled-1.gif

  13. #13
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    Smile نقل قول: نا گفته ها در Visual Basic.Net

    سلام
    این هم نمونه کدی برای تغییر زبان کامپیوتر. بعضی از افراد از Api ها برای این کار استفاده میکنن. بهشون پیشنهاد میکنم اولویت رو به توابع دات نت بدهند. در مواقعی که این توابع پاسخگو ی نیازتان نیستند به سراغ api ها بروید
    If InputLanguage.CurrentInputLanguage.LayoutName = "US" Then
    Dim farsi As New Globalization.CultureInfo("fa-IR")
    InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(farsi)
    Else
    Dim en As New Globalization.CultureInfo("en-US")
    InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(en)
    End If

  14. #14
    کاربر دائمی آواتار rooshan2008
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    گیلان- لشت نشا
    سن
    37
    پست
    179

    نقل قول: نا گفته ها در Visual Basic.Net

    سلام
    نخ ها :(Thearding) یکی از بهترین امکان برای استفاده بهینه منابع هست با این حال خیلی مورد بی توجهی قرار می گیره.
    مثلاً با این موضوع بر خرده باشید که وقتی حلقه ای بینهایت یا طولانی داریم و نیاز هست که در هنگام پردازش حلقه به رویداد های دیگه رسیده مورد تقاضای کاربر جواب بده در این حالت یا شما باید از دستور Doevents استفاده کنید که اصلاً توصیه نمی شه چون اجرای این دستور حدوداً یک میلی ثانیه تاخیر ایجاد می کنه و اگر حلقه من 10000 هزار بار تکرار بشه در برنامه من به صورت ناخواسته 10 ثانیه وقت تلف می شه (برای پاسخ به رویداد های دیگر )
    برای این منظور از نخ ها استفاده که کارایی برنامه شما رو به صورت چشم گیری افزایش می دهد
    من یک حلقه بزرگ رو مثال می زنم ک من در اینجا قصد دارم یک جستجو در یک مسیر خاص در درایوم رو به شما نشون بدم لازم به ذکر هست که این برنامه تمام مسیر یعنی تمام زیر شاخه ها رو هم در بر می گیره:
    این کد کاملش :
    Search.zip

    این هم یک مثال ساده تا بهتر متوجه بشیم:


    PublicEnum StatC
    vbStop = 0
    vbRun = 1
    vbPause = 2
    EndEnum
    Dim Stat_1 As StatC



    Dim
    Tr As Threading.Thread
    برای آغاز کار
    Public


    Sub Start()
    If Stat = StatC.vbStop Then
    Me.Tr = New Thread(New ThreadStart(AddressOf Me.Roshan))
    Tr.Priority =ThreadPriority.Highest
    Tr.Start()
    EndIf
    End sub
    برای ادامه وقتی که Pause استفاده شود
    Public Sub Resume_()
    IfNot IsNothing(Tr) Then Tr.Resume()
    Stat_1 = StatC.vbPause
    EndSub
    برای توقف موقت
    PublicSub Pause()
    IfNot IsNothing(Tr) Then Tr.Suspend()
    Stat_1 = StatC.vbPause
    EndSub
    برای از بین بردن
    Public Sub _Stop()
    IfNot IsNothing(Tr) Then Tr.Abort()
    Stat_1 = StatC.vbStop
    EndSub
    پردازه بی نهایت
    PrivateSub Roshan()
    While (1)
    ....دستورات شما
    End While
    EndSub





    قسمتی که به رنگ قرمز در آمده است (پرسپولیس) این قسمت اهمیت این نخ را برای سیستم عامل شرح می دهد و اولویت این نخ بر اساس این متد تغییر می کند پس از آن به درستی استفاده کنید.




  15. #15
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    نقل قول: نا گفته ها در Visual Basic.Net

    این کد زمان روشن بودن کامپیوتر رو بر حسب میلی ثانیه بر میگرداند. این قابلیت میتونه خیلی کارامد باشه در ضمن چون در یک متغیر 32 بیتی ذخیره میشود پس از 24 روز مقدار آن صفر میشود.
    System.Environment.TickCount

  16. #16
    کاربر دائمی آواتار rooshan2008
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    گیلان- لشت نشا
    سن
    37
    پست
    179

    نقل قول: نا گفته ها در Visual Basic.Net

    این هم ایجاد یک شی در زمان اجرا و انتصاب رویداد کلید در زمان اجرا به آن شی :


    Dim Bt As New Button
    PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
    Bt.Parent =
    Me

    Bt.Location =
    New Point(Me.Width / 2, Me.Height / 2)
    Bt.Text =
    "Ok"

    AddHandler Bt.Click, AddressOf BtClick
    EndSub

    PrivateSub BtClick(ByVal sender As Object, ByVal e As EventArgs)
    MsgBox(
    "Hello ...")
    EndSub


    همه رویداد همه اشیا از همین سبک قابل هدایت هستند.

  17. #17
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    Smile نقل قول: نا گفته ها در Visual Basic.Net

    دوست عزیزمان ساختن باتون در زمان اجرا را گفتند ، من هم Move کردن این باتون در زمان اجرا رو میگم. البته این کار بدون استفاده از Api ها هست
    Dim mouse_offset As Point
    Private Sub Button1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown
    mouse_offset = New Point(-e.X, -e.Y)
    End Sub
    Private Sub Button1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseMove
    If e.Button = Windows.Forms.MouseButtons.Left Then
    Dim mousePos As Point = sender.MousePosition
    mousePos.Offset(mouse_offset.X - Button1.Height, mouse_offset.Y - Button1.Width)
    sender.Location = mousePos
    End If
    End Sub

  18. #18
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    Code Snippet

    این دفعه شما رو با Code Snippet ها اشنا میکنم.
    Code Snippet ها کد های کوچک شده ایی هستند که باعث تسهیل در کد نوشتن میشوند. برای اینکه با این کد ها آشنا بشین در محیط کد نویسی ویژوال استادیو کلیک راست کنید و گزینه ی Insert Snippet ر وانتخاب کنید . ملاحضه میکنین که لیستی از این کد ها رو براتون میاره
    برای نمونه ایتم Windows Operating System\Find the current user رو انتخاب بکنین
    ملاحضه میکنین که متغیری تعریف میکنه که نام کاربر جاری در آن ذخیره شده.
    این کدها کار برنامه نویس رو خیلی راحت تر میکنه. (به زودی نحوه ی ساخت این کد ها رو کامل بهتون میگم.). یکی از تفاوت هایی که ویژوال 2005 با نسخه های قبلی داره همین Code Snippet هاست.
    مثلا در دات نت حلقه ی For یک CodeSnippet هست.
    برای اینکه بتونید سریع تر به ساختار این کد ها دسترسی داشته باشین پس از نوشتن اسم انها(مثلا For) کلید TAB رو بزنید ملاحضه میکنین که چه اتفاقی صورت میگیره.

  19. #19
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    Smile نقل قول: نا گفته ها در Visual Basic.Net

    تصمیم گرفتم که همین حالا آموزش ساخت Code Snippet رو براتون بگم
    من میخوام Code Snippet ایی بسازم که وقتی در محیط کد نویسی بنویسی TMB(مخفف Test MsgBox) و سپس کلید Tab رو بزنی کد زیر اضافه بشه
    MsgBox("This is a test")


    Code Snippet ها ساختاری به صورت XML دارند ولی شما برای ساختن اونها احتیاجی به یادگیری XML ندارین. میتونید اون قسمت هایی که لازم دارین رو کپی کنید.

    شما میتونین این کدها رو هم در NotePad و هم در VS بسازین. من برای راحتی کار با VS میگم.
    در ابتدا شما باید از منوی File گزینه ی New و سپس File رو انتخاب کنین. از لیست باز شده گزینه ی XML File رو انتخاب کنین. یک صفحه ی خالی برای شما باز میشود. کد زیر رو در اون کپی کنید و با نام Test ذخیره کنید. پسوند اون هم Snippet رو انتخاب کنین.
    <?xml version="1.0" encoding="utf-8" ?>

    <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">

    <CodeSnippet Format="1.0.0">

    <Header>

    <Title>TestMsgBox</Title>

    <Author>Sepehr.Net www.Barnamenevis.Org</Author>

    <Description>Test Function.</Description>

    <Shortcut>TMB</Shortcut>

    <SnippetTypes>

    <SnippetType>Expansion</SnippetType>

    </SnippetTypes>

    </Header>

    <Snippet>

    <Code Language="vb">

    <![CDATA[


    msgbox ("This is a test")
    ]]>

    </Code>

    </Snippet>

    </CodeSnippet>

    </CodeSnippets>

    در قسمت Title نام این Snippet رو مینویسین.در قسمت Author اسم خودتون(سازنده) رو مینویسین . در قسمت Description توضیحاتی که طرف برای انتخاب این Snippetد میبینه رو مینویسین. در قسمت Shortcut هم کلمه ایی که کاربر پس از نوشتن اون و زدن کلید Tab میتونه Snippet شما رو ببینه مینویسین. در قسمت SnippetType هم عبارت Expansion رو مینویسین(راستش من نفهمیدم این عبارت دقیقا کارش چیه. ولی فکر کنم مربوط به گسترش این Snippet بشه). در قسمت Code Language نام زبان رو مینویسین مثلا csharp یا vb. و در آخر بعد از عبارت CDATA کد هایی که میخواهید این Snippet براتون انجام بده رو به همون زبانی که انتخاب کردین مینویسین.

    خب حالا نوبت اضافه کردن این Snippet به دات نت میرسه.
    برای این کار شما یک پوشه بسازین با نام Test و این Snippet رو در داخل اون پوشه بریزین.
    از منوی Tools گزینه ی Code Snippet Manager رو انتخاب میکنین. تمامی Snippet ها رو براتون اورده و مسیر اونها رو میتونین ببینین و حتی اونها رو ویرایش کنین. حلا شما گزینه ی Add رو بزنین و ادرس اون پوشه ایی که ساختین (در اینجا با نام Tset) رو بهش بدین. میبینین که اون پوشه اضافه میشه و Snippet داخل پوشه هم اضافه شده.

    حالا برین توی قسمت کد نویسی و بنویسین TMB و بعد از اون TAB رو بزنین. ملاحضه فرمودین که چه اتفاقی افتاد ؟؟؟
    میتونین اونرو به این صورت هم بیارین که روی صفحه راست کلیک کنین و گزینه ی Insert Snippet رو انتخاب و بعد از اون گزینه ی Test رو بزنین. ملاحضه میکنید که Snippet ساخته شده رو براتون اورد و توی ToolTip ایی که باز میشه توضیحات و میانبر این snippet رو براتون میاره.

  20. #20
    کاربر دائمی آواتار mc_laren
    تاریخ عضویت
    آذر 1385
    محل زندگی
    بهبهان
    پست
    197

    نقل قول: نا گفته ها در Visual Basic.Net

    تغییر اندازه خودکار فرم

    حتما تا حالا برای شما هم پیش آمده که وقتی که نوع فونت فرم رو عوض می کنید اندازه فرم هم تغییر می کنه و اندازه فرم از حالت تنظیم شده خارج شده . بد نیست بدانید که همه این کارها توسط گزینه Auto Scale Mode انجام میشه . و حالا تنظیمات این گزینه :
    :none -1
    وقتی این گزینه رو انتخاب کنیم دیگه تنظیمات صفحه اصلاً بهم نمی خورد.
    :Font -2
    وقتی این گزینه رو انتخاب می کنیم موجب تغییر اندازه خودکار فرم و اشیای درون آن بر حسب اندازه و نوع قلم انتخاب شده برای فرم می شود.
    :DPI -3
    انتخاب این گرینه موجب تغییر اندازه فرم و اشیای دورن آن بر حسب DPI سیستمی که برنامه در آن اجرا می شود تغییر می کند.
    مسیر Desktop->Properties->Setting->Advanced->General=DPI

    :Inherit -4
    متاسفانه تاثیر این گزینه رو نتونستم پیدا کنم.

  21. #21
    کاربر دائمی آواتار mostafaaa
    تاریخ عضویت
    دی 1386
    محل زندگی
    جزیره کیش
    پست
    723

    نقل قول: نا گفته ها در Visual Basic.Net

    سلام
    آیا تا حالا توی برنامه هاتون نیاز داشتین که یه یه کد برنامه نویسی توسط کاربرتون وارد بشه و برنامتون اون رو کمپایل کنه؟
    آیا تا به حال نیاز داشتین که توی برنامتون یه سری فرمول ریاضی از کاربرتون دریافت کنید و حلش کنید؟
    آیا تا به حال به فکرتون رسیده که یه ماشین حسابی بنویسید که وقتی Button های روی اون رو فشار میدین فقط تکست مربوطه به Button توی یه TextBox ریخته بشه و بقیه کارها رو به عهده کمپایلر دات نت بندازید؟
    خوب راه حل تمامی اینها و خیلی دیگر از این قبیل مشکلات کلاسهای موجود توی فضا نام CodeDome هستش.
    در اینجا یه مثال ساده از استفاده از این کلاسها رو براتون میزارم . که تو زمان اجرا کاربر میتونه کدهاش رو به زبان VB بنویسه و کدها رو کمپایل کنه و خروجیش رو هم به صورت یه فایل EXE در بیاره.
    خو ب ابتدا یه پروژه جدید ایجاد کنید و روی فرم اصلیتون دوتا TextBox و دوتا Button بزارید. خاصیت MultiLine مربوط به TextBox ها رو True کنید.
    این هم از کدهای برنامه.
    Imports System.CodeDom
    Imports System.CodeDom.Compiler
    Public Class Form1
    Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click, button2.Click
    Dim codeProvider As New VBCodeProvider
    Dim icc As ICodeCompiler = codeProvider.CreateCompiler
    Dim Output As String = "Out.exe"
    Dim ButtonObject As Button = CType(sender, Button)

    textBox2.Text = ""
    Dim parameters As New CompilerParameters()
    Dim results As CompilerResults
    'Make sure we generate an EXE, not a DLL
    parameters.GenerateExecutable = True
    parameters.OutputAssembly = Output
    results = icc.CompileAssemblyFromSource(parameters, textBox1.Text)

    If results.Errors.Count > 0 Then
    'There were compiler errors
    textBox2.ForeColor = Color.Red
    Dim CompErr As CompilerError
    For Each CompErr In results.Errors
    textBox2.Text = textBox2.Text & _
    "Line number " & CompErr.Line & _
    ", Error Number: " & CompErr.ErrorNumber & _
    ", '" & CompErr.ErrorText & ";" & _
    Environment.NewLine & Environment.NewLine
    Next
    Else
    'Successful Compile
    textBox2.ForeColor = Color.Blue
    textBox2.Text = "Success!"
    'If we clicked run then launch the EXE
    If ButtonObject.Text = "Run" Then Process.Start(Output)
    End If

    End Sub
    End Class
    برای تست کردن برنامتون هم میتونید. این کد رو توی قسمت ورودی کاربر کپی کنید.
    Imports System
    Imports System.Console
    Module Module1
    Sub Main()
    Console.WriteLine("THIS IS A CODE DOME EXAMPLE!!")
    Console.ReadLine()
    End Sub
    End Module
    شکل کلی فرمتون هم به شکل زیر باید باشه.
    Untitled-1.gif
    امیدوارم به دردتون بخوره

  22. #22
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    SqlTransaction

    تا حالا درمورد Transaction ها چیزی شنیدید؟
    اگه برنامه نویس بانک اطلاعاتی هستین تا حالا فکر کردید که اگه در هنگام کار با بانک به مشکل پیشبینی نشده ایی برخورد کنید چه اتفاقی می افته؟ . مثلا شما دارید اطلاعاتی مالی رو از حساب خریدار به حساب مشتری انتقالز میدین . ناگهان در حین انجام این کار، برق بره . تا حالا فکر کردین که تکلیف این اطلاعات چی میشه؟
    برای اینکه در چنین مواقعی مشکلی برای برنامه پیش نیاد و اطلاعات از دست نره میتونین از SqlTransaction استفاده کنید. اگه از این کنترل استفاده کنید پس از بروز چنین مشکلاتی اطلاعات به شکل قبلی خودش بر میگرده.
    برای اینکه بتونین از این کلاس استفاده کنید ابتدا باید به صورت زیر اون رو تعریف کنین
     Dim tran As SqlClient.SqlTransaction

    اگه دقت کرده باشن احتیاج به کلمه ی New نداره!!!
    پس از تعریف ان شما باید این متغیر را به کانکشن خود ارتباط دهید که به صورت زیر میباشد
    tran = con.BeginTransaction


    همچنین باید این متغیر رو با Command خود هم مرتبط کنید به صورت زیر
    cmd.Transaction = tran

    اگه برنامه دچار مشکل شد با دستور زیر اطلاعات بازگردانی میشه
    tran.Rollback()

    اگر هم دچار مشکل نشد با دستور زیر اطلاعات در بانک ثبت میشه
    tran.Commit()

    شما میتونین این دستورات رو به شکل زیر بنویسید
    Dim con As New SqlClient.SqlConnection
    Dim cmd As New SqlClient.SqlCommand
    Dim tran As SqlClient.SqlTransaction
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    con.Open()
    tran = con.BeginTransaction
    cmd.Transaction = tran
    Try
    cmd.ExecuteNonQuery()
    tran.Commit()
    Catch ex As Exception
    tran.Rollback()
    MsgBox("Error")
    End Try
    End Sub

  23. #23
    کاربر دائمی آواتار rooshan2008
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    گیلان- لشت نشا
    سن
    37
    پست
    179

    نقل قول: نا گفته ها در Visual Basic.Net

    سلام
    با تشکر از sepehr.net
    این تاپیک رو درباره تراکنش قبلاً تقربا
    https://barnamenevis.org/showth...A9%D9%86%D8%B4

  24. #24
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    Backup And Restore

    بنا به درخواست بعضی از دوستان در این پست اموزش Backup و Restore بانک اطلاعاتی Sql رو قرار میدهم.
    گرفتن نسخه ی پشتیبان از برنامه به چند صورت انجام میشه که من ساده ترین حالت و پر کاربرد ترین اونها رو قرار میدهم.
    برای اینکه بتونیم از برنامه نسخه ی پشتیبان تهیه کنیم به صورت زیر عمل میکنیم
     Cmd.CommandText = "Backup Database databasename to Disk='" & path & "'"
    Cmd.ExecuteNonQuery()

    این کد از برنامه نسخه ی پشتیبانی تهیه میکنه که نام و مسیر اون در متغیر path قرار گرفته.
    (برای دیدن سایر روشهای گرفتن نسخه ی پشتیبان به Help خود Sql که کامل ترین مرجع است مراجعه کنید).
    اما Restore کردن به راحتی گرفتن نسخه ی پشتیبان نیست. دلیلش هم اینه که شما وقتی به یک بانک متصل هستید نمیتونین اون رو تغییر بدین. برای این کار شما در ابتدا باید از دستور UseMaster استفاده کنین که بانک فعال شما تغییر پیدا کنه .
    برای Restore کردن از کد زیر استفاده کنید
    cmd.CommandText = "Use Master;ALTER DATABASE databasename SET SINGLE_USER with ROLLBACK IMMEDIATE;" & _
    "RESTORE DATABASE databasename FROM DISK= '" & path & "' with REPLACE;" & _
    "ALTER DATABASE databasename SET MULTI_USER"
    cmd.ExecuteNonQuery()

    در متغیر Path هم نام و مسیر همون فایل Bacup قرار گرفته

  25. #25
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    نقل قول: نا گفته ها در Visual Basic.Net

    دوستان هرکس مایل به یادگیری مطالب بیشتری در مورد تراکنشها (transaction)هست میتونه به این تاپیک
    که جناب Rooshan2008 لطف کردن آموزش کامل اونرو قرار دادن مراجعه کنه

  26. #26
    کاربر دائمی آواتار mc_laren
    تاریخ عضویت
    آذر 1385
    محل زندگی
    بهبهان
    پست
    197

    نقل قول: نا گفته ها در Visual Basic.Net

    با سلام
    حل مشکل Attach و ِDetach برای همیشه
    تا حالا زیاد دیدم در مورد این مطلب سوال بشه و بعد از جستجو در سایت های مختلف این کدها بدست آمد :
    Attach کردن به سرور بوسیله فایل mdf و :ldf

    EXEC sp_attach_db @dbname='نام بانک ',
    @filename1='مسیر فایل mdf',
    @filename2='مسیر فایل ldf'


    Attach کردن بوسیله فایل mdf

      EXEC sp_attach_single_file_db  @dbname='نام بانک',
    @physname='مسیر فایل mdf'


    Detach کردن
    EXEC sp_detach_db 'نام بانک'


    رشته اتصال در SQL Server 2000
    "data source=(local);integrated security=true"


    رشته اتصال در SQL Server 2005
    "data source=./SQLEXPRESS;integrated security=true"


    کد های گفته شده را در یک SQLcommand قرار داده

  27. #27
    کاربر دائمی آواتار Afshin160
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    528

    Thumbs up نقل قول: نا گفته ها در Visual Basic.Net

    تبدیل تاریخ از/به شمسی و دیگر تقویم ها :

    تبدیل به میلادی:
    Dim x As New System.Globalization.PersianCalendar
    Dim dt As Date = x.ToDateTime(1386, 1, 1, 0, 0, 0, 0, 0)


    تبدیل از میلادی

    Dim x As New System.Globalization.PersianCalendar()

    Dim dt As Date
    dt = #1/1/2007#
    'Or یا
    dt = New Date(2007, 1, 1)
    'Or یا
    dt = CDate("1/1/2007")

    Dim y As Integer = x.GetYear(dt)
    Dim m As Integer = x.GetMonth(dt)
    Dim d As Integer = x.GetDayOfMonth(dt)


    دات نت 2 با تقویم میلادی در کل شامل 11 تقویم است!
    مثلاً PersianCalendar تقویم ایرانی یا همان هجری شمسی است
    یا HijriCalendar تقویم هجری قمری است
    JapaneseCalendar ژاپنی
    KoreanCalendar کره ای
    TaiwanCalendar تایوانی
    و...

    برای تبدیل تاریخ های تقویم های دیگر به هم (که یک سرش میلادی نباشد) باید اول تاریخ مورد نظر را به میلادی تبدیل کرد و سپس میلادی را به تقویم دوم تبدیل کرد.

  28. #28
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    نقل قول: نا گفته ها در Visual Basic.Net

    سلام
    برای اینکه برنامه ایی که نوشتین فقط یک بار باز بشه (به صورت همزمان) تنظیمات زیر را انجام بدین
    در داخل ویژوال استادیو در Solution Explorer بر روی آیتم My Project دابل کلیک کنید تا یک پنجره برگه دار (tabbed window) باز شود. در این پنجره تنظیمات برنامه شما قرار دارد.بر روی برگه tab Application کلیک کنید و در قسمت windows application framework properties بر روی چک باکس Make Single instance application کلیک کنید تا انتخاب گردد.

    در صورت انجام دادن مراحل بالا دیگر شما قادر نخواهید بود که کپی‌های دیگری از این برنامه را به صورت هم زمان بر روی آن کامپیوتر اجرا کنید و در صورت اجرا کردن نسخه‌های دیگر هیچ اتفاقی روی نخواهد داد و آنها فورا بسته خواهند شد.

  29. #29
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    نقل قول: نا گفته ها در Visual Basic.Net

    بازم سلام
    تا حالا در مورد کلاس System.Management چیزی شنیدید؟
    اصلا کار این کلاس چیه؟
    تا حالا شده که اطلاعاتی در مورد سیستم عامل ، سخت افزار ، نرم افزار های موجود در ویندوز و .... لازم داشته باشید و Api ها هم جواب گوی شما نباشند یا مشخصات اون Api رو بلد نباشین؟
    حالا من قصد دارم چیز جدید و جالبی رو معرفی کنم. (لازمه که بگم من خودم تازه مطالعه روی این زمینه رو شروع کردم و اگه اشتباهی در گفته های من است از اساتید خواهش میکنم که به بزرگی خودشون ببخشند و اون رو اصلاح کنند.)
    شما میتونید به وسیله ی زبان اسکریپتی WQL که همانند زبان SQL است کار های خارق العاده ایی انجام بدین. (نمونه کدی که روی اون کار میکنیم گرفتن مشخصات کارت گرافیکه)
    کد زیر رو ببینید :
    Imports System.Management
    Public Class Form1
    Dim ObjMng As Management.ManagementObject
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim c As New Management.ManagementObjectSearcher("SELECT * FROM Win32_DisplayConfiguration")
    Dim DeviceName As String
    Dim DisplayFlags As String
    Dim DisplayFrequency As String
    Dim DriverVersion As String
    Dim PelsHeight As String
    Dim PelsWidth As String
    '--------------------
    For Each ObjMng In c.Get
    PelsWidth = ObjMng("DisplayFlags").ToString
    DeviceName = ObjMng("DeviceName").ToString
    DisplayFrequency = ObjMng("DisplayFrequency").ToString
    DriverVersion = ObjMng("DriverVersion").ToString
    PelsHeight = ObjMng("PelsHeight").ToString
    PelsWidth = ObjMng("PelsWidth").ToString
    Next
    '---------------------------
    MsgBox(PelsWidth)
    MsgBox(DeviceName)
    MsgBox(DisplayFrequency)
    MsgBox(DriverVersion)
    MsgBox(PelsHeight)
    MsgBox(PelsWidth)
    End Sub
    End Class
    در ابتدا باید رفرنس System.Management رو به برنامه اضافه کنیم.
    ما به وسیله ی این کد یک جستجو با دستورات WQL انجام میدیم که حاصل اون در یک حلقه ی ForEach در متغیر ریخته میشه.
    برای کسب اطلاعات بیشتر به تاپیک زیر مراجعه کنید
    https://barnamenevis.org/showth...235#post635235

  30. #30
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    نقل قول: نا گفته ها در Visual Basic.Net

    این هم تمامی کلید های ترکیبی که در VisualBasic 2005 وجود دارند.
    فایل های ضمیمه فایل های ضمیمه

  31. #31

    نقل قول: نا گفته ها در Visual Basic.Net

    یک نمونه برنامه برای کار با مقادیر پولی



    به صورت همزمان هنگام تایپ عدد این امکانات رو به شما میده:
    1- 3 رقم 3 رقم جدا کردن عدد
    2- نمایش معادل به تومان
    3- استفاده از مقدار عددی بدون علامت در انجام محاسبات عددی
    فایل های ضمیمه فایل های ضمیمه

  32. #32
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    نقل قول: نا گفته ها در Visual Basic.Net

    اضافه کردن رویداد سه بار کلیک به یک کنترل
        Dim WithEvents Click3 As New TripleClick
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Click3.Click()
    End Sub
    Private Sub Click3_TplClick(ByVal Text As String) Handles Click3.TplClick
    TextBox1.Text = Text
    End Sub
    Public Class TripleClick
    Public Event TplClick(ByVal Text As String)
    Public Sub Click()
    Static intCount As Integer = 0
    intCount += 1
    If intCount >= 3 Then
    intCount = 0
    RaiseEvent TplClick("The Button was triple clicked.")
    End If
    End Sub
    End Class

  33. #33
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    نقل قول: نا گفته ها در Visual Basic.Net

    یکی از مشکلاتی که افراد زیادی با اون درگیر هستند اینه که :
    ما در بانک یک جدول داریم که مشخصات افراد رو در اون ثبت میکنه
    حالا میخوایم رو فرم یک ComboBox داشته باشیم که در اون نام افراد نشان داده بشه و با انتخاب هر فرد از این ComboBox یک ID که مربوط به همون فرد هست رو به ما نشون بده
    خب برای این کار در ابتدا ما اطلاعات جدول را در یک DataSet یا DataTable میریزیم سپس کد زیر رو مینویسیم
    ComboBox1.DataSource=Dt
    ComboBox1.DisplayMember="Name"
    ComboBox1.ValueMember="ID"
    ComboBox1.Show()


  34. #34
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    نقل قول: نا گفته ها در Visual Basic.Net

    این دفعه یک پروپرتی جالب از TextBox رو میگم
    پروپرتی ShortcutsEnabled که از نوع Boolean هست
    بعضی وقتها میخواین که کاربر نتونه از تو TextBox متنی رو کپی کنه یا Undo کنه و ...
    برای انجام اینکار این پروپرتی رو برابر False قرار بدین
    عملیاتی که این پروپرتی مانع از انجام اونها میشه اینها هستند

    • CTRL+Z
    • CTRL+E
    • CTRL+C
    • CTRL+Y
    • CTRL+X
    • CTRL+BACKSPACE
    • CTRL+V
    • CTRL+DELETE
    • CTRL+A
    • SHIFT+DELETE
    • CTRL+L
    • SHIFT+INSERT
    • CTRL+R



  35. #35
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    Post Directives

    سلام
    حتما" تا حالا عبارت Region# را دیدید؟ و این سوال براتون پیش اومده که این عبارت چی هست و چه کاری انجام میده !!!
    این دفعه میخوام در باره ی Directive ها توضیح بدم

    Directive ها دستوراتی هستند که کامپایل نمیشوند بلکه کامپایلر رو هدایت میکنند تا دستور خاصی را کامپایل کنه. تمامی Directive ها با علامت # اغاز میشوند. تعداد این دستورات در C#‎ از VB بیشتره. من در این پست دستوراتی که در vb به کار میروند را توضیح میدم
    #Region "Name"

    #End Region

    این Directive برای دسته بندی قسمت هایی از کد استفاده میشه. مثلا شما یک کلاس دارید که در اون اعمال مختلفی انجام میشه مثلا قسمتی از این کلاس اعمال مربوط به اساتید رو انجام میده و قسمت دیگری اعمال مربوط به دانشجویان. با این Directive میتونین این اعمال را دسته بندی کنید.

    #Const

    کار این Directive تعریف یک مقدار ثابته مثلا" در دستور زیر شما به جای عدد 3.14 میتونید بنویسید PI . از این پس کامپایلر هر کجا که کلمه PI رو دید به جای آن مقدار 3.14 را قرار میدهد
    #Const PI = 3.14


    #If  Then

    #Else

    #End If

    عمل این Directive ها هم مثل if معمولی هست و فقط تفاوت اون هم در اینه که کامپایل نمیشه. پس شرط اون هم نباید کامپایل بشه. مثلا شما میتونید به این صورت از اون استفاده کنید
    #If Pi = 3.14 Then
    'Return True
    #Else
    'Return False
    #End If


    Directive اخری که هست اینه :
    #ExternalSource("FilePath", 1)
    MsgBox("In FilePath")
    #End ExternalSource

    راستش من هر کاری کردم بفهمم دقیقا" کار این Directive چیه نفهمیدم
    ولی تا اونجا که دستگیرم شد هنگامی که قسمتی از کد ما در یک فایل دیگر باشد با این Directive میتونیم از اونها استفاده کنیم و از خطا های احتمالی جلوگیری کنیم
    (اگه اشتباه میگم دوستان اصلاح کنند)

  36. #36
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    نقل قول: نا گفته ها در Visual Basic.Net

    سلام
    دوست عزیز Nevron یک سری ابزاره که متعلق به VisualBasic.net نیستند
    این تاپیک در مورد ابزار های خود دات نت توضیح میده
    اگه شما درخواستتون رو در این تاپیک مطرح کنید به نتیجه میرسه

  37. #37
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    Smile نقل قول: نا گفته ها در Visual Basic.Net

    سلام
    شاید شما هم از نوشتن دستورات SQL در برنامه خسته شده باشید.
    نوشتن این دستورات (Insert,Update,Delete) باعث بروز مشکلات زیادی برای برنامه نویس میشه که خودتون بهتر میدونید
    حالا روشی را معرفی میکنم که دیگه احتیاجی به نوشتن این دستورات نداشته باشین
    تعریف متغیر ها و مقدار دهی اولیه:
            Dim con As SqlClient.SqlConnection = New SqlClient.SqlConnection("StrConnection")
    con.Open()
    Dim da As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter("Select * From Table1", con)
    Dim dt As DataTable = New DataTable
    da.Fill(dt)
    Dim cmdbuild As SqlClient.SqlCommandBuilder

    اضافه کردن سطر به DataTable :
            Dim dr As DataRow
    dr = dt.NewRow
    dr("Fild 1") = "Value 1"
    dr("Fild 2") = "Value 2"
    dr("Fild N") = "Value N"
    dt.Rows.Add(dr)
    cmdbuild = New SqlClient.SqlCommandBuilder(da)
    da.Update(dt)


    ویرایش :
            dt.Rows(0)("Fild 1") = "Value 1"
    dt.Rows(0)("Fild 2") = "Value 2"
    dt.Rows(0)("Fild N") = "Value N"
    cmdbuild = New SqlClient.SqlCommandBuilder(da)
    da.Update(dt)

    حذف:
    dt.Rows(0).Delete()
    cmdbuild = New SqlClient.SqlCommandBuilder(da)
    da.Update(dt)

    شی SqlCommandBuilder ، تغییراتی که در DataTable داده شده است را به صورت دستورات SQL تبدیل میکند و در Da میریزد

  38. #38
    کاربر دائمی آواتار sepehr.net
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    386

    Smile OverLoading

    سلام
    حتما" بعضی از متد ها را دیدید که میتونید یک یا چند پارامتر به انها پاس کنید؟
    یعنی اگر یک پارامتر به ان ارسال کنید برنامه کامپایل میشود و اگر هم دو یا بیشتر پارامتر به انها ارسال کنید باز هم برنامه کامپایل میشود.
    پیش بار گذاری یا OverLoading این امکان را به شما میده که یک متد با لیست آرگومانهای متفاوت داشته باشین.
    مثلا" ما یک تابع MessageBox داریم. حالا میخوایم این تابع به سه صورت فراخوانی بشه
    1- فقط متن. 2- متن و عنوان 3- متن و عنوان و آیکون
    برای این کار به این صورت عمل میکنیم:
    Public Sub Msg(ByVal Text As String)
    عملیات مربوط به حالت اول
    End Sub

    Public Sub Msg(ByVal TextAs String , ByVal Title As String)
    عملیات مربوط به حالت دوم
    End Sub

    Public Sub Msg(ByVal Text As String, ByVal Title As String, ByVal Icon As Integer)
    عملیات مربوط به حالت سوم
    End Sub

    اگر به صورت بالا عمل کنیم یعنی متد ها را OverLoad کنیم به خواسته ی خود میرسیم.
    فقط باید این نکته را بدانیم که زمانی متد ها با یکدیگر OverLoad میشوند که فقط و فقط آرگومانهای انها با هم تفاوت داشته باشد.
    در ضمن این عمل را میتوان با اختیاری کردن پارامتر ها هم انجام داد به این صورت که قبل از کلمه ی ByVal از کلمه ی Optional استفاده کنیم که ان پارامتر را اختیاری میکند. ولی اگر تعداد پارامتر ها زیاد باشد این روش چندان مناسب نیست و باعث گمراه کردن کاربر نیز میشود

  39. #39
    کاربر دائمی آواتار mehrnoosh_al62
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    شمال ایران...
    پست
    374

    نقل قول: نا گفته ها در Visual Basic.Net

    سلام دوستان
    یکی از کار هایی که در خیلی از برنامه ها ی روتین مورد استفاده قرار میگیره تبدیل دیتاگرید و اطلاعات اون به فرمتهای مختلفی مثل Word,Excel و PDF هست که در این بین تبدیل اطلاعات به فرمت PDF از بقیه مشکل تر به نظر میاد. برنامه ای گذاشتم این کار رو با استفاده از کامپوننت rzPDFCreator.dll خیلی راحت کرده.
    فایل های ضمیمه فایل های ضمیمه

  40. #40
    کاربر دائمی آواتار mehrnoosh_al62
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    شمال ایران...
    پست
    374

    نقل قول: نا گفته ها در Visual Basic.Net

    یه راهه خیلی ساده برای تبدیل اطلاعات دیتاگرید به Excel:

    Private Sub ExportToExcel()
    SaveFileDialog1.Filter = "*.xls|*.xls"
    SaveFileDialog1.ShowDialog()
    If SaveFileDialog1.FileName <> "" Then
    Dim oExcel As Object
    Dim oWorkBook As Object
    Dim oSheet As Object
    oExcel = CreateObject("Excel.Application")
    oWorkBook = oExcel.Workbooks.Add
    oExcel.visible = True
    Dim c, r As Integer
    Dim ColNum As Integer = DataGridView1.ColumnCount
    Dim RowNum As Integer = DataGridView1.RowCount
    Dim col As Integer = 65
    oSheet = oWorkBook.worksheets(1)
    For c = 1 To ColNum
    oSheet.Range(CStr(Chr(col) & 1)).Value = DataGridView1.Columns(c - 1).HeaderText
    col += 1
    Next
    For r = 1 To RowNum
    For c = 1 To ColNum
    oSheet.Cells(r + 1, c) = DataGridView1.Rows(r - 1).Cells(c - 1).Value
    Next
    Next
    oWorkBook.SaveAs(SaveFileDialog1.FileName, True)
    oSheet = Nothing
    oWorkBook = Nothing
    oExcel = Nothing
    End If
    End Sub

صفحه 1 از 2 12 آخرآخر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •