bartekmotyl / simple-video-cutter

Windows-based tool for efficient browsing and cutting video footage
MIT License
320 stars 42 forks source link

How I can port your code to be used in .NET 5.0? #40

Closed zydjohnHotmail closed 2 years ago

zydjohnHotmail commented 3 years ago

Hello: I found your repo, which is very good. Now, I want to port your repo to target .NET 5.0. I am now working on the WinForms part, and I have some technical issues. I have done this: I created a WinForms App project, target .NET 5.0, I am using Visual Studio 2019 (Version 16.10.4) on Windows 10. I installed all necessary nuget packages, except NetStandard.Library, which VS 2019 can’t install it. I can easily add all toolStrips, like: toolStripTasks, toolStripSelection, toolStripFile, etc. I also added all toolStripButton, toolStripLable into each toolStrip. However, when I need to create user control of VideoCutterTimeline. I think it is a user control, which I can find from Toolbox in MainForm.cs. I have created another project (Window From Control Library), called. VideoCutterTimeline. The following is the code of UserControl1.Designer.cs:

namespace VideoCutterTimeline { partial class VideoCutterTimeline { ///

/// Required designer variable. /// private System.ComponentModel.IContainer components = null;

    /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    protected override void Dispose(bool disposing)
    {
        if (disposing && (components != null))
        {
            components.Dispose();
        }
        base.Dispose(disposing);
    }

    #region Component Designer generated code

    /// <summary>
    /// Required method for Designer support - do not modify 
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
        this.SuspendLayout();
        // 
        // VideoCutterTimeline
        // 
        this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
        this.Name = "VideoCutterTimeline";
        this.Size = new System.Drawing.Size(1296, 71);
        this.Paint += new System.Windows.Forms.PaintEventHandler(this.VideoCutterTimeline_Paint);
        this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.VideoCutterTimeline_MouseDown);
        this.MouseLeave += new System.EventHandler(this.VideoCutterTimeline_MouseLeave);
        this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.VideoCutterTimeline_MouseMove);
        this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.VideoCutterTimeline_MouseUp);
        this.Resize += new System.EventHandler(this.VideoCutterTimeline_Resize);
        this.ResumeLayout(false);
    }
    #endregion
}

} But I found resource manager part is difficult, as I did some test program according to Microsoft example program, I have never made them works. So I simply comment out all the globalstring part. I can compile my class library, but when I tried to add the VideoCutterTimeline class, I can’t find it anywhere from Toolbox in MainForm.cs. From the Toolbox in MainFrom.cs, I can see one VideoView (LibVlcSharp.WinForms), and a pointer. If you have some free time, please advise how I can make a user control of VideoCutterTimeline in .NET 5.0 and let it can be used by Toolbox in MainForm.cs. Thanks,