Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > ดึงรูปภาพจากโฟล์เดอร์ขึ้นมาโชว์ทั้งหมด กดปุ่ม เพื่อเลื่อน เดินหน้า ถอยหลังได้....



 

ดึงรูปภาพจากโฟล์เดอร์ขึ้นมาโชว์ทั้งหมด กดปุ่ม เพื่อเลื่อน เดินหน้า ถอยหลังได้....

 



Topic : 062988

Guest




ต้องการเขียนโปรแกรม... ให้โชว์รูปภาพทั้งหมดในโฟล์เดอร์ ขึ้นมาโชว์ สามารถกดปุ่ม Next ปุ่ม Previous ได้ค่ะ...
Path File คือ.. D:\Pictures ซึ่งใน โฟลเดอร์ Pictures จะมี โฟลเดอร์ย่อยๆๆ เก็บเปนรหัสลูกค้า เช่น 54-05-001 ซึ่งโฟลเดอร์รหัสลุกค้าแต่ละโฟลเดอร์ก้จะเก้บรูปที่ถ่ายไว้
ต้องการ........ คลิกดาต้ากริดวิว รหัสลูกค้านั้นๆๆ แร้วก้จะไปดึง รูปภาพ ทุกรูป ในโฟลเดอร์รหัสลูกค้าขึ้นมาโชว์ ช่วยด้วยๆๆๆๆๆๆๆๆๆๆค่ะ.... ทำไม่ได้จิงๆๆๆๆๆๆๆ พี่เทพๆๆ ช่วยหน่อยค่ะ ขอบคุนค่ะ... ^^



Tag : .NET, Ms Access, VBScript, Crystal Report, Win (Windows App), VB.NET







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-07-11 10:18:41 By : SaiiNam View : 10980 Reply : 27
 

 

No. 1



โพสกระทู้ ( 437 )
บทความ ( 0 )



สถานะออฟไลน์


ผมเคยตอบไว้ในกระทู้นี้แล้วนิครับ https://www.thaicreate.com/dotnet/forum/062706.html ติดตรงไหนหรอครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-11 11:06:59 By : kaimuk
 


 

No. 2

Guest


ตอบความคิดเห็นที่ : 1 เขียนโดย : kaimuk เมื่อวันที่ 2011-07-11 11:06:59
รายละเอียดของการตอบ ::
...อันนั้นมันยังไม่ตรงคอนเซปที่พี่เค้าต้องการอ่ะค่ะ...

ติดตรงที่.. ชื่อโฟล์เดอร์ที่เก็บรูปภาพย่อยๆๆ เปนชื่อรหัสลูกค้า ซึ่งอย่ในดาต้ากริดวิว ตอนที่เราจะคลิกกริดวิวรหัสลุกค้า ให้มันโหลด รูปภาพทั้งหมดในโฟลเดอร์ย่อยๆๆ ขึ้นมาโชว์ที่ Picturebox ไม่ร้ว่าจะเขียนยังไงอ่ะค่ะ.. เริ่มไม่ถูกเรย .. เส้าใจจัง..

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-11 16:03:36 By : สายน้ำ
 

 

No. 3



โพสกระทู้ ( 437 )
บทความ ( 0 )



สถานะออฟไลน์


ก็เพิ่มเิติมนิดหน่อยเองนี้ครับ ที่ Gridview ตอนเราเลิกก็แค่เอา String มาเชื่อมกันไม่น่ายากนิครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-11 16:17:38 By : kaimuk
 


 

No. 4

Guest


ตอบความคิดเห็นที่ : 3 เขียนโดย : kaimuk เมื่อวันที่ 2011-07-11 16:17:38
รายละเอียดของการตอบ ::
... มันขึ้นเปิดไฟล์ไม่ได้อ่ะค่ะ...
ใช้ Trimer ทำงาน ตอนที่คลิกกริดวิวอ่ะค่ะ
ต่อString แบบนี้ถูกมั้ยคะ รบกวนพี่... ช่วยดูให้หน่อยค่ะ ใช้ Button ในการคลิกเลื่อนรูปค่ะ.. ไม่รุ้ว่าถูกหรือป่าว

Code (VB.NET)
    Dim IniFile As New Clini(App_Path() & "ConF.ini")
    Dim StrFile As String
    Dim pictures() As String
    Dim picture_number As Integer = 0 '--เริ่มรูปแรก
    Dim RootDirectory As String
    Private Sub frmSlideShow_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
        Connstring = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source="
        StrFile = IniFile.GetString("Database", "Server", "Error File")
        Connstring = Connstring & StrFile
        Connstring = Connstring & "Persist Security Info = False"
        Cn = New OleDbConnection(Connstring)
        Cn.Open()
        RootDirectory = IniFile.GetString("Directory", "Root", "Error File")

    End Sub

  Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        pictures = System.IO.Directory.GetFiles("D:\Pictures\'" & txtCode.Text & "'") '--พาธไฟล์
        Picturebox1.Image = System.Drawing.Image.FromFile(pictures(picture_number))
    End Sub

   Private Sub DataGridView1_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseClick
        Timer1.Start() '--เริ่มทำงาน
    End Sub

 '--<<Previous
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        picture_number = (picture_number + 1) Mod pictures.Length
    End Sub

    '--Next >>
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        picture_number = (picture_number + 1) Mod pictures.Length
    End Sub


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-12 11:24:08 By : สายน้ำ........
 


 

