我刚刚开始使用C#,作为一个项目,我决定尝试制作一个图像转换器,但我似乎无法获得在我的button1上下文中可访问的变量“open”,我不寻找评论我的代码有多糟糕,我刚刚开始......我只想完成它并添加到它,稍后我会改进代码,谢谢。那我该如何让它可以访问?如何使OpenFileDialog变量Global?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace WindowsFormsApplication9
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void button2_Click(object sender, EventArgs e)
{
OpenFileDialog open = new OpenFileDialog();
// image filters
open.Filter = "Image Files(*.jpg; *.jpeg; *.gif; *.bmp)|*.jpg; *.jpeg; *.gif; *.bmp";
if (open.ShowDialog() == DialogResult.OK)
{
// image in picture box
pictureBox1.Image = new Bitmap(open.FileName);
pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
// image file path
string path = Directory.GetCurrentDirectory();
textBox1.Text = Path.GetDirectoryName(open.FileName);
}
}
public void Form1_Load(object sender, EventArgs e)
{
this.AutoSize = true;
this.AutoSizeMode = AutoSizeMode.GrowAndShrink;
flowLayoutPanel1 = new FlowLayoutPanel();
flowLayoutPanel1.AutoSize = true;
flowLayoutPanel1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
this.Controls.Add(flowLayoutPanel1);
}
public void button1_Click(object sender, EventArgs e)
{
int selectedIndex = comboBox1.SelectedIndex;
Object selectedItem = comboBox1.SelectedItem;
if ((string)comboBox1.SelectedItem == "*.jpg")
{
pictureBox1.Image.Save(@"" + textBox1.Text + open.FileName + "", System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}
}
介意你要请分享制作'开放的理念'可访问?提问的理由是,看到你的代码并不适合。该变量可以被声明为一个类变量或者你提供一个私有属性;然而,'OpenFileDialog'是一个模态对话框并返回一个结果 - 你通常不想再次访问变量,特别是不能从不同的上下文访问变量。 – 2015-01-21 04:09:22