タイトル : Re^5: もう一度整理して冷静に考えてみました。 投稿日 : 2009/05/24(Sun) 22:42 投稿者 : 魔界の仮面弁士
> > 「年」に関する指摘をしようかと思っていました。あの記述だと、OS の設定が > > 和暦モードになっていると、2009 ではなく 21 になってしまうでしょうから。 > でも、こちらのほうではyyyyにしても、正常に表示されています。 OS の設定(コントロールパネルの地域設定)が、西暦モードに設定されている場合、 先のコードにある yyyy は 2009 を返します。一方、和暦モードに設定されていた場合は、 (2009 ではなく) 21 が返されます。その点は把握しておられますでしょうか。 地域設定に連動して表示形式を切り替えたいのか、それとも、環境に依存することなく、 常に同じ形式で表示させたいのかは、アプリケーションの求める仕様によって異なりますが、 もしも、「20090523」や「2009/05/23」のように桁数を固定的に出力したいのだとしたら、 西暦/和暦が切り替わってしまっては都合が悪いでしょうから、常に西暦で出力するための コードを紹介しようかと思っていました。元のコードが削除されたので、投稿は取りやめましたが。 > 先ほど、ヘルプ(VS2005環境)で再確認したところ、Format関数を使う場合は > 月=M、分=m のようです。同じMとmなので紛らわしいけどね。 あれ?? No.8987 にて「それはすでに解決済みです」とあったので、もっと前に その情報を得ていたのかと思っていましたが…別の方法で解決されていたのですね。 > 私が言いたかったのは、複数ノードからひとつのノード(下層ノードも含む)を選択して移動するようにしたい。これをひとつずつ繰り返したい。 No.8987 に提示いただいた図の意味を、 ・複数ノード(Node0〜Node4、Node7〜Node11)からなる階層がある。 ・そこから、ひとつのノード Node7★1(およびその子孫ノード)を選択して、 それを Node7 ☆1の位置に移動させ、さらにそこに 2 つのノードを追加する。 ・さらに、別のノード Node11★2(およびその子孫ノード)を選択して、 それを Node11 ☆2の位置に移動させ、さらにそこに 2 つのノードを追加する。 という意味に捉えたのですが、そういう意味では無かったのでしょうか。 なお「選択」という言葉から、SelectedNode を使うのかな、とも思ったのですが、以前、 >>> ZZZ = TreeView1.SelectedNode ← どんなノードを選択するコードですが、その辺が分からないのです。 とあったので、SelectedNode を使わずに指定する方法を記述しました。 (もっとも、今回の主眼点は移動法にあるので、ノードの指定法は本題ではありませんけれども) > If Not TreeView1.Nodes.IsReadOnly Then > If (TreeView1.SelectedNode IsNot Nothing) Then > Dim t As TreeNode = TreeView1.SelectedNode > TreeView1.Nodes.Remove(t) > TreeView1.Nodes(0).Nodes(1).Nodes.Insert(TreeView1.Nodes.Count, t) > End If > End If > これはいいなとは思いましたが、 そのコードは、ヘルプなどに挙げられているサンプルに手を加えたもののようですね。 http://msdn.microsoft.com/ja-jp/library/system.windows.forms.treenodecollection.isreadonly.aspx http://msdn.microsoft.com/ja-jp/library/system.windows.forms.treenodecollection.remove.aspx http://msdn.microsoft.com/ja-jp/library/5w99w164.aspx > > t.Nodes.Add("任意2_1") '新たな追加 > > t.Nodes.Add("任意2_2") '新たな追加 > を加えるにはまた違う内容になるため、色々作成してみましたが反映されてません。 まだ完成はしていないものの、作成の見通しは立ってきたといったところでしょうか。 頑張ってください。何か不明な点があればお手伝いしますよ。 |