No. 5



โพสกระทู้ ( 437 )
บทความ ( 0 )



สถานะออฟไลน์


txtCode.Text คืออะไรครับ แล้วการกด CellMouseClick ที่ Datagridviews ก็ไม่เห็นมีการส่งค่าไปที่ txtCode.Text

การใช้ Timer ก็ดูไม่เกิดประโยชน์ด้วยครับแถมเป็นการทรมาน ทรัพยากรเครื่องด้วย

เอา

pictures = System.IO.Directory.GetFiles("D:\Pictures\'" & txtCode.Text & "'") '--พาธไฟล์
Picturebox1.Image = System.Drawing.Image.FromFile(pictures(picture_number))

ใส่ไว้ที่ CellMouseClick เลยก็ได้ครับ

แล้วที่ Button_Click
ให้เพิ่มเขียนประมาณนี้ (ถ้าเอาตามโคลงเดิมของ จขกท.)

picture_number = (picture_number + 1) Mod pictures.Length
Picturebox1.Image = System.Drawing.Image.FromFile(pictures(picture_number))

แล้วเอา Timer ออกไป

***ค่า txtCode.Text คืออะไรครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-12 11:47:58 By : kaimuk
 


 

No. 6

Guest


ตอบความคิดเห็นที่ : 5 เขียนโดย : kaimuk เมื่อวันที่ 2011-07-12 11:47:58
รายละเอียดของการตอบ ::
... ค่า txtCode.Text คือ ช่องรหัสลูกค้า ซึ่งถูกโยนมาจากกริดวิวค่ะ.. มันเปนชื่อเดียวกับโฟล์เดอร์รูปภาพของแต่ละคนค่ะ

เพิ่มนิดนึงนะคะ.. อยากได้ช่อง ที่แสดง จำนวนรูปภาพทั้งหมด แร้วก้ ช่องรูปที่ จะต้องเขียนยังไง แร้วเอาไปไว้ตรงไหนคะ..
ช่วยหน่อยนะคะ... พี่น่ารักกกกกกจัง ^^

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-12 13:39:03 By : สายน้ำ
 


 

No. 7



โพสกระทู้ ( 437 )
บทความ ( 0 )



สถานะออฟไลน์


ผมสร้างตัวอย่างที่คิดว่าตรงที่สุดสำหรับ จขกท. นะครับติดตรงไหนหรือไม่เข้าใจถามได้นะครับ จาก Code ของ จขกท. ดูว่าพื้นฐานยังไม่ค่อยดีเท่าไหล่ ดู Code แล้วมองภาพตามและก็ทำความเข้าใจนะครับ จะได้เป็นการฝึกฝนไปในตัว

Code (VB.NET)
Public Class Form1
    Dim ListFile() As String
    Dim _Index As Integer = 0
    Dim _Main As String = Application.StartupPath & "\Annimal\"

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        DataGridView1.Rows.Add("สัตว์บก")
        DataGridView1.Rows.Add("สัตว์น้ำ")
        DataGridView1.Rows.Add("สัตว์ปีก")

    End Sub

    Private Sub DataGridView1_CellMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseDoubleClick
        _Index = 0
        ListFile = Directory.GetFiles(_Main & DataGridView1.Rows(e.RowIndex).Cells(0).Value, "*.JPG")
        Label1.Text = "จำนวนภาพ : " & ListFile.Length
        Label2.Text = "ภาพที่ : " & _Index + 1
        If ListFile.Length <> 0 Then
            PictureBox1.Image = Image.FromFile(ListFile(_Index))
            Button1.Enabled = False
            Button2.Enabled = IIf(ListFile.Length = 1, False, True)
        Else
        PictureBox1.Image = Nothing
        Button1.Enabled = False
        Button2.Enabled = False
        End If
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        _Index -= 1
        Label2.Text = "ภาพที่ : " & _Index + 1
        PictureBox1.Image = Image.FromFile(ListFile(_Index))
        Button2.Enabled = True
        If _Index = 0 Then Button1.Enabled = False

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        _Index += 1
        Label2.Text = "ภาพที่ : " & _Index + 1
        PictureBox1.Image = Image.FromFile(ListFile(_Index))
        Button1.Enabled = True
        If _Index = ListFile.Length - 1 Then Button2.Enabled = False
    End Sub
