いつもお世話になっています。
前提・実現したいこと
前提1:(UserControl内にtableLayoutPanelで)ボタンが60個ある。
前提2:それらのボタンはドラッグアンドドロップでファイルを受け付けてファイル名を(各ボタン名).textに表示している。
実現したいこと:60個のボタンに対応するコードを短縮させたい。
※具体的には
string[] filename = (string[])e.Data.GetData(DataFormats.FileDrop, false); input1_1.Text = Path.GetFileName(filename[0]); input1_1.BackColor = Color.Chartreuse;
を1つのメソッドに置き換える事で達成できればと思っています。
(でも、if文の中にあるボタンのNameをどのようにすればよいのかわかっていません)
該当のソースコード
input1_1やinput1_2はボタンのNameです。
C#
1 private void DragDrop(object sender, DragEventArgs e) 2 { 3 if (sender.Equals(input1_1)) { 4 string[] filename = (string[])e.Data.GetData(DataFormats.FileDrop, false); 5 input1_1.Text = Path.GetFileName(filename[0]); 6 input1_1.BackColor = Color.Chartreuse; 7 } 8 else if (sender.Equals(input1_2)) { 9 string[] filename = (string[])e.Data.GetData(DataFormats.FileDrop, false); 10 input1_2.Text = Path.GetFileName(filename[0]); 11 input1_2.BackColor = Color.Chartreuse; 12 } 13 else if (sender.Equals(input1_3)) { 14 string[] filename = (string[])e.Data.GetData(DataFormats.FileDrop, false); 15 input1_3.Text = Path.GetFileName(filename[0]); 16 input1_3.BackColor = Color.Chartreuse; 17 } 18 else if (sender.Equals(input1_4)) { 19 string[] filename = (string[])e.Data.GetData(DataFormats.FileDrop, false); 20 input1_4.Text = Path.GetFileName(filename[0]); 21 input1_4.BackColor = Color.Chartreuse; 22 } 23 } 24
補足情報(FW/ツールのバージョンなど)
VisualStudio2017 (Community)
.NET Framework Ver 4.7.03056
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。