如何设置用户控件的默认值?

时间:2011-10-26 05:33:29

标签: c# .net winforms

我有一个名为PicturePanel的用户控件。在鼠标事件(MouseDown,MouseMove,MouseUp)上,我有以下内容:

protected override void OnMouseDown(MouseEventArgs e)
{
    if (marquee == true && e.Button == MouseButtons.Left && BackgroundImage != null)
    {
          //Code to create rectangular marquee
    }
    else
    {

    }
}
默认情况下,

类级别变量private bool marquee = false。一个公共的。

private bool marquee = false;
public bool Marquee
{
    get { return marquee; }
    set { marquee = value; }
}

我甚至尝试在初始化时分配false

public PicturePanel()
{
    InitializeComponent();
    marquee = false;
}

但是marquee默认情况下总是如此。如果我想关闭选框,我必须通过表单中的公共变量picturePanel1.Marquee = false进行设置。如何在用户控件中默认使用marquee false?

3 个答案:

答案 0 :(得分:1)

我不确定这是否就是您所说的,但如果您指的是设计器中显示的默认值,那么您只需要添加以下内容属性属性:

[DefaultValue{false)]
public bool Marquee
...

答案 1 :(得分:0)

嗯,默认情况下,布尔值总是假的。你碰巧没有一个名为marquee的局部变量?

只需在private bool marquee = false;上设置一个断点,然后单步执行代码即可快速找到它。

答案 2 :(得分:0)

您的问题可能是当您使用设计器“绘制”窗体上的控件时,它可能正在注册MouseDown事件,将Marquee设置为true。您可以通过检查事件处理程序中的this.DesignMode来阻止这种情况。

示例:

if (this.DesignMode) return;