PDA

View Full Version : __ فرم پدر و فرزندان __



hrbaban
سه شنبه 03 شهریور 1388, 09:33 صبح
سلام . . .

من یه فرم پدر ساختم که تمام فرمهای دیگه برنامه از اون ارث بری میکنند .

یه فرم اصلی هم دارم که قبل از فرم یوزرنیم و پسوردم (فرم ورود کاربر) نشون داده میشه .

در فرم ورود کاربر میخوام به شرط درست بودن پسورد نام یوزر در Status تمام فرمهام ظاهر بشه .

حالا مشکلم کجاست :
چون فرم اصلی قبل از فرم ورود کاربر نشون داده میشه و ارث بریش انجام شده دیگه نام کاربر در Status نیست . چطوری میتونم این مشکل رو حل کنم ؟؟؟؟:متفکر:

اَرژنگ
سه شنبه 03 شهریور 1388, 09:54 صبح
سلام . . .

من یه فرم پدر ساختم که تمام فرمهای دیگه برنامه از اون ارث بری میکنند .

یه فرم اصلی هم دارم که قبل از فرم یوزرنیم و پسوردم (فرم ورود کاربر) نشون داده میشه .

در فرم ورود کاربر میخوام به شرط درست بودن پسورد نام یوزر در Status تمام فرمهام ظاهر بشه .

حالا مشکلم کجاست :
چون فرم اصلی قبل از فرم ورود کاربر نشون داده میشه و ارث بریش انجام شده دیگه نام کاربر در Status نیست . چطوری میتونم این مشکل رو حل کنم ؟؟؟؟:متفکر:
ارث بریش انجام شده؟
پس زمانی که کد مینویسید ارث بریش انجام نشده؟
مطمعن هستید که منظورتان این نیست که
"ساخته شده" نه اینکه "ارث بریش انجام شده"؟

hrbaban
سه شنبه 03 شهریور 1388, 11:32 صبح
ارث بریش انجام شده؟
پس زمانی که کد مینویسید ارث بریش انجام نشده؟
مطمعن هستید که منظورتان این نیست که
"ساخته شده" نه اینکه "ارث بریش انجام شده"؟


من متوجه منظورتون نمیشم . . .

ببین یه فرم پدر وجود داره که در اون یه StatusStrip قرار دادم که در تمام فرم ها وجود داشته باشه. اما مقدار لیبل موجود در این Status وقتی که کاربر رمز ورود رو درست زد تعیین میشه .
همانطور که بالا گفتم همه فرمها از فرم پدر ارث بری دارند اما چون فرم اصلی برنامه زودتر از فرم ورود کاربر لود میشه در نتیجه قسمت Status اون هنوز مقدار نداره .

hrbaban
سه شنبه 03 شهریور 1388, 13:14 عصر
فکر نمیکردم اینقدر سوالم سخت باشه . . .:لبخند:

naeeme
سه شنبه 03 شهریور 1388, 13:22 عصر
مشکل با این قسمت از گفته شماست:

حالا مشکلم کجاست :
چون فرم اصلی قبل از فرم ورود کاربر نشون داده میشه و ارث بریش انجام شده دیگه نام کاربر در Status نیست . چطوری میتونم این مشکل رو حل کنم ؟؟؟؟

شما اگر نام کاربری رو به عنوان یک پراپرتی پابلیک در فرم لاگین در نظر بگیرین، پس از برگشتن به فرم اصلی،‌می تونید اون مقدار رو بخونین و در status قرار بدین. که فکر می کنم خودتون این راه حل رو می دونستین!
اگر مشکلتون این نیست، بیشتر توضیح بدین.

hrbaban
سه شنبه 03 شهریور 1388, 17:23 عصر
مشکل با این قسمت از گفته شماست:


شما اگر نام کاربری رو به عنوان یک پراپرتی پابلیک در فرم لاگین در نظر بگیرین، پس از برگشتن به فرم اصلی،‌می تونید اون مقدار رو بخونین و در status قرار بدین. که فکر می کنم خودتون این راه حل رو می دونستین!
اگر مشکلتون این نیست، بیشتر توضیح بدین.

