PDA

View Full Version : آموزش: آموزش Settings (حتما بخونید)



Hybrid
پنج شنبه 18 اسفند 1390, 14:50 عصر
با سلام خدمت دوستان عزیز ، امیدوارم حالتون خوب باشه ، با توجه به اینکه چند باری در رابطه با این مبحث دوستان تاپیک زدن گفتم آموزش کوچک و مفیدی رو در این تاپیک در رابطه با این مطلب ارائه کنم امیدوارم مفید واقع بشه.خوده دوستان هم اگه مطلب اضافه ای در این رابطه دارن میتونن واسه بقیه بزارن تا یک تاپیک جامع در رابطه با این مطلب بشه.

آموزش Application Settings :

نوعی متغیر در چارچوب .net وجود داره که امکان ذخیره سازی داده ها رو حتی پس از اینکه برنامه رو میبندید رو در خودش داره ، یعنی راحت میتونین مقداری رو در این متغیر ها ذخیره کنین و در مراجعات بعدی به برنامتون ازشون استفاده کنین ، کاربردشون خوب معلومه مثلا میتونین برای نگهداری تنظیمات برنامه اگر تعدادشون کم باشه خیلی راحت استفاده کنین .

برای ساخت یک نمونه از این فیلد ها به ترتیب مراحل زیر رو برید :

1 ) در پنجره Solution Explorer رو My Project دابل کلیک کنین.

2 ) در پنجره باز شده به تب Settings برید.

http://img4up.com/up2/29289856933435505591.jpg

حالا بعد از اینکه مراحل بالا رو رفتین باید برای ساخت یک فیلد به ترتیب گزینه های زیر رو پر کنین :

Name : هر فیلد باید دارای یک نام باشد از این گزینه برای اینکار استفاده کنین.

Type : هر فیلد باید دارای یک نوع هم باشد یعنی باید به ویژوال استودیو بگین که قصد دارین داخل این فیلد چه نوع داده ای رو قرار بدین داده هایی از جمله String ، Integer ، و.. رو میتونین از طریق این گزینه انتخاب نمایید.

Scope : این گزینه نوع دسترسی به فیلد را مشخص میکند و دارای 2 نوع Application و User هست که به ترتیب در زیر توضیح دادن شدن.

** Application : امکان تغییر داده های فیلد در زمان اجرا وجود نداره و معمولا برای نگهداری رشته های اتصال ( Connection string ) به کار میرود.

** User : امکان تغییر مقدار فیلد در زمان اجرا وجود دارد.

Value : مقداری به عنوان پیشفرض برای نوع فیلد های User و مقدار فیلد با نوع دسترسی Application را تعیین میکند.


دسترسی به Application Setting ها در کد نویسی :

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

نام فیلد.My.Settings

جهت مقدار دهی در زمان اجرا از شکل زیر استفاده کنین :

مقدار=نام فیلد.My.Settings


بعد از اینکه مقدار تمام فیلد ها رو دادین باید ذخیرشون کنین :


My.Settings.Save()


نمونه مثال ساده :

tam2145
پنج شنبه 18 اسفند 1390, 15:02 عصر
نکته :
بعد از اینکه مقدار متغییر را تغییر دادید ، باید ان را ذخیره کنید !! برای این کار از کد زیر استفاده کنید .

My.Settings.Save()

Hybrid
پنج شنبه 18 اسفند 1390, 15:05 عصر
نکته :
بعد از اینکه مقدار متغییر را تغییر دادید ، باید ان را ذخیره کنید !! برای این کار از کد زیر استفاده کنید .

My.Settings.Save()

اصل مطلب رو که یادم رفت بگم!! ، با تشکر از دقتتون.

Saman_12
جمعه 19 اسفند 1390, 14:12 عصر
با جابجایی محل برنامه تنظیمات پاک میشن میتونید امتحان کنید.(یه کپی ازش بگیرید و جای دیگه ذخیره کنید پاک شدن.)

Heidari66
شنبه 20 اسفند 1390, 00:02 صبح
راست میگه با کپی یا جابچایی برنامه تنظیمات از بین میره...