End Class

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-12 14:33:15 By : kaimuk
 


 

No. 8

Guest


ตอบความคิดเห็นที่ : 7 เขียนโดย : kaimuk เมื่อวันที่ 2011-07-12 14:33:15
รายละเอียดของการตอบ ::
... ลองทำแร้วค่ะ... มัน Error ตรงบรรทัดนี้ค่ะ..
ListFile = Directory.GetFiles(_Main & DataGridView1.Rows(e.RowIndex).Cells(0).Value, "*.JPG")
ขึ้นว่า.. The given path's format is not supported.

Dim _Main As String = Application.StartupPath & "\Annimal\" ตรงนี้คืออะไรคะ...


งง...ไปหมดแร้ว ความรุ้น้อยนิสอ่ะค่ะ.. ยากจัง

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-12 16:33:46 By : สายน้ำ
 


 

No. 9



โพสกระทู้ ( 437 )
บทความ ( 0 )



สถานะออฟไลน์


_Main = Main Path น่ะครับ

ดังนั้น

Code (VB.NET)
Dim _Main As String = Application.StartupPath & "\Annimal\"


จะเท่ากับ ที่อยู่ของ EXE File + \Annimal\ ไม่ต้องใส่ใจตรงนี้ก็ได้ครับ จขกท. เป็นแบบของตัวเองก็ได้ครับ

เช่น ถ้า Main Path ของ จขกท. เป็น C:\Customer\ ก็ใส่แบบนี้แทนครับ

Code (VB.NET)
Dim _Main As String = "C:\Customer\ "

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-13 08:30:59 By : kaimuk
 


 

No. 10

Guest


ตอบความคิดเห็นที่ : 9 เขียนโดย : kaimuk เมื่อวันที่ 2011-07-13 08:30:59
รายละเอียดของการตอบ ::
มัน Error ตรงบรรทัดนี้ค่ะ..
ListFile = Directory.GetFiles(_Main & DataGridView1.Rows(e.RowIndex).Cells(0).Value, "*.JPG")
ขึ้นว่า.. The given path's format is not supported.

คือว่า..... กริดวิวเซลแรกเปน รหัสลูกค้าค่ะ.. เช่น 003 ซึ่ง 003 จะเป็นชื่อเดียวกัลกับโฟลเดอร์ที่ใช้เก้บรูปภาพหลายๆรูปที่ไปถ่ายสถานที่ของลูกค้ามาค่ะ

รบกวนนนนนหน่อยนะคร๊... ความรุ้น้อยนิสอ่ะ.. *-*

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-13 09:07:57 By : สายน้ำ..
 


 

No. 11

Guest


ตอบความคิดเห็นที่ : 10 เขียนโดย : สายน้ำ.. เมื่อวันที่ 2011-07-13 09:07:57
รายละเอียดของการตอบ ::
เพิ่มนิสนึงค่ะ... ต้องการเชคด้วยค่ะ ว่าเซลแรกที่เราคลิกที่กริดวิว ถ้ามีชื่อโฟลเดอร์ แต่ข้างในโฟลเดอร์ ไม่มีรูปภาพเรย จะทำยังไงดีคะ??

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-13 09:12:39 By : สายน้ำ
 


 

No. 12



โพสกระทู้ ( 437 )
บทความ ( 0 )



สถานะออฟไลน์


ขอ Path เต็มๆ ของ Folder 003 ด้วย เพราะ Error ฟ้องว่า Path ผิดน่ะครับ

Code ที่ให้ไปทำการตรวจสอบอยู่แล้วครับว่ามีไฟล์หรือไม่ ถ้าไม่มีจะไม่มีการแสดงรูป ครับ พร้อมกับปุ่มทั้ง 2 ปุ่มจะกดไม่ได้


ประวัติการแก้ไข
2011-07-13 09:27:11
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-13 09:26:10 By : kaimuk
 


 

No. 13

Guest


ตอบความคิดเห็นที่ : 12 เขียนโดย : kaimuk เมื่อวันที่ 2011-07-13 09:26:10
รายละเอียดของการตอบ ::
พาธ คือ.. D:\Pictures\003 ซื่ง 003 คือ กริดวิว เซลแรก มันจะเปนชื่อเดียวกัลกับโฟลเดอร์ที่ใช้เก้บรูปภาพค่ะ
ให้โชว์รูปภาพเฉพาะ .JPG
++++++++ขอบคุนพี่มากค่ะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-13 10:14:30 By : สายน้ำ..
 


 

No. 14

Guest


ตอบความคิดเห็นที่ : 13 เขียนโดย : สายน้ำ.. เมื่อวันที่ 2011-07-13 10:14:30
รายละเอียดของการตอบ ::
พี่คะ.. มีพี่คนนึงให้โค๊ตการอ่านไฟล์มา เค้าบอกให้ไปอแด๊ปเอา..

