// 스프레드시트 하나의 행 전체 선택 모드
fpSpread1.Sheets[0].OperationMode = FarPoint.Win.Spread.OperationMode.SingleSelect;
fpSpread1.Sheets[0].OperationMode = FarPoint.Win.Spread.OperationMode.SingleSelect;는
위 그림처럼 셀 선택이 아닌
이처럼 하나의 행이 선택되게 만든다
// 수평 정렬 & 수직 정렬
for (int i = 0; i < fpSpread1.ActiveSheet.ColumnCount; i++)
{
fpSpread1.ActiveSheet.Columns[i].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center; // 수평 정렬
fpSpread1.ActiveSheet.Columns[i].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center; // 수직 정렬
}
셀 안의 내용들이 가운데 정렬이 되었다
private void btn_update_Click(object sender, EventArgs e)
{
int row_idx = fpSpread1.ActiveSheet.ActiveRowIndex; // 선택된 RowIndex 값
string selected_idx_value = fpSpread1.ActiveSheet.Cells[row_idx, 0].Value.ToString(); // 해당 Row의 0번째 Column값
UPDATE_FORM frm = new UPDATE_FORM(); // 업데이트폼 생성
frm.pass_idx = selected_idx_value; // 찾은 idx값 UPDATE FORM의 pass_idx로값 넘기기
frm.Owner = this; // 부모폼과 자식폼 연결
frm.ShowDialog(); // 모달로 새 창 생성
}
// 업데이트 폼의 시작
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 Oracle.DataAccess.Client;
namespace TEST
{
public partial class UPDATE_FORM : Form
{
protected internal string pass_idx;
Oracle_conn oc = new Oracle_conn();
OracleCommand cmd;
OracleDataReader reader;
string sqlstr;
string name;
string line;
string ll;
string rl;
// Start
string lsh;
string lsm;
string rsh;
string rsm;
// End
string leh;
string lem;
string reh;
string rem;
public UPDATE_FORM()
{
InitializeComponent();
}
private void UPDATE_FORM_Load(object sender, EventArgs e)
{
try
{
oc.Oracle_Conn_Fn();
sqlstr = "SELECT * FROM TEST_SUBWAY WHERE SUBWAY_IDX =" + pass_idx + "";
cmd = new OracleCommand(sqlstr, oc.get_conn);
reader = cmd.ExecuteReader();
if (reader.Read())
{
TB_SUBSAY_NAME.Text = reader.GetString(1);
LB_LINE.SelectedItem = reader.GetString(2);
string[] lt_info1 = reader.GetString(3).Split(' ');
TB_LEFT_LOCATION.Text = lt_info1[0];
TB_RIGHT_LOCATION.Text = lt_info1[7];
CB_LEFT_START_H.Text = lt_info1[3];
CB_LEFT_START_M.Text = lt_info1[5];
CB_RIGHT_START_H.Text = lt_info1[10];
CB_RIGHT_START_M.Text = lt_info1[12];
string[] lt_info2 = reader.GetString(4).Split(' ');
CB_LEFT_END_H.Text = lt_info2[3];
CB_LEFT_END_M.Text = lt_info2[5];
CB_RIGHT_END_H.Text = lt_info2[10];
CB_RIGHT_END_M.Text = lt_info2[12];
}
}
catch (Exception ex)
{
MessageBox.Show("update load error");
}
}
private void BTN_UPDATE_Click(object sender, EventArgs e)
{
try
{
name = TB_SUBSAY_NAME.Text;
line = LB_LINE.Text;
ll = TB_LEFT_LOCATION.Text;
rl = TB_RIGHT_LOCATION.Text;
lsh = CB_LEFT_START_H.Text;
lsm = CB_LEFT_START_M.Text;
rsh = CB_RIGHT_START_H.Text;
rsm = CB_RIGHT_START_M.Text;
leh = CB_LEFT_END_H.Text;
lem = CB_LEFT_END_M.Text;
reh = CB_RIGHT_END_H.Text;
rem = CB_RIGHT_END_M.Text;
oc.Oracle_Conn_Fn();
sqlstr = "UPDATE TEST_SUBWAY SET " +
"SUBWAY_NAME = '" + name + "', SUBWAY_LINE = '" + line + "', " +
"SUBWAY_START_TIME = '" + ll + " 방향 = " + lsh + " : " + lsm + " | " + rl + " 방향 = " + rsh + " : " + rsm + "', " +
"SUBWAY_END_TIME = '" + ll + " 방향 = " + leh + " : " + lem + " | " + rl + " 방향 = " + reh + " : " + rem + "' " +
"WHERE SUBWAY_IDX =" + pass_idx + "";
cmd = new OracleCommand(sqlstr, oc.get_conn);
cmd.ExecuteNonQuery();
MessageBox.Show("수정되었습니다");
((BASIC_FORM)this.Owner).fnSearch(); // 부모폼.메소드
oc.get_conn.Close();
}
catch (Exception ex)
{
MessageBox.Show("update error");
}
}
}
}
행을 선택 하고 [수 정] 버튼을 누르면 해당 행의 IDX값을 UPDATE FORM에 전달해서 해당 정보를 받을 수가 있다
'C# 개인 공부 기록용 > Memo' 카테고리의 다른 글
C# Spreadsheet 도구 상자에 추가하는 방법 (0) | 2022.08.02 |
---|---|
C# SpreadSheet를 Excel 파일로 저장하는 방법 (0) | 2022.07.26 |
DataGridView 더블 클릭 + 새 창 열기 + 행 전체 선택 + 등등.. (0) | 2022.07.18 |
ComboBox 내용 수정 막는 방법 (0) | 2022.07.14 |
Xml 값 가져오기 (0) | 2022.07.12 |