بهرحال تنظیمات اینجا ذخیره میشه : C:\Users\Heidari\AppData\Local\Microsoft

googoli
جمعه 25 فروردین 1391, 19:23 عصر
با سلام
من اولین بار هست که می خوام از متغیرApplication Setting استفاده کنم و تکه کد زیر رو نوشتم ولی با خطا مواجه میشم میشه من رو راهنمایی کنید


private void btnPrint_Click(object sender, EventArgs e)
{
hesabdari.Properties.Settings amir = new hesabdari.Properties.Settings();
amir.Svar = txtOnvan.Text.ToString().Trim();
Properties.Settings.Default["Svar"] = amir;
Properties.Settings.Default.Save();
}

private void buttonItem1_Click(object sender, EventArgs e)
{
hesabdari.Properties.Settings amir = new hesabdari.Properties.Settings();
amir = (hesabdari.Properties.Settings)hesabdari.Propertie s.Settings.Default["Svar"];
MessageBox.Show(amir.Svar.ToString());
}


این خط ها رو برای من ارور می گیره
Properties.Settings.Default["Svar"] = amir;
amir = (hesabdari.Properties.Settings)hesabdari.Propertie s.Settings.Default["Svar"];

Hybrid
جمعه 25 فروردین 1391, 19:44 عصر
سلام دوست عزیز امیدوارم حالت خوب باشه ،

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

از این کدی که نوشتین چه انتظاری دارین ؟؟؟ میخواین به وسیله ی این کد چه کاری رو انجام بدین؟

.

googoli
جمعه 25 فروردین 1391, 22:40 عصر
من میخوام یه متغیر داشته باشم که یه سری تنظیمات رو درون اون داشته باشم
با این نوع متغیر اشنایی چندانی ندارم فقط مطالب همین جا بود که من خاصیت های این متغیر رو فهمیدم
با برداشت هایی از این جا ویک وبلاگ که این تکه کد رو درون اونجا پیدا کردم خواستم این کار رو انجام بدم ولی با ارور مواجه شدم
حالا اگه میشه شما من رو راهنمایی کنید تا درک درستی از این مطلب داشته باشم

googoli
جمعه 25 فروردین 1391, 23:03 عصر
اقا ممنون
من از یه وب سایت رفرنس جوابم رو پیدا کردم
مشکل من این بود که به وبلاگ های ایرانی مراجعه کردم و لقمه رو دور سر خودم گردوندم

xxnagin
جمعه 25 فروردین 1391, 23:08 عصر
سلام
مثلا شما با این کد میتونید Location فرم1 رو save کنید و فرم را از هر جایی که بسته شده جرا کنید
یه فیلد به نام form1location و حالت type رو به System.Drawing.Point تغییر بدید
می بینید که فرم را وقتی جا به جا میکنید و فرم را ببندید دوباره اجرا کنید میبنید که فرم از کجا load می شه

Public class Form1
Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
My.Settings.Save()
End Sub
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
My.Settings.form1location = Me.Location
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Location = My.Settings.form1location
End Sub
End Class

Veteran
جمعه 25 فروردین 1391, 23:45 عصر
تابع savesetting و getsetting هم کار مشابه رو میکنن و میشه مقدار رو سیو کرد توی رجیستری.

کاظم فلاحی خواه
جمعه 25 فروردین 1391, 23:48 عصر
فایل زیر شاید بدردت بخورد .
85712

کاظم فلاحی خواه
شنبه 26 فروردین 1391, 00:28 صبح
برای تنظیم مجدد کردن تنظیمات (داده ی ذخیره شده بجای داده ی پر شده در متغیر ذخیره سازی) از کد زیر استفاده می کنیم :

My.Settings.Reload()


برای دسترسی راحت تر به متغیر های ذخیره سازی :

مثلا ذخیره سازی Location فرم یا هر خصوصیت کنترل دیگری :
با توجه به دو متغیر یکی برای ذخیره کردن متن textbox و دیگری برای ذخیره سازی location فرم

85715

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

به پنجره ی خصوصیات فرم می رویم و
85716
85717
تصویر (شماره ی 4)*نکته ی کنکوری
85718
85719

انتخاب متغیر ذخیره سازی برای خصوصیت فرم آسون بود