Public Class Form1

Inherits System.Windows.Forms.Form

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim Fso As New Scripting.FileSystemObject
Dim FD As Scripting.Folder
Dim File As Scripting.File

FD = Fso.GetFolder("D:\Pictures\003\") '--ตรงนี้ 003 จะเปนกริดวิวเซลแรก ชื่อเดียวกับโฟลเดอร์ที่ใช้เก้บภาพย่อยๆๆ ถ้ามีโฟลเดอร์แต่ไม่มีรุป ก้ให้แจ้งเมสเสส หรือ ถ้าไม่มีโฟลเดอร์ก้ให้เชค

TxtFile.Text = "" '--ตรงนี้เค้าเขียนจำลองการอ่านไฟล์มาให้ดูน่ะค่ะ
For Each File In FD.Files
TxtFile.Text = TxtFile.Text & File.Name & vbNewLine '--เค้าบอกว่า ให้ เอาไฟล์ที่อ่านได้ มาเช้คเอาเฉพาะ .jpg แร้วเอาไปเก้บในตัวแปลอาเรย์ แร้วเอา ในอาเรย์ไปโชว์ Picturebox โชว์รุปแรก แร้วก้เลื่อนรูปถัดไป เดินหน้า ถอยหลังได้
Next File
FD = Nothing
End Sub
End Class

พี่ช่วยเขียนให้ดูหน่อยจะได้มั้ยคะ.. เอาจากโค๊ตนี้อ่ะค่ะ เกรงใจ+ เอือมตัวเองจังเรย เส้าใจจัง..+

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-13 10:32:50 By : คนเดิมมมมมม..
 


 

No. 15



โพสกระทู้ ( 437 )
บทความ ( 0 )



สถานะออฟไลน์


ก็แทบจะไม่ต่างเลยนะครับกับ Code ชุดบน ถ้า จขกท. พอจะมีพื้นมาบ้างจริงๆ น่าจะดูรู้เลยว่าแทบจะไม่แตกต่างกันเลย ที่นี้ต้องมา Focus ว่า จขกท. มีความรู้ในการเขียนโปรแกรมมากขนาดไหน แล้วจะเอา Code ไปทำอะไร การบ้าน หรือ งานที่ต้องส่ง

จขกท. ทดลองเปลี่ยน Code บรรทัดที่ 4 (ของ ความเห็นที่ 7) เป็น

Code (VB.NET)
Dim _Main As String = "D:\Pictures\"


แล้วลอง Run ใหม่ครับ ดูว่าทำงานได้หรือไม่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-13 11:38:43 By : kaimuk
 


 

No. 16

Guest


ตอบความคิดเห็นที่ : 15 เขียนโดย : kaimuk เมื่อวันที่ 2011-07-13 11:38:43
รายละเอียดของการตอบ ::
Code (VB.NET)
    Dim Cn As OleDbConnection
    Dim Cm As OleDbCommand
    Dim dr As OleDbDataReader
    Dim dt As DataTable
    Dim IniFile As New Clini(App_Path() & "ConF.ini")
    Dim StrFile As String
    Dim RootDirectory As String

 Private Sub frmSlideShow_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Connstring = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source="
        StrFile = IniFile.GetString("Database", "Server", "Error File")
        Connstring = Connstring & StrFile
        Connstring = Connstring & "Persist Security Info = False"
        Cn = New OleDbConnection(Connstring)
        Cn.Open()
        RootDirectory = IniFile.GetString("Directory", "Root", "Error File")
.End Sub


ลองเปลี่ยนแร้วค่ะ มันก้ Error ตรง
ListFile = Directory.GetFiles(_Main & DataGridView1.Rows(e.RowIndex).Cells(0).Value, "*.JPG") >> เหมือนเดิมเรย ฟ้อง Path ผิด
คือ.... เก้บไว้ใน D:\Visual Studio 2008\Projects\ProjectShowPicture\ProjectShowPicture\bin\Debug
ตรงConf จะเก้บ
[Database]
server=D:\Visual Studio 2008\Projects\ProjectShowPicture\Datapics.mdb;
[Directory]
Root = D:\Pictures
ปล.. มันเปนงานที่มอบหมายให้ทำให้เสดค่ะ มอบมาหลายวันแร้ว ยังงมอย่เรย ไม่มีผลงาน ไม่ผ่าน..น่ะค่ะ

[

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-13 12:00:54 By : คนเดิม
 


 

No. 17



โพสกระทู้ ( 437 )
บทความ ( 0 )



สถานะออฟไลน์


ลบกวน จขกท. แปะ Code ทั้งหมด ของ Class frmSlideShow ในตอนนี้ด้วยครับจะได้ไล่ได้ถูกว่าปัญหาเกิดจากอะไร ลบกวนด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-13 13:27:04 By : kaimuk
 


 

No. 18

Guest


ตอบความคิดเห็นที่ : 17 เขียนโดย : kaimuk เมื่อวันที่ 2011-07-13 13:27:04
รายละเอียดของการตอบ ::
โค๊ตทั้งหมดของฟอร์มนี้ค่ะ...
- ฟอร์มโหลดมา จะโหลดโซนของลูกค้าขึ้นมา ให้เลือก
- มี Radiobutton ให้เลือก ตามประเภทสินค้า กับ ทุกประเภท คลิก ปุ่มค้นหา จะโหลดข้อมูล มาโชว์กริดวิว
- คลิกที่กริดวิว จะดึง ข้อมูลไปโชว์เทกบ้อกช่องต่างๆ แร้วก้ เซลแรกเปนรหัสลูกค้า ซึ่งจะเปนชื่อเด่วกับโฟลเดอร์ที่ใช้เก้บรูปภาพต่างๆของแต่ละคนค่ะ

Code (VB.NET)
Imports System.Windows.Forms
Imports System.Data
Imports System.Data.OleDb
Imports System.IO
Public Class frmSlideShow
    Dim Cn As OleDbConnection
    Dim Cm As OleDbCommand
    Dim dr As OleDbDataReader
    Dim dt As DataTable
    Dim IniFile As New Clini(App_Path() & "ConF.ini")
    Dim StrFile As String
    Dim RootDirectory As String
    Dim ListFile() As String
    Dim _Index As Integer
    Dim _Main As String = Application.StartupPath & "D:\Pictures\"

       Private Sub frmSlideShow_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Connstring = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source="
        StrFile = IniFile.GetString("Database", "Server", "Error File")
        Connstring = Connstring & StrFile
        Connstring = Connstring & "Persist Security Info = False"
        Cn = New OleDbConnection(Connstring)
        Cn.Open()
        RootDirectory = IniFile.GetString("Directory", "Root", "Error File")

        Dim str As String = ""
        str = "SELECT * FROM TBZONE"
        Cm = New OleDbCommand(str, Cn)

        dr = Cm.ExecuteReader
        dr.Read()
        dt = New DataTable
        dt.Load(dr)
        With ComboBox1
            .DisplayMember = "ZoneName"
            .ValueMember = "ZoneCode"
            .DataSource = dt
        End With

        Dim str1 As String = ""
        str1 = "SELECT * FROM TBTypeProduct"
        Cm = New OleDbCommand(str1, Cn)

        dr = Cm.ExecuteReader
        dr.Read()
        dt = New DataTable
        dt.Load(dr)
        With ComboBox2
            .DisplayMember = "TypeName"
            .ValueMember = "TypeCode"
            .DataSource = dt
        End With

    End Sub
    Private Sub GridviewList()
        With DataGridView1
            If .RowCount > 0 Then
                .Columns(0).HeaderText = "รหัสลูกค้า"
                .Columns(1).HeaderText = "รหัสลูกค้า"
                .Columns(2).HeaderText = "ชื่อลูกค้า"
                .Columns(0).Width = 130
                .Columns(1).Width = 100
            End If
        End With
    End Sub

    '--คลิก กริดวิว ลูกค้า
    Private Sub DataGridView1_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseClick
        _Index = 0
        ListFile = Directory.GetFiles(_Main & DataGridView1.Rows(e.RowIndex).Cells(0).Value, "*.JPG") '--Error บรรทัดนี้ค่ะ

        Label3.Text = "จำนวนภาพ : " & ListFile.Length
        Label4.Text = "ภาพที่ : " & _Index + 1
        If ListFile.Length <> 0 Then
            Picturebox1.Image = Image.FromFile(ListFile(_Index))
            Button1.Enabled = False
            Button2.Enabled = IIf(ListFile.Length = 1, False, True)
        Else
            Picturebox1.Image = Nothing
            Button1.Enabled = False
            Button2.Enabled = False
        End If

        If e.RowIndex < 0 Then
            Exit Sub
        End If
        With DataGridView1.Rows.Item(e.RowIndex)
            txtCode.Text = .Cells(0).Value
            txtName1.Text = .Cells(2).Value

            Dim strSearch As String = ""
            strSearch = "select * from QryCustomer where CODE = '" & txtCode.Text & "'" '--รหัสลูกค้า
            Cm = New OleDbCommand(strSearch, Cn)
            dr = Cm.ExecuteReader
            If dr.HasRows Then
                Do While dr.Read()
                    If dr("NAME2") Is DBNull.Value Then
                        txtName2.Text = "-"
                    Else
                        txtName2.Text = dr("NAME2")
                    End If

                    If dr("NameGroup") Is DBNull.Value Then
                        txtTypegroup.Text = "-"
                    Else
                        txtTypegroup.Text = dr("NameGroup")
                    End If

                    If dr("Address") Is DBNull.Value Then
                        txtAddress.Text = "-"
                    Else
                        txtAddress.Text = dr("Address")
                    End If

                    If dr("Road") Is DBNull.Value Then
                        txtRoad.Text = "-"
                    Else
                        txtRoad.Text = dr("Road")
                    End If

                    If dr("Tom") Is DBNull.Value Then
                        txtTum.Text = "-"
                    Else
                        txtTum.Text = dr("Tom")
                    End If

                    If dr("Amp") Is DBNull.Value Then
                        txtAum.Text = "-"
                    Else
                        txtAum.Text = dr("Amp")
                    End If

                    If dr("City") Is DBNull.Value Then
                        txtCity.Text = "-"
                    Else
                        txtCity.Text = dr("City")
                    End If

                    If dr("Tel") Is DBNull.Value Then
                        txtTel.Text = "-"
                    Else
                        txtTel.Text = dr("Tel")
                    End If

                    If dr("DateLast") Is DBNull.Value Then
                        txtDateLast.Text = "-"
                    Else
                        txtDateLast.Text = dr("DateLast")
                    End If

                    If dr("SN") Is DBNull.Value Then
                        txtSN.Text = "-"
                    Else

                        txtSN.Text = dr("SN")
                    End If

                    If dr("GP") Is DBNull.Value Then
                        txtGP.Text = "-"
                    Else
                        txtGP.Text = dr("GP")
                    End If

                    If dr("Rent") Is DBNull.Value Then
                        txtRent.Text = "-"
                    Else
                        txtRent.Text = dr("Rent")
                    End If

                    If dr("At") Is DBNull.Value Then
                        txtAt.Text = "-"
                    Else
                        txtAt.Text = dr("At")
                    End If

                    If dr("DateAt") Is DBNull.Value Then
                        txtDateAt.Text = "-"
                    Else
                        txtDateAt.Text = dr("DateAt")
                    End If

                    If dr("ZoneName") Is DBNull.Value Then
                        txtZone.Text = "-"
                    Else
                        txtZone.Text = dr("ZoneName")
                    End If

                    If dr("TypeName") Is DBNull.Value Then
                        txtTypeName.Text = "-"
                    Else
                        txtTypeName.Text = dr("TypeName")
                    End If
                Loop
            Else
                MsgBox("ไม่พบข้อมูล")
            End If

        End With

    End Sub

    '--ปุ่มค้นหา
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim strSearch As String = ""

        If RadioButton2.Checked = True Then '--ตามประเภทสินค้า
            strSearch = " SELECT CODE,CODESC,NAME1 from qrycustomer where [Zone] = '" & ComboBox1.SelectedValue & "' and GroupType = '" & ComboBox2.SelectedValue & "'"
            Cm = New OleDbCommand(strSearch, Cn)
            dr = Cm.ExecuteReader

            If dr.HasRows Then

                dt = New DataTable
                dt.Load(dr)
                DataGridView1.DataSource = dt
                GridviewList()

            Else
                MessageBox.Show("ไม่พบข้อมูล !!!..  & กรุณาค้นหาใหม่ ", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
                DataGridView1.DataSource = Nothing
                ClearTextAll()
                ClearTextAll2()

            End If

        Else '-- สินค้าทุกประเภท
            strSearch = " SELECT CODE,CODESC,NAME1 from qrycustomer where [Zone] = '" & ComboBox1.SelectedValue & "' "
            Cm = New OleDbCommand(strSearch, Cn)
            dr = Cm.ExecuteReader
            If dr.HasRows Then
                dt = New DataTable
                dt.Load(dr)
                DataGridView1.DataSource = dt
                GridviewList()
            Else
                MessageBox.Show("ไม่พบข้อมูล !!!..  & กรุณาค้นหาใหม่ ", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
                DataGridView1.DataSource = Nothing
                ClearTextAll()
                ClearTextAll2()
            End If
        End If

    End Sub

    '--ประเภทสินค้า
    Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
        If RadioButton2.Checked = True Then
            ComboBox2.Enabled = True
        End If
    End Sub
    '--สินค้าทุกประเภท
    Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
        If RadioButton1.Checked = True Then
            ComboBox2.Enabled = False
        End If
    End Sub

    Private Sub ClearTextAll() '---เคลียร์ข้อมูลทั้งหมด 
        Dim c As Control
        For Each c In Me.Panel3.Controls
            If c.GetType Is GetType(TextBox) Then
                CType(c, TextBox).Clear()
            End If
        Next

    End Sub
    Private Sub ClearTextAll2() '---เคลียร์ข้อมูลทั้งหมด 
        Dim c As Control
        For Each c In Me.Panel4.Controls
            If c.GetType Is GetType(TextBox) Then
                CType(c, TextBox).Clear()
            End If
        Next

    End Sub

    '--ปุ่ม<<Previous
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        _Index -= 1
        Label3.Text = "ภาพที่ : " & _Index + 1
        Picturebox1.Image = Image.FromFile(ListFile(_Index))
        Button2.Enabled = True
        If _Index = 0 Then Button1.Enabled = False
    End Sub

    '--ปุ่ม Next >>
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        _Index += 1
        Label4.Text = "ภาพที่ : " & _Index + 1
        Picturebox1.Image = Image.FromFile(ListFile(_Index))
        Button1.Enabled = True
        If _Index = ListFile.Length - 1 Then Button2.Enabled = False
    End Sub


End Class


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-13 13:37:24 By : สายน้ำ..
 


 

No. 19



โพสกระทู้ ( 437 )
บทความ ( 0 )



สถานะออฟไลน์


ลองเพิ่ม บรรทัดนี้

Code (VB.NET)
   _Main = RootDirectory & "\"


หลัง

Code (VB.NET)
RootDirectory = IniFile.GetString("Directory", "Root", "Error File")


แล้วทดลอง Run ดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-13 13:44:36 By : kaimuk
 


 

No. 20

Guest


ตอบความคิดเห็นที่ : 19 เขียนโดย : kaimuk เมื่อวันที่ 2011-07-13 13:44:36
รายละเอียดของการตอบ ::
ถ้าคลิกกริดวิวเซลแรกที่ไม่มีโฟลเดอร์ชื่อ 48-04-00001 บรรทัดนี้จะError
ListFile = Directory.GetFiles(_Main & DataGridView1.Rows(e.RowIndex).Cells(0).Value, "*.JPG") '--error ว่า Could not find a part of the path 'D:\Pictures\48-04-00001'.
ปุ่ม next>>
Picturebox1.Image = Image.FromFile(ListFile(_Index)) '--error ว่า Index was outside the bounds of the array.

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-13 13:59:05 By : คนเดิมค่ะ
 


 

No. 21

Guest


ตอบความคิดเห็นที่ : 7 เขียนโดย : kaimuk เมื่อวันที่ 2011-07-12 14:33:15
รายละเอียดของการตอบ ::
button 1 คือ ปุ่ม อะไรคะ
button 2 คือ ปุ่ม อะไรคะ
งง อ่ะค่ะ.. ตอนนี้เรยเปลี่ยนมั่วๆ ไปเรย เห้อ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-13 14:03:45 By : ..
 


 

No. 22



โพสกระทู้ ( 437 )
บทความ ( 0 )



สถานะออฟไลน์


Code (VB.NET)
_Index = 0
        If Directory.Exists(_Main & DataGridView1.Rows(e.RowIndex).Cells(0).Value) Then
            ListFile = Directory.GetFiles(_Main & DataGridView1.Rows(e.RowIndex).Cells(0).Value, "*.JPG")
            Label1.Text = "จำนวนภาพ : " & ListFile.Length
            Label2.Text = "ภาพที่ : " & _Index + 1
            If ListFile.Length <> 0 Then
                PictureBox1.Image = Image.FromFile(ListFile(_Index))
                Button1.Enabled = False
                Button2.Enabled = IIf(ListFile.Length = 1, False, True)
            Else
                PictureBox1.Image = Nothing
                Button1.Enabled = False
                Button2.Enabled = False
            End If
        Else
            MsgBox("ไม่พบ Folder นี้")
            Exit Sub
        End If


ใช้อันนี้แทนชุดเดิม (ใน DataGridView1_CellMouseClick) จะทำการตรวจสอบ ว่ามี Directory อยู่หรือไม่


button 1 = เดินหน้า
button 2 = ถอยหลังครับ


ประวัติการแก้ไข
2011-07-13 14:18:51
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-13 14:15:37 By : kaimuk
 


 

No. 23

Guest


ตอบความคิดเห็นที่ : 22 เขียนโดย : kaimuk เมื่อวันที่ 2011-07-13 14:15:37
รายละเอียดของการตอบ ::
เย้ๆๆๆๆๆๆๆๆๆๆ ได้แร้วค่ะ....... ขอบคุนพี่มากเรยนะคะ พี่น่ารักจัง ช่วยชีวิตสายน้ำ ไม่งั้นไม่มีงานส่งแน่ๆๆเรย ไม่ผ่านแน่เรย ^^


เอ่อ...... รบกวนหน่อยนึงนะคะ อยากเพิ่ม ตอนกดปุ่มค้นหาอ่ะค่ะ เนื่องจากข้อมูลมีมาก เวลาโหลดข้อมูลมันเยอะ โหลดช้า อยากให้ขึ้น Processbar ว่า กำลังโหลดข้อมูล ทำยังไงอ่ะคะ ขอบคุนพี่ล่วงหน้านะคะ จุ๊บๆๆ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-13 14:54:26 By : สายน้ำ
 


 

No. 24

Guest


คุนไข่หมุนใจดีและใจเย็นมากค่ะ พยายามเข้านะคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-13 15:00:09 By : กวน มึน เอ๋อ
 


 

No. 25



โพสกระทู้ ( 437 )
บทความ ( 0 )



สถานะออฟไลน์


ผมรู้เลยว่า 24 เป็น Idol ของผมแค่ผมอ่านเจอคำที่ 2 (ไข่) โดยไม่ต้องอ่านถึงตัวสุดท้าย (เอ๋อ) เป็นปลื้มจริงๆ

จขกท. ครับผมว่า จขกท. ดูเรื่อง resource ก่อนดีกว่าครับ Code ของ จขกท. หลายจุด ที่ใช้งาน resource เกินความจำเป็น เช่นการ Load Data เข้า Datatable เข้าบ่อยครั้งทั้งๆ ที่ควรทำแค่ครั้งเดียว และอีกหลายๆ จุดเลยทีเดียว เรื่อง interface ไว้ก่อนดีกว่า เอาไว้ จขกท. มีความเข้าใจเรื่องพื้นฐานก่อนดีกว่าครับ ก่อนไปถึงเรื่องยากขึ้น (Threading เข้าใจยากกว่า String เยอะนะครับ)


*** Threading ต้องใช้ถ้าจะทำตามที่ จขกท. ต้องการ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-13 15:42:05 By : kaimuk
 


 

No. 26

Guest


ตอบความคิดเห็นที่ : 22 เขียนโดย : kaimuk เมื่อวันที่ 2011-07-13 14:15:37
รายละเอียดของการตอบ ::
พี่คะ..... ขอเพิ่มเติมตรงนี้หน่อยค่ะ
คือว่า... Root รูปภาพน่ะค่ะ พี่เค้าต้องการเปน Root = /รหัสโซน/รหัสลูกค้า น่ะค่ะ.. ต้องเพิ่มเติมตรงไหนคะ รหัสโซน คือ ZoneCode รหัสลุกค้าก้คือ กริดวิวเซลแรกเหมือนเดิม

อีกนิสนะคะ..
1.ต้องการให้คลิกที่คอมโบบ๊อคโซนพื้นที่ก้ให้โหลดข้อมูลมาใส่ในกริดวิวเดิมเขียนตอนฟอร์มโหลด
ซึ่ง มันจะขัดแย้งกับ เหตุการ ComboBox1_SelectedValueChanged จะต้องทำยังไงคะ
โค๊ตคือ

Code (VB.NET)
   Private Sub frmSlideShow_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Connstring = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source="
        StrFile = IniFile.GetString("Database", "Server", "Error File")
        Connstring = Connstring & StrFile
        Connstring = Connstring & "Persist Security Info = False"
        Cn = New OleDbConnection(Connstring)
        Cn.Open()
        RootDirectory = IniFile.GetString("Directory", "Root", "Error File")
        _Main = RootDirectory & "\"

        Dim str As String = ""
        str = "SELECT * FROM TBZONE"
        Cm = New OleDbCommand(str, Cn)

        dr = Cm.ExecuteReader
        dr.Read()
        dt = New DataTable
        dt.Load(dr)
        With ComboBox1
            .DisplayMember = "ZoneName" '--ชื่อโซน
            .ValueMember = "ZoneCode" '--รหัสโซน
            .DataSource = dt
        End With
   End Sub

โค๊ตที่เหตุการณ์ ComboBox1_SelectedValueChanged คือ
   Private Sub ComboBox1_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedValueChanged
   
        Try
            Dim strSearch As String = "SELECT CODE,CODESC,NAME1 from qrycustomer where [Zone] = '" & ComboBox1.SelectedValue & "' "
            Cm = New OleDbCommand(strSearch, Cn)
            dr = Cm.ExecuteReader
            If dr.HasRows Then
                dt = New DataTable
                dt.Load(dr)
                DataGridView1.DataSource = dt
                GridviewList()
            Else
                MessageBox.Show("ไม่พบข้อมูล !!!..  & กรุณาค้นหาใหม่ ", "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
                DataGridView1.DataSource = Nothing
                ClearTextAll()

            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
        End Try

    End Sub


ขอความช่วยเหลืออีกหน่อยนะคะ.. ขอบคุนมากๆๆค่ะ^^


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-21 10:37:03 By : คนเดิม
 


 

No. 27

Guest


รบกวนแนะนำการใช้คำสั่ง เมื่อคลิกไปยังข้อความที่เราต้องการ และให้รูปแสดง ควรเขียนคำสั่งแบบไหนค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-03-05 11:09:23 By : Jimm
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ดึงรูปภาพจากโฟล์เดอร์ขึ้นมาโชว์ทั้งหมด กดปุ่ม เพื่อเลื่อน เดินหน้า ถอยหลังได้....
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่