WebClient와 WebBrowser의 차이는??
훈스에 올라온 질문중에 한글이 들어간 파라미터를 사용하는 OpenAPI 주소를 넣으면
xml을 제대로 쿼리해오지 못한다고 해서...
URI에 한글이 있고 없고 차이였는데... WebClient에 넣으면 자동 인코딩이되어 데이타가 안나오고
WebBrowser에 넣으면 제대로 데이타가 나온다.
WebClient로 해봤으나.. 역시 기초부족일테고, httpWebRequest도 해보고 WebRequest....
다 써봤는데 젠장... 제대로 안온다.?
Explorer에 주소 치고 엔터 치면 가져온다...
그래서 WebBrowser에 Url 속성에 넣고 가져와봤더니 가져온다..???
여기서.......... 겁나 깝깝했다... 하나는 가져오고 하나는 가져오지 않는다.
근데 WebBrowser는 컨트롤인데 좀 패키지화 시키기 어정쩡한?
그래서 나온 소스가?
delegate void GetXml(string _xml);
private void MM(Uri ur, GetXml write)
{
WebBrowser wb = new WebBrowser();
{
wb.Url = ur;
wb.DocumentCompleted += (s, e) =>
{
write(wb.DocumentText);
using (wb) { /* 객체를 없애기 위해 */ };
};
wb.Refresh(WebBrowserRefreshOption.Completely);
}
}
private void button1_Click(object sender, EventArgs e)
{
Uri ur = new Uri("~~~~~~~");
MM(ur, x => [webBrowser1.DocumentText] = x);
}
풋... 좀 깬다 ㅡ.,ㅡ;;;
이건.. 유틸용으로다... 쩝.....
public class Util
{
public delegate void GetXml(string _xml);
public static void MM(Uri ur, GetXml write)
{
WebBrowser wb = new WebBrowser();
{
wb.Url = ur;
wb.DocumentCompleted += (s, e) =>
{
write(wb.DocumentText);
using (wb) { /* 객체를 없애기 위해 */ };
};
wb.Refresh(WebBrowserRefreshOption.Completely);
}
}
}
// 사용할때~
private void button1_Click(object sender, EventArgs e)
{
Uri ur = new Uri("~~~~~~~~");
Util.MM(ur, x => [webBrowser1.DocumentText] = x);
}
더워서 더는 못하겠따~!!!
'# 3) .Net ( Vs 2008 ) > C#' 카테고리의 다른 글
포스트 잇 처럼 메모하는 레이아웃!! (0) | 2010.09.30 |
---|---|
Ms Access 사용하기 예제소스. (0) | 2010.08.11 |
LINQ 그룹바이... 훌... (0) | 2010.07.30 |
Double.Parser()... (0) | 2010.07.19 |
암묵적인 형변환? 코드...? (0) | 2010.05.18 |
LINQ 그룹바이... 훌...
훈스에 올라온 질문글에 무심코 그룹바이로 하면 쉬울것 같아요... ....................
LINQ는 간간히 msdn보면서 하고 있지만...
무심코 한말을 되집어 보고자 직접 쿼리에 도전...
ㅡ.,ㅡ; 1시간 넘게 삽질 했넹..
Sum .. 이넘때메...
그룹바이 은근 어렵넹.
dt = new DataTable();
dt.Columns.Add("A");
dt.Columns.Add("B");
dt.Rows.Add(new object[] { "A", 10 });
dt.Rows.Add(new object[] { "A", 10 });
dt.Rows.Add(new object[] { "B", 10 });
dt.Rows.Add(new object[] { "A", 10 });
var a = from tmp in dt.AsEnumerable()
group tmp by tmp.Field<string>("A") into k
select new
{
c1 = k.Key,
c2 = k.Sum(sum => Convert.ToInt32( sum.Field<string>("B") ))
};
DataTable result = new DataTable();
result = dt.Clone();
foreach (var tt in a)
{
result.Rows.Add(new object[] { tt.c1, tt.c2 });
}
'# 3) .Net ( Vs 2008 ) > C#' 카테고리의 다른 글
Ms Access 사용하기 예제소스. (0) | 2010.08.11 |
---|---|
WebClient와 WebBrowser의 차이는?? (3) | 2010.07.30 |
Double.Parser()... (0) | 2010.07.19 |
암묵적인 형변환? 코드...? (0) | 2010.05.18 |
IPC .Net ( 프로세스간 통신 ) (1) | 2010.05.12 |
[GDI+] Matrix 객체 사용해보기...
나에게 행렬이란? 계산방법이나 결과값을 구하는건 알겠는데... 그래픽에 막상 적용해놓고도 이게 뭔가... 싶은것?
역시 수학 기초가 딸리면 멍때리는건 시간문제얌 ㅡ.,ㅡ;;;
얼마전 훈스에 올라온 행렬 구하는 객체가 있는가에 대해 검색좀 해보니 Matrix란게 있었는데...
또 마침 별그리는것... 선 이동시하는것등... 갑자기 또 관심종목이 ㅡ.,ㅡ;;;
오늘 저녁엔 Matrix를 가지고 놀아보자 해서 별그리는데 써보기로 했다.
그럼 이 Matrix는 뭐하는 놈인고 하니 MSDN 에 보니 이 놈이 좌표변환 하는데 쓰이는 놈이었다.
3D 구현때보다는 머 나름 편했다. 3D는 아직도 이해 불가..( 절두체 ㅡ.,ㅡ;; )
2D로 별을 그린다고 했을때
private void DrawStar(Graphics g, double r, PointF p)
{
PointF[] ps = new PointF[6];
double RadianTheta = 0d;
int cnt = 0;
for (double i = 0; i <= 720d; i += 144d)
{
RadianTheta = (angle + i) * Math.PI / 180d;
ps[cnt] = new PointF(p.X + (float)(r * 1d * Math.Cos(RadianTheta)),
p.Y + (float)(r * 1d * Math.Sin(RadianTheta)));
cnt++;
}
g.DrawLines(Pens.Red, ps);
g.DrawEllipse(Pens.Blue, p.X - 5, p.Y - 5, 10, 10);
}
말할것도 없이 이거답... angle은 회전각인데.. 별을 빙글~빙글~ 돌려봤다..
이게 오히려 나에겐 이해하기 쉽다...
private void DrawStar(PaintEventArgs e)
{
PointF[] starPointFs = new PointF[6];
int cnt = 0;
double theta = 0f;
for (double i = 0; i <= 720d; i += 144d)
{
theta =( i - 5f) * Math.PI / 180d;
starPointFs[cnt] = new PointF((float)Math.Cos(theta), (float)Math.Sin(theta));
cnt++;
}
e.Graphics.DrawLines(Pens.Red, starPointFs);
//Matrix를 이용한 좌표변환 그리기...
Matrix mx = new Matrix(1f, 0f, 0f, 1f, this.Width/2, this.Height/2);
mx.Scale(100f, 100f);
mx.Rotate((float)angle);
mx.TransformPoints(starPointFs);
e.Graphics.DrawLines(Pens.Black, starPointFs);
}
Matrix의 기본 파라미터값( Sx , Rx, Ry, Sy, Dx, Dy ) 임.
Rx, 나 Ry를 값을 주면 왜곡되는데... 왜그런지 모르겠넹... 쩝.
매트릭스로 구현한 소스이다.
기초 메트릭스를 생성하고 여기에 크기변환, 회전값을 주고
별의 각 점좌표를 주고 변환 한다!
그리고 그려주면 별이 그려진다.
소스상에 i - 5f 는 두개의 별을 동시에 그리면 위상이 같아서 겹치므로 위상차를 주었다.
간단하게나마 매트릭스를 그려보았다.
음 어따 써먹쥐????????????????????????????? 이걸 왜했을까?
# 실제 이미지는 타이머로 빙글 빙글 돌리고 있다....
'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글
글꼴 폰트 관련 MSDN 링크 (0) | 2010.08.10 |
---|---|
소수 구하기 소스... (0) | 2010.08.06 |
IFormattable (0) | 2010.07.15 |
트리노드 검색해서 확장하기... (0) | 2010.03.17 |
목록 로테이션??? (0) | 2010.03.16 |
[WPF] Tab 순환코드
KeyboardNavigation.TabNavigation="Cycle"
페이지 내의 포커스가 마지막엘리먼트 이후 외부로 또는 어딘지 모르는곳으로 튀는것을 막기위해
처음엔 FocusManager.FocusedElement="{Binding ElementName=포커스지정엘리먼트명}"
으로 작성하여 잘 되는것처럼 보였으나...
탭컨트롤 안으로 들어가서 계층구조의 깊이가 깊어질수록 난해하고 복잡함에 지정된대로 적용도 안되고 하여
MSDN을 다시 읽어보던 중 키보드네비게이션을 발견!!
아쒸~~ 꼬박 하루 삽질해서 찾은거네.. ㅋㅋ 어쨌든..
참조 : http://msdn.microsoft.com/ko-kr/library/aa969768(VS.90).aspx#Keyboard_Focus
열심히 바꿔야겠군...
2015-09-05
첨부파일을 추가했음 ( 내부 ) : 사용자정의용컨트롤에 대한 처리.
'# 3) .Net ( Vs 2008 ) > WPF' 카테고리의 다른 글
IValueConverter 사용 데모 (0) | 2010.09.06 |
---|---|
WPF 쓰레드 ( 프로그래스바 ) (0) | 2010.08.10 |
툴을 제작 해서 프로젝트를... 진행하다! (0) | 2010.02.26 |
WPF 3D (0) | 2009.12.29 |
데이타바인딩(2) (0) | 2009.12.28 |
그림판? 그림 이동? 별그리기...
전에 SBS 자막 프로젝트 할때...
당시 그쪽 인력들은 죄다 그래픽 관련인지라 더군다나 C++을 아주 아주 능숙하게 사용하는 사람들이었는데...
정말 잘 만들던데...
오늘 훈스에 별그리기, 그린 선을 클릭해서 이동하는 방법... 들에 대한 문의가 올라왔다.
그 동안 나도 공부도 했다 싶어서 도전... 별과 함게 딱 3시간 반,,, 별은 그닥 오래 안걸렸는데...
선 이동하는게 쉽지 않군... 그리는것 부터 해서 이동하는데 걸린 작업시간이 3시간. ( 뭐 나름 선방했다 치자.. )
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace makeClass
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// 깜빡거릴것 같은....
DoubleBuffered = true;
}
/// <summary>
/// 자료구조( 점과 영역 저장)
/// </summary>
SortedList<string, PointList> Points = new SortedList<string, PointList>();
protected override void OnPaint(PaintEventArgs e)
{
// 선택시 활성화
if (_Selected)
{
e.Graphics.DrawRectangle(Pens.RoyalBlue, Rectangle.Truncate(Points[SelectKey].Region));
}
// 저장된 점 모두 그림.
foreach (KeyValuePair<string, PointList > p1 in Points)
{
for (int i = 0; i < p1.Value.Points.Count - 1; i++)
{
e.Graphics.DrawLine(Pens.Red, p1.Value.Points[i], p1.Value.Points[i + 1]);
}
}
base.OnPaint(e);
}
//마우스 눌렸을때 ( 그리기 모드 )
bool _MouseDown = false;
//선택되었을때 ( 이동 모드 )
bool _Selected = false;
// 선택키
string SelectKey = "";
#region 그리기 & 이동에 필요한 변수
PointF pt = new PointF();
List<PointF> tmp = null;
RectangleF rct; //= new Rectangle(0,0,0,0);
#endregion
protected override void OnMouseDown(MouseEventArgs e)
{
if (e.Button == MouseButtons.Left) // 그리기
{
rct = new RectangleF(0,0,0,0);
pt = rct.Location = e.Location;
tmp = new List<PointF>();
tmp.Add(e.Location);
_MouseDown = true;
}
else if ( e.Button == MouseButtons.Right ) // 이동하기
{
pt = e.Location;
foreach (KeyValuePair<string, PointList> kv in Points)
{
_Selected = kv.Value.Region.Contains(e.Location);
if (_Selected)
{
SelectKey = kv.Key;
tmp = kv.Value.Points;
rct = kv.Value.Region;
break;
}
}
}
base.OnMouseDown(e);
}
protected override void OnMouseMove(MouseEventArgs e)
{
if ( _MouseDown && tmp != null )
{
tmp.Add(e.Location);
using (Graphics g = Graphics.FromHwnd(this.Handle))
{
g.DrawLines(Pens.Red, tmp.ToArray() ); // 그리는걸 보여주기 위해..
}
}
else if (_Selected && tmp != null)
{
tmp = Points[SelectKey].Points;
PointF tm;
// 포인트 스왑
for (int idx = 0; idx < tmp.Count; idx++ )
{
tm = tmp[idx];
tm.X += e.Location.X - pt.X;
tm.Y += e.Location.Y - pt.Y;
tmp[idx] = tm;
}
// 영역 스왑
rct = Points[SelectKey].Region;
rct.X += e.Location.X - pt.X;
rct.Y += e.Location.Y - pt.Y;
Points[SelectKey].Region = rct;
using (Graphics g = Graphics.FromHwnd(this.Handle))
{
// 이동시 잔상 제거 및 다시 그리기.
Invalidate( Rectangle.Truncate( new RectangleF( rct.X - 100f, rct.Y - 100f, rct.Width + 200f, rct.Height + 200f )), true);
}
pt = e.Location;
}
// base.OnMouseMove(e);
}
/// <summary>
/// 자료구조 키값. ( 생성시... Object 구분값으로 씀)
/// </summary>
int PointKey = 0;
protected override void OnMouseUp(MouseEventArgs e)
{
if (tmp != null)
{
if (_MouseDown == true)
{
tmp.Add(e.Location);
float maxX = 0;
float maxY = 0;
foreach (PointF pf in tmp)
{
if (rct.X > pf.X) rct.X = pf.X;
if (rct.Y > pf.Y) rct.Y = pf.Y;
if (maxX < pf.X) maxX = pf.X;
if (maxY < pf.Y) maxY = pf.Y;
}
rct.Width = maxX - rct.X;
rct.Height = maxY - rct.Y;
Points.Add((PointKey++).ToString(), new PointList(rct, tmp));
}
// 해제
_Selected = false;
_MouseDown = false;
Invalidate();
tmp = null;
}
base.OnMouseUp(e);
}
// 별그리기...
private void DrawStar(Graphics g, double r, PointF p)
{
PointF[] ps = new PointF[6];
double RadianTheta = 0d;
int cnt = 0;
for (double i = 0; i <= 720d; i += 144d )
{
RadianTheta = i * Math.PI / 180 ;
ps[ cnt ] = new PointF( p.X + (float)( r * 1d * Math.Cos( RadianTheta )) ,
p.Y + (float)( r * 1d * Math.Sin( RadianTheta ) ) );
cnt ++;
}
g.DrawLines(Pens.Red, ps);
}
// 자료구조.
public class PointList
{
public PointList(RectangleF rt, List<PointF> lp )
{
region = rt; points = lp;
}
RectangleF region = new RectangleF();
public RectangleF Region
{
get { return region; }
set { region = value; }
}
List<PointF> points = new List<PointF>();
public List<PointF> Points
{
get { return points; }
set { points = value; }
}
}
}
}
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
3가지중 1개로 선택해서 바꿈] 더블 삼항연산자 (0) | 2013.08.01 |
---|---|
[ C# WinForm ] 음.. 달력!! (0) | 2011.03.24 |
런타임상에서의 컨트롤 사이즈 드래그!!! (0) | 2010.06.10 |
서버 - 클라이언트 ... (0) | 2010.05.08 |
타이머 구현... (0) | 2010.04.08 |
Double.Parser()...
더블값 부호 후행 처리를 위해...
string ss = "5000.00-";
double d = double.Parse(ss, System.Globalization.NumberStyles.AllowTrailingSign | System.Globalization.NumberStyles.Float);
SAP에서는 -가 뒤에 붙어오는데 이를 바꾸기 위해 위처럼. NumberStyles 값을 or해주면 된다.
'# 3) .Net ( Vs 2008 ) > C#' 카테고리의 다른 글
WebClient와 WebBrowser의 차이는?? (3) | 2010.07.30 |
---|---|
LINQ 그룹바이... 훌... (0) | 2010.07.30 |
암묵적인 형변환? 코드...? (0) | 2010.05.18 |
IPC .Net ( 프로세스간 통신 ) (1) | 2010.05.12 |
VB의 Left구현하기... 확장메서드를 이용함... (0) | 2010.02.22 |
IFormattable
SubComboBoxClass sb = new SubComboBoxClass();
sb.DataCode = "7001";
sb.Value = "V";
object obj = sb;
this.Text = string.Format("{0:KEY}", obj);
위처럼 따로 정의한 객체가 특정 Format 형식을 지원하고자 할때 사용 할 수 있다.
가끔 다른 인터페이스랑 헷갈릴때가 있어서 기록해둔다.
internal class SubComboBoxClass : IFormattable
{
public string Name { get; set; }
public string Value { get; set; }
public string DataCode { get; set; }
public override string ToString()
{
return ToString(null, null);
}
#region IFormattable 멤버
public string ToString(string format, IFormatProvider formatProvider)
{
if (format == "KEY")
{
return Value + DataCode;
}
return Name + ":" + DataCode + "[" + Value + "]";
}
#endregion
}
'# 2) .Net ( Vs 2005 ) > 기타' 카테고리의 다른 글
소수 구하기 소스... (0) | 2010.08.06 |
---|---|
[GDI+] Matrix 객체 사용해보기... (0) | 2010.07.27 |
트리노드 검색해서 확장하기... (0) | 2010.03.17 |
목록 로테이션??? (0) | 2010.03.16 |
사용자 정의 문자열 포멧 지정하기 ( IFormatProvider, ICustomFormatter ) (0) | 2009.08.17 |
침묵이 필요할때~~~
나름 많이 알고 있는것도 중요하지만 정확하게 아는게 더 중요한거고..
고개가 뻣뻣한것보다는 조금 숙여볼수도 있는 자세가 필요할때...
나이를 먹나부다... 이런 고민도 하는거보면..
'--- 취미 > 생각하기' 카테고리의 다른 글
[용어] 엥겔지수가 뭔가? (0) | 2010.11.18 |
---|---|
아 또 다시 찾아오는 슬럼프인가??? (0) | 2010.09.05 |
한순간에 방심으로 죽을뻔했다... (0) | 2010.05.03 |
[멋진글... (펌)]현재 하고 있는 세븐소울즈가 캐쉬템을 팔면서 올라온글... (0) | 2010.04.30 |
세상은 사소한것들을 무시하는듯 하다... (0) | 2010.03.12 |
컨트롤 디자이너? ~~~ 크기 및 위치변경..
아 개떡같은... 싸이즈 변경.
VS에서 디자이너에서만 지원되는 크기변경핸들러?
WPF로 된건 보이는데 그전건 안보이넹...
어제 몇가지 해보다가 크기 변경하는데 너무 빠르게 변경되서...
나의 잘못된 생각이 일을 꼬이게 만들어버렸네...
전에 했던 위치값 계산방법은 레이어 이동을 관리하던거였는데... 이번껀...
그게 아닌데 말이얌...
다행이 찾았다..
절대값으로 해당 계산값 뽑아서 +1 , -1 시키는 ... 집에가서 해봐야지 !
---------- 집에서 작성해보니... 살포시 작동은 잘되는데...
문제점이 발견되었넹... 사이즈 조절시 마우스가 좀 빨라서 영역을 벗어났을때가 문제가 되네... 멈춰버린다는거...
그래서 몇가지 더 고민해보고
기존에 작업했던내용 + 위내용 을 해서 수정을 한다.
나름 효과가 있는데... 예상 문제에 대해 살짝 구현해서 테스트 해봐야겠넹...
Msnd에 보면 Andor?인가 하는놈이 그거 같은뎅... VS디자이너에서만 적용이 되다뉭...
----------- 완료!!
문제가 될만한 사항도 모두 해결해서 만들었다...아싸!
컨테이너로 만들어서 간편하게 만들어두었다.. 올레~
'# 9) My Program(.NET) > JsFW20_프로그램!' 카테고리의 다른 글
마인드맵 Two? 꺽었다... (0) | 2010.06.30 |
---|---|
마인드맵? 객체 링크 표현. (0) | 2010.06.29 |
JsFW20.XML 수정.. (0) | 2010.06.04 |
마인드맵 Two? 꺽었다...
주 객체와 하위 객체간 노드 그리는걸 완성했다..
어디는 두번 꺽이고 어디는 한번만 꺽이고... 산수 참... 쩝..
위 그림은 1개의 주 메인에 하위 8개를 각각 배치시켜서 노드를 그린 것인다...
어깨가 뻐근해온답... 50견인가? 쿨럭!
'# 9) My Program(.NET) > JsFW20_프로그램!' 카테고리의 다른 글
컨트롤 디자이너? ~~~ 크기 및 위치변경.. (0) | 2010.07.01 |
---|---|
마인드맵? 객체 링크 표현. (0) | 2010.06.29 |
JsFW20.XML 수정.. (0) | 2010.06.04 |