تنها کاری که مونده ذخیره سازی است -->
My.Settings.Save()



اما در آخر برای دستیابی به دیگر خصوصیات در خصوصیت Aplication Settingهر شی روی PropertiBinding
کلیک کنید و خصوصیات دیگر رو هم می تونید ذخیره کنید در ضمن اگر متغیر ذخیره سازی در setting ایجاد نکرده اید همان جا (PropertiBinding)با کلیک روی (...New) (تصویر 3 نکته ی ستاره دار )متغیر ذخیره سازی را ایجاد و برای خصوصیت شی مورد نظر انتخاب کنید .

barnamenevisforme
شنبه 26 فروردین 1391, 00:40 صبح
سلام
اگه بخوایم connection string رو از این روش در زمان اجرا تغییر بدیم به نظر شما راهی وجود داره؟
توضیح این که connection string فقط application scope رو داره.ممنون.

کاظم فلاحی خواه
شنبه 26 فروردین 1391, 01:03 صبح
این متغیر ها رو برای شی های که خصوصیت اونها بهشون نیاز دارند ایجادکردن می تونی متغیر ذخیره شده application scope رو از setting حذف کنی و متغیر user ایجاد کنی و Value متغیر حذف قبلی رو بجای اون بزاری اما هنگامی که برنامه رو اجرا می کنی خطا می ده مثل اینکه که شما بخواهید خصوصیت شی گرای یک کنترل رو زمانی که برنامه درحال debug یابی هستیم رو تغییر بدیم اما بجای اون فکر کنم باید تعریف OleDbConnection جدید بکنی تا درست بشه .

Yanehsar
پنج شنبه 31 فروردین 1391, 20:24 عصر
با سلام
برای در اختیار قرار دادن چند اختیار برای کاربرمون(رنگ،فونت و...)باید چندین متغییر تعریف کرد آیا امکان تعریف ارایه هم وجود دارد؟؟؟یا نه؟

Hybrid
یک شنبه 03 اردیبهشت 1391, 22:29 عصر
با سلام
برای در اختیار قرار دادن چند اختیار برای کاربرمون(رنگ،فونت و...)باید چندین متغییر تعریف کرد آیا امکان تعریف ارایه هم وجود دارد؟؟؟یا نه؟

سلام ، میتونین از StringCollection استفاده کنید یا از نوع

system.collections.arraylist

StringCollection راحتتره.

NasimBamdad
شنبه 09 اردیبهشت 1391, 22:04 عصر
با سلام خدمت دوستان عزیز ، امیدوارم حالتون خوب باشه ، با توجه به اینکه چند باری در رابطه با این مبحث دوستان تاپیک زدن گفتم آموزش کوچک و مفیدی رو در این تاپیک در رابطه با این مطلب ارائه کنم امیدوارم مفید واقع بشه.خوده دوستان هم اگه مطلب اضافه ای در این رابطه دارن میتونن واسه بقیه بزارن تا یک تاپیک جامع در رابطه با این مطلب بشه.

آموزش Application Settings :

نوعی متغیر در چارچوب .net وجود داره که امکان ذخیره سازی داده ها رو حتی پس از اینکه برنامه رو میبندید رو در خودش داره ، یعنی راحت میتونین مقداری رو در این متغیر ها ذخیره کنین و در مراجعات بعدی به برنامتون ازشون استفاده کنین ، کاربردشون خوب معلومه مثلا میتونین برای نگهداری تنظیمات برنامه اگر تعدادشون کم باشه خیلی راحت استفاده کنین .

برای ساخت یک نمونه از این فیلد ها به ترتیب مراحل زیر رو برید :

1 ) در پنجره Solution Explorer رو My Project دابل کلیک کنین.

2 ) در پنجره باز شده به تب Settings برید.

http://img4up.com/up2/29289856933435505591.jpg

حالا بعد از اینکه مراحل بالا رو رفتین باید برای ساخت یک فیلد به ترتیب گزینه های زیر رو پر کنین :

Name : هر فیلد باید دارای یک نام باشد از این گزینه برای اینکار استفاده کنین.

