2016-10-14 6 views
0

ユーザーがブックを追加/削除できるリストボックスを作成しようとしています.4つのテキストボックスを使用しています情報がリストボックスに挿入されるようにします。また、その私は、テキストボックスのためのリストボックスにC#WinForm、リストボックスに追加するテキストボックスに入力された情報を取得できない

private void buttonAdd_Click(object sender, EventArgs e) 
{ 
    listBoxBooks.Items.Add(textBoxTitle); 
    listBoxBooks.Items.Add(textBoxAuthor); 
    listBoxBooks.Items.Add(textBoxISBN); 
    listBoxBooks.Items.Add(textBoxPrice); 
} 

private void buttonRemove_Click(object sender, EventArgs e) 
{ 

} 

private void textBoxTitle_TextChanged(object sender, EventArgs e) 
{ 
    Console.ReadLine(); 
} 

private void listBoxBooks_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    Console.WriteLine(""); 
+0

文字列あるいはテキストオブジェクトがtextBoxTitleである:それはすぐにListBoxまたはDataGridViewに表示されますか? – Johan

+0

'ListBox'に項目を追加するには' listBox1.Add(textBox1.Text) 'を使います。しかし 'ListBox'は、' Book'に複数のフィールドを表示したい場合、あなたの要件には適していないようです。現在、あなたは、ListBoxの異なる項目として異なる本のフィールドを追加していますが、本のすべてのフィールドは一緒でなければなりません。 'Book'クラスを作成してbookのプロパティを設定し、そのブックを' ListBox'または 'DataGridView'に追加することができます。 –

+0

textchangedイベントはこれには役に立ちません。 'Leave'イベントを試してみてください。リストにテキストをどこに追加しますか? – Badiparmagi

答えて

0

をクリックして、側に選択しBLE言及テキストプロパティだと私は、テキストボックスに入力したが何も表示されないされたら、リストボックスでプリントなっている代のように思えますListBox使用listBox1.Add(textBox1.Text)に項目を追加するにはbuttonAdd_Click

listBoxBooks.Items.Add(textBoxTitle.Text); 
listBoxBooks.Items.Add(textBoxAuthor.Text); 
listBoxBooks.Items.Add(textBoxISBN.Text); 
listBoxBooks.Items.Add(textBoxPrice.Text); 
+0

@Srinivasulu Muppalaありがとうございました。 –

+0

のユーザーが入力したテキストを表示し始めました。 –

1

で下記。しかし、ListBoxは、書籍に複数のフィールドを表示する場合は、あなたの要件には適していないようです。現在、ListBoxの異なる項目として異なる本のフィールドを追加していますが、本のすべてのフィールドは一緒になっている必要があります。

public class Book 
{ 
    public string Name { get; set;} 
    public strain Author {get; set;} 
    public string ISBN {get ;set;} 
    public int Price {get; set;} 
    public override string ToString() 
    { 
     return string.Format("{0} - {1}", Name, Author); 
    } 
} 

2:あなたは、このようなクラスを作成することができ、その後

1- ListBoxに本を追加したり、DataGridView

Bookクラスを作成し、ブックのプロパティを設定することができます - 次に、書籍を保持するバインドリストを定義します。 FormLoad場合に、またはコンストラクタで

BindingList<Book> books = new BindingList<Book>(); 

3-、InitializeComponent後、あなたDataGridViewたりListBoxDataSourceとしてbooksを設定:フォームレベルでこのメンバーを定義

booksDataGridView.DataSource = books; 
//booksListBox.DataSource = books; 

4-そしてあなたのボタンをクリックして最初にBookクラスのインスタンスを作成し、それをbooksリストに追加します。

var book = new Book(); 
book.Name = nameTextBox.Text; 
book.Author = authorTextBox.Text; 
book.ISBN = isbnTextBox.Text; 
book.Price = int.Parse(priceTextBox.Text); 
books.Add(book); 
+0

解決策としてマークできますが、これはクラスとコードの他の部分がすべて追加されてからですプログラムを実行しましたが、リストボックス内に表示される方法はありません。これは、正しいコードが表示されるかどうかを示します:private void listBoxBooks_SelectedIndexChanged(Object sender、EventArgs e) { Console.WriteLine( ""); } –

+0

私はまだ基​​本的に、Console.WriteLine( ""); ListBoxメソッド内 –

+0

答えの指示に従ってください。私はリストボックスのイベントを処理することについて何も言わなかった。 –

関連する問題