PDA

View Full Version : سوال: افوری؛استفاده از menu strip



sobijoon
سه شنبه 27 بهمن 1388, 16:29 عصر
سلام من يه فرم log on دارم ميخوام اگه كاربر مدير نبود(يه نوع كاربري)فرم دوم كه باز ميشه چند تا از گزينه هاي منوهاي موجود غير فعال شن يا اينكه ديده نشن.
ممنون ميشم كمكم كنيد.


اگر از

ToolStripMenuItem1.Enabled = false;
جواب نمیده تو یه فرم دیگست میگه ToolStripMenuItem1رو نمیشناسم!
اشکالم کجاست.؟
آیا sampleندارید..

Mohandes2009
سه شنبه 27 بهمن 1388, 16:56 عصر
اگه Modifire آیتم های تول استریپ را Public کنی نمی تونی کار کنی با هاش؟:لبخند:

sobijoon
سه شنبه 27 بهمن 1388, 17:24 عصر
اگه Modifire آیتم های تول استریپ را Public کنی نمی تونی کار کنی با هاش؟:لبخند:

باور کنید نمیشه:ناراحت:

مشکل از اینجا آغاز میشه که میخوام تو یه فرم دیکه اینکار رو انجام بدم:ناراحت:
کمک کنید!

rana-writes
سه شنبه 27 بهمن 1388, 18:00 عصر
سلام
کاربرهای شما لاگین میکنند درسته؟
بنابراین میتونین اونجایی که یوزر پسورد رو چک میکنین، سطح کاربری رو که مطمئنا یه فیلد توی جدوله فراخوانی کنین و توی یه متغیر سراسری بندازین
حالا تو متود فرم لود، فرمی که توش منو دارین، با یک دستور شرطی ساده، با توجه به کاربرها هر گزینه ای رو خواستین Enable ش رو True و False کنین

Mohandes2009
سه شنبه 27 بهمن 1388, 19:20 عصر
باور کنید نمیشه:ناراحت:

مشکل از اینجا آغاز میشه که میخوام تو یه فرم دیکه اینکار رو انجام بدم:ناراحت:
کمک کنید!

شما از properties اون را Public کن بعد ببین میشه:چشمک:

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

sobijoon
جمعه 30 بهمن 1388, 02:02 صبح
کاس میشد اگ نمونه ای داشتبد میزاشتید:(

ayyub492
جمعه 30 بهمن 1388, 02:17 صبح
با سلام
ابتدا باید menu strip را از نوع public تعریف کنید( در قسمت nameForm.Designer.cs)
بعد برای دستیابی آن از کد زیر استفاده کنید

(foreach (Form frm in Application.OpenForms
(if (frm is nameform
}
;nameform f = (nameform)frm


....f.namemenu strip
......
}
}

sobijoon
جمعه 30 بهمن 1388, 05:47 صبح
private void button1_Click(object sender, EventArgs e)
{// in metod saba mishavad ta az form digari
foreach (Form frm in Application.OpenForms)
{
if (frm is Form2)
{
Form2 f = (Form2)frm;
f.sssToolStripMenuItem.Enabled = false;


}
}
Form2 V = new Form2();
V.Show();
}
ضمن تشکر اگر چه شناسایی میکند ولی کماکان نمیتونه Enable=Fals کنه:ناراحت::گیج:

ayyub492
جمعه 30 بهمن 1388, 14:27 عصر
با سلام. کد که براتون نوشتم رو باید درون فرم دیگری که می خواهید از طریق آن به فرم حاوی منو دسترسی پیدا کنید قرار بدهید.
Form2 V = new Form2();
V.Show();
کدهای فوق که در رویداد کلیک گذارده اید.نشان می دهد که فرم form2 که باید حاوی menu strip باشد هنوز باز نشده است که شما می خواهید آن را باز کنید .
کدهای که گذارده ام زمانی کاربرد دارد که قبلاً فرم form2 باز شده باشد.

sobijoon
یک شنبه 02 اسفند 1388, 03:22 صبح
نه مهندس اون فرمی که قراره به menuo strip ان دسترسی پیدا کنم هنوز باز نشده:ناراحت:
راه حلی ندارید؟

sobijoon
یک شنبه 02 اسفند 1388, 05:03 صبح
دوستان کسی نیست که یه پاسخ درست به این سئوال بده؟؟:کف:
:گریه:

water_lily_2012
یک شنبه 02 اسفند 1388, 09:11 صبح
سلام
شما می خواهید از اولین فرم یعنی فرم لوگین منوهای فرم بعدی را غیر فعال کنید درسته. ببین این راه به کارت می یاد یا نه
Form2 f=new Form2();
if (textBox1.Text == "مدیر")
{
f.closeToolStripMenuItem.Enabled = false;
}
else
{
f.closeToolStripMenuItem.Enabled = true;
}
f.Show();
این چند خط تو فرم لوگین بنویس

water_lily_2012
یک شنبه 02 اسفند 1388, 09:14 صبح
راستی یادم رفت بگم هر منویی را که می خواهی روی اون عملیاتی انجام بدی باید
modifires
اون را public کنی

Warrior
یک شنبه 02 اسفند 1388, 14:21 عصر
اولا با Public کردن ToolStripMenuItem می توان کاری که می خواهید را بکنید ولی اگر به هر دلیل امکان انجام آن فراهم نشد(ارور و ...) می توانید در صورتی که مدیر نبود(با دستور if) یک متغیر bool را true کنید(متغیر به صورت سراسری) و در formLoad فروم بعدی(که می خواهید یک سری چیز ها پیدا نباشند) بنویسید:


if(d == true)
{
txt1.Visible = false;
و ...
}


در صورت امتحان کردن, نتیجه را اعلام کنید.