چگونه بصورت خودکار زبان کیبورد را در ویژوال بیسیک تغییر دهیم ؟ اگر طراحی برنامه ای را در دست دارید و تمایل دارید مقادیری که کاربران در برنامه وارد میکنند به دلخواه شما یا به عبارتی دیگر راحتی کار را برای کاربران بخواهید یکی از این راه ها استفاده از تغییرات اتوماتیک مقادیر در Text Box ها هست یعنی اگر میخواهید کاربر نام فارسی را در Text Box تایپ کند باید اتوماتیک زبان کیبورد تغییر کند برای این منظور شما از ابزار های واژوال استادیو نمیتوانید استفاده کنید و فقط باید از کد نویسی بهره ببرید در ادامه بنده دو Text Box روی فرم قرار میدهم که با کد های زیر میتوانم بگویم text Box اول فارسی تایپ شود و Text Box دوم زبان دیگری مثل انگلیسی. ضمناً شما میتوانید با تکنیک های RequiredFieldValidator ورود داده های کاربران رو کنترل کنید.در قدم اول قطعه کد زیر را در بالای کلاس اصلی یعنی General قرار دهید:
Imports System.Globalization
سپس نوع زبان های مورد نظر را در پایین نام کلاس بنویسید در این مثال ما دو زبان انتخاب کرده ایم
Public Class Form1 Private PersianInput As InputLanguage Private EnglishInput As InputLanguage End Class
در Form Load برنامه تکه کد زیر را قرار میدهیم به این صورت که در ابتدا یک مقدار اولیه به PersianInput و EnglishInput میدهیم.
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load PersianInput = InputLanguage.CurrentInputLanguage EnglishInput = InputLanguage.CurrentInputLanguage Dim count As Integer count = InputLanguage.InstalledInputLanguages.Count For i As Integer = 1 To (count - 1) If InputLanguage.InstalledInputLanguages(i).LayoutName.Contains("Persian") = True Then PersianInput = InputLanguage.InstalledInputLanguages(i) Else If InputLanguage.InstalledInputLanguages(i).LayoutName.Contains("English") = True Then EnglishInput = InputLanguage.InstalledInputLanguages(i) End If End If Next i End Sub
قدم بعدی کمی سلیقه ای هست و شما میتوانید نسبت به سلیقه تون بگید که پس از کدام رویداد این اتفاق بیوفتد در این مثال بنده پس از رویداد Mouse Enter این اقدام رو انجام دادم شما میتوانید هر رویدادی رو برای برنامه تون انتخاب کنید یا تمام رویداد ها مثل mouse Down ,Text change و ... که در این صورت کاربر به هر روشی به Text Box بعدی رفت اتوماتیک این اتفاق برای کیبوردش بیوفتد و نخواهد هر بار زبان کیبورد را تغییر دهد
کد های زیر به ترتیب برای Text Box های فارسی و انگلیسی هستند که در ادامه خواهید دید
Private Sub FaTextBox_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FaTextBox.MouseEnter InputLanguage.CurrentInputLanguage = PersianInput End Sub Private Sub EnTextBox_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EnTextBox.MouseEnter InputLanguage.CurrentInputLanguage = EnglishInput End Sub
تصویر زیر نمونه ای کامل از این کد هست :
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load PersianInput = InputLanguage.CurrentInputLanguage EnglishInput = InputLanguage.CurrentInputLanguage Dim count As Integer count = InputLanguage.InstalledInputLanguages.Count For i As Integer = 1 To (count - 1) If InputLanguage.InstalledInputLanguages(i).LayoutName.Contains("Persian") = True Then PersianInput = InputLanguage.InstalledInputLanguages(i) Else If InputLanguage.InstalledInputLanguages(i).LayoutName.Contains("English") = True Then EnglishInput = InputLanguage.InstalledInputLanguages(i) End If End If Next i End Sub Private Sub FaTextBox_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FaTextBox.MouseEnter InputLanguage.CurrentInputLanguage = PersianInput End Sub Private Sub EnTextBox_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EnTextBox.MouseEnter InputLanguage.CurrentInputLanguage = EnglishInput End Sub End Class
کارشناس ارشد شبکه مایکروسافت
فرهاد خانلری ، مدرس شبکه و برنامه نویسی مبتنی بر زیرساخت های مایکروسافت ، سابقه فعالیت در موسسات و مراکز دولتی در قالب پروژه ، مشاوره و تدریس ، برنامه نویسی ++C ، سی شارپ و دات نت ، متخصص و مدرس شبکه های مبتنی بر سیستم عاملهای مایکروسافت و سرویس های مربوطه ، سخت افزار و ...
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود