<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Форум 'WinForms [GDN]' на RSDN</title>
    <link>http://rsdn.org/Forum/gdn.winforms/</link>
    <description></description>
    <category>gdn</category>
    <category>winforms</category>
    <language>ru-ru</language>
    <copyright>Copyright ©, RSDN, 2001-2007</copyright>
    <webMaster>forum@rsdn.org</webMaster>
    <generator>RSDN RSS Generator 1.3</generator>
    <image>
      <url>http://rsdn.org/rsdn.gif</url>
      <title>RSDN</title>
      <link>http://rsdn.org</link>
    </image>
    <lastBuildDate>Fri, 10 Apr 2026 19:50:02 GMT</lastBuildDate>
    <ttl>5</ttl>
	<item>
		<title>Определить индекс элемента comboBox</title>
		<link>http://rsdn.org/Forum/gdn.winforms/5541595.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/5541595</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/5541595</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=5541595</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/5541595</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=5541595</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;При открытие поля со списком в comboBox, и наведение на него курсора подсвечиваются элементы синим цветом.&lt;br /&gt;
Собственно нужно получить индекс подсвеченного элемента до клика на нем?&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Tue, 01 Apr 2014 22:14:52 GMT</pubDate>
		
			<author>AVALAH &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>PropertyGrid - ошибка при смене значения двойным щелчком</title>
		<link>http://rsdn.org/Forum/gdn.winforms/4609095.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/4609095</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/4609095</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=4609095</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/4609095</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=4609095</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте, коллеги!&lt;br /&gt;
в PropertyGrid делаю свойство&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;
[DisplayName("Выбран")]
[Description("Объект над которым выполняются действия")]
[Category("Объекты")]
[TypeConverter(typeof(SelObjTypeConverter))]
public string SelectedObjectName
{
    get { return _SelectedObjectName; }
    set { _SelectedObjectName = value; }
}

// выпадающий список для выбора объекта
class SelObjTypeConverter : StringConverter
{
     public SelObjTypeConverter() { }
     // сам список для выбора
     public static List&amp;lt;cItem&amp;gt; SObjectsList = new List&amp;lt;cItem&amp;gt;();
     // выбор из списка
     public override bool GetStandardValuesSupported(ITypeDescriptorContext context) { return true; }
     // список не редактируется
     public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) { return true; }
     // отдать список
     public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
     { return new StandardValuesCollection(SObjectsList); }
}

// элемент списка
public class cItem
{
     public string cName { get; set; }
     public int cValue { get; set; }
     public override string ToString() { return cName; }
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Из выпадающего списка выбирается успешно.&lt;br /&gt;
При смене значения двойным щелчком мыши выбрасывает ошибку &amp;mdash; Недопустимое значение свойства &amp;mdash; Невозможно преобразовать объект типа "cItem" к типу "System.String".&lt;br /&gt;
&lt;br /&gt;
Помогите побороть!  &lt;img border='0' width='30' height='26' src='//rsdn.org/Forum/images/crash.gif'/ &gt;&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Wed, 08 Feb 2012 10:46:30 GMT</pubDate>
		
			<author>TM_User &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>Использование C DLL в C#</title>
		<link>http://rsdn.org/Forum/gdn.winforms/4457080.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/4457080</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/4457080</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=4457080</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/4457080</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=4457080</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте.&lt;br /&gt;
Мне нужно использовать библиотеку liblinear в моей программе на C#. Я экспортировал её в dll. функции вроде вызываются, но программа падает от ошибок работы с памятью, а именно, скорее всего потому, что происходят ошибки при её освобождении или она вообще не освобождается.&lt;br /&gt;
&lt;br /&gt;
то что было&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;struct&lt;/span&gt; feature_node
{
    &lt;span class='kw'&gt;int&lt;/span&gt; index;
    &lt;span class='kw'&gt;double&lt;/span&gt; value;
};

&lt;span class='kw'&gt;struct&lt;/span&gt; problem
{
    &lt;span class='kw'&gt;int&lt;/span&gt; l, n;
    &lt;span class='kw'&gt;int&lt;/span&gt; *y;
    &lt;span class='kw'&gt;struct&lt;/span&gt; feature_node **x;
    &lt;span class='kw'&gt;double&lt;/span&gt; bias;            &lt;span class='com'&gt;/* &amp;lt; 0 if no bias term */&lt;/span&gt;  
};

&lt;span class='kw'&gt;enum&lt;/span&gt; { L2R_LR, L2R_L2LOSS_SVC_DUAL, L2R_L2LOSS_SVC, L2R_L1LOSS_SVC_DUAL, MCSVM_CS, L1R_L2LOSS_SVC, L1R_LR, L2R_LR_DUAL }; &lt;span class='com'&gt;/* solver_type */&lt;/span&gt;

&lt;span class='kw'&gt;struct&lt;/span&gt; parameter
{
    &lt;span class='kw'&gt;int&lt;/span&gt; solver_type;

    &lt;span class='com'&gt;/* these are for training only */&lt;/span&gt;
    &lt;span class='kw'&gt;double&lt;/span&gt; eps;            &lt;span class='com'&gt;/* stopping criteria */&lt;/span&gt;
    &lt;span class='kw'&gt;double&lt;/span&gt; C;
    &lt;span class='kw'&gt;int&lt;/span&gt; nr_weight;
    &lt;span class='kw'&gt;int&lt;/span&gt; *weight_label;
    &lt;span class='kw'&gt;double&lt;/span&gt;* weight;
};

&lt;span class='kw'&gt;struct&lt;/span&gt; model
{
    &lt;span class='kw'&gt;struct&lt;/span&gt; parameter param;
    &lt;span class='kw'&gt;int&lt;/span&gt; nr_class;        &lt;span class='com'&gt;/* number of classes */&lt;/span&gt;
    &lt;span class='kw'&gt;int&lt;/span&gt; nr_feature;
    &lt;span class='kw'&gt;double&lt;/span&gt; *w;
    &lt;span class='kw'&gt;int&lt;/span&gt; *label;        &lt;span class='com'&gt;/* label of each class */&lt;/span&gt;
    &lt;span class='kw'&gt;double&lt;/span&gt; bias;
};

&lt;span class='kw'&gt;__declspec&lt;/span&gt;(dllexport) &lt;span class='kw'&gt;struct&lt;/span&gt; model* train(&lt;span class='kw'&gt;const struct&lt;/span&gt; problem *prob, &lt;span class='kw'&gt;const struct&lt;/span&gt; parameter *param);
&lt;span class='kw'&gt;__declspec&lt;/span&gt;(dllexport) &lt;span class='kw'&gt;void&lt;/span&gt; cross_validation(&lt;span class='kw'&gt;const struct&lt;/span&gt; problem *prob, &lt;span class='kw'&gt;const struct&lt;/span&gt; parameter *param, &lt;span class='kw'&gt;int&lt;/span&gt; nr_fold, &lt;span class='kw'&gt;int&lt;/span&gt; *target);

&lt;span class='kw'&gt;__declspec&lt;/span&gt;(dllexport) &lt;span class='kw'&gt;int&lt;/span&gt; predict_values(&lt;span class='kw'&gt;const struct&lt;/span&gt; model *model_, &lt;span class='kw'&gt;const struct&lt;/span&gt; feature_node *x, &lt;span class='kw'&gt;double&lt;/span&gt;* dec_values);
&lt;span class='kw'&gt;__declspec&lt;/span&gt;(dllexport) &lt;span class='kw'&gt;int&lt;/span&gt; predict(&lt;span class='kw'&gt;const struct&lt;/span&gt; model *model_, &lt;span class='kw'&gt;const struct&lt;/span&gt; feature_node *x);
&lt;span class='kw'&gt;__declspec&lt;/span&gt;(dllexport) &lt;span class='kw'&gt;int&lt;/span&gt; predict_probability(&lt;span class='kw'&gt;const struct&lt;/span&gt; model *model_, &lt;span class='kw'&gt;const struct&lt;/span&gt; feature_node *x, &lt;span class='kw'&gt;double&lt;/span&gt;* prob_estimates);

&lt;span class='kw'&gt;__declspec&lt;/span&gt;(dllexport) &lt;span class='kw'&gt;int&lt;/span&gt; save_model(&lt;span class='kw'&gt;const char&lt;/span&gt; *model_file_name, &lt;span class='kw'&gt;const struct&lt;/span&gt; model *model_);
&lt;span class='kw'&gt;__declspec&lt;/span&gt;(dllexport) &lt;span class='kw'&gt;int&lt;/span&gt; save_model_and_clean(&lt;span class='kw'&gt;char&lt;/span&gt; *model_file_name, &lt;span class='kw'&gt;struct&lt;/span&gt; model *model_,parameter* param);

&lt;span class='kw'&gt;__declspec&lt;/span&gt;(dllexport) &lt;span class='kw'&gt;struct&lt;/span&gt; model *load_model(&lt;span class='kw'&gt;const char&lt;/span&gt; *model_file_name);

&lt;span class='kw'&gt;__declspec&lt;/span&gt;(dllexport) &lt;span class='kw'&gt;int&lt;/span&gt; get_nr_feature(&lt;span class='kw'&gt;const struct&lt;/span&gt; model *model_);
&lt;span class='kw'&gt;__declspec&lt;/span&gt;(dllexport) &lt;span class='kw'&gt;int&lt;/span&gt; get_nr_class(&lt;span class='kw'&gt;const struct&lt;/span&gt; model *model_);
&lt;span class='kw'&gt;__declspec&lt;/span&gt;(dllexport) &lt;span class='kw'&gt;void&lt;/span&gt; get_labels(&lt;span class='kw'&gt;const struct&lt;/span&gt; model *model_, &lt;span class='kw'&gt;int&lt;/span&gt;* label);

&lt;span class='kw'&gt;__declspec&lt;/span&gt;(dllexport) &lt;span class='kw'&gt;void&lt;/span&gt; free_model_content(&lt;span class='kw'&gt;struct&lt;/span&gt; model *model_ptr);
&lt;span class='kw'&gt;__declspec&lt;/span&gt;(dllexport) &lt;span class='kw'&gt;void&lt;/span&gt; free_and_destroy_model(&lt;span class='kw'&gt;struct&lt;/span&gt; model **model_ptr_ptr);
&lt;span class='kw'&gt;__declspec&lt;/span&gt;(dllexport) &lt;span class='kw'&gt;void&lt;/span&gt; destroy_param(&lt;span class='kw'&gt;struct&lt;/span&gt; parameter *param);

&lt;span class='kw'&gt;__declspec&lt;/span&gt;(dllexport) &lt;span class='kw'&gt;const char&lt;/span&gt; *check_parameter(&lt;span class='kw'&gt;const struct&lt;/span&gt; problem *prob, &lt;span class='kw'&gt;const struct&lt;/span&gt; parameter *param);
&lt;span class='kw'&gt;__declspec&lt;/span&gt;(dllexport) &lt;span class='kw'&gt;int&lt;/span&gt; check_probability_model(&lt;span class='kw'&gt;const struct&lt;/span&gt; model *model);
&lt;span class='kw'&gt;__declspec&lt;/span&gt;(dllexport) &lt;span class='kw'&gt;void&lt;/span&gt; set_print_string_function(&lt;span class='kw'&gt;void&lt;/span&gt; (*print_func) (&lt;span class='kw'&gt;const char&lt;/span&gt;*));&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
это как я объявил функции в C# программе&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;
    &lt;span class='kw'&gt;unsafe struct&lt;/span&gt; LiBlinear
    {

        &lt;span class='kw'&gt;public struct&lt;/span&gt; feature_node
        {
            &lt;span class='kw'&gt;public int&lt;/span&gt; index;
            &lt;span class='kw'&gt;public double value&lt;/span&gt;;
        };

        &lt;span class='kw'&gt;public struct&lt;/span&gt; problem
        {
            &lt;span class='kw'&gt;public int&lt;/span&gt; l, n;
            &lt;span class='kw'&gt;public int&lt;/span&gt;* y;
            &lt;span class='kw'&gt;public&lt;/span&gt; feature_node** x;
            &lt;span class='kw'&gt;public double&lt;/span&gt; bias;            &lt;span class='com'&gt;/* &amp;lt; 0 if no bias term */&lt;/span&gt;
        };

        &lt;span class='kw'&gt;public struct&lt;/span&gt; parameter
        {
            &lt;span class='kw'&gt;public int&lt;/span&gt; solver_type;

            &lt;span class='com'&gt;/* these are for training only */&lt;/span&gt;
            &lt;span class='kw'&gt;public double&lt;/span&gt; eps;            &lt;span class='com'&gt;/* stopping criteria */&lt;/span&gt;
            &lt;span class='kw'&gt;public double&lt;/span&gt; C;
            &lt;span class='kw'&gt;public int&lt;/span&gt; nr_weight;
            &lt;span class='kw'&gt;public int&lt;/span&gt;* weight_label;
            &lt;span class='kw'&gt;public double&lt;/span&gt;* weight;
        };

        &lt;span class='kw'&gt;public struct&lt;/span&gt; model
        {
            &lt;span class='kw'&gt;public&lt;/span&gt; parameter &lt;span class='kw'&gt;param&lt;/span&gt;;
            &lt;span class='kw'&gt;public int&lt;/span&gt; nr_class;        &lt;span class='com'&gt;/* number of classes */&lt;/span&gt;
            &lt;span class='kw'&gt;public int&lt;/span&gt; nr_feature;
            &lt;span class='kw'&gt;public double&lt;/span&gt;* w;
            &lt;span class='kw'&gt;public int&lt;/span&gt;* label;        &lt;span class='com'&gt;/* label of each class */&lt;/span&gt;
            &lt;span class='kw'&gt;public double&lt;/span&gt; bias;
        };

        &lt;span class='kw'&gt;public enum&lt;/span&gt; ENUM_ { L2R_LR, L2R_L2LOSS_SVC_DUAL, L2R_L2LOSS_SVC, L2R_L1LOSS_SVC_DUAL, MCSVM_CS, L1R_L2LOSS_SVC, L1R_LR, L2R_LR_DUAL }; &lt;span class='com'&gt;/* solver_type */&lt;/span&gt;

        

        [DllImport(&lt;span class='str'&gt;"LIBlinearDLL.dll"&lt;/span&gt;, EntryPoint = &lt;span class='str'&gt;"train"&lt;/span&gt;)]
        &lt;span class='kw'&gt;public static extern&lt;/span&gt; model* train( problem* prob, parameter* &lt;span class='kw'&gt;param&lt;/span&gt;);
        [DllImport(&lt;span class='str'&gt;"LIBlinearDLL.dll"&lt;/span&gt;)]
        &lt;span class='kw'&gt;public static extern int&lt;/span&gt; predict_values(model* model_, feature_node* x, &lt;span class='kw'&gt;double&lt;/span&gt;* dec_values);
        [DllImport(&lt;span class='str'&gt;"LIBlinearDLL.dll"&lt;/span&gt;)]
        &lt;span class='kw'&gt;public static extern int&lt;/span&gt; predict(model* model_, feature_node* x);
        [DllImport(&lt;span class='str'&gt;"LIBlinearDLL.dll"&lt;/span&gt;)]
        &lt;span class='kw'&gt;public static extern int&lt;/span&gt; save_model(&lt;span class='kw'&gt;byte&lt;/span&gt;* model_file_name, model* model_);
        [DllImport(&lt;span class='str'&gt;"LIBlinearDLL.dll"&lt;/span&gt;)]
        &lt;span class='kw'&gt;public static extern int&lt;/span&gt; save_model_and_clean(&lt;span class='kw'&gt;byte&lt;/span&gt;* model_file_name, model* model_, parameter* &lt;span class='kw'&gt;param&lt;/span&gt;);
        [DllImport(&lt;span class='str'&gt;"LIBlinearDLL.dll"&lt;/span&gt;)]
        &lt;span class='kw'&gt;public static extern&lt;/span&gt; model* load_model(&lt;span class='kw'&gt;char&lt;/span&gt;* model_file_name);
        [DllImport(&lt;span class='str'&gt;"LIBlinearDLL.dll"&lt;/span&gt;)]
        &lt;span class='kw'&gt;public static extern int&lt;/span&gt; get_nr_feature(model* model_);
        [DllImport(&lt;span class='str'&gt;"LIBlinearDLL.dll"&lt;/span&gt;)]
        &lt;span class='kw'&gt;public static extern void&lt;/span&gt; free_and_destroy_model(model** model_ptr_ptr);
        [DllImport(&lt;span class='str'&gt;"LIBlinearDLL.dll"&lt;/span&gt;)]
        &lt;span class='kw'&gt;public static extern void&lt;/span&gt; destroy_param(parameter* &lt;span class='kw'&gt;param&lt;/span&gt;);
    }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
собственно использование&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;                &lt;span class='kw'&gt;const int&lt;/span&gt; NUM_FEATURES = 2000;
                LiBlinear.problem prob = &lt;span class='kw'&gt;new&lt;/span&gt; LiBlinear.problem();
                prob.l = selection.Count; &lt;span class='com'&gt;// number of instances&lt;/span&gt;
                prob.bias = -1; &lt;span class='com'&gt;// bias feature&lt;/span&gt;
                prob.n = NUM_FEATURES; &lt;span class='com'&gt;// number of features + one for bias if needed&lt;/span&gt;

                prob.y = (&lt;span class='kw'&gt;int&lt;/span&gt;*)Marshal.AllocCoTaskMem(prob.l); &lt;span class='com'&gt;// allocate space for labels&lt;/span&gt;
                prob.x = (LiBlinear.feature_node**)Marshal.AllocCoTaskMem(prob.l); &lt;span class='com'&gt;// allocate space for features&lt;/span&gt;

                &lt;span class='kw'&gt;for&lt;/span&gt; (&lt;span class='kw'&gt;int&lt;/span&gt; i = 0; i &amp;lt; prob.l; i++)
                {
                    prob.x[i] = (LiBlinear.feature_node*)Marshal.AllocCoTaskMem(&lt;span class='kw'&gt;sizeof&lt;/span&gt;(LiBlinear.feature_node) * (NUM_FEATURES + 2));
                    prob.x[i][NUM_FEATURES].index = -1;  &lt;span class='com'&gt;// -1 marks the end of list&lt;/span&gt;
                    &lt;span class='kw'&gt;for&lt;/span&gt; (&lt;span class='kw'&gt;int&lt;/span&gt; j = 0; j &amp;lt; NUM_FEATURES; j++)
                    {
                        prob.x[i][j].index = 1 + j; &lt;span class='com'&gt;// 1-based feature number&lt;/span&gt;
                        prob.x[i][j].&lt;span class='kw'&gt;value&lt;/span&gt; = selection[i][j];
                    }
                    prob.y[i] = labels[i];
                    selection[i].Clear();
                }

                selection.Clear();
                
                LiBlinear.parameter &lt;span class='kw'&gt;param&lt;/span&gt; = &lt;span class='kw'&gt;new&lt;/span&gt; LiBlinear.parameter();
                &lt;span class='kw'&gt;param&lt;/span&gt;.solver_type = (&lt;span class='kw'&gt;int&lt;/span&gt;)LiBlinear.ENUM_.L2R_L2LOSS_SVC_DUAL;
                &lt;span class='kw'&gt;param&lt;/span&gt;.C = 1;
                &lt;span class='kw'&gt;param&lt;/span&gt;.eps = 1e-4;
                &lt;span class='kw'&gt;param&lt;/span&gt;.nr_weight = 0;
                &lt;span class='kw'&gt;param&lt;/span&gt;.weight_label = &lt;span class='kw'&gt;null&lt;/span&gt;;
                &lt;span class='kw'&gt;param&lt;/span&gt;.weight = &lt;span class='kw'&gt;null&lt;/span&gt;;

                LiBlinear.model* model = LiBlinear.train(&amp;amp;prob, &amp;amp;&lt;span class='kw'&gt;param&lt;/span&gt;);
                
                &lt;span class='kw'&gt;byte&lt;/span&gt;[] save_model_file_name=&lt;span class='kw'&gt;new byte&lt;/span&gt;[]{bla bla bla};
                &lt;span class='kw'&gt;byte&lt;/span&gt;* save_name = (&lt;span class='kw'&gt;byte&lt;/span&gt;*)Marshal.AllocCoTaskMem(save_model_file_name.Length);
                &lt;span class='kw'&gt;for&lt;/span&gt; (&lt;span class='kw'&gt;int&lt;/span&gt; i = 0; i &amp;lt; save_model_file_name.Length; i++)
                    save_name[i] = save_model_file_name[i];
                
                LiBlinear.save_model_and_clean(save_name, model, &amp;amp;&lt;span class='kw'&gt;param&lt;/span&gt;);
                
                Marshal.FreeCoTaskMem((IntPtr)save_name);

                Marshal.FreeCoTaskMem((IntPtr)prob.y);
                &lt;span class='kw'&gt;for&lt;/span&gt; (&lt;span class='kw'&gt;int&lt;/span&gt; i = 0; i &amp;lt; prob.l; i++) Marshal.FreeCoTaskMem((IntPtr)prob.x[i]);
                Marshal.FreeCoTaskMem((IntPtr)prob.x);&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
если объем памяти используемой не очень велик, то иногда работает нормально, но умирает при повторных вызовах.&lt;br /&gt;
буду признателен за конструктивные предложения.&lt;br /&gt;
&lt;br /&gt;
весь проект &lt;a class="m" href="http://files.rsdn.org/98733/FindPedestrian.zip" target="_blank"&gt;здесь&lt;/a&gt;&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Fri, 14 Oct 2011 11:47:20 GMT</pubDate>
		
			<author>igsilya &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>webbrowser и javascript зараза</title>
		<link>http://rsdn.org/Forum/gdn.winforms/4454327.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/4454327</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/4454327</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=4454327</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/4454327</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=4454327</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Всем привет!&lt;br /&gt;
&lt;br /&gt;
  Вопрос следующий. Если с помощью компонента webbrowser зайти на динамически формирующуюся страницу (яркий пример на google.ru) после загрузки документа содержание Document отличается от изображения на экране, ибо javascript изменяет сам код html. Так вот, вопрос звучит так &amp;mdash; как получить динамически сформированую страницу после отработки скриптов. Ну или хотя бы направте в нужное русло.&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Wed, 12 Oct 2011 12:56:58 GMT</pubDate>
		
			<author>sid28108 &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>3</slash:comments>
		
	</item>

	<item>
		<title>v</title>
		<link>http://rsdn.org/Forum/gdn.winforms/4454303.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/4454303</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/4454303</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=4454303</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/4454303</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=4454303</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;'v&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Wed, 12 Oct 2011 12:43:52 GMT</pubDate>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>Выделение CheckBox в ListView двойным щелчком мыши</title>
		<link>http://rsdn.org/Forum/gdn.winforms/4449638.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/4449638</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/4449638</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=4449638</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/4449638</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=4449638</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здарвствуйте!&lt;br /&gt;
Имеется в наличии стандартный ListView, выставленный в Details, свойство CheckBoxes включено. В данной конфигурации при двойном щелчке мыши по итему получаем срабатывающий чекбокс. Хотелось бы избежать такого поведения (то есть по двойному щелчку выделяется итем, но чекбокс сохраняет свое прежнее состояние).&lt;br /&gt;
Попытка перегрузить OnMouseDoubleClick для ListView нужного результата не дала. Мало того опыт показал, что этот обработчик даже не вызывается при двойном щелчке по итему. Перегрузить же OnMouseDoubleClick для ListViewItem не удается вообще. Его просто нет в списке доступных для перегрузки методов. Помогите, пожалуйста, разрешить ситуацию. Заранее спасибо за помощь.&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Sun, 09 Oct 2011 12:07:57 GMT</pubDate>
		
			<author>Артемий &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>ParentForm</title>
		<link>http://rsdn.org/Forum/gdn.winforms/4384562.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/4384562</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/4384562</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=4384562</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/4384562</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=4384562</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Создаю дочернее окно в &lt;b&gt;Гланой Форме&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;...  
  ChildForm chForm = &lt;span class='kw'&gt;new&lt;/span&gt; ChildForm();
  chForm.Owner = &lt;span class='kw'&gt;this&lt;/span&gt;;
  chForm.Show(&lt;span class='kw'&gt;this&lt;/span&gt;);
...&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
В &lt;b&gt;Дочернем окне&lt;/b&gt; нормально получаю Handle родительского&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;...
Form frm = &lt;span class='kw'&gt;this&lt;/span&gt;.Owner;
&lt;span class='kw'&gt;this&lt;/span&gt;.label1.Text = frm.Name + &lt;span class='str'&gt;" "&lt;/span&gt; + frm.Handle.ToString();
...&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Вроде, все хорошо. Но далее с помощью &lt;b&gt;Spy++&lt;/b&gt; делаю FindWindow &lt;b&gt;Дочернего окна&lt;/b&gt; и оказывается Handle родительского &lt;b&gt;0&lt;/b&gt;, т.е. Рабочий стол, а не Главной формы.&lt;br /&gt;
&lt;br /&gt;
Если использоваь WinAPI функцию &lt;b&gt;SetParent&lt;/b&gt;, в &lt;b&gt;Spy++&lt;/b&gt; все становится как надо &amp;mdash; дочернее окно и в качестве родителя &amp;mdash; главное.&lt;br /&gt;
Но дочернее окно уже перестает быть PopUp(всплывающим) и находится в контейнере первого!&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;...
   [DllImport(&lt;span class='str'&gt;"user32.dll"&lt;/span&gt;, SetLastError = &lt;span class='kw'&gt;true&lt;/span&gt;)]
    &lt;span class='kw'&gt;static extern&lt;/span&gt; IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

...
  ChildForm chForm = &lt;span class='kw'&gt;new&lt;/span&gt; ChildForm();
  chForm.Owner = &lt;span class='kw'&gt;this&lt;/span&gt;;
  chForm.Show(&lt;span class='kw'&gt;this&lt;/span&gt;);
  SetParent(chForm.Handle, &lt;span class='kw'&gt;this&lt;/span&gt;.Handle);
...&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Помогите пожалуйста: Как сделать, чтобы дочернее окно было всплывающим и Handle родительского окна прописался в дочернее как положено?&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Thu, 18 Aug 2011 09:48:34 GMT</pubDate>
		