Type : هر فیلد باید دارای یک نوع هم باشد یعنی باید به ویژوال استودیو بگین که قصد دارین داخل این فیلد چه نوع داده ای رو قرار بدین داده هایی از جمله String ، Integer ، و.. رو میتونین از طریق این گزینه انتخاب نمایید.

Scope : این گزینه نوع دسترسی به فیلد را مشخص میکند و دارای 2 نوع Application و User هست که به ترتیب در زیر توضیح دادن شدن.

** Application : امکان تغییر داده های فیلد در زمان اجرا وجود نداره و معمولا برای نگهداری رشته های اتصال ( Connection string ) به کار میرود.

** User : امکان تغییر مقدار فیلد در زمان اجرا وجود دارد.

Value : مقداری به عنوان پیشفرض برای نوع فیلد های User و مقدار فیلد با نوع دسترسی Application را تعیین میکند.


دسترسی به Application Setting ها در کد نویسی :

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

نام فیلد.My.Settings

جهت مقدار دهی در زمان اجرا از شکل زیر استفاده کنین :

مقدار=نام فیلد.My.Settings


بعد از اینکه مقدار تمام فیلد ها رو دادین باید ذخیرشون کنین :


My.Settings.Save()


نمونه مثال ساده :


بی زحمت SAMPLE سی شارپ رو هم بزارید

xxnagin
شنبه 09 اردیبهشت 1391, 23:15 عصر
اینم نمونه #c که برای ذخیره مکان form هستش
نمونه vb.net (http://barnamenevis.org/showthread.php?331456-آموزش-Settings-(حتما-بخونید)&p=1484480&viewfull=1#post1484480)همین کد
تو #C از Properties.Settings.Default تو vb.net از My.Settings استفاده میشه




private void Form1_Load(object sender, EventArgs e)
{
this.Location = Properties.Settings.Default.location;
}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Properties.Settings.Default.location = this.Location;
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
Properties.Settings.Default.Save();
}
}

ROSTAM2
دوشنبه 11 اردیبهشت 1391, 23:30 عصر
:متفکر:
اقا ممنون
من از یه وب سایت رفرنس جوابم رو پیدا کردم
مشکل من این بود که به وبلاگ های ایرانی مراجعه کردم و لقمه رو دور سر خودم گردوندم :متفکر:

تا حالا شده بخواید به SETTINGS آیتم اضافه کنید برنامه VS هنگام اجرای پروژه گیر بده که تنظیمات برنامه فضای کافی برای ثبت اطلاعات نداره؟

NasimBamdad
سه شنبه 12 اردیبهشت 1391, 19:48 عصر
من نمی تونم نوع SCOPE رو تغییر بدم ، چی کار باید کرد ؟

لطفا عکس زیر رو ببینید

