الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ما هو نوع المتغير لون ؟

مغلق
بدأه إسماعيل ابراهيم في 15 نوفمبر 2002 · 5 رد · 730 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اريد ان امرر لدالة متغير هو عباره عن لون, كيف احدد للداله نوعية البرامتر الذي ستتلقاه؟

مثلا لدي ديالوج الالوان ColorDialog في اي متغير يمكنني حفظ القيمة المرجعة منه لأمررها لدالة أخرى؟

بالعربي لو المرجع رقم صحيح سأحظه في int ولو كان حرف ساحفظه في char لكنه لون كيف احفظه؟؟؟؟

#2

استخدم التركيب Color ..

مثال :

void SetButtonColor(System.Drawing.Color col)
{
       MyButton.BackColor = col ;
}

وتستطيع استدعائها بالشكل التالي .

SetButtonColor(System.Drawing.Color.Red) ;
#3

شكرا أخي..

لكن عندما اقوم بكتابة الجملة System.Drawing.Color col يخبرني الكومبايلر ما معناه انه وجد كلاس حيث يجب ان يجد متغير,,,

(25): 'System.Drawing.Color' denotes a 'class' where a 'variable' was expected

#4

حسن ربما استخدامي خاطئ من الاصل ... فاليك الكود عله يساعد:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace Tests
{
	/// 
	/// Summary description for Form1.
	/// 
	public class MainWindow : System.Windows.Forms.Form
	{
		/// 
		/// Required designer variable.
		/// 
		private System.ComponentModel.Container components = null;

		public MainWindow()
		{



			InitializeComponent(System.Drawing.Color);// Required for Windows Form Designer support


			// TODO: Add any constructor code after InitializeComponent call

		}

		/// 
		/// Clean up any resources being used.
		/// 
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if (components != null) 
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		#region Windows Form Designer generated code
		/// 
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// 
		private void InitializeComponent(System.Drawing.Color col)
		{
			// 
			// MainWindow
			// 
		//	System.Windows.Forms.ColorDialog Cd = new System.Windows.Forms.ColorDialog();
		//	Cd.ShowDialog();
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.BackColor=col;
			this.ClientSize = new System.Drawing.Size(292, 273);
			this.Name = "MainWindow";
			this.Text = "HandKeyBar";
			this.WindowState = System.Windows.Forms.FormWindowState.Maximized;

		}
		#endregion

		/// 
		/// The main entry point for the application.
		/// 
		[STAThread]
		static void Main() 
		{

				System.Windows.Forms.ColorDialog Cd = new System.Windows.Forms.ColorDialog();
				Cd.ShowDialog();
			MainWindow Mw=new MainWindow();
			Mw.InitializeComponent(Cd.Color);


			Application.Run(new MainWindow());

		}


	}
}

كما ترى احاول ان اجعل المستخدم يقرر لون الفورم قبل العمل.

#5

عفواً....

لقد وجدت الحل! لا أدري لماذا دائما عندما اعرض مشكلة على الاخرين اجد الحل بعدها مباشرة؟ :)

الحل لمن يريد ان يستفيد :

قمت بحذف مناداة الدالة () Mw.InitializeComponent من المشيّد وقمت بمناداتها من Main لتبدو هذه الدالة هكذا:

static void Main()
		{

			System.Windows.Forms.ColorDialog Cd = new System.Windows.Forms.ColorDialog();
			Cd.ShowDialog();
			MainWindow Mw=new MainWindow();
			Mw.InitializeComponent(Cd.Color);


			Application.Run(Mw);

		}

طبعا وطبقا لنصيحة الاخ فهد الجوهرية جعدلت تعريف الدالة ليبدو هكذا :

private void InitializeComponent(System.Drawing.Color color)
#6

الحمدلله :) :)

هذا الموضوع مغلق.

مواضيع مشابهة