			<author>TSEO &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>Обновление, удаление строки с применением SqlCommandBuilder</title>
		<link>http://rsdn.org/Forum/gdn.winforms/4319974.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/4319974</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/4319974</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=4319974</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/4319974</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=4319974</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Добрый день. Вопрос такой. Учу АДО&lt;br /&gt;
Не пойму как обновить и удалить строку в БД.&lt;br /&gt;
&lt;br /&gt;
Уровень DAL:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;SqlDataAdapter employeesDA = &lt;span class='kw'&gt;new&lt;/span&gt; SqlDataAdapter(&lt;span class='str'&gt;"SELECT * FROM Employees"&lt;/span&gt;, connectionString);
SqlCommandBuilder employeesCB = &lt;span class='kw'&gt;new&lt;/span&gt; SqlCommandBuilder(employeesDA);&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Я так понял что SqlCommandBuilder генерит все остальные команды.&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;internal bool&lt;/span&gt; SaveChanges(DataSet msDB)
{
     &lt;span class='kw'&gt;bool&lt;/span&gt; flag = &lt;span class='kw'&gt;false&lt;/span&gt;;
     ....................
     &lt;span class='kw'&gt;try&lt;/span&gt;
     {
            employeesDA.Update(msDB.Tables[&lt;span class='str'&gt;"Employees"&lt;/span&gt;]);
     }
      ...................
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Уровень UI.&lt;br /&gt;
Добавление строки выглядит так:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;        &lt;span class='kw'&gt;private void&lt;/span&gt; btn_add_Click(&lt;span class='kw'&gt;object&lt;/span&gt; sender, EventArgs e)
        {

            DataRow drNewEmlpoyees = myStoreDB.Tables[&lt;span class='str'&gt;"Employees"&lt;/span&gt;].NewRow();

            &lt;span class='kw'&gt;try&lt;/span&gt;
            {
                drNewEmlpoyees[&lt;span class='str'&gt;"ID"&lt;/span&gt;] = Guid.NewGuid();
                drNewEmlpoyees[&lt;span class='str'&gt;"FullName"&lt;/span&gt;] = txbx_fullName.Text;
                drNewEmlpoyees[&lt;span class='str'&gt;"Post"&lt;/span&gt;] = txbx_post.Text;
                drNewEmlpoyees[&lt;span class='str'&gt;"Address"&lt;/span&gt;] = txbx_address.Text;
                drNewEmlpoyees[&lt;span class='str'&gt;"Phone"&lt;/span&gt;] = Int32.Parse(txbx_phone.Text);
                drNewEmlpoyees[&lt;span class='str'&gt;"BirthDate"&lt;/span&gt;] = DateTime.Parse(dtp_employees.Value.ToString());
                drNewEmlpoyees[&lt;span class='str'&gt;"Notes"&lt;/span&gt;] = txbx_notes.Text;

                myStoreDB.Tables[&lt;span class='str'&gt;"Employees"&lt;/span&gt;].Rows.Add(drNewEmlpoyees); 

                ........................
                emloyeesBll.SaveChanges(myStoreDB);
             }
          ...................
        }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
т.е.  здесь я вижу, что с помощью Add&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt; 
myStoreDB.Tables[&lt;span class='str'&gt;"Employees"&lt;/span&gt;].Rows.Add(drNewEmlpoyees);&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
в таблицу добавляется строка и через BLL, myStoreDB типа DataSet, компилятор понимает,&lt;br /&gt;
что надо добавить строку и вызывает INSERT ...&lt;br /&gt;
&lt;br /&gt;
Дальше...&lt;br /&gt;
&lt;br /&gt;
С вытягиванием данных тоже вопроса нет.&lt;br /&gt;
Уровень DAL:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;employeesDA.Fill(myStoreDB, &lt;span class='str'&gt;"Employees"&lt;/span&gt;);&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
и дальше myStoreDB  передаю на уровень UI.&lt;br /&gt;
&lt;br /&gt;
1-й ?) А вот КАК ОБНОВИТЬ выбранную строку в таблице "Employees" в БД я не пойму.&lt;br /&gt;
Поясняю: на форме "Служащие" есть текстбоксы в которых данные привязаны к датагридвью-ду.&lt;br /&gt;
Я изменяю, к примеру текстбох "Name", дальше&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;        &lt;span class='kw'&gt;private void&lt;/span&gt; btn_update_Click(&lt;span class='kw'&gt;object&lt;/span&gt; sender, EventArgs e)
        {
            DataGridViewSelectedRowCollection rows = dgv_emplAdm.SelectedRows;
            DataRow drCur;

            &lt;span class='kw'&gt;foreach&lt;/span&gt; (DataGridViewRow row &lt;span class='kw'&gt;in&lt;/span&gt; rows)
            {
                drCur = (row.DataBoundItem &lt;span class='kw'&gt;as&lt;/span&gt; DataRowView).Row;
                drCur.BeginEdit();
                drCur[&lt;span class='str'&gt;"Name"&lt;/span&gt;] = txbx_Name.Text;
                drCur.EndEdit();
            }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
            Изменил строку, а как теперь myStoreDB сказать какую сроку нужно обновить,&lt;br /&gt;
            и как это сделать?&lt;br /&gt;
            Кстакти, почемуто rows.count упорно возвращает NULL, хотя строки в dgv_emplAdm есть,&lt;br /&gt;
            и первая строка выбрана изначально.&lt;br /&gt;
          &lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;            emloyeesBll.AddNewEmploees(myStoreDB);
         }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
2-й ?) Как удалить выбранную в dgv_employees строку.&lt;br /&gt;
&lt;br /&gt;
Старался объяснить проблему внятно.&lt;br /&gt;
В общем знающие, нужна ваша помощь.&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Sat, 25 Jun 2011 08:12:23 GMT</pubDate>
		
			<author>mike_tihomirov &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>C# Доступ к Control из другого процесса</title>
		<link>http://rsdn.org/Forum/gdn.winforms/4314834.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/4314834</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/4314834</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=4314834</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/4314834</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=4314834</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте.&lt;br /&gt;
