问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

有关C#开发窗体程序,在窗体运行后用鼠标可以拖动控件方法,具体问题在问题补充,求大神解答

发布网友 发布时间:2022-04-26 21:53

我来回答

1个回答

热心网友 时间:2022-04-26 23:22

 C# 不太熟悉  也就是语法问题 我这里用VB.net 做的 算是给你一个思路吧 只完成了你的功能 具体的还要你自己做了

Public Class PointMove
    Private FormParent As Form
    Private Mycontrols As New List(Of Control)
    Sub New(ByRef p As Form)
        FormParent = p
        ' 此调用是 Windows 窗体设计器所必需的。
        InitializeComponent()
        LoadControls()
        ' 在 InitializeComponent() 调用之后添加任何初始化。
    End Sub
    Sub LoadControls()
        Me.Controls.Clear()
        Me.Size = FormParent.Size
        For Each i As Control In FormParent.Controls
            Dim t As Control
            t = Activator.CreateInstance(i.GetType)
            t.Visible = i.Visible
            t.Location = i.Location
            t.Size = i.Size
            t.Text = i.Text
            t.Tag = i
            AddHandler t.Click, AddressOf Obj_Click
            AddHandler t.MouseDown, AddressOf Obj_MouseDown
            AddHandler t.MouseMove, AddressOf Obj_MouseMove
            AddHandler t.MouseUp, AddressOf Obj_MouseUp
            Me.Controls.Add(t)
        Next
    End Sub
    Private Sub Obj_Click(ByVal sender As Control, ByVal e As EventArgs)
        Dim tem As Control = Mycontrols.Find(Function(value As Control) sender.Equals(value))
        If tem Is Nothing Then
            Mycontrols.Add(sender)
            sender.BackColor = Color.Blue
        Else
            Mycontrols.Remove(tem)
            tem.BackColor = tem.Tag.BackColor
        End If
    End Sub
    Private Sub PointMove_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        For Each i As Control In Me.Controls
            i.Tag.Location = i.Location
        Next
    End Sub
    Dim k As Control, p As Point, b As Boolean
    Private Sub Obj_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        k = Mycontrols.Find(Function(value As Control) sender.Equals(value))
        If k IsNot Nothing Then
            p = e.Location
            b = True
        End If
    End Sub
    Private Sub Obj_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        If b = True Then
            For Each i As Control In Mycontrols
                i.Location = New Point(i.Left + e.X - p.X, i.Top + e.Y - p.Y)
            Next
        End If
    End Sub
    Private Sub Obj_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        b = False
        k = Nothing
    End Sub
End Class

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
LG棒棒糖GD580这么看书 lg gd580怎么用moto看小说 各种海鲜馅饺子大全 海鲜水饺都有什么馅儿的 用网上交易系统进行股票操作资金安全吗,我是在中信建投开的户 北京瀚正化妆学校包就业吗 通江车检在哪里,可以摩托车年审不? 摩托车年审在通江县哪里啊 我是四川省通江县人、我是摩托车驾驶证,以快到期,请问我在江苏无锡... 通江县哪里可以托运摩托车 采耳营业执照经营范围怎么写 俄罗斯战争片《风暴之门》那里有完整的下载? 俄罗斯战争电影 炼狱 俄罗斯战争片第九连的俄语中字高清下载地址 崇礼行政审局是啥编制 谁有《滕王阁序》的重点字词解释,谢谢。 事半功倍相近的成语 事半是不是词语 事半功倍的相关词语 事半功倍是贬义词还是褒义词,它又是什么意思 事半功倍与事倍功半两词的解释。 "事半功倍","事倍功半"这两个词应该怎么解释? 事半功倍,神机妙算,随身附和,高谈阔论词语的意思 这种断路器火线零线怎么接,接反了会怎么?还有进线出线接反还会起保护吗? 小型断路器进出线接反能正常工作吗? 剩余电流动作断路器反接后会被烧毁吗 漏电断路器可以倒着装吗 如果反接有什么后果 正面像飞鹰背面像千手观音是哪个国家的银元?照片上其它银元有多少收藏价值?请高手一一说明一下?http:// 如果漏电断路器把电源线接反了会怎样? 断路器为什么不能倒接 为什么刷视频的时候有的视频一刷就过了有的看到一段之后死也播不下去? 调查称我国网民人均单日刷短视频超2小时,我们该如何戒掉短视频的瘾? 男生 头发少 应怎样烫发 be动词可以做谓语吗 BE动词可以当谓语吗? 发量少的男生适合烫哪种发型 be动词是谓语动词吗? 英语中什么叫谓语,be动词算不算 BE动词可以做谓语吗? 所谓的谓语动词就是be动词吗? 老师你好,我想问一下be动词可以单独做谓语吗。英语的句子成分真的搞不清楚该怎样学习。 be动词出现在句中就一定是谓语动词么? be动词可以做谓语吗。 BE动词可以做谓语吗? 什么情况下不是系动词而是谓语? be动词可以是谓语么?举个例子 be动词在什么时候可以作谓语动词 为什么be动词是谓语动词? 为什么be动词可以作谓语,而其他助动词不能作谓语,难道be动词不算助动词吗,请大神告诉我 be动词什么时候做系动词什么时候做谓语,举例说明 在英语句子中,因为be动词有很多种身份,那我怎样判断在一个句子中,be动词是充当系动词还是做谓语