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

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: リストビューで2列目を編集出来る様にするには

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

by 矢田裕康 » 2007年2月11日(日) 22:18

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

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

by 7 » 2007年2月11日(日) 19:41

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

リストビュー上を右クリックされたとき表示するポップアップメニューに「項目の追加」「項目の編集」なんていうのを用意して、項目の情報を操作する為のダイアログを表示すると。

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

by 矢田裕康 » 2007年2月11日(日) 19:26

yama様 返信有難うございました。
質問の仕方がが下手でした。コードから編集するのではなくて、2つの列に既に表示されているリストをキーボードから修正する時、1番左の列はクリックすれば選択出来るのに、2列目だけはどうしても選択できません。1列目と2列目は対になって選択されたままです。リストビューの仕様がそのようになっているのならあきらめますが、それでは空のリストビューを作って、手入力でリストを追加できませんね。

by yama » 2007年2月11日(日) 12:57

以前同様に悩みまして、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の方法でなぜできないかは掘下げていません。解決の参考になれば

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

by 矢田裕康 » 2007年2月10日(土) 21:14

ABFanの「リストビューの使い方」を拝見して、初めて作ってみましたが、手動で編集出来る様に EndLabelEditイベント に
SendMessage(hList,LVM_SETITEM,0,VarPtr(nmLVDispInfo,item))
としましたが、1列目だけしか編集できません。
2列目も編集したいのですが、教えていただけませんか

ページトップ