リストビューで2列目を編集出来る様にするには

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
矢田裕康
記事: 13
登録日時: 2005年10月01日(土) 18:38

リストビューで2列目を編集出来る様にするには

#1 投稿記事 by 矢田裕康 »

ABFanの「リストビューの使い方」を拝見して、初めて作ってみましたが、手動で編集出来る様に EndLabelEditイベント に
SendMessage(hList,LVM_SETITEM,0,VarPtr(nmLVDispInfo,item))
としましたが、1列目だけしか編集できません。
2列目も編集したいのですが、教えていただけませんか
yama
記事: 58
登録日時: 2005年5月31日(火) 21:11
お住まい: 新潟市
連絡する:

#2 投稿記事 by yama »

以前同様に悩みまして、EndLabelEditイベントでなく自前にて

Dim buf As String
Dim lvi As LVITEM 'リストビューアイテム構造体
lvi.iItem = 4 'インデックス(縦方向)の位置を指示
lvi.iSubItem = 2 'サブアイテム位置を指示
lvi.mask = LVIF_TEXT 'マスクの設定
buf = "セットする文字列"
lvi.pszText = StrPtr( buf ) 'レコード挿入時の先頭アイテムの内容
SendMessage( hList, LVM_SETITEM, 0, VarPtr(lvi) As Long) 'アイテムを格納

としてみたらうまく行きました。単にリストビューアイテム構造体に必要な条件をセットし、SendMessageを送ればよいようです。

ABFANの方法でなぜできないかは掘下げていません。解決の参考になれば
矢田裕康
記事: 13
登録日時: 2005年10月01日(土) 18:38

リストビューで2列目を編集出来る様にするには

#3 投稿記事 by 矢田裕康 »

yama様 返信有難うございました。
質問の仕方がが下手でした。コードから編集するのではなくて、2つの列に既に表示されているリストをキーボードから修正する時、1番左の列はクリックすれば選択出来るのに、2列目だけはどうしても選択できません。1列目と2列目は対になって選択されたままです。リストビューの仕様がそのようになっているのならあきらめますが、それでは空のリストビューを作って、手入力でリストを追加できませんね。
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

Re: リストビューで2列目を編集出来る様にするには

#4 投稿記事 by 7 »

> 質問の仕方がが下手でした。コードから編集するのではなくて、2つの列に既に表示されているリストをキーボードから修正する時、1番左の列はクリックすれば選択出来るのに、2列目だけはどうしても選択できません。1列目と2列目は対になって選択されたままです。リストビューの仕様がそのようになっているのならあきらめますが、それでは空のリストビューを作って、手入力でリストを追加できませんね。
調べずに書くんですけど、たぶん一列目しか編集できない仕様です。
手動で「項目を追加」してもらう為のダイアログを用意するしかないと思います。

リストビュー上を右クリックされたとき表示するポップアップメニューに「項目の追加」「項目の編集」なんていうのを用意して、項目の情報を操作する為のダイアログを表示すると。
矢田裕康
記事: 13
登録日時: 2005年10月01日(土) 18:38

リストビューで2列目を編集出来る様にするには

#5 投稿記事 by 矢田裕康 »

7さん 有難うございました。ヘルプファイルも頂戴しました。説明が分かりやすいです。
ダイアログ表示というのは難しそうですから、テキストファイルを別に作ってそれを読み込む方に変えてみたいと思います。
確か過去レスに有ったようです。もう一度探してみます。
yamaさんも有難うございました。
返信する