شاید منظورم رو خوب نرسوندم . . .:متفکر:

در solution برنامه من 3 تا فرم دارم به نامهای Base , MainMenu,Login که فرم MainMenu از فرم Base ارث بری داره که در این فرم(Base) یک StatusStrip وجود داره . حالا چون فرم اصلی برنامه MainMenu هستش توی Program.cs اونو لود میکنم و در لود فرم MainMenu ، فرم Login را صدا میزنم . در این فرم یوزر و پسورد گرفته میشه که در صورت درست بودن ، برنامه شروع میشه که در این حالت میخوام نام یوزر در StatusStrip فرم MainMenu قرار بگیره . باید چکار کرد ؟:ناراحت:
من یه لیبل توی StatusStrip تعریف کردم که نام یوزر رو نشون بده و با تعریف یه متغییر و نسبت دادن اون به لیبل موجود در فرم Base مشکل حل میشه اما فقط توی StatusStrip فرم MainMenu عمل نمیکنه چون قبل از اینکه فرم Base مقدار بگیره لود میشه . ولی بقیه فرمهای برنامه که در برنامه به کار میرند این مشکل رو ندارد .:گیج:

اَرژنگ
چهارشنبه 04 شهریور 1388, 03:13 صبح
شاید منظورم رو خوب نرسوندم . . .:متفکر:

در solution برنامه من 3 تا فرم دارم به نامهای Base , MainMenu,Login که فرم MainMenu از فرم Base ارث بری داره که در این فرم(Base) یک StatusStrip وجود داره . حالا چون فرم اصلی برنامه MainMenu هستش توی Program.cs اونو لود میکنم و در لود فرم MainMenu ، فرم Login را صدا میزنم . در این فرم یوزر و پسورد گرفته میشه که در صورت درست بودن ، برنامه شروع میشه که در این حالت میخوام نام یوزر در StatusStrip فرم MainMenu قرار بگیره . باید چکار کرد ؟:ناراحت:
من یه لیبل توی StatusStrip تعریف کردم که نام یوزر رو نشون بده و با تعریف یه متغییر و نسبت دادن اون به لیبل موجود در فرم Base مشکل حل میشه اما فقط توی StatusStrip فرم MainMenu عمل نمیکنه چون قبل از اینکه فرم Base مقدار بگیره لود میشه . ولی بقیه فرمهای برنامه که در برنامه به کار میرند این مشکل رو ندارد .:گیج:

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

hrbaban
چهارشنبه 04 شهریور 1388, 12:05 عصر
اینم یه نمونه برنامه . . .

اَرژنگ
چهارشنبه 04 شهریور 1388, 13:29 عصر
با سلام و درود بر شما که به جایه اینکه مانند بعضیها از لحن من (مگر میشه از نوشته لحن یک نفر را هم شنید؟) که ازتان درخواست کد کردم بدتتان بیاد، زحمت کشید و یک پروژه کوچک که مشکلتان را به کاملی میرساند فرستادید.
با دیدن پروژه متوجه شدم که مشکل اصلی شما اصلا چیزه دیگری بوده، و از این پست قدیمی برایه جوابش کمک گرفتم:http://barnamenevis.org/forum/showthread.php?t=88552

این پروژه یک روش ساده (ولی زیاد حرفه‌ای که هم من را و یا شما گیج کند) برایه انجام دادن کاری که شما لازم دارید هست، بهش یک نگاه بندازید و برایه کارتان ازش ایده بگیرید و هر جاییش که برایتان معنی نمیده را عوض کنید.

hrbaban
چهارشنبه 04 شهریور 1388, 16:20 عصر
با سلام و درود بر شما که به جایه اینکه مانند بعضیها از لحن من (مگر میشه از نوشته لحن یک نفر را هم شنید؟) که ازتان درخواست کد کردم بدتتان بیاد، زحمت کشید و یک پروژه کوچک که مشکلتان را به کاملی میرساند فرستادید.
با دیدن پروژه متوجه شدم که مشکل اصلی شما اصلا چیزه دیگری بوده، و از این پست قدیمی برایه جوابش کمک گرفتم:http://barnamenevis.org/forum/showthread.php?t=88552