Можно ли достучаться до объекта Control из другого процесса? &lt;br /&gt;
Например, есть такая функция:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;Control MainForm = Control.FromHandle(Process.GetCurrentProcess().Handle);&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
С помощью которой я могу получить ссылку на форму из текущего процесса. После чего без проблем можно достать любой контрол данной формы&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;foreach&lt;/span&gt; (Control cntr &lt;span class='kw'&gt;in&lt;/span&gt; MainForm.Controls)
{
    &lt;span class='com'&gt;//Обращение к элементам&lt;/span&gt;
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Можно ли какими &amp;mdash; либо путями сделать то же самое с разными процессами?&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Tue, 21 Jun 2011 08:21:25 GMT</pubDate>
		
			<author>IvanMurashko &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>C# Regex</title>
		<link>http://rsdn.org/Forum/gdn.winforms/4237820.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/4237820</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/4237820</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=4237820</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/4237820</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=4237820</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Подскажите, пожалуйста, возможно ли с помощью Regex получить несколько значений из 1 одной строки, пример строки:&lt;br /&gt;
FIO101=Иванов Иван Иванович[num]49588&lt;br /&gt;
В результате нужно получить строки:&lt;br /&gt;
101&lt;br /&gt;
Иванов Иван Иванович&lt;br /&gt;
49588&lt;br /&gt;
Если это возможно, помогите, пожалуйста, это реализовать.&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Sun, 17 Apr 2011 11:49:41 GMT</pubDate>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>как построить дерево, данные об узлах которого лежат в бд</title>
		<link>http://rsdn.org/Forum/gdn.winforms/4153163.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/4153163</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/4153163</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=4153163</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/4153163</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=4153163</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте, подскажите пожалуйста как построить дерево, данные об узлах которого лежат в бд. На ум приходит только динамическая генерация кода. Наверно в силу незнания библиотек готовых компонентов.&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Fri, 11 Feb 2011 12:36:13 GMT</pubDate>
		
		
			<slash:comments>6</slash:comments>
		
	</item>

	<item>
		<title>C# ListBox поиск</title>
		<link>http://rsdn.org/Forum/gdn.winforms/4137513.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/4137513</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/4137513</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=4137513</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/4137513</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=4137513</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Всем привет, столкнулся с проблемой небольшой.&lt;br /&gt;
Есть обычный листбокс, в нем список для примера:&lt;br /&gt;
ааб&lt;br /&gt;
абс&lt;br /&gt;
асд&lt;br /&gt;
еек&lt;br /&gt;
ееу&lt;br /&gt;
ехт&lt;br /&gt;
Так вот задача реализовать поиск по этому списку, юзверь нажимает последовательность букв (листбокс в фокусе) и ему подсвечивается первый элемент, начинающийся с этих букв.&lt;br /&gt;
Для начала реализовал следующим образом:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;        private void listBox_AllChannels_KeyPress(object sender, KeyPressEventArgs e)
        {
            timer_SearchClean.Enabled = false;

            Search += e.KeyChar;

            for (int i = 0; i &amp;lt; listBox_AllChannels.Items.Count; i++)
            {
                string str = listBox_AllChannels.Items[i].ToString();

                if (str.StartsWith(Search))
                {
                    listBox_AllChannels.ClearSelected();

                    listBox_AllChannels.SelectedItem = listBox_AllChannels.Items[i];

                    break;
                }
            }

            timer_SearchClean.Enabled = true;
        }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Search строка, содержащая ввод юзверя, таймер ее просто очищает через некоторый интервал времени.&lt;br /&gt;
Проблема в том что после нажатия, например, кнопки Е, листбокс выделяет не первый элемент в списке, начинающийся с буквы Е, а второй, тоже самое с другими буквами, всегда выделяется второй элемент.&lt;br /&gt;
Может кто что подсказать, хотя бы в какую сторону копать.&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Mon, 31 Jan 2011 14:36:34 GMT</pubDate>
		
			<author>Felas &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>PictureBox в TabControl не прорисовывается</title>
		<link>http://rsdn.org/Forum/gdn.winforms/4071531.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/4071531</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/4071531</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=4071531</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/4071531</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=4071531</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;В TabControl есть несколько TabPage, а в них PictureBox в которые я вывожу графики методом из статического класса (передаю указатель на PictureBox). Для первой TabPage все хорошо, а на следующих пусто, приходится активировать по клику на PictureBox.&lt;br /&gt;
Пробывал по SelectedIndexChanged — ноль результата, а это было бы наверное правильнее, но как сделать при открытии вкладки вызов?&lt;br /&gt;
Использовал Event.Paint все ок, кроме того что перерисовывается при наведении на вкладку каждый раз.&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Thu, 09 Dec 2010 10:51:57 GMT</pubDate>
		
			<author>Cyrus &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>Microsoft.Office.Interop.Excel  PasteSpecial тормозит работy</title>
		<link>http://rsdn.org/Forum/gdn.winforms/3964913.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/3964913</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/3964913</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=3964913</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/3964913</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=3964913</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Преамбула:&lt;br /&gt;
Задача заключается в следующем: &lt;br /&gt;
Необходимо достать из базы сохраненную книгу Excel, потом оттуда же достать список некоторых на текущий момент чисел с координатами, и положить числа по координатам в книгу Excel  (Отчет). При этом используется Microsoft.Office.Interop.Excel.&lt;br /&gt;
 Вариант выгружать данные в Excel по ячейке:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;range = sourceSheetValues.get_Range(&lt;span class='str'&gt;"A1"&lt;/span&gt;, &lt;span class='str'&gt;"A1"&lt;/span&gt;);
range.Value2 = someValue;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
не устраивает, так как существуют большие отчеты с более чем 5000 ячеек &amp;mdash; при выгрузке данных это все сурово тормозит.&lt;br /&gt;
Выгружать матрицами&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;range = sourceSheetValues.get_Range(&lt;span class='str'&gt;"A1"&lt;/span&gt;, &lt;span class='str'&gt;"С3"&lt;/span&gt;);
range.Value2 = some3x3matrix;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
тоже не устраивает так как в "теле" блока с данными может быть форматирование, текст и т.д. При записи матрицы все это будет перетерто.&lt;br /&gt;
Найден такой выход (общий смысл):&lt;br /&gt;
1) Выгрузить данные блоком на вспомогательный лист Excel.&lt;br /&gt;
2) Скопировать данные с него в буфер обмена Excel.&lt;br /&gt;
3) Вставить данные из буфера на лист отчета при помощи метода PasteSpecial с пропуском пустых значений (skip blanks). В этом случае содержание ячеек на которые не настроена выгрузка значений остается нетронутым.&lt;br /&gt;
Примерный код (выполняется для каждого листа отчета):&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;            Range range;
            &lt;span class='kw'&gt;try&lt;/span&gt;
            {
                &lt;span class='com'&gt;//Вставляем блок с данными на вспомогательный лист&lt;/span&gt;
                range = sourceSheetValues.get_Range(Utils.GetCellAddress(ruCell), Utils.GetCellAddress(ldCell));
                range.Value2 = sheetValues;

                &lt;span class='com'&gt;//при помощи спец вставки копируем форматирование с листа приемника&lt;/span&gt;
                range = targetSheet.get_Range(Utils.GetCellAddress(ruUsedRangeCell), Utils.GetCellAddress(ldUsedRangeCell));
                range.Copy(Type.Missing);
                range = sourceSheetFormats.get_Range(Utils.GetCellAddress(ruUsedRangeCell), Utils.GetCellAddress(ldUsedRangeCell));
                range.PasteSpecial(XlPasteType.xlPasteFormats, XlPasteSpecialOperation.xlPasteSpecialOperationNone, &lt;span class='kw'&gt;false&lt;/span&gt;, &lt;span class='kw'&gt;false&lt;/span&gt;);
                &lt;span class='com'&gt;////при помощи спец вставки копируем значения с листа источника&lt;/span&gt;
                range = targetSheet.get_Range(Utils.GetCellAddress(ruCell), Utils.GetCellAddress(ldCell));
                range.UnMerge();
                range = sourceSheetValues.get_Range(Utils.GetCellAddress(ruCell), Utils.GetCellAddress(ldCell));
                range.Copy(Type.Missing);
                range = targetSheet.get_Range(Utils.GetCellAddress(ruCell), Utils.GetCellAddress(ldCell));
                range.PasteSpecial(XlPasteType.xlPasteValues, XlPasteSpecialOperation.xlPasteSpecialOperationNone, &lt;span class='kw'&gt;true&lt;/span&gt;, &lt;span class='kw'&gt;false&lt;/span&gt;);
                &lt;span class='com'&gt;//при помощи спец вставки копируем форматирование с листа источника&lt;/span&gt;
                range = sourceSheetFormats.get_Range(Utils.GetCellAddress(ruUsedRangeCell), Utils.GetCellAddress(ldUsedRangeCell));
                range.Copy(Type.Missing);
                range = targetSheet.get_Range(Utils.GetCellAddress(ruUsedRangeCell), Utils.GetCellAddress(ldUsedRangeCell));
                range.PasteSpecial(XlPasteType.xlPasteFormats, XlPasteSpecialOperation.xlPasteSpecialOperationNone, &lt;span class='kw'&gt;false&lt;/span&gt;, &lt;span class='kw'&gt;false&lt;/span&gt;);
                &lt;span class='com'&gt;////удаляем все что можно с листа источника&lt;/span&gt;
                range = sourceSheetValues.get_Range(Utils.GetCellAddress(ruCell), Utils.GetCellAddress(ldCell));
                range.Clear();
                range.ClearContents();
                range.ClearFormats();
                range = sourceSheetFormats.get_Range(Utils.GetCellAddress(ruUsedRangeCell), Utils.GetCellAddress(ldUsedRangeCell));
                range.Clear();
                range.ClearContents();
                range.ClearFormats();
            }
            &lt;span class='kw'&gt;catch&lt;/span&gt;
            {
                errors = errors + &lt;span class='str'&gt;"Ошибка при выгрузке значений. \r\n"&lt;/span&gt;;
                &lt;span class='kw'&gt;return&lt;/span&gt;;
            }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Кроме того тут еще учитываются всякие нюансы типа объединенных ячеек и т.д.&lt;br /&gt;
