How to make user control in Windows application c#
I need make attachments files in form but I need use an user control when click
button browse and choose the files or image add user control in form ?
Add a button on the form and use OpenFileDialog, like that:
private void buttonGetFile_Click(object sender, EventArgs e)
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "Text files | *.txt"; // file types, that will be allowed to upload
dialog.Multiselect = false; // allow/deny user to upload more than one file at a time
if (dialog.ShowDialog() == DialogResult.OK) // if user clicked OK
{
String path = dialog.FileName; // get name of file
using (StreamReader reader = new StreamReader(new FileStream(path, FileMode.Open), new UTF8Encoding())) // do anything you want, e.g. read it
{
// ...
}
}
}
Related
I am trying to upload a file to a remote server using a custom button in outlook ribbon. Following steps are happened
Users click the upload file button in the ribbon and the File picker dialog is seen.
File selection popup will be seen and user select one or more files
After click ok button, I just want to change the default cursor to wait for the cursor
Once file uploading is complete, I tried to restore default curosor
My code is like following
public void UploadFiles(Office.IRibbonControl control)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
Cursor.Current = Cursors.WaitCursor
//some code which will call rest API to upload file
Cursor.Current = Cursors.default
}
}
But above code is not changing curosor. The button is present in compose window of outlook
You need to import Word.DLL and then use the following code
public void UploadFiles(Office.IRibbonControl control)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
Outlook.Inspector currentInspector = Globals.ThisAddIn.Application.ActiveInspector();
Word.Document document = currentInspector.WordEditor;
Word.Application wordApp = document.Application;
wordApp.System.Cursor = Word.WdCursorType.wdCursorWait;
//perform your task
//Switch to default Cursor
wordApp.System.Cursor = Word.WdCursorType.wdCursorNormal;
}
}
Still new to C#, snipping some code around to write a simple application and learning while doing.
I have an xml file that needs to be ingested and set as a variable so I can have it just insert words from that text file into different text fields.
private void button1_Click(object sender, EventArgs e)
{
// Displays an OpenFileDialog so the user can select a datafeed.
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "Datafeed File|*.dfx5";
openFileDialog1.Title = "Select a dfx5";
// Show the Dialog.
// If the user clicked OK in the dialog and
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
// Assign the file as a variable.
}
}
How would I make that file a variable so that I can read from it?
Thank you in advanced. Google-ing didn't return anything helpful
How would I make that file a variable so that I can read from it?
Well, the file name that was selected is a property of the OpenFileDialog object:
string fileName;
// Show the Dialog.
// If the user clicked OK in the dialog and
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
// Assign the file as a variable.
fileName = openFileDialog1.FileName;
}
What you do with that file name at that point is up to you.
If you want to store the Filename in a variable, the other answers are what you are looking for.
To me it sounds like you need to actually read the content of the file.
If that's what you want, the following snippet (provided by Microsoft) should do:
try
{ // Open the text file using a stream reader.
using (StreamReader sr = new StreamReader(openFileDialog1.FileName))
{
// Read the stream to a string, and write the string to the console.
String line = sr.ReadToEnd();
Console.WriteLine(line);
}
}
catch (Exception e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
This way line will contain the XML data you need. How you proceed from there is up to you.
If the file is pure XML, then I'd be inclined to do something like this:
using System.Xml.Linq;
private XDocument _xmlPayload;
private void button1_Click(object sender, EventArgs e)
{
// Displays an OpenFileDialog so the user can select a datafeed.
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "Datafeed File|*.dfx5";
openFileDialog1.Title = "Select a dfx5";
// Show the Dialog.
// If the user clicked OK in the dialog and
var dialogResult = openFileDialog1.ShowDialog();
if (dialogResult == System.Windows.Forms.DialogResult.OK)
{
//Get file path from dialog
var filePath = openFileDialog1.FileName;
//load xml
using(var stream = File.OpenRead(filePath))
{
_xmlPayload = XDocument.Load(stream);
}
}
}
Then it's up to you how you work with the XML.
openFileDialog1.FileName should have the returned filename from the dialog. if multiselect is enabled I think its openFileDialog1.FileNames
I have created some code that saves my work to a text file, I was just wondering is there some way so that when I click 'Save' I can read in the text from richTextBox1and set it as the default file name, still with the 'txt' default file extension.
e.g. When I click 'save' the folder dialog comes up and asks you to name your file, just as it would if you were using Word for example, I want that box to already have the text from my richTextBox1 in.
Thanks.
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog save = new SaveFileDialog();
save.InitialDirectory = "C:\\To-Do-List";
save.Filter = "Text Files (*.txt)|*.txt";
save.DefaultExt = ".txt";
DialogResult result = save.ShowDialog();
if (result == DialogResult.OK)
{
using (StreamWriter SW = new StreamWriter(save.FileName))
{
SW.WriteLine(richTextBox1.Text);
SW.WriteLine(richTextBox2.Text);
SW.WriteLine(richTextBox3.Text);
SW.WriteLine(richTextBox4.Text);
SW.WriteLine(richTextBox5.Text);
SW.Close();
}
}
Just set the FileName property on your SaveFileDialog.
Add
save.FileName = String.Format("{0}.txt", richTextBox1.Text);
Before you call ShowDialog.
I want to create a file in a directory selected by the user and named it by the user input.
I tried FolderBrowserDialog but it didn't prompt me to give a file name:
FolderBrowserDialog fbd = new FolderBrowserDialog();
DialogResult result = fbd.ShowDialog();
string path = fbd.SelectedPath;
//string FileName; then concatenate it with the path to create a new file
how can I do that?
You want to create a new file in a folder, so you should:
ask the user to select a folder (with FolderBrowserDialog)
offer the user a way to type a file name, with an input field (separate from the folder dialog)
Then you concat those 2 infos to get your full file name.
Or you can use SaveFileDialog and check if the file already exists when the user has selected a file (with a File.Exists...). There is a property for displaying an alert when the file does not exists, but not on the other side.
So when you got the DialogResult, use File.Exists and you can alert the user.
Sample for this solution:
In this sample (I hope without errors, cannot test right now):
- I open the saveFileDialog on a button called SaveButton with the SaveButton_Click click method
- I have a SaveFileDialog component on my form, called saveFileDialog1. On this component, the event FileOK is associated to my saveFileDialog1_FileOk method
private void SaveButton_Click(object sender, EventArgs e)
{
// Set your default directory
saveFileDialog1.InitialDirectory = #"C:\";
// Set the title of your dialog
saveFileDialog1.Title = "Save file";
// Do not display an alert when the user uses a non existing file
saveFileDialog1.CheckFileExists = false;
// Default extension, in this sample txt.
saveFileDialog1.DefaultExt = "txt";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
// DO WHAT YOU WANT WHEN THE FILE AS BEEN CHOSEN
}
}
// This method handles the FileOK event. It checks if the file already exists
private void saveFileDialog1_FileOk(object sender, System.ComponentModel.CancelEventArgs e)
{
if (File.Exists(saveFileDialog1.FileName))
{
// The file already exists, the user must select an other file
MessageBox.Show("Please select a new file, not an existing one");
e.Cancel = true;
}
}
I've created a log in panel in which I've used Transparent group box(with user name text box and password text box), and used a wallpaper on background, now I've Used a link label on this log in panel by clicking on which the user can change the background wallpaper of the log in panel.
Means when user clicks on the link label (lnklblChangeBackGround) with text "Click Here to Change Background" open dialogue box will open and user can select the Wallpaper from here and then by clicking on OK or Select the wallpaper will be assigned to background of the log in panel
Can any one help me out that
how can i open a open dialogue box by clicking on the link label
how can i assign a select wallpaper to the background of my log in panel
Note: I'm Creating this using VS 2010 using C#. and it's a desktop App and i'm using winform here.
At first you have to add an Event (LinkClicked) to your Link Label.
Just place this code here to open a file dialog.
private String getPicture()
{
string myPic = string.Empty;
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "jpg (*.jpg)|*.jpg|png (*.png)|*.png";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
myPic = openFileDialog1.FileName;
return myPic;
}
You can edit the filter to avoid the user choosing images, which is not supported in your opinion.
With this code below you can set the Background Image of your pictureBox
private void setBackground(String picture)
{
pictureBox1.Image = null;
pictureBox1.Image = Image.FromFile(picture);
}
And the final version would look like this
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
String myFile = getPicture();
setBackground(myFile);
}
if this is too much code or too complicated for you, then you can just put it all in one function like this
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
string myPic = string.Empty;
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "jpg (*.jpg)|*.jpg|png (*.png)|*.png";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
myPic = openFileDialog1.FileName;
pictureBox1.Image = null;
pictureBox1.Image = Image.FromFile(myPic);
}