PDA

View Full Version : سوال: نمایش و بستن یک بالن از DevComponent



morteza271
چهارشنبه 20 اردیبهشت 1391, 10:00 صبح
سلام.

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

من یه بالن با استفاده از فرم و کامپوننت DevComponent درست کردم
حالا میخوام وقتی روی یه کلید کلیک میشه این بالن نمایش داده بشه و وقتی که بر روی فرم کلید شد این بالن بسته بشه!
البته بگم که این بالن مثل tooltip نیست و من با استفاده از فرم و DevComponent.DotNetBar.ballon این بالن رو ساختم!

کسی میتونه کمک کنه؟

Mahmoud Zaad
چهارشنبه 20 اردیبهشت 1391, 10:43 صبح
سلام
شما مگه منظورت همون BalloonTip نیست؟ این کمپوننت کارکردش مثل همون tooltip هست یعنی باید خاصیت caption و text کنترل مورد نظر رو اضافه کنید تا برای اون کنترل بالون نمایش داده بشه. مثلا شما می خواید روی یه لیبل بالون نمایش داده بشه، باید بالون رو به فرم اضافه کنید بعد خاصیت های Balloon Caption on BalloonTip1 و Balloon Text on BalloonTip1 برای کنترل مورد نظر تنظیم کنید.

morteza271
چهارشنبه 20 اردیبهشت 1391, 11:12 صبح
نه دوست عزیز منظورم اون نیست
گفتم که یه فرم رو تبدیل کردم به بالن.
توی قسمت کد فرم به جای Form نوشتم DevComponent.DotNetBar.Ballon
اینجوری فرم تبدیل شده به یه بالین.

حالا میخوام ببینم چجوری میتونم این بالن رو نمایش بدم و ببندم.

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

1 ) اول به گفته خودتون یک فرم جدید بسازین و از Devcomponent.dotnetbar.ballon وراثت بگیرین تا فرم کلیه ی خصوصیات کلاس Ballon رو به خودش بگیره . بعد از اینکه Ballon رو طراحی کردین مراحل پایین رو برین

2 ) به فرم اول برین و یک Timer روی فرم قرار بدین .

3 ) شما برای اینکه Ballon رو نمایش بدین نیاز به یک زیر برنامه دارین که اینکار رو واستون انجام بده ، زیر برنامه رو واستون نوشتم ( سی شارپ ندارم با وی بی دات نت نوشتم تبدیل کردم ببخشید اگه اشکالی داره) :


private void ShowBallon()
{
DevComponents.DotNetBar.Balloon m_Alert = default(DevComponents.DotNetBar.Balloon);
m_Alert = new BallonTip();
Rectangle r = Screen.GetWorkingArea(this);
m_Alert.Location = new Point(r.Right - m_Alert.Width, r.Bottom - m_Alert.Height);
m_Alert.AutoClose = true;
m_Alert.AutoCloseTimeOut = 6;
m_Alert.AlertAnimation = eAlertAnimation.BottomToTop;
m_Alert.AlertAnimationDuration = 400;
m_Alert.Show(false);
}

خط اول ) یک شی از کلاس Ballon مربوط به بسته dotnetbar ساختم.

خط دوم) در این خط اومدم کلیه خصوصیات کلاس Ballon سفارشی که قبلا ساخته بودم رو به اون متغیر نسبت دادم ( ممکنه نام این کلاس در برنامه شما فرق کنه)

خط سوم و چهارم) مکان Ballon رو مشخص کردم که در این زیر برنامه گوشه ی پایین سمت راست مانیتور هست.

خط پنجم و ششم ) گفتم بعد از یک مدتی Ballon رو مخفی کن ( اون مدت رو در خط پایینی و از طریق خصیصه AutoCloseTimeout که بر حسب ثانیه هست مشخص کردم)

خط هفتم ) حالت نمایش Ballon رو مشخص کردم ، در این کد حالت انیمیشنی از پایین به بالا هست.

خط هشتم ) مدت زمان نمایش Animation رو مشخص کردم.

خط نهم ) گفتم Ballon رو نمایش بده.

حالا در تایمر کد زیر رو قرار بده :


Timer1.Stop();
Timer1.Enabled = false;
ShowBallon();

و سرانجام در رویداد load فرم کد زیر رو قرار بده :


Timer1.Enabled = true;
Timer1.Interval = 1500;

(( کد های بالا تبدیلی هست ممکنه اشکالاتی در کوچیک و بزرگی حروف بگیره ))

پروژه به زبان وی بی دات نت :

Mahmoud Zaad
چهارشنبه 20 اردیبهشت 1391, 12:30 عصر
مثل یه فرم باید اینکارو انجام بدی
برای نمایش:


Form7 f7 = new Form7();
f7.Show();
f7.CaptionText = "My Form";

برای بستن، اول باید چک کنی ببینی فرم بازه بعد ببندیش:


if (Application.OpenForms["Form7"] != null)
{
Application.OpenForms["Form7"].Close();
}

فرمی که تبدیل به بالون شده، Form7 هست.

morteza271
چهارشنبه 20 اردیبهشت 1391, 12:36 عصر
ممنونم دوستان ولی هنوزم مشکل رفع نشده!

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

Hybrid
چهارشنبه 20 اردیبهشت 1391, 12:47 عصر
ممنونم دوستان ولی هنوزم مشکل رفع نشده!

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

این دیگه مشکلی نداره ، کدی که داخل تایمر قرار دادی رو داخل یک دکمه قرار بده و اون دو خط کد مربوط به AutoClose و AutoCloseTimeout رو حدف کن.

البته در این حالت باید m_alert رو به صورت public تعریف کنی

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

اگه توضیحات اضافی خواستین در خدمتم

morteza271
چهارشنبه 20 اردیبهشت 1391, 13:26 عصر
بیشتر سر بستن بالن مشکل دارم که نمیدونم در چه رویدادی کدشو بنویسم که این بالن بسته بشه!
وگرنه تقریبا میدونم باید چیکار کنم. فقط رویدادشو نمیدونم!!!
میشه لطف کنید راهنمایی کنید؟؟

ROSTAM2
چهارشنبه 20 اردیبهشت 1391, 13:39 عصر
میخوام وقتی رو یه دکمه کلیک کرد این بالن باز بشه و یه کارایی رو توی این بالن انجام بده و بعد که روی فرم اصلی کلیک کرد این بالن بسته بشه.


بیشتر سر بستن بالن مشکل دارم که نمیدونم در چه رویدادی کدشو بنویسم که این بالن بسته بشه!
وگرنه تقریبا میدونم باید چیکار کنم. فقط رویدادشو نمیدونم!!!

شما که می گید
که روی فرم اصلی کلیک کرد خوب ایونت کلیک از فرم و استفاده کنید واسه بستنش یا MouseDown, MouseUp,MouseClick
اگه می خواید زمانی که روی یک شی میبرید کرسر و MouseEnter و وقتی کرسر و برمی دارید MouseLeave

morteza271
چهارشنبه 20 اردیبهشت 1391, 14:05 عصر
بابا بی خیال!
راستش نه من میتونم درست منظورمو برسونم نه کسی درست متوجه میشه
پس بهتره خودم برم با سعی و خطا راهشو پیدا کنم
ممنون دوستان

abcd_a
جمعه 22 اردیبهشت 1391, 15:47 عصر
سلام

که بخوای فرمی که تبدیل به بالن شده در یک موقعیت خاص درون فرم والد نمایش داداه بشه یا روی یک کنترل دیگه درون فرم نمایش داده بشه باید چه کدی باید بنویسیم؟