Проблема заключается в следующем. Если многократно (15-20 раз) запустить данную процедуру для одного экземпляра отчета (обновлять его) то на методах PasteSpecial Excel начинает сурово  тормозить, каждая следующая операция обновления занимает все больше времени и процесс Excel отжирает все больше памяти.&lt;br /&gt;
Кто-нибудь может подсказать в чем дело?&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Mon, 20 Sep 2010 10:14:06 GMT</pubDate>
		
			<author>Trockiy &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>Проблема с отправкой смс</title>
		<link>http://rsdn.org/Forum/gdn.winforms/3947791.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/3947791</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/3947791</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=3947791</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/3947791</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=3947791</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Проблема такая: нужно написать программу для отправки смс с GSM модема с определёнными кодами на короткий номер. Программу написал смс отправляются, но в ответ с этого номера приходит, что не верный формат запроса. То есть если я на обычный номер шлю, то код верен полностью, никаких лишних пробелов или чего то подобного. От самого короткого номера ответ тоже приходит, значит ему доходит, заказчик говорит, что шлёт корректные запросы, и я теперь совсем не знаю, что делать &lt;img border='0' width='15' height='15' src='//rsdn.org/Forum/images/frown.gif' /&gt;&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Mon, 06 Sep 2010 13:10:59 GMT</pubDate>
		
			<author>Hasys &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>csc.exe</title>
		<link>http://rsdn.org/Forum/gdn.winforms/3866230.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/3866230</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/3866230</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=3866230</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/3866230</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=3866230</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;как с помощью csc.exe создать ехе-шник программы, запихав в него все используемые библиотеки и иконку для программы? &lt;br /&gt;
