OpenLiveWriter/utilities/BlogRunner/BlogRunnerGui/FileInput.cs

81 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
namespace BlogRunnerGui
{
public enum DialogStyle { Open, Save }
[DefaultEvent("PathChanged")]
public partial class FileInput : UserControl
{
public FileInput()
{
InitializeComponent();
}
public event EventHandler PathChanged;
[
EditorBrowsable(EditorBrowsableState.Always),
Browsable(true),
DesignerSerializationVisibility(DesignerSerializationVisibility.Visible),
Bindable(true)
]
public override string Text
{
get { return label1.Text; }
set { label1.Text = value; }
}
public string Path
{
get { return textBox1.Text; }
set { textBox1.Text = value; }
}
public DialogStyle DialogStyle
{
get;
set;
}
protected override void OnGotFocus(EventArgs e)
{
textBox1.Focus();
}
private void button1_Click(object sender, EventArgs e)
{
FileDialog fd;
if (DialogStyle == DialogStyle.Open)
fd = openFileDialog1;
else
fd = saveFileDialog1;
if (fd.ShowDialog(this) == DialogResult.OK)
{
textBox1.Text = fd.FileName;
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
string path = textBox1.Text.Trim('"');
if (path != textBox1.Text)
{
textBox1.Text = path;
textBox1.SelectionStart = textBox1.TextLength;
return;
}
if (PathChanged != null)
PathChanged(this, EventArgs.Empty);
}
}
}