PDA

نسخه کامل مشاهده نسخه کامل : چند سوال مربوط به vb.net



sanam.b
23-03-2007, 01:00
سلام
با چه دستوراتی می توان تمام عناصر یک listbox را در listbox دیگر کپی کرد؟
اگر بخواهم نتیجه یک دستور را روی فرم چاپ کنم از چه دستوری باید استفاده کنم؟
MSDN مربوط بهVB.NET را باید در کجا پیدا کنم لطفا لینک آن را برایم بگذارید

sanam.b
24-03-2007, 19:16
ببخشید دوستان چند سوال دیگر هم به آن اضافه شد

برای گرافیک روی هر کنترل باید رویداد paint آن فراخوانی شود . آیا میتوان کدی نوشت که با فشار دادن کلیدی شکل خاصی روی فرم کشیده شود بدون آنکه در رویداد paint آن نوشته شود و کد آن چگونه است؟

در پنجره immeadiate با چه دستوری مقدار یک متغییر را بدست آوریم (در vb از دستورprint استفاده می شد)

روداد کلیک با ماوس کلیک چه فرقی می کند؟( من فکر می کردم شاید رویداد کلیک هم شامل کلیک ماوس شود و هم شامل کلیک با استفاده از ماوس صفحه کلید و ماوس کلیک شامل کلیک ماوس اما اینطور نبود

قرار است کد زیر با کلیک کردن دکمه یک لیست ایجاد کند و sample item را به آن اضافه کند
ولی این برنامه nlist را شناسایی نمی کند که به آن اندازه دهد و عنصری به آن اضافه کند
نمی دانم چرا ؟(کد در کلاس فرم نوشته شده است) آیا باید به کلاس کد خاصی به آن اضافه شود ؟
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim nlist As ListBox()
nlist.size(200, 300)
nlist.item.add("sampel item")
Me.Controls.Add(nlist)
End Sub

sanam.b
24-03-2007, 19:25
اگر کد در اینجا از نظر پرانتزها مشکل دارد در برنامه این مشکل را ندارد

hamidreza_buddy
25-03-2007, 14:23
با چه دستوراتی می توان تمام عناصر یک listbox را در listbox دیگر کپی کرد؟
برای کپی عناصر listBox از یک حلقه استفاده کن


برای گرافیک روی هر کنترل باید رویداد paint آن فراخوانی شود . آیا میتوان کدی نوشت که با فشار دادن کلیدی شکل خاصی روی فرم کشیده شود بدون آنکه در رویداد paint آن نوشته شود و کد آن چگونه است؟
نه. باید در Paint این کار انجام شود. مگر اینکه یک کنترل به صفحه add کنی. مثلاً از قبل یک کنترل که شکل خاصی می کشد بسازی و در هنگام کلیک آن را add کنی. البته در این صورت باید متد Paint آن کنترل را کدنویسی کنی.

hamidreza_buddy
25-03-2007, 14:39
برای اینکه در p30world کد قرار بدی باید از تگ [ C O D E ] استفاده کنی.
ابتدای کد [ C O D E ] قرار بده (یدون space) و انتهای کد [ / C O D E ] .


قرار است کد زیر با کلیک کردن دکمه یک لیست ایجاد کند و sample item را به آن اضافه کند
ولی این برنامه nlist را شناسایی نمی کند که به آن اندازه دهد و عنصری به آن اضافه کند
نمی دانم چرا ؟(کد در کلاس فرم نوشته شده است) آیا باید به کلاس کد خاصی به آن اضافه شود ؟
نمی دونم مشکل کدت چیه ولی از کدهای Auto Generate خود vs استفاده کن. به این صورت که تو یه صفحّۀ خالی یه listbox بذار و بعد کدهای توی متد InitializeComponent() رو استفاده کن.

sanam.b
26-03-2007, 01:27
من هم می دانم که بایداز حلقه استفاده کنم ولی در داخل حلقه چه باید بنویسم من مقداری را می نویسم شما لطفا بقیه اش را بنویسید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

hamidreza_buddy
26-03-2007, 12:09
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دستورات vb بلد نیستم ولی یه چیزی تو و مایه های بالا: items[i] s

sanam.b
28-03-2007, 00:00
دوباره سلام
در فرم من رویداد closing وجود ندارد آیا زمان مشخصی فعال می شود؟ یا کار مشخصی باید انجام دهد؟

MohammadJavad.T
28-03-2007, 02:48
سلام
اگه با vb.net2005 کار میکنی formclosing دارین
یه مثال

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
با این دکمه close کار نمیکنه

sanam.b
30-03-2007, 02:44
با سلام دوباره از شما دو دوست عزیز متشکرم
جناب fozool.mohammad javad. این کد را باید در چه رویدادی بنویسم؟
یک سوال دیگر
در عناصری مثل listbox,textbox,combo,… می خواهیم چک کنیم که آیا کاربر مقداری را وارد کرده و یا انتخاب کرده است یا نه؟ ( مثلا اگر قرار باشد یک عدد را از textbox بگیرید و آن را از string به عدد تبدیل کنید و کاربر عددی را وارد نکرده باشد بهerror برخورد میکنید همچنین در مورد list ,combo اگر عنصری انتخاب نشده باشد مشکل پیش می آید ) من تابع isdbnull را انتخاب کردم ولی جواب نداد شاید من ساختار آن را بلد نیستم شاید هم راه دیگری دارد ؟ من به msdn دسترسی ندارم لطفا شما من را راهنمایی کنید

MohammadJavad.T
30-03-2007, 03:56
سلام دوست عزیز
اگه میخواهید از رویداد FormClosing استفاده کنید خوب باید توی رویداد FormClosing بنویسید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در عناصری مثل listbox,textbox,combo,… می خواهیم چک کنیم که آیا کاربر مقداری را وارد کرده و یا انتخاب کرده است یا نه؟ ( مثلا اگر قرار باشد یک عدد را از textbox بگیرید و آن را از string به عدد تبدیل کنید و کاربر عددی را وارد نکرده باشد بهerror برخورد میکنید
راهای زیادی هست ولی به نظر من از این استفاده کن و خطاها رو جمع کن

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشی...

sanam.b
01-04-2007, 02:09
دوست عزیز من گفتم رویداد را ندارم

مگر برای انتخاب یک رویداد نباید در میان عناصر ابتدا فرم را انتخاب کرد و سپس از بخش رویدادها رویداد مورد نظر را انتخاب کرد من از این راه استفاده می کنم و رویداد closing مربوط به فرم را ندارم

MohammadJavad.T
01-04-2007, 02:45
سلام
من تو پست قبلیم گفتم شما به جای closing جاش FormClosing دارین که کار همون closing رو میکن از این رویداد استفاده کنید یعنی FormClosing

sanam.b
02-04-2007, 02:26
از شما خیلی ممنونم و دست شما درد نکنه

sanam.b
02-04-2007, 02:30
می خواهم background یک picture box رنگها تصادفی داشته باشد یعنی با هر بار کلیک رنگ آن به صورت تصادفی عوض شود .
وقتی از دو دستور زیر استفاده می کنم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Error زیر نمایش داده می شود
Value of type integer can not be convert to system.drawing.color
شماره رنگها (که integer هستند) را نمی تواند به رنگهای تعریف شده در سیستم تبدیل کند
رنگها در vb.net چه نوعی دارند و من باید چکار کنم؟

sanam.b
03-04-2007, 01:23
ببخشد که زیاد سوال می کنم چون msdn ندارم مجبورم از شما کمک بگیرم و فقط سوالهایی ر ا می نویسم که خودم نتوانم راهی برای آن پیدا کنم.

sanam.b
03-04-2007, 01:28
1- در رویداد mouse down (فرم)می خواهم بدانم که آیا کلید shift نگه داشته شده است یا نه ولی e.shift یا e.key یا سایر دستورات مربوط به صفحه کلید قابل استفاده نیستند من این کار را چگونه باید انجام دهم؟



2-در رویداد key press (فرم) برای باز گرداندن اینکه چه کلیدی فشار داده شده است از دستور e.keychar استفاده می شود
اما در برابر این خط


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
error می دهد

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
من فکر می کنم ساختار دستور را اشتباه نوشته ام چون ساختار دستور را بلد نیستم

sanam.b
03-04-2007, 01:28
در ساختار دستور keys کلیدهای d0 تا d9 و f13 تا f24 همچنین oem1 تا ome8 و ..... تعداد زیادی کلیدهای دیگر قرار دارند مگر کلیدهای تابعی تا f12 نیست پس این کلیدها از کجا آمده اند و اصلا به چه کلیدی فعال می شوند ؟ کلیدهای d0 تا d9 و oem چی هستند؟

کاراکتر سر خط vbcr با کاراکتر خط بعدی vblf چه فرقی با هم دارند؟
در c# با استفاده از متدmath به توابع ریاضی دسترسی داشتیم آیا در vb.net نیز چنین امکانی وجود دارد یا نه ؟

sanam.b
03-04-2007, 01:30
می شود توضیح دهید که چگونه در vb.net می توان از statues bar استفاده کرد و در مورد پراپرتی های آن کمی توضیح دهد؟

MohammadJavad.T
03-04-2007, 23:46
2-در رویداد key press (فرم) برای باز گرداندن اینکه چه کلیدی فشار داده شده است

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

_H2_
04-04-2007, 10:01
می خواهم background یک picture box رنگها تصادفی داشته باشد یعنی با هر بار کلیک رنگ آن به صورت تصادفی عوض شود .
وقتی از دو دستور زیر استفاده می کنم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Error زیر نمایش داده می شود
Value of type integer can not be convert to system.drawing.color
شماره رنگها (که integer هستند) را نمی تواند به رنگهای تعریف شده در سیستم تبدیل کند
رنگها در vb.net چه نوعی دارند و من باید چکار کنم؟

سلام
رنگ ها همه از نوع ساختار System.Drawing.Color هستند و کد مناسب در محیط فریم ورک چیزی شبیه این است.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

که میتوانید محدوده تغیرات را هم مشخص کنید. (این کد برای 24 میلیون رنگ تنظیم شده)

sanam.b
05-04-2007, 21:26
از شما ممنونم

sanam.b
06-04-2007, 15:08
با تشکر از همه
سلام من جواب یکی از سوالاتم رو پیدا کردم گفتم شاید شما هم بخواهید ببینید

((در پنجره immeadiate با چه دستوری مقدار یک متغییر را بدست آوریم (در vb از دستورprint استفاده می شد)))
البته در vb مقدار متغییر ها را از طریق پنجره immeadiate بدست می آوردم اما در vb.net فرق می کنه

اگر در اشکال زدایی یک برنامه دچار مشکل شدید می توانید از پنجره autos استفاده کنید در این پنجره تمام متغییرهای داخل زیر برنامه و همچنین مقدارهای آن را می بینید و اگر از step into استفاده کنید تمام مراحل تغییرات را هم می توانید قدم به قدم ببینید
البته وقتی برنامه در حالت break است این پنجره را می توانی از منویdebug -> windows فعال کنید

_H2_
07-04-2007, 10:22
سلام
فقط یک نکته کوچک: به جای Print میتوانید از ? هم استفاده کنید.

sanam.b
08-04-2007, 01:22
با سلام دوباره
نوبت به بانک اطلاعاتی رسید
من دوتا آموزش گام به گام vb.net دیده ام که در آن بانک اطلاعاتی از قبل آماده بوده یا در access درست شده بود من فکر می کنم که باید در vb.net امکان ایجاد بانک اطلاعاتی وجود داشته باشه اما نمی دانم کجاست؟

1- دریکی از این آموزشها نوشته شده (("برای شروع در toolbox از data-tab یکoleDBDataAdapter برداشته و بروی فرم خود قرارا دهید")) به احتمال قوی اینمال یک ورژن قدیمی است چون من در data tab همچین چیزی را پیدا نکردم
2- ایا دوستانی که در vb.net پایگاه داده کار کرده اند یک کتاب آموزشی خوب در این مورد سراغ دارند که آن را به من معرفی کنند یا لینک آموزشی آن را برای من بگذارند

MohammadJavad.T
09-04-2007, 15:33
دریکی از این آموزشها نوشته شده (("برای شروع در toolbox از data-tab یکoleDBDataAdapter برداشته و بروی فرم خود قرارا دهید")) به احتمال قوی اینمال یک ورژن قدیمی است چون من در data tab همچین چیزی را پیدا نکردم
سلام من data base زیاد کار نکردم
ولی از این مسیر میتونی بیاریش toolbox > choose items>.net framework componets>OdbcDataAdapter

sanam.b
09-04-2007, 22:07
با سلام خدمت استادان محترم (شما به اندازه یک استاد به گردن من حق دارید امیدوارم روزی بتوانم جبران کنم)و از شما ممنونم که به سوالات من پاسخ می دهید
من می خواهم یک برنامه کوچک در vb را با vb.net بازسازی کنم. برنامه این بود یک پنجره explorer بازسازی کنیدکه شامل drivelistbox dirlistbox filelistbox باشد هرگاه درایوی را انتخاب کردی محتویات آن در dirlistbox نشان داده شود و اگر یک درایو را انتخاب کردی محتویات آن در فایل نشان داده شود.ولی من در vb.net عناصر drivelistbox dirlistbox filelistbox پیدا نکردم من باید از چه چیزی استفاده کنم؟

sanam.b
10-04-2007, 00:37
درمورد رنگهای تصادفی باید عرض کنم که من دستور زیر را نوشتم و محدوده رنگها را هم چند بار عوض کردم و آن را برای فرم picturebox و... دیگر هم نوشتم برنامه اجرا می شود اما هیچ تغییر رنگی دیده نمی شود
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

_H2_
10-04-2007, 10:04
سلام


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

حق با شماست! مشکل از پارامتر Alpha است.
از کد زیر استفاده کنید (تست شده)

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



با سلام خدمت استادان محترم (شما به اندازه یک استاد به گردن من حق دارید امیدوارم روزی بتوانم جبران کنم)و از شما ممنونم که به سوالات من پاسخ می دهید
من می خواهم یک برنامه کوچک در vb را با vb.net بازسازی کنم. برنامه این بود یک پنجره explorer بازسازی کنیدکه شامل drivelistbox dirlistbox filelistbox باشد هرگاه درایوی را انتخاب کردی محتویات آن در dirlistbox نشان داده شود و اگر یک درایو را انتخاب کردی محتویات آن در فایل نشان داده شود.ولی من در vb.net عناصر drivelistbox dirlistbox filelistbox پیدا نکردم من باید از چه چیزی استفاده کنم؟

این کنترلرها دیگر استفاده نمیشوند ولی وجود دارند.
Toolbox->All Windows Forms->Right Click->Choose Items
آنها را به صورت تیک نخورده پیدا خواهید کرد، تیک را گذاشته و OK !!!!!!

sanam.b
11-04-2007, 00:42
به من گفتند که این برنامه را با استفاده از tree view می نویسند ولی من نفهمیدم که چگونه داریو و فایل و شاخه را در tree view معرفی می کنندکه با تغیییر مسیر عناصر هم تغییر کنند

sanam.b
15-04-2007, 13:26
دوستان میشه خودتون به جای طراح سوال بگذارید برای یک مربی vb.net چند سوال طرح کنید .من امتحان دارم و می خوام ببینم نمونه سوالات ممکنه چجوری باشه

sanam.b
17-04-2007, 20:17
در یک برنامه یک یوزر کنترل طراحی کرده ام برای اجرای آن چکار باید بکنم ؟ چون وقتی برنامه را اجرا می کنم فرم نمایش داده می شود ؟ راهی برای ارتباط فرم و یوزر کنترل وجود دارد؟

hamidreza_buddy
17-04-2007, 20:28
در یک برنامه یک یوزر کنترل طراحی کرده ام برای اجرای آن چکار باید بکنم ؟ چون وقتی برنامه را اجرا می کنم فرم نمایش داده می شود ؟ راهی برای ارتباط فرم و یوزر کنترل وجود دارد؟

اونو از توی ToolBox بگیر بنداز تو فرمت! وقتی که یه UserControl می سازی ، VS خودش اتوماتیک توی ToolBox قرار می دش.
مثلاً در زیر یه UserControl1 خودش اتوماتیک اضافه شده.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

sanam.b
20-04-2007, 13:45
دوباره در یک برنامه دستورات زیر را نوشتم که یک فرم ایجاد می کنه و روی آن یک text و button قرار میده

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بعد برنامه زیر را برای button نوشتم اما سیستم error زیر را می دهد من باید چکار کنم . base این دکمه چیست؟

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

sanam.b
20-04-2007, 16:02
من می خواهم یکی از برنامه را که در vb.net نوشته ام را اجرایی کنم گفتند که از setup wizard باید استفاده کنم
مراحل setup wizard
از منو file گزینه new project انتخاب می کنیم و درآن گزینه setup wizard را انتخاب می کنیم
نام و....... را مشخص می کنیم و.......
به یک پنجره می رسم که در آن چند پوشه به اسمهای application folder و users desktop و users program menu است من در همینجا می مانم بعد چکار کنم؟

_H2_
21-04-2007, 11:15
[quote=sanam.b;1022133]بعد برنامه زیر را برای button نوشتم اما سیستم error زیر را می دهد من باید چکار کنم . base این دکمه چیست؟

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

anvar.net
25-04-2007, 01:07
جناب Sanam.b
براي اينكه بفهميم آيا يك جعبه متن مقداري دارد يا نه از 3 روش استفاده ميكنيم :
روش 1 :
اگر با كليك دكمه اي اين كار انجام شود
If TextBox1.Text = "" Then
Msgbox("Null")
Else
MsgBox("Thanks")


End If
روش 2 :
مقيد كردن يك كنترل به پذيرفتن مقادير خاص است، مثلا اگر جعبه متن فقط بايد مقادير رشته اي بگيرد در رويداد
KeyPress جعبه متن كد زير را وارد ميكنيم
Dim keyasci As Integer = Asc(e.KeyChar)
Select Case keyasci
Case Asc("0") To Asc("9")
e.Handled = True
End Select

در جعبه متن بالا اعداد وارد نميشوند و فقط حروف را تايپ ميكند. همين كار را براي حروف كوچك يا بزرگ نيز ميتوان انجام داد:
Case Asc("A") To Asc("Z")
Case Asc("a") To Asc("z")

روش 3 :
در اين روش كه كمي با كلاس تر است از كنترل ErrorProvider استفاده ميكينم. اين كنترل در جعبه ايزار VB.NET موجود است.
بعد در رويداد Validating جعبه متن كد زير را وارد ميكنيم :
If Not IsNumeric(txtNumberValue.Text) Then
ErrorProvider1.SetError(txtNumberValue, "Not a numeric value")


Else
ErrorProvider1.SetError(txtNumberValue,"")
End If


براي اينكه بفهميم آيا ايتمهاي يك Listbox انتخاب شده اند يا نه بصورت زير عمل ميكنيم:
مثلا با كليك دكمه اي :


If ListBox1.SelectedItems.Count <= 0 Then
MsgBox("Null")
Else
'do any code
End If

sanam.b
25-04-2007, 01:20
اول
سلام به همگی و دستتون درد نکنه
دوم
کسی در vb.net بانک اطلاعاتی کار کرده؟ من با ذخیره وجستجو در آن مشکل دارم . آیا می توانیدکد آن را برایم بگذارید(مثلا کد ذخیره کردن و جستجو در یک جدول که شامل دو فیلد باشد)

sanam.b
25-04-2007, 08:45
دو باره سلام من یک مشکل دیگر هم دارم
پنجره راهنما چیست و چگونه از آن استفاده می کنند؟ ( برای وارد کردن مقادیر کد شخص از پنجره راهنما استفاده کنید )

anvar.net
25-04-2007, 14:51
نمي فهمم منظور شما از پنجره راهنما چیست. اگر واضح تر مطرح كنيد شايد بتونم كمكتون كنم.
در مورد بانك اطلاعاتي هم يه چيزهايي بعدا برات مينويسم.

anvar.net
25-04-2007, 19:17
روشهاي زيادي براي انجام اين كار وجود دارد : يكي از روشها بصورت زير است
براي ذخيره كردن اطلاعات پايگاه داده (افزودن ايتمهاي جديد) به صورت عمل ميكنيم.
فرض ميكنيم كه شما اطلاعات يك جدول (Students) با 2 فيلد(FirstName و LastName) را در يك datagrid با نام datagrid1 نمايش ميدهيد (با اين فرض كه از اشياء اتصال، آداپتور داده و ديتاست OleDb استفاده ميكنيد).ما در فرم 2 جعبه متن به نامهاي txtFirstName و txtLastName داريم كه اطلاعات موجود در اين 2 جعبه متن را در پايگاه داده ثبت و ذخيره ميكنيم.
براي پر كردن dataset بصورت زير عمل ميكنيم

Imports System.Data.OleDb
'*****
Private connect_string As String
Private Const SELECT_STRING As String = _
"SELECT * FROM Students"

Private da As OleDb.OleDbDataAdapter
Private m_DataSet As DataSet
'******
Private Sub Form1_Load (…….)

Dim db_name As String = Application.StartupPath
db_name = db_name.Substring(0, db_name.LastIndexOf("\")) & "\Students.mdb"
connect_string = _
"Data Source=" & db_name & ";" & _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Persist Security Info=False"

' Create the SqlDataAdapter.
Dim data_adapter As New OleDbDataAdapter(SELECT_STRING, CONNECT_STRING)

' Map "Table" to "Students."
data_adapter.TableMappings.Add("Table", "Students")

' Fill the DataSet.
m_DataSet = New DataSet
data_adapter.Fill(m_DataSet)

' Bind the DataGrid control to the Students DataTable.
DataGrid1.SetDataBinding(m_DataSet, "Students")
End Sub
يك دكمه با نام btnsave به فرم اضافه كرده و كد زير را در آن مينويسيم.


Private Sub btnsave _Click (………)

Dim dt_students As DataTable = m_DataSet.Tables("Students")
Dim new_row As DataRow = dt_students.NewRow()




new_row.Item("FirstName") = txtFirstName.Text


new_row.Item("LastName") = txtLastName.Text




Try

txtFirstName.Text = ""


txtLastName.Text = ""


dt_students.Rows.Add(new_row)

Catch ex As Exception

MessageBox.Show("Error creating new Student." & vbCrLf & ex.Message)


End Try


End Sub
در رويداد بستن فرم ( Closing ) كد زير را وارد ميكنيم.


Private Sub Form1_Closing (…….)

If m_DataSet.HasChanges() Then
' Create the DataAdapter.
Dim data_adapter As New OleDbDataAdapter(SELECT_STRING, connect_string)

' Map Table to Students.
data_adapter.TableMappings.Add("Table", "Students")

' Make the CommandBuilder generate the insert, update, and delete commands.
Dim command_builder As New OleDbCommandBuilder(data_adapter)

' Save the changes.
data_adapter.Update(m_DataSet)

End If
End Sub

anvar.net
25-04-2007, 22:45
كار با فايلها و دايركتوري
در VB.NET براي كار با فايلها و دايركتوريها دو كلاس مجزاي File و Directory تعبيه شده است كه چندان مشكل نيستند.


*********

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
براي گرفتن درايو هاي سيستم (محلي و مجازي) و نمايش آنها در كنترل Treeview بصورت زير عمل ميكنيم.
يك روال بنام Loadtreeview ايجاد كرده و در load فرم اصلي آنرا فرا مي خوانيم :

Imports System.IO
Private Const mydrives As String = " mydrives"
'*******
Private Sub frmmain_Load(……..)
Loadtreeview()
End Sub
'*******
Private Sub Loadtreeview()
Dim DriveStr As String
Treeview1.Nodes.Clear()
For Each DriveStr In Directory.GetLogicalDrives()
With Treeview1.Nodes.Add(DriveStr)
.Nodes.Add(mydrives)
End With
Next
End Sub
اگر برنامه را با همين كدها اجرا كني متوجه ميشوي كه mydrives اين وسط چكار ميكند.تا اينجا فقط درايوهاي سيستم شناسايي و ليست شدند. حال بايد بتوانيم فولدرهاي موجود در درايوها و فايلهاي موجود در پوشه ها يا درايوها را به treeview اضافه كنيم.كنترل Treeview داراي رويدادي بنام BeforeExpand است كه قبل از اينكه يك گره باز شود اتفاق مي افتد.ما اضافه كردن فولدرها و فايلها را در اين رويداد مينويسيم تا به هنگام باز شدن گره ها فايلها و فولدرها در آن مشخص باشند.


Private Sub TreeView1_BeforeExpand(.....)
Try
e.Node.Nodes.Clear()
AddFolders(e.Node)
AddFiles(e.Node)

Catch exp As Exception
MessageBox.Show(exp.ToString, Me.Text)
End Try
End Sub
'**********
Private Sub AddFolders(ByVal nod As TreeNode)
Dim strPath As String = nod.FullPath
Dim strDir As String
With nod
For Each strDir In Directory.GetDirectories(strPath)
With nod.Nodes.Add(Path.GetFileName(strDir))
.Tag = ItemType.Directory
.Nodes.Add(DUMMY)
End With
Next
End With
End Sub
'*********
Private Sub AddFiles(ByVal nod As TreeNode)
Dim strPath As String = nod.FullPath
Dim strFile As String
With nod
For Each strFile In Directory.GetFiles(strPath)
With nod.Nodes.Add(Path.GetFileName(strFile))
.Tag = ItemType.File
End With
Next
End With
End Sub

البته كارهاي زيادي ميشه با اين ليست فايلها كرد.مثلا جزئيات فايلها را در listview ببينيم و يا خصوصيات ريز فايلها را ليست كنيم و كارهاي ديگه.

anvar.net
29-04-2007, 00:44
تفاوت دو فايل اجرايي از برنامه هاي نوشته شده در VB.NET كه در داخل پوشه هاي Bin و Obj\Release قرار دارند چيه؟
بعدش : كداميك از اين دو فايل نصيب كاربر ميشود؟

_H2_
29-04-2007, 09:52
سلام
فایلهای پوشه obj را بهتر است استفاده نکنید، پوشه obj شامل کامپایلهای بخش های داخلی برنامه است، مثلاَ کامپایل تک تک کلاسس ها را خواهید یافت و نیز کامپایل کلی.

در کل بهتر است پروژه را در حالت Release کامپایل کنید و فایل داخل Bin\Release را تحویل کاربر بدهبد.

searchman
12-07-2007, 10:38
دوستان عزیز سلام
چند تا سوال درمورد datagrid دارم. اگه لطف کنید جواب بدید ممنون می شم
1. باچه رویدادی می تونم نام cloumn های موجود در grid رو عوض کنم.
2. چه جوری می تونم با کلیک روی یک row توی grid فیلد های اون رو توی چند تا textbox بریزم.
3. فقط یک cell از گرید رو آپدیت یا insert کنم. یعنی از یک cell بتونم فیلد table رو پر کنم
کلا اگه اطلاعاتی در مورد grid برام بزارید ممنون می شم

_H2_
14-07-2007, 10:32
سلام
مثل سایتهای دیگر اینجا هم بهتر بود تاپیک جدیدی بدهید!!!!
1- متوجه نشدم! گنگ است!
2- با کمک خصوصیت SelectedRows !
3- بسته گی به ساختار جدول و PrimaryKey آن و وجود فیلدهای اجباری دارد، اگر در جدول PrimaryKey یا فیلد اجباری (غیر null) دارید، باید حتماً پر شوند یا اینکه نداشته باشید!!!
که از نظر اصول برنامه نویسی وجود PrimaryKey ضروریست!