سلام دوستان عزيز
در اين تاپيك قصد دارم كدهاي كاربردي در خصوص VB.net رو براتون بزارم
اميدوارم مفيد واقع بشه
لطفا همكاري كنيد
Printable View
سلام دوستان عزيز
در اين تاپيك قصد دارم كدهاي كاربردي در خصوص VB.net رو براتون بزارم
اميدوارم مفيد واقع بشه
لطفا همكاري كنيد
شماره سریال و مدل CPU و هارد در VB.net
ابتدا بايد به قسمت References
system.management رو حتما اضافه كنيد
آدرس Dll مربوط به اين مطلب C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Syst em.Management.dll است .فرمي ايجاد مي كنيم كه اشياء زير رو داشته باشه
سه عدد تكست باكس به نام هاي
HDD_Model_txt
HDD_Serial_txt
CPU_Serial_txt
در اين مرحله كد هاي زير رو اضافه مي كينم
Imports System.Management
Public Class Form1
Private Sub GetHDDSerialNumber()
Dim searcher As ManagementObjectSearcher
Dim query1 As String = "SELECT * FROM Win32_DiskDrive"
Dim query2 As String = "SELECT * FROM Win32_PhysicalMedia"
searcher = New ManagementObjectSearcher(query1)
For Each wmi_HD As ManagementObject In searcher.Get()
If Not wmi_HD("Model") Is Nothing Then
HDD_Model_txt.Text = wmi_HD("Model").ToString()
End If
Next
searcher = New ManagementObjectSearcher(query2)
For Each wmi_HD As ManagementObject In searcher.Get()
If Not wmi_HD("SerialNumber") Is Nothing Then
HDD_Serial_txt.Text = wmi_HD("SerialNumber").ToString()
End If
Next
End Sub
Public Shared Function GetCPUId() As String
Dim cpuInfo As String = String.Empty
Dim mgmt As ManagementClass = New ManagementClass("Win32_Processor")
Dim objCol As ManagementObjectCollection = mgmt.GetInstances()
For Each obj As ManagementObject In objCol
If cpuInfo = String.Empty Then
cpuInfo = obj.Properties("ProcessorId").Value.ToString()
End If
Next
Return cpuInfo
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CPU_Serial_txt.Text = GetCPUId()
GetHDDSerialNumber()
End Sub
End Class
جستجو در ListBox در VB.net
(Dim i As Integer = ListBox1.FindString(TextBox1.Text
ListBox1.SelectedIndex = i
If TextBox1.Text = "" Then
ListBox1.SelectedIndex = -1
End If
اتصال به SQL از طریق VB.NET
Imports System.Data
Imports System.Data.SqlClient
PublicClassForm1
Dim con as new sqlconnection("datasource=.; initial catalog=database_Name; integrated security=true")
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
در برخی موارد لازم است شما از روال مورد نظر خودتان قبل از اتمام تمام کدها خارج شوید و اجازه ندهید کدهای بعدی اجرا شوند برای این کار از کد زیر استفاده می کنیم.
ExitSub
برای خروج از برنامه در VB.net
[VB]Application.Exit()[/VB]
بدست آوردن طول رشته داخل TextBox در VB.net
[VB]MsgBox(TextBax1.text.Length)[/VB]
شمارش تعداد سطرهای Datagrid در VB.net
DGV.rowcount()-1
بستن فرم با کلیک بر روی Escape در VB.net
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadMe.KeyPreview = True
End Sub
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode.ToString = "Escape" Then
Me.KeyPreview = False
Me.close()
End If
End Sub
بدست آوردن مسیر برنامه در VB.net
MsgBox(Application.ExecutablePath)
جلوگیری از بسته شدن فرم در VB.net
در رویداد FormClosing کد زیر را بنویسید
e.cancel=True
استفاده از کد داخل یک Button در Button دیگر در VB.net
Button1_Click(sender,e)
جلوگیری از نوشتن متن در ComboBox توسط کاربر در VB.net
پس از ایجاد شی کامبو به قسمت تنظیمات آن می رویم و تغییرات زیر را اعمال می کنیم:
DropDownStyle=DropDownList
جلوگیری از اجرای مجدد برنامه در VB.net
Project/Properties/Make Single Instance application=true
انتخاب آخرین رکورد در Datagrid در VB.net
DGV1.Row(DGV1.Rowcount-1).select=true
قطع اتصال به اینترنت در VB.net
shell("rasdial/disconnect")
اعتبار سنجی تکست باکس برای ورود فقط عدد در رویداد key Pres
IF NOT char.isnumber(e.keychar) and e.keychar <> convert.tochar(keys.back) thene.handle=true
msgbox("لطفا عدد وارد کنید")
End IF
تشخیص ارتباط کاربر به اینترنت در VB.net
if my.computer.network.isavalable then
Msgbox ("connect")
Else
Msgbox ("NO connect")
End if
بدست آوردن نام کامپیوتر در VB.net
TextBox1.text=system.environment.machinename.tostr ing
برای اتصال Link Lable به اینترنت یا فایل داخل کامپیوتر
اتصال به سایت(اینترنت)
System.Diagnostics.Process.start("http:www.google.com")
اتصال به فایل (کامپیوتر)
System.Diagnostics.Process.start("Winword.exe","c: \mytext.doc")
توابع LEFT و Right در VB.net
دو کاراکتر سمت چپ از متن داخل تکست باکس 1 را نگه می دارد
Microsoft.VisualBasic.Left(TextBox1.Text,2)
دو کاراکتر سمت راست از متن داخل تکست باکس 1 را نگه می دارد
Microsoft.VisualBasic.Right(TextBox1.Text,2)
تشخیص روشن یا خاموش بودن Caps Lock
If My.Computer.Keyboard.CapsLock = True Then
MsgBox("Caps Lock is true")
Else
MsgBox("Caps Lock is False")
End If
تغییر زبان سیستم در VB.net
Dim Persian_Lang As new Globalization.Cultureinfo ("fa-IR")
inputlanguage.currentinputlanguage=inputlanguage.f romculture(Persian_Lang)
برای ایجاد فرم های مادر و فرزند در VB.net
ابتدا فرم اصلی را انتخاب کرده (Mainfrm)و در قسمت تنظیمات گزینه IsMDIContainer را True می کنیمفرمی که قرار است داخل فرم اصلی باز شود (Frm2)را از طریق فرم اصلی با کد زیر فراخوانی می کنیم:
Frm2.mdiparent=Me
Frm2.Show()
اجرای نرم افزار کاربردی از داخل VB.net
برای باز کردن ماشین حساب
System.Diagnostics.Process.Start("Calc")
برای باز کردن اکسل
System.Diagnostics.Process.Start("Excel.exe")
حرکت بین اشیاء با کمک ENTER
در یک فرم دو تکست باکس داریم اگر بخواهیم زمانی که فوکوس روی تکست باکس اولی است با زدن اینتر به تکست باکس دوم برویم باید در رویداد Key Press تکست اول کد زیر را بنویسیم:
If ASC(e.Keychar)=13 Then Textbox2.Focus
سلام
ممنون از دقت نظرتون من مطلب فوق رو با تمامي جزئيات مي نويسم
كد شماره سريال هارد و CPU اصلاح شد.
كد اشتباه نبود ولي اولا بايد System.management رو به قسمت رفرنس ها اضافه كنيد
ثانيا من اين كد رو در پروژه اي استفاده كرده بودم كه بايد اعداد موجود در سريال هارد و CPU رو بر مي گردوندم
در كد جديد نوشته شده سريال هارد و cpu بر مي گرده
روش ارائه شده و تصحيح شده رو مرحله به مرحله اجرا كنيد. همين الان تست كردم جواب داد (پست 2)
اگر لازم مي دونيد برنامه رو اينجا قرار بدم تا مشاهده كنيد
اگر سئوالي بود در خدمتيم
ذخيره داده هاي داخل ديتا گريد در فايل txt
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim numCols As Integer = DataGridView1.ColumnCount
Dim numRows As Integer = DataGridView1.RowCount - 1
Dim strDestinationFile As String = "c:\\output.txt"
Dim tw As TextWriter = New StreamWriter(strDestinationFile)
'writing the header
For count As Integer = 0 To numCols - 1
tw.Write(DataGridView1.Columns(count).HeaderText)
If (count <> numCols - 1) Then
tw.Write(", ")
End If
Next
tw.WriteLine()
For count As Integer = 0 To numRows - 1
For count2 As Integer = 0 To numCols - 1
tw.Write(DataGridView1.Rows(count).Cells(count2).V alue)
If (count2 <> numCols) Then
tw.Write(", ")
End If
Next
tw.WriteLine()
Next
tw.Close()
End Sub
میشه بفرمایین چرا اینو تو قسمت فرم لود نوشتین؟
GetHDDSerialNumber()
سلام دوست عزیز
تکست با کس های مربوط به HDD_Modelو HDD_Serialدرقسمت GetHDDSerialNumber مقدار دهی میشند
کافیه GetHDD رو در رویداد لود فرم بنویسیم اونوقت با لود فرم تکست باکس های مورد نظر پر می شند
اینم نمونه برنامه
ضمیمه 100598
-----
بدست آوردن مشخصات كامپيوتر
نام كامپيوتر
textBox1.text=system.environment.machinename.tostr ing()
تشخيص اتصال به اينترنت
if My.Computer.Network.IsAvailable then
msgbox("connect")
else
msgbox("No connect")
endif
نمايش داده هاي يك جدول در ديتا گريد
ابتدا مانند كد پست شماره 4 همين تاپيك يك كانكشن به sql متصل مي كنيم
سپس با كدهاي زير داده هاي جدول فرضي T1 را در Datagrid1 نمايش مي دهيم
اين كار را در رويداد Load فرم انجام مي دهيم
dim cmd as new sqlcommand
dim da as new sqldataadapter
dim dt as new datatable
cmd.connection=con
cmd.commandtext="select * from T1"
da.selectcommand=cmd
da.fill(dt)
Datagrid1.datasource=dt
con.close()
اين كد براي استفاده در اولين بار مناسب است
ولي مشكل زماني است كه به جدول مربوط به ديتا ست اين گريد يك ركورد اضافه ميشه. اگه اين كد رو دوباره اجرا كنيم سطري كه قبل از ريفرش روي آن فكوس شده ام ، انتخابش رو به اولين ركورد موجود در گريد انتقال مي دهد.
آيا راهي بغير از ذخيره سطر و ستون اخرين انتخاب در متغير، و ست كردن آن بعد از ريفرش وجود دارد؟
چيزي پيدا نكردم!!!!:ناراحت:
سلام دوست عزيز
يعني شما مي خواي پس از ايجاد ركورد جديد ديتا گريد با كد بالا اطلاعات آن ركورد را انتخاب كنه ؟؟؟؟؟؟؟؟؟؟؟؟ و به اول ديتا گريد نياد ؟؟؟؟؟؟؟؟؟؟؟؟
يك سوال
اگه ركوردي توي ديتاگريد باشه مثلا رديف صدم بر اساس اي دي چطور اونو پيدا كنيمو فوكوس روي اون انجام بديم
سلام
اگر بخواهيم روي ركورد صدم فوكوس كنيم از كد زير استفاده مي كنيم(البته اگه منظورتون همينه؟)
dgv1.Rows(100).Cells(1).Selected = True
لطفا آموزشی در رابطه با دیتاگرید رو بزارید ممنون
سلام
تابع بدست آوردن اختلاف بین دو تاریخ شمسی
Public Function date_diff_persian(ByVal d1 As String, ByVal d2 As String) As Integer
Dim y, m, d, r As String
Dim g As New Globalization.PersianCalendar
Dim in_date1, in_date2 As Date
If d1.Length <> 10 Or d2.Length <> 10 Then
MsgBox("فرمت تاریخ صحیح نیست", MsgBoxStyle.Information, "")
Return -1000000
End If
Try
y = Microsoft.VisualBasic.Left(d1, 4) 'جدا سازی 4 رقم عدد سال
m = Mid(d1, 6, 2) 'جدا سازی دو رقم عدد ماه
d = Microsoft.VisualBasic.Right(d1, 2) 'جدا سازی 2 رقم عدد روز
'-------------------------------------------------
in_date1 = g.ToDateTime(Val(y), Val(m), Val(d), 0, 0, 0, 0)
'**********************
y = Microsoft.VisualBasic.Left(d2, 4) 'جدا سازی 4 رقم عدد سال
m = Mid(d2, 6, 2) 'جدا سازی دو رقم عدد ماه
d = Microsoft.VisualBasic.Right(d2, 2) 'جدا سازی 2 رقم عدد روز
'-------------------------------------------------
in_date2 = g.ToDateTime(Val(y), Val(m), Val(d), 0, 0, 0, 0)
'***********************
r = DateDiff(DateInterval.Day, in_date1, in_date2)
Catch ex As Exception
MsgBox("بروز خطا هنگام محاسبه تاریخ _ " + ex.ToString)
r = -1000000
End Try
Return r
End Function
سلام
لطفا میتوانید بفرمایید این تاریخ را 1394/3/3 چطوری می توانیم بصورت ذیل بنویسیم
1394/03/03
سلام من یه کد دارم ک برای هر کاراکتر از کلمه یک خط تیره میزاره مثه "حمید حسنی" میشه "---------"!!
ولی مشکل اینجاست ک میخام بعد از اسپیس در کلمه دیگه دش نذاره مثه این"---- ----"
اما نمیتونم میتونین منو راهنمایی کنین؟
کدتان را اینجا میگذاشتید تا دوستان بهتر بتونند راهنمائی کنند
کد موردنظرات میتواند به این شکل باشد
ابتدا کلمات داخل تکست باکس را جدا کردم بعد به اندازه طول هر کلمه دش اضافه کردم به تکست باکس دوم و هر کلمه که تمام شد یک فضای خالی به تکست باکس اضافه کردم
Dim myWords() As String = TextBox1.Text.Split(" ")
For i = 0 To myWords.Length - 1
For j = 0 To myWords(i).Length - 1
TextBox2.Text = TextBox2.Text + "-"
Next
TextBox2.Text = TextBox2.Text + " "
Next