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,027

HOME > .NET Framework > Forum > [VB.NET] Datagridview ส่งค่าข้ามฟอร์มไปยัง textbox ของอีกฟอร์มไม่ได้



 

[VB.NET] Datagridview ส่งค่าข้ามฟอร์มไปยัง textbox ของอีกฟอร์มไม่ได้

 



Topic : 087228

Guest




MainForm *****************

q1

Code (VB.NET)
Public Class mainvb

    Private Sub ToolStripLabel1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripLabel1.Click
        Dim Frm As New sell
        Frm.Show()
    End Sub
End Class


-------------------------------------------------------------------------------------
Form2**************

q2

Code (VB.NET)
Public Class sell

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


---------------------------------------------------------------------------------------
Form3*******************

q3
Code (VB.NET)
Imports System.Data.OleDb
Public Class choose
    Dim Cn As New OleDbConnection
    Dim Ds As New DataSet()
    Dim Dt As New DataTable
    Dim Cm As OleDbCommand
    Dim Da As OleDbDataAdapter
    Dim Dr As OleDbDataReader

    Private Sub choose_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Database_sd.mdb"
        Cn.Open()

        Dim D1 As New OleDbDataAdapter("select P_id, P_name from Product", Cn)
        Dim D2 As New DataTable
        D1.Fill(D2)
        DataGridView1.DataSource = D2
        setup_Grid()
        Cn.Close()
    End Sub

    Sub setup_Grid()
        With DataGridView1

            .Columns(0).Width = 100
            .Columns(1).Width = 200


            .Columns(0).HeaderText = "รหัสสินค้า"
            .Columns(1).HeaderText = "ชื่อสินค้า"

        End With
    End Sub

    

    Private Sub DataGridView1_CellMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseDoubleClick
        If e.RowIndex = -1 Then Exit Sub
        With DataGridView1
            sell.TextBox1.Text = .Rows(e.RowIndex).Cells(0).Value
            sell.TextBox2.Text = .Rows(e.RowIndex).Cells(1).Value
        End With
      
    End Sub
End Class

-------------------------------------------------------------------------------------------------

คือพอผมกดคลิกข้อมูลใน datagrid ของฟอร์ม 3 แล้วมันไม่ขึ้นในช่อง ฟอร์ม 2 อ่ะครับ

ถ้ารันจากฟอร์ม 1 คลิกเพื่อเปิดฟอร์ม 2 ขึ้นมา แล้วกด button เปิดฟอร์ม 3 แล้วเลือกข้อมูลใน datagrid

***แต่ถ้าผมรันจาก form2 กด button เปิดฟอร์ม 3 แล้วเลือกข้อมูลใน datagrid ข้อมูลโชว์ในฟอร์ม 2 ปกติ**


รบกวนด้วยครับ



Tag : .NET, VB.NET







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-11-26 09:48:30 By : หนึ่ง View : 5181 Reply : 10
 

 

No. 1



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



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


ประกาศตัวแปรใน form 2 ให้เป็น public หรือ ตัวแปรประเภท property ให้เป็น public ก็ได้แล้วครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-26 11:15:42 By : kanchen
 


 

No. 2

Guest


อย่างไงหรอครับ งง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-26 11:37:35 By : หนึ่ง
 

 

No. 3



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



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


Property Statement

Code (VB.NET)
//อันนี้เป็นตัวแปรแบบ ปกติที่ใช้กัน 
public AA as string

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-26 11:50:30 By : kanchen
 


 

No. 4

Guest


ใช้ delegate เป็น

ก็ส่งค่าด้วย delegate ก็ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-26 12:39:54 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 5

Guest


รบกวนยกตัวอย่าง จากที่ผมถามไว้ได้ไหมครับ พอดีมือใหม่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-26 12:52:09 By : หนึ่ง
 


 

No. 6

Guest


รบกวนด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-27 08:01:25 By : หนึ่ง
 


 

No. 7

Guest


ขั้นแรกสร้าง class event argument ขึ้นมาใช้ (อยากได้ properties อะไรก็เขียนเอา)

