PDA

View Full Version : ساخت دکمه "اضافه کردن" خودکار و استفاده از ContextMenuStrip ثابت برای تمامی آنها



pouyansaraf
پنج شنبه 03 آذر 1390, 18:07 عصر
با سلام
فرض کنید که میخواهیم یک رشته با تعداد نا مشخص کلمه درست کنیم.
ابتدا در یک FlowLayoutPanel یک دکمه داریم که نوشته آن + است.
مانند شکل زیر
78349

با زدن دکمه AddButton یک دکمه به سمت راست دکمه AddButton اضافه میشود
مانند شکل زیر
78350
این دکمه ها هر کدام بنا به شماره ای که به آنها اختصاص داده شده است
کار منحصر به فرد خود را انجام میدهند.
حال یک ContextMenuStrip تعریف میکنیم که آیتم های مختلفی دارد
و تمامی دکمه های تعریف شده میتوانند از آیتم های آن استفاده کنند.
مانند شکل زیر
78351
این پروژه را کم کم شروع میکنم و رویداد های خیلی زیادی را باید برای این دکمه ها تعریف کرد
برای سوالات احتمالی دوستان از راهنمایی های خویش ما را دریغ نکنند.
با تشکر

pouyansaraf
پنج شنبه 03 آذر 1390, 18:31 عصر
کد دکمه +

Static bn As Byte = 1
Dim b As New Button
b.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
b.Name = "Button" & bn.ToString
b.TabIndex = bn
b.Text = " - - - - - -"
b.AutoSize = True
b.UseVisualStyleBackColor = True
FlowLayoutPanel1.Controls.Add(b)
bn += 1

ولی متاسفانه به سمت چپ دکمه اضافه میکند
78352
سوال : چطور مانند صورت مسئله به سمت راست دکمه + اضافه شود؟

آیا باید در Document outline آنرا به یک درجه بالاتر برد !؟
چگونه
دوستان راهنمایی کنند
با تشکر

pouyansaraf
پنج شنبه 03 آذر 1390, 19:52 عصر
روشی که به ذهنم رسید اینست که لوکیشن آنرا به راست بکشم

b.Location = New System.Drawing.Point(AddButton.Location.X + 20, AddButton.Location.Y + 0)
اما با این روش کار نمیکند
احتمالا فقط باید در Document Outline آنرا بالاتر برد

لطفا کمک کنید.

Mani_rf
جمعه 04 آذر 1390, 10:36 صبح
نیازی به تغییر مکان دکمه نیست ؛ تنها کافی است که بعد از کد هایی که دکمه ها را اضافه می کند بنویسی Button1.SendToBack() تا دکمه شما آخرین دکمه شود. Button1 نام دکمه ای است که باید در آخر قرار گیرد یعنی دکمه +