PDA

View Full Version : چرا نمی توان با دستور imageList[int].Image[int].Tag برای عکس tag اضافه کرد ؟



yassou
شنبه 03 فروردین 1392, 10:48 صبح
با سلام به همه ،عیدتون هم مبارک
یه سوالی که داشتم این بود که من با C#‎‎‎‎‎2012.net می خواستم کاری کنم که برنامم node های treeView1 رو با عکس های imageList1 ارتباط بدم .
بعنوان نمونه به کد های زیر نیگاه کنید :
(عکس شماره 6 بعنوان نمونه گذاشتم)

public partial class The_Prototype_Information : Form
{
int temp;
public The_Prototype_Information(int Tagholder)
{
InitializeComponent();
temp = Tagholder;
}

private void textBox2_TextChanged(object sender, EventArgs e)
{

}

private void The_Prototype_Information_Load(object sender, EventArgs e)
{
imageList1.Images[6].Tag = 1;
MessageBox.Show(Convert.ToString(imageList1.Images[6].Tag)); // num 1
if (temp == Convert.ToInt32(imageList1.Images[6].Tag))
{
pictureBox1.BackgroundImage = imageList1.Images[6];
MessageBox.Show("yes");

}

else
{
MessageBox.Show("no"); // num 2
}
}
}
متغیر temp (که با Tagholder ارتباط داره از یک FORM دیگه هستش) در اینجا بعنوان Tag مربوط به Node انتخاب شده treeView1 هستش.
Tagholder شامل دستور زیر هستش :

Convert.ToInt32(treeView1.SelectedNode.Tag)
تنها روشی که فکر کردم میتونم این دوتا رو باهم ارتباط بدم ایجاد Tag چون خود Node ها گزینه Tag رو تو قسمت Edit دارن ولی عکس های Form بعدی یک همچین گزینه ای رو ندارن پس با دستور زیر براشون ایجاد کردم :

imageList[int].Images[int].Tag = 1;
پس برای عکس ها هم یه Tag انتخاب کردم تا بتونم این دو مورد رو به همدیگه ارتباط بدم .
دستور زیر رو هم برای اینکه بدونم Tag مورد نظر تو عکس مورد نظر قرار گرفته یا نه ؟

MessageBox.Show(Convert.ToString(imageList1.Images[6].Tag));
که در نهایت با تمام این توضیحات نتیجه این شد که در حالت runtime برنامه، MessageBox شماره 1 خالی چاپ میکنه و MessageBox شماره 2، No رو چاپ میکنه، که درواقع نشون میده شرط هم برقرار نمیشه ؟!
با تمام این توضیحاتی که گفتم کسی راه حلی رو برای رفع این مشکل داره ؟
ممنون میشم کمک کنید.
با تشکر .

yassou
یک شنبه 04 فروردین 1392, 13:27 عصر
سلام دوباره
خب بنظر میرسه جوابی براش نیست، چون اگه بود دیگه نمی رفت صفحه سوم ؟!!
یعنی اینقدر سخته ؟ یا اینکه سوالم رو بد توضیح دادم ؟

RED-C0DE
یک شنبه 04 فروردین 1392, 13:35 عصر
من همه ی سوالتو نخوندم ولی اگه می خوای توی نودهای treeview عکس های موجود در ImageList رو نشون بدی
ابتدا در imageList عکسها رو اضافه کن
بعدش :
myTreeView.ImageList = myImageList

با اینکار الان treeview شما ب imageList متصل شده
حالا برای هر نود ک بخوای عکس براش ست کنی:
myNode.ImageIndex = 3

با اینکار عکس چهارم از داخل ImageList رو ب نود نسبت می دم
این کلیت کار بود
http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.imagelist.aspx