ایــــــن عکــــــس (http://151.0.img98.net/out.php/i320952_cnn.gif)

Hybrid
سه شنبه 12 اردیبهشت 1391, 20:16 عصر
سلام دوست عزیز ،

واسه Type کانکشن استرینگ شما تنها مجاز به استفاده از محدوده Application هستین ، همانطور که میدونید در این نوع Scope شما نمیتونید مقادیر رو در زمان اجرا تغییر بدین.

آیا شما لازم دارین در زمان اجرا کانکشن استرینگ و تغییر بدین؟؟! مطمئنا نه.

barnamenevisforme
سه شنبه 12 اردیبهشت 1391, 21:30 عصر
سلام
اگه بخوایم connectionstring رو برای استفاده های بعدی از برنامه و یا در زمان شروع اولیه و یادر صورت تغییر ادرس سرور تغییر بدیم پس باید چکار کنیم؟
یه راهش اینه که connectionstrig رو از قسمت setting به نوع string تغییر بدیم و scope رو به user.
ولی آیا راه بهتری هست؟(منظورم با استفاده از setting)

NasimBamdad
چهارشنبه 13 اردیبهشت 1391, 16:42 عصر
واسه Type کانکشن استرینگ شما تنها مجاز به استفاده از محدوده Application هستین ، همانطور که میدونید در این نوع Scope شما نمیتونید مقادیر رو در زمان اجرا تغییر بدین.


پس روی چی بگذاریم ؟ STRING بگذاریم ؟ ؟ ؟


آیا شما لازم دارین در زمان اجرا کانکشن استرینگ و تغییر بدین


شدید نیاز داریم ،

Hybrid
چهارشنبه 13 اردیبهشت 1391, 18:13 عصر
اگه نیاز دارین کانکشن استرینگ رو در زمان اجرا تغییر بدین نوع Scope اپلیکیشن به درد نمیخوره از نوع String بزار.

نوع دیگه ای سراغ ندارم.

sabagood
چهارشنبه 20 اردیبهشت 1391, 14:15 عصر
سلام ممنون از مطلب خوباتون
من می خوام در پروژه ی سی شارپم از این نمونه ای که گذاشتید استفاده کنم ولی متاسفانه نمی تونم!
My به چه معنی ای هست در vb?

xxnagin
چهارشنبه 20 اردیبهشت 1391, 14:33 عصر
سلام

من می خوام در پروژه ی سی شارپم از این نمونه ای که گذاشتید استفاده کنم ولی متاسفانه نمی تونم!
My به چه معنی ای هست در vb?
شما پست 19 (http://barnamenevis.org/showthread.php?331456-آموزش-Settings-(حتما-بخونید)&p=1495390&viewfull=1#post1495390)این تایپیک رو ببین نمونه #c رو گذاشتم

A_1397
چهارشنبه 20 اردیبهشت 1391, 16:58 عصر
من از یه کامپونننتی استفاده می کنم که خاصیت RightToLeft نداره و شدیدا اجتیاج دارم که راست چینش کنم. آیا میشه از Seetting واسه اینکار کمک گرفت؟ برای خاصیت RightToLeft، نوع Typeرو چی باید بزارم؟

ROSTAM2
چهارشنبه 20 اردیبهشت 1391, 18:47 عصر
اُ هُچ ، تنظیمات که به COMPONENT خصوصیت اضاف نمی کنه!
خاصیت RighttoleftLayout هم نداره ؟

A_1397
چهارشنبه 20 اردیبهشت 1391, 19:38 عصر
اُ هُچ ، تنظیمات که به COMPONENT خصوصیت اضاف نمی کنه!
خاصیت RighttoleftLayout هم نداره ؟
بله خصوصیت RighttoLeft نداره. ولی نگاه کردم به Aplication Settingش دیدم توی PropertiBinding این خصوصیت هستش. بعد یه new زدم و یکی ساختم و برابر با true گذاشتم و ok کردم ولی اجرا که گرفتم باز هم راست چین نشده بود:ناراحت: حالا شاید مسیر رو دارم اشتباه میرم!

ROSTAM2
چهارشنبه 20 اردیبهشت 1391, 20:35 عصر
خود اون COMPONENT باید اون خصوصیت رو داشته باشه تا Settings پروژه بتونه مقدار اونو ثبت کنه و یا دوباره بازخونی وقتی خود شئ اون خاصیت رو نداره که نمی شه خو

A_1397
سه شنبه 02 خرداد 1391, 12:14 عصر
نوعی متغیر در چارچوب .net وجود داره که امکان ذخیره سازی داده ها رو حتی پس از اینکه برنامه رو میبندید رو در خودش داره ، یعنی راحت میتونین مقداری رو در این متغیر ها ذخیره کنین و در مراجعات بعدی به برنامتون ازشون استفاده کنین ، کاربردشون خوب معلومه مثلا میتونین برای نگهداری تنظیمات برنامه اگر تعدادشون کم باشه خیلی راحت استفاده کنین .

برای ساخت یک نمونه از این فیلد ها به ترتیب مراحل زیر رو برید :

1 ) در پنجره Solution Explorer رو My Project دابل کلیک کنین.

2 ) در پنجره باز شده به تب Settings برید.

http://img4up.com/up2/29289856933435505591.jpg

حالا بعد از اینکه مراحل بالا رو رفتین باید برای ساخت یک فیلد به ترتیب گزینه های زیر رو پر کنین :

Name : هر فیلد باید دارای یک نام باشد از این گزینه برای اینکار استفاده کنین.

