1

私の5番目の列は、SQLサーバーDataGridViewから情報を取得しています。resumelinkファイルの名前は、resumelinkレコード内の唯一のものです。DOC100.pdfまたはName12.pdf。コンピューター上のマップされたドライブにリンクする必要があるため、ファイルの名前がDOC100.pdfの場合は、である必要があります//nt/resume/DOC100.pdf。パーツを保存してから//nt/resume、resumelinkフィールドにあるものを追加する必要があります。というフィールドがありますdataGridView1_CellContentClickが、現在は空です。IEであろうとAdobeであろうと、PDFがどのように開かれるかは気になりません。

これがプログラムの様子の写真です。

ここに画像の説明を入力してください

namespace ResumeTest
{
public partial class Resume : Form
{
    SqlConnection conn = new SqlConnection();

    public Resume()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        // TODO: This line of code loads data into the 'iHBAPPSDataSet.HRresume' table. You can move, or remove it, as needed.
       this.hRresumeTableAdapter.Fill(this.iHBAPPSDataSet.HRresume);
       this.dataGridView1.RowsDefaultCellStyle.BackColor = Color.White;
       this.dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.Aquamarine;
    }


    private void button1_Click(object sender, EventArgs e)
    {
       bindingSource1.Filter = "name LIKE '%" + name.Text + "%' AND skillset LIKE '%" + skillset.Text + "%'";
    }

    public void ClearTextBoxes(Control control)
    {
        foreach (Control c in control.Controls)
        {
            if (c is TextBox)
            {
                if (!(c.Parent is NumericUpDown))
                {
                    ((TextBox)c).Clear();
                }
            }
            else if (c is NumericUpDown)
            {
                ((NumericUpDown)c).Value = 0;
            }
            else if (c is ComboBox)
            {
                ((ComboBox)c).SelectedIndex = 0;
            }

            if (c.HasChildren)
            {
                ClearTextBoxes(c);
            }
        }
    }

    private void button2_Click(object sender, EventArgs e)
    {
        ClearTextBoxes(this);
        bindingSource1.Filter = "name LIKE '%" + name.Text + "%'";
    }

    private void button3_Click(object sender, EventArgs e)
    {
        Application.Exit();
    }

    private void button4_Click(object sender, EventArgs e)
    {
        Add f2 = new Add();
        f2.Show();
    }

    private void button6_Click(object sender, EventArgs e)
    {
        Delete f3 = new Delete();
        f3.Show();
    }

    private void refreshButton_Click(object sender, EventArgs e)
    {
        this.hRresumeTableAdapter.Fill(this.iHBAPPSDataSet.HRresume);
    }

    private void quitToolStripMenuItem_Click(object sender, EventArgs e)
    {
        Application.Exit();
    }
  }
}
4

1 に答える 1

2
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
      // set the part of filename You have to add to some constant
      // or save it in some external file and read here to be able to edit this value
      // without rebuilding of the project
      const string filePreName = @"//nt/resume/";

      // get the clicked filename value
      string filename = dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString();

      // combine file pre name and file name
      string finalFilePath = filePreName + filename;

      // this function will start default program, which is configured in your system
      // to handle pdf files and will open selected pdf file in this program
      // to get access to this function you should reference to

      // using System.Diagnostics;

      // at the top of current class file
      Process.Start(finalFilePath);
}

または、すべてを1行にまとめます。

Process.Start(@"//nt/resume/" + dataGridView1[e.ColumnIndex, e.RowIndex].Value);

PSこれにより、datagridでのファイル名の表示は変更されませんが(1つのセルのように長い文字列を表示するよりも優れていると思います//nt/resume/DOC100.pdf)、ファイルを正しく開くことができます。

于 2013-03-27T19:53:29.740 に答える