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

استعراض ملف وتغيير الايقونة في UserControl

مغلق
بدأه إبراهيم دويكات في 7 أغسطس 2006 · 4 رد · 670 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اقوم بتصميم Contol باستخدام Visual Studio 2005 وطبعا بلغة C#

قمت بعمل خاصية لاسترجاع اسم ملف والكود كالتالي

	string file;
		public string FileName
		{
			get
			{
				return file;
			}
			set
			{
				file = value;
			}
		}

ولكن هذا يتطلب كتابة اسم الملف باستخدام لوحة المفاتيح (عند استخدام الـControl)

ما أريده هو أن يقوم المستخدم بالضغط على زر استعراض ليتم فتح نافذة OpenFile (انظر الى الصورة المرفقة)

***********شيء آخر**********

عند اضافة هذا الـControl لأي مشروع من أجل استخدامه تظهر الايقونة كـ (ترس) أو (مسنن)، أريد أن أغير هذه الايقونة

وانا انتظر الاجابة

وشكرا لكم

post-61842-1154963250_thumb.gif

MyWindowsControlLibrary.rar

تم تعديل هذه المشاركة بواسطة إبراهيم دويكات في 7 أغسطس 2006 في 19:24

My_Sign.jpg
#2

اعتقد ان ممكن تستخدم OpenFileDialog بدل public string

بالنسبة للسؤال الثاني

	[ToolboxBitmap("UserControl1.bmp")]
	public partial class UserControl1 : Component
	{
	}

مواضيع متنوعة

#3

وعليكم السلام ورحمة الله وبركاته.

كل هذه الأشياء يتم تنفيذها باستخدام بعض الـ Attributes الخاصه بتقديم هذه الخدمات الى الـ User Controls.

فبالنسبه للسؤال الثاني , يمكنك استخدما الـ Attribute المسماه ToolboxBitmap للكلاس الذي يرث من الـ UserControl. مثلا بافتراض أن الـ UserControl الخاصه بك اسمه UserControl1 فسيكون الكود :

[ToolboxBitmap(typeof(Button))]
public class UserControl1 : UserControl
{
.
.
.

كما رأيت في الكود, قمت بتمرير الـ Button Type للـ ToolboxBitmapAttribute حتى تظهر الصوره الموجوده بجانب الـ Control الخاصه بك على نفس الصوره الخاصه بالـ Button. ويمكنك بالطبع تغيير Button ووضع أي أداه أخرى.

واذا أردت أن تضع صوره, فقم بكتابة عنوانها :

[ToolboxBitmap("yourImage.jpg")]
public class UserControl1 : UserControl
{
.
.
.

ولكن بالطبع الـ UserControl من المتوقع أن تعمل في أكثر من مشروع على أجهزه مختلفه, ولذلك وضع ( عنوان ) صريح للصوره ليس بالأمر الجيد. خصوصا اذا كنت تنوي تسويقها. وبدلا من ذلك يمكن أن تضمن الصوره داخل المشروع وتحفظ بداخله...

اضغط على المشروع بالزرار الأيمن واختر Add Existing Item. بعدها اجعل الـ Dialog يظهر كل أنواع الملفات ثم اختر الصوره التي تريدها واضغط Open. ثم بعد ذلك من خلال الـ Solution Explorer اختار الصوره واضغط بالزرار الأيمن عليها ثم اختار Properties ثم عدل الخاصيه Build Action الى Embedded Resource حتى يتم تضمينها داخل الـ Assembly.

بعد ذلك يمكنك أن تستخدم الـ ToolboxBitmapAttribute هكذا :

[ToolboxBitmap(typeof(UserControl1),"yourImage.jpg")]
public class UserControl1 : UserControl
{
.
.
.

راعي تغيير ما يلزم.

وبالنسبه للسؤال الثاني فهذا يطول شرحه, ولكن اعرف أنه يتم أيضا باستخدام الـ Attributes. فيوجد واحده اسمها EditorAttribute يمكنك وضعها أعلى الـ Property لتمكنك من فتح Editor خاص بك أنت قد ورثته من System.Drawing.Design.UITypeEditor. فابحث عنها.

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#4

بارك الله فيك اخي معتز

هذا كود بسيط يوضح ماتريدة في السؤالين

using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Text;
using System.Windows.Forms;

namespace MyOpenFileDialog
{
	/* Specifies a type that indicates the assembly to search, and the name of an image resource to look for.
	 * [ToolboxBitmap(typeof(MyControl), "MyControlBitmap")]
	 * or 
	 * [System.Drawing.ToolboxBitmap(typeof(Button))]
	 * Specifies the bitmap associated with the Button type.
	 * or
	 * Specifies a bitmap file.
	 */ 
	[System.Drawing.ToolboxBitmap(@"c:\myOpenFileDialog.bmp")]
	public class myOpenFileDialog : Component
	{
		OpenFileDialog openFileDialog = new OpenFileDialog();

		public OpenFileDialog FileName {
			get {
				return openFileDialog;
			} set {
				FileName.Filter = "Text Files|*.txt";
				FileName.Title = "Select a Text File";
				if(FileName.ShowDialog() == DialogResult.OK) {
					openFileDialog.FileName = FileName.FileName;
					ShowMessage();
				}
			}
		}

		void ShowMessage() {
			MessageBox.Show(openFileDialog.FileName);
		}
	}
}

مواضيع متنوعة

#5

شكرا لكم Moudey و معتز شمس

أخي Moudey

لا أعرف ما الفرق بين Component و UserControl لكنني أستخدم UserControl....على كل حال شكرا على المثال

أخي معتز شمس

كود [ToolboxBitmap(typeof(Button))] يعمل كما هو متوقع

لكن عندما أطبق الطريقة الأخرى التي ذكرتها حضرتك، لا تنفع رغم أني سرت بالخطوات واحدة تلو الاخرى وأكثر من 3 مرات....

اقتباس
اضغط على المشروع بالزرار الأيمن واختر Add Existing Item. بعدها اجعل الـ Dialog يظهر كل أنواع الملفات ثم اختر الصوره التي تريدها واضغط Open. ثم بعد ذلك من خلال الـ Solution Explorer اختار الصوره واضغط بالزرار الأيمن عليها ثم اختار Properties ثم عدل الخاصيه Build Action الى Embedded Resource حتى يتم تضمينها داخل الـ Assembly.

...........

...........

...........

جاري البحث عن EditorAttribute

My_Sign.jpg

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

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