プログラムの勉強を始めたばかりのものです。
Visual Studio Community 2017 を使用して C# で Windows Form Application を勉強中です。
添付の図のようにForm上にListBoxを配置して、ユーザーが選択したアイテムの値をListBox上で直接リネームできるようにしたいのですが(Windowsのファイルをリネームする操作のように)、どう記述すれば良いでしょうか?
やりたいこととしては下記リンク先の解説のようなことです(こちらはListViewの例ですが)。
「ListViewのアイテムのテキストをユーザーが編集できるようにする」
https://dobon.net/vb/dotnet/control/lvlabeledit. …
・ゆっくり2回クリックすることで、編集できるようにする
・F2キーを押すことで、編集できるようにする
別の解決法として「ListBoxのアイテムをダブルクリックするとリネーム用のダイアログのFormが開いて、リネームできる」というのも試し中なのですが、ユーザーの操作が煩雑になるのでできれば避けたいと考えています。
こちらについて、アドバイスをいただけるととても嬉しいです。
よろしくお願いします。m(_ _)m
No.2ベストアンサー
- 回答日時:
No.1です。
お礼を見て。
リストボックスをClickしてTextBox1に表示し、内容を書き換えTextBoxをダブルクリックしてでもよければ、
別質問のコードと関連しますが、
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
textBox1.Text = listBox1.SelectedItem.ToString();
}
private void textBox1_DoubleClick(object sender, EventArgs e)
{
int id = listBox1.SelectedIndex;
lst = new List<string>(listBox1.Items.Cast<string>().ToList());
listBox1.Items.Clear();
string st = textBox1.Text;
lst.RemoveAt(id);
lst.Insert(id, st);
listBox1.Items.AddRange(lst.ToArray());
}
こんな感じでなら可能ですけど。
ただ画像を見ると2つリストボックスがありますから、どっちから飛ばしたとかまだ改良の余地はあるかな?
No.3
- 回答日時:
No.2です。
リストボックスもダブルクリックイベントの方が良いかも?
private void listBox1_DoubleClick(object sender, EventArgs e)
{
textBox1.Text = listBox1.SelectedItem.ToString();
}
めぐみんさん、度々のアドバイスをありがとうございます‥!
実はTextBoxに打ち込んだ文字列をボタンクリックでリネームするというのはすでに試し済みでして
UIの見やすさや操作の直感的さから見送りました。。
ですが、本回答で教えて頂いたように
Listを使ってリストアイテム入れ替えするのと同様に
アイテムの値も入れ替えられるのですね。
これはとても便利と思いましたので、覚えておきます!
No.1
- 回答日時:
TextBoxではないので楽にはいかないでしょう(たぶん)
継承とか使えばですが、結局『別の解決法』より頭が痛くなるかもです(たぶん・・・継承苦手でして)
ComboBoxならどうかなぁ~
試した事ないから不明です。
・・・殆ど回答になってませんね。
めぐみんさん、ご回答ありがとうございます!
なるほど、プログラム自体、勉強を開始したばかりの私の手には負え無さそうですね。。
今回はダイアログを出す方向で実装を進めたいと思います!
余談ですが、メーラーで言えば、件名を一覧してポチポチとアイテムの選択をすると内容がTextBoxに表示される‥というような、アイテムが一覧された中からアイテムを手軽に切り替えられるようなツールを作りたいと思っているのでListBoxを試している感じになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Word(ワード) Word 2016のマクロを Word 2021のWordでキー動作させたい 3 2023/04/12 16:14
- Mac OS Macのスクリーンショット保存する前に名前を指定したい 3 2022/08/29 04:08
- UNIX・Linux ubuntuサーバーを久々に再起動したらネットにつながらなくなった。 1 2022/06/06 16:21
- その他(開発・運用・管理) コマンドプロンプトまたはpower shellなどを用いてのフォルダ内のファイル一括リネーム方法をご 4 2022/10/24 09:42
- Windows 10 パソコンの操作ができません。。。 4 2022/06/02 18:38
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- Excel(エクセル) テキストの背後にあるオブジェクトとは 3 2023/01/03 20:22
- Windows 10 プロファイルエラーについて 2 2022/12/16 09:31
- C言語・C++・C# ActiveXコントロールを.NETにインポートできない??? 2 2023/05/02 02:50
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
このQ&Aを見た人はこんなQ&Aも見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
遅刻の「言い訳」選手権
よく遅刻してしまうんです…… 「電車が遅延してしまい遅れました」 「歯医者さんが長引いて、、、」 「病院が混んでいて」 などなどみなさんがこれまで使ってきた遅刻の言い訳がたくさんあるのではないでしょうか?
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
好きな和訳タイトルを教えてください
洋書・洋画の素敵な和訳タイトルをたくさん知りたいです!【例】 『Wuthering Heights』→『嵐が丘』
-
C# ListBoxのインデックスの値を入れ替えたい
C言語・C++・C#
-
開始と終了を指定して、その間の日付を取得したい。
C言語・C++・C#
-
C# formの2重起動禁止
C言語・C++・C#
-
-
4
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
5
テキストボックスに入力された値の判定
Visual Basic(VBA)
-
6
【C#】textBoxの指定行のデータを削除
C言語・C++・C#
-
7
C# ReadOnlyのTextBoxで
C言語・C++・C#
-
8
C#でButtonのフォーカス枠を消したいのですが
C言語・C++・C#
-
9
C# Listを使わずに2次元配列の動的確保をしたいです。
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Java8以降】csvファイルの複...
-
strcmp関数などでの複数の文字...
-
マルチスレッドで同時にFTPアッ...
-
変数を動的に利用するには?
-
C言語のポインターに関する警告
-
大量のデータを読み込んで表示...
-
EXCEL VBA で、0から?1から?
-
[JAVA]try 内の変数を外で!?
-
「例外 *** は対応する try 文...
-
ORA-01858: 数値を指定する箇所...
-
getStringの値がNULLの時の処理
-
ダブルクォーテーションのrepla...
-
javascriptで文字列のsjis利用...
-
JSPやサーブレットでSystem.out...
-
BOOL値を逆にしたい
-
ループ処理の際、最後だけ","を...
-
,で句切って部分一致をファイ...
-
yyyymmddからyyyy/mm/d...
-
javaで質問です。 文字列2023/2...
-
wsprintf関数の使い方について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
strcmp関数などでの複数の文字...
-
C# ListBoxのアイテムをユーザ...
-
jap実行時のTomcatのエラーに困...
-
特定の文字列が一致する行から...
-
マルチスレッドで同時にFTPアッ...
-
【Java8以降】csvファイルの複...
-
「指定されたキャストは有効で...
-
C#での関数テーブルの作り方
-
Delphiで改行文字の置換がうま...
-
ArrayListを改良したい
-
GridViewで複数のDropDownList...
-
strtokでの空文字への置き換え
-
C#でIPアドレスの取得について
-
c言語
-
C#での関数テーブルの作り方
-
GDI+ DrawString() で指定範囲...
-
PHPのSHA256変換について
-
C# JSONについて
-
XP+PHP+POSTGRES(SJIS)
-
C++のmap
おすすめ情報