C#2007. 12. 1. 02:53
사용자 삽입 이미지

PictureBox AutoSize 설정방법

일단 PictureBox 하나와 버튼 하나, openFileDialog를 폼에 놓는다.

이미지 박스는 그림과 같이 AutoSize로 설정 해준다.

private void button1_Click(object sender, EventArgs e)

        {

            if (openFileDialog1.ShowDialog() == DialogResult.OK)

            {

                pictureBox1.Image = Image.FromFile(openFileDialog1.FileName);

            }

        }

버튼 클릭시의 코드는 다음과 같다.

openFileDialog를 띄운후 openFileDialog가 실행됐으면
이미지를 불러오게끔 하는 코드이다.

'C#' 카테고리의 다른 글

전광판처럼 움직이는 라벨 만들기  (0) 2007.12.01
C# textBox 특정 키 입력 막기 예제  (2) 2007.12.01
C# 간단한 타이머 예제 따라하기  (0) 2007.11.26
Posted by Mons
C#2007. 11. 26. 22:08
사용자 삽입 이미지

프로그램 외형

프로그램 외형은 위와 같습니다.
아직 60분이 넘으면 0분으로 돌아가게 끔은 하지 않았습니다...(몰라서?)
일단 바깥에 60밀리초, 60초 가 되면 TextBox에 숫자를 증가시켜 주기 위해 계속 증가 시켜갈 변수 두개를 선언했습니다!
시작은 button1 종료는 button2 분은 txtMin 초는 txtSec 밀리초는 txtMil로 했습니다.
보시다시피 시작 누르면 타이머 작동하고 종료 누르면 잠시 멈춥니다.
그리고 다른 소스는..(..) 알아서 잘 이해를...
전 아직 네임스페이스가 뭔지도 모르고 OOP도 뭔지 모르는 초보니까요~_~ 같이 배워 갑시다!


namespace WindowsApplication1

{

    public partial class Form1 : Form

    {

        int mil=0,sec=0;

        public Form1()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            timer1.Start();

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            timer1.Enabled = false;

        }

 

        private void timer1_Tick(object sender, EventArgs e)

        {

            txtMil.Text = Convert.ToString(Convert.ToInt32(txtMil.Text) + 1);

            mil = Convert.ToInt32(txtMil.Text);

 

            if (mil == 60)

            {

                txtSec.Text = Convert.ToString(Convert.ToInt32(txtSec.Text) + 1);

                mil = 0;

                txtMil.Text = "0";

            }

        }

 

        private void txtSec_TextChanged(object sender, EventArgs e)

        {

            sec = Convert.ToInt32(txtSec.Text);

 

            if (sec == 60)

            {

                txtMin.Text = Convert.ToString(Convert.ToInt32(txtMin.Text) + 1);

                sec = 0;

                txtSec.Text = "0";

            }

        }

    }

}

Posted by Mons
델파이2007. 11. 24. 18:52

보시다시피 버튼을 클릭하면 Variant 형의 data형과 xlApp라는 Variant형을(응? 이건 어디서 지정해놨지;;) 선언하고

엑셀을 실행하고 data에 WorkBooks를 추가하고 WorkSheets의 이름을 인명부로 바꿔준다.
엑셀을 보이게끔 해준다음에 해당 범위를 병합해주고 값 바꿔주고
StringGrid의 cell 값을 Variant 배열에다 집어넣고
A3:E3부터 점차적으로 값을 늘려 가며 data를 집어넣는다.
그리고 c가 2로 나눠서 1이 남으면 배경색을 바꿔준다.
마지막으로 AutoFit 해주고..
그런데 컬러값을 대입할때 RGB 값이 아닌가?
왜 무려 8자나 되지.ㅜ..ㅡ 전 초보니까 좀 알려주실분!!

procedure TForm1.Button1Click(Sender: TObject);

var

  data: Variant;

  st : String;

  c : Integer;

begin

  try

    xlApp:=CreateOleObject('Excel.Application');

  except

    ShowMessage('엑셀실행오류');

    Exit;

  end;

 

  data:=VarArrayCreate([1,5],varVariant);

  xlApp.WorkBooks.Add;

  xlApp.WorkBooks[1].WorkSheets[1].Name:='인명부';

  xlApp.Visible:=true;

  xlApp.Range['A1:E1'].Merge;

  xlApp.Range['A1'].Value:='인명부';

  xlApp.Range['A1:E1'].Interior.Color := clBlue;

  xlApp.Range['A1:E1'].Font.Color := clWhite;

  xlApp.Range['A1:E1'].HorizontalAlignment := -4108;

  xlApp.Range['A2:E2'].Value:=VarArrayOf(['수검번호','이름','주민등록번호','','번호']);

 

  for c:=1 to StringGrid1.RowCount-1 do

  begin

    data[1]:=StringGrid1.Cells[0,c];

    data[2]:=StringGrid1.Cells[1,c];

    data[3]:=StringGrid1.Cells[2,c];

    data[4]:=StringGrid1.Cells[3,c];

    data[5]:=StringGrid1.Cells[4,c];

 

    st:='A'+IntToStr(c+2)+':E'+IntToStr(c+2);

    xlApp.Range[ st ].Value:=data;

    if c mod 2=1 then

      xlApp.Range[st].Interior.Color:=$00FFBBBB;

  end;

  st:='A3:E3';

  xlApp.Range[ st ].Columns.AutoFit;

 

end;

Posted by Mons