画面・グラフィック
- ツリービュー、ダブルクリックで展開しない
ツリービューコントロールでは、デフォルトでノードをダブルクリックするとFold/Unfoldされてしまいます。ノードをダブルクリックされたときに編集画面を開きたい場合等ではこの機能が邪魔になります。無効にするにはプロパティでというわけにはいかず、以下のような処理を入れる必要があります。
public partial class FormTreeDouble : Form
{
public FormTreeDouble()
{
InitializeComponent();
}
bool _bDoubleClicked;
private void FormTreeDouble_Load( object sender, EventArgs e )
{
// ダミーデータ
TreeNode parent = new TreeNode( "Parent" );
treeView1.Nodes.Add( parent );
for( int i = 0; i < 10; i++ )
{
TreeNode node = new TreeNode( "Sample" + i );
node.ToolTipText = "NodeToolTipText" + i;
parent.Nodes.Add( node );
}
treeView1.ExpandAll();
}
private void treeView1_MouseDown( object sender, MouseEventArgs e )
{
if( e.Clicks == 2 )
{
_bDoubleClicked = true;
}
else
{
_bDoubleClicked = false;
}
}
private void treeView1_BeforeExpand( object sender, TreeViewCancelEventArgs e )
{
if( _bDoubleClicked == true )
{
e.Cancel = true;
_bDoubleClicked = false;
}
}
private void treeView1_BeforeCollapse( object sender, TreeViewCancelEventArgs e )
{
if( _bDoubleClicked == true )
{
e.Cancel = true;
_bDoubleClicked = false;
}
}
}