C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: TreeNodeを太字にすると表示が欠ける


(過去ログ 13 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■4030 / inTopicNo.1)  TreeNodeを太字にすると表示が欠ける
  
□投稿者/ こうへい (1回)-(2007/06/01(Fri) 16:38:40)

分類:[C# (Windows)] 

System.Windows.Forms.TreeView に
太字のTreeNodeを追加すると末尾の表示が欠けてしまいます

TextBox、Button、TreeViewを1つずつ置いたフォームで
試してみたのですがやはり欠けてしまいました

以下テストしたコードです

private void button1_Click(object sender, EventArgs e)
{
  TreeNode node = new TreeNode(textBox1.Text);
  node.NodeFont = new Font(treeView1.Font, FontStyle.Bold);
  treeView1.Nodes.Add(node);
}

例えば「123456」ぐらいで欠けてしまいます
フォントの指定がまずいのでしょうか?

node.NodeFont = new Font(SystemFonts.DefaultFont, FontStyle.Bold) や
node.NodeFont = SystemFonts.CaptionFont
も試してみましたがダメでした

太字にしたいのは一部のノードなので
おしりにスペースを付け足して回避しているのですが(^^;
こんな方法で良いとは思えないので
解決策をお持ちの方、ご教授お願いします


Windows XP Prossional SP2
Visual Studio 2005 Version 8.0.50727.42
.NET Framework Version 2.0.50727
# 環境を先頭に書いたらスパム扱いになりました(^^;

引用返信 編集キー/
■4034 / inTopicNo.2)  Re[1]: TreeNodeを太字にすると表示が欠ける
□投稿者/ J.Hashimoto (6回)-(2007/06/01(Fri) 22:19:50)
No4030 (こうへい さん) に返信
treeView1のFontもBoldにしてみてください。

TreeNode.NodeFont プロパティ (System.Windows.Forms)
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.treenode.nodefont(VS.80).aspx
より引用

メモ
ノードのフォントが TreeView コントロールの Font プロパティで設定されている値よりも大きい場合、ツリー ノード ラベルのテキストはクリップされます。

引用返信 編集キー/
■4046 / inTopicNo.3)  Re[2]: TreeNodeを太字にすると表示が欠ける
□投稿者/ こうへい (2回)-(2007/06/04(Mon) 14:46:22)
No4034 (J.Hashimoto さん) に返信

J.Hashimoto 様ありがとうございます

MSDNは読んだつもりだったのですが
メモは見逃していました(^^;

> treeView1のFontもBoldにしてみてください。

まさにこの方法で解決できました。


が、この場合
TreeNode のフォントのデフォルト(無指定の場合)が Bold になると思います
Bold にしたい TreeNode は一部(数%)なので
通常の TreeNode に FontStyle.Regular を指定したくないなぁ
と、あれこれやってみました


VC# TreeViewでノードの文字列が途切れる @ 7bit
http://nanabit.net/blog/2006/12/03/vcs-treeview/
こちらの情報を参考に

TreeNode node = new TreeNode();
node.NodeFont = new Font(SystemFonts.DefaultFont, FontStyle.Bold);
node.Text = textBox1.Text;
treeView1.Nodes.Add(node);

としてみましたがダメ

もしかして順番?と思い

TreeNode node = new TreeNode();
treeView1.Nodes.Add(node);
node.NodeFont = new Font(SystemFonts.DefaultFont, FontStyle.Bold);
node.Text = textBox1.Text;

TreeView への Add を先にしてやるとOKでした


TreeView に Add
FontStyle.Bold の設定
(この2つは逆でも可)

その後で TreeNode.Text を設定する

これで解決しました。ありがとうございました
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -