0

ここに画像の説明を入力してくださいこんにちは私はWindowsフォームアプリケーションを持っています。テキストボックスがあります。ユーザーがテキストボックスをクリックしたときのような機能を実装したいのですが、ユーザーがリストを利用できるようにしてから、リストから選択した項目をテキストボックスに入力する必要があります。テキストボックス以外のコントロールにフォーカスがある場合は、リストを使用できないようにする必要があります。これを行うためのより良い方法は何でしょうか?テキストボックスと同じフォームでリストを実装する必要がありますか、それともリストに別のフォームを使用する必要がありますか?


Tallyアカウンティングソフトウェアのような機能を実装したい。


4

3 に答える 3

1

listViewを含むパネルを作成します

パネルを使用する場合、Visibleプロパティを変更して、その中のすべてのコンテンツを非表示にすることができます。

panel1.Visible = true; //visible
panel1.Visible = false; //invisible

これで、次のように言うことができます。テキストボックスをクリックすると、リストが表示されます。

private void textbox1_Click(object sender, EventArgs e)
{
    panel1.Visible = true;
}

これで、フォームにフォーカスが移ったときに、リストを非表示にできます。

private void form1_Click(object sender, EventArgs e)
{
    panel1.Visible = false;
}

リストの選択した項目が変更されたら、テキストボックスのテキストを設定します。

private void ListView1_ItemSelectionChanged(Object sender, ListViewItemSelectionChangedEventArgs e)
{
    foreach ( ListViewItem item in ListView1.SelectedItems)
    {
        textbox1.Text = item.SubItems[1].Text;
    }
}
于 2012-10-26T10:52:15.563 に答える
0

これに使用できるテキストボックスコントロールのイベントがいくつかあります。

EnterとLeaveを使用して、リストの.Visibleまたは.Enabledプロパティを制御できます。

1つのリストを使用し、EnterとLeaveを使用して動的に入力します。操作しているtextBoxを示すマーカーが必要になります。

    TextBox activeText;
    private void txtBox1_Enter(object sender, EventArgs e)
    {
          lstMyList.dataSource = list1Data;
          activeText = (TextBox)sender;

    }

    private void lstMyList_SelectedValueChanged(object sender, EventArgs e)
    {
         ListBox myList = (ListBox)sender; 
         activeText.Text = myList.SelectedValue.ToString();

    }

多分そのようなもの?

于 2012-10-26T10:51:17.967 に答える
0

私の見解では、別のフォームを使用し、新しいフォームではすべてのリストが表示されます。テキストボックスをクリックすると、新しいフォームを表示する必要があります。

選択したアイテムを取得するには、多くの方法があります

  1. LIST パラメータを New form(Constructor) に送信する
  2. フォームが閉じられたときに新しいフォームのメソッドを取得する
  3. 静的グローバル変数

方法 1.

FORM2 frm = new FORM2(LIST<string> items)
frm.ShowDailog();
textBox1.text = add items from  items

方法 2.

FORM2 frm = new FORM2()
if(frm.ShowDailog() == DialogResults.Ok)
{
 textBox1.text = frm.GetSelectedItems();
}
于 2012-10-26T11:12:50.527 に答える