نمایش نام کنترل در فرمهای دیگر

#C

توسط thearrow در 6 سال پیش
0 17.3k 2 6 سال پیش
thearrow reza xman
0

سلام
نمیدونستم چی عنوان بزارم !

من یک Panel دارم که X تا کنترل از نوع UserControl به اون اضافه شده ،
چطوری کاری کنم که وقتی موس بره روی یک کنترل ، فرم2 باز شه و اسم اون کنترل رو توی Textـه فرم2 بنویسه ؟(از ToolTip نمیخوام استفاده کنم)

ممنون

0

اگر هدف شما فقط نمایش نام کنترله اصلا این کار پیشنها نمیشه! برای یه کار کوچیک فرم باز نکنید.
در هر صورت من کد رو برای شما قرار میدم:
فرم1:
[CSHARP]
Form frm = null;

    private void Form1_Load(object sender, EventArgs e)
    {
        // ADD EVENT TO ALL CONTROLS PLACED IN THE PANEL
        foreach (Control controlItem in panel1.Controls)
        {
            controlItem.MouseHover += new EventHandler(INF_show);
            controlItem.MouseLeave += new EventHandler(INF_hide);
        }
    }

    public void INF_show(object sender, EventArgs e)
    {
        // OPEN THE FORM AND SEND CONTROL NAME FOR CONTRUCTOR
        string ctrlName = ((Control)sender).Name;
        frm = new Form2(ctrlName);
        frm.Show();
    }

    public void INF_hide(object sender, EventArgs e)
    {
        frm.Close();
    }

[/CSHARP]

فرم2:
پارامتر control_name رو به Constructor فرم 2 اضافه کنید و بعد مقدار رو بگیرید:
[CSHARP]
public Form2(string control_name)
{
InitializeComponent();
lblCnt.Text = control_name;
}
[/CSHARP]

[url]http://www.softafzar.net/thread599.html/[/url]

0

تو مثال بالا میتونی Modifiers کنترل رو روی public بذاری تا بتونی مستقیما ازتو فرم یک مقدارشو تغییر بدی.

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.