ListViewで新規フォルダ作成イメージ

このQ&Aのポイント
  • TreeViewとListViewを使用し、Windowsエクスプローラのような画面を作成しています。新規フォルダの作成処理がうまくいかない問題について教えてください。
  • 新規フォルダの作成処理に関して、ListViewにダミーデータを作成し、ユーザーがフォルダ名を変更しなかった場合の処理について教えてください。
  • フォルダ作成の処理はイベントの中に記述しており、名称が変更されなかった場合はフォルダが作成されない問題が発生しています。どのように対処すればよいでしょうか?
回答を見る
  • ベストアンサー

ListViewで新規フォルダ作成イメージ

こんにちは。いつもお世話になっております。 早速ですが質問させて下さい。 TreeViewとListViewを使用し、Windowsエクスプローラのような画面を作成しています。 削除や名前の変更処理などについては完成したのですが、新規フォルダの作成処理だけがうまくいきません。 現状は以下のような処理を考えています。 1.新規フォルダ作成要求があった場合にListViewにダミーのデータ(Text="新しいフォルダ")を作成 2.ダミーデータを選択状態にする 3.BeforeLabelEditイベントを発生させる (ソースコードがなくてごめんなさい) これによってエクスプローラでフォルダの作成を実施した場合と同様のイメージになります。 ただ問題はこの後で、ユーザーがフォルダ名をデフォルトの"新しいフォルダ"から変更した場合AfterLabelEditイベントが発生するのですが、変更しなかった場合にイベントが発生しないことにあります。 実際のフォルダ作成の処理はイベントの中に記述しているため、名称が変更されなかった場合はフォルダの作成が行われません。(ListViewの見た目だけ表示される) 名称が変更されなくてもフォルダ作成の処理を行うにはどうしたらよいでしょうか? どうかご教示下さい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

お世話になります。 ちょっと良く解ってないかもですけど、 ダミーのものを作った時点でフォルダを 実際に作成するのはダメなんですか? Windows の Explolrer でもそうなってますよね。

sputnik8823
質問者

お礼

naganaga_001さん、回答ありがとうございます。 (返事が遅くなり申し訳ありません) ダミーを作成した時点でフォルダを実際に作成することでうまくいきました。 本当にありがとうございました。