این پروژه یک روش ساده (ولی زیاد حرفه‌ای که هم من را و یا شما گیج کند) برایه انجام دادن کاری که شما لازم دارید هست، بهش یک نگاه بندازید و برایه کارتان ازش ایده بگیرید و هر جاییش که برایتان معنی نمیده را عوض کنید.

من که اصلا از این برنامه هیچی نفهمیدم !!!:گریه::گریه::گریه::گریه::گری ه::گریه::گریه:
یکی کمک کنه ؟

اَرژنگ
چهارشنبه 04 شهریور 1388, 17:10 عصر
من که اصلا از این برنامه هیچی نفهمیدم !!!:گریه::گریه::گریه::گریه::گری ه::گریه::گریه:
یکی کمک کنه ؟

دوست عزیز،
بر حسب برنامه‌ای که شما فرستادید، من فرض کردم که میخواهید یک فرم لگین نشان بدید و بعد از لگین اگر پسورد درست بود به برنامه اصلی وارد بشید و اگر که نه، برنامه را ببندید.
منتها روش شما از یک فرم سوم استفاده میکرد و با شفاف بودنش ربطی به کاری نداشت.
لطفا وقتی که برنامه را اجرا میکنید از این لگین و پسورد استفاده کنید:

login : login
password:password


بعد از اینکه اجراش کردید بگید که بکارتان نزدیک است و یا اصلا ربطی ندارد، یا اینکه اصلا چیزه دیگری لازم دارید.

SMRAH1
چهارشنبه 04 شهریور 1388, 17:15 عصر
سلام

در کدی که در پست 8 فرستادی ،کد درون Form1_Load رو به رویداد Shown اختصاص بده یعنی :

public Form1()
{
InitializeComponent();
}
public static string n;

private void Form1_Shown(object sender, EventArgs e)
{
slbl.Text = n;
}

اما تاکید می کنم که این بهترین روش نیست!برای نگهداری اطلاعات Logon بهتره به کدی که جناب آرژنگ زحمتش رو کشیدند، توجه کنید.

موفق باشید

hrbaban
چهارشنبه 04 شهریور 1388, 17:32 عصر
سلام

در کدی که در پست 8 فرستادی ،کد درون Form1_Load رو به رویداد Shown اختصاص بده یعنی :

public Form1()
{
InitializeComponent();
}
public static string n;

private void Form1_Shown(object sender, EventArgs e)
{
slbl.Text = n;
}


اما تاکید می کنم که این بهترین روش نیست!برای نگهداری اطلاعات Logon بهتره به کدی که جناب آرژنگ زحمتش رو کشیدند، توجه کنید.

موفق باشید

مرسی . . . حل شد .

من یه تازه کارم از کدهای برنامه جناب ارژنگ چیز زیادی دستگیرم نمیشه . اگر شسته و رفته تر بگن بهتر . منظورم منطق کار هستش و اینکه این برنامه چطور کار میکنه .

اَرژنگ
چهارشنبه 04 شهریور 1388, 17:44 عصر
مرسی . . . حل شد .

من یه تازه کارم از کدهای برنامه جناب ارژنگ چیز زیادی دستگیرم نمیشه . اگر شسته و رفته تر بگن بهتر . منظورم منطق کار هستش و اینکه این برنامه چطور کار میکنه .
فرم لگین فقط برایه گرفتن لگین و پسورد هست. فایل سکیوریتی ، اینکه پسورد و لگین درست بوده را چک میکنه و اسم لگین را نگه میداره. فایل پروگرم : منطق شروع شدن برنامه را نگه داری میکنه. اگر با اف۱۱ اجرا شدن برنامه را تعقیب کنید ساده بودنش را میبینید.