Type : هر فیلد باید دارای یک نوع هم باشد یعنی باید به ویژوال استودیو بگین که قصد دارین داخل این فیلد چه نوع داده ای رو قرار بدین داده هایی از جمله String ، Integer ، و.. رو میتونین از طریق این گزینه انتخاب نمایید.

Scope : این گزینه نوع دسترسی به فیلد را مشخص میکند و دارای 2 نوع Application و User هست که به ترتیب در زیر توضیح دادن شدن.

** Application : امکان تغییر داده های فیلد در زمان اجرا وجود نداره و معمولا برای نگهداری رشته های اتصال ( Connection string ) به کار میرود.

** User : امکان تغییر مقدار فیلد در زمان اجرا وجود دارد.

Value : مقداری به عنوان پیشفرض برای نوع فیلد های User و مقدار فیلد با نوع دسترسی Application را تعیین میکند.


دسترسی به Application Setting ها در کد نویسی :

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

نام فیلد.My.Settings

جهت مقدار دهی در زمان اجرا از شکل زیر استفاده کنین :

مقدار=نام فیلد.My.Settings


بعد از اینکه مقدار تمام فیلد ها رو دادین باید ذخیرشون کنین :


My.Settings.Save()

:
سلام ممنون بابت مطلب مفیدتون. من میخام توی یه شرط مقدار یکی از متغیرهام رو بررسی کنم، ببینم خالیه یا مقدار داره. ولی از کدزیر که استفاده میکنم اررور میده و قبول نمیکنه. متغیرم هم string هستش:
If My.Settings.mn_melk.IsNullOrEmpty Then
end if

xxnagin
سه شنبه 02 خرداد 1391, 14:45 عصر
سلام
از این کد ها استفاده کن


My.Settings.mn_melk = TextBox1.Text
If String.IsNullOrEmpty(My.Settings.mn_melk) Then
MsgBox("is Empty")
End If
یا از این
if My.Settings.mn_melk =string.empty Then
MsgBox("is Empty")
End If
یا
if My.Settings.mn_melk.length<0 Then
MsgBox("is Empty")
End If

nima_8m
یک شنبه 21 خرداد 1391, 01:51 صبح
سلام
مرسی از مطالب جالبی که گذاشتین و تشکر ویژه از جناب ابراهیمی
آیا میشه اطلاعات یه فرم رو تو setting نگهداری کرد ؟
چرا؟
من یه فرم دارم که به مرور پر میشه و بعداز یه زمانی ذخیره ولی گاهی پیش میاد در حین کار برق میره اطلاعات اون فرم خیلی مهه تو دیتا بیس هم دخیره نشده وقتی سیستم روشن شد من میخوام این اطلاعات تو فرم باشه و کاربر به ورود اطلاعات ادامه بده و بعد ذخیره
از این روشی که گفتید میشه یا خیر؟درضمن من فراموش کردم فرم من یه گرید هستش
ممنون از توجهتون

barnamenevisforme
یک شنبه 21 خرداد 1391, 07:11 صبح
سلام
آره فکر کنم بشه.
از گزینه borrows استفاده کن و نوع متغیر رو dataset در نظر بگیر.فقط باید در نظر داشته باشی که هر لحظه تغییری در جدول داده شد،setting رو ذخیره کنی.واسه بعضی تغییرات مثل update کردن بعضی از سطرها،موقع load،باید وضعیت row state رو چک کنی.

Hybrid
یک شنبه 21 خرداد 1391, 11:57 صبح
آیا میشه اطلاعات یه فرم رو تو setting نگهداری کرد ؟
چرا؟

سلام به شما دوست عزیز ، بله چرا نمیشه دوست قبلی جوابتون رو دادن ولی میتونین از فایل های INI هم استفاده کنید که بسیار جالب هستند ، و راحت میتونین اطلاعات رو داخلش ذخیره کنید و بخونید ،

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

biotechsoft
دوشنبه 22 خرداد 1391, 15:00 عصر
If My.Settings.mn_melk.IsNullOrEmpty Then
end if
بجای کد بالا از این استفاده کن
خیلی ساده:

If My.Settings.mn_melk = "" Then

end if