関連するQ&A

  • ツリービューでのドラッグイメージの作成方法

    VC++でエクスプローラもどきを作成しています。 ListViewからTreeViewへ、ファイルをドラッグする際、 マウスカーソルにファイルイメージを追従させようとしています。 ListView内でのドラッグは作成できたのですが、 TreeViewへ移った際に、CreateDragImageでドラッグを作成するためには HTREEITEMを渡さなくてはいけません。 TreeViewで表示させているのは、フォルダアイコンのみなので、 ファイルをドラッグした際に、該当するようなitemがありません。 TreeViewへitemをinsertして表示させるわけにはいかないのですが、 このような場合、どのようにして、 ドラッグイメージを作成すべきなのでしょうか?

  • フォルダの新規作成が遅い

    フォルダの新規作成を行った後、エクスプローラが動くようになるまでの時間がかなり遅いという現象がおこっています。 かなり遅いというのは、5分くらいだと思います。 フォルダの新規作成だけではなくて、名前の変更でもそうなります。 エクスプローラが止まってしまうので、新規にエクスプローラを立ち上げて、新規作成したフォルダを見てみると作成されています。 ということは、エクスプローラが戻ってくるのが遅いだけのようです。 フォルダの新規作成では「新しいフォルダ」という名前になってしまうので、必然的に名前の変更が発生します。 それで、エクスプローラをいくつも立ち上げて作業を行うことになります。(TT) この現象は常に起こるわけではなくて、どうもブリーフケースで「すべてを更新」を行った後に起こるようです。 一度この現象が発生すると、再起動するしかなくなります。。。(TT) OS:Windows98 SE 何か手立てはありませんでしょうか? よろしくお願いします。

  • ListViewについて

    いつもお世話になっています。 タイトルの通り、ListViewについて2つ質問があります。 (1)ListViewにDBから検索したデータを代入してますが、動きが遅いんです。  各項目ごとで色を変更したりするためだと思いますが、ListViewの表示を速くする方法はなにかありませんか?  ちなみに今は、ListViewを2枚使って、データをセットしている間は、VisibleをFalseにして、  データセットが完了した時点で、Trueに切り替えています。 (2)(1)の動きで、ListViewを使っているところ、今表示されているListView(Iとします)で  クリックしたデータを次に表示させるListView(IIとします)に引き継がせたいです。  Iで、選択している行をIIで選択状態にすることはできたのですが、  Iで選択している行がスクロールして下にあった場合、IIでもスクロールした場所に  ListViewを移動させたいのですが、その方法が分かりません。 何かご存知の方がいましたら、教えてください。 よろしくお願いいたします。

  • C#:ListViewでのスクロールイベントの取得について

    .Net2003 C# にてアプリを作成しています。 .Netを始めて初心者です。(プログラミング経験も浅いです) ListView1とListView2を作成して、 ListView2がスクロールしたら、ListView1も同じくスクロールさせる と言ったListViewのスクロールの同期化処理を行いたいのですが、 ソースコードが思いつきません。 ListViewのイベント、プロパティにはスクロール情報を取得するモノが みつかりませんでした。 現在は下記サイトを参考にさせて頂き、スクロールイベントの発生をキャッチする所までは なんとかたどり着いたのですが、ここからどうやって ListView1にスクロール同期化をさせるコードを書いていいのかが 思いつきません。 何か参考になるHPや、コードがありましたら教えてください。 http://dobon.net/vb/dotnet/control/firescrollevent.html から以下コードを参考にしました。 protected override void WndProc(ref Message m) { const int WM_HSCROLL = 0x114; const int WM_VSCROLL = 0x115; switch (m.Msg) { case WM_HSCROLL: Console.WriteLine( "水平スクロールバーがスクロールされました。"); break; case WM_VSCROLL: Console.WriteLine( "垂直スクロールバーがスクロールされました。"); break; } base.WndProc(ref m); }

  • DragEnterイベントについて(VS2008、ドラッグ&ドロップ)

    VisualStudio2008 C# で開発をしています。 ListViewにエクスプローラーからファイルをドラッグ&ドロップしようとしているのですが、うまくできません。 いろいろと調べて下記の3点を抑えればできるのかと思っていますが、思ったように動きません。 ListViewのAllowDrop=True; DragEnterイベントでe.Effect = DragDropEffects.Copy; DragDropイベントでDropした後の処理 きちんと記述しているつもりですが、DragEnterイベントが発生しません。 ちなみに、同じListViewの要素をドラッグ&ドロップするとDragEnterイベントは発生するので、あくまで外部(エクスプローラーなど)からドラッグされたものが受け付けないようです。 何が原因なのでしょうか? ほかに設定などあるのでしょうか?

  • フォルダの新規作成

    エクスプローラでフォルダの新規作成を行う場合、現在は「ファイル」>「新規作成」>「フォルダ」の手順で行っています。これをマウスの右クリックメニューの「コピー」などの要領でフォルダの新規作成が行う方法を教えて下さい。

  • BeforeExpandのイベント作成方法

    いつもお世話になっています。 C#をはじめて3日目の初心者です。 C#でツリーコントロールをしようしてディレクトリツリーを作成しています。 ノードを展開しようとしているときに発生するイベントが「BeforeExpand」であることまで調べられたんですが、「TreeView」イベントから「BeforeExpand」を作成する方法がわかりません。。。 フォームをダブルクリックするとForm1_Loadのコードが自動で作成されますが、「TreeView」に対して何かをすればできると思っています。。。 ご存知の方よろしくお願いします。

  • OE6の保存先上位フォルダ名称を変更した場合

     XPにて、OE6を使用しています。 今日、無意識に、メール保存先フォルダの上位フォルダの名称を変えてしまいました。 数時間後、OE6を起動すると、メールデータ、フォルダとも全て消えてしまい、初期状態になりました。 エクスプローラで確認すると、フォルダ名を変更したにも関わらず、元の上位フォルダとメールフォルダだけは残っていました(新たに作成された?)。しかし、データは初期化されていて、検索しても消去前のdbxファイルはありません。 ただ、cleanup.logファイルが作成されていて、開くと、4回ほど、クリーンアップ?を実行していました。フォルダ名を変更した瞬間ではないと思います。  私がフォルダ名を変更したのが原因でしょうか? またはウイルス?でしょうか? さらに、クリーンアップ処理で、メールは消えてしまうのでしょうか?  申し訳ございませんが、お教え下さい。

  • ListViewでサブアイテムが表示されない

    VC++2008にて、プロジェクト形式がWindowsエクスプローラの MFCアプリケーションにてプログラムを作成しています。 ListViewにて、InsertColumn、InsertItem、SetItemTextを 行い、カラムと項目のデータ設定をしているのですが、 ListViewを詳細表示にすると、設定したサブアイテムが 表示されない場合があります。 InsertItemで設定した文字列は、設定した分だけ、 左端にキチンと表示されているのですが、 それ以降のサブアイテムについては、表示されている行もあれば 表示されていない行もあります。 1行に複数のサブアイテムを設定しているのですが、 表示されている場合は、サブアイテム全てが表示されており、 表示されていない場合は、サブアイテム全てが表示されていません。 デバッグで追う限り、データ設定自体は問題なく、 表示される行と、されない行について、 差異を探してみましたが、別段、違ったことはしていません。 ListViewについては、PreCreateWindowにて cs.style |= TVS_SHOWSELALWAYS; cs.style |= LVS_SINGLESEL; cs.style &= ~LVS_TYPEMASK; 上記、設定を行っています。 この他に、何か設定が足りなくて、表示されていないのでしょうか?

  • フォルダ作成時の名前の変更について。

    フォルダ作成時の名前の変更について。 先日Windows 7を購入しました。 それで新しくフォルダを作成すると「新しいフォルダー」となります。 この作成時の名前を変えるにはどうすればいいでしょうか? 右クリック→名前の変更ではなく、デフォルトの名前を変更したいのです。