2011-10-22 48 views
0

我在写电话簿应用程序。如何在文本框中显示Listview中的数据?

我有一个列表视图,您可以在其中查看数据库中保存的数据。我想添加一个编辑选项。

更具体地说:当我在表格中用订阅者和电话号码标记一行并点击编辑按钮时,屏幕上将显示带有两个文本框的窗口。第一个文本框是名称,第二个是已标记条目的电话号码。

你能告诉我该怎么做吗?

回答

0

你可以做这样的...

是的,但文本框和ListView是在不同的窗口,我不能 访问它相互

在窗口2拖放两个文本框和像这样做......

只需在Form2类上创建一个属性并在显示Form2之前设置它。

public class Form2 
{ 
    public string Name 
    { 
     get { return textbox1.Text; } 
     set { textbox1.Text = value; } 
    } 
    public string phonenumber 
    { 
     get { return textbox2.Text; } 
     set { textbox2.Text = value; } 

    } 

} 

public class Form1 
{ 

    private void btnedit_Click(object sender, eventargs e) 
    { 
     for (int i = 0; i < lv.Items.Count; i++) 
     { 
     // is i the index of the row you selected? 
     if (lv.Items[i].Selected == true) 
     { 
      //I show here the second field text (SubItems[1].Text) from the selected row(Items[i]) 
       Message.Show(lv.Items[i].SubItems[1].Text); 
       break; 
     }    
     } 
     Form2 frm2 = new Form2(); 
     frm2.Name= text1; 
     frm2.phonenumber = text2; 
     frm2.Show(); 
     this.Hide(); //// if you want to hide the form1 
    } 
    } 
} 

我希望它会帮助你....

+0

我做到了,编译没有问题,但是当我打的编辑按钮,I” m得到异常:“InvalidArgument ='2'的值对于'index'无效参数名称:index”对于这一行 'string number = listView.SelectedItems [0] .SubItems [2] .Text;' –

+0

@ ВладиславНайденов我编辑了我的答案,看看我的回答 –

+0

非常感谢。我发现了错误。我改变了SubItems索引的值并且它正在工作。 –

0

使用鼠标点击事件,例如,

private void ListBox1_MouseClick(System.Object sender, System.Windows.Forms.MouseEventArgs e) 
{  
    this.TextBox1.Text = this.ListBox1.SelectedItem; 
} 
+0

是的,但TextBox和ListView在不同的窗口中,我无法访问它们。 –

+0

如果文本框仅以另一种形式控制,或者您必须声明一个构造函数,其中的文本框从主窗体传递列表视图中选定的参数,或者声明属性并使用所选项目增强属性。 –

+0

@ВладиславНайденов 我编辑了我的答案看看我的答案.. –

相关问题