2012-01-24 51 views
10

私は、含まれているフォームの定義済みジョブのリストに使用する正しいコントロールを理解するのには苦労しています。私は現在、海事サービスショップ(油交換、チューンアップなど)のために定義済みのすべてのジョブを一覧表示する定義済みジョブ名グループにListBoxControlを持っています。次に、ListBoxで選択された項目(ジョブ名)に基づいて、そのジョブに対応する項目を表示する必要があります。例えば、オイル交換が選択された仕事であれば、私は4石油、1オイルフィルター、労働などを示す必要があります。ListView ColumnHeaderを非表示にする方法

現在、フォームデータを読み込むと、LINQ to SQLを使用してデータベースからすべてのジョブを取得するDAOがあります。その後、結果を反復処理し、ListBoxにジョブ名を入れます。私が抱えている問題は、ListViewアイテムのようなListBoxアイテムのタグがないということです。したがって、ユーザーがリストボックス内の別のアイテムを選択するたびに、別のLINQクエリを実行してデータベースからジョブを取得し直して、対応するアイテムを表示する必要があります。 ListViewを使用して列見出しを隠すことができれば、ユーザーが新しい項目を選択するたびに、データベースへの別の呼び出しを行わずに詳細にアクセスできるように、タグ全体のジョブを設定できます。列全体を隠すことなくListViewの列ヘッダーを非表示にする方法はありますか?

Windows Form

+0

ColumnWidthChangingイベントに使用されます。 –

+0

'表示 'モードが'詳細 'に設定されています。なぜそれを 'List'にセットしないのですか? – InBetween

答えて

43

あなたはListViewNoneへのHeaderStyleメンバーを設定することができます。

listView1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;

7

アウトListViewのHeaderStyleプロパティ。

HeaderStyleプロパティを使用すると、列ヘッダーが表示されているかどうかを指定することができますか:MSDNから

  1. なし
  2. Nonclickable
  3. クリッカブル

:それは、次のオプションがあります表示可能な場合は、クリック可能なボタンとして機能するかどうかを指定します。 HeaderStyleプロパティがColumnHeaderStyle.Noneに設定されている場合は、ListViewコントロールの項目とサブ項目がまだあなたはまた、2 popertiesを持っているListItemのような単純なオブジェクトを作成することができます

1

列に配置されているが、列ヘッダーは、表示されません。Text (文字列)とTag(オブジェクト)です。次にListItem.ToString()を実装し、ListBoxでもこれらを使用できます。

また、無料のBetter ListView Expressコンポーネントもチェックできます。詳細列なしで表示できます。 ListBoxとListViewの利点は、ネイティブな外観と多くの追加機能です。

0

実際にヘッダーを表示していないことが分かっている場合は、HeaderStyleプロパティをNoneに設定するのが最適かもしれません。

.CS画面で最初にロードするときに、画面が完全にレンダリングされるまでヘッダーが表示されます。

1

簡単な方法は、表形式のデータを表示する必要がある場合、私は、私はあなたがHeaderRowを隠すことができるのGridViewを信じて、グリッドを使用することになり

private void listViewExtended1_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e) 
     { 
      if (e.ColumnIndex == 0) 
      { 
       e.Cancel = true; 
       e.NewWidth = listViewExtended1.Columns[e.ColumnIndex].Width; 
      } 
     } 
関連する問題