سلام دوستان
من الان یه مشکلی با سیو اطلاعات فرم دارم
نمیتونم زبان برنامه رو سیو کنم ؟
یه سمپل گذاشتم ببنید چشه
ممنون
یا حق
کد:http://s45.eu.rapidbaz.com/get/_I.lo/save.rar
Printable View
سلام دوستان
من الان یه مشکلی با سیو اطلاعات فرم دارم
نمیتونم زبان برنامه رو سیو کنم ؟
یه سمپل گذاشتم ببنید چشه
ممنون
یا حق
کد:http://s45.eu.rapidbaz.com/get/_I.lo/save.rar
سلام
پیشنهاد میکنم از دستورات قدیمی VB6 استفاده نکنید و سعی کنید کلاً فراموششان کنید.
فرمان منویی زیر را پیگیری کنید:
Project->Properties->Settings
حال یک تنظیم جدید مثلاً با نام Language و نوع String اضافه کنید و پنجره را ببندید.
حالا میتوانید با دستور My.Settings.Language مقدار این تنظیم را بخوانید و یا بنویسید.
... = My.Settings.Language
My.Settings.Language = ...
با دستور My.Settings.Save هم متوانید Save اجباری انجام دهید و با My.Settings.Reload لود اجباری که البته معمولاً نیاز نمیشود.
موفق باشید.
سلام اچی جان
ممنون بابت پاسخ
اما از این دستور چه طور میشه برای زبان استفاده کرد
همون طور که میدونید فرم پرپرتی به نام زبان نداره ولی اگه داشت می شد اینو براش نوشت مثلا :
My.Settings.BColor = Me.BackColor
Me.BackColor = My.Settings.BColor
ولی فرم که چینین چیزی نداره
ممنون میشم راهنمایی کنید و یا اگه وقت دارید اون سمپل منو کامل کنید
ممنون
سلام
همیشه معیار مناسب و نظیری برای ذخیره با ساختارهای استاندارد میتوان پیدا کرد.نقل قول:
اما از این دستور چه طور میشه برای زبان استفاده کرد
خود شما در کد قبلیتان چه کرده بودید؟ آیا کل شی System.Globalization.CultureInfo را ذخیره کرده بودید؟
خود ما دو string خاص با مقدارد "Persian" و "English" را ذخیره کرده بودید.
اما راه کاملتر و بهتر هم وجود دارد چرا "fa-IR" و یا "en-US" را ذخیره نمیکنید؟ در زمان نوشتن و خواندن هم نیاز به iF و یا Select Case ندارید، ضمن آنکه اگر تعداد زبان ها هم بیشتر شود کنتر ساده تری خواهید داشت.
و بهتر از مقدار Name مقدار عددی lcid است
مثلاً lcid زبان فارسی 1065 است و lcid زبان انگلیسی 1033 است.
کد:'Save ...
Dim culture As New System.Globalization.CultureInfo("fa-IR")
'Or
Dim culture As New System.Globalization.CultureInfo(1033)
System.Threading.Thread.CurrentThread.CurrentCulture = culture
System.Threading.Thread.CurrentThread.CurrentUICulture = culture
My.Settings.Int32Language = culture.LCID
My.Settings.Save()
'Load ...
Dim lcid As Integer = My.Settings.Int32Language
If (lcid > 0 )
Dim culture As New System.Globalization.CultureInfo(lcid)
System.Threading.Thread.CurrentThread.CurrentCulture = culture
System.Threading.Thread.CurrentThread.CurrentUICulture = culture
End If
قضاوت با خودتون اچی جان
کد:http://www.up.ma/images/jwdlsg632s80i2n54hd.png
سلام
اتفاقاً نام لغت قبلی Language را مخصوصاً Int32Language گذاشتم (وگرنه نام که مهم نیست) تا متوجه شوید آیتمی را که در بخش Settings میسازید دیگر نباید از نوع String باشد بلکه در کامپو مربوطه باید نوعش را Int32 یا Integer قرار دهید.نقل قول:
قضاوت با خودتون اچی جان
چون فکر کردم متوجه میشود دیگر تاکیدی نکردم.
موفق باشید.
شرمنده اصلا هواسم نبود
خیلی ممنون
اچی جان اینو ببین
برای هی فرمی سیو میشه اما فرم اصلی تغیر نمیکنه
ممنون اگه حلش کنی
یا حق
کد:http://www.up.ma/images/hqspmd0e6sw8xnebl46g.rar
دوستان یه کمکی بفرمائید
والا ما گیر اینیم:40::11:
سلام
دلیلش مشخص است شما بارگذاری تنظیم را در form_load انجام داده اید، جایی که برای خود فرم اصلی بارگذاری اتمام شده و کار از کار گذشته!نقل قول:
اچی جان اینو ببین
برای هی فرمی سیو میشه اما فرم اصلی تغیر نمیکنه
ممنون اگه حلش کنی
شما باید روال loaddd را قبل از بارگذاری فرم اولیه اجرا کنید.
مثلاً در sub main یا sub new
مثلاً form_load را حذف کنید و کد زیر را اضافه کنید:
(البته sub main منطقی تر است ولی کد زیر هم کار میکند.)
=====کد:Public Sub New()
Me.loaddd()
Me.InitializeComponent()
End Sub
ضمناً دستوراتی شبیه about.show و یا other.show صحیح نیستند و مغایرت اساسی با موازین oop دارند و صرفاً برای هماهنگی و آپگراید راحت تر کدها از vb6 قرار داده شده اند.
از دستورات زیر استفاده کنید:
=====کد:Dim x As New other
x.show()
موفق باشید.