C#3.5を使用しています。
treeView1にはnameが「ノード1」のノードがセットされていて、
それを次のようにして
TreeNode newNode;
newNode = new TreeNode(treeView1.SelectedNode.Name);
newNode.Text = "ノードテキスト変更";
treeView1.SelectedNode = newNode;
MessageBox.Show(treeView1.SelectedNode.Text);// ノード1のまま・・・
ノードを編集したと思ったのですがノードのテキストは変更されませんでした。
間に直接
treeView1.SelectedNode.Text = newNode.Text;
を入れるとテキストは変更されるのですが、ノードそのものを入れ替える(編集する)には
どのように記述すれば良いのでしょうか?
No.1ベストアンサー
- 回答日時:
こんばんは。
新規ノードを追加した後、選択ノードを引っこ抜かないといけないのではないでしょうか。
新規ノードを追加する際、ツリーの形状を辿って適切な位置に入れないといけないので、再帰を使って話を進めた方が楽かもしれません。
速度面等、色々とアラはあると思いますが、以下参考程度に。
private bool SwapTreeNode(TreeNodeCollection tvnc, TreeNode selectedNode, TreeNode newNode)
{
for (int n = 0; n < tvnc.Count; ++n)
{
//選択ノードを発見
if (tvnc[n] == selectedNode)
{
//新規ノードを追加
tvnc.Insert(n, newNode);
return true;
}
//+1階層下へ再帰する
if (SwapTreeNode(tvnc[n].Nodes, selectedNode, newNode))
return true;
}
return false;
}
private void ???()
{
//新規ノード作成
TreeNode newNode = new TreeNode(treeView1.SelectedNode.Name);
newNode.Text = "ノードテキスト変更";
//ツリー形状を辿って選択ノードの位置を見つけて新規ノードを追加
SwapTreeNode(treeView.Nodes, treeView.SelectedNode, newNode);
//選択ノードを引っこ抜く
treeView.SelectedNode.Remove();
//新規ノードを選択する
treeView.SelectedNode = newNode;
//確認
MessageBox.Show(treeView1.SelectedNode.Text);
}
ご返答ありがとうございます。
なるほど、選択してる場所を探して入れ替えるわけですか。
そのやり方できました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
TreeViewに重複する値をセット
-
コンテキストメニュークリック...
-
C言語:文字列の並び替え
-
解析木
-
昔Winnyってありましたけど、あ...
-
ルート要素ノードが2個ある場合?
-
グラフ色塗り問題のプログラミ...
-
SNMP リンクダウンとノードダ...
-
RSSからblog(ブログ)の本文を抽...
-
あるノードリストに、特定の名...
-
TreeViewの再表示のちらつきを...
-
XMLで要素が記述された順番に意...
-
XMLからデータを取得
-
VBSでxmlの値を書き換えたい
-
東芝のDynabookなのですがアン...
-
eclipseへのxmlファイル追加
-
MSXMLを使ってノードを削除した...
-
バッチファイルでテキストファ...
-
TOMCAT起動エラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
SNMP リンクダウンとノードダ...
-
ルート要素ノードが2個ある場合?
-
昔Winnyってありましたけど、あ...
-
C#でTreeViewのCheckBoxのサイ...
-
同じタグ名の項目取得
-
XML文書の指定した属性値を持つ...
-
複数のマックPCによる数値計算...
-
TreeView の初期表示について
-
あるノードリストに、特定の名...
-
TreeViewに重複する値をセット
-
ノードとは
-
C#のツリービューでツリーノー...
-
2分探索木の高さを求めるプロ...
-
C# TreeView 効率良いノード追...
-
TreeViewの再表示のちらつきを...
-
TreeViewで複数ノードの選択は...
-
4色定理はなぜグラフ理論で証...
-
ツリービューのノードをダブル...
-
ツリービューの使い方が・・・
おすすめ情報