We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. (Last updated on: November 16, 2018).
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

How can I implement Visual Studio like read-only file handling behavior in EditControl ?

 

VS.NET unlike most of other editors allows editing of read-only files. It only prompts the user during the save operation that the file is read-only and the read-only attribute needs to be overridden in order to save the changes. Based on the user input, the changes are either lost or the read-only attribute is overridden and the changes are saved. By default, the EditControl does not allow editing of read-only files. All keystrokes are simply ignored when a read-only file is loaded into the EditControl.

The VS.NET like behavior can be implemented in the EditControl by handling its KeyDown event as shown in the code snippets below.

C#

private void editControl1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)

{

if ((e.Control == true) || (e.Alt == true))

{

// Do nothing

}

else

{

// Check if its a ReadOnly file

if ((File.GetAttributes(filePath) & FileAttributes.ReadOnly) != 0)

{

string message = "Do you wish to override the read-only attribute and perform modifications ?";

string caption = "ReadOnly file opened - unable to make modifications";

MessageBoxButtons buttons = MessageBoxButtons.YesNo;

DialogResult result = MessageBox.Show(this, message, caption, buttons);

if ( result == DialogResult.Yes)

{

FileInfo fileInfo = new FileInfo(filePath);

fileInfo.Attributes -= FileAttributes.ReadOnly;

this.editControl1.Close();

this.editControl1.LoadFile(filePath);

}

else if (result == DialogResult.No)

{

// Do nothing

}

}

}

}

VB

Private Sub editControl1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles editControl1.KeyDown

If e.Control = True OrElse e.Alt = True Then

' Do nothing

Else

' Check if its a ReadOnly file

If(File.GetAttributes(filePath) And FileAttributes.ReadOnly) <> 0 Then

Dim message As String = "Do you wish to override the read-only attribute and perform modifications ?"

Dim caption As String = "ReadOnly file opened - unable to make modifications"

Dim buttons As MessageBoxButtons = MessageBoxButtons.YesNo

Dim result As DialogResult = MessageBox.Show(Me, message, caption, buttons)

If result = DialogResult.Yes Then

Dim fileInfo As New FileInfo(filePath)

fileInfo.Attributes -= FileAttributes.ReadOnly

Me.editControl1.Close()

Me.editControl1.LoadFile(filePath)

ElseIf result = DialogResult.No Then

End If

End If ' Do nothing

End If

End Sub 'editControl1_KeyDown

Please refer to the complete test application below that illustrates this.

Article ID: Published Date: Last Revised Date: Platform: Control:
367 04/30/2011 07/10/2014 WinForms EditControl
Tags:
Did you find this information helpful?
Add Comment
You must log in to leave a comment

Please sign in to access our KB

or the page will be automatically redirected to sign-in page in 10 seconds.

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon