WaitCursor ...
이전 와이즈엠 다니던 시절 이사님께서 진행 중 표시를 커서로 간단히 ... 표현하셨다.
당시 난 어렵게 프로그래스 동원해서 어떻게든 가시적인 표현을 하였지만.
힘들게 할 필요없이 간단히... 매우 간단히 커서만 바꿔주면 된다.
UseWaitCursor = true; 하면 커서가 바뀐다.
참 쉽당!
물론, 프로그래스바가 필요할땐 써야겠지만... 우선...
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
바인딩네비게이터와 프로퍼티그리드 연결 (0) | 2009.08.18 |
---|---|
바인딩 네비게이터 (0) | 2009.08.14 |
데이타 그리드 뷰 헤더 이용하기. (2) | 2009.08.06 |
드디어 챠트를 만들다!!! (0) | 2009.06.19 |
챠트 모듈을 만들다!! (0) | 2009.06.17 |
데이타 그리드 뷰 헤더 이용하기.
데이타 그리드 뷰 에 기본 제공되는 RowHeader를 이용하여 번호매김을 하는 코드임.
소스는 아래와 같이 간단함.
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
if (e.RowIndex >= 0)
{
string NumberingText = (e.RowIndex+1).ToString();
// 글자 사이즈 구하기.
SizeF stringSize = e.Graphics.MeasureString(NumberingText, Font);
// 글자에 맞춰 좌표계산.
PointF StringPoint = new PointF
(
Convert.ToSingle(dataGridView1.RowHeadersWidth - 3 - stringSize.Width ),
Convert.ToSingle(e.RowBounds.Y) + dataGridView1[0, e.RowIndex].ContentBounds.Height * 0.3f
);
// 문자열 그리기.
e.Graphics.DrawString
(
NumberingText,
Font,
Brushes.Black,
StringPoint.X,
StringPoint.Y
);
}
}
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
바인딩 네비게이터 (0) | 2009.08.14 |
---|---|
WaitCursor ... (0) | 2009.08.14 |
드디어 챠트를 만들다!!! (0) | 2009.06.19 |
챠트 모듈을 만들다!! (0) | 2009.06.17 |
일일 일정 관리 프로그램 II ( upGrade ) (0) | 2009.06.12 |
드디어 챠트를 만들다!!!
챠트가 완성되었다. 하나의 챠트에 복합구성하게되는 챠트로
헤더값을 하나로 처리하려다 꼬여서 다른 방법으로 겨우 풀어내었다.
+ 값만 생각하다 sin파 출력을 하니 엄청 당황스러운 파형이 나와서... 죄다 뜯어고쳐서
+든 -든 잘 처리가 되게끔 했음.
라인 챠트 시 점과 점 에 위치값을 구하는것도 꾀나 많이 수정이 되었음.
X, Y축 그릴때 많은 문제점이 나와서 모두 새로 작성이 되었음.
음 아직 히포챠트는 넘사벽이지만... 좋은 공부가 되었음.
투명처리는 우째 해야되는것일까낭....ㅡ.,ㅡ?????
- 나머지~
1. 타이머로 실시간 그래프를 해볼까낭....
2. 범례 표시만 해줌 되려낭...
3. 특정 포인트값 표시 랄까?? 음 이것까지 하면 좀 빡실것도 같은데~~
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
WaitCursor ... (0) | 2009.08.14 |
---|---|
데이타 그리드 뷰 헤더 이용하기. (2) | 2009.08.06 |
챠트 모듈을 만들다!! (0) | 2009.06.17 |
일일 일정 관리 프로그램 II ( upGrade ) (0) | 2009.06.12 |
하루 하루.... 일정 기록하고 관리 하는 기능! (0) | 2009.06.09 |
챠트 모듈을 만들다!!
챠트 구성 모듈을 만들었다.
위에는 3개의 그래프를 각각 타입별로 그린내용임.
막대그래프, 막대그래프 + 점, 점 + 라인
ㅎㅎㅎ
6 /18 --> 백그라운드 추가 좌표계 추가했음.
<< 새로 만든 모듈로 적용하여 그린 챠트임 >>
눈금 자동, Item항목 분리...
데이타 추가가 쉽게..
각 그래프별 속성 변경이 용이하게 객체 배치를 완료함.
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
데이타 그리드 뷰 헤더 이용하기. (2) | 2009.08.06 |
---|---|
드디어 챠트를 만들다!!! (0) | 2009.06.19 |
일일 일정 관리 프로그램 II ( upGrade ) (0) | 2009.06.12 |
하루 하루.... 일정 기록하고 관리 하는 기능! (0) | 2009.06.09 |
TextBox 에서 Enter키가 눌렸을 때 Tab 이동.. 관련해서 두가지.. (0) | 2009.06.05 |
일일 일정 관리 프로그램 II ( upGrade )
일일 일정 관리 프로그램으로써 어제 만든것보다 조금더 조작이 편하게 만들어볼까 해서
새로 만들었음.
* 설명 :
- 달력 : 일정이 기록된 날짜가 굵게 표시되고 클릭하면 해당 일자에 기록된 내용이 표시되고
또 새로 등록가능함.
- 리스트 박스 : 월별로 누적된 데이타를 보여줌. 클릭시 해당 날짜에 등록된 내용을 볼수 있음.
- 등록 버튼 : 입력된 내용과 시간을 항목에 등록함.
- 저장 버튼 : 등록되있는 날짜별 일일 일정을 파일에 기록함.
- 항목 리스트 아이템 :
- M : 수정
- D : 삭제
- 완료 : 일정 완료지은것들 체크
- 내일로 : 내일로 해당 항목을 보내기 위한 선택버튼
- 내일로 : 내일로 보내기 위한 선택 항목들을 내일 일정으로 보내줌.
- 번호는 그냥 순번일뿐이고.
- 완료버튼 위 TextBox : 완료 예상 시간 입력 가능
- 수정모드 사용은
항목 리스트 아템의 Textbox에서 F2누르거나 항목중 M버튼 클릭시 수정모드로 바뀜.
수정완료 : [Control + Enter] 누르면 수정완료됨.
삭제시 바로 삭제됨
버그 :
1. 항목 타이틀 표기가 좀 이상하게 출력되는점.
2. 저장이나 내일로 보내기 등 클릭시 동작이 되는데 ...눈으로 저장된건지 알수가 없음...
3. .. 찾는중...
--> 06, 14일 업그레이드
- 기능 추가
1. 알리미
2. 보고서 만들기
3. 환경설정!
4. 오늘/ 내일로 보내기 ( 단, 토,일은 선택사항임 )
사용법 :
- 기본기능
1. 하루 할 일들을 등록하고 저장.
2. 이전 일정중 못한것 , 오늘로 가져오기 내일로 보내기로 등록 저장.
3. 하루를 정리 할때 완료된것들을 체크해서 저장
4. 보고서 만들기를 통해 일일 또는 주간단위로 Text파일로 만들어서 보관 가능함.
5. 항목에 시간등록하게 되면 이값을 이용해 해당시간이 되면 알람 효과를 통해 알려줌.
- 환경설정
1. xml과 text파일 보관 폴더를 지정할수 있음. ( 공통으로 사용 함 )
2. 하루 하루 반복되는 일정이 존재시 여기에 등록해두고
3. 일정 등록시 매일 반복되는 일정 추가 가능함.
- 보고서 만들기
1. 1~ 7일 간 일정을 text 파일로 만들수 있음. ( 단, 완료목록만 출력됨 )
2. 미리보기를 통해 일주일 내용을 한꺼번에 확인 가능함.
: 출력을 원하면.. 메모장에서... ~~,
알림 효과 :
작업 표시줄에 아이콘. 등장!!
작아서 안보이넹.. Js 라는 빨간 아이콘 등장!! 역시 그리는건 쉽지 않음..
위에는 몇초 후 일정 등록해서 알림 효과를 확인해본 화면임.
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
드디어 챠트를 만들다!!! (0) | 2009.06.19 |
---|---|
챠트 모듈을 만들다!! (0) | 2009.06.17 |
하루 하루.... 일정 기록하고 관리 하는 기능! (0) | 2009.06.09 |
TextBox 에서 Enter키가 눌렸을 때 Tab 이동.. 관련해서 두가지.. (0) | 2009.06.05 |
데이타 테이블 그리기. (2) | 2009.05.08 |
하루 하루.... 일정 기록하고 관리 하는 기능!
이 프로그램은 하루 하루 그날 그날 예정사항을 기록 해놓고
처리 할때마다 OK 체크박스를 기록하면서 그날 그날 어떤 일을 했는지 기록으로 남기고
관리 할수 있도록 만듬.
간단한 사용법 Textbox에 그냥 입력하고 등록! 누르면 됨.
리스트 등록 후 -> 저장 누르면 파일에 저장됨.
- 항목 리스트에서의 TextBox 기능
F2 키 : 수정
우측버튼 : 수정, 삭제 기능
- 달력
저장된 파일 존재시 날짜별로 굵게 표시함.
- 리스트 박스
그달에 저장된 기록을 보여줌. ( 클릭... 리스트에 출력 해볼까낭 )
앞으로 ...
데이타를 주간별, 월간별로 출력할수 있게만들어 봄.
: XML을 이용해서 데이타 저장, 수정, 등록, 삭제를 함.
추가 : 목록에 대한 등록, 수정, 삭제시 저장버튼 배경색 변경으로 알려줌.
--> 변경된 UI
--> 0612 이프로그램에 대한 업그레이드로 새로 만들었음... 다음 버젼..
이프로그램은 폐품 처리 ~
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
챠트 모듈을 만들다!! (0) | 2009.06.17 |
---|---|
일일 일정 관리 프로그램 II ( upGrade ) (0) | 2009.06.12 |
TextBox 에서 Enter키가 눌렸을 때 Tab 이동.. 관련해서 두가지.. (0) | 2009.06.05 |
데이타 테이블 그리기. (2) | 2009.05.08 |
메뉴] 즐겨찾기 읽어들이기 (0) | 2009.05.08 |
/// <summary>
/// 텍스 박스에서 키보드 다운키가 눌렸을 때 처리 방법.
/// </summary>
/// <param name="tb"></param>
/// <param name="mode"></param>
/// <param name="delegateHandle"></param>
public static void TextBox_NextFocus(Control ParentControl, Control CurrentControl)
{
CurrentControl.KeyDown += delegate(object sender, KeyEventArgs e)
{
if( e.KeyCode == Keys.Enter)
if (string.IsNullOrEmpty(CurrentControl.Text) == false) {
1. SendKeys.Send("{TAB}"); // 이게 더 유용하뉑!
2. ParentControl.SelectNextControl(CurrentControl, true, true, true, true); // 기존에 썼던 방법!
}
};
}
1. 방법이 좀더 쉽다.
2. 방법은 일일이 찾는 시간이... ㅡ.,ㅡ;; 눈에 안보일만큼 또 생기겠지?
SendKeys 가 역시 훨씬 쉽다! ...
ps : 2번방법은 TextBox가 그룹박스 같은거에 속해있다면
그리드안에서 갖히게 되는 현상이 생겼음.
탭을 이용한다면 관계없이 지나가는것을 볼수 있었음.
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
일일 일정 관리 프로그램 II ( upGrade ) (0) | 2009.06.12 |
---|---|
하루 하루.... 일정 기록하고 관리 하는 기능! (0) | 2009.06.09 |
데이타 테이블 그리기. (2) | 2009.05.08 |
메뉴] 즐겨찾기 읽어들이기 (0) | 2009.05.08 |
그래픽스. 어디에 그려지는가? (0) | 2009.05.08 |
데이타 테이블 그리기.
데이타 테이블 내용 그대로를 그리는 메서드 곧 리포트 관련해서 테이블을 그려주거나
프린트용 도큐먼트에 그려줄때 바둑판그리기와 함께 내부에 글써주는 메서드를 만들었었음.
아래 소스를 실행하기 위해서 위 그림처럼 그리드 뷰 와 픽쳐박스, 버튼을 두고 작업하면 됨.
public partial class Form1 : Form
{
DataTable dt = null;
public Form1()
{
InitializeComponent();
}
private void DrawTable(Graphics g, DataTable dt)
{
if (dt != null && g != null)
{
RectangleF rectF = new RectangleF(0f, 0f, 200f, 25f);
float maxRowCount = Convert.ToInt32(dt.Rows.Count);
float maxColCount = Convert.ToInt32(dt.Columns.Count);
for (float y = 0.0f; y < maxRowCount; y += 1.0f)
{
DataRow dr = dt.Rows[Convert.ToInt32(y)];
for (float x = 0.0f; x < maxColCount; x += 1.0f)
{
SizeF sf = g.MeasureString(dr[Convert.ToInt32(x)].ToString(), new Font("굴림체", 10.0f));
// 높이는 추후 조정..
g.DrawRectangle(new Pen(Color.Black, 1.0f), x * rectF.Width, y * rectF.Height, rectF.Width, rectF.Height);
g.DrawString(string.Format("{0:00} dr[{1:00}]: {2:00}", y, x, dr[Convert.ToInt32(x)]), new Font("굴림체", 10.0f), Brushes.Black, new RectangleF(x * rectF.Width + (sf.Width / 2), y * rectF.Height + sf.Height / 2, rectF.Width, rectF.Height));
}
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
dt = new DataTable();
dt.Columns.Add("A");
dt.Columns.Add("B");
dt.Rows.Add(1, 2);
dt.Rows.Add(3, 4);
dt.Rows.Add(5, 6);
dt.Rows.Add(7, 8);
dataGridView1.DataSource = dt;
}
private void button1_Click(object sender, EventArgs e)
{
if( dt != null ) DrawTable(Graphics.FromHwnd(pictureBox1.Handle), dt);
}
}
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
하루 하루.... 일정 기록하고 관리 하는 기능! (0) | 2009.06.09 |
---|---|
TextBox 에서 Enter키가 눌렸을 때 Tab 이동.. 관련해서 두가지.. (0) | 2009.06.05 |
메뉴] 즐겨찾기 읽어들이기 (0) | 2009.05.08 |
그래픽스. 어디에 그려지는가? (0) | 2009.05.08 |
테트리스 (0) | 2009.05.02 |
메뉴] 즐겨찾기 읽어들이기
이건 내 피씨에 즐겨찾기 폴더의 내용을 그대로 메뉴 스트립에 옮긴것임.
메뉴 클릭시 익스플로어를 실행하면서 해당 링크를 실행함.
해본것은 그냥 재귀호출을 통해 트리뷰나 메뉴스트립관련해서 똑같은 처리 방식을
테스트 해본것임.
아래 객체를 이용해서
FavoritesMenuItems fMenuItem = new FavoritesMenuItems();
mainMenu1.MenuItems.Add( fMenuItem.GetDirectory( fMenuItem.FavoritesPath) );
이 두줄이면 위 폼처럼 만들어짐.
아래 객체는 즐겨찾기 폴더에 데이타를 메뉴 스트립으로 만들어주는 객체임.
/// <summary>
/// 탐색기 - 즐겨찾기
/// 메뉴로 등록하는 class
/// </summary>
class FavoritesMenuItems
{
public string FavoritesPath;
Hashtable htArray = new Hashtable();
public FavoritesMenuItems()
{
FavoritesPath = Environment.GetFolderPath( Environment.SpecialFolder.Favorites );
}
public MenuItem GetDirectory( string path)
{
System.Windows.Forms.MenuItem rootItem = new MenuItem();
string[] directorys = System.IO.Directory.GetDirectories( path );
string[] files = System.IO.Directory.GetFiles( path );
rootItem.Text = GetItemName( path);
foreach( string directoryName in directorys)
{
rootItem.MenuItems.Add(GetDirectory( directoryName ));
}
foreach( string fileName in files)
{
System.Windows.Forms.MenuItem tempItem = new MenuItem();
// Ht에 저장하면서 MenuItem에 등록!!
SetArray(tempItem, GetItemName( fileName ), fileName, 0);
tempItem.Click += new EventHandler(tempItem_Click);
rootItem.MenuItems.Add( tempItem );
}
return rootItem;
}
private string GetItemName(string path)
{
int idx = 0;
idx = path.LastIndexOf(@"\");
if( idx <= -1 ) return path;
return path.Substring( idx+1, path.Length - idx-1);
}
// 중복된 Key는 카운트 반영!
private void SetArray(System.Windows.Forms.MenuItem tempItem, string Key, string Value, int i)
{
if( htArray.Contains( Key) == false)
{
tempItem.Text = Key;
htArray.Add( Key, Value);
}
else
{
SetArray(tempItem, Key + (i++).ToString() , Value, i);
}
}
// 자기자신을 이용한 Value값 셀렉트
private string this[string Key]
{
get
{
return (string)htArray[ Key ];
}
}
// 서브메뉴에 대한 클릭이벤트..
private void tempItem_Click(object sender, EventArgs e)
{
//MessageBox.Show( this[((MenuItem)sender).Text] );
if( this[((MenuItem)sender).Text].Trim().CompareTo("") == 0)
return;
System.Diagnostics.ProcessStartInfo pcssinfo = new System.Diagnostics.ProcessStartInfo( "explorer", this[((MenuItem)sender).Text]);
System.Diagnostics.Process.Start( pcssinfo );
// 익스플로어를 실행함.
}
}
ps : 음 참 별걸 다 적용했다는 생각이 듬...
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
TextBox 에서 Enter키가 눌렸을 때 Tab 이동.. 관련해서 두가지.. (0) | 2009.06.05 |
---|---|
데이타 테이블 그리기. (2) | 2009.05.08 |
그래픽스. 어디에 그려지는가? (0) | 2009.05.08 |
테트리스 (0) | 2009.05.02 |
아날로그 시계 (0) | 2009.05.02 |
그래픽스. 어디에 그려지는가?
DrawRect( Graphics.FromHwnd( this.pictureBox1.Handle ) , new Pen( Color.Red ,2f), new Rectangle( 1, 1, 10,10));
DrawRect( Graphics.FromHwnd( this.pictureBox2.Handle ) , new Pen( Color.Blue ,2f), new Rectangle(0, 0, 10,10));
private void DrawRect( Graphics ggg, Pen pen, Rectangle rect)
{
ggg.DrawRectangle(pen, rect);
}
Graphics를 테스트 해보면... 해당 컨트롤에서 추출된 Graphics 객체에 그려짐...
2D GDI + 가 궁금할때!!! 테스트해봤던 내용임.
어디에 그려지는가~
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
데이타 테이블 그리기. (2) | 2009.05.08 |
---|---|
메뉴] 즐겨찾기 읽어들이기 (0) | 2009.05.08 |
테트리스 (0) | 2009.05.02 |
아날로그 시계 (0) | 2009.05.02 |
HTML 자동 정렬 프로그램 (0) | 2009.05.02 |