PDA

View Full Version : nodes در treeview



hojjat_gh
جمعه 15 شهریور 1387, 22:17 عصر
با سلام
چطوری میتونم با کلیک روی یک node از treeview مقدار اون رو در یک مسیج با کس نشون بدم
البته کد زیر در موقعی که تو کلیک باتن بنویسم جواب میده :


MessageBox.Show(treeView1.SelectedNode.Text.ToStri ng());

ولی من میخوام به محض کلیک روی نود مقدارش رو نشون بده ایا رویداد خاصی برای این کار هست که کد رو داخلش بنویسم؟

mehdi.mousavi
جمعه 15 شهریور 1387, 22:28 عصر
با سلام
چطوری میتونم با کلیک روی یک node از treeview مقدار اون رو در یک مسیج با کس نشون بدم
البته کد زیر در موقعی که تو کلیک باتن بنویسم جواب میده :


MessageBox.Show(treeView1.SelectedNode.Text.ToStri ng());

ولی من میخوام به محض کلیک روی نود مقدارش رو نشون بده ایا رویداد خاصی برای این کار هست که کد رو داخلش بنویسم؟

سلام.
NodeMouseClick Event رو بگیرید، و هر کاری خواستید بکنید:



private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
//Do whatever suits you!
}

hojjat_gh
جمعه 15 شهریور 1387, 23:09 عصر
من تو رویداد treeView1_NodeMouseClick هم نوشتم ولی جواب نمیده وارور میده ومیگه مقدارها ست نشدن:
objects not set to any instance

mehdi.mousavi
جمعه 15 شهریور 1387, 23:12 عصر
من تو رویداد treeView1_NodeMouseClick هم نوشتم ولی جواب نمیده وارور میده ومیگه مقدارها ست نشدن:
objects not set to any instance

کدتون رو اینجا بذارید ببینم. منظورم اینه که داخل این تابع، چی نوشتید؟

hojjat_gh
شنبه 16 شهریور 1387, 05:38 صبح
متن دقیق ارور:
Object reference not set to an instance of an object.


private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
MessageBox.Show(treeView1.SelectedNode.Text.ToStri ng());
}


البته من یه توضیح بدم نودها مقادیر برگشتی جدولند که نی ونم تاثیر داره یا نه!

Salar Ashgi
شنبه 16 شهریور 1387, 09:01 صبح
سلام ، باید از رویداد زیر استفاده کنید !!!!



private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
MessageBox.Show(e.Node.Text);
}


موفق و پیروز باشید !!!!:لبخندساده:

mehdi.mousavi
شنبه 16 شهریور 1387, 10:55 صبح
متن دقیق ارور:
Object reference not set to an instance of an object.


private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
MessageBox.Show(treeView1.SelectedNode.Text.ToStri ng());
}


البته من یه توضیح بدم نودها مقادیر برگشتی جدولند که نی ونم تاثیر داره یا نه!


سلام.
اشکال این کد اینه که شما دارید از SelectedNode برای گرفتن نود انتخاب شده استفاده میکنید. در صورتیکه در این Event باید از e.Node برای گرفتن نود مزبور استفاده کنید.

پاورقی: چون نوشته بودید که "چطوری میتونم با Click روی یه نود مقدار اونو در یک MessageBox نشون بدم"، من این Event رو پیشنهاد دادم. در صورتیکه اگر میخواهید این کار را بازای انتخاب نود با Keyboard (یا با Mouse) انجام بدید، از Event ای که salar_cpp_cs گفتن باید استفاده کنید.

13892010behzad
یک شنبه 12 تیر 1390, 13:53 عصر
سلام
چطوری میتونم تو#Cب ا کلیک روی یک node از treeview یک فرم جدید بازکنم؟
مثلا تو یک تری ویو 3 تا نوداصلی وهرکدوم 10 تا نود زیرشاخه دارند ،می خام رو هرکدوم اززیرشاخه ها که کلیک میکنم هرکدوم یه فرم جداگانه بازکنن

jmfnima
پنج شنبه 17 شهریور 1390, 14:34 عصر
با سلام به همه دوستان
من هم مشكل در باز كردن يك فرم توسط نودهاي TreeView رو دارم يعني اينكه بر روي هر كدام از نودهاي TreeView كليك كردم فرم مورد نظر ما باز بشه .

jmfnima
پنج شنبه 17 شهریور 1390, 14:38 عصر
با سلام به همه دوستان
من بر روي فرمم از يك treeview استفاده كردم كه كه 5 تا نود داره حالا ميخوام هر موقع كه بر روي هر كدام از اين نودها كليك كردم فرم مربوطه اي كه ما بهش معرفي ميكنيم باز بشه .

samsami
پنج شنبه 17 شهریور 1390, 16:38 عصر
سلام دوستان من هم یه مشکل دارم

گذاشتن راست کلیک برای node
می خوام روی یک node کلیک راست کرده و چند تا Childe بسازم چگونه این کار را انجام دهم..

jmfnima
پنج شنبه 17 شهریور 1390, 22:39 عصر
با سلام به همه دوستان
کسی نیست که بهم کمک کنه خیلی ضروریه .
(من بر روي فرمم از يك treeview استفاده كردم كه كه 5 تا نود داره حالا ميخوام هر موقع كه بر روي هر كدام از اين نودها كليك كردم فرم مربوطه اي كه ما بهش معرفي ميكنيم باز بشه .)

jmfnima
جمعه 18 شهریور 1390, 12:09 عصر
با سلام
یک نیست به من کمک کنه .

jmfnima
جمعه 18 شهریور 1390, 22:04 عصر
با سلام به همه دوستان
برای این مشکلی که داشتم کد زیر رو وارد کردم درست شد .
Form2 frm = new Form2();
if (e.Node.Name== "Node1")
{
frm.ShowDialog();
}