Пишу:&lt;br /&gt;
csc /t:winexe /r:MySql.Data.dll;Interop.SWPublished.dll;Interop.SwConst.dll;Interop.SldWorks.dll /out:Proga.exe *.cs&lt;br /&gt;
&lt;br /&gt;
а как иконку туда запихнуть? Ссылка на иконку прописана в свойствах проекта.&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Mon, 05 Jul 2010 09:16:59 GMT</pubDate>
		
			<author>Anka_gelez &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>resgen.exe где его найти?</title>
		<link>http://rsdn.org/Forum/gdn.winforms/3865985.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/3865985</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/3865985</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=3865985</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/3865985</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=3865985</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;В программку свою присоединила файл иконки. Среда разработки (visal studio 2008) мне ее запихала в файл ресурсов. как сейчас resx перегнать в resources?&lt;br /&gt;
&lt;br /&gt;
Читаю книгу Троелсена : "&lt;i&gt;Создание файлов *.resources После того как мы создали файл *.resx в формате XML, следующая наша задача — преобразовать его в двоичный файл *.resources. Для этого предназначена утилита resgen.exe. Конечно же, Visual Studio.NET может выполнить эту операцию совершенно автоматически&lt;/i&gt; (&lt;b&gt;это где автоматически делается и как?&lt;/b&gt;)&lt;i&gt;, но мы сейчас сделаем это вручную. Командная строка resgen.exe должна выглядеть следующим образом: resgen rexform.resx rexform.resources&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Утилитка эта (resgen.exe) у меня не запускается почему-то. т.е запускается и пропадает, консоль мигает и всё. Поясните пожалуйста что и как делать!&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Mon, 05 Jul 2010 03:07:32 GMT</pubDate>
		
			<author>Anka_gelez &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>Ошибка группирования в RadGridView</title>
		<link>http://rsdn.org/Forum/gdn.winforms/3864875.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/3864875</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/3864875</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=3864875</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/3864875</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=3864875</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Приветствую!&lt;br /&gt;
Может кто-нибудь сталкивался с этим багом в контроле Telerik.WinControls.UI.RadGridView&lt;br /&gt;
Кидаю на форму данный контрол и в Load формы приложения прописываю следующие: &lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt; &lt;span class='kw'&gt;private void&lt;/span&gt; Form1_Load(&lt;span class='kw'&gt;object&lt;/span&gt; sender, EventArgs e)
        {
            GridViewComboBoxColumn customerColumn = &lt;span class='kw'&gt;new&lt;/span&gt; GridViewComboBoxColumn();
            customerColumn.UniqueName = &lt;span class='str'&gt;"CustomerColumn"&lt;/span&gt;;
            customerColumn.DataSource = &lt;span class='kw'&gt;new string&lt;/span&gt;[] { &lt;span class='str'&gt;"1"&lt;/span&gt;, &lt;span class='str'&gt;"2"&lt;/span&gt;, &lt;span class='str'&gt;"3"&lt;/span&gt;, &lt;span class='str'&gt;"4"&lt;/span&gt; };
            customerColumn.ValueMember = &lt;span class='str'&gt;"CustomerID"&lt;/span&gt;;
            customerColumn.Width = 200;
            &lt;span class='kw'&gt;this&lt;/span&gt;.radGridView1.Columns.Add(customerColumn);
            
            GridViewComboBoxColumn customerColumn1 = &lt;span class='kw'&gt;new&lt;/span&gt; GridViewComboBoxColumn();
            customerColumn1.UniqueName = &lt;span class='str'&gt;"CustomerColumn1"&lt;/span&gt;;
            customerColumn1.DataSource = &lt;span class='kw'&gt;new string&lt;/span&gt;[] { &lt;span class='str'&gt;"1"&lt;/span&gt;, &lt;span class='str'&gt;"2"&lt;/span&gt;, &lt;span class='str'&gt;"3"&lt;/span&gt;, &lt;span class='str'&gt;"5"&lt;/span&gt; };
            customerColumn1.ValueMember = &lt;span class='str'&gt;"CustomerID"&lt;/span&gt;;
            customerColumn1.Width = 200;
            &lt;span class='kw'&gt;this&lt;/span&gt;.radGridView1.Columns.Add(customerColumn1);
             
        }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;img border='0' src='http://habreffect.ru/files/521/2e13f6f2c/1.jpg' /&gt;   &lt;br /&gt;
&lt;br /&gt;
При попытке сгруппировать по customerColumn1 не показывает значения этого поля.&lt;br /&gt;
&lt;br /&gt;
&lt;img border='0' src='http://habreffect.ru/files/f33/4cae1b116/2.jpg' /&gt;&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Fri, 02 Jul 2010 17:32:12 GMT</pubDate>
		
			<author>alsot &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>csc win7</title>
		<link>http://rsdn.org/Forum/gdn.winforms/3864066.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/3864066</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/3864066</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=3864066</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/3864066</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=3864066</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте! Пытаюсь сделать exe-шник своего приложения посредством использования csc.exe. Ранее всё получалось без проблем, ОС была виста, сейчас windows 7. значит запускаю csc.exe, выполняю следующий код: &lt;br /&gt;
&lt;br /&gt;
csc /t:winexe /r:MySql.Data.dll;Interop.SWPublished.dll;Interop.SwConst.dll;Interop.SldWorks.dll /out:My_programm.exe *.cs&lt;br /&gt;
&lt;br /&gt;
всё прекрасно выполняется. Пытаюсь запустить только что созданный exe-шник, а мне вылезает окошечко ошибки "Прекращена работа программы" и на выбор: "Искать решение проблемы в инете" "закрыть прогу" "отладить прогу"&lt;br /&gt;
&lt;br /&gt;
Не понимаю что за ситуация такая!&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Fri, 02 Jul 2010 08:33:33 GMT</pubDate>
		
			<author>Anka_gelez &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>А подскажите чем лучше сделать перетаскиваемые объекты</title>
		<link>http://rsdn.org/Forum/gdn.winforms/3858152.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/gdn.winforms/3858152</guid>
		<comments>http://rsdn.org/Forum/gdn.winforms/3858152</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=3858152</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/3858152</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=3858152</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;идея такая, как в умл когда классы рисуешь добавляешь прямоугольник-класс, а потом его перетаскиваешь, при помощи какого компонента это лучше сделать?&lt;br /&gt;
думаю это можно простую форму но ее както надо настроить чтобы перетаскивать можно было за всю область, не было кэпшена.&lt;/div&gt;
				
		</description>
		
		<category>gdn</category><category>winforms</category>
		<pubDate>Sun, 27 Jun 2010 20:16:15 GMT</pubDate>
		
			<author>ifelser &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>
</channel>
</rss>
