PDA

View Full Version : خوصوصیت helpbutton برای form



alireza_tavakol
شنبه 31 شهریور 1386, 02:39 صبح
چه طوری میشه بعد از true کردن خصوصیت help button فرم از دکمه علامت سوال استفاده کرد

PC2st
شنبه 31 شهریور 1386, 04:23 صبح
بعد از اینکه MaximizeBox و MinimizeBox هم False کردید:

+ میتونید کامپوننت HelpProvider رو از ToolBox به فرم اضافه کنید. با اضافه کردن این کامپوننت، خواص جدیدی برای هر کنترل بوجود میاد که برای مشخص کردن متن کمکی بکار میره، مثلا خاصیت HelpString on helpProvider1 (البته این خاصیت فقط در زمان Design-Time وجود داره و برای Run-Time باید از متدهای کلاس HelpProvider استفاده کرد)

+ بجای استفاده از کامپوننت HelpProvider میتوانستید از رویداد HelpRequested استفاده کنید.

alireza_tavakol
یک شنبه 01 مهر 1386, 01:50 صبح
دمت گرم لوطی

فقط نمیشه فارسی نوشت در موقع اجرای برنامه عجق و جق نشون میده باید چی کار کنم

PC2st
یک شنبه 01 مهر 1386, 17:18 عصر
فقط نمیشه فارسی نوشت در موقع اجرای برنامه عجق و جق نشون میده باید چی کار کنم
درسته مثل اینکه با متن فارسی مشکل داره!
اگر هم راهی داشته باشه، من اطلاع ندارم ولی میتونید از روش دوم (رویداد HelpRequested) استفاه کنید و در رویداد HelpRequest یک متن رو به کاربر نمایش بدید و پس از اینکه کاربر متن رو خوند، اون متن رو از مخفی کنید و یا اینکه خودتون یک کلاس رو بنویسید که چنین کاری رو انجام بده و از اون برای نمایش help استفاده کنید (چیزی شبیه به کامپوننت HelpProvider بنویسید).

alireza_tavakol
چهارشنبه 04 مهر 1386, 02:37 صبح
وقتی بهت میگم سرور عزیزم میگی نه!!!
بخدا من خیلی اذیتت کردم شرمده . خدا همشه این روحیه کمک به هم نوع را در تو حفظ کنه
آقا این کلاسی رو که میگیه برام مذاری
دیگه حتما منو شناختی که بلدم نیستم این کارو بکنم

PC2st
چهارشنبه 04 مهر 1386, 04:37 صبح
یک مثال ساده و نا زیبا... (به میل خودتون تغییرش بدید)


class TestHelpProvider
{
Timer tmr;
Label helpLabel;
Dictionary<Control, string> innerList;
Form parent;
public TestHelpProvider(Form frm)
{
this.parent = frm;
this.tmr = new Timer();
this.tmr.Interval = 3000;
this.tmr.Tick += new EventHandler(tmr_Tick);
this.innerList = new Dictionary<Control, string>();
this.helpLabel = new Label();
this.helpLabel.AutoSize = true;
this.helpLabel.Visible = false;
this.parent.Controls.Add(this.helpLabel);
this.helpLabel.BringToFront();
}
void tmr_Tick(object sender, EventArgs e)
{
this.helpLabel.Visible = false;
this.tmr.Enabled = false;
}
public void AddHelp(Control ctrl, string text)
{
ctrl.HelpRequested += new HelpEventHandler(ctrl_HelpRequested);
this.innerList.Add(ctrl, text);
}
public void RemoveHelp(Control ctrl)
{
this.innerList.Remove(ctrl);
ctrl.HelpRequested -= new HelpEventHandler(ctrl_HelpRequested);
}
void ctrl_HelpRequested(object sender, HelpEventArgs hlpevent)
{
Control ctrl = (Control)sender;
this.helpLabel.Location = ctrl.Location;
this.helpLabel.Visible = true;
this.helpLabel.Text = this.innerList[ctrl];
this.tmr.Enabled = true;
}
}

این کلاس مثلا مثل HelpProvider عمل میکنه و برای استفاده از آن، در رویداد Load از فرم، دستورات زیر رو مینویسیم:


private void Form1_Load(object sender, EventArgs e)
{
TestHelpProvider test = new TestHelpProvider(this);
test.AddHelp(textBox1, "این بد نیستتتتت");
test.AddHelp(checkBox1, "این خوووووووبه");
test.AddHelp(textBox2, "این تست");
test.RemoveHelp(textBox2);
}