本文介绍了将列表框选择绑定到数据网格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 嗨伙计们; 我有一个列表框,使用过滤后的数据视图填充数据(只需要一列的名称),然后允许用户选择一个条目从列表中,单击相应的按钮,然后使用 按钮单击事件,打开另一个表单并使用参数填充表单(用于填充列表框的参数)。结果集将是基于相同参数返回的任何/所有列。 我为多个按钮分别单击事件,这些按钮都执行相同的基本操作,但每个按钮返回的数据来自单独的表格。这非常有效,但是...... 我试图将单独的单击事件合并为一个,并使用用例选择来确定单击了哪个按钮,并返回相应的结果。 发生的问题是在转换为通用单击事件后,结果仅返回数据集中的第一行,而不管列表框选择如何。 我要包含一个代码片段,希望有人能够为我抓住这个问题! 私人 Sub AllFindButtons( ByVal 发件人 as system。 object ByVal 电子作为 System.e.System.EventArgs)把手 btnSuppliersFind.click,btnCustomersfind.click '将发件人转换为按钮类型。 Dim btn为Button = CType(发件人,按钮) Dim btnName as String = btn.Name 将文本字符串作为字符串= string.empty 将表格作为System.Data.DataTable = Nothing '哪个文本框和数据表F ILTER使用选择案例btnName    案 "btnSuppliersFind"       文本= txtSuppliersName.Text       表= NorthwindDataSet.Suppliers    病例 "btnCustomersFind"        TXT = txtCustomerName .Text table = NorthwindDataSet.Customers End Select Dim filteredview as Data.DataView = New Data.DataView(table ) '此行过滤器一般化 filteredView.RowFilter ="CompanyName Like'%"+ text +"%'" Dim rowsFound As Int32 = filteredView.Count 选择Case rowsFound 案例0 '没有找到记录 MessageBox.Show(_             "没有符合条件的记录发现",_    &NBSP ;        "没有找到记录",_             MessageBoxButtons。 OK,_             MessageBoxIcon.Exclamation)      &NBSP ; 案例1 '您显示的形式取决于按钮名称 选择案例btnName 案例"btnSuppliersFind" frmSuppliers.CompanyNameParameter = _ filteredView.Item(0)("CompanyName") frmSuppliers.Show() 案 "btnCustomersFind"                   frmCustomerDetails.CompanyNameParameter = _                      filteredView.Item(0)("CompanyName") frmCustomerDetails.Show() 结束选择 Case Else dlgPickMatchingCompany.FilteredView = filteredView 昏暗的结果As DialogResult result = dlgPickMatchingCompany.ShowDialog() 如果result = DialogResult.OK然后 Dim rowView As Data.DataRowView rowView = dlgPickMatchingCompany.lbMatching.SelectedItem 暗淡的companyName作为字符串= rowView.Row.Item( "公司名称")                "您显示的表单取决于按钮名称 选择案例btnName 案例"btnSuppliersFind" frmSuppliers.CompanyNameParameter = _                     &NBSP ;   filteredView.Item(0)( "公司名称")                 &NBSP ;   frmSuppliers.Show()                 案 "btnCustomersFind"                      frmCustomerDetails.CompanyNameParameter = _                     &NBSP ;   filteredView.Item(0)( "公司名称")                 &NBSP ;   frmCustomerDetails.Show() 结束选择 结束如果 结束选择 结束子 解决方案 Oi Gente, Eu Tenho UMA Caixa de Listagem,Opaco E preenchido com Dados usandoUMAexibiçãodeDados filtrada(assim Quero o nomo 德UMA Coluna)中,e entao permitir Opaco OS USUARIOS selecionem UMA ENTRADA哒利斯塔,集团洛斯哼波涛corrosponding,E COMö集团德波涛事件摘要,阿布拉OUTROFormulárioËpreencheöFormulário山岛哼声Parâmetro(MESMO USADOparágrafopreencher一个Caixa de Lista)。 的的的 0 CONJUNTO德Resultados赛瑞亚QUALQUÉR/托达como的Colunas retornadas COM基德nenhumParâmetroMESMO 。 的的的 Tenho camarilha洛斯EVENTOS甲Separados VARIOSparágrafosBOTOES,Opaco托多斯desempenham嗯MESMAAçãoBásica,com a ressalva de OpacoCADABotãoRetornaDados de Tabelas separadas。 de Isso Funciona Muito Bem,mas ... eu tentei combinar OS eventos de camarilha Separados los hum assim,e USAR Caso selecione Para determinarqualiBotãoFOIclicado,e retornar OS RESULTADOS apropriados。 的的的 OpacoöProblema ocorreË者UMA转换器类parágrafo哼声坂东日事件摘要Genéricos,OsResultadosSóretornara Primeira Linha do Conjunto de Dados,independentemente deumaSeleçãodaCaixa de Lista。 的的的我在这incluíndo哼声Trecho德CódigoCOM一个埃斯佩兰萨德Opaco alguem颇得丝氨酸Capaz德Pegar ESSE Problema par mim! btnCustomersfind.click 'remetente elenc o Como o TipodeBotão。 Dim btnComoBotão= CType(remetente,Button) Dim btnName Como String = btn.Name 'determinar OS campos de Texto para USAR。 Dim Texto corda Como = vazio Sistema Como mesa Dim。 dados。 DataTable = Nothing 'Qual Caixa de texto e Filtro de Tabela de DadosdoParáUSAR。 选择案例btnName Caso" btnSuppliersFind" text = txtSuppliersName.Text table = NorthwindDataSet.Suppliers Caso" btnCustomersFind" txt = txtCustomerName.Text table = NorthwindDataSet.Customers 结束选择 Dim filteredview Como Data.DataView = Novo Data。 DataView(Tabela) este Filtro de Linha generalizada filteredView.RowFilter =" CompanyName Like'%" + Texto +"%'" $ Dim rowsFound Como Int32 = filteredView.Count 选择Case rowsFound Caso 0'Nenhum Registro ENCONTRADO MessageBox.Show(_ " Nenhum Registro Correspondentes FORAM Encontrados",_   ;          " Nenhum Registro ENCONTRADO" ;, _ ; MessageBoxButtons.OK,_ MessageBoxIcon.Exclamation)      &NBS磷;   Caso 1 ",QueformamVocê。 mostrar Depende fazer nomo fazobotão 选择案例btnName Caso"btnSuppliersFind" frmSuppliers.CompanyNameParameter = _ 的                   &NBSP ; filteredView.Item(0)(" CompanyName")   frmSuppliers.Show() Caso"btnCustomersFind" frmCustomerDetails.CompanyNameParameter = _ 的                   &NBSP ; filteredView.Item(0)(" CompanyName")   frmCustomerDetails。 show() 结束选择 Case Else dlgPickMatchingCompany.FilteredView = filteredView 昏暗的结果As DialogResult Resultado = dlgPickMatchingCompany.ShowDialog() Seo Resultado para DialogResult.OK entao Dim rowView Como Data.DataRowView rowView = dlgPickMatchingCompany.lbMatching.SelectedItem Dim companyName As String = rowView。 Row.Item(" CompanyName")               "QueformaVocê。 mostrar Depende fazer nomo fazobotão 选择案例btnName Caso"btnSuppliersFind" frmSuppliers.CompanyNameParameter = _ 的                   &NBSP ;    filteredView.Item(0)(" CompanyName")      frmSuppliers.Show)( Caso" btnCustomersFind"                      frmCustomerDetails.CompanyNameParameter = _ 的                     &NBSP ; filteredView.Item(0)(" CompanyName") &n BSP;        frmCustomerDetails.Show() 结束选择 结束如果 结束选择 结束子 'p>的的铕montei一个primeira AULA做这份绿皮书,我在这山岛的Visual Studio 2013,E无COMANDO查找,NAO ESTA achando nenhum registro filtrado,JA revisei一个leitura ,énãestouconseguindo observar onde estou errando。     Dim rowsFound Como Int32 = filteredView.Count 选择案例行创建 Caso 0'Nenhum Registro ENCONTRADO MessageBox.Show(_  的           " Nenhum Registro Correspondentes有孔虫Encontrados" ;, _  的           " ; Nenhum Registro ENCONTRADO" ;, _  的            MessageBoxButtons .OK,_ MessageBoxIcon.Exclamation) Hi Folks;I have a list box which is populated with data using a filtered data view (just want the name of one column), and then allow users to select an entry from the list, click a corrosponding button, and with the button click event, opens another form and populates the form using a parameter (same one used to populate list box). The result set would be any/all columns returned based on the same parameter.I have seperate click events for multiple buttons, which all perform the same basic action, with the exception that each button returns data from seperate tables. This works quite well, but...I attempted to combine the seperate click events into one, and use case select to determine which button was clicked, and return the appropriate results.The problem that occurs is after converting to a generic click event, the results only return the first row in the dataset, regardless of the list box selection. I'm including a code snippet with the hopes that someone may be able to catch this issue for me!Private Sub AllFindButtons(ByVal sender as system.object ByVal e as System.e.System.EventArgs)Handles btnSuppliersFind.click, btnCustomersfind.click'cast sender as button type.Dim btn as Button = CType(sender, Button)Dim btnName as String = btn.Name'determine text fields to use.Dim text as string = string.emptyDim table as System.Data.DataTable = Nothing'Which text box and data table filter to use.Select Case btnName Case "btnSuppliersFind" text = txtSuppliersName.Text table =NorthwindDataSet.Suppliers Case "btnCustomersFind" txt = txtCustomerName.Text table = NorthwindDataSet.CustomersEnd SelectDim filteredview as Data.DataView = New Data.DataView(table)' this row filter generalized filteredView.RowFilter = "CompanyName Like '%" + text + "%'" Dim rowsFound As Int32 = filteredView.Count Select Case rowsFound Case 0 ' no records found MessageBox.Show( _ "No matching records found", _ "No records found", _ MessageBoxButtons.OK, _ MessageBoxIcon.Exclamation) Case 1 'which form you show depends on the button name Select Case btnName Case "btnSuppliersFind" frmSuppliers.CompanyNameParameter = _ filteredView.Item(0)("CompanyName") frmSuppliers.Show() Case "btnCustomersFind" frmCustomerDetails.CompanyNameParameter = _ filteredView.Item(0)("CompanyName") frmCustomerDetails.Show() End Select Case Else dlgPickMatchingCompany.FilteredView = filteredView Dim result As DialogResult result = dlgPickMatchingCompany.ShowDialog() If result = DialogResult.OK Then Dim rowView As Data.DataRowView rowView = dlgPickMatchingCompany.lbMatching.SelectedItem Dim companyName As String = rowView.Row.Item("CompanyName") ' which form you show depends on the button name Select Case btnName Case "btnSuppliersFind" frmSuppliers.CompanyNameParameter = _ filteredView.Item(0)("CompanyName") frmSuppliers.Show() Case "btnCustomersFind" frmCustomerDetails.CompanyNameParameter = _ filteredView.Item(0)("CompanyName") frmCustomerDetails.Show() End Select End If End Select End Sub 解决方案Oi Gente, Eu Tenho UMA Caixa de Listagem, Opaco E preenchido com Dados usando UMA exibição de Dados filtrada (assim Quero o nomo de UMA Coluna), e entao permitir Opaco OS USUÁRIOS selecionem UMA Entrada da Lista, clique los hum Botão corrosponding, e com o clique de Botão Evento, abra Outro Formulário e preenche o Formulário usando hum Parâmetro (MESMO USADO parágrafo preencher a Caixa de Lista). O Conjunto de Resultados Seria QUALQUÉR / Todas como Colunas retornadas com base de nenhum Parâmetro MESMO.Tenho camarilha los eventos A Separados VÁRIOS parágrafos BOTOES, Opaco Todos desempenham um MESMA Ação Básica, com a ressalva de Opaco CADA Botão Retorna Dados de Tabelas separadas.de Isso Funciona Muito Bem, mas ...eu tentei combinar OS eventos de camarilha Separados los hum assim, e USAR Caso selecione Para determinar quali Botão FOI clicado, e retornar OS RESULTADOS apropriados.Opaco O Problema ocorre E apos uma Conversão parágrafo hum bando de Evento Genéricos, Os Resultados Só retornar a Primeira Linha do Conjunto de Dados, independentemente de uma Seleção da Caixa de Lista. ESTOU incluíndo hum Trecho de Código com a Esperança de Opaco alguem PODE Ser Capaz de Pegar ESSE Problema par mim!btnCustomersfind.click'remetente elenco Como o Tipo de Botão.Dim btn Como Botão = CType (remetente, Button)Dim btnName Como String = btn.Name'determinar OS campos de Texto para USAR.Dim Texto corda Como = vazioSistema Como mesa Dim . dados.DataTable = Nothing 'Qual Caixa de texto e Filtro de Tabela de Dados do Pará USAR.Select Case btnName Caso "btnSuppliersFind" text = txtSuppliersName.Text table = NorthwindDataSet.Suppliers Caso "btnCustomersFind" txt = txtCustomerName.Text table = NorthwindDataSet.CustomersEnd SelectDim filteredview Como Data.DataView = Novo Data.DataView (Tabela)"este Filtro de Linha generalizada filteredView.RowFilter = "CompanyName Like '%" + Texto + "%'" Dim rowsFound Como Int32 = filteredView.Count Select Case rowsFound Caso 0 'Nenhum Registro ENCONTRADO MessageBox.Show (_ "Nenhum Registro Correspondentes FORAM Encontrados", _ "Nenhum Registro ENCONTRADO", _ MessageBoxButtons.OK, _ MessageBoxIcon.Exclamation) Caso 1 ", Que formam Você. mostrar Depende fazer nomo faz o botão Select Case btnName Caso "btnSuppliersFind" frmSuppliers.CompanyNameParameter = _ filteredView.Item (0) ("CompanyName") frmSuppliers.Show () Caso "btnCustomersFind" frmCustomerDetails.CompanyNameParameter = _ filteredView.Item (0) ("CompanyName") frmCustomerDetails. show () End Select Case Else dlgPickMatchingCompany.FilteredView = filteredView Dim result As DialogResult Resultado = dlgPickMatchingCompany.ShowDialog () Se o Resultado para DialogResult.OK entao Dim rowView Como Data.DataRowView rowView = dlgPickMatchingCompany.lbMatching.SelectedItem Dim companyName As String = rowView. Row.Item ("CompanyName") "Que forma Você. mostrar Depende fazer nomo faz o botão Select Case btnName Caso "btnSuppliersFind" frmSuppliers.CompanyNameParameter = _ filteredView.Item (0) ("CompanyName") frmSuppliers.Show) ( Caso "btnCustomersFind" frmCustomerDetails.CompanyNameParameter = _ filteredView.Item (0) ("CompanyName") frmCustomerDetails.Show () End Select End If End Select End Sub Eu montei a primeira aula do livro, estou usando Visual Studio 2013, é no comando FIND, não está achando nenhum registro filtrado, já revisei a leitura, é não estou conseguindo observar onde estou errando. Dim rowsFound Como Int32 = filteredView.Count Select Case rowsFound Caso 0 'Nenhum Registro ENCONTRADO MessageBox.Show (_ "Nenhum Registro Correspondentes FORAM Encontrados", _ "Nenhum Registro ENCONTRADO", _ MessageBoxButtons.OK, _ MessageBoxIcon.Exclamation) 这篇关于将列表框选择绑定到数据网格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云! 08-20 21:20