Marc_Plan: 범위 입력받아 여러 행 삭제 기능 추가
- toolStripButton1_Click 메서드에 범위 삭제 기능 구현 - InputBox로 "1~100" 형식의 범위 입력 받음 - 입력 형식 검증 및 범위 유효성 확인 - 뒤에서부터 삭제하여 인덱스 오류 방지 - 디버그 모드에서만 toolStrip 표시하도록 설정 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -28,6 +28,7 @@ namespace WindowsFormsApp1.Mac
|
|||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
main = _main;
|
main = _main;
|
||||||
|
this.toolStrip1.Visible = System.Diagnostics.Debugger.IsAttached;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Marc_Plan_Load(object sender, EventArgs e)
|
private void Marc_Plan_Load(object sender, EventArgs e)
|
||||||
@@ -538,6 +539,7 @@ namespace WindowsFormsApp1.Mac
|
|||||||
if (dataGridView1.Rows[a].Cells["colCheck"].Value.ToString() != "T")
|
if (dataGridView1.Rows[a].Cells["colCheck"].Value.ToString() != "T")
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (a==825) Console.WriteLine( "test" );
|
||||||
string marc = dataGridView1.Rows[a].Cells["Marc"].Value.ToString().Replace("₩", "\\");
|
string marc = dataGridView1.Rows[a].Cells["Marc"].Value.ToString().Replace("₩", "\\");
|
||||||
marc = st.ConvertMarcType(marc);
|
marc = st.ConvertMarcType(marc);
|
||||||
marc = st.made_Ori_marc(marc, FileEncodingType);
|
marc = st.made_Ori_marc(marc, FileEncodingType);
|
||||||
@@ -1370,5 +1372,82 @@ namespace WindowsFormsApp1.Mac
|
|||||||
{
|
{
|
||||||
mk_Grid(btn_Select_List.Text, this.date);
|
mk_Grid(btn_Select_List.Text, this.date);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void toolStripButton1_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// 범위 입력받기
|
||||||
|
string input = Microsoft.VisualBasic.Interaction.InputBox(
|
||||||
|
"삭제할 행 범위를 입력하세요.\n예) 1~100 (1번부터 100번까지 삭제)",
|
||||||
|
"행 범위 삭제",
|
||||||
|
"",
|
||||||
|
-1, -1);
|
||||||
|
|
||||||
|
// 취소 또는 빈 입력
|
||||||
|
if (string.IsNullOrWhiteSpace(input))
|
||||||
|
return;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// "1~100" 형식 파싱
|
||||||
|
string[] parts = input.Split('~', '-');
|
||||||
|
if (parts.Length != 2)
|
||||||
|
{
|
||||||
|
MessageBox.Show("올바른 형식으로 입력해주세요.\n예) 1~100", "입력 오류", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int startRow = int.Parse(parts[0].Trim());
|
||||||
|
int endRow = int.Parse(parts[1].Trim());
|
||||||
|
|
||||||
|
// 범위 검증
|
||||||
|
if (startRow < 1 || endRow < 1)
|
||||||
|
{
|
||||||
|
MessageBox.Show("행 번호는 1 이상이어야 합니다.", "입력 오류", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (startRow > endRow)
|
||||||
|
{
|
||||||
|
MessageBox.Show("시작 행 번호가 끝 행 번호보다 클 수 없습니다.", "입력 오류", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 사용자 입력은 1부터 시작하지만, 인덱스는 0부터 시작하므로 -1
|
||||||
|
int startIndex = startRow - 1;
|
||||||
|
int endIndex = endRow - 1;
|
||||||
|
|
||||||
|
// 범위가 그리드 범위를 벗어나는지 확인
|
||||||
|
if (endIndex >= dataGridView1.Rows.Count)
|
||||||
|
{
|
||||||
|
MessageBox.Show($"입력한 범위가 전체 행 수({dataGridView1.Rows.Count})를 초과합니다.", "입력 오류", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 삭제 확인
|
||||||
|
string confirmMsg = string.Format("{0}번부터 {1}번까지 총 {2}개의 행을 삭제하시겠습니까?",
|
||||||
|
startRow, endRow, endRow - startRow + 1);
|
||||||
|
if (MessageBox.Show(confirmMsg, "행 삭제 확인", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// 뒤에서부터 삭제 (인덱스가 꼬이지 않도록)
|
||||||
|
for (int i = endIndex; i >= startIndex; i--)
|
||||||
|
{
|
||||||
|
if (i < dataGridView1.Rows.Count && !dataGridView1.Rows[i].IsNewRow)
|
||||||
|
{
|
||||||
|
dataGridView1.Rows.RemoveAt(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MessageBox.Show("삭제가 완료되었습니다.", "완료", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
}
|
||||||
|
catch (FormatException)
|
||||||
|
{
|
||||||
|
MessageBox.Show("숫자 형식으로 입력해주세요.\n예) 1~100", "입력 오류", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show($"삭제 중 오류가 발생했습니다.\n{ex.Message}", "오류", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user