จากที่เขียนไว้คุณต้องการค่าจาก Cells(0) กับ Cells(1) ซึ่งผมไม่รู้ว่าชื่ออะไร

งั้นผมเขียนเป็นกลางๆ ไว้แล้วกัน

Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public delegate void ChooseEventHandler(object source, ProcessCompleteEventArgs e);

public class ChooseEventArgs : EventArgs
{
    private string _cell0;
    private string _cell1;

    public ProcessCompleteEventArgs(string cell0, string cell1)
    {
        _cell0 = cell0;
        _cell1 = cell1;
    }

    public string Cell0Value
    {
            get { return _cell0; }
    }

    public string Cell1Value
    {
            get { return _cell1; }
    }
}


จากนั้นไปทำที่ form3 เอาโค้ดด้านล่างไปใส่

Code (C#)
public event ChooseEventHandler OnChoose;

private void DataGridView1_CellDoubleClick(Object sender, DataGridViewCellEventArgs e) 
{
   DataGridView dgv = (DataGridView)sender;

   if (e.RowIndex != -1)
   {
      // โค้ดตรงนี้ประมาณว่าเกิด choose event
      if (OnChoose != null)
      {
         OnChoose(this, new ChooseEventArgs(dgv.Rows[e.RowIndex].Cells[0].Value.ToString(), dgv.Rows[e.RowIndex].Cells[1].Value.ToString()));
      }
   }
}


แล้วก็กลับไปทำที่ form 2 เอาโค้ดด้านล่างไปใส่

Code (C#)
private void Button1_Click(object sender, EventArgs e)
{
   choose.OnChoose += new ChooseEventHandler(choose_OnChoose);
}

private void choose_OnChoose(object sender, ChooseEventArgs e)
{
   // เอาค่าไปใช้
   TextBox1.Text = e.Cell0Value;
   TextBox2.Text = e.Cell1Value;
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-27 09:12:34 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 8

Guest


แก้โค้ด form2 หน่อย ตกไปบรรทัดนึง (เขียนสด)

Code (C#)
private void Button1_Click(object sender, EventArgs e)
{
   Choose choose = new Choose(); // <-- มันน่าจะมีตรงนี้ด้วย
   choose.OnChoose += new ChooseEventHandler(choose_OnChoose);
   choose.ShowDialog(); // <-- เขียนตกไป
}

private void choose_OnChoose(object sender, ChooseEventArgs e)
{
   // เอาค่าไปใช้
   TextBox1.Text = e.Cell0Value;
   TextBox2.Text = e.Cell1Value;
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-27 09:15:53 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 9

Guest


โอ้ยๆ แก้ class event ด้วยเขียนผิด

Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public delegate void ChooseEventHandler(object source, ProcessCompleteEventArgs e);

public class ChooseEventArgs : EventArgs
{
    private string _cell0;
    private string _cell1;

    public ChooseEventArgs(string cell0, string cell1) // <-- นี่ไงปล่อยไก่ไปแล้ว 
    {
        _cell0 = cell0;
        _cell1 = cell1;
    }

    public string Cell0Value
    {
            get { return _cell0; }
    }

    public string Cell1Value
    {
            get { return _cell1; }
    }
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-27 09:18:13 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 10

Guest


โทษทีผิดอีกที (จะโดนข้อหา spam ไหมหว่า)

Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public delegate void ChooseEventHandler(object source, ChooseEventArgs e); // <-- แก้แล้ว

public class ChooseEventArgs : EventArgs
{
    private string _cell0;
    private string _cell1;

    public ChooseEventArgs(string cell0, string cell1) // <-- นี่ไงปล่อยไก่ไปแล้ว 
    {
        _cell0 = cell0;
        _cell1 = cell1;
    }

    public string Cell0Value
    {
            get { return _cell0; }
    }

    public string Cell1Value
    {
            get { return _cell1; }
    }
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-11-27 09:20:18 By : ห้ามตอบเกินวันละ 2 กระทู้
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : [VB.NET] Datagridview ส่งค่าข้ามฟอร์มไปยัง textbox ของอีกฟอร์มไม่ได้
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 03
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 อัตราราคา คลิกที่นี่