小编Jag*_*san的帖子

设计器更改时控件的属性未正确更新

我创建了一个自定义控件和组件,如下代码所示,

public class CustomComponent : Component
{
    private string style;
    public CustomControl Control { get; set; }
    public string Style
    {
        get
        {
            return style;
        }
        set
        {
            style = value;
            Control.Style = value;
        }
    }
}

public class CustomControl : Control
{
    string style;  
    public string Style
    {
        get
        {
            return style;
        }
        set
        {
            style = value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

之后,我将控件添加到表单中,并将组件添加到表单中。然后尝试分配 Component.Control 值。分配值后,如果我尝试更改组件的样式属性,控件中的样式属性在设计器级别不会更改,如下图所示,

控件中的样式未更新

如果我单击了控件的 Style 属性,它将被更新,如下图所示,

在此输入图像描述

.net c# user-controls windows-forms-designer winforms

7
推荐指数
1
解决办法
2382
查看次数

如何检查是否为控件启用了触摸手势?

在Windows窗体控件中,我已使用SetGestureConfig方法正确配置了触摸手势.它正确配置了控件的触摸手势.在某些情况下,我需要检查控件是否正确启用了特定的触摸手势.我尝试使用GetGestureConfig方法来检查是否启用了特定手势.但是这种方法总是 单独返回false值.而且我尝试使用GetLastError()方法获取错误消息,但它始终返回值0.请找到下面的代码,

        int gestureConfigSize = Marshal.SizeOf(new GESTURECONFIG());
        GESTURECONFIG gc = new GESTURECONFIG();
        gc.dwID = 0;
        gc.dwWant = WindowMessages.GC_ALLGESTURES;
        gc.dwBlock = 0;
        if (SetGestureConfig(control.Handle, 0, 1, ref gc, gestureConfigSize))
            MessageBox.Show("Zoom gesture configured properly");

        GESTURECONFIG gc1 = new GESTURECONFIG();
        gc1.dwID = 0;
        gc1.dwWant = WindowMessages.GC_ALLGESTURES;
        gc1.dwBlock = 0;
        GESTURECONFIG[] gestures = new GESTURECONFIG[] { gc1 };

        bool value = GetGestureConfig(control.Handle, 0, 0, 1, gestures, gestureConfigSize);
        if (!value)
        {
            int errorValue = …
Run Code Online (Sandbox Code Playgroud)

c# gesture-recognition touch gestures winforms

6
推荐指数
1
解决办法
371
查看次数